'use client' import { useState } from 'react' import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from '@/components/ui/alert-dialog' export interface DirtyCloseGuard { confirmOpen: boolean setConfirmOpen: (v: boolean) => void attemptClose: () => void confirmDiscard: () => void } export function useDirtyCloseGuard( isDirty: boolean, onClose: () => void, ): DirtyCloseGuard { const [confirmOpen, setConfirmOpen] = useState(false) function attemptClose() { if (isDirty) setConfirmOpen(true) else onClose() } function confirmDiscard() { setConfirmOpen(false) onClose() } return { confirmOpen, setConfirmOpen, attemptClose, confirmDiscard } } export function DirtyCloseGuardDialog({ guard, }: { guard: DirtyCloseGuard }) { return ( Wijzigingen niet opgeslagen Wil je de wijzigingen weggooien? guard.setConfirmOpen(false)}> Terug Weggooien ) }