Files
blog-admin/src/pages/system/api/components/row-actions.tsx
2026-07-22 17:50:30 +08:00

52 lines
1.3 KiB
TypeScript

import { type Row } from '@tanstack/react-table'
import { MoreHorizontal } from 'lucide-react'
import { Button } from '@/components/ui/button.tsx'
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from '@/components/ui/dropdown-menu.tsx'
import { type SysApi } from '@/schemas'
import { useCrud } from './crud-provider'
type Props = {
row: Row<SysApi>
}
export function RowActions({ row }: Props) {
const { setAction, setCurrentRow } = useCrud()
const { original } = row
const onEdit = () => {
setAction('edit')
setCurrentRow(original)
}
const onDelete = () => {
setAction('delete')
setCurrentRow(original)
}
return (
<DropdownMenu modal={false}>
<DropdownMenuTrigger asChild>
<Button variant='ghost' className='h-8 w-8 p-0'>
<MoreHorizontal className='h-4 w-4' />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent align='end'>
<DropdownMenuLabel></DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuItem onClick={onEdit}></DropdownMenuItem>
<DropdownMenuItem onClick={onDelete}></DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}