This commit is contained in:
2026-04-25 15:09:09 +07:00
parent 5ffc4a34a7
commit 19ac192866
4 changed files with 104 additions and 10 deletions
+14 -4
View File
@@ -1,5 +1,6 @@
import { useState, useEffect } from "react";
import { Shield, Server, Activity, Plus, Power, RefreshCw } from "lucide-react";
import { TOKEN_KEY } from "./api";
interface VpnNode {
id: string;
@@ -22,10 +23,15 @@ export default function AdminDashboard() {
const fetchNodes = async () => {
try {
// Пока стучимся в публичный роут, чтобы увидеть список
const res = await fetch("/api/nodes");
const token = localStorage.getItem(TOKEN_KEY);
const res = await fetch("/api/nodes", {
headers: { Authorization: `Bearer ${token}` },
});
if (!res.ok) throw new Error("API Error");
const data = await res.json();
setNodes(data);
if (Array.isArray(data)) {
setNodes(data);
}
} catch (e) {
console.error(e);
} finally {
@@ -40,9 +46,13 @@ export default function AdminDashboard() {
const handleAddNode = async (e: React.FormEvent) => {
e.preventDefault();
try {
const token = localStorage.getItem(TOKEN_KEY);
const res = await fetch("/api/admin/nodes", {
method: "POST",
headers: { "Content-Type": "application/json" },
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({
name,
country_code: code,
+6 -3
View File
@@ -116,6 +116,11 @@ const UI_PLANS = [
{ name: "MAINFRAME", price: 20, price_usd: 20, price_rub: 2000 },
];
const getLang = (): "en" | "ru" => {
const l = localStorage.getItem("lang");
return l === "ru" ? "ru" : "en";
};
export default function Profile() {
const [data, setData] = useState<any>(null);
const [loading, setLoading] = useState(true);
@@ -124,9 +129,7 @@ export default function Profile() {
const [showPlans, setShowPlans] = useState(false);
const navigate = useNavigate();
const [lang, setLang] = useState<"en" | "ru">(
(localStorage.getItem("lang") as "en" | "ru") || "en",
);
const [lang, setLang] = useState<"en" | "ru">(getLang);
const t = DICT[lang];
const botUsername = import.meta.env.VITE_BOT_USERNAME || "";