base vpn android plugin
This commit is contained in:
@@ -4,26 +4,37 @@ import { Power } from "lucide-react";
|
||||
import { cn } from "@/lib/utils";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { invoke } from "@tauri-apps/api/core";
|
||||
import { TunnelConfig, startVpn, stopVpn } from "vpn-plugin";
|
||||
|
||||
export function VpnControl() {
|
||||
const [status, setStatus] = useState<"idle" | "connecting" | "connected">(
|
||||
"idle",
|
||||
);
|
||||
|
||||
const handleToggle = async () => {
|
||||
try {
|
||||
if (status === "idle") {
|
||||
setStatus("connecting");
|
||||
await invoke("start_vpn_android", {
|
||||
remoteAddress: "62.60.244.156",
|
||||
});
|
||||
|
||||
// Подготавливаем конфигурацию (замените на нужные вам значения)
|
||||
const config: TunnelConfig = {
|
||||
address: "10.0.0.2",
|
||||
prefix: 24,
|
||||
dns: "8.8.8.8",
|
||||
mtu: 1400,
|
||||
};
|
||||
|
||||
// Вызываем вашу функцию-обертку
|
||||
// ip и port берем из вашего примера
|
||||
await startVpn(config, "62.60.244.156", 443);
|
||||
|
||||
setStatus("connected");
|
||||
} else {
|
||||
// Вызываем функцию для остановки
|
||||
await stopVpn();
|
||||
setStatus("idle");
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Ошибка VPN:", error);
|
||||
console.error("Ошибка управления VPN:", error);
|
||||
setStatus("idle");
|
||||
}
|
||||
};
|
||||
@@ -93,6 +104,7 @@ export function VpnControl() {
|
||||
</svg>
|
||||
<button
|
||||
onClick={handleToggle}
|
||||
disabled={status === "connecting"}
|
||||
className={cn(
|
||||
"relative size-40 rounded-full transition-all duration-700 flex items-center justify-center",
|
||||
isActive
|
||||
|
||||
Reference in New Issue
Block a user