diff --git a/src/App.tsx b/src/App.tsx
index 39c459b..2ac140a 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -8,6 +8,7 @@ import { useNavigate } from "react-router-dom";
import { useSnapshot } from "valtio";
import { app, server } from "./states/app";
import { Twindow } from "./components/universal/Twindow";
+import { jump } from "@utils/path";
function App() {
const appSnapshot = useSnapshot(app);
@@ -18,29 +19,29 @@ function App() {
apiClient("/ping")
.then(() => {})
.catch(() => {
- if (window.location.pathname != "/status") {
+ if (window.location.pathname != jump("/status")) {
Twindow({
title: "通信错误 - 跳转服务状态页",
text: "无法与后端通信,请检查服务状态",
});
- navigate("/status");
+ navigate(jump(jump("/status")));
}
})
.then(() => {
apiClient("/user/check")
.then(() => {
- (window.location.pathname == "/" ||
- window.location.pathname == "/login" ||
- window.location.pathname == "/register") &&
- navigate("/dashboard");
+ (window.location.pathname == jump("/") ||
+ window.location.pathname == jump("/login") ||
+ window.location.pathname == jump("/register")) &&
+ navigate(jump("/dashboard"));
app.authenticated = true;
app.showSidebar = true;
})
.catch(() => {
- window.location.pathname != "/login" &&
- window.location.pathname != "/register" &&
- window.location.pathname != "/status" &&
- navigate("/login");
+ window.location.pathname != jump("/login") &&
+ window.location.pathname != jump("/register") &&
+ window.location.pathname != jump("/status") &&
+ navigate(jump("/login"));
});
apiClient("/category").then((res) => {
server.categories = res.data;
diff --git a/src/components/widgets/Sidebar/index.tsx b/src/components/widgets/Sidebar/index.tsx
index e7ec399..90664ab 100644
--- a/src/components/widgets/Sidebar/index.tsx
+++ b/src/components/widgets/Sidebar/index.tsx
@@ -19,7 +19,7 @@ import { Space } from "@components/universal/Space";
import styles from "./index.module.css";
import { SidebarItem } from "./item";
import { motion } from "framer-motion";
-import { getStorage, removeStorage, setStorage } from "@utils/storage";
+import { getStorage, setStorage } from "@utils/storage";
import { useWindowSize } from "react-use";
import itemStyle from "./item/index.module.css";
import { useSnapshot } from "valtio";
@@ -27,6 +27,7 @@ import { app } from "@states/app";
import { useNavigate } from "react-router-dom";
import { apiClient } from "@utils/request";
import { removeCookie } from "@utils/cookie";
+import { jump } from "@utils/path";
const Links = () => {
const authenticated = useSnapshot(app).authenticated;
@@ -46,39 +47,39 @@ const Links = () => {
[styles.disabled]: disabled,
})}
>
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
{
}).then(() => {
removeCookie("token")
app.authenticated = false;
- navigate("/login")
+ navigate(jump("/login"))
}).catch((e) => {
console.log(e)
})
diff --git a/src/pages/Categories/index.tsx b/src/pages/Categories/index.tsx
index 282bc51..638b376 100644
--- a/src/pages/Categories/index.tsx
+++ b/src/pages/Categories/index.tsx
@@ -135,7 +135,7 @@ export const CategoriesPage: BasicPage = () => {
});
console.log(modalCreateData.id);
handleRemoveSelect();
- // navigate("/categories")
+ // navigate(jump("/categories"))
// window.location.reload()
});
setLoading(true);
diff --git a/src/pages/Comments/index.tsx b/src/pages/Comments/index.tsx
index 6261866..92eb2a3 100644
--- a/src/pages/Comments/index.tsx
+++ b/src/pages/Comments/index.tsx
@@ -16,6 +16,7 @@ import { mailAvatar } from "@utils/avatar";
import { Modal, ModalBody } from "@components/universal/Modal";
import { Input, Textarea } from "@pages/Write/Input";
import { Selects } from "@components/universal/Select";
+import { jump } from "@utils/path";
const tabsList = [{
name: "待审核",
@@ -72,7 +73,7 @@ export const CommentsPage: BasicPage = () => {
useEffect(() => {
// setLoading(true)
setInSideLoading(true);
- navigate(`/comments?status=${tab}&page=${page}`)
+ navigate(jump(`/comments?status=${tab}&page=${page}`))
handleRequest(tab, page).then((res) => {
setComments(res)
setInSideLoading(false);
@@ -243,7 +244,7 @@ export const CommentsPage: BasicPage = () => {
{
- navigate(`/write/post?id=${item.post.id}`)
+ navigate(jump(`/write/post?id=${item.post.id}`))
}}
style={{ cursor: "pointer" }}
>{item.post.title}
diff --git a/src/pages/Friends/index.tsx b/src/pages/Friends/index.tsx
index 148a03a..7d6255a 100644
--- a/src/pages/Friends/index.tsx
+++ b/src/pages/Friends/index.tsx
@@ -31,6 +31,7 @@ import {
import postStyles from "@pages/Posts/Index/index.module.css";
import { Input, Textarea } from "@pages/Write/Input";
import styles from "./index.module.css";
+import { jump } from "@utils/path";
const FriendsStatus = ["Approved", "Pending", "Spam", "Trash"];
const FriendsFormFront = [
@@ -87,7 +88,7 @@ export const FriendsPage: BasicPage = () => {
useEffect(() => {
if (status !== "0" && status !== "1" && status !== "2" && status !== "3") {
setTab(0);
- navigate("/friends?status=0");
+ navigate(jump("/friends?status=0"));
} else {
setTab(Number(status));
}
@@ -127,7 +128,7 @@ export const FriendsPage: BasicPage = () => {
onConfirm={() => {
const REQUEST = {
method: select[0] ? "PUT" : "POST",
- URL: select[0] ? `/friends/${select[0]}` : "/friends",
+ URL: select[0] ? jump(`/friends/${select[0]}`) : jump("/friends"),
title: select[0] ? "修改成功" : "添加成功",
};
apiClient(REQUEST.URL, {
@@ -564,7 +565,7 @@ export const FriendsPage: BasicPage = () => {
defaultIndex={tab}
onChange={(index) => {
setTab(index);
- navigate(`/friends?status=${index}`);
+ navigate(jump(`/friends?status=${index}`));
}}
>
diff --git a/src/pages/Login/index.tsx b/src/pages/Login/index.tsx
index 9279331..a7af4b6 100644
--- a/src/pages/Login/index.tsx
+++ b/src/pages/Login/index.tsx
@@ -8,6 +8,7 @@ import { apiClient } from "@utils/request";
import { Twindow } from "@components/universal/Twindow";
import { app } from "@states/app";
import { setCookie } from "@utils/cookie";
+import { jump } from "@utils/path";
export const Login: BasicPage = () => {
const [loading, setLoading] = useState(false);
@@ -17,7 +18,7 @@ export const Login: BasicPage = () => {
useEffect(() => {
apiClient("/user/master/info").catch(() => {
- navigate("/register");
+ navigate(jump("/register"));
})
}, []);
@@ -46,7 +47,7 @@ export const Login: BasicPage = () => {
image: res.avatar,
});
app.authenticated = true;
- navigate("/dashboard");
+ navigate(jump("/dashboard"));
window.location.reload();
})
.catch((res) => {
diff --git a/src/pages/Register/index.tsx b/src/pages/Register/index.tsx
index fbd3def..efb71b4 100644
--- a/src/pages/Register/index.tsx
+++ b/src/pages/Register/index.tsx
@@ -8,6 +8,7 @@ import { apiClient } from "@utils/request";
import { Twindow } from "@components/universal/Twindow";
import { app } from "@states/app";
import { setCookie } from "@utils/cookie";
+import { jump } from "@utils/path";
// nickname, description, email, avatar, password, username
@@ -21,7 +22,7 @@ export const RegisterPage: BasicPage = () => {
apiClient("/user/master/info")
.then((res) => {
if (res) {
- navigate("/dashboard");
+ navigate(jump("/dashboard"));
}
}).catch(() => {
return;
@@ -61,7 +62,7 @@ export const RegisterPage: BasicPage = () => {
image: res.avatar,
});
app.authenticated = true;
- navigate("/dashboard");
+ navigate(jump("/dashboard"));
window.location.reload();
})
.catch((res) => {
diff --git a/src/pages/Settings/index.tsx b/src/pages/Settings/index.tsx
index d1c29a2..9f2bd4f 100644
--- a/src/pages/Settings/index.tsx
+++ b/src/pages/Settings/index.tsx
@@ -16,6 +16,7 @@ import { getQueryVariable } from "@utils/url";
import { useNavigate } from "react-router-dom";
import { Tags } from "@components/universal/Tags";
import { Toggle } from "@components/universal/Toggle";
+import { jump } from "@utils/path";
const tabsAPI = ["/user/master/info", "/configs"]
@@ -28,7 +29,7 @@ export const SettingsPage: BasicPage = () => {
useEffect(() => {
// setLoading(true);
- navigate(`/settings?tab=${_tabs}`)
+ navigate(jump(`/settings?tab=${_tabs}`))
apiClient(tabsAPI[_tabs]).then((res) => {
setData(res);
});
diff --git a/src/router/router.tsx b/src/router/router.tsx
index 85a23df..a35b413 100644
--- a/src/router/router.tsx
+++ b/src/router/router.tsx
@@ -9,7 +9,9 @@
import { CommentsPage } from "@pages/Comments";
import { RegisterPage } from "@pages/Register";
-import { Route, Routes } from "react-router-dom";
+import { jump } from "@utils/path";
+import { useEffect } from "react";
+import { Route, Routes, useNavigate } from "react-router-dom";
import { CategoriesPage } from "../pages/Categories";
import { FriendsPage } from "../pages/Friends";
import { Home } from "../pages/Home";
@@ -24,33 +26,34 @@ import { EditorPage } from "../pages/Write";
export const AppRouter = () => {
return (
- } />
- } />
+ } />
+ } />
- } />
- } />
+ } />
+ } />
- } />
- } />
- } />
+ } />
+ } />
+ } />
- } />
- } />
+ } />
+ } />
- } />
- } />
- } />
+ } />
+ } />
+ } />
- } />
- } />
+ } />
+ } />
- } />
+ } />
+ } />
);
};
const NotFoundPage = () => {
- window.location.href = "/dashboard";
+ window.location.href = jump("/dashboard");
return <>>;
};
diff --git a/src/types.d.ts b/src/types.d.ts
index 1b82366..100fc83 100644
--- a/src/types.d.ts
+++ b/src/types.d.ts
@@ -4,6 +4,7 @@ declare global {
}
export interface Window {
MOG_API: string;
+ MOG_BASE: string;
}
}
@@ -15,4 +16,4 @@ interface HTMLInputElement extends HTMLElement {
value: string;
}
-export {};
+export {};
\ No newline at end of file
diff --git a/src/utils/path.ts b/src/utils/path.ts
new file mode 100644
index 0000000..5cfc596
--- /dev/null
+++ b/src/utils/path.ts
@@ -0,0 +1,4 @@
+export function jump(p: string){
+ const base = window.MOG_BASE || ''
+ return `${base}${p}`
+}
\ No newline at end of file