mirror of
https://github.com/openai/codex.git
synced 2026-04-24 14:45:27 +00:00
new spinner animation
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { log } from "../../utils/logger/log.js";
|
||||
import { useSpinner } from "../../utils/terminal-chat-utils.js";
|
||||
import { Box, Text, useInput, useStdin } from "ink";
|
||||
import React, { useState } from "react";
|
||||
import { useInterval } from "use-interval";
|
||||
@@ -75,34 +76,7 @@ export default function TerminalChatInputThinking({
|
||||
{ isActive: active },
|
||||
);
|
||||
|
||||
// Custom ball animation including the elapsed seconds
|
||||
const ballFrames = [
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ●)",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"(● )",
|
||||
];
|
||||
|
||||
const [frame, setFrame] = useState(0);
|
||||
|
||||
useInterval(() => {
|
||||
setFrame((idx) => (idx + 1) % ballFrames.length);
|
||||
}, 80);
|
||||
|
||||
// Preserve the spinner (ball) animation while keeping the elapsed seconds
|
||||
// text static. We achieve this by rendering the bouncing ball inside the
|
||||
// parentheses and appending the seconds counter *after* the spinner rather
|
||||
// than injecting it directly next to the ball (which caused the counter to
|
||||
// move horizontally together with the ball).
|
||||
|
||||
const frameTemplate = ballFrames[frame] ?? ballFrames[0];
|
||||
const frameWithSeconds = `${frameTemplate} ${thinkingSeconds}s`;
|
||||
const frameWithSeconds = useSpinner(thinkingSeconds);
|
||||
|
||||
return (
|
||||
<Box flexDirection="column" gap={1}>
|
||||
|
||||
@@ -21,6 +21,7 @@ import {
|
||||
loadCommandHistory,
|
||||
addToHistory,
|
||||
} from "../../utils/storage/command-history.js";
|
||||
import { useSpinner } from "../../utils/terminal-chat-utils.js";
|
||||
import { clearTerminal, onExit } from "../../utils/terminal.js";
|
||||
import { Box, Text, useApp, useInput, useStdin } from "ink";
|
||||
import { fileURLToPath } from "node:url";
|
||||
@@ -896,28 +897,7 @@ function TerminalChatInputThinking({
|
||||
setDots((prev) => (prev.length < 3 ? prev + "." : ""));
|
||||
}, 500);
|
||||
|
||||
// Spinner frames with embedded seconds
|
||||
const ballFrames = [
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ●)",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"( ● )",
|
||||
"(● )",
|
||||
];
|
||||
const [frame, setFrame] = useState(0);
|
||||
|
||||
useInterval(() => {
|
||||
setFrame((idx) => (idx + 1) % ballFrames.length);
|
||||
}, 80);
|
||||
|
||||
// Keep the elapsed‑seconds text fixed while the ball animation moves.
|
||||
const frameTemplate = ballFrames[frame] ?? ballFrames[0];
|
||||
const frameWithSeconds = `${frameTemplate} ${thinkingSeconds}s`;
|
||||
const frameWithSeconds = useSpinner(thinkingSeconds);
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Raw stdin listener to catch the case where the terminal delivers two
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
import { useState } from "react";
|
||||
import { useInterval } from "use-interval";
|
||||
|
||||
const frames = [
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;87m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;117m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;153m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;87m░\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;117m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;225m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;219m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;225m▒\x1b[0m\x1b[38;5;213m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;219m▒\x1b[0m\x1b[38;5;183m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;225m▓\x1b[0m\x1b[38;5;213m▒\x1b[0m\x1b[38;5;189m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;213m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;225m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;213m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;87m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;219m█\x1b[0m\x1b[38;5;219m█\x1b[0m\x1b[38;5;183m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;219m█\x1b[0m\x1b[38;5;219m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;189m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;225m▓\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;219m▓\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;225m▒\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;219m▒\x1b[0m\x1b[38;5;183m▓\x1b[0m\x1b[38;5;219m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;225m░\x1b[0m\x1b[38;5;213m▒\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;219m░\x1b[0m\x1b[38;5;183m▒\x1b[0m\x1b[38;5;219m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;213m░\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;189m░\x1b[0m\x1b[38;5;213m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;189m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;153m░\x1b[0m",
|
||||
"\x1b[38;5;213m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;177m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;147m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;183m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;117m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;87m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;201m░\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;117m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;201m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;117m█\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;147m█\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;189m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;147m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;147m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;153m▓\x1b[0m\x1b[38;5;177m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;117m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;153m▒\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;189m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;177m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;183m▒\x1b[0m\x1b[38;5;219m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;117m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;189m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;183m▓\x1b[0m\x1b[38;5;219m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;117m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;87m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;183m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;153m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;171m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;201m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;171m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;171m▒\x1b[0m\x1b[38;5;141m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;213m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;171m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;177m▓\x1b[0m\x1b[38;5;189m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;171m▓\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;147m█\x1b[0m\x1b[38;5;171m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;189m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;171m█\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;231m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;87m░\x1b[0m",
|
||||
"\x1b[38;5;183m░\x1b[0m\x1b[38;5;219m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;141m█\x1b[0m\x1b[38;5;171m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;177m░\x1b[0m\x1b[38;5;189m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;171m█\x1b[0m\x1b[38;5;147m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;207m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m▓\x1b[0m\x1b[38;5;117m█\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;219m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;141m█\x1b[0m\x1b[38;5;171m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;189m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;171m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;231m▒\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;201m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;141m▓\x1b[0m\x1b[38;5;141m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;231m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;117m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;153m▒\x1b[0m\x1b[38;5;171m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;171m▒\x1b[0m\x1b[38;5;141m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;171m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;171m░\x1b[0m\x1b[38;5;141m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;201m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;87m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;171m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;147m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;87m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;87m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;147m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;177m░\x1b[0m",
|
||||
"\x1b[38;5;87m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;147m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;117m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;123m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;147m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;213m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;201m░\x1b[0m",
|
||||
"\x1b[38;5;195m░\x1b[0m\x1b[38;5;123m▒\x1b[0m\x1b[38;5;159m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;207m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;177m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;195m█\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;201m▒\x1b[0m\x1b[38;5;189m░\x1b[0m",
|
||||
"\x1b[38;5;123m░\x1b[0m\x1b[38;5;159m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;153m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m▓\x1b[0m\x1b[38;5;207m▒\x1b[0m\x1b[38;5;195m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;159m█\x1b[0m\x1b[38;5;183m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;177m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
"\x1b[38;5;159m░\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;195m▓\x1b[0m\x1b[38;5;123m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;207m█\x1b[0m\x1b[38;5;201m▓\x1b[0m\x1b[38;5;195m▒\x1b[0m\x1b[38;5;231m░\x1b[0m",
|
||||
];
|
||||
|
||||
export function useSpinner(thinkingSeconds: number, intervalMs = 40): string {
|
||||
const [frame, setFrame] = useState(0);
|
||||
useInterval(() => setFrame((idx) => (idx + 1) % frames.length), intervalMs);
|
||||
const frameTemplate = frames[frame] ?? frames[0];
|
||||
return `${frameTemplate} ${thinkingSeconds}s`;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user