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 &&
{note.type} {note.mime && ({note.mime})}} />
{note.noteId}} />
+ } />
);
@@ -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 && (
-
- )}
-
-
- {formatSize(noteSizeResponse?.noteSize)}
- {" "}
- {subtreeSizeResponse && subtreeSizeResponse.subTreeNoteCount > 1 &&
- {t("note_info_widget.subtree_size", { size: formatSize(subtreeSizeResponse.subTreeSize), count: subtreeSizeResponse.subTreeNoteCount })}
- }
- {isLoading && }
-
+
>
@@ -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 && (
+
+ )}
+
+
+ {formatSize(noteSizeResponse?.noteSize)}
+ {" "}
+ {subtreeSizeResponse && subtreeSizeResponse.subTreeNoteCount > 1 &&
+ {t("note_info_widget.subtree_size", { size: formatSize(subtreeSizeResponse.subTreeSize), count: subtreeSizeResponse.subTreeNoteCount })}
+ }
+ {isLoading && }
+
+ >;
+}
+
export function useNoteMetadata(note: FNote | null | undefined) {
const [ isLoading, setIsLoading ] = useState(false);
const [ noteSizeResponse, setNoteSizeResponse ] = useState();