diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss index 5ddb002bd3..f3874e6721 100644 --- a/packages/fakeyou.com/src/scss/site-refresh.scss +++ b/packages/fakeyou.com/src/scss/site-refresh.scss @@ -933,6 +933,10 @@ styles with important tags: margin-bottom: -4%; margin-top: -30%; } + + .border-thick { + border-width: 2px; + } } select { diff --git a/packages/fakeyou.com/src/v2/view/_common/PageHeader.tsx b/packages/fakeyou.com/src/v2/view/_common/PageHeader.tsx new file mode 100644 index 0000000000..dc1667dba8 --- /dev/null +++ b/packages/fakeyou.com/src/v2/view/_common/PageHeader.tsx @@ -0,0 +1,33 @@ +import React from "react"; + +interface Props { + titleIcon?: JSX.Element; + title: JSX.Element; + subText: JSX.Element; + showButtons: boolean; + actionButtons?: JSX.Element; +} + +function PageHeader(props: Props) { + return ( +
+
+
+

+ {props.titleIcon} + {props.title} +

+
+

{props.subText}

+ {props.showButtons && ( +
+ {props.actionButtons} +
+ )} +
+
+
+ ); +} + +export { PageHeader }; diff --git a/packages/fakeyou.com/src/v2/view/_common/PageHeaderWithImage.tsx b/packages/fakeyou.com/src/v2/view/_common/PageHeaderWithImage.tsx new file mode 100644 index 0000000000..7754145b94 --- /dev/null +++ b/packages/fakeyou.com/src/v2/view/_common/PageHeaderWithImage.tsx @@ -0,0 +1,48 @@ +import React from "react"; +import { motion } from "framer-motion"; +import { image } from "../../../data/animation"; + +interface Props { + headerImage: string; + titleIcon?: JSX.Element; + title: JSX.Element; + subText: JSX.Element; + showButtons: boolean; + actionButtons?: JSX.Element; +} + +function PageHeaderWithImage(props: Props) { + return ( +
+
+
+
+ +
+
+
+

+ {props.titleIcon} + {props.title} +

+
+

{props.subText}

+ {props.showButtons && ( +
+ {props.actionButtons} +
+ )} +
+
+
+
+
+ ); +} + +export { PageHeaderWithImage }; diff --git a/packages/fakeyou.com/src/v2/view/_common/SessionTtsModelUploadResultsList.tsx b/packages/fakeyou.com/src/v2/view/_common/SessionTtsModelUploadResultsList.tsx index c001c0c9d8..8d5aeb2079 100644 --- a/packages/fakeyou.com/src/v2/view/_common/SessionTtsModelUploadResultsList.tsx +++ b/packages/fakeyou.com/src/v2/view/_common/SessionTtsModelUploadResultsList.tsx @@ -76,6 +76,12 @@ function SessionTtsModelUploadResultList(props: Props) { ); } + let noResultsSection = <>; + + if (results.length === 0) { + return <>{noResultsSection}; + } + return (
diff --git a/packages/fakeyou.com/src/v2/view/_common/SessionW2lInferenceResultsList.tsx b/packages/fakeyou.com/src/v2/view/_common/SessionW2lInferenceResultsList.tsx index 23df9fe66d..5559909840 100644 --- a/packages/fakeyou.com/src/v2/view/_common/SessionW2lInferenceResultsList.tsx +++ b/packages/fakeyou.com/src/v2/view/_common/SessionW2lInferenceResultsList.tsx @@ -81,6 +81,12 @@ function SessionW2lInferenceResultList(props: Props) { ); } + let noResultsSection = <>; + + if (results.length === 0) { + return <>{noResultsSection}; + } + return (
diff --git a/packages/fakeyou.com/src/v2/view/_common/SessionW2lTemplateUploadResultsList.tsx b/packages/fakeyou.com/src/v2/view/_common/SessionW2lTemplateUploadResultsList.tsx index 133b9bdd7f..a0cfb97b8a 100644 --- a/packages/fakeyou.com/src/v2/view/_common/SessionW2lTemplateUploadResultsList.tsx +++ b/packages/fakeyou.com/src/v2/view/_common/SessionW2lTemplateUploadResultsList.tsx @@ -78,6 +78,12 @@ function SessionW2lTemplateUploadResultList(props: Props) { ); } + let noResultsSection = <>; + + if (results.length === 0) { + return <>{noResultsSection}; + } + return (
diff --git a/packages/fakeyou.com/src/v2/view/nav/TopNav.tsx b/packages/fakeyou.com/src/v2/view/nav/TopNav.tsx index a70ac63677..92e96a6f0b 100644 --- a/packages/fakeyou.com/src/v2/view/nav/TopNav.tsx +++ b/packages/fakeyou.com/src/v2/view/nav/TopNav.tsx @@ -6,7 +6,6 @@ import { WebUrl } from "../../../common/WebUrl"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faMicrophone, - faVolumeUp, faPlus, faUsers, faVideo, @@ -40,6 +39,7 @@ import "tippy.js/dist/tippy.css"; import "tippy.js/animations/shift-away.css"; import { ThirdPartyLinks } from "@storyteller/components/src/constants/ThirdPartyLinks"; import { Analytics } from "../../../common/Analytics"; +import { faWaveformLines } from "@fortawesome/pro-solid-svg-icons"; interface Props { sessionWrapper: SessionWrapper; @@ -203,8 +203,7 @@ function TopNav(props: Props) { await logoutHandler(); }} > - - {" "} + {" "} {t("nav.TopNav.buttons.logout")} @@ -216,19 +215,28 @@ function TopNav(props: Props) {
- { Analytics.topbarClickAbout() } }> + { + Analytics.topbarClickAbout(); + }} + > {t("nav.TopNav.topbar.aboutLink")} - { Analytics.topbarClickTerms() } }> + { + Analytics.topbarClickTerms(); + }} + > {t("nav.TopNav.topbar.termsLink")} {t("nav.TopNav.topbar.privacyLink")} - + {t("nav.TopNav.topbar.developersLink")}
@@ -265,8 +273,7 @@ function TopNav(props: Props) {

- {t("nav.TopNav.topbar.ttsQueued")}: - {" "} + {t("nav.TopNav.topbar.ttsQueued")}:{" "} {pendingTtsJobs.pending_job_count} @@ -327,7 +334,9 @@ function TopNav(props: Props) {

  • { Analytics.topbarClickPricing() } } + onClick={() => { + Analytics.topbarClickPricing(); + }} className="nav-link" > @@ -338,7 +347,9 @@ function TopNav(props: Props) {
  • { Analytics.topbarClickVoiceClone() } } + onClick={() => { + Analytics.topbarClickVoiceClone(); + }} className="nav-link" > @@ -365,7 +376,10 @@ function TopNav(props: Props) { >
  • - + {t("nav.TopNav.main.ttsOption")}
  • @@ -537,8 +551,7 @@ function TopNav(props: Props) { Online: 1,204

    */}
    - {t("nav.TopNav.topbar.ttsQueued")}: - {" "} + {t("nav.TopNav.topbar.ttsQueued")}:{" "} {pendingTtsJobs.pending_job_count} diff --git a/packages/fakeyou.com/src/v2/view/pages/contribute/ContributeIndexPage.tsx b/packages/fakeyou.com/src/v2/view/pages/contribute/ContributeIndexPage.tsx index 2f8efce513..da1eafb0ec 100644 --- a/packages/fakeyou.com/src/v2/view/pages/contribute/ContributeIndexPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/contribute/ContributeIndexPage.tsx @@ -18,6 +18,8 @@ import { import { motion } from "framer-motion"; import { container, item, panel } from "../../../../data/animation"; import { usePrefixedDocumentTitle } from "../../../../common/UsePrefixedDocumentTitle"; +import { PageHeader } from "../../_common/PageHeader"; +import { faHandHoldingHeart } from "@fortawesome/pro-solid-svg-icons"; interface Props { sessionWrapper: SessionWrapper; @@ -34,9 +36,24 @@ function ContributeIndexPage(props: Props) { usePrefixedDocumentTitle("Contribute to FakeYou"); + const title = <>{t("pages.contributeIndex.heroTitle")}; + const subText = ( + <> +
    + + You make FakeYou better by contributing + +
    + {t("pages.contributeIndex.introText")} + + ); + const titleIcon = ( + + ); + return ( -
    + {/*
    {t("pages.contributeIndex.heroTitle")} @@ -50,7 +67,13 @@ function ContributeIndexPage(props: Props) { {t("pages.contributeIndex.introText")}
    -
    +
    */} +
    diff --git a/packages/fakeyou.com/src/v2/view/pages/landing/LandingPage.tsx b/packages/fakeyou.com/src/v2/view/pages/landing/LandingPage.tsx index 48934a82c3..8ee0e9bb7b 100644 --- a/packages/fakeyou.com/src/v2/view/pages/landing/LandingPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/landing/LandingPage.tsx @@ -131,10 +131,7 @@ function LandingPage(props: Props) {
    - +
    ; + const title = <>{t("tts.TtsModelListPage.heroSection.title")}; + const subText = ( + <> + + Use FakeYou's deepfake tech to say stuff with your favorite characters. + + + ); + const actionButtons = ( + <> + {upgradeButton} + {signUpButton} + {viewPricingButton} + {myProfileButton} + + ); + return ( -
    -
    -
    -
    - -
    -
    -
    -

    - - {t("tts.TtsModelListPage.heroSection.title")} -

    -

    - - Use FakeYou's deepfake tech to say stuff with your favorite - characters. - -

    - - {upgradeButton} - {signUpButton} - {viewPricingButton} - {myProfileButton} - -
    -
    -
    -
    -
    + <> + + ); } diff --git a/packages/fakeyou.com/src/v2/view/pages/w2l/w2l_template_list/W2lTemplateListPage.tsx b/packages/fakeyou.com/src/v2/view/pages/w2l/w2l_template_list/W2lTemplateListPage.tsx index a1c74a8d17..9949b1cd58 100644 --- a/packages/fakeyou.com/src/v2/view/pages/w2l/w2l_template_list/W2lTemplateListPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/w2l/w2l_template_list/W2lTemplateListPage.tsx @@ -14,9 +14,11 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faChevronLeft, faChevronRight, + faFilm, } from "@fortawesome/free-solid-svg-icons"; import { motion } from "framer-motion"; import { usePrefixedDocumentTitle } from "../../../../../common/UsePrefixedDocumentTitle"; +import { PageHeader } from "../../../_common/PageHeader"; const Fade = require("react-reveal/Fade"); @@ -176,7 +178,7 @@ function W2lTemplateListPage(props: Props) { if (props.sessionWrapper.isLoggedIn()) { extraDetails = ( -

    +

    Pick a template, then you can make it lip sync. If you want to use your own video or image, you can upload it as a template. You'll then be @@ -185,7 +187,7 @@ function W2lTemplateListPage(props: Props) { ); } else { extraDetails = ( -

    +

    Pick a template, then you can make it lip sync. If you want to use your own video or image, you'll need to{" "} create an account. You'll then be able to @@ -196,16 +198,18 @@ function W2lTemplateListPage(props: Props) { usePrefixedDocumentTitle("Create Deep Fake lip sync videos"); + const title = <>Video Lip Sync Templates; + const subText = <>{extraDetails}; + const titleIcon = ; + return ( -

    -
    - - Video Lip Sync Templates - - {extraDetails} -
    -
    +