Openstatus
www.openstatus.dev
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};