mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-03-14 17:41:22 +08:00
fix: wait for zustand hydration before workspace initialization
Fix blank page on first load via `ccw view` by waiting for zustand persist hydration to complete before initializing workspace. - Add _hasHydrated state tracking in workflowStore - Add setHasHydrated action to mark hydration complete - Update AppShell to wait for hydration before calling switchWorkspace - Ensures projectPath is properly restored from localStorage before queries execute
This commit is contained in:
@@ -56,6 +56,9 @@ const initialState: WorkflowState = {
|
||||
// Filters and sorting
|
||||
filters: defaultFilters,
|
||||
sorting: defaultSorting,
|
||||
|
||||
// Hydration state (internal)
|
||||
_hasHydrated: false,
|
||||
};
|
||||
|
||||
export const useWorkflowStore = create<WorkflowStore>()(
|
||||
@@ -414,6 +417,10 @@ export const useWorkflowStore = create<WorkflowStore>()(
|
||||
set({ _invalidateQueriesCallback: callback }, false, 'registerQueryInvalidator');
|
||||
},
|
||||
|
||||
setHasHydrated: (state: boolean) => {
|
||||
set({ _hasHydrated: state }, false, 'setHasHydrated');
|
||||
},
|
||||
|
||||
// ========== Filters and Sorting ==========
|
||||
|
||||
setFilters: (filters: Partial<WorkflowFilters>) => {
|
||||
@@ -538,6 +545,8 @@ export const useWorkflowStore = create<WorkflowStore>()(
|
||||
console.error('[WorkflowStore] Rehydration error:', error);
|
||||
return;
|
||||
}
|
||||
// Mark hydration as complete
|
||||
useWorkflowStore.getState().setHasHydrated(true);
|
||||
if (state?.projectPath) {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// eslint-disable-next-line no-console
|
||||
|
||||
Reference in New Issue
Block a user