diff --git a/.gitmodules b/.gitmodules index a840b87e3..53e910ebd 100644 --- a/.gitmodules +++ b/.gitmodules @@ -5,3 +5,6 @@ [submodule "epubjs/epub.js"] path = epubjs/epub.js url = https://github.com/zotero/epub.js.git +[submodule "structured-document-text"] + path = structured-document-text + url = https://github.com/zotero/structured-document-text.git diff --git a/src/common/annotation-manager.js b/src/common/annotation-manager.js index fc21326f7..df11939e5 100644 --- a/src/common/annotation-manager.js +++ b/src/common/annotation-manager.js @@ -14,7 +14,7 @@ class AnnotationManager { colors: [], tags: [], authors: [], - hiddenIDs: [], + enabledTypes: null, }; this._readOnly = options.readOnly; this._authorName = options.authorName; @@ -399,10 +399,10 @@ class AnnotationManager { this._annotations.forEach(x => delete x._score); let annotations = this._annotations.slice(); - let { tags, colors, authors, query, hiddenIDs } = this._filter; + let { tags, colors, authors, query, enabledTypes } = this._filter; - if (hiddenIDs.length) { - annotations = annotations.filter(x => !hiddenIDs.includes(x.id)); + if (enabledTypes) { + annotations = annotations.filter(x => enabledTypes.includes(x.type)); } if (tags.length || colors.length || authors.length) { diff --git a/src/common/components/modal-popup/appearance-popup.js b/src/common/components/modal-popup/appearance-popup.js index f81349936..ed437e072 100644 --- a/src/common/components/modal-popup/appearance-popup.js +++ b/src/common/components/modal-popup/appearance-popup.js @@ -18,9 +18,9 @@ import IconSplitVertical from '../../../../res/icons/16/split-vertical.svg'; import IconSpreadEven from '../../../../res/icons/16/spread-even.svg'; import IconSpreadNone from '../../../../res/icons/16/spread-none.svg'; import IconSpreadOdd from '../../../../res/icons/16/spread-odd.svg'; -import IconX from '../../../../res/icons/16/x-8.svg'; import IconOptions from '../../../../res/icons/16/options.svg'; import IconPlus from '../../../../res/icons/20/plus.svg'; +import IconLoading from '../../../../res/icons/16/loading.svg'; import { getCurrentColorScheme, getPopupCoordinatesFromClickEvent } from '../../lib/utilities'; import { ReaderContext } from '../../reader'; import { DEFAULT_THEMES } from '../../defines'; @@ -260,56 +260,6 @@ function AppearancePopup(props) { return (
- {type === 'pdf' && ( -
-
- -
- - - -
-
-
- -
- - - -
-
-
- )} {type === 'epub' && (
@@ -352,33 +302,89 @@ function AppearancePopup(props) { )}
)} - {(type === 'epub' || type === 'snapshot') && !(type === 'epub' && props.viewStats.fixedLayout) && ( + {!(type === 'epub' && props.viewStats.fixedLayout) && (
- {type === 'snapshot' && ( + {(type === 'snapshot' || type === 'pdf') && (
- props.onChangeReadingModeEnabled(e.target.checked)} - /> +
+ {props.readingModeLoading && ( + + )} + props.onChangeReadingModeEnabled(e.target.checked)} + /> +
)} - {(type === 'epub' || props.viewStats.readingModeEnabled) && ( + {(type === 'epub' || props.readingModeEnabled) && ( )}
)} + {type === 'pdf' && !props.viewStats.readingModeEnabled && ( +
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ )}
diff --git a/src/common/components/reader-ui.js b/src/common/components/reader-ui.js index 62157a69f..a9f27984a 100644 --- a/src/common/components/reader-ui.js +++ b/src/common/components/reader-ui.js @@ -135,7 +135,7 @@ const ReaderUI = React.forwardRef((props, ref) => { enableNavigateBack={viewStats.canNavigateBack} enableNavigateToPreviousPage={viewStats.canNavigateToPreviousPage} enableNavigateToNextPage={viewStats.canNavigateToNextPage} - readingModeEnabled={viewStats.readingModeEnabled} + readingModeEnabled={state.readingModeEnabled} appearancePopup={state.appearancePopup} readAloudState={state.readAloudState} findPopupOpen={findState.popupOpen} @@ -235,6 +235,8 @@ const ReaderUI = React.forwardRef((props, ref) => { colorScheme={state.colorScheme} lightTheme={state.lightTheme} darkTheme={state.darkTheme} + readingModeEnabled={state.readingModeEnabled} + readingModeLoading={state.readingModeLoading} splitType={state.splitType} viewStats={viewStats} onChangeSplitType={props.onChangeSplitType} diff --git a/src/common/components/toolbar.js b/src/common/components/toolbar.js index 660b6bd34..ea8d6d943 100644 --- a/src/common/components/toolbar.js +++ b/src/common/components/toolbar.js @@ -211,7 +211,7 @@ function Toolbar(props) { onClick={() => handleToolClick('note')} > - {props.type === 'pdf' && ( + {props.type === 'pdf' && !props.readingModeEnabled && ( )} - {props.type === 'pdf' && ( + {props.type === 'pdf' && !props.readingModeEnabled && ( )} - {props.type === 'pdf' && ( + {props.type === 'pdf' && !props.readingModeEnabled && (