diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index 3d9676f72..9ecdcd640 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -826,7 +826,8 @@ "note_size_info": "Note size provides rough estimate of storage requirements for this note. It takes into account note's content and content of its note revisions.", "calculate": "calculate", "subtree_size": "(subtree size: {{size}} in {{count}} notes)", - "title": "Note Info" + "title": "Note Info", + "show_similar_notes": "Show similar notes" }, "note_map": { "open_full": "Expand to full", diff --git a/apps/client/src/widgets/layout/StatusBar.css b/apps/client/src/widgets/layout/StatusBar.css index 650b4bdd3..431ca62a9 100644 --- a/apps/client/src/widgets/layout/StatusBar.css +++ b/apps/client/src/widgets/layout/StatusBar.css @@ -57,9 +57,11 @@ } .dropdown-note-info { + padding: 1em !important; + ul { list-style-type: none; - padding: 0.5em; + padding: 0; margin: 0; display: table; diff --git a/apps/client/src/widgets/layout/StatusBar.tsx b/apps/client/src/widgets/layout/StatusBar.tsx index 3f136a9a0..6a154730a 100644 --- a/apps/client/src/widgets/layout/StatusBar.tsx +++ b/apps/client/src/widgets/layout/StatusBar.tsx @@ -1,6 +1,7 @@ import "./StatusBar.css"; import { Locale } from "@triliumnext/commons"; +import { Dropdown as BootstrapDropdown } from "bootstrap"; import clsx from "clsx"; import { type ComponentChildren } from "preact"; import { createPortal } from "preact/compat"; @@ -16,16 +17,19 @@ import server from "../../services/server"; import { openInAppHelpFromUrl } from "../../services/utils"; import { formatDateTime } from "../../utils/formatters"; import { BacklinksList, useBacklinkCount } from "../FloatingButtonsDefinitions"; +import Collapsible from "../react/Collapsible"; import Dropdown, { DropdownProps } from "../react/Dropdown"; import { FormDropdownDivider, FormListItem } from "../react/FormList"; import { useActiveNoteContext, useLegacyImperativeHandlers, useNoteLabel, useNoteProperty, useStaticTooltip, useTriliumEvent, useTriliumEvents } from "../react/hooks"; import Icon from "../react/Icon"; +import LinkButton from "../react/LinkButton"; import { ParentComponent } from "../react/react_utils"; import { ContentLanguagesModal, NoteTypeCodeNoteList, NoteTypeOptionsModal, useLanguageSwitcher, useMimeTypes } from "../ribbon/BasicPropertiesTab"; import AttributeEditor, { AttributeEditorImperativeHandlers } from "../ribbon/components/AttributeEditor"; import InheritedAttributesTab from "../ribbon/InheritedAttributesTab"; import { NoteSizeWidget, useNoteMetadata } from "../ribbon/NoteInfoTab"; import { NotePathsWidget, useSortedNotePaths } from "../ribbon/NotePathsTab"; +import SimilarNotesTab from "../ribbon/SimilarNotesTab"; import { useAttachments } from "../type_widgets/Attachment"; import { useProcessedLocales } from "../type_widgets/options/components/LocaleSelector"; import Breadcrumb from "./Breadcrumb"; @@ -41,6 +45,7 @@ interface StatusBarContext { export default function StatusBar() { const { note, notePath, noteContext, viewScope, hoistedNoteId } = useActiveNoteContext(); const [ attributesShown, setAttributesShown ] = useState(false); + const [ similarNotesShown, setSimilarNotesShown ] = useState(false); const context: StatusBarContext | undefined | null = note && noteContext && { note, notePath, noteContext, viewScope, hoistedNoteId }; const attributesContext: AttributesProps | undefined | null = context && { ...context, attributesShown, setAttributesShown }; const isHiddenNote = note?.isInHiddenSubtree(); @@ -48,6 +53,7 @@ export default function StatusBar() { return (