mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-10-26 05:42:07 +08:00
79 lines
2.7 KiB
TypeScript
79 lines
2.7 KiB
TypeScript
import DnsOutlinedIcon from '@mui/icons-material/DnsOutlined'
|
|
import ForkRightOutlinedIcon from '@mui/icons-material/ForkRightOutlined'
|
|
import HomeOutlinedIcon from '@mui/icons-material/HomeOutlined'
|
|
import LanguageOutlinedIcon from '@mui/icons-material/LanguageOutlined'
|
|
import LockOpenOutlinedIcon from '@mui/icons-material/LockOpenOutlined'
|
|
import SettingsOutlinedIcon from '@mui/icons-material/SettingsOutlined'
|
|
import SubjectOutlinedIcon from '@mui/icons-material/SubjectOutlined'
|
|
import WifiOutlinedIcon from '@mui/icons-material/WifiOutlined'
|
|
import { type ComponentType, type ReactNode } from 'react'
|
|
|
|
import ConnectionsSvg from '@/assets/image/itemicon/connections.svg?react'
|
|
import HomeSvg from '@/assets/image/itemicon/home.svg?react'
|
|
import LogsSvg from '@/assets/image/itemicon/logs.svg?react'
|
|
import ProfilesSvg from '@/assets/image/itemicon/profiles.svg?react'
|
|
import ProxiesSvg from '@/assets/image/itemicon/proxies.svg?react'
|
|
import RulesSvg from '@/assets/image/itemicon/rules.svg?react'
|
|
import SettingsSvg from '@/assets/image/itemicon/settings.svg?react'
|
|
import UnlockSvg from '@/assets/image/itemicon/unlock.svg?react'
|
|
|
|
import { navigationItems } from './_navigation-meta'
|
|
import ConnectionsPage from './connections'
|
|
import HomePage from './home'
|
|
import LogsPage from './logs'
|
|
import ProfilePage from './profiles'
|
|
import ProxyPage from './proxies'
|
|
import RulesPage from './rules'
|
|
import SettingPage from './settings'
|
|
import UnlockPage from './unlock'
|
|
|
|
type NavigationItem = {
|
|
label: (typeof navigationItems)[keyof typeof navigationItems]['label']
|
|
path: string
|
|
icon: ReactNode[]
|
|
Component: ComponentType
|
|
}
|
|
|
|
export const navItems: NavigationItem[] = [
|
|
{
|
|
...navigationItems.home,
|
|
icon: [<HomeOutlinedIcon key="mui" />, <HomeSvg key="svg" />],
|
|
Component: HomePage,
|
|
},
|
|
{
|
|
...navigationItems.proxies,
|
|
icon: [<WifiOutlinedIcon key="mui" />, <ProxiesSvg key="svg" />],
|
|
Component: ProxyPage,
|
|
},
|
|
{
|
|
...navigationItems.profiles,
|
|
icon: [<DnsOutlinedIcon key="mui" />, <ProfilesSvg key="svg" />],
|
|
Component: ProfilePage,
|
|
},
|
|
{
|
|
...navigationItems.connections,
|
|
icon: [<LanguageOutlinedIcon key="mui" />, <ConnectionsSvg key="svg" />],
|
|
Component: ConnectionsPage,
|
|
},
|
|
{
|
|
...navigationItems.rules,
|
|
icon: [<ForkRightOutlinedIcon key="mui" />, <RulesSvg key="svg" />],
|
|
Component: RulesPage,
|
|
},
|
|
{
|
|
...navigationItems.logs,
|
|
icon: [<SubjectOutlinedIcon key="mui" />, <LogsSvg key="svg" />],
|
|
Component: LogsPage,
|
|
},
|
|
{
|
|
...navigationItems.unlock,
|
|
icon: [<LockOpenOutlinedIcon key="mui" />, <UnlockSvg key="svg" />],
|
|
Component: UnlockPage,
|
|
},
|
|
{
|
|
...navigationItems.settings,
|
|
icon: [<SettingsOutlinedIcon key="mui" />, <SettingsSvg key="svg" />],
|
|
Component: SettingPage,
|
|
},
|
|
]
|