diff --git a/client_v2/src/common/controls/Select/CustomOptionIcon.tsx b/client_v2/src/common/controls/Select/CustomOptionIcon.tsx index edc3de0e..bc3cdc6b 100644 --- a/client_v2/src/common/controls/Select/CustomOptionIcon.tsx +++ b/client_v2/src/common/controls/Select/CustomOptionIcon.tsx @@ -12,7 +12,7 @@ export const CustomOptionIcon = ({ isSelected, isMulti }: Props) => { if (isMulti) { return ( ); diff --git a/client_v2/src/common/ui/Breadcrumbs/Breadcrumbs.tsx b/client_v2/src/common/ui/Breadcrumbs/Breadcrumbs.tsx index fcfd1683..dcfc2ead 100644 --- a/client_v2/src/common/ui/Breadcrumbs/Breadcrumbs.tsx +++ b/client_v2/src/common/ui/Breadcrumbs/Breadcrumbs.tsx @@ -1,14 +1,14 @@ import React from 'react'; import cn from 'clsx'; import { Icon, Link } from 'panel/common/ui'; -import { RoutePath } from 'panel/components/Routes/Paths'; +import { RoutePathKey } from 'panel/components/Routes/Paths'; import theme from 'panel/lib/theme'; import s from './styles.module.pcss'; type Props = { parentLinks: { - path: RoutePath; + path: RoutePathKey; title: string; props?: Partial>; }[]; diff --git a/client_v2/src/common/ui/Link/Link.tsx b/client_v2/src/common/ui/Link/Link.tsx index 26880856..94e9898d 100644 --- a/client_v2/src/common/ui/Link/Link.tsx +++ b/client_v2/src/common/ui/Link/Link.tsx @@ -1,11 +1,11 @@ import React, { MouseEvent, MouseEventHandler, ReactNode } from 'react'; import { Link as L, LinkProps as LProps } from 'react-router-dom'; import cn from 'clsx'; -import { LinkParams, linkPathBuilder, RoutePath } from 'panel/components/Routes/Paths'; +import { LinkParams, linkPathBuilder, RoutePathKey } from 'panel/components/Routes/Paths'; import theme from 'panel/lib/theme'; type Props = { - to: RoutePath; + to: RoutePathKey; props?: LinkParams; className?: string; type?: LProps['type']; diff --git a/client_v2/src/common/ui/Menu/AccordionSection.tsx b/client_v2/src/common/ui/Menu/AccordionSection.tsx index 5344bd59..ec936c81 100644 --- a/client_v2/src/common/ui/Menu/AccordionSection.tsx +++ b/client_v2/src/common/ui/Menu/AccordionSection.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import cn from 'clsx'; import { Icon, Link, IconType } from 'panel/common/ui'; -import { RoutePath } from 'panel/components/Routes/Paths'; +import { RoutePathKey } from 'panel/components/Routes/Paths'; import theme from 'panel/lib/theme'; import s from './styles.module.pcss'; @@ -9,7 +9,7 @@ import s from './styles.module.pcss'; type AccordionItem = { label: string; path: string; - routePath: RoutePath; + routePath: RoutePathKey; }; type Props = { diff --git a/client_v2/src/components/Routes/Paths.ts b/client_v2/src/components/Routes/Paths.ts index b594de1a..e41aef76 100644 --- a/client_v2/src/components/Routes/Paths.ts +++ b/client_v2/src/components/Routes/Paths.ts @@ -3,24 +3,26 @@ import qs from 'qs'; const BasicPath = '/'; const pathBuilder = (path: string) => `${BasicPath}${path}`; -export enum RoutePath { - Dashboard = 'Dashboard', - Logs = 'Logs', - Guide = 'Guide', - Encryption = 'Encryption', - Dhcp = 'Dhcp', - Dns = 'Dns', - SettingsPage = 'SettingsPage', - Clients = 'Clients', - DnsBlocklists = 'DnsBlocklists', - DnsAllowlists = 'DnsAllowlists', - DnsRewrites = 'DnsRewrites', - CustomRules = 'CustomRules', - BlockedServices = 'BlockedServices', - UserRules = 'UserRules', -} +export const RoutePath = { + Dashboard: 'Dashboard', + Logs: 'Logs', + Guide: 'Guide', + Encryption: 'Encryption', + Dhcp: 'Dhcp', + Dns: 'Dns', + SettingsPage: 'SettingsPage', + Clients: 'Clients', + DnsBlocklists: 'DnsBlocklists', + DnsAllowlists: 'DnsAllowlists', + DnsRewrites: 'DnsRewrites', + CustomRules: 'CustomRules', + BlockedServices: 'BlockedServices', + UserRules: 'UserRules', +} as const; -export const Paths: Record = { +export type RoutePathKey = keyof typeof RoutePath; + +export const Paths: Record = { Dashboard: pathBuilder(''), Logs: pathBuilder('logs'), Guide: pathBuilder('guide'), @@ -40,7 +42,7 @@ export const Paths: Record = { export type LinkParams = Partial>; export const linkPathBuilder = ( - route: RoutePath, + route: RoutePathKey, params?: LinkParams, query?: Partial>, ) => {