From 4b74ad5577a767bac939f62fdfaa2163df00f67b Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 11 Dec 2025 00:34:25 +0200 Subject: [PATCH] feat(breadcrumb/note_info): note size --- apps/client/src/widgets/BreadcrumbBadges.tsx | 14 +++++-- .../client/src/widgets/ribbon/NoteInfoTab.tsx | 42 +++++++++++-------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/apps/client/src/widgets/BreadcrumbBadges.tsx b/apps/client/src/widgets/BreadcrumbBadges.tsx index 5bf68eff0..610796c7e 100644 --- a/apps/client/src/widgets/BreadcrumbBadges.tsx +++ b/apps/client/src/widgets/BreadcrumbBadges.tsx @@ -10,7 +10,7 @@ import { BacklinksList, useBacklinkCount } from "./FloatingButtonsDefinitions"; import Dropdown, { DropdownProps } from "./react/Dropdown"; import { useIsNoteReadOnly, useNoteContext, useStaticTooltip } from "./react/hooks"; import Icon from "./react/Icon"; -import { useNoteMetadata } from "./ribbon/NoteInfoTab"; +import { NoteSizeWidget, useNoteMetadata } from "./ribbon/NoteInfoTab"; import { useShareInfo } from "./shared_info"; export default function BreadcrumbBadges() { @@ -26,18 +26,20 @@ export default function BreadcrumbBadges() { function NoteInfoBadge() { const { note } = useNoteContext(); - const { isLoading, metadata, noteSizeResponse, subtreeSizeResponse, requestSizeInfo } = useNoteMetadata(note); + const { metadata, ...sizeProps } = useNoteMetadata(note); return (note && ); @@ -161,8 +163,14 @@ function BadgeWithDropdown({ children, tooltip, className, dropdownOptions, ...p hideToggleArrow title={tooltip} titlePosition="bottom" - dropdownOptions={{ popperConfig: { placement: "bottom", strategy: "fixed" } }} {...dropdownOptions} + dropdownOptions={{ + ...dropdownOptions?.dropdownOptions, + popperConfig: { + ...dropdownOptions?.dropdownOptions?.popperConfig, + placement: "bottom", strategy: "fixed" + } + }} >{children} ); } diff --git a/apps/client/src/widgets/ribbon/NoteInfoTab.tsx b/apps/client/src/widgets/ribbon/NoteInfoTab.tsx index d5af83799..8180f74a6 100644 --- a/apps/client/src/widgets/ribbon/NoteInfoTab.tsx +++ b/apps/client/src/widgets/ribbon/NoteInfoTab.tsx @@ -13,7 +13,7 @@ import FNote from "../../entities/fnote"; const isNewLayout = isExperimentalFeatureEnabled("new-layout"); export default function NoteInfoTab({ note }: { note: FNote | null | undefined }) { - const { isLoading, metadata, noteSizeResponse, subtreeSizeResponse, requestSizeInfo } = useNoteMetadata(note); + const { metadata, ...sizeProps } = useNoteMetadata(note); return (
@@ -41,23 +41,7 @@ export default function NoteInfoTab({ note }: { note: FNote | null | undefined }
{t("note_info_widget.note_size")}: - {!isLoading && !noteSizeResponse && !subtreeSizeResponse && ( -
@@ -66,6 +50,28 @@ export default function NoteInfoTab({ note }: { note: FNote | null | undefined } ); } +export function NoteSizeWidget({ isLoading, noteSizeResponse, subtreeSizeResponse, requestSizeInfo }: Omit, "metadata">) { + return <> + {!isLoading && !noteSizeResponse && !subtreeSizeResponse && ( +