'use client' import { useState } from 'react' import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from '@/components/ui/dialog' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Textarea } from '@/components/ui/textarea' import { Switch } from '@/components/ui/switch' import { Loader2 } from 'lucide-react' import type { BASAccount } from '@/types' interface EditAccountDialogProps { open: boolean onOpenChange: (open: boolean) => void account: BASAccount onSaved: () => void } export function EditAccountDialog({ open, onOpenChange, account, onSaved }: EditAccountDialogProps) { const [accountName, setAccountName] = useState(account.account_name) const [description, setDescription] = useState(account.description || '') const [defaultVatCode, setDefaultVatCode] = useState(account.default_vat_code || '') const [sruCode, setSruCode] = useState(account.sru_code || '') const [isActive, setIsActive] = useState(account.is_active) const [isSaving, setIsSaving] = useState(false) async function handleSave() { setIsSaving(true) try { const response = await fetch(`/api/bookkeeping/accounts/${account.account_number}`, { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ account_name: accountName, description: description || null, default_vat_code: defaultVatCode || null, sru_code: sruCode || null, is_active: isActive, }), }) if (!response.ok) { const data = await response.json() throw new Error(data.error || 'Kunde inte uppdatera kontot') } onSaved() onOpenChange(false) } catch { // Error handled silently — toast is in parent } finally { setIsSaving(false) } } return ( Redigera konto {account.account_number}
setAccountName(e.target.value)} />