Spaces:
Running
Running
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; | |