diff --git a/src/components/base/base-empty.tsx b/src/components/base/base-empty.tsx index 420aa2fe89491bf6fb58165bc75ca0d9b602c685..c364a50ab72b1c486b2b4b55941d9060116de876 100644 --- a/src/components/base/base-empty.tsx +++ b/src/components/base/base-empty.tsx @@ -6,7 +6,7 @@ interface Props { extra?: React.ReactNode; } -const BaseEmpty = (props: Props) => { +export const BaseEmpty = (props: Props) => { const { text = "Empty", extra } = props; return ( @@ -27,5 +27,3 @@ const BaseEmpty = (props: Props) => { </Box> ); }; - -export default BaseEmpty; diff --git a/src/components/base/base-error-boundary.tsx b/src/components/base/base-error-boundary.tsx index c6fd12308ac42df66eaca1e5cc30e71630095b52..584fd8a5e441a02ff75b11ea9beea9b04c8efd12 100644 --- a/src/components/base/base-error-boundary.tsx +++ b/src/components/base/base-error-boundary.tsx @@ -9,12 +9,10 @@ function ErrorFallback({ error }: FallbackProps) { ); } -const BaseErrorBoundary: React.FC = (props) => { +export const BaseErrorBoundary: React.FC = (props) => { return ( <ErrorBoundary FallbackComponent={ErrorFallback}> {props.children} </ErrorBoundary> ); }; - -export default BaseErrorBoundary; diff --git a/src/components/base/base-loading.tsx b/src/components/base/base-loading.tsx index a1352d4e00a95e7753adbf16eea59a30ee313b33..0fdbebf1e579a7d5b925a3295a21362255bb9758 100644 --- a/src/components/base/base-loading.tsx +++ b/src/components/base/base-loading.tsx @@ -37,7 +37,7 @@ const LoadingItem = styled("div")(({ theme }) => ({ background: theme.palette.text.secondary, })); -const BaseLoading = () => { +export const BaseLoading = () => { return ( <Loading> <LoadingItem /> @@ -46,5 +46,3 @@ const BaseLoading = () => { </Loading> ); }; - -export default BaseLoading; diff --git a/src/components/base/base-notice.tsx b/src/components/base/base-notice.tsx index 39f1130191370afccfd502cc0b37c4a8964135a6..6d45496c7b5cfe513df8716f17eb3559902befe4 100644 --- a/src/components/base/base-notice.tsx +++ b/src/components/base/base-notice.tsx @@ -69,7 +69,7 @@ interface NoticeInstance { let parent: HTMLDivElement = null!; // @ts-ignore -const Notice: NoticeInstance = (props) => { +export const Notice: NoticeInstance = (props) => { if (!parent) { parent = document.createElement("div"); document.body.appendChild(parent); @@ -91,5 +91,3 @@ const Notice: NoticeInstance = (props) => { setTimeout(() => Notice({ type, message, duration }), 0); }; }); - -export default Notice; diff --git a/src/components/base/base-page.tsx b/src/components/base/base-page.tsx index e69b0cfff1b052ac4bb3b6bbde753060cb18f3f4..fefaf82bcf5ce224a2ddb9bfbdb1769e4d7dd9b2 100644 --- a/src/components/base/base-page.tsx +++ b/src/components/base/base-page.tsx @@ -1,6 +1,6 @@ import React from "react"; import { Typography } from "@mui/material"; -import BaseErrorBoundary from "./base-error-boundary"; +import { BaseErrorBoundary } from "./base-error-boundary"; interface Props { title?: React.ReactNode; // the page title @@ -8,7 +8,7 @@ interface Props { contentStyle?: React.CSSProperties; } -const BasePage: React.FC<Props> = (props) => { +export const BasePage: React.FC<Props> = (props) => { const { title, header, contentStyle, children } = props; return ( @@ -31,5 +31,3 @@ const BasePage: React.FC<Props> = (props) => { </BaseErrorBoundary> ); }; - -export default BasePage; diff --git a/src/components/base/index.ts b/src/components/base/index.ts index ef1eb46972037760941429302e92e805658a9a34..3e0e32403a5d0b52d0dc8ecb374fcf127c637dfd 100644 --- a/src/components/base/index.ts +++ b/src/components/base/index.ts @@ -1,2 +1,6 @@ export { BaseDialog, type DialogRef } from "./base-dialog"; +export { BasePage } from "./base-page"; +export { BaseEmpty } from "./base-empty"; +export { BaseLoading } from "./base-loading"; +export { BaseErrorBoundary } from "./base-error-boundary"; export { Notice } from "./base-notice"; diff --git a/src/components/layout/update-dialog.tsx b/src/components/layout/update-dialog.tsx index e7f45f9b1e9f0d35a6eda6ce09bad34f0c55c6eb..392e0865870e8d629d7830d049dca361fda9e512 100644 --- a/src/components/layout/update-dialog.tsx +++ b/src/components/layout/update-dialog.tsx @@ -15,7 +15,7 @@ import { import { relaunch } from "@tauri-apps/api/process"; import { checkUpdate, installUpdate } from "@tauri-apps/api/updater"; import { atomUpdateState } from "@/services/states"; -import Notice from "../base/base-notice"; +import { Notice } from "@/components/base"; interface Props { open: boolean; diff --git a/src/components/profile/enhanced.tsx b/src/components/profile/enhanced.tsx index cb5ec606fd8b602031facf217ac21ed51b815ac3..2cc68c90b95d4100ed5a7e5a34e0ce0e7a0361f2 100644 --- a/src/components/profile/enhanced.tsx +++ b/src/components/profile/enhanced.tsx @@ -10,8 +10,8 @@ import { patchProfilesConfig, getRuntimeLogs, } from "@/services/cmds"; +import { Notice } from "@/components/base"; import ProfileMore from "./profile-more"; -import Notice from "../base/base-notice"; interface Props { items: IProfileItem[]; diff --git a/src/components/profile/file-editor.tsx b/src/components/profile/file-editor.tsx index 1cc8a0f47dbe2563994bd7a7b4deb0546405d417..5f9bab779a75dc62a0e57d5d3dca4d8360befae9 100644 --- a/src/components/profile/file-editor.tsx +++ b/src/components/profile/file-editor.tsx @@ -11,7 +11,7 @@ import { } from "@mui/material"; import { atomThemeMode } from "@/services/states"; import { readProfileFile, saveProfileFile } from "@/services/cmds"; -import Notice from "../base/base-notice"; +import { Notice } from "@/components/base"; import "monaco-editor/esm/vs/basic-languages/javascript/javascript.contribution.js"; import "monaco-editor/esm/vs/basic-languages/yaml/yaml.contribution.js"; @@ -26,7 +26,7 @@ interface Props { onChange?: () => void; } -const FileEditor = (props: Props) => { +export const FileEditor = (props: Props) => { const { uid, open, mode, onClose, onChange } = props; const { t } = useTranslation(); @@ -92,5 +92,3 @@ const FileEditor = (props: Props) => { </Dialog> ); }; - -export default FileEditor; diff --git a/src/components/profile/info-editor.tsx b/src/components/profile/info-editor.tsx index 950943e34600778b7f6eeb03d2463cc38450b14c..f5c0fb0a376e4efb0a0cffdce8bdc49680642e04 100644 --- a/src/components/profile/info-editor.tsx +++ b/src/components/profile/info-editor.tsx @@ -17,7 +17,7 @@ import { import { Settings } from "@mui/icons-material"; import { patchProfile } from "@/services/cmds"; import { version } from "@root/package.json"; -import Notice from "../base/base-notice"; +import { Notice } from "@/components/base"; interface Props { open: boolean; diff --git a/src/components/profile/log-viewer.tsx b/src/components/profile/log-viewer.tsx index 949c57adbf9c6683690073be51e1b6695904d612..c3ba16265103857cb7ab276c5aa1cb16de0e1856 100644 --- a/src/components/profile/log-viewer.tsx +++ b/src/components/profile/log-viewer.tsx @@ -1,3 +1,4 @@ +import { Fragment } from "react"; import { useTranslation } from "react-i18next"; import { Button, @@ -9,8 +10,7 @@ import { Divider, Typography, } from "@mui/material"; -import BaseEmpty from "../base/base-empty"; -import { Fragment } from "react"; +import { BaseEmpty } from "@/components/base"; interface Props { open: boolean; diff --git a/src/components/profile/profile-item.tsx b/src/components/profile/profile-item.tsx index c721d771f97a609c1ef2f4c1795cc555d6626263..a79e9825538d680f4f20bff9209a646c4ad76dd3 100644 --- a/src/components/profile/profile-item.tsx +++ b/src/components/profile/profile-item.tsx @@ -16,11 +16,11 @@ import { import { RefreshRounded } from "@mui/icons-material"; import { atomLoadingCache } from "@/services/states"; import { updateProfile, deleteProfile, viewProfile } from "@/services/cmds"; +import { Notice } from "@/components/base"; import parseTraffic from "@/utils/parse-traffic"; import ProfileBox from "./profile-box"; import InfoEditor from "./info-editor"; -import FileEditor from "./file-editor"; -import Notice from "../base/base-notice"; +import { FileEditor } from "./file-editor"; const round = keyframes` from { transform: rotate(0deg); } diff --git a/src/components/profile/profile-more.tsx b/src/components/profile/profile-more.tsx index e8cfba2c283582aa334a8579222471674f1cb9c6..e46daaedfefb950513ff10f9c6838d124d644bac 100644 --- a/src/components/profile/profile-more.tsx +++ b/src/components/profile/profile-more.tsx @@ -13,11 +13,11 @@ import { } from "@mui/material"; import { FeaturedPlayListRounded } from "@mui/icons-material"; import { viewProfile } from "@/services/cmds"; +import { Notice } from "@/components/base"; import InfoEditor from "./info-editor"; -import FileEditor from "./file-editor"; +import { FileEditor } from "./file-editor"; import ProfileBox from "./profile-box"; import LogViewer from "./log-viewer"; -import Notice from "../base/base-notice"; interface Props { selected: boolean; diff --git a/src/components/profile/profile-new.tsx b/src/components/profile/profile-new.tsx index 05a7815104bbced3c0db6fc5699b621f69e7a26d..c75c6ec7d1a7b70d826c4f7fe4fbd898e10796b2 100644 --- a/src/components/profile/profile-new.tsx +++ b/src/components/profile/profile-new.tsx @@ -20,7 +20,7 @@ import { } from "@mui/material"; import { Settings } from "@mui/icons-material"; import { createProfile } from "@/services/cmds"; -import Notice from "../base/base-notice"; +import { Notice } from "@/components/base"; import FileInput from "./file-input"; interface Props { diff --git a/src/components/proxy/proxy-item.tsx b/src/components/proxy/proxy-item.tsx index d72068269eb0492540c758fad01509c2b202f289..c91991a30c7c3bd509dc0f14549ffca421f81391 100644 --- a/src/components/proxy/proxy-item.tsx +++ b/src/components/proxy/proxy-item.tsx @@ -12,8 +12,8 @@ import { SxProps, Theme, } from "@mui/material"; +import { BaseLoading } from "@/components/base"; import delayManager from "@/services/delay"; -import BaseLoading from "../base/base-loading"; interface Props { groupName: string; diff --git a/src/components/proxy/use-render-list.ts b/src/components/proxy/use-render-list.ts index 843dc06d0741e98a9b987fb49b118997321c4f08..5fdf52e6566e6f54605154beff8257eb9deddee1 100644 --- a/src/components/proxy/use-render-list.ts +++ b/src/components/proxy/use-render-list.ts @@ -16,7 +16,7 @@ export const useRenderList = (mode: string) => { const { data: proxiesData, mutate: mutateProxies } = useSWR( "getProxies", getProxies, - { refreshInterval: 45000, suspense: true } + { refreshInterval: 45000 } ); const [headStates, setHeadState] = useHeadStateNew(); @@ -35,6 +35,7 @@ export const useRenderList = (mode: string) => { }, [proxiesData, mode]); const renderList: IRenderItem[] = useMemo(() => { + if (!proxiesData) return []; const useRule = mode === "rule" || mode === "script"; const renderGroups = (useRule ? proxiesData?.groups : [proxiesData?.global!]) || []; diff --git a/src/components/setting/mods/clash-field-viewer.tsx b/src/components/setting/mods/clash-field-viewer.tsx index bb1579f3c058553b2a8e35e68166be5e611d32da..d9bc09e20ca20e48aaa73ccf9c2c67243260e62a 100644 --- a/src/components/setting/mods/clash-field-viewer.tsx +++ b/src/components/setting/mods/clash-field-viewer.tsx @@ -11,7 +11,7 @@ import { } from "@/utils/clash-fields"; import { BaseDialog, DialogRef } from "@/components/base"; import { useProfiles } from "@/hooks/use-profiles"; -import Notice from "@/components/base/base-notice"; +import { Notice } from "@/components/base"; const fieldSorter = (a: string, b: string) => { if (a.includes("-") === a.includes("-")) { diff --git a/src/components/setting/mods/clash-port-viewer.tsx b/src/components/setting/mods/clash-port-viewer.tsx index 36604cb3f345575f3452de13f6d7cd0236743e2f..e09fe54896077821e8b718a453435e43667aa008 100644 --- a/src/components/setting/mods/clash-port-viewer.tsx +++ b/src/components/setting/mods/clash-port-viewer.tsx @@ -7,8 +7,7 @@ import { List, ListItem, ListItemText, TextField } from "@mui/material"; import { atomClashPort } from "@/services/states"; import { getClashConfig } from "@/services/api"; import { patchClashConfig } from "@/services/cmds"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "@/components/base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; export const ClashPortViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/components/setting/mods/controller-viewer.tsx b/src/components/setting/mods/controller-viewer.tsx index 3a49c8dbd52e5b07902230032c785fcd2e44e6cc..d3d6a43d4ccf0ca3b99e49568d26a5204e9d65d0 100644 --- a/src/components/setting/mods/controller-viewer.tsx +++ b/src/components/setting/mods/controller-viewer.tsx @@ -5,8 +5,7 @@ import { useTranslation } from "react-i18next"; import { List, ListItem, ListItemText, TextField } from "@mui/material"; import { getClashInfo, patchClashConfig } from "@/services/cmds"; import { getAxios } from "@/services/api"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "@/components/base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; export const ControllerViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/components/setting/mods/core-switch.tsx b/src/components/setting/mods/core-switch.tsx index f57825924c146923aa38370d57ad3dfde013c0bf..d54e6787507f35b2f8375488e25875cf7de5db46 100644 --- a/src/components/setting/mods/core-switch.tsx +++ b/src/components/setting/mods/core-switch.tsx @@ -5,7 +5,7 @@ import { Menu, MenuItem } from "@mui/material"; import { Settings } from "@mui/icons-material"; import { changeClashCore } from "@/services/cmds"; import { useVerge } from "@/hooks/use-verge"; -import Notice from "@/components/base/base-notice"; +import { Notice } from "@/components/base"; const VALID_CORE = [ { name: "Clash", core: "clash" }, diff --git a/src/components/setting/mods/hotkey-viewer.tsx b/src/components/setting/mods/hotkey-viewer.tsx index 9f41fde82bd4a26d8b0e287b89a0520920732c6e..22a2dacc9c28b01c4968a776274fcee2855b26de 100644 --- a/src/components/setting/mods/hotkey-viewer.tsx +++ b/src/components/setting/mods/hotkey-viewer.tsx @@ -3,9 +3,8 @@ import { useTranslation } from "react-i18next"; import { useLockFn } from "ahooks"; import { styled, Typography } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; -import { BaseDialog, DialogRef } from "@/components/base"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; import { HotkeyInput } from "./hotkey-input"; -import Notice from "@/components/base/base-notice"; const ItemWrapper = styled("div")` display: flex; diff --git a/src/components/setting/mods/misc-viewer.tsx b/src/components/setting/mods/misc-viewer.tsx index 89d2f991ab6d7b165990c4ec4528a66e6a20145b..81b235cde7d0fe5075d9dd1fca22f9709d02c2f0 100644 --- a/src/components/setting/mods/misc-viewer.tsx +++ b/src/components/setting/mods/misc-viewer.tsx @@ -3,8 +3,7 @@ import { useLockFn } from "ahooks"; import { useTranslation } from "react-i18next"; import { List, ListItem, ListItemText, Switch, TextField } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "@/components/base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; export const MiscViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/components/setting/mods/service-viewer.tsx b/src/components/setting/mods/service-viewer.tsx index 52c0ebb1cde2f2e0bdbc01abc5f6e1057355beea..9052559b7870c4446f70e50287476e367a30f7f4 100644 --- a/src/components/setting/mods/service-viewer.tsx +++ b/src/components/setting/mods/service-viewer.tsx @@ -9,8 +9,7 @@ import { patchVergeConfig, } from "@/services/cmds"; import { forwardRef, useState } from "react"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "@/components/base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; interface Props { enable: boolean; diff --git a/src/components/setting/mods/sysproxy-viewer.tsx b/src/components/setting/mods/sysproxy-viewer.tsx index edb5a8c27866f3cb9833ca4822b351461efb7d98..44682dcf638c8297bbe83e83e1c9a13aee3fe451 100644 --- a/src/components/setting/mods/sysproxy-viewer.tsx +++ b/src/components/setting/mods/sysproxy-viewer.tsx @@ -14,8 +14,7 @@ import { } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; import { getSystemProxy } from "@/services/cmds"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "@/components/base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; export const SysproxyViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/components/setting/mods/theme-viewer.tsx b/src/components/setting/mods/theme-viewer.tsx index 014decd85646a6adaecdabd7facdf8d74abc84f6..c68ada296ccf0761b3625e2ff6f4022892f520cb 100644 --- a/src/components/setting/mods/theme-viewer.tsx +++ b/src/components/setting/mods/theme-viewer.tsx @@ -11,8 +11,7 @@ import { } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; import { defaultTheme, defaultDarkTheme } from "@/pages/_theme"; -import { BaseDialog, DialogRef } from "@/components/base"; -import Notice from "../../base/base-notice"; +import { BaseDialog, DialogRef, Notice } from "@/components/base"; export const ThemeViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/components/setting/mods/web-ui-viewer.tsx b/src/components/setting/mods/web-ui-viewer.tsx index cc0d679e2a8610a5348c78f1d2ab734f33a9dbc6..bb47a99b5541bb368093d12dc99fde07265c5aa8 100644 --- a/src/components/setting/mods/web-ui-viewer.tsx +++ b/src/components/setting/mods/web-ui-viewer.tsx @@ -5,10 +5,8 @@ import { useTranslation } from "react-i18next"; import { Button, Box, Typography } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; import { getClashInfo, openWebUrl } from "@/services/cmds"; +import { BaseDialog, BaseEmpty, DialogRef, Notice } from "@/components/base"; import { WebUIItem } from "./web-ui-item"; -import { BaseDialog, DialogRef } from "@/components/base"; -import BaseEmpty from "@/components/base/base-empty"; -import Notice from "@/components/base/base-notice"; export const WebUIViewer = forwardRef<DialogRef>((props, ref) => { const { t } = useTranslation(); diff --git a/src/pages/_layout.tsx b/src/pages/_layout.tsx index 145eb3199fc6176b64efcb56b3ccf2b76c509f3e..c2ba2b07d86482f1eae31925a19ccaf9d3cbe546 100644 --- a/src/pages/_layout.tsx +++ b/src/pages/_layout.tsx @@ -15,13 +15,12 @@ import { atomCurrentProfile } from "@/services/states"; import { getProfiles } from "@/services/cmds"; import { useVerge } from "@/hooks/use-verge"; import { ReactComponent as LogoSvg } from "@/assets/image/logo.svg"; -import Notice from "@/components/base/base-notice"; +import { BaseErrorBoundary, Notice } from "@/components/base"; import LayoutItem from "@/components/layout/layout-item"; import LayoutControl from "@/components/layout/layout-control"; import LayoutTraffic from "@/components/layout/layout-traffic"; import UpdateButton from "@/components/layout/update-button"; import useCustomTheme from "@/components/layout/use-custom-theme"; -import BaseErrorBoundary from "@/components/base/base-error-boundary"; import getSystem from "@/utils/get-system"; import "dayjs/locale/zh-cn"; diff --git a/src/pages/connections.tsx b/src/pages/connections.tsx index 059bd63b2aec9df4b287490ed278f73f2a4632f0..eefaa6aed9806814851b0a77443daa28f092bade 100644 --- a/src/pages/connections.tsx +++ b/src/pages/connections.tsx @@ -15,8 +15,7 @@ import { useTranslation } from "react-i18next"; import { TableChartRounded, TableRowsRounded } from "@mui/icons-material"; import { closeAllConnections, getInformation } from "@/services/api"; import { atomConnectionSetting } from "@/services/states"; -import BasePage from "@/components/base/base-page"; -import BaseEmpty from "@/components/base/base-empty"; +import { BaseEmpty, BasePage } from "@/components/base"; import ConnectionItem from "@/components/connection/connection-item"; import ConnectionTable from "@/components/connection/connection-table"; diff --git a/src/pages/logs.tsx b/src/pages/logs.tsx index 905c7a327e8d7c0fe53f222ea3bef38c880142a8..f7326f2c1fbb310cf52e1da1654375bdbb2f55a4 100644 --- a/src/pages/logs.tsx +++ b/src/pages/logs.tsx @@ -16,8 +16,7 @@ import { PauseCircleOutlineRounded, } from "@mui/icons-material"; import { atomEnableLog, atomLogData } from "@/services/states"; -import BasePage from "@/components/base/base-page"; -import BaseEmpty from "@/components/base/base-empty"; +import { BaseEmpty, BasePage } from "@/components/base"; import LogItem from "@/components/log/log-item"; const LogPage = () => { diff --git a/src/pages/profiles.tsx b/src/pages/profiles.tsx index fad443481c2bb9a7407345b7f8a5b169dc9be7d3..15cd711b078b765a31f6d8eddd82f54ea3c206cc 100644 --- a/src/pages/profiles.tsx +++ b/src/pages/profiles.tsx @@ -12,8 +12,7 @@ import { } from "@/services/cmds"; import { getProxies, updateProxy } from "@/services/api"; import { atomCurrentProfile } from "@/services/states"; -import Notice from "@/components/base/base-notice"; -import BasePage from "@/components/base/base-page"; +import { BasePage, Notice } from "@/components/base"; import ProfileNew from "@/components/profile/profile-new"; import ProfileItem from "@/components/profile/profile-item"; import EnhancedMode from "@/components/profile/enhanced"; diff --git a/src/pages/proxies.tsx b/src/pages/proxies.tsx index 6816bbc276ee82ce38395047508d0de837576ea6..67452cca1d742eb3e558d1ae76a1693300a0a8e2 100644 --- a/src/pages/proxies.tsx +++ b/src/pages/proxies.tsx @@ -5,7 +5,7 @@ import { Button, ButtonGroup, Paper } from "@mui/material"; import { getClashConfig, updateConfigs } from "@/services/api"; import { patchClashConfig } from "@/services/cmds"; import { ProxyGroups } from "@/components/proxy/proxy-groups"; -import BasePage from "@/components/base/base-page"; +import { BasePage } from "@/components/base"; const ProxyPage = () => { const { t } = useTranslation(); diff --git a/src/pages/rules.tsx b/src/pages/rules.tsx index 0bc0139d7d895c78bd6f7f51cb75906601c4f56a..86cbdfa9d6f8f3e7f1f911f9d66dd65d2a5d006d 100644 --- a/src/pages/rules.tsx +++ b/src/pages/rules.tsx @@ -2,10 +2,9 @@ import useSWR from "swr"; import { useState, useMemo } from "react"; import { useTranslation } from "react-i18next"; import { Virtuoso } from "react-virtuoso"; -import { Box, Button, MenuItem, Paper, Select, TextField } from "@mui/material"; +import { Box, Paper, TextField } from "@mui/material"; import { getRules } from "@/services/api"; -import BasePage from "@/components/base/base-page"; -import BaseEmpty from "@/components/base/base-empty"; +import { BaseEmpty, BasePage } from "@/components/base"; import RuleItem from "@/components/rule/rule-item"; const RulesPage = () => { diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index fcf7bd6f13580c30c8d8750eea1e49514e31a507..9904335f9383390a2f1ab651c1463d80f2a6ce04 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -1,7 +1,6 @@ import { Paper } from "@mui/material"; import { useTranslation } from "react-i18next"; -import Notice from "@/components/base/base-notice"; -import BasePage from "@/components/base/base-page"; +import { BasePage, Notice } from "@/components/base"; import SettingVerge from "@/components/setting/setting-verge"; import SettingClash from "@/components/setting/setting-clash"; import SettingSystem from "@/components/setting/setting-system"; diff --git a/src/services/cmds.ts b/src/services/cmds.ts index 168378ec8d7cd361a45f2d9097f15982f9bdbf45..b5a7d3d793abcdab76cc7709d9808d619f8877ad 100644 --- a/src/services/cmds.ts +++ b/src/services/cmds.ts @@ -1,5 +1,5 @@ import { invoke } from "@tauri-apps/api/tauri"; -import Notice from "@/components/base/base-notice"; +import { Notice } from "@/components/base"; export async function getClashLogs() { const regex = /time="(.+?)"\s+level=(.+?)\s+msg="(.+?)"/;