| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { DotsHorizontalIcon } from '@radix-ui/react-icons'
- import { type Row } from '@tanstack/react-table'
- import { Trash2, UserPen } from 'lucide-react'
- import { Button } from '@/components/ui/button'
- import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuSeparator,
- DropdownMenuShortcut,
- DropdownMenuTrigger,
- } from '@/components/ui/dropdown-menu'
- import { type User } from '../data/schema'
- import { useUsers } from './users-provider'
- type DataTableRowActionsProps = {
- row: Row<User>
- }
- export function DataTableRowActions({ row }: DataTableRowActionsProps) {
- const { setOpen, setCurrentRow } = useUsers()
- return (
- <>
- <DropdownMenu modal={false}>
- <DropdownMenuTrigger asChild>
- <Button
- variant='ghost'
- className='flex h-8 w-8 p-0 data-[state=open]:bg-muted'
- >
- <DotsHorizontalIcon className='h-4 w-4' />
- <span className='sr-only'>Open menu</span>
- </Button>
- </DropdownMenuTrigger>
- <DropdownMenuContent align='end' className='w-[160px]'>
- <DropdownMenuItem
- onClick={() => {
- setCurrentRow(row.original)
- setOpen('edit')
- }}
- >
- Edit
- <DropdownMenuShortcut>
- <UserPen size={16} />
- </DropdownMenuShortcut>
- </DropdownMenuItem>
- <DropdownMenuSeparator />
- <DropdownMenuItem
- onClick={() => {
- setCurrentRow(row.original)
- setOpen('delete')
- }}
- className='text-red-500!'
- >
- Delete
- <DropdownMenuShortcut>
- <Trash2 size={16} />
- </DropdownMenuShortcut>
- </DropdownMenuItem>
- </DropdownMenuContent>
- </DropdownMenu>
- </>
- )
- }
|