fix: reset project caches on context switches
Reset project and repository-group loading, error, and initialized flags when contexts change so stale initialization state cannot suppress fresh context data.
This commit is contained in:
parent
192f2ea497
commit
edcb0a7433
1 changed files with 20 additions and 0 deletions
|
|
@ -48,7 +48,13 @@ function getEmptyContextState(): Partial<AppState> {
|
||||||
return {
|
return {
|
||||||
...getFullResetState(),
|
...getFullResetState(),
|
||||||
projects: [],
|
projects: [],
|
||||||
|
projectsLoading: false,
|
||||||
|
projectsInitialized: false,
|
||||||
|
projectsError: null,
|
||||||
repositoryGroups: [],
|
repositoryGroups: [],
|
||||||
|
repositoryGroupsLoading: false,
|
||||||
|
repositoryGroupsInitialized: false,
|
||||||
|
repositoryGroupsError: null,
|
||||||
sessions: [],
|
sessions: [],
|
||||||
notifications: [],
|
notifications: [],
|
||||||
unreadCount: 0,
|
unreadCount: 0,
|
||||||
|
|
@ -148,8 +154,14 @@ function validateSnapshot(
|
||||||
return {
|
return {
|
||||||
// Restored from snapshot (use fresh data for projects/repoGroups)
|
// Restored from snapshot (use fresh data for projects/repoGroups)
|
||||||
projects: freshProjects,
|
projects: freshProjects,
|
||||||
|
projectsLoading: false,
|
||||||
|
projectsInitialized: true,
|
||||||
|
projectsError: null,
|
||||||
selectedProjectId,
|
selectedProjectId,
|
||||||
repositoryGroups: freshRepoGroups,
|
repositoryGroups: freshRepoGroups,
|
||||||
|
repositoryGroupsLoading: false,
|
||||||
|
repositoryGroupsInitialized: true,
|
||||||
|
repositoryGroupsError: null,
|
||||||
selectedRepositoryId,
|
selectedRepositoryId,
|
||||||
selectedWorktreeId,
|
selectedWorktreeId,
|
||||||
viewMode: snapshot.viewMode,
|
viewMode: snapshot.viewMode,
|
||||||
|
|
@ -306,7 +318,13 @@ export const createContextSlice: StateCreator<AppState, [], [], ContextSlice> =
|
||||||
if (targetSnapshot) {
|
if (targetSnapshot) {
|
||||||
set({
|
set({
|
||||||
projects: targetSnapshot.projects,
|
projects: targetSnapshot.projects,
|
||||||
|
projectsLoading: false,
|
||||||
|
projectsInitialized: true,
|
||||||
|
projectsError: null,
|
||||||
repositoryGroups: targetSnapshot.repositoryGroups,
|
repositoryGroups: targetSnapshot.repositoryGroups,
|
||||||
|
repositoryGroupsLoading: false,
|
||||||
|
repositoryGroupsInitialized: true,
|
||||||
|
repositoryGroupsError: null,
|
||||||
selectedProjectId: targetSnapshot.selectedProjectId,
|
selectedProjectId: targetSnapshot.selectedProjectId,
|
||||||
selectedRepositoryId: targetSnapshot.selectedRepositoryId,
|
selectedRepositoryId: targetSnapshot.selectedRepositoryId,
|
||||||
selectedWorktreeId: targetSnapshot.selectedWorktreeId,
|
selectedWorktreeId: targetSnapshot.selectedWorktreeId,
|
||||||
|
|
@ -360,7 +378,9 @@ export const createContextSlice: StateCreator<AppState, [], [], ContextSlice> =
|
||||||
set({
|
set({
|
||||||
...getEmptyContextState(),
|
...getEmptyContextState(),
|
||||||
projects: freshProjects,
|
projects: freshProjects,
|
||||||
|
projectsInitialized: true,
|
||||||
repositoryGroups: freshRepoGroups,
|
repositoryGroups: freshRepoGroups,
|
||||||
|
repositoryGroupsInitialized: true,
|
||||||
activeContextId: targetContextId,
|
activeContextId: targetContextId,
|
||||||
isContextSwitching: false,
|
isContextSwitching: false,
|
||||||
targetContextId: null,
|
targetContextId: null,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue