"use client"
import { useState } from "react"
import { useRouter } from "next/navigation"
import {
deleteInvitationMemberAction,
updateInvitationMemberAction,
} from "@/app/admin/guests/[id]/actions"
import {
AlertDialog,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from "@/components/ui/alert-dialog"
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
interface MemberManagementProps {
invitationId: string
memberId: string
memberName: string
canDelete: boolean
}
function SubmitButton({ children, variant = "default", pending }: { children: React.ReactNode; variant?: "default" | "destructive"; pending: boolean }) {
return (
)
}
export function MemberManagement({
invitationId,
memberId,
memberName,
canDelete,
}: MemberManagementProps) {
const router = useRouter()
const [editOpen, setEditOpen] = useState(false)
const [deleteOpen, setDeleteOpen] = useState(false)
const [name, setName] = useState(memberName)
const [editError, setEditError] = useState(null)
const [deleteError, setDeleteError] = useState(null)
const [pendingAction, setPendingAction] = useState<"edit" | "delete" | null>(null)
async function submitEdit(event: React.FormEvent) {
event.preventDefault()
setPendingAction("edit")
setEditError(null)
const result = await updateInvitationMemberAction({ error: null, success: false }, new FormData(event.currentTarget))
setPendingAction(null)
if (result.error) {
setEditError(result.error)
return
}
setEditOpen(false)
router.refresh()
}
async function submitDelete(event: React.FormEvent) {
event.preventDefault()
setPendingAction("delete")
setDeleteError(null)
const result = await deleteInvitationMemberAction({ error: null, success: false }, new FormData(event.currentTarget))
setPendingAction(null)
if (result.error) {
setDeleteError(result.error)
return
}
setDeleteOpen(false)
router.refresh()
}
return (
{canDelete ? (
) : null}
)
}