({
value,
onChange,
}: Pick<UseFilterMenuOptions, "value" | "onChange">)
| 98 | /** Status Filter Menu */ |
| 99 | |
| 100 | export const useStatusFilterMenu = ({ |
| 101 | value, |
| 102 | onChange, |
| 103 | }: Pick<UseFilterMenuOptions, "value" | "onChange">) => { |
| 104 | const statusesToFilter: WorkspaceStatus[] = [ |
| 105 | "running", |
| 106 | "stopped", |
| 107 | "failed", |
| 108 | "pending", |
| 109 | ]; |
| 110 | const statusOptions = statusesToFilter.map((status) => { |
| 111 | const display = getDisplayWorkspaceStatus(status); |
| 112 | return { |
| 113 | label: display.text, |
| 114 | value: status, |
| 115 | startIcon: ( |
| 116 | <StatusIndicatorDot variant={getStatusIndicatorVariant(status)} /> |
| 117 | ), |
| 118 | }; |
| 119 | }); |
| 120 | return useFilterMenu({ |
| 121 | onChange, |
| 122 | value, |
| 123 | id: "status", |
| 124 | getSelectedOption: async () => |
| 125 | statusOptions.find((option) => option.value === value) ?? null, |
| 126 | getOptions: async () => statusOptions, |
| 127 | }); |
| 128 | }; |
| 129 | |
| 130 | export type StatusFilterMenu = ReturnType<typeof useStatusFilterMenu>; |
| 131 |
no test coverage detected