πŸ“„ File detail

components/ChannelDowngradeDialog.tsx

🧩 .tsxπŸ“ 102 linesπŸ’Ύ 8,253 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 ChannelDowngradeChoice and ChannelDowngradeDialog β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from ink, 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 { Select } from './CustomSelect/index.js'; import { Dialog } from './design-system/Dialog.js';

πŸ“€ Exports (heuristic)

  • ChannelDowngradeChoice
  • ChannelDowngradeDialog

πŸ“š 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 { Select } from './CustomSelect/index.js';
import { Dialog } from './design-system/Dialog.js';
export type ChannelDowngradeChoice = 'downgrade' | 'stay' | 'cancel';
type Props = {
  currentVersion: string;
  onChoice: (choice: ChannelDowngradeChoice) => void;
};

/**
 * Dialog shown when switching from latest to stable channel.
 * Allows user to choose whether to downgrade or stay on current version.
 */
export function ChannelDowngradeDialog(t0) {
  const $ = _c(17);
  const {
    currentVersion,
    onChoice
  } = t0;
  let t1;
  if ($[0] !== onChoice) {
    t1 = function handleSelect(value) {
      onChoice(value);
    };
    $[0] = onChoice;
    $[1] = t1;
  } else {
    t1 = $[1];
  }
  const handleSelect = t1;
  let t2;
  if ($[2] !== onChoice) {
    t2 = function handleCancel() {
      onChoice("cancel");
    };
    $[2] = onChoice;
    $[3] = t2;
  } else {
    t2 = $[3];
  }
  const handleCancel = t2;
  let t3;
  if ($[4] !== currentVersion) {
    t3 = <Text>The stable channel may have an older version than what you're currently running ({currentVersion}).</Text>;
    $[4] = currentVersion;
    $[5] = t3;
  } else {
    t3 = $[5];
  }
  let t4;
  if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
    t4 = <Text dimColor={true}>How would you like to handle this?</Text>;
    $[6] = t4;
  } else {
    t4 = $[6];
  }
  let t5;
  if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
    t5 = {
      label: "Allow possible downgrade to stable version",
      value: "downgrade" as ChannelDowngradeChoice
    };
    $[7] = t5;
  } else {
    t5 = $[7];
  }
  const t6 = `Stay on current version (${currentVersion}) until stable catches up`;
  let t7;
  if ($[8] !== t6) {
    t7 = [t5, {
      label: t6,
      value: "stay" as ChannelDowngradeChoice
    }];
    $[8] = t6;
    $[9] = t7;
  } else {
    t7 = $[9];
  }
  let t8;
  if ($[10] !== handleSelect || $[11] !== t7) {
    t8 = <Select options={t7} onChange={handleSelect} />;
    $[10] = handleSelect;
    $[11] = t7;
    $[12] = t8;
  } else {
    t8 = $[12];
  }
  let t9;
  if ($[13] !== handleCancel || $[14] !== t3 || $[15] !== t8) {
    t9 = <Dialog title="Switch to Stable Channel" onCancel={handleCancel} color="permission" hideBorder={true} hideInputGuide={true}>{t3}{t4}{t8}</Dialog>;
    $[13] = handleCancel;
    $[14] = t3;
    $[15] = t8;
    $[16] = t9;
  } else {
    t9 = $[16];
  }
  return t9;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlRleHQiLCJTZWxlY3QiLCJEaWFsb2ciLCJDaGFubmVsRG93bmdyYWRlQ2hvaWNlIiwiUHJvcHMiLCJjdXJyZW50VmVyc2lvbiIsIm9uQ2hvaWNlIiwiY2hvaWNlIiwiQ2hhbm5lbERvd25ncmFkZURpYWxvZyIsInQwIiwiJCIsIl9jIiwidDEiLCJoYW5kbGVTZWxlY3QiLCJ2YWx1ZSIsInQyIiwiaGFuZGxlQ2FuY2VsIiwidDMiLCJ0NCIsIlN5bWJvbCIsImZvciIsInQ1IiwibGFiZWwiLCJ0NiIsInQ3IiwidDgiLCJ0OSJdLCJzb3VyY2VzIjpbIkNoYW5uZWxEb3duZ3JhZGVEaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuL0N1c3RvbVNlbGVjdC9pbmRleC5qcydcbmltcG9ydCB7IERpYWxvZyB9IGZyb20gJy4vZGVzaWduLXN5c3RlbS9EaWFsb2cuanMnXG5cbmV4cG9ydCB0eXBlIENoYW5uZWxEb3duZ3JhZGVDaG9pY2UgPSAnZG93bmdyYWRlJyB8ICdzdGF5JyB8ICdjYW5jZWwnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGN1cnJlbnRWZXJzaW9uOiBzdHJpbmdcbiAgb25DaG9pY2U6IChjaG9pY2U6IENoYW5uZWxEb3duZ3JhZGVDaG9pY2UpID0+IHZvaWRcbn1cblxuLyoqXG4gKiBEaWFsb2cgc2hvd24gd2hlbiBzd2l0Y2hpbmcgZnJvbSBsYXRlc3QgdG8gc3RhYmxlIGNoYW5uZWwuXG4gKiBBbGxvd3MgdXNlciB0byBjaG9vc2Ugd2hldGhlciB0byBkb3duZ3JhZGUgb3Igc3RheSBvbiBjdXJyZW50IHZlcnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDaGFubmVsRG93bmdyYWRlRGlhbG9nKHtcbiAgY3VycmVudFZlcnNpb24sXG4gIG9uQ2hvaWNlLFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBmdW5jdGlvbiBoYW5kbGVTZWxlY3QodmFsdWU6IENoYW5uZWxEb3duZ3JhZGVDaG9pY2UpOiB2b2lkIHtcbiAgICBvbkNob2ljZSh2YWx1ZSlcbiAgfVxuXG4gIGZ1bmN0aW9uIGhhbmRsZUNhbmNlbCgpOiB2b2lkIHtcbiAgICBvbkNob2ljZSgnY2FuY2VsJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1xuICAgICAgdGl0bGU9XCJTd2l0Y2ggdG8gU3RhYmxlIENoYW5uZWxcIlxuICAgICAgb25DYW5jZWw9e2hhbmRsZUNhbmNlbH1cbiAgICAgIGNvbG9yPVwicGVybWlzc2lvblwiXG4gICAgICBoaWRlQm9yZGVyXG4gICAgICBoaWRlSW5wdXRHdWlkZVxuICAgID5cbiAgICAgIDxUZXh0PlxuICAgICAgICBUaGUgc3RhYmxlIGNoYW5uZWwgbWF5IGhhdmUgYW4gb2xkZXIgdmVyc2lvbiB0aGFuIHdoYXQgeW91JmFwb3M7cmVcbiAgICAgICAgY3VycmVudGx5IHJ1bm5pbmcgKHtjdXJyZW50VmVyc2lvbn0pLlxuICAgICAgPC9UZXh0PlxuICAgICAgPFRleHQgZGltQ29sb3I+SG93IHdvdWxkIHlvdSBsaWtlIHRvIGhhbmRsZSB0aGlzPzwvVGV4dD5cbiAgICAgIDxTZWxlY3RcbiAgICAgICAgb3B0aW9ucz17W1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAnQWxsb3cgcG9zc2libGUgZG93bmdyYWRlIHRvIHN0YWJsZSB2ZXJzaW9uJyxcbiAgICAgICAgICAgIHZhbHVlOiAnZG93bmdyYWRlJyBhcyBDaGFubmVsRG93bmdyYWRlQ2hvaWNlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IGBTdGF5IG9uIGN1cnJlbnQgdmVyc2lvbiAoJHtjdXJyZW50VmVyc2lvbn0pIHVudGlsIHN0YWJsZSBjYXRjaGVzIHVwYCxcbiAgICAgICAgICAgIHZhbHVlOiAnc3RheScgYXMgQ2hhbm5lbERvd25ncmFkZUNob2ljZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlU2VsZWN0fVxuICAgICAgLz5cbiAgICA8L0RpYWxvZz5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsSUFBSSxRQUFRLFdBQVc7QUFDaEMsU0FBU0MsTUFBTSxRQUFRLHlCQUF5QjtBQUNoRCxTQUFTQyxNQUFNLFFBQVEsMkJBQTJCO0FBRWxELE9BQU8sS0FBS0Msc0JBQXNCLEdBQUcsV0FBVyxHQUFHLE1BQU0sR0FBRyxRQUFRO0FBRXBFLEtBQUtDLEtBQUssR0FBRztFQUNYQyxjQUFjLEVBQUUsTUFBTTtFQUN0QkMsUUFBUSxFQUFFLENBQUNDLE1BQU0sRUFBRUosc0JBQXNCLEVBQUUsR0FBRyxJQUFJO0FBQ3BELENBQUM7O0FBRUQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQUFLLHVCQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQWdDO0lBQUFOLGNBQUE7SUFBQUM7RUFBQSxJQUFBRyxFQUcvQjtFQUFBLElBQUFHLEVBQUE7RUFBQSxJQUFBRixDQUFBLFFBQUFKLFFBQUE7SUFDTk0sRUFBQSxZQUFBQyxhQUFBQyxLQUFBO01BQ0VSLFFBQVEsQ0FBQ1EsS0FBSyxDQUFDO0lBQUEsQ0FDaEI7SUFBQUosQ0FBQSxNQUFBSixRQUFBO0lBQUFJLENBQUEsTUFBQUUsRUFBQTtFQUFBO0lBQUFBLEVBQUEsR0FBQUYsQ0FBQTtFQUFBO0VBRkQsTUFBQUcsWUFBQSxHQUFBRCxFQUVDO0VBQUEsSUFBQUcsRUFBQTtFQUFBLElBQUFMLENBQUEsUUFBQUosUUFBQTtJQUVEUyxFQUFBLFlBQUFDLGFBQUE7TUFDRVYsUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUFBLENBQ25CO0lBQUFJLENBQUEsTUFBQUosUUFBQTtJQUFBSSxDQUFBLE1BQUFLLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFMLENBQUE7RUFB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