"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"; function GoogleIcon() { return ( ); } 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} onOpenChange(false)}>Mis pedidos y reseñas Cerrar sesión > ) : ( <> 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}} {loading ? "Un momento…" : mode === "login" ? "Iniciar sesión" : "Crear cuenta"} o Continuar con Google setMode(mode === "login" ? "register" : "login")} > {mode === "login" ? "¿No tienes cuenta? Regístrate" : "¿Ya tienes cuenta? Inicia sesión"} Hablar con ARI > )} ); }
{customer.email}
{error}