"use client"; import React, { useState } from 'react'; import { Alert, AlertDescription, AlertTitle } from '@/components/ui/alert'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle } from '@/components/ui/alert-dialog'; import { MoreVertical, Plus } from 'lucide-react'; const Adresseliste = () => { // Sample initial data const [personer, setPersoner] = useState([ { id: 1, navn: 'Anders Andersen', email: 'anders@example.com', telefon: '+45 12 34 56 78' }, { id: 2, navn: 'Birgitte Bertelsen', email: 'birgitte@example.com', telefon: '+45 23 45 67 89' }, { id: 3, navn: 'Christian Christensen', email: 'christian@example.com', telefon: '+45 34 56 78 90' } ]); // State for handling the edit/add modal const [modalOpen, setModalOpen] = useState(false); const [isEditing, setIsEditing] = useState(false); const [currentPerson, setCurrentPerson] = useState({ id: null, navn: '', email: '', telefon: '' }); // State for delete confirmation dialog const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [personToDelete, setPersonToDelete] = useState(null); // Handle opening the add modal const handleAdd = () => { setIsEditing(false); setCurrentPerson({ id: null, navn: '', email: '', telefon: '' }); setModalOpen(true); }; // Handle opening the edit modal const handleEdit = (person) => { setIsEditing(true); setCurrentPerson({ ...person }); setModalOpen(true); }; // Handle input changes in the modal const handleInputChange = (e) => { const { name, value } = e.target; setCurrentPerson({ ...currentPerson, [name]: value }); }; // Handle saving a new or edited person const handleSave = () => { if (isEditing) { // Update existing person setPersoner(personer.map(person => person.id === currentPerson.id ? currentPerson : person )); } else { // Add new person const newId = personer.length > 0 ? Math.max(...personer.map(p => p.id)) + 1 : 1; setPersoner([...personer, { ...currentPerson, id: newId }]); } setModalOpen(false); }; // Open delete confirmation dialog const openDeleteDialog = (person) => { setPersonToDelete(person); setDeleteDialogOpen(true); }; // Handle deleting a person const handleDelete = () => { if (personToDelete) { setPersoner(personer.filter(person => person.id !== personToDelete.id)); setDeleteDialogOpen(false); setPersonToDelete(null); } }; return (