);
-}
+};
-export default Root;
+export default HomeLayout;
diff --git a/web/src/main.tsx b/web/src/main.tsx
index 6cdab151..c3a7680c 100644
--- a/web/src/main.tsx
+++ b/web/src/main.tsx
@@ -9,6 +9,7 @@ import "./css/global.css";
import "./css/tailwind.css";
import "./helpers/polyfill";
import "./i18n";
+import CommonContextProvider from "./layouts/CommonContextProvider";
import "./less/highlight.less";
import router from "./router";
import store from "./store";
@@ -25,7 +26,9 @@ import theme from "./theme";
root.render(
-
+
+
+
,
diff --git a/web/src/router/AuthStatusProvider.tsx b/web/src/router/AuthStatusProvider.tsx
deleted file mode 100644
index a3c73846..00000000
--- a/web/src/router/AuthStatusProvider.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { useEffect } from "react";
-import useCurrentUser from "@/hooks/useCurrentUser";
-import useNavigateTo from "@/hooks/useNavigateTo";
-
-interface Props {
- children: React.ReactNode;
-}
-
-const AuthStatusProvider = (props: Props) => {
- const navigateTo = useNavigateTo();
- const currentUser = useCurrentUser();
-
- useEffect(() => {
- if (!currentUser) {
- // If not logged in, redirect to explore page by default.
- navigateTo("/explore");
- }
- }, []);
-
- if (!currentUser) {
- return null;
- }
-
- return <>{props.children}>;
-};
-
-export default AuthStatusProvider;
diff --git a/web/src/router/index.tsx b/web/src/router/index.tsx
index 45647e00..68f68d31 100644
--- a/web/src/router/index.tsx
+++ b/web/src/router/index.tsx
@@ -1,11 +1,9 @@
import { lazy } from "react";
import { createBrowserRouter } from "react-router-dom";
import App from "@/App";
+import HomeLayout from "@/layouts/HomeLayout";
import SuspenseWrapper from "@/layouts/SuspenseWrapper";
-import { initialGlobalState } from "@/store/module";
-import AuthStatusProvider from "./AuthStatusProvider";
-const Root = lazy(() => import("@/layouts/Root"));
const SignIn = lazy(() => import("@/pages/SignIn"));
const SignUp = lazy(() => import("@/pages/SignUp"));
const AuthCallback = lazy(() => import("@/pages/AuthCallback"));
@@ -22,23 +20,22 @@ const About = lazy(() => import("@/pages/About"));
const NotFound = lazy(() => import("@/pages/NotFound"));
const PermissionDenied = lazy(() => import("@/pages/PermissionDenied"));
-const initialGlobalStateLoader = async () => {
- try {
- await initialGlobalState();
- } catch (error) {
- // do nothing.
- }
- return null;
-};
+export enum Routes {
+ HOME = "/",
+ TIMELINE = "/timeline",
+ RESOURCES = "/resources",
+ INBOX = "/inbox",
+ ARCHIVED = "/archived",
+ SETTING = "/setting",
+}
const router = createBrowserRouter([
{
path: "/",
element:
,
- loader: () => initialGlobalStateLoader(),
children: [
{
- path: "/auth/",
+ path: "/auth",
element:
,
children: [
{
@@ -57,55 +54,31 @@ const router = createBrowserRouter([
},
{
path: "/",
- element:
,
+ element:
,
children: [
{
- path: "",
- element: (
-
-
-
- ),
- },
- {
- path: "timeline",
- element: (
-
-
-
- ),
- },
- {
- path: "resources",
- element: (
-
-
-
- ),
- },
- {
- path: "inbox",
- element: (
-
-
-
- ),
- },
- {
- path: "archived",
- element: (
-
-
-
- ),
- },
- {
- path: "setting",
- element: (
-
-
-
- ),
+ path: Routes.HOME,
+ element:
,
+ },
+ {
+ path: Routes.TIMELINE,
+ element:
,
+ },
+ {
+ path: Routes.RESOURCES,
+ element:
,
+ },
+ {
+ path: Routes.INBOX,
+ element:
,
+ },
+ {
+ path: Routes.ARCHIVED,
+ element:
,
+ },
+ {
+ path: Routes.SETTING,
+ element:
,
},
{
path: "explore",