diff --git a/fakeyou/src/common/FrontendUrlConfig.ts b/fakeyou/src/common/FrontendUrlConfig.ts index 84dd473715..7b50e58a68 100644 --- a/fakeyou/src/common/FrontendUrlConfig.ts +++ b/fakeyou/src/common/FrontendUrlConfig.ts @@ -16,6 +16,10 @@ class FrontendUrlConfig { return `/tts/${modelToken}/edit`; } + static ttsModelEditCategoriesPage(modelToken: string) : string { + return `/tts/${modelToken}/categories`; + } + static ttsModelDeletePage(modelToken: string) : string { return `/tts/${modelToken}/delete`; } diff --git a/fakeyou/src/v2/view/NewVocodesContainer.tsx b/fakeyou/src/v2/view/NewVocodesContainer.tsx index 9c8a8a850c..4ed8bff0ed 100644 --- a/fakeyou/src/v2/view/NewVocodesContainer.tsx +++ b/fakeyou/src/v2/view/NewVocodesContainer.tsx @@ -43,6 +43,7 @@ import { ModerationJobStatsFc } from './moderation/moderation_job_stats/Moderati import { ModerationPendingW2lTemplatesFc } from './moderation/moderation_pending_w2l_templates/ModerationPendingW2lTemplatesFc'; import { ModerationVoiceStatsFc } from './moderation/moderation_voice_stats/ModerationVoiceStatsFc'; import { CreateCategoryPage } from './category/CreateCategoryPage'; +import { TtsEditCategoriesPage } from './tts/tts_edit_categories/TtsEditCategoriesPage'; interface Props { sessionWrapper: SessionWrapper, @@ -173,6 +174,12 @@ class NewVocodesContainer extends React.Component { /> + + + + (undefined); + const [notFoundState, setNotFoundState] = useState(false); + + const getModel = useCallback(async (token) => { + const model = await GetTtsModel(token); + + if (GetTtsModelIsOk(model)) { + setTtsModel(model); + } else if (GetTtsModelIsErr(model)) { + switch(model) { + case TtsModelLookupError.NotFound: + setNotFoundState(true); + break; + } + } + }, []); + + useEffect(() => { + getModel(token); + }, [token, getModel]); + + + if (notFoundState) { + return ( +

Model not found

+ ); + } + + if (!ttsModel) { + return
+ } + + const modelLink = FrontendUrlConfig.ttsModelPage(token); + + return ( +
+

Edit TTS Categories

+ +

+ +

+ +

+ Model: {ttsModel.title} +

+
+ ) +} + +export { TtsEditCategoriesPage }; diff --git a/fakeyou/src/v2/view/tts/tts_model_edit/TtsModelEditFc.tsx b/fakeyou/src/v2/view/tts/tts_model_edit/TtsModelEditFc.tsx index 00f7802820..1adbbe6f0a 100644 --- a/fakeyou/src/v2/view/tts/tts_model_edit/TtsModelEditFc.tsx +++ b/fakeyou/src/v2/view/tts/tts_model_edit/TtsModelEditFc.tsx @@ -1,5 +1,4 @@ import React, { useState, useEffect, useCallback } from 'react'; -//import axios from 'axios'; import { ApiConfig } from '../../../../common/ApiConfig'; import { SessionWrapper } from '../../../../session/SessionWrapper'; import { TtsInferenceJob } from '../../../../App'; diff --git a/fakeyou/src/v2/view/tts/tts_model_view/TtsModelViewFc.tsx b/fakeyou/src/v2/view/tts/tts_model_view/TtsModelViewFc.tsx index 63c178c91a..e6d7283bd5 100644 --- a/fakeyou/src/v2/view/tts/tts_model_view/TtsModelViewFc.tsx +++ b/fakeyou/src/v2/view/tts/tts_model_view/TtsModelViewFc.tsx @@ -54,7 +54,6 @@ function TtsModelViewFc(props: Props) { getModelUseCount(token); }, [token, getModel, getModelUseCount]); - if (notFoundState) { return (

Model not found

@@ -186,6 +185,7 @@ function TtsModelViewFc(props: Props) { } let editModelButton = ; + let editModelCategoriesButton = ; if (props.sessionWrapper.canEditTtsModelByUserToken(ttsModel?.creator_user_token)) { editModelButton = ( @@ -197,6 +197,15 @@ function TtsModelViewFc(props: Props) { >Edit Model Details ); + editModelCategoriesButton = ( + <> +
+ Edit Model Categories + + ); } let deleteModelButton = ; @@ -335,6 +344,8 @@ function TtsModelViewFc(props: Props) { {editModelButton} + {editModelCategoriesButton} + {deleteModelButton}