"use client";
import {useState} from 'react';
import {UserRound,LogIn,LogOut,Database} from 'lucide-react';
import {Dialog,DialogContent,DialogHeader,DialogTitle,DialogDescription} from '@/components/ui/dialog';
import {toast} from 'sonner';
export type Account={userId:string;displayName:string;email:string}|null;
export function AccountMenu({account,signIn,signOut,dirty,save,storeDraft,dbState}:{account:Account;signIn:string;signOut:string;dirty:boolean;save:()=>Promise<boolean>;storeDraft:()=>boolean;dbState:string}){
 const[open,setOpen]=useState(false),[busy,setBusy]=useState(false);
 return <><button className="account-button" aria-label={account?'Fiók és adatbázis':'Bejelentkezés'} title={account?.displayName||'Bejelentkezés'} onClick={()=>setOpen(true)}>{account?<UserRound/>:<LogIn/>}<span>{account?'Fiókom':'Belépés'}</span></button><Dialog open={open} onOpenChange={setOpen}><DialogContent><DialogHeader><DialogTitle>{account?'Saját fiók':'Bejelentkezés'}</DialogTitle><DialogDescription>{account?'A mentett terv ehhez a fiókhoz tartozik.':'Jelentkezz be ChatGPT-fiókkal, hogy a tervedet az adatbázisba menthesd és később folytathasd.'}</DialogDescription></DialogHeader>{account?<><div className="account-identity"><UserRound/><div><strong>{account.displayName}</strong><span>{account.email}</span></div></div><div className="database-state"><Database/><div><b>Tervadatbázis</b><span>{dbState}</span></div></div><p>Az alaprajzok, telki hálózatok és elosztók együtt mentődnek. Más fiókok a saját tervüket látják.</p>{dirty?<button className="primary" disabled={busy} onClick={async()=>{setBusy(true);if(await save())window.location.assign(signOut);setBusy(false)}}><LogOut/>{busy?'Mentés…':'Mentés és kijelentkezés'}</button>:<a className="auth-link" href={signOut} target="_top"><LogOut/>Kijelentkezés</a>}<a className="auth-link secondary-auth" href={signIn} target="_top" onClick={e=>{if(!storeDraft())e.preventDefault()}}>Bejelentkezés újra</a></>:<><div className="database-state"><Database/><div><b>Saját mentett terv</b><span>Bejelentkezés után másik eszközön is megnyitható.</span></div></div><a className="auth-link primary" href={signIn} target="_top" onClick={e=>{if(!storeDraft()){e.preventDefault();toast.error('Előbb exportáld a tervedet JSON-fájlba, hogy a szerkesztés megmaradjon.')}}}><LogIn/>Bejelentkezés ChatGPT-vel</a><p>A mintatervet bejelentkezés nélkül is szerkesztheted és PDF-be exportálhatod. Belépéskor a nyitott szerkesztés megmarad.</p></>}</DialogContent></Dialog></>
}
