Add zustand dev tools
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
import { ImmerStateCreator } from '@/lib/zustand/Zustand.types.ts';
|
||||
import { SliceCreator } from '@/lib/zustand/Zustand.types.ts';
|
||||
|
||||
export interface ReaderOverlayStoreSlice {
|
||||
overlay: {
|
||||
@@ -21,14 +21,18 @@ const DEFAULT_STATE = {
|
||||
} satisfies Pick<ReaderOverlayStoreSlice['overlay'], 'isVisible'>;
|
||||
|
||||
export const createReaderOverlayStoreSlice = <T extends ReaderOverlayStoreSlice>(
|
||||
...[set, get]: Parameters<ImmerStateCreator<T>>
|
||||
...[createActionName, set, get]: Parameters<SliceCreator<T>>
|
||||
): ReaderOverlayStoreSlice => ({
|
||||
overlay: {
|
||||
isVisible: DEFAULT_STATE.isVisible,
|
||||
setIsVisible: (visible) =>
|
||||
set((draft) => {
|
||||
draft.overlay.isVisible = visible;
|
||||
}),
|
||||
set(
|
||||
(draft) => {
|
||||
draft.overlay.isVisible = visible;
|
||||
},
|
||||
undefined,
|
||||
createActionName('setIsVisible'),
|
||||
),
|
||||
reset: () => ({ overlay: { ...get().overlay, ...DEFAULT_STATE } }),
|
||||
},
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
import { ImmerStateCreator } from '@/lib/zustand/Zustand.types.ts';
|
||||
import { SliceCreator } from '@/lib/zustand/Zustand.types.ts';
|
||||
import { TReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||
|
||||
export interface ReaderProgressBarStoreSlice {
|
||||
@@ -21,18 +21,26 @@ const DEFAULT_STATE = {
|
||||
} satisfies Pick<ReaderProgressBarStoreSlice['progressBar'], 'isDragging' | 'isMaximized'>;
|
||||
|
||||
export const createReaderProgressBarStoreSlice = <T extends ReaderProgressBarStoreSlice>(
|
||||
...[set, get]: Parameters<ImmerStateCreator<T>>
|
||||
...[createActionName, set, get]: Parameters<SliceCreator<T>>
|
||||
): ReaderProgressBarStoreSlice => ({
|
||||
progressBar: {
|
||||
...DEFAULT_STATE,
|
||||
setIsMaximized: (maximized) =>
|
||||
set((draft) => {
|
||||
draft.progressBar.isMaximized = maximized;
|
||||
}),
|
||||
set(
|
||||
(draft) => {
|
||||
draft.progressBar.isMaximized = maximized;
|
||||
},
|
||||
undefined,
|
||||
createActionName('setIsMaximized'),
|
||||
),
|
||||
setIsDragging: (dragging) =>
|
||||
set((draft) => {
|
||||
draft.progressBar.isDragging = dragging;
|
||||
}),
|
||||
set(
|
||||
(draft) => {
|
||||
draft.progressBar.isDragging = dragging;
|
||||
},
|
||||
undefined,
|
||||
createActionName('setIsDragging'),
|
||||
),
|
||||
reset: () => ({ progressBar: { ...get().progressBar, ...DEFAULT_STATE } }),
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user