session.tsx
commands/session/session.tsx
140
Lines
13009
Bytes
1
Exports
10
Imports
10
Keywords
What this is
This page documents one file from the repository and includes its full source so you can read it without leaving the docs site.
Beginner explanation
This file lives in the command layer. It likely turns a user action into concrete program behavior.
How it is used
Start from the exports list and related files. Those are the easiest clues for where this file fits into the system.
Expert explanation
Architecturally, this file intersects with session-engine, commands. It contains 140 lines, 10 detected imports, and 1 detected exports.
Important relationships
Detected exports
call
Keywords
textremotesessionurlreactelseondoneqrcodepanesymbolmemo_cache_sentineldimcolor
Detected imports
react/compiler-runtimeqrcodereactreact../../components/design-system/Pane.js../../ink.js../../keybindings/useKeybinding.js../../state/AppState.js../../types/command.js../../utils/debug.js
Source notes
This page embeds the full file contents. Small or leaf files are still indexed honestly instead of being over-explained.
Full source
import { c as _c } from "react/compiler-runtime";
import { toString as qrToString } from 'qrcode';
import * as React from 'react';
import { useEffect, useState } from 'react';
import { Pane } from '../../components/design-system/Pane.js';
import { Box, Text } from '../../ink.js';
import { useKeybinding } from '../../keybindings/useKeybinding.js';
import { useAppState } from '../../state/AppState.js';
import type { LocalJSXCommandCall } from '../../types/command.js';
import { logForDebugging } from '../../utils/debug.js';
type Props = {
onDone: () => void;
};
function SessionInfo(t0) {
const $ = _c(19);
const {
onDone
} = t0;
const remoteSessionUrl = useAppState(_temp);
const [qrCode, setQrCode] = useState("");
let t1;
let t2;
if ($[0] !== remoteSessionUrl) {
t1 = () => {
if (!remoteSessionUrl) {
return;
}
const url = remoteSessionUrl;
const generateQRCode = async function generateQRCode() {
const qr = await qrToString(url, {
type: "utf8",
errorCorrectionLevel: "L"
});
setQrCode(qr);
};
generateQRCode().catch(_temp2);
};
t2 = [remoteSessionUrl];
$[0] = remoteSessionUrl;
$[1] = t1;
$[2] = t2;
} else {
t1 = $[1];
t2 = $[2];
}
useEffect(t1, t2);
let t3;
if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
t3 = {
context: "Confirmation"
};
$[3] = t3;
} else {
t3 = $[3];
}
useKeybinding("confirm:no", onDone, t3);
if (!remoteSessionUrl) {
let t4;
if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
t4 = <Pane><Text color="warning">Not in remote mode. Start with `claude --remote` to use this command.</Text><Text dimColor={true}>(press esc to close)</Text></Pane>;
$[4] = t4;
} else {
t4 = $[4];
}
return t4;
}
let T0;
let t4;
let t5;
if ($[5] !== qrCode) {
const lines = qrCode.split("\n").filter(_temp3);
const isLoading = lines.length === 0;
T0 = Pane;
if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
t4 = <Box marginBottom={1}><Text bold={true}>Remote session</Text></Box>;
$[9] = t4;
} else {
t4 = $[9];
}
t5 = isLoading ? <Text dimColor={true}>Generating QR code…</Text> : lines.map(_temp4);
$[5] = qrCode;
$[6] = T0;
$[7] = t4;
$[8] = t5;
} else {
T0 = $[6];
t4 = $[7];
t5 = $[8];
}
let t6;
if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
t6 = <Text dimColor={true}>Open in browser: </Text>;
$[10] = t6;
} else {
t6 = $[10];
}
let t7;
if ($[11] !== remoteSessionUrl) {
t7 = <Box marginTop={1}>{t6}<Text color="ide">{remoteSessionUrl}</Text></Box>;
$[11] = remoteSessionUrl;
$[12] = t7;
} else {
t7 = $[12];
}
let t8;
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
t8 = <Box marginTop={1}><Text dimColor={true}>(press esc to close)</Text></Box>;
$[13] = t8;
} else {
t8 = $[13];
}
let t9;
if ($[14] !== T0 || $[15] !== t4 || $[16] !== t5 || $[17] !== t7) {
t9 = <T0>{t4}{t5}{t7}{t8}</T0>;
$[14] = T0;
$[15] = t4;
$[16] = t5;
$[17] = t7;
$[18] = t9;
} else {
t9 = $[18];
}
return t9;
}
function _temp4(line_0, i) {
return <Text key={i}>{line_0}</Text>;
}
function _temp3(line) {
return line.length > 0;
}
function _temp2(e) {
logForDebugging("QR code generation failed", e);
}
function _temp(s) {
return s.remoteSessionUrl;
}
export const call: LocalJSXCommandCall = async onDone => {
return <SessionInfo onDone={onDone} />;
};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0b1N0cmluZyIsInFyVG9TdHJpbmciLCJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwiUGFuZSIsIkJveCIsIlRleHQiLCJ1c2VLZXliaW5kaW5nIiwidXNlQXBwU3RhdGUiLCJMb2NhbEpTWENvbW1hbmRDYWxsIiwibG9nRm9yRGVidWdnaW5nIiwiUHJvcHMiLCJvbkRvbmUiLCJTZXNzaW9uSW5mbyIsInQwIiwiJCIsIl9jIiwicmVtb3RlU2Vzc2lvblVybCIsIl90ZW1wIiwicXJDb2RlIiwic2V0UXJDb2RlIiwidDEiLCJ0MiIsInVybCIsImdlbmVyYXRlUVJDb2RlIiwicXIiLCJ0eXBlIiwiZXJyb3JDb3JyZWN0aW9uTGV2ZWwiLCJjYXRjaCIsIl90ZW1wMiIsInQzIiwiU3ltYm9sIiwiZm9yIiwiY29udGV4dCIsInQ0IiwiVDAiLCJ0NSIsImxpbmVzIiwic3BsaXQiLCJmaWx0ZXIiLCJfdGVtcDMiLCJpc0xvYWRpbmciLCJsZW5ndGgiLCJtYXAiLCJfdGVtcDQiLCJ0NiIsInQ3IiwidDgiLCJ0OSIsImxpbmVfMCIsImkiLCJsaW5lIiwiZSIsInMiLCJjYWxsIl0sInNvdXJjZXMiOlsic2Vzc2lvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdG9TdHJpbmcgYXMgcXJUb1N0cmluZyB9IGZyb20gJ3FyY29kZSdcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgUGFuZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGVzaWduLXN5c3RlbS9QYW5lLmpzJ1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgdXNlS2V5YmluZGluZyB9IGZyb20gJy4uLy4uL2tleWJpbmRpbmdzL3VzZUtleWJpbmRpbmcuanMnXG5pbXBvcnQgeyB1c2VBcHBTdGF0ZSB9IGZyb20gJy4uLy4uL3N0YXRlL0FwcFN0YXRlLmpzJ1xuaW1wb3J0IHR5cGUgeyBMb2NhbEpTWENvbW1hbmRDYWxsIH0gZnJvbSAnLi4vLi4vdHlwZXMvY29tbWFuZC5qcydcbmltcG9ydCB7IGxvZ0ZvckRlYnVnZ2luZyB9IGZyb20gJy4uLy4uL3V0aWxzL2RlYnVnLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBvbkRvbmU6ICgpID0+IHZvaWRcbn1cblxuZnVuY3Rpb24gU2Vzc2lvbkluZm8oeyBvbkRvbmUgfTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCByZW1vdGVTZXNzaW9uVXJsID0gdXNlQXBwU3RhdGUocyA9PiBzLnJlbW90ZVNlc3Npb25VcmwpXG4gIGNvbnN0IFtxckNvZGUsIHNldFFyQ29kZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KCcnKVxuXG4gIC8vIEdlbmVyYXRlIFFSIGNvZGUgd2hlbiBVUkwgaXMgYXZhaWxhYmxlXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFyZW1vdGVTZXNzaW9uVXJsKSByZXR1cm5cblxuICAgIGNvbnN0IHVybCA9IHJlbW90ZVNlc3Npb25VcmxcbiAgICBhc3luYyBmdW5jdGlvbiBnZW5lcmF0ZVFSQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgIGNvbnN0IHFyID0gYXdhaXQgcXJUb1N0cmluZyh1cmwsIHtcbiAgICAgICAgdHlwZTogJ3V0ZjgnLFxuICAgICAgICBlcnJvckNvcnJlY3Rpb25MZXZlbDogJ0wnLFxuICAgICAgfSlcbiAgICAgIHNldFFyQ29kZShxcilcbiAgICB9XG4gICAgLy8gSW50ZW50aW9uYWxseSBzaWxlbnQgZmFpbCAtIFVSTCBpcyBzdGlsbCBzaG93biBzbyBRUiBpcyBub24tY3JpdGljYWxcbiAgICBnZW5lcmF0ZVFSQ29kZSgpLmNhdGNoKGUgPT4ge1xuICAgICAgbG9nRm9yRGVidWdnaW5nKCdRUiBjb2RlIGdlbmVyYXRpb24gZmFpbGVkJywgZSlcbiAgICB9KVxuICB9LCBbcmVtb3RlU2Vzc2lvblVybF0pXG5cbiAgLy8gSGFuZGxlIEVTQyB0byBkaXNtaXNzXG4gIHVzZUtleWJpbmRpbmcoJ2NvbmZpcm06bm8nLCBvbkRvbmUsIHsgY29udGV4dDogJ0NvbmZpcm1hdGlvbicgfSlcblxuICAvLyBOb3QgaW4gcmVtb3RlIG1vZGVcbiAgaWYgKCFyZW1vdGVTZXNzaW9uVXJsKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxQYW5lPlxuICAgICAgICA8VGV4dCBjb2xvcj1cIndhcm5pbmdcIj5cbiAgICAgICAgICBOb3QgaW4gcmVtb3RlIG1vZGUuIFN0YXJ0IHdpdGggYGNsYXVkZSAtLXJlbW90ZWAgdG8gdXNlIHRoaXMgY29tbWFuZC5cbiAgICAgICAgPC9UZXh0PlxuICAgICAgICA8VGV4dCBkaW1Db2xvcj4ocHJlc3MgZXNjIHRvIGNsb3NlKTwvVGV4dD5cbiAgICAgIDwvUGFuZT5cbiAgICApXG4gIH1cblxuICBjb25zdCBsaW5lcyA9IHFyQ29kZS5zcGxpdCgnXFxuJykuZmlsdGVyKGxpbmUgPT4gbGluZS5sZW5ndGggPiAwKVxuICBjb25zdCBpc0xvYWRpbmcgPSBsaW5lcy5sZW5ndGggPT09IDBcblxuICByZXR1cm4gKFxuICAgIDxQYW5lPlxuICAgICAgPEJveCBtYXJnaW5Cb3R0b209ezF9PlxuICAgICAgICA8VGV4dCBib2xkPlJlbW90ZSBzZXNzaW9uPC9UZXh0PlxuICAgICAgPC9Cb3g+XG5cbiAgICAgIHsvKiBRUiBDb2RlIC0gc2lsZW50bHkgZmFpbHMgaWYgZ2VuZXJhdGlvbiBlcnJvcnMsIFVSTCBpcyBzdGlsbCBzaG93biAqL31cbiAgICAgIHtpc0xvYWRpbmcgPyAoXG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPkdlbmVyYXRpbmcgUVIgY29kZeKApjwvVGV4dD5cbiAgICAgICkgOiAoXG4gICAgICAgIGxpbmVzLm1hcCgobGluZSwgaSkgPT4gPFRleHQga2V5PXtpfT57bGluZX08L1RleHQ+KVxuICAgICAgKX1cblxuICAgICAgey8qIFVSTCAqL31cbiAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+T3BlbiBpbiBicm93c2VyOiA8L1RleHQ+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwiaWRlXCI+e3JlbW90ZVNlc3Npb25Vcmx9PC9UZXh0PlxuICAgICAgPC9Cb3g+XG5cbiAgICAgIDxCb3ggbWFyZ2luVG9wPXsxfT5cbiAgICAgICAgPFRleHQgZGltQ29sb3I+KHByZXNzIGVzYyB0byBjbG9zZSk8L1RleHQ+XG4gICAgICA8L0JveD5cbiAgICA8L1BhbmU+XG4gIClcbn1cblxuZXhwb3J0IGNvbnN0IGNhbGw6IExvY2FsSlNYQ29tbWFuZENhbGwgPSBhc3luYyBvbkRvbmUgPT4ge1xuICByZXR1cm4gPFNlc3Npb25JbmZvIG9uRG9uZT17b25Eb25lfSAvPlxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsUUFBUSxJQUFJQyxVQUFVLFFBQVEsUUFBUTtBQUMvQyxPQUFPLEtBQUtDLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLFNBQVMsRUFBRUMsUUFBUSxRQUFRLE9BQU87QUFDM0MsU0FBU0MsSUFBSSxRQUFRLHdDQUF3QztBQUM3RCxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLGFBQWEsUUFBUSxvQ0FBb0M7QUFDbEUsU0FBU0MsV0FBVyxRQUFRLHlCQUF5QjtBQUNyRCxjQUFjQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDakUsU0FBU0MsZUFBZSxRQUFRLHNCQUFzQjtBQUV0RCxLQUFLQyxLQUFLLEdBQUc7RUFDWEMsTUFBTSxFQUFFLEdBQUcsR0FBRyxJQUFJO0FBQ3BCLENBQUM7QUFFRCxTQUFBQyxZQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQXFCO0lBQUFKO0VBQUEsSUFBQUUsRUFBaUI7RUFDcEMsTUFBQUcsZ0JBQUEsR0FBeUJULFdBQVcsQ0FBQ1UsS0FBdUIsQ0FBQztFQUM3RCxPQUFBQyxNQUFBLEVBQUFDLFNBQUEsSUFBNEJqQixRQUFRLENBQVMsRUFBRSxDQUFDO0VBQUEsSUFB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