diff --git a/src/pages/proxy.tsx b/src/pages/proxy.tsx index 1c36ca7..c0d8e58 100644 --- a/src/pages/proxy.tsx +++ b/src/pages/proxy.tsx @@ -1,19 +1,11 @@ -import { useEffect, useState } from "react"; +import useSWR from "swr"; import { Box, List, Typography } from "@mui/material"; import services from "../services"; import ProxyGroup from "../components/proxy-group"; -import type { ProxyGroupItem } from "../services/proxy"; const ProxyPage = () => { - const [groups, setGroups] = useState([]); - - useEffect(() => { - // Todo - // result cache - services.getProxyInfo().then((res) => { - setGroups(res.groups); - }); - }, []); + const { data } = useSWR("getProxies", services.getProxies); + const { groups = [] } = data ?? {}; return ( diff --git a/src/pages/rules.tsx b/src/pages/rules.tsx index be63f42..7e4f250 100644 --- a/src/pages/rules.tsx +++ b/src/pages/rules.tsx @@ -1,6 +1,7 @@ import { useRef, useState } from "react"; import useSWR, { useSWRConfig } from "swr"; import { Box, Button, Grid, TextField, Typography } from "@mui/material"; +import services from "../services"; import { getProfiles, importProfile, @@ -35,6 +36,7 @@ const RulesPage = () => { putProfiles(index) .then(() => { mutate("getProfiles", { ...profiles, current: index }, true); + mutate("getProxies", services.getProxies()); }) .catch((err) => { console.error(err); diff --git a/src/services/proxy.ts b/src/services/proxy.ts index 3dbdae8..1f29ac9 100644 --- a/src/services/proxy.ts +++ b/src/services/proxy.ts @@ -17,7 +17,7 @@ export type ProxyGroupItem = Omit & { }; /// Get the Proxy infomation -export async function getProxyInfo() { +export async function getProxies() { const axiosIns = await getAxios(); const response = await axiosIns.get("/proxies"); const proxies = (response?.proxies ?? {}) as Record;