refactor: reorganize imports and remove unused axios instance code

This commit is contained in:
Tunglies 2025-11-10 02:12:16 +08:00
parent a8fe5a71f7
commit 204bfa36e5
No known key found for this signature in database
GPG Key ID: B9B01B389469B3E8
3 changed files with 4 additions and 45 deletions

View File

@ -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";

View File

@ -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");

View File

@ -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",