import { Project } from '@/types/project';
import { ColumnDef } from '@tanstack/react-table';
import { User } from '@/types/user';
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,
DialogFooter,
DialogHeader,
DialogTitle,
DialogTrigger,
} from '@/components/ui/dialog';
import { FormEvent, ReactNode, useState } from 'react';
import { DataTable } from '@/components/data-table';
import { Button } from '@/components/ui/button';
import { Form, FormField, FormFields } from '@/components/ui/form';
import { Label } from '@/components/ui/label';
import InputError from '@/components/ui/input-error';
import UserSelect from '@/components/user-select';
import { useForm } from '@inertiajs/react';
import { LoaderCircleIcon, TrashIcon } from 'lucide-react';
function AddUser({ project }: { project: Project }) {
const [open, setOpen] = useState(false);
const form = useForm({
user: 0,
});
const submit = (e: FormEvent) => {
e.preventDefault();
form.post(route('projects.users', project.id), {
onSuccess: () => {
setOpen(false);
},
});
};
return (
);
}
function RemoveUser({ project, user }: { project: Project; user: User }) {
const [open, setOpen] = useState(false);
const form = useForm({
user: user.id,
});
const submit = (e: FormEvent) => {
e.preventDefault();
form.delete(route('projects.users', project.id), {
onSuccess: () => {
setOpen(false);
},
});
};
return (
);
}
const getColumns = (project: Project): ColumnDef[] => [
{
accessorKey: 'id',
header: 'ID',
enableColumnFilter: true,
enableSorting: true,
enableHiding: true,
},
{
accessorKey: 'name',
header: 'Name',
enableColumnFilter: true,
enableSorting: true,
},
{
accessorKey: 'email',
header: 'Email',
enableColumnFilter: true,
enableSorting: true,
},
{
id: 'actions',
enableColumnFilter: false,
enableSorting: false,
cell: ({ row }) => {
return (
);
},
},
];
export default function UsersAction({ project, children }: { project: Project; children: ReactNode }) {
return (
);
}