Files
suwayomi-material-you-webui/src/features/reader/hooks/useReaderResetStates.ts

50 lines
2.0 KiB
TypeScript
Raw Normal View History

2025-01-18 22:41:54 +01:00
/*
* Copyright (C) Contributors to the Suwayomi project
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
import { useEffect } from 'react';
2025-08-16 02:02:13 +02:00
import { createPageData } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
2025-01-18 22:41:54 +01:00
import {
ReaderStateChapters,
ReaderStatePages,
2025-01-18 22:41:54 +01:00
ReaderTransitionPageMode,
TReaderStateSettingsContext,
2025-08-16 02:02:13 +02:00
} from '@/features/reader/Reader.types.ts';
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/settings/ReaderSettingsMetadata.ts';
2025-08-15 22:02:58 +02:00
import { READER_STATE_CHAPTERS_DEFAULTS } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
import { getReaderStore } from '@/features/reader/ReaderStore.ts';
2025-01-18 22:41:54 +01:00
export const useReaderResetStates = (
setReaderStateChapters: ReaderStateChapters['setReaderStateChapters'],
setCurrentPageIndex: ReaderStatePages['setCurrentPageIndex'],
setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'],
setTotalPages: ReaderStatePages['setTotalPages'],
setPages: ReaderStatePages['setPages'],
setPageUrls: ReaderStatePages['setPageUrls'],
setPageLoadStates: ReaderStatePages['setPageLoadStates'],
setTransitionPageMode: ReaderStatePages['setTransitionPageMode'],
setSettings: TReaderStateSettingsContext['setSettings'],
) => {
useEffect(
() => () => {
getReaderStore().reset();
2025-01-28 02:16:00 +01:00
setReaderStateChapters(READER_STATE_CHAPTERS_DEFAULTS);
2025-01-18 22:41:54 +01:00
setCurrentPageIndex(0);
setPageToScrollToIndex(null);
setTotalPages(0);
setPages([createPageData('', 0)]);
setPageUrls([]);
setPageLoadStates([{ url: '', loaded: false }]);
setTransitionPageMode(ReaderTransitionPageMode.NONE);
setSettings(DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG);
},
[],
);
};