import { useEffect, useState } from "react"; import { useNavigate } from "react-router-dom"; import api from "../lib/api"; import { useProfile } from "../lib/profile"; import { useAuth } from "../lib/auth"; import { Plus, Pencil, Check, X, Trash2 } from "lucide-react"; import { toast } from "sonner"; const COLORS = ["#D9381E", "#EAB308", "#22C55E", "#3B82F6", "#A855F7", "#EC4899"]; export default function ProfileSelect() { const { user, logout } = useAuth(); const { profiles, refresh, switchTo } = useProfile(); const nav = useNavigate(); const [editing, setEditing] = useState(false); const [creating, setCreating] = useState(false); const [draft, setDraft] = useState({ name: "", avatar_color: COLORS[0], is_kids: false, max_rating: "NR" }); useEffect(() => { refresh(); }, [refresh]); const choose = (p) => { switchTo(p); nav("/browse", { replace: true }); }; const submitNew = async (e) => { e.preventDefault(); if (!draft.name.trim()) return; try { await api.post("/profiles", draft); toast.success("Profile created"); setCreating(false); setDraft({ name: "", avatar_color: COLORS[0], is_kids: false, max_rating: "NR" }); refresh(); } catch (err) { toast.error(err.response?.data?.detail || "Could not create"); } }; const remove = async (id) => { if (!window.confirm("Delete this profile? Watchlist & history will be removed.")) return; try { await api.delete(`/profiles/${id}`); refresh(); } catch (err) { toast.error(err.response?.data?.detail || "Could not delete"); } }; return (
Welcome back, {user?.name}

Who's watching?

{profiles.map((p) => (
{p.name}
{p.is_kids && Kids} {p.max_rating !== "NR" && ยท Up to {p.max_rating}}
{editing && ( )}
))} {profiles.length < 5 && ( )}
{creating && (
setCreating(false)} />

New profile

Color
{COLORS.map((c) => (
)}
); }