Openstatus
www.openstatus.dev
1import { Cog, Copy, Trash2 } from "lucide-react";
2
3export const actions = [
4 {
5 id: "edit",
6 label: "Settings",
7 icon: Cog,
8 variant: "default" as const,
9 },
10 {
11 id: "copy-id",
12 label: "Copy ID",
13 icon: Copy,
14 variant: "default" as const,
15 },
16 // {
17 // id: "create-badge",
18 // label: "Create Badge",
19 // icon: Tag,
20 // variant: "default" as const,
21 // },
22 {
23 id: "delete",
24 label: "Delete",
25 icon: Trash2,
26 variant: "destructive" as const,
27 },
28] as const;
29
30export type StatusPageAction = (typeof actions)[number];
31
32export const getActions = (
33 props: Partial<Record<StatusPageAction["id"], () => Promise<void> | void>>,
34): (StatusPageAction & { onClick?: () => Promise<void> | void })[] => {
35 return actions.map((action) => ({
36 ...action,
37 onClick: props[action.id as keyof typeof props],
38 }));
39};