πŸ“„ File detail

components/ApproveApiKey.tsx

🧩 .tsxπŸ“ 123 linesπŸ’Ύ 10,621 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œcomponents/”, which covers shared React UI pieces. On the API surface it exposes ApproveApiKey β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from ink, utils, CustomSelect, and design-system (relative imports).

Generated from folder role, exports, dependency roots, and inline comments β€” not hand-reviewed for every path.

🧠 Inline summary

import { c as _c } from "react/compiler-runtime"; import React from 'react'; import { Text } from '../ink.js'; import { saveGlobalConfig } from '../utils/config.js'; import { Select } from './CustomSelect/index.js';

πŸ“€ Exports (heuristic)

  • ApproveApiKey

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • react

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import React from 'react';
import { Text } from '../ink.js';
import { saveGlobalConfig } from '../utils/config.js';
import { Select } from './CustomSelect/index.js';
import { Dialog } from './design-system/Dialog.js';
type Props = {
  customApiKeyTruncated: string;
  onDone(approved: boolean): void;
};
export function ApproveApiKey(t0) {
  const $ = _c(17);
  const {
    customApiKeyTruncated,
    onDone
  } = t0;
  let t1;
  if ($[0] !== customApiKeyTruncated || $[1] !== onDone) {
    t1 = function onChange(value) {
      bb2: switch (value) {
        case "yes":
          {
            saveGlobalConfig(current_0 => ({
              ...current_0,
              customApiKeyResponses: {
                ...current_0.customApiKeyResponses,
                approved: [...(current_0.customApiKeyResponses?.approved ?? []), customApiKeyTruncated]
              }
            }));
            onDone(true);
            break bb2;
          }
        case "no":
          {
            saveGlobalConfig(current => ({
              ...current,
              customApiKeyResponses: {
                ...current.customApiKeyResponses,
                rejected: [...(current.customApiKeyResponses?.rejected ?? []), customApiKeyTruncated]
              }
            }));
            onDone(false);
          }
      }
    };
    $[0] = customApiKeyTruncated;
    $[1] = onDone;
    $[2] = t1;
  } else {
    t1 = $[2];
  }
  const onChange = t1;
  let t2;
  if ($[3] !== onChange) {
    t2 = () => onChange("no");
    $[3] = onChange;
    $[4] = t2;
  } else {
    t2 = $[4];
  }
  let t3;
  if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
    t3 = <Text bold={true}>ANTHROPIC_API_KEY</Text>;
    $[5] = t3;
  } else {
    t3 = $[5];
  }
  let t4;
  if ($[6] !== customApiKeyTruncated) {
    t4 = <Text>{t3}<Text>: sk-ant-...{customApiKeyTruncated}</Text></Text>;
    $[6] = customApiKeyTruncated;
    $[7] = t4;
  } else {
    t4 = $[7];
  }
  let t5;
  if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
    t5 = <Text>Do you want to use this API key?</Text>;
    $[8] = t5;
  } else {
    t5 = $[8];
  }
  let t6;
  if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
    t6 = {
      label: "Yes",
      value: "yes"
    };
    $[9] = t6;
  } else {
    t6 = $[9];
  }
  let t7;
  if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
    t7 = [t6, {
      label: <Text>No (<Text bold={true}>recommended</Text>)</Text>,
      value: "no"
    }];
    $[10] = t7;
  } else {
    t7 = $[10];
  }
  let t8;
  if ($[11] !== onChange) {
    t8 = <Select defaultValue="no" defaultFocusValue="no" options={t7} onChange={value_0 => onChange(value_0 as 'yes' | 'no')} onCancel={() => onChange("no")} />;
    $[11] = onChange;
    $[12] = t8;
  } else {
    t8 = $[12];
  }
  let t9;
  if ($[13] !== t2 || $[14] !== t4 || $[15] !== t8) {
    t9 = <Dialog title="Detected a custom API key in your environment" color="warning" onCancel={t2}>{t4}{t5}{t8}</Dialog>;
    $[13] = t2;
    $[14] = t4;
    $[15] = t8;
    $[16] = t9;
  } else {
    t9 = $[16];
  }
  return t9;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRleHQiLCJzYXZlR2xvYmFsQ29uZmlnIiwiU2VsZWN0IiwiRGlhbG9nIiwiUHJvcHMiLCJjdXN0b21BcGlLZXlUcnVuY2F0ZWQiLCJvbkRvbmUiLCJhcHByb3ZlZCIsIkFwcHJvdmVBcGlLZXkiLCJ0MCIsIiQiLCJfYyIsInQxIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImJiMiIsImN1cnJlbnRfMCIsImN1cnJlbnQiLCJjdXN0b21BcGlLZXlSZXNwb25zZXMiLCJyZWplY3RlZCIsInQyIiwidDMiLCJTeW1ib2wiLCJmb3IiLCJ0NCIsInQ1IiwidDYiLCJsYWJlbCIsInQ3IiwidDgiLCJ2YWx1ZV8wIiwidDkiXSwic291cmNlcyI6WyJBcHByb3ZlQXBpS2V5LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBUZXh0IH0gZnJvbSAnLi4vaW5rLmpzJ1xuaW1wb3J0IHsgc2F2ZUdsb2JhbENvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy5qcydcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4vQ3VzdG9tU2VsZWN0L2luZGV4LmpzJ1xuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL0RpYWxvZy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgY3VzdG9tQXBpS2V5VHJ1bmNhdGVkOiBzdHJpbmdcbiAgb25Eb25lKGFwcHJvdmVkOiBib29sZWFuKTogdm9pZFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQXBwcm92ZUFwaUtleSh7XG4gIGN1c3RvbUFwaUtleVRydW5jYXRlZCxcbiAgb25Eb25lLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBmdW5jdGlvbiBvbkNoYW5nZSh2YWx1ZTogJ3llcycgfCAnbm8nKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSAneWVzJzoge1xuICAgICAgICBzYXZlR2xvYmFsQ29uZmlnKGN1cnJlbnQgPT4gKHtcbiAgICAgICAgICAuLi5jdXJyZW50LFxuICAgICAgICAgIGN1c3RvbUFwaUtleVJlc3BvbnNlczoge1xuICAgICAgICAgICAgLi4uY3VycmVudC5jdXN0b21BcGlLZXlSZXNwb25zZXMsXG4gICAgICAgICAgICBhcHByb3ZlZDogW1xuICAgICAgICAgICAgICAuLi4oY3VycmVudC5jdXN0b21BcGlLZXlSZXNwb25zZXM/LmFwcHJvdmVkID8/IFtdKSxcbiAgICAgICAgICAgICAgY3VzdG9tQXBpS2V5VHJ1bmNhdGVkLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSlcbiAgICAgICAgb25Eb25lKHRydWUpXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgICBjYXNlICdubyc6IHtcbiAgICAgICAgc2F2ZUdsb2JhbENvbmZpZyhjdXJyZW50ID0+ICh7XG4gICAgICAgICAgLi4uY3VycmVudCxcbiAgICAgICAgICBjdXN0b21BcGlLZXlSZXNwb25zZXM6IHtcbiAgICAgICAgICAgIC4uLmN1cnJlbnQuY3VzdG9tQXBpS2V5UmVzcG9uc2VzLFxuICAgICAgICAgICAgcmVqZWN0ZWQ6IFtcbiAgICAgICAgICAgICAgLi4uKGN1cnJlbnQuY3VzdG9tQXBpS2V5UmVzcG9uc2VzPy5yZWplY3RlZCA/PyBbXSksXG4gICAgICAgICAgICAgIGN1c3RvbUFwaUtleVRydW5jYXRlZCxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSkpXG4gICAgICAgIG9uRG9uZShmYWxzZSlcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxEaWFsb2dcbiAgICAgIHRpdGxlPVwiRGV0ZWN0ZWQgYSBjdXN0b20gQVBJIGtleSBpbiB5b3VyIGVudmlyb25tZW50XCJcbiAgICAgIGNvbG9yPVwid2FybmluZ1wiXG4gICAgICBvbkNhbmNlbD17KCkgPT4gb25DaGFuZ2UoJ25vJyl9XG4gICAgPlxuICAgICAgPFRleHQ+XG4gICAgICAgIDxUZXh0IGJvbGQ+QU5USFJPUElDX0FQSV9LRVk8L1RleHQ+XG4gICAgICAgIDxUZXh0Pjogc2stYW50LS4uLntjdXN0b21BcGlLZXlUcnVuY2F0ZWR9PC9UZXh0PlxuICAgICAgPC9UZXh0PlxuICAgICAgPFRleHQ+RG8geW91IHdhbnQgdG8gdXNlIHRoaXMgQVBJIGtleT88L1RleHQ+XG4gICAgICA8U2VsZWN0XG4gICAgICAgIGRlZmF1bHRWYWx1ZT1cIm5vXCJcbiAgICAgICAgZGVmYXVsdEZvY3VzVmFsdWU9XCJub1wiXG4gICAgICAgIG9wdGlvbnM9e1tcbiAgICAgICAgICB7IGxhYmVsOiAnWWVzJywgdmFsdWU6ICd5ZXMnIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IChcbiAgICAgICAgICAgICAgPFRleHQ+XG4gICAgICAgICAgICAgICAgTm8gKDxUZXh0IGJvbGQ+cmVjb21tZW5kZWQ8L1RleHQ+KVxuICAgICAgICAgICAgICA8L1RleHQ+XG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdmFsdWU6ICdubycsXG4gICAgICAgICAgfSxcbiAgICAgICAgXX1cbiAgICAgICAgb25DaGFuZ2U9e3ZhbHVlID0+IG9uQ2hhbmdlKHZhbHVlIGFzICd5ZXMnIHwgJ25vJyl9XG4gICAgICAgIG9uQ2FuY2VsPXsoKSA9PiBvbkNoYW5nZSgnbm8nKX1cbiAgICAgIC8+XG4gICAgPC9EaWFsb2c+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLElBQUksUUFBUSxXQUFXO0FBQ2hDLFNBQVNDLGdCQUFnQixRQUFRLG9CQUFvQjtBQUNyRCxTQUFTQyxNQUFNLFFBQVEseUJBQXlCO0FBQ2hELFNBQVNDLE1BQU0sUUFBUSwyQkFBMkI7QUFFbEQsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLHFCQUFxQixFQUFFLE1BQU07RUFDN0JDLE1BQU0sQ0FBQ0MsUUFBUSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUk7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RUFBQSxJQUFBa0IsRUFBQTtFQUFBLElBQUFsQixDQUFBLFNBQUFZLE1BQUEsQ0FBQUMsR0FBQTtJQUR2QkssRUFBQSxJQUNQRixFQUE4QixFQUM5QjtNQUFBQyxLQUFBLEVBRUksQ0FBQyxJQUFJLENBQUMsSUFDQSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUosS0FBRyxDQUFDLENBQUMsV0FBVyxFQUFyQixJQUFJLENBQXdCLENBQ25DLEVBRkMsSUFBSSxDQUVFO01BQUFiLEtBQUEsRUFFRjtJQUNULENBQUMsQ0FDRjtJQUFBSixDQUFBLE9BQUFrQixFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBbEIsQ0FBQTtFQUFBO0VBQUEsSUFBQW1CLEVBQUE7RUFBQSxJQUFBbkIsQ0FBQSxTQUFBRyxRQUFBO0lBYkhnQixFQUFBLElBQUMsTUFBTSxDQUNRLFlBQUksQ0FBSixJQUFJLENBQ0MsaUJBQUksQ0FBSixJQUFJLENBQ2IsT0FVUixDQVZRLENBQUFELEVBVVQsQ0FBQyxDQUNTLFFBQXdDLENBQXhDLENBQUFFLE9BQUEsSUFBU2pCLFFBQVEsQ0FBQ0MsT0FBSyxJQUFJLEtBQUssR0FBRyxJQUFJLEVBQUMsQ0FDeEMsUUFBb0IsQ0FBcEIsT0FBTUQsUUFBUSxDQUFDLElBQUksRUFBQyxHQUM5QjtJQUFBSCxDQUFBLE9BQUFHLFFBQUE7SUFBQUgsQ0FBQSxPQUFBbUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQW5CLENBQUE7RUFBQTtFQUFBLElBQUFxQixFQUFBO0VBQUEsSUFBQXJCLENBQUEsU0FBQVUsRUFBQSxJQUFBVixDQUFBLFNBQUFjLEVBQUEsSUFBQWQsQ0FBQSxTQUFBbUIsRUFBQTtJQTFCSkUsRUFBQSxJQUFDLE1BQU0sQ0FDQyxLQUErQyxDQUEvQywrQ0FBK0MsQ0FDL0MsS0FBUyxDQUFULFNBQVMsQ0FDTCxRQUFvQixDQUFwQixDQUFBWCxFQUFtQixDQUFDLENBRTlCLENBQUFJLEVBR00sQ0FDTixDQUFBQyxFQUE0QyxDQUM1QyxDQUFBSSxFQWdCQyxDQUNILEVBM0JDLE1BQU0sQ0EyQkU7SUFBQW5CLENBQUEsT0FBQVUsRUFBQTtJQUFBVixDQUFBLE9BQUFjLEVBQUE7SUFBQWQsQ0FBQSxPQUFBbUIsRUFBQTtJQUFBbkIsQ0FBQSxPQUFBcUIsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQXJCLENBQUE7RUFBQTtFQUFBLE9BM0JUcUIsRUEyQlM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==