更新用户界面组件,使用 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
+6 -2
View File
@@ -1,5 +1,5 @@
import React, { useEffect, useRef, useState } from "react";
import { Box, Text, useInput } from "ink";
import { Box, Text, useInput, useStdin } from "ink";
import { makerConfig } from "../config";
import { AsterExchangeAdapter } from "../exchanges/aster-adapter";
import { MakerEngine, type MakerEngineSnapshot } from "../core/maker-engine";
@@ -10,9 +10,13 @@ interface MakerAppProps {
onExit: () => void;
}
const inputSupported = Boolean(process.stdin && (process.stdin as any).isTTY);
function useInputSupported() {
const { isRawModeSupported } = useStdin();
return Boolean(isRawModeSupported);
}
export function MakerApp({ onExit }: MakerAppProps) {
const inputSupported = useInputSupported();
const [snapshot, setSnapshot] = useState<MakerEngineSnapshot | null>(null);
const [error, setError] = useState<Error | null>(null);
const engineRef = useRef<MakerEngine | null>(null);