合并主分支最新改动
同步 master 的最新功能与修复 保留 AI 游戏创作客户端分支现有实现 # Conflicts: # docs/project-memory/shared-memory/decision-log.md # docs/project-memory/shared-memory/pitfalls.md # scripts/dev.mjs # server-rs/crates/api-server/src/editor_screen_background_decision.rs # server-rs/crates/api-server/src/modules/admin.rs # src/components/rpg-entry/RpgEntryHomeView.tsx
This commit is contained in:
@@ -61,6 +61,7 @@ export function useRpgEntryBootstrap(
|
||||
const platformTabBootstrapUserIdRef = useRef<string | null | undefined>(
|
||||
undefined,
|
||||
);
|
||||
const hasCompletedPlatformBootstrapRef = useRef(false);
|
||||
const hasExplicitPlatformTabSelectionRef = useRef(false);
|
||||
|
||||
const [savedCustomWorldEntries, setSavedCustomWorldEntries] = useState<
|
||||
@@ -234,12 +235,16 @@ export function useRpgEntryBootstrap(
|
||||
}
|
||||
|
||||
void (async () => {
|
||||
const shouldShowBlockingLoading =
|
||||
!hasCompletedPlatformBootstrapRef.current;
|
||||
setHistoryEntries([]);
|
||||
setHistoryError(null);
|
||||
setSaveError(null);
|
||||
setIsLoadingPlatform(true);
|
||||
setIsLoadingPlatform(shouldShowBlockingLoading);
|
||||
setPlatformError(null);
|
||||
setIsLoadingDashboard(canReadProtectedData);
|
||||
setIsLoadingDashboard(
|
||||
canReadProtectedData && shouldShowBlockingLoading,
|
||||
);
|
||||
setDashboardError(null);
|
||||
if (!canReadProtectedData) {
|
||||
setSavedCustomWorldEntries([]);
|
||||
@@ -358,6 +363,7 @@ export function useRpgEntryBootstrap(
|
||||
}
|
||||
} finally {
|
||||
if (isActive) {
|
||||
hasCompletedPlatformBootstrapRef.current = true;
|
||||
setIsLoadingPlatform(false);
|
||||
setIsLoadingDashboard(false);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user