From ce15e4db70ed13b2f7e069ee3d2382ef2edfcb6b Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Tue, 17 Dec 2024 16:23:09 +0100 Subject: [PATCH] Add "cycle reading mode" hotkey --- public/locales/en.json | 3 ++- .../reader/components/ReaderHotkeys.tsx | 18 +++++++++++++++++- .../settings/hotkeys/ReaderSettingHotkey.tsx | 1 + .../constants/ReaderSettings.constants.tsx | 1 + src/modules/reader/types/Reader.types.ts | 1 + 5 files changed, 22 insertions(+), 2 deletions(-) diff --git a/public/locales/en.json b/public/locales/en.json index 142e0fae..c2f511da 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -869,6 +869,7 @@ "offset_spread_pages": "Toggle offset spread pages", "previous_chapter": "Previous chapter", "previous_page": "Previous page", + "reading_mode": "Cycle reading mode", "scale_type": "Cycle image scale type", "scroll_backward": "Scroll backward", "scroll_forward": "Scroll forward", @@ -1006,13 +1007,13 @@ "failure": "Could not delete theme \"{{theme}}\"", "success": "Deleted theme \"{{theme}}\"" }, - "mode": "Theme mode", "edit": { "action": "Saving theme changes…", "failure": "Could not save theme changes", "success": "Saved theme changes", "title": "Edit theme" }, + "mode": "Theme mode", "pure_black_mode": "Pure black dark mode", "select": { "fonts": { diff --git a/src/modules/reader/components/ReaderHotkeys.tsx b/src/modules/reader/components/ReaderHotkeys.tsx index cc047631..14cbe235 100644 --- a/src/modules/reader/components/ReaderHotkeys.tsx +++ b/src/modules/reader/components/ReaderHotkeys.tsx @@ -17,6 +17,7 @@ import { getNextRotationValue } from '@/modules/core/utils/ValueRotationButton.u import { READER_PAGE_SCALE_MODE_VALUES, ReaderScrollAmount, + READING_MODE_VALUES, } from '@/modules/reader/constants/ReaderSettings.constants.tsx'; import { useReaderStateMangaContext } from '@/modules/reader/contexts/state/ReaderStateMangaContext.tsx'; import { MangaIdInfo } from '@/modules/manga/Manga.types.ts'; @@ -146,7 +147,7 @@ export const ReaderHotkeys = ({ true, ); }, - [updateSetting, deleteSetting, pageScaleMode], + [updateSetting, deleteSetting, pageScaleMode.value, pageScaleMode.isDefault], ); useHotkeys( hotkeys[ReaderHotkey.STRETCH_IMAGE], @@ -158,6 +159,21 @@ export const ReaderHotkeys = ({ () => updateSetting('shouldOffsetDoubleSpreads', !shouldOffsetDoubleSpreads.value), [updateSetting, shouldOffsetDoubleSpreads.value], ); + useHotkeys( + hotkeys[ReaderHotkey.CYCLE_READING_MODE], + () => { + updateSettingCycleThrough( + updateSetting, + deleteSetting, + 'readingMode', + readingMode.value, + READING_MODE_VALUES, + readingMode.isDefault, + true, + ); + }, + [updateSetting, deleteSetting, readingMode.value, readingMode.isDefault], + ); useEffect(() => { enableScope(HotkeyScope.READER); diff --git a/src/modules/reader/components/settings/hotkeys/ReaderSettingHotkey.tsx b/src/modules/reader/components/settings/hotkeys/ReaderSettingHotkey.tsx index 0b637e4d..25b02d48 100644 --- a/src/modules/reader/components/settings/hotkeys/ReaderSettingHotkey.tsx +++ b/src/modules/reader/components/settings/hotkeys/ReaderSettingHotkey.tsx @@ -31,6 +31,7 @@ const READER_HOTKEY_TO_TITLE: Record = { [ReaderHotkey.CYCLE_SCALE_TYPE]: 'reader.settings.hotkey.scale_type', [ReaderHotkey.STRETCH_IMAGE]: 'reader.settings.hotkey.stretch_image', [ReaderHotkey.OFFSET_SPREAD_PAGES]: 'reader.settings.hotkey.offset_spread_pages', + [ReaderHotkey.CYCLE_READING_MODE]: 'reader.settings.hotkey.reading_mode', }; export const ReaderSettingHotkey = ({ diff --git a/src/modules/reader/constants/ReaderSettings.constants.tsx b/src/modules/reader/constants/ReaderSettings.constants.tsx index a3c6cd35..6dfcc4d2 100644 --- a/src/modules/reader/constants/ReaderSettings.constants.tsx +++ b/src/modules/reader/constants/ReaderSettings.constants.tsx @@ -119,6 +119,7 @@ export const DEFAULT_READER_SETTINGS: IReaderSettings = { [ReaderHotkey.CYCLE_SCALE_TYPE]: ['i'], [ReaderHotkey.STRETCH_IMAGE]: ['f'], [ReaderHotkey.OFFSET_SPREAD_PAGES]: ['o'], + [ReaderHotkey.CYCLE_READING_MODE]: ['r'], }, imagePreLoadAmount: 5, }; diff --git a/src/modules/reader/types/Reader.types.ts b/src/modules/reader/types/Reader.types.ts index d789b30e..6210707b 100644 --- a/src/modules/reader/types/Reader.types.ts +++ b/src/modules/reader/types/Reader.types.ts @@ -204,6 +204,7 @@ export enum ReaderHotkey { CYCLE_SCALE_TYPE, STRETCH_IMAGE, OFFSET_SPREAD_PAGES, + CYCLE_READING_MODE, } export interface ReaderPagerProps