diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerUseVoicePage.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerUseVoicePage.tsx index 516647eeb4..6aa6b1d1e6 100644 --- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerUseVoicePage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerUseVoicePage.tsx @@ -1,10 +1,9 @@ import React, { useCallback, useEffect, useState } from "react"; import { faBarsStaggered, + faCircleExclamation, faDeleteLeft, faEdit, - faEye, - faMemo, faMemoCircleInfo, faMessages, faTrash, @@ -26,6 +25,7 @@ import { TtsInferenceJob } from "@storyteller/components/src/jobs/TtsInferenceJo import { faVolumeUp } from "@fortawesome/free-solid-svg-icons"; import { useParams } from "react-router-dom"; import { GetVoice } from "@storyteller/components/src/api/voice_designer/voices/GetVoice"; +import Skeleton from "components/common/Skeleton"; interface VoiceDesignerUseVoicePageProps { sessionWrapper: SessionWrapper; @@ -39,22 +39,34 @@ export default function VoiceDesignerUseVoicePage( ) { const { voice_token } = useParams<{ voice_token: string }>(); const [textBuffer, setTextBuffer] = useState(""); - const [titleTest, setTitleTest] = useState(""); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(false); + const [voiceData, setVoiceData] = useState({ + title: "", + creatorUsername: "", + createdAt: "", + updatedAt: "", + visibility: "", + voiceToken: "", + languageTag: "", + }); - //Test Get voice details - const getVoiceDetails = useCallback(async (voice_token: string) => { + const getVoiceDetails = useCallback(async (voice_token) => { try { - console.log("Fetching details for token:", voice_token); let result = await GetVoice(voice_token, {}); - console.log("API Response:", result); - if (result.title) { - setTitleTest(result.title); + if (result) { + setVoiceData({ + title: result.title, + creatorUsername: result.creator.username, + createdAt: result.created_at.toString(), + updatedAt: result.updated_at.toString(), + visibility: result.creator_set_visibility, + voiceToken: result.voice_token, + languageTag: result.ietf_language_tag, + }); setIsLoading(false); } else { - setTitleTest("not found"); setError(true); setIsLoading(false); } @@ -69,59 +81,31 @@ export default function VoiceDesignerUseVoicePage( getVoiceDetails(voice_token); }, [voice_token, getVoiceDetails]); - const title = titleTest; - const subText = ( -
- Voice Designer TTS model by{" "} - Vegito1089 -
+ const modelCreatorLink = ( + + {voiceData.creatorUsername} + ); - // const tags = ["Speaking", "English", "Character", "Singing", "Spanish"]; - let modelCreatorLink = Creator Name; - let modelTitle = title; - let modelDescription = "This is a description of the model"; - let modelUseCount = 10000; - let modelLanguage = "English"; - let modelType = "RVCv2"; - let modelUploadDate = "2021-09-10T06:15:04Z"; - let modelVisibility = ( -
- - Public -
- ); - let modelCreatorBanned = "good standing"; - let modelCreationIp = "0.0.0.0.0"; - let modelUpdateIp = "0.0.0.0.0"; - let frontPageFeatured = "no"; - let moderatorDeletedAt = "not deleted"; - let userDeletedAt = "not deleted"; - - // if (voices.data) { - // modelCreatorLink = {voices.data.creator.username}; - // modelTitle = voices.data.title; - // modelDescription = "This is a dynamic description of the model"; - // } + const subText =
TTS model by {modelCreatorLink}
; const voiceDetails = [ { label: "Creator", value: modelCreatorLink }, - { label: "Title", value: modelTitle }, - { label: "Use count", value: modelUseCount }, - { label: "Spoken language", value: modelLanguage }, - { label: "Model type", value: modelType }, - { label: "Upload date (UTC)", value: modelUploadDate }, - { label: "Visibility", value: modelVisibility }, + { label: "Title", value: voiceData.title }, + { label: "Spoken language", value: voiceData.languageTag }, + { label: "Created at (UTC)", value: voiceData.createdAt }, + { label: "Updated at (UTC)", value: voiceData.updatedAt }, + { label: "Visibility", value: voiceData.visibility }, ]; - const voiceDetailsModerator = [ - { label: "Creator is banned?", value: modelCreatorBanned }, - { label: "Creation IP address", value: modelCreationIp }, - { label: "Update IP address", value: modelUpdateIp }, - { label: "Mod deleted at (UTC)", value: moderatorDeletedAt }, - { label: "User deleted at (UTC)", value: userDeletedAt }, - { label: "Front page featured?", value: frontPageFeatured }, - ]; + // const voiceDetailsModerator = [ + // { label: "Creator is banned?", value: modelCreatorBanned }, + // { label: "Creation IP address", value: modelCreationIp }, + // { label: "Update IP address", value: modelUpdateIp }, + // { label: "Mod deleted at (UTC)", value: moderatorDeletedAt }, + // { label: "User deleted at (UTC)", value: userDeletedAt }, + // { label: "Front page featured?", value: frontPageFeatured }, + // ]; const handleFormSubmit = async (ev: React.FormEvent) => { ev.preventDefault(); @@ -132,13 +116,45 @@ export default function VoiceDesignerUseVoicePage( setTextBuffer(textValue); }; - if (!voice_token) { - return
Voice token not found.
; + if (isLoading) { + return ( + +
+

+ +

+

+ +

+
+ + + +
+ ); + } + + if (error) { + return ( + + +