addons-page.ts25 lines · main
1import { useUrlState } from '@/hooks/ui/useUrlState'
2
3export const ADDONS_PANEL_KEYS_ARRAY = ['pitr', 'customDomain', 'ipv4'] as const
4
5export type ADDONS_PANEL_KEYS = undefined | (typeof ADDONS_PANEL_KEYS_ARRAY)[number]
6
7export function useAddonsPagePanel() {
8 const [{ panel: _panel }, setParams] = useUrlState({ replace: true })
9
10 const panel = ADDONS_PANEL_KEYS_ARRAY.find((key) => key === _panel)
11
12 const setPanel = (panel: ADDONS_PANEL_KEYS) => {
13 setParams({ panel })
14 }
15
16 const closePanel = () => {
17 setParams({ panel: undefined })
18 }
19
20 return {
21 panel,
22 setPanel,
23 closePanel,
24 }
25}