diff --git a/packages/web/components/templates/article/HighlightsLayer.tsx b/packages/web/components/templates/article/HighlightsLayer.tsx index 4d005f69d..d5bb8b0bb 100644 --- a/packages/web/components/templates/article/HighlightsLayer.tsx +++ b/packages/web/components/templates/article/HighlightsLayer.tsx @@ -573,7 +573,7 @@ export function HighlightsLayer(props: HighlightsLayerProps): JSX.Element { ) useEffect(() => { - if (props.highlightOnRelease && selectionData?.wasDragEvent) { + if (props.highlightOnRelease) { handleAction('create') setSelectionData(null) } diff --git a/packages/web/components/templates/article/ReaderSettingsControl.tsx b/packages/web/components/templates/article/ReaderSettingsControl.tsx index 490c92478..3c0c0665f 100644 --- a/packages/web/components/templates/article/ReaderSettingsControl.tsx +++ b/packages/web/components/templates/article/ReaderSettingsControl.tsx @@ -167,6 +167,37 @@ function AdvancedSettings(props: SettingsProps): JSX.Element { + + + + { + readerSettings.setHighlightOnRelease(checked) + }} + > + + + ) } diff --git a/packages/web/lib/hooks/useReaderSettings.tsx b/packages/web/lib/hooks/useReaderSettings.tsx index 9a77c4042..cbd7c134b 100644 --- a/packages/web/lib/hooks/useReaderSettings.tsx +++ b/packages/web/lib/hooks/useReaderSettings.tsx @@ -31,6 +31,9 @@ export type ReaderSettings = { setJustifyText: (set: boolean) => void highContrastText: boolean | undefined setHighContrastText: (set: boolean) => void + + highlightOnRelease: boolean | undefined + setHighlightOnRelease: (set: boolean) => void } export const useReaderSettings = (): ReaderSettings => { @@ -61,6 +64,13 @@ export const useReaderSettings = (): ReaderSettings => { initialValue: false, }) + const [highlightOnRelease, setHighlightOnRelease] = usePersistedState< + boolean | undefined + >({ + key: `--display-highlight-on-release`, + initialValue: false, + }) + const [justifyText, setJustifyText] = usePersistedState({ key: `--display-justify-text`, initialValue: false, @@ -216,5 +226,7 @@ export const useReaderSettings = (): ReaderSettings => { setJustifyText, highContrastText, setHighContrastText, + highlightOnRelease, + setHighlightOnRelease, } }