diff --git a/src/screens/AskScreen.tsx b/src/screens/AskScreen.tsx index 56a27ac..b26fc43 100644 --- a/src/screens/AskScreen.tsx +++ b/src/screens/AskScreen.tsx @@ -212,6 +212,42 @@ function Bubble({ role, children, extra }: { role: 'user' | 'assistant'; childre ); } +/** + * منتظرِ جوابِ دستیار. سرویسِ مدل کلِ جواب را نگه میدارد و یکجا میفرستد؛ جوابِ + * کامل با شکل در ۲۰۲۶-۰۹-۲۹ حدودِ ۳۰ ثانیه طول کشید. پیامِ ثابت در آن مدت شبیهِ + * گیر کردن بود، پس متن با زمان جلو میرود. زمانها تقریبیاند و به مرحلهی واقعیِ + * سرور وصل نیستند. + */ +const THINKING_STEPS: [number, string][] = [ + [0, 'پی داره تو کتابت میگرده'], + [4, 'پی داره حلش میکنه'], + [15, 'داره قدمها رو مرتب مینویسه'], + [28, 'جوابِ کامل یه کم طول میکشه، الان میرسه'], +]; + +function Thinking() { + const [seconds, setSeconds] = useState(0); + useEffect(() => { + const started = Date.now(); + const timer = setInterval(() => setSeconds((Date.now() - started) / 1000), 1000); + return () => clearInterval(timer); + }, []); + const text = [...THINKING_STEPS].reverse().find(([at]) => seconds >= at)![1]; + return ( +