Openstatus
www.openstatus.dev
1import { Filter, Zap } from "lucide-react";
2
3export const actions = [
4 {
5 id: "filter",
6 label: "Filter",
7 icon: Filter,
8 variant: "default" as const,
9 },
10 {
11 id: "trigger",
12 label: "Trigger",
13 icon: Zap,
14 variant: "default" as const,
15 },
16] as const;
17
18export type RegionMetricAction = (typeof actions)[number];
19
20export const getActions = (
21 props: Partial<Record<RegionMetricAction["id"], () => Promise<void> | void>>,
22): (RegionMetricAction & { onClick?: () => Promise<void> | void })[] => {
23 return actions.map((action) => ({
24 ...action,
25 onClick: props[action.id as keyof typeof props],
26 }));
27};