mirror of
http://10.0.2.1:3031/sauer/claude-code.git
synced 2026-06-30 16:56:58 +10:00
150 lines
15 KiB
TypeScript
150 lines
15 KiB
TypeScript
|
|
import { c as _c } from "react/compiler-runtime";
|
||
|
|
import figures from 'figures';
|
||
|
|
import * as React from 'react';
|
||
|
|
import { useCallback, useEffect } from 'react';
|
||
|
|
import { getOriginalCwd } from '../../../bootstrap/state.js';
|
||
|
|
import type { CommandResultDisplay } from '../../../commands.js';
|
||
|
|
import { Select } from '../../../components/CustomSelect/select.js';
|
||
|
|
import { Box, Text } from '../../../ink.js';
|
||
|
|
import type { ToolPermissionContext } from '../../../Tool.js';
|
||
|
|
import { useTabHeaderFocus } from '../../design-system/Tabs.js';
|
||
|
|
type Props = {
|
||
|
|
onExit: (result?: string, options?: {
|
||
|
|
display?: CommandResultDisplay;
|
||
|
|
}) => void;
|
||
|
|
toolPermissionContext: ToolPermissionContext;
|
||
|
|
onRequestAddDirectory: () => void;
|
||
|
|
onRequestRemoveDirectory: (path: string) => void;
|
||
|
|
onHeaderFocusChange?: (focused: boolean) => void;
|
||
|
|
};
|
||
|
|
type DirectoryItem = {
|
||
|
|
path: string;
|
||
|
|
isCurrent: boolean;
|
||
|
|
isDeletable: boolean;
|
||
|
|
};
|
||
|
|
export function WorkspaceTab(t0) {
|
||
|
|
const $ = _c(23);
|
||
|
|
const {
|
||
|
|
onExit,
|
||
|
|
toolPermissionContext,
|
||
|
|
onRequestAddDirectory,
|
||
|
|
onRequestRemoveDirectory,
|
||
|
|
onHeaderFocusChange
|
||
|
|
} = t0;
|
||
|
|
const {
|
||
|
|
headerFocused,
|
||
|
|
focusHeader
|
||
|
|
} = useTabHeaderFocus();
|
||
|
|
let t1;
|
||
|
|
let t2;
|
||
|
|
if ($[0] !== headerFocused || $[1] !== onHeaderFocusChange) {
|
||
|
|
t1 = () => {
|
||
|
|
onHeaderFocusChange?.(headerFocused);
|
||
|
|
};
|
||
|
|
t2 = [headerFocused, onHeaderFocusChange];
|
||
|
|
$[0] = headerFocused;
|
||
|
|
$[1] = onHeaderFocusChange;
|
||
|
|
$[2] = t1;
|
||
|
|
$[3] = t2;
|
||
|
|
} else {
|
||
|
|
t1 = $[2];
|
||
|
|
t2 = $[3];
|
||
|
|
}
|
||
|
|
useEffect(t1, t2);
|
||
|
|
let t3;
|
||
|
|
if ($[4] !== toolPermissionContext.additionalWorkingDirectories) {
|
||
|
|
t3 = Array.from(toolPermissionContext.additionalWorkingDirectories.keys()).map(_temp);
|
||
|
|
$[4] = toolPermissionContext.additionalWorkingDirectories;
|
||
|
|
$[5] = t3;
|
||
|
|
} else {
|
||
|
|
t3 = $[5];
|
||
|
|
}
|
||
|
|
const additionalDirectories = t3;
|
||
|
|
let t4;
|
||
|
|
if ($[6] !== additionalDirectories || $[7] !== onRequestAddDirectory || $[8] !== onRequestRemoveDirectory) {
|
||
|
|
t4 = selectedValue => {
|
||
|
|
if (selectedValue === "add-directory") {
|
||
|
|
onRequestAddDirectory();
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
const directory = additionalDirectories.find(d => d.path === selectedValue);
|
||
|
|
if (directory && directory.isDeletable) {
|
||
|
|
onRequestRemoveDirectory(directory.path);
|
||
|
|
}
|
||
|
|
};
|
||
|
|
$[6] = additionalDirectories;
|
||
|
|
$[7] = onRequestAddDirectory;
|
||
|
|
$[8] = onRequestRemoveDirectory;
|
||
|
|
$[9] = t4;
|
||
|
|
} else {
|
||
|
|
t4 = $[9];
|
||
|
|
}
|
||
|
|
const handleDirectorySelect = t4;
|
||
|
|
let t5;
|
||
|
|
if ($[10] !== onExit) {
|
||
|
|
t5 = () => onExit("Workspace dialog dismissed", {
|
||
|
|
display: "system"
|
||
|
|
});
|
||
|
|
$[10] = onExit;
|
||
|
|
$[11] = t5;
|
||
|
|
} else {
|
||
|
|
t5 = $[11];
|
||
|
|
}
|
||
|
|
const handleCancel = t5;
|
||
|
|
let opts;
|
||
|
|
if ($[12] !== additionalDirectories) {
|
||
|
|
opts = additionalDirectories.map(_temp2);
|
||
|
|
let t6;
|
||
|
|
if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t6 = {
|
||
|
|
label: `Add directory${figures.ellipsis}`,
|
||
|
|
value: "add-directory"
|
||
|
|
};
|
||
|
|
$[14] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[14];
|
||
|
|
}
|
||
|
|
opts.push(t6);
|
||
|
|
$[12] = additionalDirectories;
|
||
|
|
$[13] = opts;
|
||
|
|
} else {
|
||
|
|
opts = $[13];
|
||
|
|
}
|
||
|
|
const options = opts;
|
||
|
|
let t6;
|
||
|
|
if ($[15] === Symbol.for("react.memo_cache_sentinel")) {
|
||
|
|
t6 = <Box flexDirection="row" marginTop={1} marginLeft={2} gap={1}><Text>{`- ${getOriginalCwd()}`}</Text><Text dimColor={true}>(Original working directory)</Text></Box>;
|
||
|
|
$[15] = t6;
|
||
|
|
} else {
|
||
|
|
t6 = $[15];
|
||
|
|
}
|
||
|
|
const t7 = Math.min(10, options.length);
|
||
|
|
let t8;
|
||
|
|
if ($[16] !== focusHeader || $[17] !== handleCancel || $[18] !== handleDirectorySelect || $[19] !== headerFocused || $[20] !== options || $[21] !== t7) {
|
||
|
|
t8 = <Box flexDirection="column" marginBottom={1}>{t6}<Select options={options} onChange={handleDirectorySelect} onCancel={handleCancel} visibleOptionCount={t7} onUpFromFirstItem={focusHeader} isDisabled={headerFocused} /></Box>;
|
||
|
|
$[16] = focusHeader;
|
||
|
|
$[17] = handleCancel;
|
||
|
|
$[18] = handleDirectorySelect;
|
||
|
|
$[19] = headerFocused;
|
||
|
|
$[20] = options;
|
||
|
|
$[21] = t7;
|
||
|
|
$[22] = t8;
|
||
|
|
} else {
|
||
|
|
t8 = $[22];
|
||
|
|
}
|
||
|
|
return t8;
|
||
|
|
}
|
||
|
|
function _temp2(dir) {
|
||
|
|
return {
|
||
|
|
label: dir.path,
|
||
|
|
value: dir.path
|
||
|
|
};
|
||
|
|
}
|
||
|
|
function _temp(path) {
|
||
|
|
return {
|
||
|
|
path,
|
||
|
|
isCurrent: false,
|
||
|
|
isDeletable: true
|
||
|
|
};
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmaWd1cmVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsImdldE9yaWdpbmFsQ3dkIiwiQ29tbWFuZFJlc3VsdERpc3BsYXkiLCJTZWxlY3QiLCJCb3giLCJUZXh0IiwiVG9vbFBlcm1pc3Npb25Db250ZXh0IiwidXNlVGFiSGVhZGVyRm9jdXMiLCJQcm9wcyIsIm9uRXhpdCIsInJlc3VsdCIsIm9wdGlvbnMiLCJkaXNwbGF5IiwidG9vbFBlcm1pc3Npb25Db250ZXh0Iiwib25SZXF1ZXN0QWRkRGlyZWN0b3J5Iiwib25SZXF1ZXN0UmVtb3ZlRGlyZWN0b3J5IiwicGF0aCIsIm9uSGVhZGVyRm9jdXNDaGFuZ2UiLCJmb2N1c2VkIiwiRGlyZWN0b3J5SXRlbSIsImlzQ3VycmVudCIsImlzRGVsZXRhYmxlIiwiV29ya3NwYWNlVGFiIiwidDAiLCIkIiwiX2MiLCJoZWFkZXJGb2N1c2VkIiwiZm9jdXNIZWFkZXIiLCJ0MSIsInQyIiwidDMiLCJhZGRpdGlvbmFsV29ya2luZ0RpcmVjdG9yaWVzIiwiQXJyYXkiLCJmcm9tIiwia2V5cyIsIm1hcCIsIl90ZW1wIiwiYWRkaXRpb25hbERpcmVjdG9yaWVzIiwidDQiLCJzZWxlY3RlZFZhbHVlIiwiZGlyZWN0b3J5IiwiZmluZCIsImQiLCJoYW5kbGVEaXJlY3RvcnlTZWxlY3QiLCJ0NSIsImhhbmRsZUNhbmNlbCIsIm9wdHMiLCJfdGVtcDIiLCJ0NiIsIlN5bWJvbCIsImZvciIsImxhYmVsIiwiZWxsaXBzaXMiLCJ2YWx1ZSIsInB1c2giLCJ0NyIsIk1hdGgiLCJtaW4iLCJsZW5ndGgiLCJ0OCIsImRpciJdLCJzb3VyY2VzIjpbIldvcmtzcGFjZVRhYi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZpZ3VyZXMgZnJvbSAnZmlndXJlcydcbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgZ2V0T3JpZ2luYWxDd2QgfSBmcm9tICcuLi8uLi8uLi9ib290c3RyYXAvc3RhdGUuanMnXG5pbXBvcnQgdHlwZSB7IENvbW1hbmRSZXN1bHREaXNwbGF5IH0gZnJvbSAnLi4vLi4vLi4vY29tbWFuZHMuanMnXG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL0N1c3RvbVNlbGVjdC9zZWxlY3QuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi8uLi8uLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IFRvb2xQZXJtaXNzaW9uQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL1Rvb2wuanMnXG5pbXBvcnQgeyB1c2VUYWJIZWFkZXJGb2N1cyB9IGZyb20gJy4uLy4uL2Rlc2lnbi1zeXN0ZW0vVGFicy5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgb25FeGl0OiAoXG4gICAgcmVzdWx0Pzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7IGRpc3BsYXk/OiBDb21tYW5kUmVzdWx0RGlzcGxheSB9LFxuICApID0+IHZvaWRcbiAgdG9vbFBlcm1pc3Npb25Db250ZXh0OiBUb29sUGVybWlzc2lvbkNvbnRleHRcbiAgb25SZXF1ZXN0QWRkRGlyZWN0b3J5OiAoKSA9PiB2b2lkXG4gIG9uUmVxdWVzdFJlbW92ZURpcmVjdG9yeTogKHBhdGg6IHN0cmluZykgPT4gdm9pZFxuICBvbkhlYWRlckZvY3VzQ2hhbmdlPzogKGZvY3VzZWQ6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxudHlwZSBEaXJlY3RvcnlJdGVtID0ge1xuICBwYXRoOiBzdHJpbmdcbiAgaXNDdXJyZW50OiBib29sZWFuXG4gIGlzRGVsZXRhYmxlOiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBXb3Jrc3BhY2VUYWIoe1xuICBvbkV4aXQsXG4gIHRvb2xQZXJtaXNzaW9uQ29udGV4dCxcbiAgb25SZXF1ZXN0QWRkRGlyZWN0b3J5LFxuICBvblJlcXVlc3RSZW1vdmVEaXJlY3RvcnksXG4gIG9uSGVhZGVyRm9jdXNDaGFuZ2UsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHsgaGVhZGVyRm9jdXNlZCwgZm9jdXNIZWFkZXIgfSA9IHVzZVRhYkhlYWRlckZvY3VzKClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBvbkhlYWRlckZvY3VzQ2hhbmdlPy4oaGVhZGVyRm9jdXNlZClcbiAgfSwgW2hlYWRlckZvY3VzZWQsIG9uSGVhZGVyRm9jdXNDaGFuZ2VdKVxuICAvLyBHZXQgb25seSBhZGRpdGlvbmFsIHdvcmtzcGFjZSBkaXJlY3RvcmllcyAobm90IHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5KVxuICBjb25zdCBhZGRpdGlvbmFsRGlyZWN0b3JpZXMgPSBSZWFjdC51c2VNZW1vKCgpOiBEaXJlY3RvcnlJdGVtW10gPT4ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKFxuICAgICAgdG9vbFBlcm1pc3Npb25Db250ZXh0LmFkZGl0aW9uYWxXb3JraW5nRGlyZWN0b3JpZXMua2V5cygpLFxuICAgICkubWFwKHBhdGggPT4gKHtcbiAgICAgIHBhdGgsXG4gICAgICBpc0N1cnJlbnQ6IGZhbHNlLFxuICAgICAgaXNEZWxldGFibGU6IHRydWUsXG4gICAgfSkpXG4gIH0sIFt0b29sUGVybWlzc2lvbkNvbnRleHQuYWRkaXRpb25hbFdvcmtpbmdEaXJlY3Rvcmllc10pXG5cbiAgY29uc3QgaGFuZGxlRGlyZWN0b3J5U2VsZWN0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlbGVjdGVkVmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgaWYgKHNlbGVjdGVkVmFsdWUgPT09ICdhZGQtZGlyZWN0b3J5Jykge1xuICAgICAgICBvblJlcXVlc3RBZGREaXJlY3RvcnkoKVxuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgY29uc3QgZGlyZWN0b3J5ID0gYWRkaXRpb25hbERpcmVjdG9yaWVzLmZpbmQoXG4gICAgICAgIGQgPT4gZC5wYXRoID09PSBzZWxlY3RlZFZhbHVlLFxuICAgICAgKVxuICAgICAgaWYgKGRpcmVjdG9yeSAmJiBkaXJlY3RvcnkuaXNEZWxldGFibGUpIHtcbiAgICAgICAgb25SZXF1ZXN0UmVtb3ZlRGlyZWN0b3J5KGRpcmVjdG9yeS5wYXRoKVxuICAgICAgfVxuICAgIH0sXG4gICAgW2FkZGl0aW9uYWxEaXJlY3Rvcmllcywgb25SZXF1ZXN0QWRkRGlyZWN0b3J5LCBvblJlcXVlc3RSZW1vdmVEaXJlY3RvcnldLFxuICApXG5cbiAgY29uc3QgaGFuZGxlQ2FuY2VsID0gdXNlQ2FsbGJhY2soXG4gICAgKCkgPT4gb25FeGl0KCdXb3Jrc3BhY2UgZGlhbG9nIGRpc21pc3NlZCcsIHsgZGlzcGxheTogJ3N5c3RlbScgfSksXG4gICA
|