diff --git a/packages/web/src/stores/authStore.ts b/packages/web/src/stores/authStore.ts index 2c2a1788..e2cc341e 100644 --- a/packages/web/src/stores/authStore.ts +++ b/packages/web/src/stores/authStore.ts @@ -31,7 +31,7 @@ interface AuthState { function resetUserStores() { clearSelfIds(); useChatStore.getState().clearAllMessages(); - useSpaceStore.getState().populateFromReady('', [], [], []); + useSpaceStore.getState().reset(); useSocialStore.getState().reset(); useVoiceStore.getState().resetSession(); useInstanceStore.getState().reset(); diff --git a/packages/web/src/stores/spaceStore.ts b/packages/web/src/stores/spaceStore.ts index 397e4543..a2d71ae1 100644 --- a/packages/web/src/stores/spaceStore.ts +++ b/packages/web/src/stores/spaceStore.ts @@ -82,6 +82,7 @@ interface SpaceState { removeInstanceSpaces: (origin: string) => void; transferOwnership: (spaceId: string, newOwnerId: string) => Promise; findExistingDmForUser: (targetUser: { id: string; homeUserId?: string | null }) => { dm: DmChannel; origin: string } | null; + reset: () => void; } /** @@ -129,6 +130,28 @@ export const useSpaceStore = create((set, get) => ({ categoryOriginMap: new Map(), _layoutUpdatedAt: 0, + reset: () => { + _myUserIdByOrigin.clear(); + set({ + spaces: [], + currentSpaceId: null, + channels: [], + categories: [], + members: [], + roles: [], + folders: [], + spaceLayout: null, + dmChannels: [], + channelToSpaceMap: new Map(), + channelLastMessageIds: new Map(), + spacePermissions: new Map(), + channelPermissions: new Map(), + channelOriginMap: new Map(), + categoryOriginMap: new Map(), + _layoutUpdatedAt: 0, + }); + }, + setSpaces: (spaces) => set({ spaces }), setCurrentSpace: (spaceId) => set({ currentSpaceId: spaceId }), setChannels: (channels) => set({ channels }),