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 ( Add user Here you can add new user to {project.name}
form.setData('user', user.id)} />
); } 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 ( Remove user Remove user from {project.name}. ); } 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 ( {children} Users Users assigned to this project ); }