diff --git a/apps/client/src/widgets/sidebar/HighlightsList.tsx b/apps/client/src/widgets/sidebar/HighlightsList.tsx index 0eb3dcf03..ed00d47dd 100644 --- a/apps/client/src/widgets/sidebar/HighlightsList.tsx +++ b/apps/client/src/widgets/sidebar/HighlightsList.tsx @@ -4,7 +4,7 @@ import { useCallback, useEffect, useState } from "preact/hooks"; import { t } from "../../services/i18n"; import ActionButton from "../react/ActionButton"; -import { useActiveNoteContext, useContentElement, useIsNoteReadOnly, useNoteProperty, useTextEditor } from "../react/hooks"; +import { useActiveNoteContext, useContentElement, useIsNoteReadOnly, useNoteProperty, useTextEditor, useTriliumOptionJson } from "../react/hooks"; import Modal from "../react/Modal"; import { HighlightsListOptions } from "../type_widgets/options/text_notes"; import RightPanelWidget from "./RightPanelWidget"; @@ -69,25 +69,39 @@ function AbstractHighlightsList({ highlights, scrollToHi highlights: T[], scrollToHighlight(highlight: T): void; }) { + const [ highlightsList ] = useTriliumOptionJson<["bold" | "italic" | "underline" | "color" | "bgColor"]>("highlightsList"); + const highlightsListSet = new Set(highlightsList || []); + return (
    - {highlights.map(highlight => ( -
  1. scrollToHighlight(highlight)} - > - {highlight.text} -
  2. - ))} + {highlights + .filter(highlight => { + const { attrs } = highlight; + return ( + (highlightsListSet.has("bold") && attrs.bold) || + (highlightsListSet.has("italic") && attrs.italic) || + (highlightsListSet.has("underline") && attrs.underline) || + (highlightsListSet.has("color") && !!attrs.color) || + (highlightsListSet.has("bgColor") && !!attrs.background) + ); + }) + .map(highlight => ( +
  3. scrollToHighlight(highlight)} + > + {highlight.text} +
  4. + ))}
);