"use client";
import { useState, useEffect } from "react";
import { useRouter } from "next/navigation";
import { Mail, Calendar, User, Shield, ArrowLeft, Lock, Smartphone } from "lucide-react";
import { toast } from "sonner";
import { Avatar, AvatarImage, AvatarFallback } from "@/components/ui/avatar";
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import {
Dialog,
DialogContent,
DialogDescription,
DialogHeader,
DialogTitle,
} from "@/components/ui/dialog";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Separator } from "@/components/ui/separator";
import { useSession } from "@/lib/auth-client";
export default function ProfilePage() {
const { data: session, isPending } = useSession();
const router = useRouter();
const [editProfileOpen, setEditProfileOpen] = useState(false);
const [securityOpen, setSecurityOpen] = useState(false);
const [emailPrefsOpen, setEmailPrefsOpen] = useState(false);
useEffect(() => {
if (!isPending && !session) {
router.push("/");
}
}, [isPending, session, router]);
if (isPending || !session) {
return (
Loading...
);
}
const user = session.user;
const createdDate = user.createdAt
? new Date(user.createdAt).toLocaleDateString("en-US", {
year: "numeric",
month: "long",
day: "numeric",
})
: null;
const handleEditProfileSubmit = (e: React.FormEvent) => {
e.preventDefault();
// In a real app, this would call an API to update the user profile
toast.info("Profile updates require backend implementation");
setEditProfileOpen(false);
};
return (