From 66b3757b1264afb096d2522cd674b9956d77d83e Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Thu, 12 Dec 2024 23:38:21 +0100 Subject: [PATCH] Handle missing reader keybinds in metadata The current default value fallback logic for metadata just checks if a key is missing, or if it's value is undefined. Since the keybinds are an object, a keybind that got newly added and wasn't saved to the metadata was never added with its default value to the object due to the metadata containing a "keybinds" key with an existing value --- src/modules/reader/services/ReaderSettingsMetadata.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/modules/reader/services/ReaderSettingsMetadata.ts b/src/modules/reader/services/ReaderSettingsMetadata.ts index f3c35e6f..3d72ac94 100644 --- a/src/modules/reader/services/ReaderSettingsMetadata.ts +++ b/src/modules/reader/services/ReaderSettingsMetadata.ts @@ -131,8 +131,11 @@ const convertMetadataToSettings = ( profiles.includes(profile) ? profile : DEFAULT_READER_PROFILE, ]), ) as IReaderSettings['readingModesDefaultProfile'], - hotkeys: - jsonSaveParse((metadata.hotkeys as string) ?? '') ?? defaultSettings.hotkeys, + hotkeys: { + ...defaultSettings.hotkeys, + ...(jsonSaveParse((metadata.hotkeys as string) ?? '') ?? + defaultSettings.hotkeys), + }, }; };