diff --git a/res/icons/20/reading-mode-enabled.svg b/res/icons/20/reading-mode-enabled.svg new file mode 100644 index 000000000..420964b10 --- /dev/null +++ b/res/icons/20/reading-mode-enabled.svg @@ -0,0 +1,3 @@ + + + diff --git a/res/icons/20/reading-mode.svg b/res/icons/20/reading-mode.svg new file mode 100644 index 000000000..1a4c6969c --- /dev/null +++ b/res/icons/20/reading-mode.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/common/components/modal-popup/appearance-popup.js b/src/common/components/modal-popup/appearance-popup.js index 565b6d895..bd272181b 100644 --- a/src/common/components/modal-popup/appearance-popup.js +++ b/src/common/components/modal-popup/appearance-popup.js @@ -26,7 +26,7 @@ import { ReaderContext } from '../../reader'; import { DEFAULT_THEMES } from '../../defines'; import TickedRangeInput from "../common/ticked-range-input"; -function ReflowableAppearanceSection({ params, enablePageWidth, onChange, indent }) { +function ReflowableAppearanceSection({ params, enablePageWidth, onChange }) { const { l10n } = useLocalization(); const { type } = useContext(ReaderContext); @@ -52,7 +52,7 @@ function ReflowableAppearanceSection({ params, enablePageWidth, onChange, indent } return ( -
+
- {(type === 'epub' || type === 'snapshot') && ( + {(type === 'epub' || type === 'snapshot' && props.viewStats.readingModeEnabled) && (
- {type === 'snapshot' && ( -
- - props.onChangeFocusModeEnabled(e.target.checked)} - /> -
- )} - {(type === 'epub' || props.viewStats.focusModeEnabled) && ( - - )} +
)}
diff --git a/src/common/components/reader-ui.js b/src/common/components/reader-ui.js index a7d4d45ac..caaf1e666 100644 --- a/src/common/components/reader-ui.js +++ b/src/common/components/reader-ui.js @@ -132,6 +132,7 @@ const ReaderUI = React.forwardRef((props, ref) => { enableNavigateBack={viewStats.canNavigateBack} enableNavigateToPreviousPage={viewStats.canNavigateToPreviousPage} enableNavigateToNextPage={viewStats.canNavigateToNextPage} + readingModeEnabled={viewStats.readingModeEnabled} appearancePopup={state.appearancePopup} findPopupOpen={findState.popupOpen} themes={state.themes} @@ -150,6 +151,7 @@ const ReaderUI = React.forwardRef((props, ref) => { onChangePageNumber={props.onChangePageNumber} onChangeTool={props.onChangeTool} onOpenColorContextMenu={props.onOpenColorContextMenu} + onToggleReadingMode={props.onToggleReadingMode} onToggleAppearancePopup={props.onToggleAppearancePopup} onToggleFind={props.onToggleFind} onToggleContextPane={props.onToggleContextPane} @@ -234,7 +236,6 @@ const ReaderUI = React.forwardRef((props, ref) => { onChangeSpreadMode={props.onChangeSpreadMode} onChangeFlowMode={props.onChangeFlowMode} onChangeAppearance={props.onChangeAppearance} - onChangeFocusModeEnabled={props.onChangeFocusModeEnabled} onAddTheme={props.onAddTheme} onChangeTheme={props.onChangeTheme} onOpenThemeContextMenu={props.onOpenThemeContextMenu} diff --git a/src/common/components/toolbar.js b/src/common/components/toolbar.js index 723a1c24c..f4987b1bc 100644 --- a/src/common/components/toolbar.js +++ b/src/common/components/toolbar.js @@ -13,6 +13,8 @@ import IconAutoWidth from '../../../res/icons/20/auto-width.svg'; import IconChevronLeft from '../../../res/icons/20/chevron-left.svg'; import IconChevronUp from '../../../res/icons/20/chevron-up.svg'; import IconChevronDown from '../../../res/icons/20/chevron-down.svg'; +import IconReadingModeEnabled from '../../../res/icons/20/reading-mode-enabled.svg'; +import IconReadingMode from '../../../res/icons/20/reading-mode.svg'; import IconFormatText from '../../../res/icons/20/format-text.svg'; import IconHighlight from '../../../res/icons/20/annotate-highlight.svg'; import IconUnderline from '../../../res/icons/20/annotate-underline.svg'; @@ -106,12 +108,21 @@ function Toolbar(props) { disabled={!props.enableZoomReset} onClick={props.onZoomReset} > + {props.type === 'snapshot' && ( + + )}