mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-13 05:20:28 +08:00
refactor: reorganize imports and remove unused axios instance code
This commit is contained in:
parent
a8fe5a71f7
commit
204bfa36e5
@ -1,11 +1,11 @@
|
||||
import {
|
||||
LocationOnOutlined,
|
||||
RefreshOutlined,
|
||||
VisibilityOutlined,
|
||||
VisibilityOffOutlined,
|
||||
VisibilityOutlined,
|
||||
} from "@mui/icons-material";
|
||||
import { Box, Typography, Button, Skeleton, IconButton } from "@mui/material";
|
||||
import { useState, useEffect, useCallback, memo } from "react";
|
||||
import { Box, Button, IconButton, Skeleton, Typography } from "@mui/material";
|
||||
import { memo, useCallback, useEffect, useState } from "react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
|
||||
import { getIpInfo } from "@/services/api";
|
||||
|
||||
@ -4,7 +4,6 @@ import { useEffect } from "react";
|
||||
import { mutate } from "swr";
|
||||
|
||||
import { useListen } from "@/hooks/use-listen";
|
||||
import { getAxios } from "@/services/api";
|
||||
|
||||
export const useLayoutEvents = (
|
||||
handleNotice: (payload: [string, string]) => void,
|
||||
@ -39,7 +38,6 @@ export const useLayoutEvents = (
|
||||
|
||||
register(
|
||||
addListener("verge://refresh-clash-config", async () => {
|
||||
await getAxios(true);
|
||||
mutate("getProxies");
|
||||
mutate("getVersion");
|
||||
mutate("getClashConfig");
|
||||
|
||||
@ -1,44 +1,4 @@
|
||||
import { fetch } from "@tauri-apps/plugin-http";
|
||||
import axios, { AxiosInstance } from "axios";
|
||||
|
||||
import { getClashInfo } from "./cmds";
|
||||
|
||||
let instancePromise: Promise<AxiosInstance> = null!;
|
||||
|
||||
async function getInstancePromise() {
|
||||
let server = "";
|
||||
let secret = "";
|
||||
|
||||
try {
|
||||
const info = await getClashInfo();
|
||||
|
||||
if (info?.server) {
|
||||
server = info.server;
|
||||
|
||||
// compatible width `external-controller`
|
||||
if (server.startsWith(":")) server = `127.0.0.1${server}`;
|
||||
else if (/^\d+$/.test(server)) server = `127.0.0.1:${server}`;
|
||||
}
|
||||
if (info?.secret) secret = info?.secret;
|
||||
} catch {}
|
||||
|
||||
const axiosIns = axios.create({
|
||||
baseURL: `http://${server}`,
|
||||
headers: secret ? { Authorization: `Bearer ${secret}` } : {},
|
||||
timeout: 15000,
|
||||
});
|
||||
axiosIns.interceptors.response.use((r) => r.data);
|
||||
return axiosIns;
|
||||
}
|
||||
|
||||
/// initialize some information
|
||||
/// enable force update axiosIns
|
||||
export const getAxios = async (force: boolean = false) => {
|
||||
if (!instancePromise || force) {
|
||||
instancePromise = getInstancePromise();
|
||||
}
|
||||
return instancePromise;
|
||||
};
|
||||
|
||||
// Get current IP and geolocation information (refactored IP detection with service-specific mappings)
|
||||
interface IpInfo {
|
||||
@ -213,6 +173,7 @@ export const getIpInfo = async (): Promise<IpInfo> => {
|
||||
timeoutId = setTimeout(() => {
|
||||
timeoutController.abort();
|
||||
}, service.timeout || serviceTimeout);
|
||||
console.debug("Fetching IP information...");
|
||||
|
||||
const response = await fetch(service.url, {
|
||||
method: "GET",
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user