This commit is contained in:
2026-03-22 13:01:46 -03:00
parent af0910f428
commit 6694bce736
52 changed files with 4949 additions and 102 deletions
+68
View File
@@ -0,0 +1,68 @@
'use client'
import { useState } from 'react'
import { useRouter } from 'next/navigation'
import { Trash2 } from 'lucide-react'
import { Button } from '@/components/ui/button'
import {
Dialog,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
} from '@/components/ui/dialog'
interface DeleteNoteButtonProps {
noteId: string
noteTitle: string
}
export function DeleteNoteButton({ noteId, noteTitle }: DeleteNoteButtonProps) {
const [open, setOpen] = useState(false)
const [deleting, setDeleting] = useState(false)
const router = useRouter()
const handleDelete = async () => {
setDeleting(true)
try {
const response = await fetch(`/api/notes/${noteId}`, {
method: 'DELETE',
})
if (response.ok) {
setOpen(false)
router.push('/notes')
router.refresh()
}
} catch {
setDeleting(false)
}
}
return (
<>
<Button variant="destructive" size="sm" onClick={() => setOpen(true)}>
<Trash2 className="h-4 w-4 mr-1" /> Eliminar
</Button>
<Dialog open={open} onOpenChange={setOpen}>
<DialogContent>
<DialogHeader>
<DialogTitle>Eliminar nota</DialogTitle>
<DialogDescription>
¿Estás seguro de que quieres eliminar &quot;{noteTitle}&quot;? Esta acción no se puede deshacer.
</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button variant="outline" onClick={() => setOpen(false)}>
Cancelar
</Button>
<Button variant="destructive" onClick={handleDelete} disabled={deleting}>
{deleting ? 'Eliminando...' : 'Eliminar'}
</Button>
</DialogFooter>
</DialogContent>
</Dialog>
</>
)
}