mirror of
https://github.com/usememos/memos.git
synced 2025-06-05 22:09:59 +02:00
fix: remove lazy import components
This commit is contained in:
@@ -24,7 +24,7 @@ const CommonContext = createContext<Context>({
|
|||||||
const CommonContextProvider = ({ children }: { children: React.ReactNode }) => {
|
const CommonContextProvider = ({ children }: { children: React.ReactNode }) => {
|
||||||
const workspaceSettingStore = useWorkspaceSettingStore();
|
const workspaceSettingStore = useWorkspaceSettingStore();
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const [loading, setLoading] = useState(true);
|
const [initialized, setInitialized] = useState(false);
|
||||||
const [commonContext, setCommonContext] = useState<Pick<Context, "locale" | "appearance" | "profile">>({
|
const [commonContext, setCommonContext] = useState<Pick<Context, "locale" | "appearance" | "profile">>({
|
||||||
locale: "en",
|
locale: "en",
|
||||||
appearance: "system",
|
appearance: "system",
|
||||||
@@ -56,7 +56,7 @@ const CommonContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
Promise.all([initialWorkspace(), initialUser()]).then(() => setLoading(false));
|
Promise.all([initialWorkspace(), initialUser()]).then(() => setInitialized(true));
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@@ -67,7 +67,7 @@ const CommonContextProvider = ({ children }: { children: React.ReactNode }) => {
|
|||||||
setAppearance: (appearance: string) => setCommonContext({ ...commonContext, appearance }),
|
setAppearance: (appearance: string) => setCommonContext({ ...commonContext, appearance }),
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{loading ? null : <>{children}</>}
|
{!initialized ? null : <>{children}</>}
|
||||||
</CommonContext.Provider>
|
</CommonContext.Provider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
import { Button, IconButton, Tooltip } from "@mui/joy";
|
import { Button, IconButton, Tooltip } from "@mui/joy";
|
||||||
import clsx from "clsx";
|
import clsx from "clsx";
|
||||||
import { Suspense, useEffect } from "react";
|
import { Suspense, useEffect, useState } from "react";
|
||||||
import { Outlet, useLocation } from "react-router-dom";
|
import { Outlet, useLocation } from "react-router-dom";
|
||||||
import useLocalStorage from "react-use/lib/useLocalStorage";
|
import useLocalStorage from "react-use/lib/useLocalStorage";
|
||||||
import Icon from "@/components/Icon";
|
import Icon from "@/components/Icon";
|
||||||
@@ -17,6 +17,7 @@ const HomeLayout = () => {
|
|||||||
const { sm } = useResponsiveWidth();
|
const { sm } = useResponsiveWidth();
|
||||||
const currentUser = useCurrentUser();
|
const currentUser = useCurrentUser();
|
||||||
const [collapsed, setCollapsed] = useLocalStorage<boolean>("navigation-collapsed", false);
|
const [collapsed, setCollapsed] = useLocalStorage<boolean>("navigation-collapsed", false);
|
||||||
|
const [initialized, setInitialized] = useState(false);
|
||||||
|
|
||||||
// Redirect to explore page if not logged in.
|
// Redirect to explore page if not logged in.
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -27,10 +28,14 @@ const HomeLayout = () => {
|
|||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
navigateTo(Routes.EXPLORE);
|
navigateTo(Routes.EXPLORE);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
setInitialized(true);
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
return (
|
return !initialized ? (
|
||||||
|
<Loading />
|
||||||
|
) : (
|
||||||
<div className="w-full min-h-full">
|
<div className="w-full min-h-full">
|
||||||
<div className={clsx("w-full transition-all mx-auto flex flex-row justify-center items-start", collapsed ? "sm:pl-16" : "sm:pl-56")}>
|
<div className={clsx("w-full transition-all mx-auto flex flex-row justify-center items-start", collapsed ? "sm:pl-16" : "sm:pl-56")}>
|
||||||
{sm && (
|
{sm && (
|
||||||
|
@@ -2,12 +2,12 @@ import { Suspense } from "react";
|
|||||||
import { Outlet } from "react-router-dom";
|
import { Outlet } from "react-router-dom";
|
||||||
import Loading from "@/pages/Loading";
|
import Loading from "@/pages/Loading";
|
||||||
|
|
||||||
function SuspenseWrapper() {
|
const SuspenseWrapper = () => {
|
||||||
return (
|
return (
|
||||||
<Suspense fallback={<Loading />}>
|
<Suspense fallback={<Loading />}>
|
||||||
<Outlet />
|
<Outlet />
|
||||||
</Suspense>
|
</Suspense>
|
||||||
);
|
);
|
||||||
}
|
};
|
||||||
|
|
||||||
export default SuspenseWrapper;
|
export default SuspenseWrapper;
|
||||||
|
@@ -23,7 +23,6 @@ interface State {
|
|||||||
|
|
||||||
const BASIC_SECTIONS: SettingSection[] = ["my-account", "preference"];
|
const BASIC_SECTIONS: SettingSection[] = ["my-account", "preference"];
|
||||||
const ADMIN_SECTIONS: SettingSection[] = ["member", "system", "storage", "sso"];
|
const ADMIN_SECTIONS: SettingSection[] = ["member", "system", "storage", "sso"];
|
||||||
|
|
||||||
const SECTION_ICON_MAP: Record<SettingSection, LucideIcon> = {
|
const SECTION_ICON_MAP: Record<SettingSection, LucideIcon> = {
|
||||||
"my-account": Icon.User,
|
"my-account": Icon.User,
|
||||||
preference: Icon.Cog,
|
preference: Icon.Cog,
|
||||||
|
@@ -1,24 +1,22 @@
|
|||||||
import { lazy } from "react";
|
|
||||||
import { createBrowserRouter } from "react-router-dom";
|
import { createBrowserRouter } from "react-router-dom";
|
||||||
import App from "@/App";
|
import App from "@/App";
|
||||||
import HomeLayout from "@/layouts/HomeLayout";
|
import HomeLayout from "@/layouts/HomeLayout";
|
||||||
import SuspenseWrapper from "@/layouts/SuspenseWrapper";
|
import SuspenseWrapper from "@/layouts/SuspenseWrapper";
|
||||||
|
import About from "@/pages/About";
|
||||||
const SignIn = lazy(() => import("@/pages/SignIn"));
|
import Archived from "@/pages/Archived";
|
||||||
const SignUp = lazy(() => import("@/pages/SignUp"));
|
import AuthCallback from "@/pages/AuthCallback";
|
||||||
const AuthCallback = lazy(() => import("@/pages/AuthCallback"));
|
import Explore from "@/pages/Explore";
|
||||||
const Explore = lazy(() => import("@/pages/Explore"));
|
import Home from "@/pages/Home";
|
||||||
const Home = lazy(() => import("@/pages/Home"));
|
import Inboxes from "@/pages/Inboxes";
|
||||||
const UserProfile = lazy(() => import("@/pages/UserProfile"));
|
import MemoDetail from "@/pages/MemoDetail";
|
||||||
const MemoDetail = lazy(() => import("@/pages/MemoDetail"));
|
import NotFound from "@/pages/NotFound";
|
||||||
const Archived = lazy(() => import("@/pages/Archived"));
|
import PermissionDenied from "@/pages/PermissionDenied";
|
||||||
const Timeline = lazy(() => import("@/pages/Timeline"));
|
import Resources from "@/pages/Resources";
|
||||||
const Resources = lazy(() => import("@/pages/Resources"));
|
import Setting from "@/pages/Setting";
|
||||||
const Inboxes = lazy(() => import("@/pages/Inboxes"));
|
import SignIn from "@/pages/SignIn";
|
||||||
const Setting = lazy(() => import("@/pages/Setting"));
|
import SignUp from "@/pages/SignUp";
|
||||||
const About = lazy(() => import("@/pages/About"));
|
import Timeline from "@/pages/Timeline";
|
||||||
const NotFound = lazy(() => import("@/pages/NotFound"));
|
import UserProfile from "@/pages/UserProfile";
|
||||||
const PermissionDenied = lazy(() => import("@/pages/PermissionDenied"));
|
|
||||||
|
|
||||||
export enum Routes {
|
export enum Routes {
|
||||||
HOME = "/",
|
HOME = "/",
|
||||||
|
Reference in New Issue
Block a user