From 3f8431f67086ddef7b3dbbc6df375a3bd0a6047e Mon Sep 17 00:00:00 2001 From: BFlat Date: Sat, 29 Jul 2023 08:15:12 +0700 Subject: [PATCH 01/18] view model page init --- .../src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx diff --git a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx new file mode 100644 index 0000000000..6a32d0d109 --- /dev/null +++ b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx @@ -0,0 +1,7 @@ +import React from "react"; + +interface VcModelViewPageProps {} + +export default function VcModelViewPage(props: VcModelViewPageProps) { + return
VcModelViewPage
; +} From 3a6c28bf88a1ba90865ec7f63d8a3c5d444e9d50 Mon Sep 17 00:00:00 2001 From: BFlat Date: Mon, 31 Jul 2023 14:24:21 +0700 Subject: [PATCH 02/18] page container addition --- packages/fakeyou.com/src/v2/view/PageContainer.tsx | 5 +++++ .../src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx | 2 ++ 2 files changed, 7 insertions(+) diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index 5210ac206b..b5ed8144be 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -78,6 +78,7 @@ import { UploadVoiceConversionModel } from "./pages/upload/UploadVoiceConversion import { VoiceConversionModelListItem } from "@storyteller/components/src/api/voice_conversion/ListVoiceConversionModels"; import { CommunityCommissionsPage } from "./pages/contest/CommunityCommissionsPage"; import { ProductUsageInfoPage } from "./pages/product_usage_info/ProductUsageInfoPage"; +import VcModelViewPage from "./pages/vc/vc_model_view/VcModelViewPage"; interface Props { sessionWrapper: SessionWrapper; @@ -521,6 +522,10 @@ class PageContainer extends React.Component { /> + + + + diff --git a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx index 6a32d0d109..8292f89871 100644 --- a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx @@ -1,7 +1,9 @@ import React from "react"; +import { useParams } from "react-router-dom"; interface VcModelViewPageProps {} export default function VcModelViewPage(props: VcModelViewPageProps) { + let { token } = useParams() as { token: string }; return
VcModelViewPage
; } From a18bbab4053fe1e58fa3532fcf828d1c941e2ec2 Mon Sep 17 00:00:00 2001 From: BFlat Date: Mon, 31 Jul 2023 14:36:04 +0700 Subject: [PATCH 03/18] panel component --- .../src/components/common/Panel.tsx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 packages/fakeyou.com/src/components/common/Panel.tsx diff --git a/packages/fakeyou.com/src/components/common/Panel.tsx b/packages/fakeyou.com/src/components/common/Panel.tsx new file mode 100644 index 0000000000..6ad8c5dcf0 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/Panel.tsx @@ -0,0 +1,18 @@ +import React from "react"; +import { motion } from "framer-motion"; +import { panel } from "data/animation"; + +interface PanelProps { + children: React.ReactNode; + padding?: boolean; +} + +export default function Panel(props: PanelProps) { + return ( + +
+ {props.children} +
+
+ ); +} From 0c6e4b7366ca31dd04965fe2eed61ca584bfd991 Mon Sep 17 00:00:00 2001 From: BFlat Date: Mon, 31 Jul 2023 20:33:52 +0700 Subject: [PATCH 04/18] v2v model page update --- .../components/common/PageHeaderModelView.tsx | 34 +++++++ .../src/components/common/Panel.tsx | 7 +- .../fakeyou.com/src/scss/site-refresh.scss | 7 ++ .../fakeyou.com/src/v2/view/PageContainer.tsx | 13 ++- .../vc/vc_model_view/VcModelViewPage.tsx | 96 ++++++++++++++++++- 5 files changed, 149 insertions(+), 8 deletions(-) create mode 100644 packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx diff --git a/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx new file mode 100644 index 0000000000..0a6e561d63 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx @@ -0,0 +1,34 @@ +import React from "react"; + +interface PageHeaderModelViewProps { + titleIcon?: React.ReactNode; + title: string; + subText: React.ReactNode; + tags?: string[]; +} + +export default function PageHeaderModelView(props: PageHeaderModelViewProps) { + return ( +
+
+
+
+

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

+

{props.subText}

+
+
+ {props.tags && + props.tags.map((tag, index) => ( +
+ {tag} +
+ ))} +
+
+
+
+ ); +} diff --git a/packages/fakeyou.com/src/components/common/Panel.tsx b/packages/fakeyou.com/src/components/common/Panel.tsx index 6ad8c5dcf0..8ae8d478ce 100644 --- a/packages/fakeyou.com/src/components/common/Panel.tsx +++ b/packages/fakeyou.com/src/components/common/Panel.tsx @@ -5,12 +5,17 @@ import { panel } from "data/animation"; interface PanelProps { children: React.ReactNode; padding?: boolean; + mb?: boolean; } export default function Panel(props: PanelProps) { return ( -
+
{props.children}
diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss index 65f8940ed3..eebb2ff48b 100644 --- a/packages/fakeyou.com/src/scss/site-refresh.scss +++ b/packages/fakeyou.com/src/scss/site-refresh.scss @@ -662,6 +662,13 @@ styles with important tags: background-color: #fff3cd; color: #664d03; } + + &.badge-tag { + font-size: 13px; + padding: 6px 12px; + background-color: $input-dark; + color: $white; + } } .badge-model { diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index b5ed8144be..976d368bd9 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -502,6 +502,15 @@ class PageContainer extends React.Component { /> + + + + { /> - - - - diff --git a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx index 8292f89871..5f850ae2ef 100644 --- a/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/vc/vc_model_view/VcModelViewPage.tsx @@ -1,9 +1,99 @@ +import { + faBarsStaggered, + faDeleteLeft, + faVolumeHigh, +} from "@fortawesome/pro-solid-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { FrontendInferenceJobType } from "@storyteller/components/src/jobs/InferenceJob"; +import Panel from "components/common/Panel"; import React from "react"; -import { useParams } from "react-router-dom"; +import { Link, useParams } from "react-router-dom"; +import { SessionVoiceConversionResultsList } from "v2/view/_common/SessionVoiceConversionResultsList"; +import { SessionSubscriptionsWrapper } from "@storyteller/components/src/session/SessionSubscriptionsWrapper"; +import PageHeaderModelView from "components/common/PageHeaderModelView"; -interface VcModelViewPageProps {} +interface VcModelViewPageProps { + sessionSubscriptionsWrapper: SessionSubscriptionsWrapper; + inferenceJobsByCategory: any; +} export default function VcModelViewPage(props: VcModelViewPageProps) { let { token } = useParams() as { token: string }; - return
VcModelViewPage
; + + const title = "Solid Snake"; + const subText = ( +
+
+ RVCv2 +
+

+ V2V model created by Vegito1089 +

+
+ ); + const tags = ["Speaking", "English", "Character", "Singing", "Spanish"]; + + return ( +
+ + + +
+
+

+ + Use Voice +

+ {/* have to replace this below with Voice conversion stuff instead of the textarea */} +
{}}> + +
+ + + +
+
+
+
+

+ + Session V2V Results +

+
+ +
+
+
+
+ +

+ + Voice Details +

+ lol +
+
+ ); } From 9ccd80da312f1da37f8c91c412dd0b9bcad10a7a Mon Sep 17 00:00:00 2001 From: BFlat Date: Thu, 3 Aug 2023 16:51:17 +0700 Subject: [PATCH 05/18] v2v model view page update --- .../components/common/PageHeaderModelView.tsx | 37 +++-- .../src/components/common/Panel.tsx | 2 +- .../src/components/common/ShareButton.tsx | 43 ++++++ .../fakeyou.com/src/scss/site-refresh.scss | 25 +++- .../fakeyou.com/src/v2/view/PageContainer.tsx | 1 + .../vc/vc_model_view/VcModelViewPage.tsx | 129 +++++++++++++----- 6 files changed, 190 insertions(+), 47 deletions(-) create mode 100644 packages/fakeyou.com/src/components/common/ShareButton.tsx diff --git a/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx index 0a6e561d63..cdcd186b98 100644 --- a/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx +++ b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx @@ -1,17 +1,21 @@ import React from "react"; +import Panel from "./Panel"; interface PageHeaderModelViewProps { titleIcon?: React.ReactNode; title: string; subText: React.ReactNode; tags?: string[]; + ratingBtn?: React.ReactNode; + ratingStats?: React.ReactNode; + extras?: React.ReactNode; } export default function PageHeaderModelView(props: PageHeaderModelViewProps) { return ( -
-
-
+
+ +

{props.titleIcon} @@ -19,16 +23,27 @@ export default function PageHeaderModelView(props: PageHeaderModelViewProps) {

{props.subText}

-
- {props.tags && - props.tags.map((tag, index) => ( -
- {tag} -
- ))} +
+
+ {props.tags && + props.tags.map((tag, index) => ( +
+ {tag} +
+ ))} +
-
+
+ +
+
+ {props.ratingBtn} + {props.extras} +
+ {props.ratingStats} +
+
); } diff --git a/packages/fakeyou.com/src/components/common/Panel.tsx b/packages/fakeyou.com/src/components/common/Panel.tsx index 8ae8d478ce..646548a284 100644 --- a/packages/fakeyou.com/src/components/common/Panel.tsx +++ b/packages/fakeyou.com/src/components/common/Panel.tsx @@ -12,7 +12,7 @@ export default function Panel(props: PanelProps) { return (
diff --git a/packages/fakeyou.com/src/components/common/ShareButton.tsx b/packages/fakeyou.com/src/components/common/ShareButton.tsx new file mode 100644 index 0000000000..cb9e0852d5 --- /dev/null +++ b/packages/fakeyou.com/src/components/common/ShareButton.tsx @@ -0,0 +1,43 @@ +import React, { useState } from "react"; +import Tippy from "@tippyjs/react"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { faLink } from "@fortawesome/pro-solid-svg-icons"; + +interface ShareButtonProps { + url: string; +} + +export default function ShareButton(props: ShareButtonProps) { + const [tippyContent, setTippyContent] = useState("Share"); + + const copyToClipboard = async () => { + try { + await navigator.clipboard.writeText(props.url); + setTippyContent("Link Copied"); + setTimeout(() => { + setTippyContent("Share"); + }, 800); + } catch (error) { + console.error("Failed to copy link to clipboard:", error); + } + }; + + return ( +
+ + + +
+ ); +} diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss index eebb2ff48b..52c1901821 100644 --- a/packages/fakeyou.com/src/scss/site-refresh.scss +++ b/packages/fakeyou.com/src/scss/site-refresh.scss @@ -869,18 +869,18 @@ styles with important tags: font-weight: 500; font-size: 17px; background-color: lighten($secondary, 4%); - border-radius: 50px; + border-radius: 0.5rem; border: none; padding: 6px 20px; color: rgba($white, 0.5); transition: 0.1s all; &.left { - border-radius: 50px 0px 0px 50px; + border-radius: 0.5rem 0px 0px 0.5rem; } &.right { - border-radius: 0px 50px 50px 5px; + border-radius: 0px 0.5rem 0.5rem 0px; } &.rated { @@ -893,6 +893,25 @@ styles with important tags: } } + .btn-share { + font-weight: 500; + font-size: 14px; + background-color: lighten($secondary, 4%); + border-radius: 0.5rem; + border: none; + padding: 8.25px 20px; + color: $white; + transition: 0.1s all; + + &:hover { + background-color: lighten($secondary, 10%); + } + + &:active { + background-color: lighten($secondary, 15%); + } + } + .rating-icon { color: #ffbc39; diff --git a/packages/fakeyou.com/src/v2/view/PageContainer.tsx b/packages/fakeyou.com/src/v2/view/PageContainer.tsx index 976d368bd9..93602724bc 100644 --- a/packages/fakeyou.com/src/v2/view/PageContainer.tsx +++ b/packages/fakeyou.com/src/v2/view/PageContainer.tsx @@ -504,6 +504,7 @@ class PageContainer extends React.Component { RVCv2

- V2V model created by Vegito1089 + V2V model by Vegito1089

); const tags = ["Speaking", "English", "Character", "Singing", "Spanish"]; + let modelCreatorLink = Creator Name; + let modelTitle = title; + let modelUseCount = 10000; + let modelLanguage = "English"; + let modelType = "RVCv2"; + let modelUploadDate = "2021-09-10T06:15:04Z"; + let modelVisibility = ( +
+ + Public +
+ ); + + const voiceDetails = [ + { label: "Creator", value: modelCreatorLink }, + { label: "Title", value: modelTitle }, + { label: "Use count", value: modelUseCount }, + { label: "Spoken language", value: modelLanguage }, + { label: "Model type", value: modelType }, + { label: "Upload date (UTC)", value: modelUploadDate }, + { label: "Visibility", value: modelVisibility }, + ]; + + let ratingButtons = <>; + if (props.sessionWrapper.isLoggedIn()) { + ratingButtons = ( + + ); + } + + let ratingStats = ( + + ); + + const shareUrl = window.location.href; + const shareButton = ; + return (
- +
@@ -45,29 +99,7 @@ export default function VcModelViewPage(props: VcModelViewPageProps) { Use Voice {/* have to replace this below with Voice conversion stuff instead of the textarea */} -
{}}> - -
- - - -
-
+
voice to voice components here

@@ -87,12 +119,45 @@ export default function VcModelViewPage(props: VcModelViewPageProps) {

- -

- - Voice Details + +

+ + Voice Model Details

- lol + + + {voiceDetails.map((item, index) => ( + + + + + ))} + +
+ {item.label} + {item.value}
+ {/* Model Edit Buttons */} +
+ + + Edit Model Details + + + + Delete Model + +
+
+ +

+ + Comments +

+

); From 5f783a1a7f482cf6d5b971b87d7701f93505422f Mon Sep 17 00:00:00 2001 From: BFlat Date: Thu, 3 Aug 2023 16:56:56 +0700 Subject: [PATCH 06/18] panel padding changes --- packages/fakeyou.com/src/components/common/Panel.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/fakeyou.com/src/components/common/Panel.tsx b/packages/fakeyou.com/src/components/common/Panel.tsx index 646548a284..8ae8d478ce 100644 --- a/packages/fakeyou.com/src/components/common/Panel.tsx +++ b/packages/fakeyou.com/src/components/common/Panel.tsx @@ -12,7 +12,7 @@ export default function Panel(props: PanelProps) { return (
From fe092fd7247b169395dad6d5586551346dac17eb Mon Sep 17 00:00:00 2001 From: BFlat Date: Thu, 3 Aug 2023 17:01:39 +0700 Subject: [PATCH 07/18] responsive layout fix --- .../src/components/common/PageHeaderModelView.tsx | 5 ++++- packages/fakeyou.com/src/components/common/ShareButton.tsx | 2 +- packages/fakeyou.com/src/scss/site-refresh.scss | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx index cdcd186b98..74a89e9375 100644 --- a/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx +++ b/packages/fakeyou.com/src/components/common/PageHeaderModelView.tsx @@ -39,9 +39,12 @@ export default function PageHeaderModelView(props: PageHeaderModelViewProps) {
{props.ratingBtn} - {props.extras} +
{props.extras}
{props.ratingStats} +
+ {props.extras} +
diff --git a/packages/fakeyou.com/src/components/common/ShareButton.tsx b/packages/fakeyou.com/src/components/common/ShareButton.tsx index cb9e0852d5..c7caacfaaa 100644 --- a/packages/fakeyou.com/src/components/common/ShareButton.tsx +++ b/packages/fakeyou.com/src/components/common/ShareButton.tsx @@ -31,7 +31,7 @@ export default function ShareButton(props: ShareButtonProps) { theme="fakeyou" arrow={false} > -