11"use client" ;
2-
32import { useState } from "react" ;
4- import Link from "next/link" ;
3+ import SignUpForm from "../components/SignUpForm" ;
4+ import Onboarding from "../components/Onboarding" ;
55
66export default function SignupPage ( ) {
77 const [ isSignedUp , setIsSignedUp ] = useState ( false ) ;
88
9- // --- Onboarding View (Matches Figma) ---
10- if ( isSignedUp ) {
11- return (
12- < div className = "flex min-h-screen items-center justify-center bg-white p-4" >
13- < div className = "w-full max-w-lg border border-black rounded-lg p-8 relative" >
14- { /* Back Arrow to return to Register */ }
15- < button
16- onClick = { ( ) => setIsSignedUp ( false ) }
17- className = "absolute top-8 left-8 text-xl"
18- >
19- ←
20- </ button >
21-
22- < div className = "text-center mb-8" >
23- < h1 className = "text-3xl font-medium" > Welcome to CS+SG</ h1 >
24- < p className = "text-sm" > Set up your basic profile</ p >
25- </ div >
26-
27- < div className = "flex gap-8 mb-6" >
28- { /* Avatar Section */ }
29- < div className = "relative" >
30- < div className = "w-32 h-32 rounded-full border border-black flex items-center justify-center overflow-hidden" >
31- < div className = "relative w-full h-full" >
32- < div className = "absolute inset-0 border-t border-black rotate-45 origin-center scale-150" > </ div >
33- < div className = "absolute inset-0 border-t border-black -rotate-45 origin-center scale-150" > </ div >
34- </ div >
35- </ div >
36- < button className = "absolute bottom-0 right-0 bg-white border border-black rounded-full p-1 w-8 h-8 flex items-center justify-center" >
37- ✎
38- </ button >
39- </ div >
40-
41- { /* Identity Fields */ }
42- < div className = "flex-1 space-y-4" >
43- < div >
44- < label className = "block text-sm mb-1" > First Name</ label >
45- < input type = "text" className = "w-full border border-black p-2 rounded-sm" />
46- </ div >
47- < div >
48- < label className = "block text-sm mb-1" > Last Name</ label >
49- < input type = "text" className = "w-full border border-black p-2 rounded-sm" />
50- </ div >
51- < div >
52- < label className = "block text-sm mb-1" > Pronouns</ label >
53- < select className = "w-full border border-black p-2 rounded-sm bg-white" >
54- < option value = "" > </ option >
55- < option value = "he-him" > He/Him</ option >
56- < option value = "she-her" > She/Her</ option >
57- < option value = "they-them" > They/Them</ option >
58- </ select >
59- </ div >
60- </ div >
61- </ div >
62-
63- { /* Links Section */ }
64- < div className = "space-y-2" >
65- < label className = "block text-sm" > Links</ label >
66- < div className = "flex gap-2" >
67- < input type = "text" className = "flex-1 border border-black p-2 rounded-sm" />
68- < button className = "border border-black px-4 py-2 hover:bg-gray-100 transition-colors" >
69- Add
70- </ button >
71- </ div >
72- < div className = "space-y-1" >
73- < div className = "flex items-center gap-2 border-b border-gray-400 py-2" >
74- < span className = "text-sm cursor-pointer hover:text-red-500" > ✕</ span >
75- </ div >
76- < div className = "flex items-center gap-2 border-b border-gray-400 py-2" >
77- < span className = "text-sm cursor-pointer hover:text-red-500" > ✕</ span >
78- </ div >
79- </ div >
80- </ div >
81-
82- < button className = "w-full mt-8 text-center font-medium hover:underline" >
83- Done
84- </ button >
85- </ div >
86- </ div >
87- ) ;
88- }
89-
90- // --- Register View ---
919 return (
9210 < div className = "flex min-h-screen items-center justify-center bg-white p-4" >
93- < div className = "w-full max-w-md border border-black rounded-lg p-8 space-y-6" >
94- < h1 className = "text-4xl text-center mb-8" > Register</ h1 >
95-
96- < div className = "space-y-4" >
97- < div >
98- < label className = "block text-sm font-medium mb-1" > Email</ label >
99- < input type = "email" className = "w-full p-2 border border-black rounded-sm" />
100- </ div >
101-
102- < div >
103- < label className = "block text-sm font-medium mb-1" > Password</ label >
104- < input type = "password" className = "w-full p-2 border border-black rounded-sm" />
105- </ div >
106- </ div >
107-
108- < button
109- onClick = { ( ) => setIsSignedUp ( true ) }
110- className = "w-full py-3 bg-gray-200 hover:bg-gray-300 rounded transition-colors text-lg"
111- >
112- Register
113- </ button >
114-
115- < p className = "text-center text-sm mt-4" >
116- Have an account? < Link href = "/login" className = "hover:underline font-semibold" > Login</ Link >
117- </ p >
118- </ div >
11+ { isSignedUp ? (
12+ < Onboarding onBack = { ( ) => setIsSignedUp ( false ) } />
13+ ) : (
14+ < SignUpForm onSignupSuccess = { ( ) => setIsSignedUp ( true ) } />
15+ ) }
11916 </ div >
12017 ) ;
121- }
18+ }
0 commit comments