allow user to unpin list sidebar

This commit is contained in:
jeffvli
2025-12-13 02:03:04 -08:00
parent ab1176d4f6
commit a14e5f08ee
13 changed files with 193 additions and 23 deletions
+23
View File
@@ -8,6 +8,7 @@ import { Platform } from '/@/shared/types/types';
export interface AppSlice extends AppState {
actions: {
setAppStore: (data: Partial<AppSlice>) => void;
setPageSidebar: (key: string, value: boolean) => void;
setPrivateMode: (enabled: boolean) => void;
setShowTimeRemaining: (enabled: boolean) => void;
setSideBar: (options: Partial<SidebarProps>) => void;
@@ -18,6 +19,7 @@ export interface AppSlice extends AppState {
export interface AppState {
commandPalette: CommandPaletteProps;
isReorderingQueue: boolean;
pageSidebar: Record<string, boolean>;
platform: Platform;
privateMode: boolean;
showTimeRemaining: boolean;
@@ -54,6 +56,15 @@ export const useAppStore = createWithEqualityFn<AppSlice>()(
setAppStore: (data) => {
set({ ...get(), ...data });
},
setPageSidebar: (key, value) => {
set((state) => {
if (value) {
state.pageSidebar[key] = value;
} else {
delete state.pageSidebar[key];
}
});
},
setPrivateMode: (privateMode) => {
set((state) => {
state.privateMode = privateMode;
@@ -94,6 +105,7 @@ export const useAppStore = createWithEqualityFn<AppSlice>()(
},
},
isReorderingQueue: false,
pageSidebar: {},
platform: Platform.WINDOWS,
privateMode: false,
showTimeRemaining: false,
@@ -140,3 +152,14 @@ export const useSetTitlebar = () => useAppStore((state) => state.actions.setTitl
export const useTitlebarStore = () => useAppStore((state) => state.titlebar);
export const useCommandPalette = () => useAppStore((state) => state.commandPalette);
export const usePageSidebar = (key: string): [boolean, (value: boolean) => void] => {
const isOpen = useAppStore((state) => state.pageSidebar[key] ?? false);
const setPageSidebar = useAppStore((state) => state.actions.setPageSidebar);
const setIsOpen = (value: boolean) => {
setPageSidebar(key, value);
};
return [isOpen, setIsOpen];
};