addons-page.ts 614 B

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