Openstatus www.openstatus.dev
at main 35 lines 783 B view raw
1import { Pencil, Plus, Trash2 } from "lucide-react"; 2 3export const actions = [ 4 { 5 id: "edit", 6 label: "Edit", 7 icon: Pencil, 8 variant: "default" as const, 9 }, 10 { 11 id: "create-update", 12 label: "Create Update", 13 icon: Plus, 14 variant: "default" as const, 15 }, 16 { 17 id: "delete", 18 label: "Delete", 19 icon: Trash2, 20 variant: "destructive" as const, 21 }, 22] as const; 23 24export type StatusReportUpdateAction = (typeof actions)[number]; 25 26export const getActions = ( 27 props: Partial< 28 Record<StatusReportUpdateAction["id"], () => Promise<void> | void> 29 >, 30): (StatusReportUpdateAction & { onClick?: () => Promise<void> | void })[] => { 31 return actions.map((action) => ({ 32 ...action, 33 onClick: props[action.id as keyof typeof props], 34 })); 35};