"use client"; import { Row } from "@tanstack/react-table"; import { Eye, Pencil, Trash2 } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { ActionDropdown, ActionDropdownDangerZone, ActionDropdownItem, } from "@/components/shadcn/dropdown"; import { Modal } from "@/components/shadcn/modal"; import { DeleteForm, EditForm } from "../forms"; interface DataTableRowActionsProps { row: Row; roles?: { id: string; name: string }[]; } export function DataTableRowActions({ row, roles, }: DataTableRowActionsProps) { const router = useRouter(); const [isEditOpen, setIsEditOpen] = useState(false); const [isDeleteOpen, setIsDeleteOpen] = useState(false); const invitationId = (row.original as { id: string }).id; const invitationEmail = (row.original as any).attributes?.email; const invitationRole = (row.original as any).relationships?.role?.attributes ?.name; const invitationAccepted = (row.original as any).attributes?.state; return ( <>
} label="Check Details" onSelect={() => router.push(`/invitations/check-details?id=${invitationId}`) } /> } label="Edit Invitation" onSelect={() => setIsEditOpen(true)} disabled={invitationAccepted === "accepted"} /> } label="Revoke Invitation" destructive onSelect={() => setIsDeleteOpen(true)} disabled={invitationAccepted === "accepted"} />
); }