"use client"; import Link from "next/link"; import { LogOut, MessageCircle, PackageCheck } from "lucide-react"; import { type FormEvent, useState } from "react"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { useCustomerStore } from "@/store/customer-store"; type Mode = "login" | "register"; export function AccountDialog({ open, onOpenChange }: { open: boolean; onOpenChange: (open: boolean) => void }) { const { customer, hasHydrated, loading, error, login, register, logout } = useCustomerStore(); const [mode, setMode] = useState("login"); const [form, setForm] = useState({ email: "", password: "", firstName: "", lastName: "" }); async function submit(event: FormEvent) { event.preventDefault(); const ok = mode === "login" ? await login(form.email, form.password) : await register(form.email, form.password, form.firstName, form.lastName); if (ok) setForm({ email: "", password: "", firstName: "", lastName: "" }); } const isLoggedIn = hasHydrated && customer !== null; return (
{isLoggedIn ? ( <> Tu cuenta

Hola, {customer.firstName ?? customer.email}

{customer.email}

) : ( <> Atención personalizada

{mode === "login" ? "Inicia sesión" : "Crea tu cuenta"}

{mode === "register" && (
setForm({ ...form, firstName: event.target.value })} /> setForm({ ...form, lastName: event.target.value })} />
)} setForm({ ...form, email: event.target.value })} /> setForm({ ...form, password: event.target.value })} /> {error &&

{error}

}
)}
); }