diff --git a/packages/fakeyou.com/src/v2/view/tts/tts_model_list/TtsModelListPage.tsx b/packages/fakeyou.com/src/v2/view/tts/tts_model_list/TtsModelListPage.tsx index ea6076ea60..85675b8df0 100644 --- a/packages/fakeyou.com/src/v2/view/tts/tts_model_list/TtsModelListPage.tsx +++ b/packages/fakeyou.com/src/v2/view/tts/tts_model_list/TtsModelListPage.tsx @@ -132,6 +132,23 @@ interface Props { } function TtsModelListPage(props: Props) { + //Loading spinning icon + const [loading, setLoading] = useState(false); + + const handleLoading = () => { + setLoading(true); + setTimeout(() => { + setLoading(false); + }, 1000); + }; + + useEffect(() => { + const timeout = setTimeout(() => { + setLoading(false); + }, 1000); + return () => clearTimeout(timeout); + }, []); + let { setTtsModels, setAllTtsCategories, @@ -392,6 +409,11 @@ function TtsModelListPage(props: Props) { // NB: If the text is too long, don't allow submission let remainingCharactersButtonDisabled = props.textBuffer.trim().length > 1024; + let noTextInputButtonDisabled = props.textBuffer.trim() === ""; + + const speakButtonClass = loading + ? "btn btn-primary w-100 disabled" + : "btn btn-primary w-100"; return ( @@ -634,18 +656,26 @@ function TtsModelListPage(props: Props) { >