Spaces:
Running
Running
File size: 1,504 Bytes
79278ec |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
import LlmAnswerProps from "./LlmAnswerProps";
import "./LlmAnswer.scss";
import { useState, useEffect } from "react";
import TextArea from "@/components/generics/textArea/TextArea";
import "@/components/views/requestTextArea/RequestTextArea.scss";
const LlmAnswer = ({ value, loading }: LlmAnswerProps) => {
const [placeholder, setPlaceholder] = useState("Среднее время ожидания ответа - 110 секунд...");
useEffect(() => {
if (loading) {
const intervalId = setInterval(() => {
setPlaceholder((prev) => {
const dots = (prev.match(/\./g) || []).length;
if (dots < 3) {
return "Среднее время ожидания ответа - 110 секунд" + ".".repeat(dots + 1);
}
return "Среднее время ожидания ответа - 110 секунд";
});
}, 500);
return () => clearInterval(intervalId);
} else {
setPlaceholder("Среднее время ожидания ответа - 110 секунд...");
}
}, [loading]);
return (
<div className="llm_answer">
<div className="label">
<span>Ответ ЛЛМ</span>
</div>
<TextArea
className={`result_text ${loading ? "loading" : ""}`}
value={loading ? "" : value}
onInput={() => {}}
onKeyDown={() => {}}
rows={1}
placeholder={placeholder}
readOnly
/>
</div>
);
};
export default LlmAnswer;
|