diff --git a/packages/fakeyou.com/src/scss/site-refresh.scss b/packages/fakeyou.com/src/scss/site-refresh.scss
index c5c5db3e5f..fb4f557b0e 100644
--- a/packages/fakeyou.com/src/scss/site-refresh.scss
+++ b/packages/fakeyou.com/src/scss/site-refresh.scss
@@ -1310,6 +1310,57 @@ styles with important tags:
color: rgba($white, 0.85) !important;
font-weight: 500 !important;
}
+
+ .stepper-container {
+ width: 100%;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+
+ .stepper-number {
+ font-size: 16px;
+ font-weight: 600;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 32px;
+ height: 32px;
+ min-width: 32px;
+ background-color: $secondary;
+ border-radius: 48px;
+ opacity: 0.4;
+ transition: all 0.2s;
+
+ &.active {
+ background-color: $primary;
+ opacity: 1;
+ }
+ }
+
+ .stepper-description {
+ font-size: 18px;
+ font-weight: 600;
+ white-space: nowrap;
+ opacity: 0.4;
+ transition: all 0.2s;
+
+ &.active {
+ opacity: 1;
+ }
+ }
+
+ .stepper-line {
+ flex-grow: 1;
+ height: 3px;
+ background: $secondary;
+ transition: all 0.2s;
+
+ &.active {
+ background-color: $primary;
+ opacity: 1;
+ }
+ }
+ }
}
select {
diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerPage.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerPage.tsx
index 62f81bb80f..5af063546c 100644
--- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerPage.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/VoiceDesignerPage.tsx
@@ -1,4 +1,4 @@
-import React from "react";
+import React, { useState } from "react";
import { faWaveform } from "@fortawesome/pro-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { usePrefixedDocumentTitle } from "common/UsePrefixedDocumentTitle";
@@ -6,29 +6,62 @@ import { PageHeaderWithImage } from "v2/view/_common/PageHeaderWithImage";
import { Panel } from "v2/view/_common/Panel";
import { Stepper } from "./components/Stepper";
import { StepperControls } from "./components/StepperControls";
+import { motion } from "framer-motion";
+import { container } from "data/animation";
+import { UploadSamples } from "./components/steps/UploadSamples";
+import { VoiceDetails } from "./components/steps/VoiceDetails";
+import { Complete } from "./components/steps/Complete";
function VoiceDesignerPage(this: any) {
usePrefixedDocumentTitle("Voice Designer");
+ const [currentStep, setCurrentStep] = useState(0);
+ const steps = ["Upload Samples", "Voice Details", "Complete"];
+
+ const displayStep = (step: any) => {
+ switch (step) {
+ case 0:
+ return ;
+ case 1:
+ return ;
+ case 2:
+ return ;
+ default:
+ }
+ };
+
+ const handleBack = () => {
+ if (currentStep > 0) {
+ setCurrentStep(currentStep - 1);
+ }
+ };
+
+ const handleNext = () => {
+ if (currentStep < steps.length - 1) {
+ setCurrentStep(currentStep + 1);
+ }
+ };
+
return (
-
+
}
title={<>Voice Designer>}
- subText={
- <>
- Clone your own voice or a voice you have permission and rights to!
- >
- }
+ subText={<>Upload and instantly clone your voice!>}
showButtons={false}
/>
-
-
+ {/* Stepper */}
+
+
+ {displayStep(currentStep)}
+
+ {/* Navigation Controls */}
+
-
+
);
}
diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/Stepper.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/Stepper.tsx
index f829cb4f41..07029c37c6 100644
--- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/Stepper.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/Stepper.tsx
@@ -1,7 +1,43 @@
import React from "react";
-function Stepper(this: any) {
- return
;
+interface StepperProps {
+ steps: string[];
+ currentStep: number;
}
+const Stepper: React.FC = ({ steps, currentStep }) => {
+ return (
+
+ {steps.map((step, index) => (
+
+
+ {index + 1}
+
+
+ {step}
+
+ {index !== steps.length - 1 && (
+
+ )}
+
+ ))}
+
+ );
+};
+
export { Stepper };
diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/StepperControls.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/StepperControls.tsx
index 42243cde17..19e2b53caa 100644
--- a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/StepperControls.tsx
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/StepperControls.tsx
@@ -1,12 +1,24 @@
import React from "react";
-function StepperControls(this: any) {
- return (
-
- Back
- Next
-
- );
+interface StepperControlsProps {
+ onBack: () => void;
+ onNext: () => void;
}
+const StepperControls: React.FC = ({
+ onBack,
+ onNext,
+}) => {
+ return (
+
+
+ Back
+
+
+ Next
+
+
+ );
+};
+
export { StepperControls };
diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/Complete.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/Complete.tsx
new file mode 100644
index 0000000000..f2f945d89d
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/Complete.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+function Complete() {
+ return <>Complete>;
+}
+
+export { Complete };
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
new file mode 100644
index 0000000000..c35345dcf5
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/UploadSamples.tsx
@@ -0,0 +1,11 @@
+import React from "react";
+
+function UploadSamples() {
+ return (
+
+
+
+ );
+}
+
+export { UploadSamples };
diff --git a/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/VoiceDetails.tsx b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/VoiceDetails.tsx
new file mode 100644
index 0000000000..8213074975
--- /dev/null
+++ b/packages/fakeyou.com/src/v2/view/pages/voice_designer/components/steps/VoiceDetails.tsx
@@ -0,0 +1,7 @@
+import React from "react";
+
+function VoiceDetails() {
+ return <>Voice Details>;
+}
+
+export { VoiceDetails };