claude-code/src/components/KeybindingWarnings.tsx
2026-03-31 23:03:47 +08:00

55 lines
2.3 KiB
TypeScript

import { c as _c } from "react/compiler-runtime";
import React from 'react';
import { Box, Text } from '../ink.js';
import { getCachedKeybindingWarnings, getKeybindingsPath, isKeybindingCustomizationEnabled } from '../keybindings/loadUserBindings.js';
/**
* Displays keybinding validation warnings in the UI.
* Similar to McpParsingWarnings, this provides persistent visibility
* of configuration issues.
*
* Only shown when keybinding customization is enabled (ant users + feature gate).
*/
export function KeybindingWarnings() {
const $ = _c(2);
if (!isKeybindingCustomizationEnabled()) {
return null;
}
let t0;
let t1;
if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
t1 = Symbol.for("react.early_return_sentinel");
bb0: {
const warnings = getCachedKeybindingWarnings();
if (warnings.length === 0) {
t1 = null;
break bb0;
}
const errors = warnings.filter(_temp);
const warns = warnings.filter(_temp2);
t0 = <Box flexDirection="column" marginTop={1} marginBottom={1}><Text bold={true} color={errors.length > 0 ? "error" : "warning"}>Keybinding Configuration Issues</Text><Box><Text dimColor={true}>Location: </Text><Text dimColor={true}>{getKeybindingsPath()}</Text></Box><Box marginLeft={1} flexDirection="column" marginTop={1}>{errors.map(_temp3)}{warns.map(_temp4)}</Box></Box>;
}
$[0] = t0;
$[1] = t1;
} else {
t0 = $[0];
t1 = $[1];
}
if (t1 !== Symbol.for("react.early_return_sentinel")) {
return t1;
}
return t0;
}
function _temp4(warning, i_0) {
return <Box key={`warning-${i_0}`} flexDirection="column"><Box><Text dimColor={true}> </Text><Text color="warning">[Warning]</Text><Text dimColor={true}> {warning.message}</Text></Box>{warning.suggestion && <Box marginLeft={3}><Text dimColor={true}> {warning.suggestion}</Text></Box>}</Box>;
}
function _temp3(error, i) {
return <Box key={`error-${i}`} flexDirection="column"><Box><Text dimColor={true}> </Text><Text color="error">[Error]</Text><Text dimColor={true}> {error.message}</Text></Box>{error.suggestion && <Box marginLeft={3}><Text dimColor={true}> {error.suggestion}</Text></Box>}</Box>;
}
function _temp2(w_0) {
return w_0.severity === "warning";
}
function _temp(w) {
return w.severity === "error";
}