mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-08 20:55:45 +08:00
40 lines
1.2 KiB
TypeScript
40 lines
1.2 KiB
TypeScript
import useSWR, { useSWRConfig } from "swr";
|
|
import { useEffect } from "react";
|
|
import { Box, List, Paper, Typography } from "@mui/material";
|
|
import { getProxies } from "../services/api";
|
|
import ProxyGroup from "../components/proxy-group";
|
|
|
|
const ProxyPage = () => {
|
|
const { mutate } = useSWRConfig();
|
|
const { data: proxiesData } = useSWR("getProxies", getProxies);
|
|
const { groups = [] } = proxiesData ?? {};
|
|
|
|
useEffect(() => {
|
|
// fix the empty proxies on the first sight
|
|
// this bud only show on the build version
|
|
// call twice to avoid something unknown or the delay of the clash startup
|
|
setTimeout(() => mutate("getProxies"), 250);
|
|
setTimeout(() => mutate("getProxies"), 1000);
|
|
}, []);
|
|
|
|
return (
|
|
<Box sx={{ width: 0.9, maxWidth: "850px", mx: "auto", mb: 2 }}>
|
|
<Typography variant="h4" component="h1" sx={{ py: 2 }}>
|
|
Proxy Groups
|
|
</Typography>
|
|
|
|
{groups.length > 0 && (
|
|
<Paper sx={{ borderRadius: 1, boxShadow: 2 }}>
|
|
<List>
|
|
{groups.map((group) => (
|
|
<ProxyGroup key={group.name} group={group} />
|
|
))}
|
|
</List>
|
|
</Paper>
|
|
)}
|
|
</Box>
|
|
);
|
|
};
|
|
|
|
export default ProxyPage;
|