diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index b4a31f7b73..edd1671dba 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -644,7 +644,10 @@ class PageContainer extends React.Component< path="/voice-designer/create" > @@ -654,7 +657,10 @@ class PageContainer extends React.Component< path="/voice-designer/dataset/:dataset_token/edit" > @@ -664,7 +670,10 @@ class PageContainer extends React.Component< path="/voice-designer/dataset/:dataset_token/upload" > @@ -687,6 +696,9 @@ class PageContainer extends React.Component< ; + if (!isLoggedIn) { + pageHeader = ( + ) + } else { + pageHeader = ( + ) + } + + let body = <>; + + if (!isLoggedIn) { + body = ( +
+
+ + +
+ {/*

+ Join Our Community +

*/} +

+ This feature requires a subscription +
+ Log in or Sign Up! +
+ Also join us on Discord so that we know what you're thinking. +

+
+ + +
+
+ ) + } else { + body = ( + <> + + + + +
+ +
+
+ + ) + } + return ( <> - - - - + {pageHeader} -
- -
-
+ {body}
{/* Delete Modal */} 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 f66555a637..38f28ba008 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 @@ -31,6 +31,7 @@ import { GetVoice } from "@storyteller/components/src/api/voice_designer/voices/ import Skeleton from "components/common/Skeleton"; import useVoiceRequests from "./useVoiceRequests"; import { v4 as uuidv4 } from "uuid"; +import { useHistory } from "react-router-dom"; interface VoiceDesignerUseVoicePageProps { sessionWrapper: SessionWrapper; @@ -62,6 +63,7 @@ export default function VoiceDesignerUseVoicePage( }); const { inference } = useVoiceRequests({}); const [isEnqueuing, setIsEnqueuing] = useState(false); + const history = useHistory(); const getVoiceDetails = useCallback(async (voice_token) => { try { @@ -189,6 +191,10 @@ export default function VoiceDesignerUseVoicePage( ); } + if (!props.sessionWrapper.isLoggedIn()) { + history.push("/voice-designer"); + } + return ( diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/VdPageHero.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/VdPageHero.tsx new file mode 100644 index 0000000000..4d15a9b252 --- /dev/null +++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/VdPageHero.tsx @@ -0,0 +1,103 @@ +import React, { useMemo } from "react"; +import { SessionWrapper } from "@storyteller/components/src/session/SessionWrapper"; +import { Link } from "react-router-dom"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { + faStar, + faUser, + faArrowRight, + faMicrophoneStand, +} from "@fortawesome/pro-solid-svg-icons"; + +import { useLocalize } from "hooks"; +import { PageHeaderWithImage } from "v2/view/_common/PageHeaderWithImage"; +import { WebUrl } from "common/WebUrl"; +import { Analytics } from "common/Analytics"; + +interface Props { + sessionWrapper: SessionWrapper; +} + +export function VdPageHero(props: Props) { + const { t } = useLocalize("VcModelListPage"); + const randomImage = useMemo(() => { + const images = ["/images/header/voice-designer.png"]; + + return images[Math.floor(Math.random() * images.length)]; + }, []); + + let signUpButton = <>; + let viewPricingButton = <>; + let loginButton = <>; + const loggedIn = props.sessionWrapper.isLoggedIn(); + + if (!loggedIn) { + signUpButton = ( + <> + { + Analytics.ttsClickHeroSignup(); + }} + > + + + + ); + viewPricingButton = ( + <> + { + Analytics.ttsClickHeroViewPricing(); + }} + > + + + + ); + + loginButton = ( + <> + + + + + ); + } + + const titleIcon = ( + + ); + const title = <>{"Voice Designer"}; + const subText = <>{t("heroText")}; + const actionButtons = ( + <> + {signUpButton} + {loginButton} + {viewPricingButton} + + ); + + return ( + <> + + + ); +} diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/UploadSamples.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/UploadSamples.tsx index af3fdf0b02..97d0f45537 100644 --- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/UploadSamples.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/UploadSamples.tsx @@ -1,6 +1,7 @@ import React, { useState } from "react"; import VoiceDesignerUploadComponent from "../VoiceDesignerUploadComponent"; import { v4 as uuidv4 } from "uuid"; +import { SessionContext } from 'context'; function UploadSamples({ audioProps, datasetToken, setAudioSamplesReady }: { audioProps: any, datasetToken?: string, setAudioSamplesReady:any }) { /* eslint-disable @typescript-eslint/no-unused-vars */