diff --git a/app/console/account/page.tsx b/app/console/account/page.tsx index 1e18bc0..9d5d478 100644 --- a/app/console/account/page.tsx +++ b/app/console/account/page.tsx @@ -1,12 +1,202 @@ -import { auth } from "@/lib/auth"; -import { getUserProfile, getUserProfileByEmail } from "@/lib/user-auth"; -import { AccountPageClient } from "@/components/console/account-page-client"; +"use client"; +import { useState } from "react"; +import { User, Lock, ShieldAlert, Camera, Check, Eye, EyeOff } from "lucide-react"; -export default async function AccountPage() { - const session = await auth(); - const userById = session?.user?.id ? await getUserProfile(session.user.id) : null; - const user = userById ?? (session?.user?.email ? await getUserProfileByEmail(session.user.email) : null); - const hasGithubConnection = Boolean(session?.accessToken); +function Section({ title, icon, children }: { title: string; icon: React.ReactNode; children: React.ReactNode }) { + return ( +
+
+ {icon} + {title} +
+ {children} +
+ ); +} + +function Field({ label, hint, children }: { label: string; hint?: string; children: React.ReactNode }) { + return ( +
+ + {children} + {hint &&

{hint}

} +
+ ); +} + +export default function AccountPage() { + const [showOld, setShowOld] = useState(false); + const [showNew, setShowNew] = useState(false); + const [deleteInput, setDeleteInput] = useState(""); + const [profileSaved, setProfileSaved] = useState(false); + const [pwSaved, setPwSaved] = useState(false); + + const saveProfile = () => { + setProfileSaved(true); + setTimeout(() => setProfileSaved(false), 2000); + }; + const savePw = () => { + setPwSaved(true); + setTimeout(() => setPwSaved(false), 2000); + }; + + return ( +
+
+

Account

+

Manage your profile and security settings

+
+ + {/* Profile */} +
}> +
+ {/* Avatar */} +
+
+
+ D +
+
+ +
+
+
+

Profile Picture

+

Click to upload a new avatar (PNG, JPG)

+
+
+ + + + + + + + + + + +
+
+ + {/* Security */} +
}> +
+ +
+ + +
+
+ +
+ + +
+
+ +
+
+ + {/* Sessions */} +
}> +
+ {[ + { device: "Chrome on macOS", loc: "Bengaluru, IN", current: true }, + { device: "VS Code Extension", loc: "Bengaluru, IN", current: false }, + ].map((s) => ( +
+
+

{s.device}

+

{s.loc}

+
+ {s.current ? ( + + Current + + ) : ( + + )} +
+ ))} +
+
- return ; + {/* Danger Zone */} +
+
+ + Danger Zone +
+

+ Permanently delete your account and all associated data. This action cannot be undone. +

+ + setDeleteInput(e.target.value)} + placeholder='delete my account' + className="w-full bg-gray-50 dark:bg-zinc-800 border border-gray-200 dark:border-zinc-700 rounded-lg px-3 py-2 text-sm text-gray-900 dark:text-white focus:outline-none focus:border-red-400 transition-colors" + /> + + +
+
+ ); }