diff --git a/packages/components/src/session/SessionSubscriptionsWrapper.ts b/packages/components/src/session/SessionSubscriptionsWrapper.ts index 62dbf6cd4e..bf097bfe1e 100644 --- a/packages/components/src/session/SessionSubscriptionsWrapper.ts +++ b/packages/components/src/session/SessionSubscriptionsWrapper.ts @@ -25,11 +25,23 @@ export class SessionSubscriptionsWrapper { return new SessionSubscriptionsWrapper(); } + public ttsMaximumLength() : number { + if (this.hasActiveEliteSubscription()) { + return 4096; + } else if (this.hasActiveProSubscription()) { + return 3072; + } else if (this.hasActivePlusSubscription()) { + return 2048; + } else if (this.hasLoyaltyProgram()) { + return 2048; + } + return 1024; + } + public hasFreeOrPaidPremiumFeatures() : boolean { return this.hasLoyaltyProgram() || this.hasPaidFeatures(); } - public hasLoyaltyProgram() : boolean { return !!this.listActiveSubscriptionResponse?.maybe_loyalty_program; } diff --git a/packages/fakeyou.com/src/v2/view/pages/tts/tts_model_list/TtsModelListPage.tsx b/packages/fakeyou.com/src/v2/view/pages/tts/tts_model_list/TtsModelListPage.tsx index 7815eb29dd..30a663aa90 100644 --- a/packages/fakeyou.com/src/v2/view/pages/tts/tts_model_list/TtsModelListPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/tts/tts_model_list/TtsModelListPage.tsx @@ -466,7 +466,9 @@ function TtsModelListPage(props: Props) { } // NB: If the text is too long, don't allow submission - let remainingCharactersButtonDisabled = props.textBuffer.trim().length > 1024; + let remainingCharactersButtonDisabled = props.textBuffer.trim().length > + props.sessionSubscriptionsWrapper.ttsMaximumLength(); + let noTextInputButtonDisabled = props.textBuffer.trim() === ""; const speakButtonClass = loading