From a2775f8607b60c1aeae35f6b2f10a2efa9a8285d Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 11 Feb 2022 11:52:04 -0500 Subject: [PATCH] Front page featured defaults --- .../v2 => components/src}/api/tts/ListTtsModels.ts | 4 +++- packages/fakeyou/src/App.tsx | 2 +- packages/fakeyou/src/AppWrapper.tsx | 2 +- packages/fakeyou/src/v2/view/NewVocodesContainer.tsx | 2 +- .../v2/view/tts/tts_model_list/AutocompleteSearch.tsx | 2 +- .../view/tts/tts_model_list/MultiDropdownSearch.tsx | 2 +- .../src/v2/view/tts/tts_model_list/TtsModelListFc.tsx | 11 +++++++++-- 7 files changed, 17 insertions(+), 8 deletions(-) rename packages/{fakeyou/src/v2 => components/src}/api/tts/ListTtsModels.ts (89%) diff --git a/packages/fakeyou/src/v2/api/tts/ListTtsModels.ts b/packages/components/src/api/tts/ListTtsModels.ts similarity index 89% rename from packages/fakeyou/src/v2/api/tts/ListTtsModels.ts rename to packages/components/src/api/tts/ListTtsModels.ts index d8ef548e65..49e589fea5 100644 --- a/packages/fakeyou/src/v2/api/tts/ListTtsModels.ts +++ b/packages/components/src/api/tts/ListTtsModels.ts @@ -1,4 +1,4 @@ -import { ApiConfig } from "@storyteller/components"; +import { ApiConfig } from "../ApiConfig"; interface TtsModelListResponsePayload { success: boolean, @@ -14,6 +14,8 @@ export interface TtsModelListItem { creator_gravatar_hash: string, updatable_slug: string, title: string, + is_front_page_featured: boolean, + is_twitch_featured: boolean, category_tokens: string[], created_at: string, updated_at: string, diff --git a/packages/fakeyou/src/App.tsx b/packages/fakeyou/src/App.tsx index 8f75f2b04d..3055516006 100644 --- a/packages/fakeyou/src/App.tsx +++ b/packages/fakeyou/src/App.tsx @@ -15,7 +15,7 @@ import { W2lInferenceJob, W2lInferenceJobStateResponsePayload } from '@storytell import { TtsModelUploadJob, TtsModelUploadJobStateResponsePayload } from '@storyteller/components/src/jobs/TtsModelUploadJobs'; import { W2lTemplateUploadJob, W2lTemplateUploadJobStateResponsePayload } from '@storyteller/components/src/jobs/W2lTemplateUploadJobs'; import { jobStateCanChange } from '@storyteller/components/src/jobs/JobStates'; -import { TtsModelListItem } from './v2/api/tts/ListTtsModels'; +import { TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { TtsCategoryType } from './AppWrapper'; enum MigrationMode { diff --git a/packages/fakeyou/src/AppWrapper.tsx b/packages/fakeyou/src/AppWrapper.tsx index fc9f3b54a4..fb1dd3bc80 100644 --- a/packages/fakeyou/src/AppWrapper.tsx +++ b/packages/fakeyou/src/AppWrapper.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import { TtsCategory } from './v2/api/category/ListTtsCategories'; -import { TtsModelListItem } from './v2/api/tts/ListTtsModels'; +import { TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { App } from './App'; import { v4 as uuidv4 } from 'uuid'; diff --git a/packages/fakeyou/src/v2/view/NewVocodesContainer.tsx b/packages/fakeyou/src/v2/view/NewVocodesContainer.tsx index 908fe50107..87aeb5c6c2 100644 --- a/packages/fakeyou/src/v2/view/NewVocodesContainer.tsx +++ b/packages/fakeyou/src/v2/view/NewVocodesContainer.tsx @@ -35,7 +35,7 @@ import { W2lTemplateEditFc } from './w2l/w2l_template_edit/W2lTemplateEditFc'; import { W2lResultDeleteFc } from './w2l/w2l_result_delete/W2lResultDeleteFc'; import { W2lTemplateApproveFc } from './w2l/w2l_template_approve/W2lTemplateApproveFc'; import { TtsModelListFc } from './tts/tts_model_list/TtsModelListFc'; -import { TtsModelListItem } from '../api/tts/ListTtsModels'; +import { TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { ProfileBanFc } from './profile/profile_ban/ProfileBanFc'; import { ModerationUserListFc } from './moderation/moderation_user_list/ModerationUserList'; import { LeaderboardFc } from './leaderboard/LeaderboardFc'; diff --git a/packages/fakeyou/src/v2/view/tts/tts_model_list/AutocompleteSearch.tsx b/packages/fakeyou/src/v2/view/tts/tts_model_list/AutocompleteSearch.tsx index 33f2bb1e66..c2112883bb 100644 --- a/packages/fakeyou/src/v2/view/tts/tts_model_list/AutocompleteSearch.tsx +++ b/packages/fakeyou/src/v2/view/tts/tts_model_list/AutocompleteSearch.tsx @@ -1,6 +1,6 @@ import React, { useState } from 'react'; -import { TtsModelListItem } from '../../../api/tts/ListTtsModels'; +import { TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { TtsCategoryType } from '../../../../AppWrapper'; import Autocomplete from 'react-autocomplete'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; diff --git a/packages/fakeyou/src/v2/view/tts/tts_model_list/MultiDropdownSearch.tsx b/packages/fakeyou/src/v2/view/tts/tts_model_list/MultiDropdownSearch.tsx index 649ad7eddb..836b62661c 100644 --- a/packages/fakeyou/src/v2/view/tts/tts_model_list/MultiDropdownSearch.tsx +++ b/packages/fakeyou/src/v2/view/tts/tts_model_list/MultiDropdownSearch.tsx @@ -1,7 +1,7 @@ import React, { useEffect } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faChevronRight, faHeadphonesAlt, faTags, faTimes } from '@fortawesome/free-solid-svg-icons'; -import { TtsModelListItem } from '../../../api/tts/ListTtsModels'; +import { TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { TtsCategoryType } from '../../../../AppWrapper'; interface Props { diff --git a/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx b/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx index c0aba35540..909b069ed5 100644 --- a/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx +++ b/packages/fakeyou/src/v2/view/tts/tts_model_list/TtsModelListFc.tsx @@ -11,7 +11,7 @@ import { TtsModelUploadJob } from '@storyteller/components/src/jobs/TtsModelUplo import { W2lInferenceJob } from '@storyteller/components/src/jobs/W2lInferenceJobs'; import { W2lTemplateUploadJob } from '@storyteller/components/src/jobs/W2lTemplateUploadJobs'; import { v4 as uuidv4 } from 'uuid'; -import { ListTtsModels, TtsModelListItem } from '../../../api/tts/ListTtsModels'; +import { ListTtsModels, TtsModelListItem } from '@storyteller/components/src/api/tts/ListTtsModels'; import { GravatarFc } from '../../_common/GravatarFc'; import { VocodesNotice } from './VocodesNotice'; import { ListTtsCategories, ListTtsCategoriesIsError, ListTtsCategoriesIsOk } from '../../../api/category/ListTtsCategories'; @@ -87,7 +87,14 @@ function TtsModelListFc(props: Props) { dynamicallyCategorizeModels(models); setTtsModels(models); if (!maybeSelectedTtsModel && models.length > 0) { - const model = models[0]; + let model = models[0]; + const featuredModels = models.filter(m => m.is_front_page_featured); + if (featuredModels.length > 0) { + // Random featured model + model = featuredModels[ + Math.floor(Math.random()*featuredModels.length) + ]; + } setMaybeSelectedTtsModel(model); } }