Openstatus www.openstatus.dev
at main 39 lines 863 B view raw
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};