diff --git a/app/(account)/settings/page.tsx b/app/(account)/settings/page.tsx index 7d02fa6..d144354 100644 --- a/app/(account)/settings/page.tsx +++ b/app/(account)/settings/page.tsx @@ -2,6 +2,7 @@ import { Camera } from "lucide-react" import Link from "next/link" +import { useEffect, useRef, useState } from "react" import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar" import { Button } from "@/components/ui/button" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" @@ -11,11 +12,22 @@ import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" import { Separator } from "@/components/ui/separator" import { Switch } from "@/components/ui/switch" import { Textarea } from "@/components/ui/textarea" +import { notifySuccess } from "@/lib/toast" import type { UserRole } from "@/lib/types" import { useAuthStore } from "@/store/auth" export default function SettingsPage() { - const { currentRole, verifiedRoles, switchRole, user } = useAuthStore() + const { currentRole, verifiedRoles, switchRole, user, updateProfile } = useAuthStore() + const [nickname, setNickname] = useState(user?.nickname ?? "") + const [bio, setBio] = useState(user?.bio ?? "") + const [avatar, setAvatar] = useState(user?.avatar ?? "") + const fileRef = useRef(null) + + useEffect(() => { + setNickname(user?.nickname ?? "") + setBio(user?.bio ?? "") + setAvatar(user?.avatar ?? "") + }, [user]) const isRoleVerified = (role: UserRole) => verifiedRoles.includes(role) @@ -30,12 +42,25 @@ export default function SettingsPage() {
- + {user?.nickname?.[0] ?? "?"} + { + const file = event.target.files?.[0] + if (!file) return + setAvatar(URL.createObjectURL(file)) + event.target.value = "" + }} + /> @@ -51,18 +76,38 @@ export default function SettingsPage() {
- + setNickname(event.target.value)} + />
-