diff --git a/web/src/App.tsx b/web/src/App.tsx
index 848e585cf5..09e55e4b42 100644
--- a/web/src/App.tsx
+++ b/web/src/App.tsx
@@ -1,10 +1,9 @@
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
-import { BrowserRouter, useRoutes } from "react-router-dom";
+import { BrowserRouter } from "react-router-dom";
import { ChakraProvider } from "@chakra-ui/react";
import { css, Global } from "@emotion/react";
import { loader } from "@monaco-editor/react";
-import { wrapUseRoutes } from "@sentry/react";
import * as Sentry from "@sentry/react";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { ClickToComponent } from "click-to-react-component";
@@ -17,7 +16,7 @@ import useSiteSettingStore from "./pages/siteSetting";
import theme from "./chakraTheme";
import darkTheme from "./chakraThemeDark";
import { CHAKRA_UI_COLOR_MODE_KEY } from "./constants";
-import routes from "./routes";
+import RouteElement from "./routes";
import "simplebar-react/dist/simplebar.min.css";
import "./App.css";
@@ -28,13 +27,6 @@ const GlobalStyles = css`
}
`;
-const useSentryRoutes = wrapUseRoutes(useRoutes);
-
-function RouteElement() {
- const element = useSentryRoutes(routes as any);
- return element;
-}
-
// Create a client
const queryClient = new QueryClient({
defaultOptions: {
diff --git a/web/src/pages/siteSetting.ts b/web/src/pages/siteSetting.ts
index 5a174877f3..56a5f05d20 100644
--- a/web/src/pages/siteSetting.ts
+++ b/web/src/pages/siteSetting.ts
@@ -16,7 +16,8 @@ type SITE_KEY =
| "laf_wechat_url"
| "laf_status_url"
| "laf_doc_url"
- | "laf_about_us_url";
+ | "laf_about_us_url"
+ | "enable_web_promo_page";
type State = {
siteSettings: {
diff --git a/web/src/routes/index.tsx b/web/src/routes/index.tsx
index 933cb7d70e..4bca186938 100644
--- a/web/src/routes/index.tsx
+++ b/web/src/routes/index.tsx
@@ -4,6 +4,9 @@ import AuthLayout from "@/layouts/Auth";
import BasicLayout from "@/layouts/Basic";
import FunctionLayout from "@/layouts/Function";
import TemplateLayout from "@/layouts/Template";
+import useSiteSettingStore from "@/pages/siteSetting";
+import { useRoutes } from "react-router-dom";
+import { wrapUseRoutes } from "@sentry/react";
const route404 = {
path: "*",
@@ -46,7 +49,6 @@ const routes = [
},
{
path: "/bind",
- // element: ,
auth: false,
children: [
{
@@ -147,7 +149,27 @@ function LazyElement(props: any) {
}
function dealRoutes(routesArr: any) {
+ const { siteSettings } = useSiteSettingStore();
if (routesArr && Array.isArray(routesArr) && routesArr.length > 0) {
+ if (siteSettings.enable_web_promo_page?.value === "false") {
+ for (let i = 0; i < routesArr.length; i++) {
+ const route = routesArr[i];
+ if (route.index) {
+ routesArr[i] = {
+ path: "/",
+ element: ,
+ auth: true,
+ children: [
+ {
+ path: "/",
+ element: () => import("@/pages/home/index"),
+ },
+ ],
+ };
+ }
+ }
+ }
+
routesArr.forEach((route) => {
if (route.element && typeof route.element == "function") {
const importFunc = route.element;
@@ -159,6 +181,13 @@ function dealRoutes(routesArr: any) {
});
}
}
-dealRoutes(routes);
-export default routes;
+function RouteElement() {
+ const useSentryRoutes = wrapUseRoutes(useRoutes);
+
+ dealRoutes(routes);
+ const element = useSentryRoutes(routes as any);
+ return element;
+}
+
+export default RouteElement;