diff --git a/src/App.tsx b/src/App.tsx index 33d15f9..5286619 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -2,11 +2,13 @@ import { Routes, Route } from 'react-router-dom'; import Layout from './components/Layout'; import HomePage from './pages/HomePage'; +import AuthPage from "@/pages/AuthPage"; export default function App() { return ( }> } /> + } /> ); diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index d1a765f..d807c8f 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -34,7 +34,9 @@ export default function Layout() { { "name": "Metrics", "href": "#metrics" - } + }, + { name: "Auth", href: "/auth" }, + ]; return ( diff --git a/src/pages/AuthPage.tsx b/src/pages/AuthPage.tsx new file mode 100644 index 0000000..0995bf7 --- /dev/null +++ b/src/pages/AuthPage.tsx @@ -0,0 +1,119 @@ +import React, { useState } from "react"; +import RadialGradientBackground from "@/components/ui/RadialGradientBackground"; +import Card from "@/components/ui/Card"; +import Input from "@/components/ui/Input"; +import Button from "@/components/ui/Button"; +import Separator from "@/components/ui/Separator"; +import SelectorButton from "@/components/ui/SelectorButton"; +import TextLink from "@/components/ui/TextLink"; + +export default function AuthPage() { + const [step, setStep] = useState<"initial" | "verify">("initial"); + const [role, setRole] = useState("buyer"); + const [authMode, setAuthMode] = useState<"login" | "signup">("signup"); + + return ( +
+ + +
+ + {step === "initial" ? ( + <> +
+

+ {authMode === "signup" ? "Create an account" : "Welcome back"} +

+

+ {authMode === "signup" + ? "Join Future Frame to start building or buying." + : "Enter your details to access your account."} +

+
+ + {authMode === "signup" && ( +
+ + +
+ )} + +
+ +
+ +
+ + Or continue with + +
+ +
+
+ +
+ {authMode === "signup" ? "Already have an account?" : "Don't have an account? "} setAuthMode(authMode === "signup" ? "login" : "signup")} + className="text-foreground font-medium cursor-pointer" + /> +
+ + ) : ( + <> +
+

Check your device

+

+ We sent a 6-digit verification code to your contact method. +

+
+ +
+ +
+ +
+

Code expires in 04:59

+ setStep("initial")} + className="text-sm text-muted-foreground hover:text-foreground cursor-pointer" + /> +
+ + )} +
+
+
+ ); +} \ No newline at end of file diff --git a/src/routes.ts b/src/routes.ts index 362ecb5..f0699f9 100644 --- a/src/routes.ts +++ b/src/routes.ts @@ -6,4 +6,5 @@ export interface Route { export const routes: Route[] = [ { path: '/', label: 'Home', pageFile: 'HomePage' }, + { path: '/auth', label: 'Auth', pageFile: 'AuthPage' }, ];