removed unused code/state used by the old TTS and other pages

This commit is contained in:
Victor committed 2024-09-12 15:26:15 -07:00
1 parent 889db40215
commit 2cacb14970
5 files changed
+172 -419

No files matched your search

+10 -190
View File
@@ -8,7 +8,6 @@ import {
DetectLocale,
DetectLocaleIsOk,
} from "@storyteller/components/src/api/locale/DetectLocale";
import { Language } from "@storyteller/components/src/i18n/Language";
import { BrowserRouter, Route, Switch } from "react-router-dom";
import PageContainer from "./v2/view/PageContainer";
import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper";
@@ -16,13 +15,10 @@ import { PosthogClient } from "@storyteller/components/src/analytics/PosthogClie
import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper";
import { TtsInferenceJob } from "@storyteller/components/src/jobs/TtsInferenceJobs";
import { W2lInferenceJob } from "@storyteller/components/src/jobs/W2lInferenceJobs";
import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels";
import { TtsCategoryType } from "./AppWrapper";
import { FAKEYOU_MERGED_TRANSLATIONS } from "./_i18n/FakeYouTranslations";
import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import deepEqual from "deep-equal";
import { GetComputedTtsCategoryAssignmentsSuccessResponse } from "@storyteller/components/src/api/category/GetComputedTtsCategoryAssignments";
import {
AvailableLanguageKey,
AVAILABLE_LANGUAGE_MAP,
@@ -78,125 +74,52 @@ enum MigrationMode {
OLD_VOCODES,
}
interface Props {
enableSpectrograms: boolean;
flashVocodesNotice: boolean;
allTtsCategories: TtsCategoryType[];
setAllTtsCategories: (allTtsCategories: TtsCategoryType[]) => void;
allTtsModels: TtsModelListItem[];
setAllTtsModels: (allTtsModels: TtsModelListItem[]) => void;
computedTtsCategoryAssignments?: GetComputedTtsCategoryAssignmentsSuccessResponse;
setComputedTtsCategoryAssignments: (
categoryAssignments: GetComputedTtsCategoryAssignmentsSuccessResponse
) => void;
allTtsCategoriesByTokenMap: Map<string, TtsCategoryType>;
allTtsModelsByTokenMap: Map<string, TtsModelListItem>;
ttsModelsByCategoryToken: Map<string, Set<TtsModelListItem>>;
dropdownCategories: TtsCategoryType[][];
setDropdownCategories: (dropdownCategories: TtsCategoryType[][]) => void;
selectedCategories: TtsCategoryType[];
setSelectedCategories: (selectedCategories: TtsCategoryType[]) => void;
maybeSelectedTtsModel?: TtsModelListItem;
setMaybeSelectedTtsModel: (maybeSelectedTtsModel: TtsModelListItem) => void;
selectedTtsLanguageScope: string;
setSelectedTtsLanguageScope: (selectedTtsLanguageScope: string) => void;
}
interface Props {}
interface State {
// Migration Mode
migrationMode: MigrationMode;
// migrationMode: MigrationMode;
// Rollout of vocodes 2.0
enableAlpha: boolean;
// enableAlpha: boolean;
sessionFetched: boolean;
sessionWrapper: SessionWrapper;
sessionSubscriptionsWrapper: SessionSubscriptionsWrapper;
// Show flash notice of vocodes name change
isShowingVocodesNotice: boolean;
// Locale + show flash notice to Spanish speakers
//localeLanguageCodes: string[],
//localeFullLanguageTags: string[],
isShowingLanguageNotice: boolean;
displayLanguage: Language;
primaryLanguageCode: string;
// isShowingLanguageNotice: boolean;
// displayLanguage: Language;
// primaryLanguageCode: string;
isShowingTwitchTtsNotice: boolean;
isShowingPleaseFollowNotice: boolean;
// isShowingTwitchTtsNotice: boolean;
// isShowingPleaseFollowNotice: boolean;
// An improved notice for "new" languages asking users to help.
isShowingBootstrapLanguageNotice: boolean;
// isShowingBootstrapLanguageNotice: boolean;
// Current text entered
textBuffer: string;
voiceConversionModels: VoiceConversionModelListItem[];
// voiceConversionModels: VoiceConversionModelListItem[];
maybeSelectedVoiceConversionModel?: VoiceConversionModelListItem;
}
function newVocodes() {
const discord = /discord/i.test(navigator.userAgent || "");
const twitter = /twitter/i.test(navigator.userAgent || "");
const alphaCookie = document.cookie.includes("enable-alpha");
return discord || twitter || alphaCookie;
}
function isMacOs() {
// Not on macs yet
// https://stackoverflow.com/a/38241481
const platform = window.navigator.platform;
const macPlatforms = ["Macintosh", "MacIntel", "MacPPC", "Mac68K", "darwin"];
return macPlatforms.indexOf(platform) !== -1;
}
// TODO: Port to functional component
class App extends React.Component<Props, State> {
constructor(props: Props) {
super(props);
const enableAlpha = newVocodes() || true;
const migrationMode = enableAlpha
? MigrationMode.NEW_VOCODES
: MigrationMode.OLD_VOCODES;
let showTwitchNotice = !isMacOs();
showTwitchNotice = false; // TODO: Temporarily disabled.
let showPleaseFollowNotice = false;
this.state = {
enableAlpha: enableAlpha,
migrationMode: migrationMode,
sessionFetched: false,
sessionWrapper: SessionWrapper.emptySession(),
sessionSubscriptionsWrapper:
SessionSubscriptionsWrapper.emptySubscriptions(),
isShowingVocodesNotice: props.flashVocodesNotice,
isShowingLanguageNotice: false,
displayLanguage: Language.English,
primaryLanguageCode: "en",
isShowingTwitchTtsNotice: showTwitchNotice,
isShowingPleaseFollowNotice: showPleaseFollowNotice,
isShowingBootstrapLanguageNotice: false,
textBuffer: "",
voiceConversionModels: [],
maybeSelectedVoiceConversionModel: undefined,
};
}
@@ -319,15 +242,6 @@ class App extends React.Component<Props, State> {
}
}
this.setState({
isShowingLanguageNotice: false, // TODO: Remove/consolidate
displayLanguage: preferredLanguage.language,
primaryLanguageCode: preferredLanguage.languageCode,
isShowingPleaseFollowNotice: preferredLanguage.showPleaseFollowNotice,
isShowingBootstrapLanguageNotice:
preferredLanguage.showBootstrapLanguageNotice,
});
i18n.changeLanguage(preferredLanguage.languageCode);
i18n2.changeLanguage(preferredLanguage.languageCode);
}
@@ -353,40 +267,6 @@ class App extends React.Component<Props, State> {
});
};
clearVocodesNotice = () => {
this.setState({ isShowingVocodesNotice: false });
};
clearLanguageNotice = () => {
this.setState({ isShowingLanguageNotice: false });
};
clearTwitchTtsNotice = () => {
this.setState({ isShowingTwitchTtsNotice: false });
};
clearPleaseFollowNotice = () => {
this.setState({ isShowingPleaseFollowNotice: false });
};
clearBootstrapLanguageNotice = () => {
this.setState({ isShowingBootstrapLanguageNotice: false });
};
setAllVoiceConversionModels = (models: VoiceConversionModelListItem[]) => {
this.setState({ voiceConversionModels: models });
};
setMaybeSelectedVoiceConversionModel = (
model?: VoiceConversionModelListItem
) => {
this.setState({ maybeSelectedVoiceConversionModel: model });
};
setMigrationMode = (mode: MigrationMode) => {
this.setState({ migrationMode: mode });
};
setTextBuffer = (textBuffer: string) => {
this.setState({ textBuffer: textBuffer });
};
@@ -427,72 +307,12 @@ class App extends React.Component<Props, State> {
querySessionSubscriptionsAction={
this.querySessionSubscriptions
}
isShowingVocodesNotice={this.state.isShowingVocodesNotice}
clearVocodesNotice={this.clearVocodesNotice}
isShowingLangaugeNotice={
this.state.isShowingLanguageNotice
}
clearLanguageNotice={this.clearLanguageNotice}
displayLanguage={this.state.displayLanguage}
primaryLanguageCode={this.state.primaryLanguageCode}
isShowingTwitchTtsNotice={
this.state.isShowingTwitchTtsNotice
}
clearTwitchTtsNotice={this.clearTwitchTtsNotice}
isShowingPleaseFollowNotice={
this.state.isShowingPleaseFollowNotice
}
clearPleaseFollowNotice={this.clearPleaseFollowNotice}
isShowingBootstrapLanguageNotice={
this.state.isShowingBootstrapLanguageNotice
}
clearBootstrapLanguageNotice={
this.clearBootstrapLanguageNotice
}
textBuffer={this.state.textBuffer}
setTextBuffer={this.setTextBuffer}
clearTextBuffer={this.clearTextBuffer}
ttsModels={this.props.allTtsModels}
setTtsModels={this.props.setAllTtsModels}
allTtsCategories={this.props.allTtsCategories}
setAllTtsCategories={this.props.setAllTtsCategories}
computedTtsCategoryAssignments={
this.props.computedTtsCategoryAssignments
}
setComputedTtsCategoryAssignments={
this.props.setComputedTtsCategoryAssignments
}
allTtsCategoriesByTokenMap={
this.props.allTtsCategoriesByTokenMap
}
allTtsModelsByTokenMap={this.props.allTtsModelsByTokenMap}
ttsModelsByCategoryToken={
this.props.ttsModelsByCategoryToken
}
dropdownCategories={this.props.dropdownCategories}
setDropdownCategories={this.props.setDropdownCategories}
selectedCategories={this.props.selectedCategories}
setSelectedCategories={this.props.setSelectedCategories}
maybeSelectedTtsModel={this.props.maybeSelectedTtsModel}
setMaybeSelectedTtsModel={
this.props.setMaybeSelectedTtsModel
}
selectedTtsLanguageScope={
this.props.selectedTtsLanguageScope
}
setSelectedTtsLanguageScope={
this.props.setSelectedTtsLanguageScope
}
voiceConversionModels={this.state.voiceConversionModels}
setVoiceConversionModels={
this.setAllVoiceConversionModels
}
maybeSelectedVoiceConversionModel={
this.state.maybeSelectedVoiceConversionModel
}
setMaybeSelectedVoiceConversionModel={
this.setMaybeSelectedVoiceConversionModel
}
/>
</Route>
</Switch>
@@ -1,25 +1,26 @@
import React from 'react';
import { withTranslation } from 'react-i18next';
import { AppWrapper } from './AppWrapper';
import React from "react";
import { withTranslation } from "react-i18next";
import { AppWrapper } from "./AppWrapper";
interface Props {
// Certan browsers (iPhone) have pitiful support for drawing APIs. Worse yet,
// they seem to lose the "touch event sandboxing" that allows for audio to be
// played after user interaction if the XHRs delivering the audio don't do so
// as actual audio mimetypes. (Decoding from base64 and trying to play fails.)
enableSpectrograms: boolean,
// interface Props {
// // Certan browsers (iPhone) have pitiful support for drawing APIs. Worse yet,
// // they seem to lose the "touch event sandboxing" that allows for audio to be
// // played after user interaction if the XHRs delivering the audio don't do so
// // as actual audio mimetypes. (Decoding from base64 and trying to play fails.)
// enableSpectrograms: boolean,
// Whether or not to inform users that the name of the website has changed.
flashVocodesNotice: boolean,
}
// // Whether or not to inform users that the name of the website has changed.
// flashVocodesNotice: boolean,
// }
function AppTranslated(props: Props) {
function AppTranslated() {
// props: Props
return (
<AppWrapper
enableSpectrograms={props.enableSpectrograms}
flashVocodesNotice={props.flashVocodesNotice}
/>
)
<AppWrapper
// enableSpectrograms={props.enableSpectrograms}
// flashVocodesNotice={props.flashVocodesNotice}
/>
);
}
// NB: This is a Higher Order Component (HOC) that will pass `t` and `i18n`
@@ -1,178 +1,188 @@
import React, { useEffect, useState } from "react";
import React from // useEffect, useState
"react";
import { TtsCategory } from "@storyteller/components/src/api/category/ListTtsCategories";
import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels";
// import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels";
import { App } from "./App";
import { GetComputedTtsCategoryAssignmentsSuccessResponse } from "@storyteller/components/src/api/category/GetComputedTtsCategoryAssignments";
// import { GetComputedTtsCategoryAssignmentsSuccessResponse } from "@storyteller/components/src/api/category/GetComputedTtsCategoryAssignments";
import { SyntheticCategory } from "./model/categories/SyntheticCategory";
interface Props {
// Certan browsers (iPhone) have pitiful support for drawing APIs. Worse yet,
// they seem to lose the "touch event sandboxing" that allows for audio to be
// played after user interaction if the XHRs delivering the audio don't do so
// as actual audio mimetypes. (Decoding from base64 and trying to play fails.)
enableSpectrograms: boolean;
// interface Props {
// // Certan browsers (iPhone) have pitiful support for drawing APIs. Worse yet,
// // they seem to lose the "touch event sandboxing" that allows for audio to be
// // played after user interaction if the XHRs delivering the audio don't do so
// // as actual audio mimetypes. (Decoding from base64 and trying to play fails.)
// enableSpectrograms: boolean;
// Whether or not to inform users that the name of the website has changed.
flashVocodesNotice: boolean;
}
// // Whether or not to inform users that the name of the website has changed.
// flashVocodesNotice: boolean;
// }
export type TtsCategoryType = TtsCategory | SyntheticCategory;
export function AppWrapper(props: Props) {
export function AppWrapper() {
// props: Props
// Caches of all objects queried
// These may be triggered by a different page than the user initially lands on.
const [allTtsCategories, setAllTtsCategories] =
useState<TtsCategoryType[]>([]);
const [allTtsModels, setAllTtsModels] =
useState<TtsModelListItem[]>([]);
const [computedTtsCategoryAssignments, setComputedTtsCategoryAssignments] =
useState<GetComputedTtsCategoryAssignmentsSuccessResponse | undefined>(undefined);
// const [allTtsCategories, setAllTtsCategories] = useState<TtsCategoryType[]>(
// []
// );
// const [allTtsModels, setAllTtsModels] = useState<TtsModelListItem[]>([]);
// const [computedTtsCategoryAssignments, setComputedTtsCategoryAssignments] =
// useState<GetComputedTtsCategoryAssignmentsSuccessResponse | undefined>(
// undefined
// );
// Precalculated maps for lookup by primary key
const [allCategoriesByTokenMap, setAllCategoriesByTokenMap] =
useState<Map<string, TtsCategoryType>>(new Map());
const [allTtsModelsByTokenMap, setAllTtsModelsByTokenMap] =
useState<Map<string, TtsModelListItem>>(new Map());
// const [allCategoriesByTokenMap, setAllCategoriesByTokenMap] = useState<
// Map<string, TtsCategoryType>
// >(new Map());
// const [allTtsModelsByTokenMap, setAllTtsModelsByTokenMap] = useState<
// Map<string, TtsModelListItem>
// >(new Map());
// Precalculated map for lookup by foreign key
// A TTS voice is attached to every category up the tree from the leaf.
// We recursively build this, 1) to ensure we can access a voice at all levels
// of specificity, and 2) to prune empty categories.
const [ttsModelsByCategoryToken, setTtsModelsByCategoryToken] =
useState<Map<string, Set<TtsModelListItem>>>(new Map());
// const [ttsModelsByCategoryToken, setTtsModelsByCategoryToken] = useState<
// Map<string, Set<TtsModelListItem>>
// >(new Map());
// Calculated dropdown options for every level of categories.
// Outer array has length of at least one, one element per <select>
// Inner array contains the categories in each level.
// Structure: [dropdownLevel][categories]
const [dropdownCategories, setDropdownCategories] =
useState<TtsCategoryType[][]>([]);
// const [dropdownCategories, setDropdownCategories] = useState<
// TtsCategoryType[][]
// >([]);
// User selections.
// Every category in the heirarchy that has been selected by the user.
// Empty list if none are selected.
// Structure: [firstSelected, secondSelected...]
const [selectedCategories, setSelectedCategories] =
useState<TtsCategoryType[]>([]);
// const [selectedCategories, setSelectedCategories] = useState<
// TtsCategoryType[]
// >([]);
// User selections.
const [maybeSelectedTtsModel, setMaybeSelectedTtsModel] =
useState<TtsModelListItem | undefined>(undefined);
// const [maybeSelectedTtsModel, setMaybeSelectedTtsModel] = useState<
// TtsModelListItem | undefined
// >(undefined);
// User selections.
// This allows the user to filter out voices that don't match their
// preferred language.
// This allows the user to filter out voices that don't match their
// preferred language.
// Values are IETF 2-letter language codes. Other locale information is stripped.
// The value "*" serves as a sentinel for all voices / no filter.
const [selectedTtsLanguageScope, setSelectedTtsLanguageScope] =
useState<string>("*");
// const [selectedTtsLanguageScope, setSelectedTtsLanguageScope] =
// useState<string>("*");
// TODO: Handle empty category list
useEffect(() => {
// Category lookup by token
let categoriesByTokenMap = new Map();
allTtsCategories.forEach((category) => {
categoriesByTokenMap.set(category.category_token, category);
});
setAllCategoriesByTokenMap(categoriesByTokenMap);
// useEffect(() => {
// // Category lookup by token
// let categoriesByTokenMap = new Map();
// allTtsCategories.forEach(category => {
// categoriesByTokenMap.set(category.category_token, category);
// });
// setAllCategoriesByTokenMap(categoriesByTokenMap);
// TTS model lookup by token
let ttsModelsByTokenMap = new Map();
allTtsModels.forEach((model) => {
ttsModelsByTokenMap.set(model.model_token, model);
});
setAllTtsModelsByTokenMap(ttsModelsByTokenMap);
// // TTS model lookup by token
// let ttsModelsByTokenMap = new Map();
// allTtsModels.forEach(model => {
// ttsModelsByTokenMap.set(model.model_token, model);
// });
// setAllTtsModelsByTokenMap(ttsModelsByTokenMap);
// Initial dropdown state
const rootCategories = allTtsCategories.filter((category) => {
return !category.maybe_super_category_token;
});
const rootLevel = [rootCategories];
setDropdownCategories(rootLevel);
// Initial dropdown state
// const rootCategories = allTtsCategories.filter(category => {
// return !category.maybe_super_category_token;
// });
// const rootLevel = [rootCategories];
// setDropdownCategories(rootLevel);
/// NB: This was the really expensive cubic time++ aglorithm to recursively calculate nested category assignments.
/// This has since been ported to the server and will no longer be computed here. We're preserving this for posterity.
///
/// // Voice lookup table
/// let categoriesToTtsModelTokens = new Map();
/// // Category ancestry memoization
/// let categoryTokenToAllAncestorTokens : Map<string, Set<string>> = new Map();
///
/// // N * M with memoization should't be too bad here.
/// // Also note that the models should be lexographically sorted by name.
/// allTtsModels.forEach(ttsModel => {
/// if (ttsModel.category_tokens.length === 0) {
/// // TODO: Attach to "uncategorized" special category
/// return;
/// }
/// ttsModel.category_tokens.forEach(categoryToken => {
/// let ancestors = categoryTokenToAllAncestorTokens.get(categoryToken);
/// if (ancestors === undefined) {
/// ancestors = findAllAncestorTokens(categoryToken, categoriesByTokenMap);
/// categoryTokenToAllAncestorTokens.set(categoryToken, ancestors);
/// }
/// ancestors.forEach(categoryToken => {
/// let models : Set<TtsModelListItem> = categoriesToTtsModelTokens.get(categoryToken);
/// if (models === undefined) {
/// models = new Set();
/// categoriesToTtsModelTokens.set(categoryToken, models);
/// }
/// models.add(ttsModel);
/// })
/// });
/// });
/// setTtsModelsByCategoryToken(categoriesToTtsModelTokens);
/// NB: This was the really expensive cubic time++ aglorithm to recursively calculate nested category assignments.
/// This has since been ported to the server and will no longer be computed here. We're preserving this for posterity.
///
/// // Voice lookup table
/// let categoriesToTtsModelTokens = new Map();
/// // Category ancestry memoization
/// let categoryTokenToAllAncestorTokens : Map<string, Set<string>> = new Map();
///
/// // N * M with memoization should't be too bad here.
/// // Also note that the models should be lexographically sorted by name.
/// allTtsModels.forEach(ttsModel => {
/// if (ttsModel.category_tokens.length === 0) {
/// // TODO: Attach to "uncategorized" special category
/// return;
/// }
/// ttsModel.category_tokens.forEach(categoryToken => {
/// let ancestors = categoryTokenToAllAncestorTokens.get(categoryToken);
/// if (ancestors === undefined) {
/// ancestors = findAllAncestorTokens(categoryToken, categoriesByTokenMap);
/// categoryTokenToAllAncestorTokens.set(categoryToken, ancestors);
/// }
/// ancestors.forEach(categoryToken => {
/// let models : Set<TtsModelListItem> = categoriesToTtsModelTokens.get(categoryToken);
/// if (models === undefined) {
/// models = new Set();
/// categoriesToTtsModelTokens.set(categoryToken, models);
/// }
/// models.add(ttsModel);
/// })
/// });
/// });
/// setTtsModelsByCategoryToken(categoriesToTtsModelTokens);
const nestedCategoryTokenToModelTokensMap: Map<
string,
Set<string>
> = computedTtsCategoryAssignments?.category_token_to_tts_model_tokens
.recursive || new Map();
// const nestedCategoryTokenToModelTokensMap: Map<
// string,
// Set<string>
// > = computedTtsCategoryAssignments?.category_token_to_tts_model_tokens
// .recursive || new Map();
let categoriesToTtsModelTokens = new Map();
// let categoriesToTtsModelTokens = new Map();
nestedCategoryTokenToModelTokensMap.forEach(
(ttsModelTokens, categoryToken) => {
ttsModelTokens.forEach((ttsModelToken) => {
let ttsModel = ttsModelsByTokenMap.get(ttsModelToken);
if (ttsModel === undefined) {
return;
}
let models: Set<TtsModelListItem> =
categoriesToTtsModelTokens.get(categoryToken);
if (models === undefined) {
models = new Set();
categoriesToTtsModelTokens.set(categoryToken, models);
}
models.add(ttsModel);
});
}
);
// nestedCategoryTokenToModelTokensMap.forEach(
// (ttsModelTokens, categoryToken) => {
// ttsModelTokens.forEach(ttsModelToken => {
// let ttsModel = ttsModelsByTokenMap.get(ttsModelToken);
// if (ttsModel === undefined) {
// return;
// }
// let models: Set<TtsModelListItem> =
// categoriesToTtsModelTokens.get(categoryToken);
// if (models === undefined) {
// models = new Set();
// categoriesToTtsModelTokens.set(categoryToken, models);
// }
// models.add(ttsModel);
// });
// }
// );
setTtsModelsByCategoryToken(categoriesToTtsModelTokens);
}, [allTtsCategories, allTtsModels, computedTtsCategoryAssignments]);
// setTtsModelsByCategoryToken(categoriesToTtsModelTokens);
// }, [allTtsCategories, allTtsModels, computedTtsCategoryAssignments]);
return (
<App
enableSpectrograms={props.enableSpectrograms}
flashVocodesNotice={props.flashVocodesNotice}
allTtsCategories={allTtsCategories}
setAllTtsCategories={setAllTtsCategories}
allTtsModels={allTtsModels}
setAllTtsModels={setAllTtsModels}
computedTtsCategoryAssignments={computedTtsCategoryAssignments}
setComputedTtsCategoryAssignments={setComputedTtsCategoryAssignments}
allTtsCategoriesByTokenMap={allCategoriesByTokenMap}
allTtsModelsByTokenMap={allTtsModelsByTokenMap}
ttsModelsByCategoryToken={ttsModelsByCategoryToken}
dropdownCategories={dropdownCategories}
setDropdownCategories={setDropdownCategories}
selectedCategories={selectedCategories}
setSelectedCategories={setSelectedCategories}
maybeSelectedTtsModel={maybeSelectedTtsModel}
setMaybeSelectedTtsModel={setMaybeSelectedTtsModel}
selectedTtsLanguageScope={selectedTtsLanguageScope}
setSelectedTtsLanguageScope={setSelectedTtsLanguageScope}
// enableSpectrograms={props.enableSpectrograms}
// flashVocodesNotice={props.flashVocodesNotice}
// allTtsCategories={allTtsCategories}
// setAllTtsCategories={setAllTtsCategories}
// allTtsModels={allTtsModels}
// setAllTtsModels={setAllTtsModels}
// computedTtsCategoryAssignments={computedTtsCategoryAssignments}
// setComputedTtsCategoryAssignments={setComputedTtsCategoryAssignments}
// allTtsCategoriesByTokenMap={allCategoriesByTokenMap}
// allTtsModelsByTokenMap={allTtsModelsByTokenMap}
// ttsModelsByCategoryToken={ttsModelsByCategoryToken}
// dropdownCategories={dropdownCategories}
// setDropdownCategories={setDropdownCategories}
// selectedCategories={selectedCategories}
// setSelectedCategories={setSelectedCategories}
// maybeSelectedTtsModel={maybeSelectedTtsModel}
// setMaybeSelectedTtsModel={setMaybeSelectedTtsModel}
// selectedTtsLanguageScope={selectedTtsLanguageScope}
// setSelectedTtsLanguageScope={setSelectedTtsLanguageScope}
/>
);
}
+3 -13
View File
@@ -1,15 +1,8 @@
import React from "react";
import ReactDOM from "react-dom";
import * as serviceWorker from "./serviceWorker";
import AppTranslated from "./AppTranslated";
const IS_IOS: boolean = /iPad|iPhone|iPod/.test(navigator.platform || "");
const enableSpectrograms = !IS_IOS;
const flashVocodesNotice = new URLSearchParams(window.location.search).has(
"vocodes"
);
// import AppTranslated from "./AppTranslated";
import { App } from "./App";
const designSystemClass = "fakeyou-refresh";
@@ -44,10 +37,7 @@ document.getElementsByTagName("body")[0].appendChild(bootstrapJs);
ReactDOM.render(
<React.StrictMode>
<AppTranslated
enableSpectrograms={enableSpectrograms}
flashVocodesNotice={flashVocodesNotice}
/>
<App />
</React.StrictMode>,
document.getElementById("root")
);
@@ -40,8 +40,6 @@ import { W2lTemplateDeletePage } from "./pages/w2l/w2l_template_delete/W2lTempla
import { W2lTemplateEditPage } from "./pages/w2l/w2l_template_edit/W2lTemplateEditPage";
import { W2lResultDeletePage } from "./pages/w2l/w2l_result_delete/W2lResultDeletePage";
import { W2lTemplateApprovePage } from "./pages/w2l/w2l_template_approve/W2lTemplateApprovePage";
// import { TtsModelListPage } from "./pages/tts/tts_model_list/TtsModelListPage";
import { TtsModelListItem } from "@storyteller/components/src/api/tts/ListTtsModels";
import { ProfileBanFc } from "./pages/profile/profile_ban/ProfileBanFc";
import { ModerationUserListFc } from "./pages/moderation/moderation_user_list/ModerationUserList";
import { LeaderboardPage } from "./pages/leaderboard/LeaderboardPage";
@@ -54,25 +52,18 @@ import { TtsEditCategoriesPage } from "./pages/tts/tts_edit_categories/TtsEditCa
import { ModerationTtsCategoryListPage } from "./pages/moderation/categories/ModerationTtsCategoryListPage";
import { ModerationTtsCategoryEditPage } from "./pages/moderation/categories/ModerationTtsCategoryEditPage";
import { ModerationCategoryDeletePage } from "./pages/moderation/categories/ModerationCategoryDeletePage";
import { TtsCategoryType } from "../../AppWrapper";
import { PatronPage } from "./pages/patrons/PatronPage";
import { Language } from "@storyteller/components/src/i18n/Language";
import { VoiceCloneRequestPage } from "./pages/clone_voice_requests/VoiceCloneRequestPage";
import { VocodesPage } from "./pages/vocodes/VocodesPage";
import { PricingPage } from "./pages/premium/PricingPage";
import { WelcomePage } from "./pages/welcome/WelcomePage";
import { CheckoutSuccessPage } from "./pages/premium/CheckoutSuccessPage";
import { CheckoutCancelPage } from "./pages/premium/CheckoutCancelPage";
import { PortalSuccessPage } from "./pages/premium/PortalSuccessPage";
import { PrivacyPage } from "./pages/about/privacy_page/PrivacyPage";
import { GetComputedTtsCategoryAssignmentsSuccessResponse } from "@storyteller/components/src/api/category/GetComputedTtsCategoryAssignments";
import { NewsPage } from "./pages/news/NewsPage";
import { LandingPage } from "./pages/landing/LandingPage";
import { ChannelsPage } from "./pages/channels/Channels";
//import { LandingPage } from "./pages/landing/LandingPage";
// import { VcModelListPage } from "./pages/vc/vc_model_list/VcModelListPage";
import { VoiceConversionModelListItem } from "@storyteller/components/src/api/voice_conversion/ListVoiceConversionModels";
import { CommunityCommissionsPage } from "./pages/contest/CommunityCommissionsPage";
import { ProductUsageInfoPage } from "./pages/product_usage_info/ProductUsageInfoPage";
@@ -80,11 +71,8 @@ import { GenerateSpeechPage } from "./pages/generate_speech/GenerateSpeechPage";
import VcModelViewPage from "./pages/vc/vc_model_view/VcModelViewPage";
import VcModelEditPage from "./pages/vc/vc_model_edit/VcModelEditPage";
import VcModelDeletePage from "./pages/vc/vc_model_delete/VcModelDeletePage";
// import { StorytellerStudioListPage } from "./pages/storyteller_studio/StorytellerStudioPage";
import TopNav from "components/layout/TopNav/TopNav";
// import MediaPage from "./pages/media/MediaPage";
import MediaPageSwitch from "./pages/media/MediaPageSwitch";
// import DevMediaPage from "./pages/media/DevMediaPage";
import EditCoverImage from "./pages/media/EditCoverImage";
import MediaRenamePage from "./pages/media/MediaRenamePage";
import { VoiceDesignerFormPage } from "./pages/voice_designer/VoiceDesignerFormPage";
@@ -93,18 +81,14 @@ import { VoiceDesignerVoiceEditPage } from "./pages/voice_designer/VoiceDesigner
import VoiceDesignerUseVoicePage from "./pages/voice_designer/VoiceDesignerUseVoicePage";
import { PasswordResetEmailPage } from "./pages/password_reset/PasswordResetEmailPage";
import { PasswordResetVerificationPage } from "./pages/password_reset/PasswordResetVerificationPage";
// import EngineCompositor from "./pages/EngineCompositor/EngineCompositor";
import InferenceJobsPage from "./pages/inference_jobs_page/InferenceJobsPage";
// import { NewProfilePage } from "./pages/profile/profile_view/NewProfilePage";
import { ModerationJobControlPage } from "./pages/moderation/job_control/ModerationJobControlPage";
import WeightPage from "./pages/weight/WeightPage";
import ExplorePage from "./pages/explore/ExplorePage";
import SearchPage from "./pages/search/SearchPage";
import { SearchProvider } from "context/SearchContext";
import WeightEditPage from "./pages/weight/WeightEditPage";
import FbxToGltfPage from "./pages/fbx_to_gltf/FbxToGltfPage";
import VideoWorkflowPage from "./pages/video_workflow/VideoWorkflow";
import ScrollToTop from "./_common/ScrollToTop";
import TextToImagePage from "./pages/text_to_image/TextToImagePage";
@@ -118,7 +102,6 @@ import DashboardPage from "./pages/dashboard/DashboardPage";
import DevUploadAlt from "./pages/dev_upload/DevUploadAlt";
import { ModerationTokenInfoPage } from "./pages/moderation/ModerationTokenInfoPage";
import StyleVideo from "./pages/style-video";
// import AIFaceMirror from "./pages/ai_face_mirror";
import CreateBetaKeyPage from "./pages/beta_key/CreateBetaKeyPage";
import RedeemBetaKeyPage from "./pages/beta_key/RedeemBetaKeyPage";
import RedeemSuccessPage from "./pages/beta_key/RedeemSuccessPage";
@@ -151,62 +134,11 @@ interface Props {
sessionSubscriptionsWrapper: SessionSubscriptionsWrapper;
querySessionSubscriptionsAction: () => void;
isShowingVocodesNotice: boolean;
clearVocodesNotice: () => void;
isShowingLangaugeNotice: boolean;
clearLanguageNotice: () => void;
displayLanguage: Language;
primaryLanguageCode: string;
isShowingTwitchTtsNotice: boolean;
clearTwitchTtsNotice: () => void;
isShowingPleaseFollowNotice: boolean;
clearPleaseFollowNotice: () => void;
isShowingBootstrapLanguageNotice: boolean;
clearBootstrapLanguageNotice: () => void;
textBuffer: string;
setTextBuffer: (textBuffer: string) => void;
clearTextBuffer: () => void;
ttsModels: Array<TtsModelListItem>;
setTtsModels: (ttsVoices: Array<TtsModelListItem>) => void;
allTtsCategories: TtsCategoryType[];
setAllTtsCategories: (allTtsCategories: TtsCategoryType[]) => void;
computedTtsCategoryAssignments?: GetComputedTtsCategoryAssignmentsSuccessResponse;
setComputedTtsCategoryAssignments: (
categoryAssignments: GetComputedTtsCategoryAssignmentsSuccessResponse
) => void;
allTtsCategoriesByTokenMap: Map<string, TtsCategoryType>;
allTtsModelsByTokenMap: Map<string, TtsModelListItem>;
ttsModelsByCategoryToken: Map<string, Set<TtsModelListItem>>;
dropdownCategories: TtsCategoryType[][];
setDropdownCategories: (dropdownCategories: TtsCategoryType[][]) => void;
selectedCategories: TtsCategoryType[];
setSelectedCategories: (selectedCategories: TtsCategoryType[]) => void;
maybeSelectedTtsModel?: TtsModelListItem;
setMaybeSelectedTtsModel: (maybeSelectedTtsModel: TtsModelListItem) => void;
selectedTtsLanguageScope: string;
setSelectedTtsLanguageScope: (selectedTtsLanguageScope: string) => void;
voiceConversionModels: Array<VoiceConversionModelListItem>;
setVoiceConversionModels: (
ttsVoices: Array<VoiceConversionModelListItem>
) => void;
maybeSelectedVoiceConversionModel?: VoiceConversionModelListItem;
setMaybeSelectedVoiceConversionModel: (
maybeSelectedVoiceConversionModel: VoiceConversionModelListItem
) => void;
}
interface State {}