Fix reset of reader store
After the slice states got reset, the base reset function just reverted all those resets and only reset the base states in the store (manga, scrollbar, ...)
This commit is contained in:
@@ -11,13 +11,22 @@ import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||
|
||||
export interface ReaderChaptersStoreSlice {
|
||||
chapters: ReaderStateChapters & {
|
||||
reset: () => void;
|
||||
setReaderStateChapters: (
|
||||
state: ((state: ReaderStateChapters) => ReaderStateChapters) | ReaderStateChapters,
|
||||
) => void;
|
||||
reset: () => ReaderChaptersStoreSlice;
|
||||
};
|
||||
}
|
||||
|
||||
export const READER_DEFAULT_CHAPTERS_STATE = {
|
||||
chapters: {
|
||||
mangaChapters: undefined,
|
||||
chapters: [],
|
||||
chapterForDuplicatesHandling: undefined,
|
||||
initialChapter: undefined,
|
||||
currentChapter: undefined,
|
||||
nextChapter: undefined,
|
||||
previousChapter: undefined,
|
||||
isCurrentChapterReady: false,
|
||||
visibleChapters: {
|
||||
leading: 0,
|
||||
@@ -39,7 +48,7 @@ export const createReaderChaptersStoreSlice = <T extends ReaderChaptersStoreSlic
|
||||
): ReaderChaptersStoreSlice => ({
|
||||
chapters: {
|
||||
...READER_DEFAULT_CHAPTERS_STATE.chapters,
|
||||
reset: () => set(() => ({ chapters: { ...get().chapters, ...READER_DEFAULT_CHAPTERS_STATE.chapters } })),
|
||||
reset: () => ({ chapters: { ...get().chapters, ...READER_DEFAULT_CHAPTERS_STATE.chapters } }),
|
||||
setReaderStateChapters: (state) =>
|
||||
set((draft) => {
|
||||
if (typeof state === 'function') {
|
||||
|
||||
@@ -12,7 +12,7 @@ import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||
|
||||
export interface ReaderPagesStoreSlice {
|
||||
pages: ReaderStatePages & {
|
||||
reset: () => void;
|
||||
reset: () => ReaderPagesStoreSlice;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ export const createReaderPagesStoreSlice = <T extends ReaderPagesStoreSlice>(
|
||||
): ReaderPagesStoreSlice => ({
|
||||
pages: {
|
||||
...READER_DEFAULT_PAGES_STATE,
|
||||
reset: () => set(() => ({ pages: { ...get().pages, ...READER_DEFAULT_PAGES_STATE } })),
|
||||
reset: () => ({ pages: { ...get().pages, ...READER_DEFAULT_PAGES_STATE } }),
|
||||
setCurrentPageIndex: (index) =>
|
||||
set((draft) => {
|
||||
draft.pages.currentPageIndex = index;
|
||||
|
||||
@@ -67,20 +67,24 @@ const readerStore = create<ReaderStore>()(
|
||||
immer((set, get, store) => ({
|
||||
...DEFAULT_STATE,
|
||||
reset: () =>
|
||||
set((draft) => {
|
||||
draft.manga = DEFAULT_STATE.manga;
|
||||
draft.scrollbar = { ...get().scrollbar, ...DEFAULT_STATE.scrollbar };
|
||||
get().overlay.reset();
|
||||
get().autoScroll.reset();
|
||||
get().pages.reset();
|
||||
get().chapters.reset();
|
||||
draft.settings = {
|
||||
set(() => ({
|
||||
...get(),
|
||||
...DEFAULT_STATE,
|
||||
scrollbar: {
|
||||
...get().scrollbar,
|
||||
...DEFAULT_STATE.scrollbar,
|
||||
},
|
||||
settings: {
|
||||
...get().settings,
|
||||
...DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG,
|
||||
};
|
||||
get().progressBar.reset();
|
||||
get().tapZone.reset();
|
||||
}),
|
||||
},
|
||||
...get().overlay.reset(),
|
||||
...get().autoScroll.reset(),
|
||||
...get().pages.reset(),
|
||||
...get().chapters.reset(),
|
||||
...get().progressBar.reset(),
|
||||
...get().tapZone.reset(),
|
||||
})),
|
||||
setManga: (manga) =>
|
||||
set((draft) => {
|
||||
draft.manga = manga;
|
||||
|
||||
Reference in New Issue
Block a user