diff --git a/apps/readest-app/src/components/settings/LayoutPanel.tsx b/apps/readest-app/src/components/settings/LayoutPanel.tsx index 0081dca3..0a9af2d5 100644 --- a/apps/readest-app/src/components/settings/LayoutPanel.tsx +++ b/apps/readest-app/src/components/settings/LayoutPanel.tsx @@ -249,15 +249,17 @@ const LayoutPanel: React.FC = ({ bookKey, onRegisterRese useEffect(() => { if (maxColumnCount === viewSettings.maxColumnCount) return; saveViewSettings(envConfig, bookKey, 'maxColumnCount', maxColumnCount, false, false); + const newViewSettings = getViewSettings(bookKey)!; view?.renderer.setAttribute('max-column-count', maxColumnCount); - view?.renderer.setAttribute('max-inline-size', `${getMaxInlineSize(viewSettings)}px`); + view?.renderer.setAttribute('max-inline-size', `${getMaxInlineSize(newViewSettings)}px`); // eslint-disable-next-line react-hooks/exhaustive-deps }, [maxColumnCount]); useEffect(() => { if (maxInlineSize === viewSettings.maxInlineSize) return; saveViewSettings(envConfig, bookKey, 'maxInlineSize', maxInlineSize, false, false); - view?.renderer.setAttribute('max-inline-size', `${getMaxInlineSize(viewSettings)}px`); + const newViewSettings = getViewSettings(bookKey)!; + view?.renderer.setAttribute('max-inline-size', `${getMaxInlineSize(newViewSettings)}px`); // eslint-disable-next-line react-hooks/exhaustive-deps }, [maxInlineSize]); @@ -279,7 +281,8 @@ const LayoutPanel: React.FC = ({ bookKey, onRegisterRese } saveViewSettings(envConfig, bookKey, 'writingMode', writingMode, true).then(() => { if (view) { - view.renderer.setStyles?.(getStyles(viewSettings)); + const newViewSettings = getViewSettings(bookKey)!; + view.renderer.setStyles?.(getStyles(newViewSettings)); view.book.dir = getBookDirFromWritingMode(writingMode); } if ( diff --git a/apps/readest-app/src/helpers/settings.ts b/apps/readest-app/src/helpers/settings.ts index cbedacc6..96772e6c 100644 --- a/apps/readest-app/src/helpers/settings.ts +++ b/apps/readest-app/src/helpers/settings.ts @@ -39,11 +39,11 @@ export const saveViewSettings = async ( if (isSettingsGlobal && !skipGlobal) { settings.globalViewSettings[key] = value; setSettings(settings); - await saveSettings(envConfig, settings); for (const bookKey of bookKeys) { await applyViewSettings(bookKey); } + await saveSettings(envConfig, settings); } else if (bookKey) { await applyViewSettings(bookKey); }