mirror of
https://github.com/MetaCubeX/metacubexd.git
synced 2024-11-24 09:45:35 +08:00
fix: protected pages behind selected endpoint, fixes #647
This commit is contained in:
parent
495faf2088
commit
a3877229b8
20
package.json
20
package.json
@ -25,13 +25,13 @@
|
|||||||
"@solid-primitives/keyed": "^1.2.2",
|
"@solid-primitives/keyed": "^1.2.2",
|
||||||
"@solid-primitives/media": "^2.2.8",
|
"@solid-primitives/media": "^2.2.8",
|
||||||
"@solid-primitives/resize-observer": "^2.0.25",
|
"@solid-primitives/resize-observer": "^2.0.25",
|
||||||
"@solid-primitives/storage": "^2.1.4",
|
"@solid-primitives/storage": "^3.0.0",
|
||||||
"@solid-primitives/timer": "^1.3.9",
|
"@solid-primitives/timer": "^1.3.9",
|
||||||
"@solid-primitives/websocket": "^1.2.2",
|
"@solid-primitives/websocket": "^1.2.2",
|
||||||
"@solidjs/router": "^0.13.1",
|
"@solidjs/router": "^0.13.1",
|
||||||
"@tabler/icons-solidjs": "^2.47.0",
|
"@tabler/icons-solidjs": "^2.47.0",
|
||||||
"@tanstack/match-sorter-utils": "^8.11.8",
|
"@tanstack/match-sorter-utils": "^8.11.8",
|
||||||
"@tanstack/solid-table": "^8.14.0",
|
"@tanstack/solid-table": "^8.15.0",
|
||||||
"@tanstack/solid-virtual": "3.0.2",
|
"@tanstack/solid-virtual": "3.0.2",
|
||||||
"@tanstack/virtual-core": "3.0.2",
|
"@tanstack/virtual-core": "3.0.2",
|
||||||
"@thisbeyond/solid-dnd": "^0.7.5",
|
"@thisbeyond/solid-dnd": "^0.7.5",
|
||||||
@ -39,21 +39,21 @@
|
|||||||
"@types/lodash": "^4.17.0",
|
"@types/lodash": "^4.17.0",
|
||||||
"@types/node": "^20.11.30",
|
"@types/node": "^20.11.30",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.3.1",
|
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
||||||
"@typescript-eslint/parser": "^7.3.1",
|
"@typescript-eslint/parser": "^7.4.0",
|
||||||
"@vite-pwa/assets-generator": "^0.2.4",
|
"@vite-pwa/assets-generator": "^0.2.4",
|
||||||
"apexcharts": "^3.48.0",
|
"apexcharts": "^3.48.0",
|
||||||
"autoprefixer": "^10.4.18",
|
"autoprefixer": "^10.4.19",
|
||||||
"byte-size": "^8.1.1",
|
"byte-size": "^8.1.1",
|
||||||
"commitlint": "^19.2.1",
|
"commitlint": "^19.2.1",
|
||||||
"daisyui": "^4.7.3",
|
"daisyui": "^4.9.0",
|
||||||
"dayjs": "^1.11.10",
|
"dayjs": "^1.11.10",
|
||||||
"eslint": "^8.57.0",
|
"eslint": "^8.57.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.1.3",
|
||||||
"husky": "^9.0.11",
|
"husky": "^9.0.11",
|
||||||
"is-ip": "^5.0.1",
|
"is-ip": "^5.0.1",
|
||||||
"ky": "^1.2.2",
|
"ky": "^1.2.3",
|
||||||
"lint-staged": "^15.2.2",
|
"lint-staged": "^15.2.2",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"match-sorter": "^6.3.4",
|
"match-sorter": "^6.3.4",
|
||||||
@ -66,10 +66,10 @@
|
|||||||
"sort-package-json": "^2.8.0",
|
"sort-package-json": "^2.8.0",
|
||||||
"tailwind-merge": "^2.2.2",
|
"tailwind-merge": "^2.2.2",
|
||||||
"tailwindcss": "^3.4.1",
|
"tailwindcss": "^3.4.1",
|
||||||
"typescript": "^5.4.2",
|
"typescript": "^5.4.3",
|
||||||
"uuid": "^9.0.1",
|
"uuid": "^9.0.1",
|
||||||
"vite": "^5.1.6",
|
"vite": "^5.2.6",
|
||||||
"vite-plugin-pwa": "^0.19.5",
|
"vite-plugin-pwa": "^0.19.7",
|
||||||
"vite-plugin-solid": "^2.10.2",
|
"vite-plugin-solid": "^2.10.2",
|
||||||
"zod": "^3.22.4"
|
"zod": "^3.22.4"
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,7 @@ render(
|
|||||||
<I18nProvider locale={locale()}>
|
<I18nProvider locale={locale()}>
|
||||||
<HashRouter root={App}>
|
<HashRouter root={App}>
|
||||||
<Route path={ROUTES.Setup} component={Setup} />
|
<Route path={ROUTES.Setup} component={Setup} />
|
||||||
<Route path="/" component={Overview} />
|
<Route path="*" component={Overview} />
|
||||||
<Route path={ROUTES.Overview} component={Overview} />
|
<Route path={ROUTES.Overview} component={Overview} />
|
||||||
<Route path={ROUTES.Proxies} component={Proxies} />
|
<Route path={ROUTES.Proxies} component={Proxies} />
|
||||||
<Route path={ROUTES.Rules} component={Rules} />
|
<Route path={ROUTES.Rules} component={Rules} />
|
||||||
|
@ -35,6 +35,7 @@ import { isSingBox } from '~/helpers'
|
|||||||
import { locale, setLocale, useI18n } from '~/i18n'
|
import { locale, setLocale, useI18n } from '~/i18n'
|
||||||
import {
|
import {
|
||||||
autoSwitchTheme,
|
autoSwitchTheme,
|
||||||
|
endpoint,
|
||||||
favDayTheme,
|
favDayTheme,
|
||||||
favNightTheme,
|
favNightTheme,
|
||||||
setAutoSwitchTheme,
|
setAutoSwitchTheme,
|
||||||
@ -514,6 +515,14 @@ const Versions: Component<{ backendVersion: Accessor<string> }> = ({
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
const [t] = useI18n()
|
const [t] = useI18n()
|
||||||
|
|
||||||
const [backendVersion, setBackendVersion] = createSignal('')
|
const [backendVersion, setBackendVersion] = createSignal('')
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import { writeClipboard } from '@solid-primitives/clipboard'
|
import { writeClipboard } from '@solid-primitives/clipboard'
|
||||||
import { makePersisted } from '@solid-primitives/storage'
|
import { makePersisted } from '@solid-primitives/storage'
|
||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
import {
|
import {
|
||||||
IconInfoSmall,
|
IconInfoSmall,
|
||||||
IconPlayerPause,
|
IconPlayerPause,
|
||||||
@ -51,6 +52,7 @@ import {
|
|||||||
connectionsTableColumnOrder,
|
connectionsTableColumnOrder,
|
||||||
connectionsTableColumnVisibility,
|
connectionsTableColumnVisibility,
|
||||||
connectionsTableSize,
|
connectionsTableSize,
|
||||||
|
endpoint,
|
||||||
formatTimeFromNow,
|
formatTimeFromNow,
|
||||||
setConnectionsTableColumnOrder,
|
setConnectionsTableColumnOrder,
|
||||||
setConnectionsTableColumnVisibility,
|
setConnectionsTableColumnVisibility,
|
||||||
@ -78,6 +80,14 @@ const fuzzyFilter: FilterFn<Connection> = (row, columnId, value, addMeta) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
let connectionsSettingsModalRef: HTMLDialogElement | undefined
|
let connectionsSettingsModalRef: HTMLDialogElement | undefined
|
||||||
let connectionsDetailsModalRef: HTMLDialogElement | undefined
|
let connectionsDetailsModalRef: HTMLDialogElement | undefined
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { makePersisted } from '@solid-primitives/storage'
|
import { makePersisted } from '@solid-primitives/storage'
|
||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
import {
|
import {
|
||||||
IconSettings,
|
IconSettings,
|
||||||
IconSortAscending,
|
IconSortAscending,
|
||||||
@ -20,7 +21,12 @@ import { twMerge } from 'tailwind-merge'
|
|||||||
import { Button, LogsSettingsModal } from '~/components'
|
import { Button, LogsSettingsModal } from '~/components'
|
||||||
import { LOG_LEVEL } from '~/constants'
|
import { LOG_LEVEL } from '~/constants'
|
||||||
import { useI18n } from '~/i18n'
|
import { useI18n } from '~/i18n'
|
||||||
import { logsTableSize, tableSizeClassName, useWsRequest } from '~/signals'
|
import {
|
||||||
|
endpoint,
|
||||||
|
logsTableSize,
|
||||||
|
tableSizeClassName,
|
||||||
|
useWsRequest,
|
||||||
|
} from '~/signals'
|
||||||
import { logLevel, logMaxRows } from '~/signals/config'
|
import { logLevel, logMaxRows } from '~/signals/config'
|
||||||
import { Log } from '~/types'
|
import { Log } from '~/types'
|
||||||
|
|
||||||
@ -40,6 +46,14 @@ const fuzzyFilter: FilterFn<LogWithSeq> = (row, columnId, value, addMeta) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
let logsSettingsModalRef: HTMLDialogElement | undefined
|
let logsSettingsModalRef: HTMLDialogElement | undefined
|
||||||
|
|
||||||
const [t] = useI18n()
|
const [t] = useI18n()
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { makeTimer } from '@solid-primitives/timer'
|
import { makeTimer } from '@solid-primitives/timer'
|
||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
import type { ApexOptions } from 'apexcharts'
|
import type { ApexOptions } from 'apexcharts'
|
||||||
import byteSize from 'byte-size'
|
import byteSize from 'byte-size'
|
||||||
import { merge } from 'lodash'
|
import { merge } from 'lodash'
|
||||||
@ -26,6 +27,14 @@ const TrafficWidget: ParentComponent<{ label: JSX.Element }> = (props) => (
|
|||||||
)
|
)
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
const [t] = useI18n()
|
const [t] = useI18n()
|
||||||
|
|
||||||
const [traffics, setTraffics] = createSignal<{ down: number; up: number }[]>(
|
const [traffics, setTraffics] = createSignal<{ down: number; up: number }[]>(
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
import {
|
import {
|
||||||
IconBrandSpeedtest,
|
IconBrandSpeedtest,
|
||||||
IconReload,
|
IconReload,
|
||||||
@ -19,6 +20,7 @@ import {
|
|||||||
} from '~/helpers'
|
} from '~/helpers'
|
||||||
import { useI18n } from '~/i18n'
|
import { useI18n } from '~/i18n'
|
||||||
import {
|
import {
|
||||||
|
endpoint,
|
||||||
formatTimeFromNow,
|
formatTimeFromNow,
|
||||||
hideUnAvailableProxies,
|
hideUnAvailableProxies,
|
||||||
proxiesOrderingType,
|
proxiesOrderingType,
|
||||||
@ -32,6 +34,14 @@ enum ActiveTab {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
let proxiesSettingsModalRef: HTMLDialogElement | undefined
|
let proxiesSettingsModalRef: HTMLDialogElement | undefined
|
||||||
|
|
||||||
const [t] = useI18n()
|
const [t] = useI18n()
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import { useNavigate } from '@solidjs/router'
|
||||||
import { IconReload } from '@tabler/icons-solidjs'
|
import { IconReload } from '@tabler/icons-solidjs'
|
||||||
import { createVirtualizer } from '@tanstack/solid-virtual'
|
import { createVirtualizer } from '@tanstack/solid-virtual'
|
||||||
import { matchSorter } from 'match-sorter'
|
import { matchSorter } from 'match-sorter'
|
||||||
@ -6,7 +7,7 @@ import { twMerge } from 'tailwind-merge'
|
|||||||
import { Button } from '~/components'
|
import { Button } from '~/components'
|
||||||
import { useStringBooleanMap } from '~/helpers'
|
import { useStringBooleanMap } from '~/helpers'
|
||||||
import { useI18n } from '~/i18n'
|
import { useI18n } from '~/i18n'
|
||||||
import { formatTimeFromNow, useRules } from '~/signals'
|
import { endpoint, formatTimeFromNow, useRules } from '~/signals'
|
||||||
import { Rule, RuleProvider } from '~/types'
|
import { Rule, RuleProvider } from '~/types'
|
||||||
|
|
||||||
enum ActiveTab {
|
enum ActiveTab {
|
||||||
@ -15,6 +16,14 @@ enum ActiveTab {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
|
if (!endpoint()) {
|
||||||
|
navigate('/setup', { replace: true })
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
const [t] = useI18n()
|
const [t] = useI18n()
|
||||||
const {
|
const {
|
||||||
rules,
|
rules,
|
||||||
|
Loading…
Reference in New Issue
Block a user