更新用户界面组件,使用 Ink 的 stdin 检测替代原有的 TTY 检测,确保在不同环境下的输入支持。同时,修改启动脚本以确保 Bun 启动时正确处理 TTY 输入,提升用户交互体验。

This commit is contained in:
discountry
2025-09-24 22:58:39 +08:00
parent 0122bcc9ba
commit b2005f2cc4
5 changed files with 27 additions and 9 deletions
+8 -2
View File
@@ -1,5 +1,5 @@
import React, { useState } from "react";
import { Box, Text, useInput } from "ink";
import { Box, Text, useInput, useStdin } from "ink";
import { TrendApp } from "./TrendApp";
import { MakerApp } from "./MakerApp";
import { OffsetMakerApp } from "./OffsetMakerApp";
@@ -32,9 +32,15 @@ const STRATEGIES: StrategyOption[] = [
},
];
const inputSupported = Boolean(process.stdin && (process.stdin as any).isTTY);
// Prefer Ink's stdin detection to avoid false negatives when spawned by shells
// that don't propagate process.stdin TTY flags correctly.
function useInputSupported() {
const { isRawModeSupported } = useStdin();
return Boolean(isRawModeSupported);
}
export function App() {
const inputSupported = useInputSupported();
const [cursor, setCursor] = useState(0);
const [selected, setSelected] = useState<StrategyOption | null>(null);