base vpn android plugin

This commit is contained in:
2026-03-12 17:37:47 +07:00
parent c765246d79
commit 2f7462e299
28 changed files with 874 additions and 132 deletions
+17 -5
View File
@@ -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