Reset default state on server change

This commit is contained in:
jeffvli
2022-11-20 03:42:26 -08:00
parent 9d7b595e41
commit 892fa0e7b8
2 changed files with 17 additions and 1 deletions
@@ -21,7 +21,7 @@ import { Settings } from '@/renderer/features/settings';
import { usePermissions } from '@/renderer/features/shared';
import { UserList } from '@/renderer/features/users';
import { EditUserForm } from '@/renderer/features/users/components/edit-user-form';
import { useAuthStore } from '@/renderer/store';
import { useAppStore, useAuthStore } from '@/renderer/store';
export const AppMenu = () => {
const queryClient = useQueryClient();
@@ -30,6 +30,7 @@ export const AppMenu = () => {
const currentServer = useAuthStore((state) => state.currentServer);
const setCurrentServer = useAuthStore((state) => state.setCurrentServer);
const serverCredentials = useAuthStore((state) => state.serverCredentials);
const resetServerDefaults = useAppStore((state) => state.resetServerDefaults);
const permissions = usePermissions();
const { data: servers } = useServerList();
const userId = useAuthStore((state) => state.permissions.id);
@@ -94,6 +95,7 @@ export const AppMenu = () => {
const server = servers?.data.find((s) => s.id === serverId);
if (!server) return;
setCurrentServer(server);
resetServerDefaults();
queryClient.invalidateQueries(queryKeys.server.root(serverId));
};
+14
View File
@@ -74,6 +74,7 @@ const DEFAULT_ADVANCED_FILTERS = {
};
export interface AppSlice extends AppState {
resetServerDefaults: () => void;
setAppStore: (data: Partial<AppSlice>) => void;
setPage: (page: 'albums', options: Partial<LibraryPageProps>) => void;
setSidebar: (options: Partial<SidebarProps>) => void;
@@ -104,6 +105,19 @@ export const useAppStore = create<AppSlice>()(
},
isReorderingQueue: false,
platform: Platform.WINDOWS,
resetServerDefaults: () => {
set((state) => {
state.albums.list = {
...state.albums.list,
filter: {
...state.albums.list.filter,
serverFolderId: [],
},
gridScrollOffset: 0,
listScrollOffset: 0,
};
});
},
setAppStore: (data) => {
set({ ...get(), ...data });
},