mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 06:15:51 +00:00
更新大量 tsx 原始文件; 已经迁移 login panel; 部分 (#121)
* style(B1-1): 格式化 ink/buddy/cli/context/screens/tasks/services/keybindings/state (43 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 修复了 Box.tsx 和 ScrollBox.tsx 中无效的 global.d.ts import。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-2): 格式化 commands (79 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-3): 格式化 components/messages,permissions,mcp,sandbox,shell (104 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-4): 格式化 components/PromptInput,FeedbackSurvey,tasks,agents,skills,design-system,wizard (73 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-5): 格式化 components其余 + hooks + tools (232 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * style(B1-6): 格式化 main/entrypoints/utils/moreright (21 files) 纯格式化:移除分号、React Compiler import、import 多行展开。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * docs: 更新 README,新增 Run.ps1/TODO.md,删除 V6.md - README.md: 大幅重写,更详细版本历史和配置示例 - Run.ps1: 新增 Windows 启动脚本 - TODO.md: 新增包完成清单 - V6.md: 删除(架构重构规划已不适用) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: 修复以前的问题 * fix: 修复 login 面板的问题 --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,139 +1,69 @@
|
||||
import { c as _c } from "react/compiler-runtime";
|
||||
import chalk from 'chalk';
|
||||
import React from 'react';
|
||||
import { useClipboardImageHint } from '../hooks/useClipboardImageHint.js';
|
||||
import { useVimInput } from '../hooks/useVimInput.js';
|
||||
import { Box, color, useTerminalFocus, useTheme } from '../ink.js';
|
||||
import type { VimTextInputProps } from '../types/textInputTypes.js';
|
||||
import type { TextHighlight } from '../utils/textHighlighting.js';
|
||||
import { BaseTextInput } from './BaseTextInput.js';
|
||||
import chalk from 'chalk'
|
||||
import React from 'react'
|
||||
import { useClipboardImageHint } from '../hooks/useClipboardImageHint.js'
|
||||
import { useVimInput } from '../hooks/useVimInput.js'
|
||||
import { Box, color, useTerminalFocus, useTheme } from '../ink.js'
|
||||
import type { VimTextInputProps } from '../types/textInputTypes.js'
|
||||
import type { TextHighlight } from '../utils/textHighlighting.js'
|
||||
import { BaseTextInput } from './BaseTextInput.js'
|
||||
|
||||
export type Props = VimTextInputProps & {
|
||||
highlights?: TextHighlight[];
|
||||
};
|
||||
export default function VimTextInput(props) {
|
||||
const $ = _c(38);
|
||||
const [theme] = useTheme();
|
||||
const isTerminalFocused = useTerminalFocus();
|
||||
useClipboardImageHint(isTerminalFocused, !!props.onImagePaste);
|
||||
const t0 = props.value;
|
||||
const t1 = props.onChange;
|
||||
const t2 = props.onSubmit;
|
||||
const t3 = props.onExit;
|
||||
const t4 = props.onExitMessage;
|
||||
const t5 = props.onHistoryReset;
|
||||
const t6 = props.onHistoryUp;
|
||||
const t7 = props.onHistoryDown;
|
||||
const t8 = props.onClearInput;
|
||||
const t9 = props.focus;
|
||||
const t10 = props.mask;
|
||||
const t11 = props.multiline;
|
||||
const t12 = props.showCursor ? " " : "";
|
||||
const t13 = props.highlightPastedText;
|
||||
const t14 = isTerminalFocused ? chalk.inverse : _temp;
|
||||
let t15;
|
||||
if ($[0] !== theme) {
|
||||
t15 = color("text", theme);
|
||||
$[0] = theme;
|
||||
$[1] = t15;
|
||||
} else {
|
||||
t15 = $[1];
|
||||
}
|
||||
let t16;
|
||||
if ($[2] !== props.columns || $[3] !== props.cursorOffset || $[4] !== props.disableCursorMovementForUpDownKeys || $[5] !== props.disableEscapeDoublePress || $[6] !== props.focus || $[7] !== props.highlightPastedText || $[8] !== props.inputFilter || $[9] !== props.mask || $[10] !== props.maxVisibleLines || $[11] !== props.multiline || $[12] !== props.onChange || $[13] !== props.onChangeCursorOffset || $[14] !== props.onClearInput || $[15] !== props.onExit || $[16] !== props.onExitMessage || $[17] !== props.onHistoryDown || $[18] !== props.onHistoryReset || $[19] !== props.onHistoryUp || $[20] !== props.onImagePaste || $[21] !== props.onModeChange || $[22] !== props.onSubmit || $[23] !== props.onUndo || $[24] !== props.value || $[25] !== t12 || $[26] !== t14 || $[27] !== t15) {
|
||||
t16 = {
|
||||
value: t0,
|
||||
onChange: t1,
|
||||
onSubmit: t2,
|
||||
onExit: t3,
|
||||
onExitMessage: t4,
|
||||
onHistoryReset: t5,
|
||||
onHistoryUp: t6,
|
||||
onHistoryDown: t7,
|
||||
onClearInput: t8,
|
||||
focus: t9,
|
||||
mask: t10,
|
||||
multiline: t11,
|
||||
cursorChar: t12,
|
||||
highlightPastedText: t13,
|
||||
invert: t14,
|
||||
themeText: t15,
|
||||
columns: props.columns,
|
||||
maxVisibleLines: props.maxVisibleLines,
|
||||
onImagePaste: props.onImagePaste,
|
||||
disableCursorMovementForUpDownKeys: props.disableCursorMovementForUpDownKeys,
|
||||
disableEscapeDoublePress: props.disableEscapeDoublePress,
|
||||
externalOffset: props.cursorOffset,
|
||||
onOffsetChange: props.onChangeCursorOffset,
|
||||
inputFilter: props.inputFilter,
|
||||
onModeChange: props.onModeChange,
|
||||
onUndo: props.onUndo
|
||||
};
|
||||
$[2] = props.columns;
|
||||
$[3] = props.cursorOffset;
|
||||
$[4] = props.disableCursorMovementForUpDownKeys;
|
||||
$[5] = props.disableEscapeDoublePress;
|
||||
$[6] = props.focus;
|
||||
$[7] = props.highlightPastedText;
|
||||
$[8] = props.inputFilter;
|
||||
$[9] = props.mask;
|
||||
$[10] = props.maxVisibleLines;
|
||||
$[11] = props.multiline;
|
||||
$[12] = props.onChange;
|
||||
$[13] = props.onChangeCursorOffset;
|
||||
$[14] = props.onClearInput;
|
||||
$[15] = props.onExit;
|
||||
$[16] = props.onExitMessage;
|
||||
$[17] = props.onHistoryDown;
|
||||
$[18] = props.onHistoryReset;
|
||||
$[19] = props.onHistoryUp;
|
||||
$[20] = props.onImagePaste;
|
||||
$[21] = props.onModeChange;
|
||||
$[22] = props.onSubmit;
|
||||
$[23] = props.onUndo;
|
||||
$[24] = props.value;
|
||||
$[25] = t12;
|
||||
$[26] = t14;
|
||||
$[27] = t15;
|
||||
$[28] = t16;
|
||||
} else {
|
||||
t16 = $[28];
|
||||
}
|
||||
const vimInputState = useVimInput(t16);
|
||||
const {
|
||||
mode,
|
||||
setMode
|
||||
} = vimInputState;
|
||||
let t17;
|
||||
let t18;
|
||||
if ($[29] !== mode || $[30] !== props.initialMode || $[31] !== setMode) {
|
||||
t17 = () => {
|
||||
if (props.initialMode && props.initialMode !== mode) {
|
||||
setMode(props.initialMode);
|
||||
}
|
||||
};
|
||||
t18 = [props.initialMode, mode, setMode];
|
||||
$[29] = mode;
|
||||
$[30] = props.initialMode;
|
||||
$[31] = setMode;
|
||||
$[32] = t17;
|
||||
$[33] = t18;
|
||||
} else {
|
||||
t17 = $[32];
|
||||
t18 = $[33];
|
||||
}
|
||||
React.useEffect(t17, t18);
|
||||
let t19;
|
||||
if ($[34] !== isTerminalFocused || $[35] !== props || $[36] !== vimInputState) {
|
||||
t19 = <Box flexDirection="column"><BaseTextInput inputState={vimInputState} terminalFocus={isTerminalFocused} highlights={props.highlights} {...props} /></Box>;
|
||||
$[34] = isTerminalFocused;
|
||||
$[35] = props;
|
||||
$[36] = vimInputState;
|
||||
$[37] = t19;
|
||||
} else {
|
||||
t19 = $[37];
|
||||
}
|
||||
return t19;
|
||||
highlights?: TextHighlight[]
|
||||
}
|
||||
function _temp(text) {
|
||||
return text;
|
||||
|
||||
export default function VimTextInput(props: Props): React.ReactNode {
|
||||
const [theme] = useTheme()
|
||||
const isTerminalFocused = useTerminalFocus()
|
||||
|
||||
// Show hint when terminal regains focus and clipboard has an image
|
||||
useClipboardImageHint(isTerminalFocused, !!props.onImagePaste)
|
||||
|
||||
const vimInputState = useVimInput({
|
||||
value: props.value,
|
||||
onChange: props.onChange,
|
||||
onSubmit: props.onSubmit,
|
||||
onExit: props.onExit,
|
||||
onExitMessage: props.onExitMessage,
|
||||
onHistoryReset: props.onHistoryReset,
|
||||
onHistoryUp: props.onHistoryUp,
|
||||
onHistoryDown: props.onHistoryDown,
|
||||
onClearInput: props.onClearInput,
|
||||
focus: props.focus,
|
||||
mask: props.mask,
|
||||
multiline: props.multiline,
|
||||
cursorChar: props.showCursor ? ' ' : '',
|
||||
highlightPastedText: props.highlightPastedText,
|
||||
invert: isTerminalFocused ? chalk.inverse : (text: string) => text,
|
||||
themeText: color('text', theme),
|
||||
columns: props.columns,
|
||||
maxVisibleLines: props.maxVisibleLines,
|
||||
onImagePaste: props.onImagePaste,
|
||||
disableCursorMovementForUpDownKeys:
|
||||
props.disableCursorMovementForUpDownKeys,
|
||||
disableEscapeDoublePress: props.disableEscapeDoublePress,
|
||||
externalOffset: props.cursorOffset,
|
||||
onOffsetChange: props.onChangeCursorOffset,
|
||||
inputFilter: props.inputFilter,
|
||||
onModeChange: props.onModeChange,
|
||||
onUndo: props.onUndo,
|
||||
})
|
||||
|
||||
const { mode, setMode } = vimInputState
|
||||
|
||||
React.useEffect(() => {
|
||||
if (props.initialMode && props.initialMode !== mode) {
|
||||
setMode(props.initialMode)
|
||||
}
|
||||
}, [props.initialMode, mode, setMode])
|
||||
|
||||
return (
|
||||
<Box flexDirection="column">
|
||||
<BaseTextInput
|
||||
inputState={vimInputState}
|
||||
terminalFocus={isTerminalFocused}
|
||||
highlights={props.highlights}
|
||||
{...props}
|
||||
/>
|
||||
</Box>
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user