fix(canvas): 画布同步 - 避免版本冲突循环并合并重复提示
This commit is contained in:
1 parent
96e0051a5c
commit
ab58892586
4 files changed
+112
-9
No files matched your search
+7
-3
@@ -1,9 +1,10 @@
|
||||
import { lazy, Suspense, type ReactNode } from "react";
|
||||
import { createBrowserRouter, Navigate, Outlet } from "react-router";
|
||||
import { createBrowserRouter, Navigate, Outlet, useLocation } from "react-router";
|
||||
|
||||
import { RequireAuth } from "@/components/auth/require-auth";
|
||||
import { FullScreenLoader, WorkspaceRouteLoader } from "@/components/ui/aceternity/full-screen-loader";
|
||||
import { loadAssetsPage, loadCanvasPage, loadCanvasProjectPage, loadCreatePage, loadProjectDetailPage, loadProjectsPage, loadWalletPage } from "@/lib/workspace-route-modules";
|
||||
import { CanvasRefreshShell } from "@/pages/canvas/canvas-refresh-shell";
|
||||
import { AuthScene } from "@/pages/auth/auth-scene";
|
||||
import RouteErrorPage from "@/pages/route-error";
|
||||
|
||||
@@ -62,7 +63,10 @@ function fullScreenDeferred(element: ReactNode) {
|
||||
}
|
||||
|
||||
function AuthenticatedWorkspaceLayout() {
|
||||
return <RequireAuth>{fullScreenDeferred(<UserLayout><Outlet /></UserLayout>)}</RequireAuth>;
|
||||
const { pathname } = useLocation();
|
||||
const isCanvasProjectRoute = pathname.startsWith("/canvas/");
|
||||
const fallback = isCanvasProjectRoute ? <CanvasRefreshShell /> : <FullScreenLoader label="正在打开创作空间" detail="准备当前页面" />;
|
||||
return <RequireAuth><Suspense fallback={fallback}><UserLayout><Outlet /></UserLayout></Suspense></RequireAuth>;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,7 +181,7 @@ export const router = createBrowserRouter([
|
||||
),
|
||||
},
|
||||
{ path: "/canvas", element: <RequireAuth>{deferred(<CanvasPage />)}</RequireAuth> },
|
||||
{ path: "/canvas/:id", element: <RequireAuth>{deferred(<CanvasProjectPage />)}</RequireAuth> },
|
||||
{ path: "/canvas/:id", element: <RequireAuth><CanvasProjectPage /></RequireAuth> },
|
||||
{
|
||||
path: "/admin",
|
||||
element: <RequireAuth>{deferred(<AdminPage />)}</RequireAuth>,
|
||||
|
||||
Reference in new issue
Block a user