This commit is contained in:
2025-11-22 02:57:44 +01:00
parent 132d9e3d02
commit 79578e5daa
3 changed files with 34 additions and 7 deletions
+14 -2
View File
@@ -408,9 +408,21 @@ const DesktopWorkspace: React.FC<DesktopWorkspaceProps> = ({
commitSize();
const observer = new ResizeObserver(commitSize);
let rafId: number | null = null;
const observer = new ResizeObserver(() => {
if (rafId != null) return;
rafId = requestAnimationFrame(() => {
rafId = null;
commitSize();
});
});
observer.observe(container);
return () => observer.disconnect();
return () => {
observer.disconnect();
if (rafId != null) {
cancelAnimationFrame(rafId);
}
};
}, [engine]);
const resolvePreviewDimensions = useCallback(
+11 -1
View File
@@ -15,6 +15,8 @@ class DocumentsManager<T extends ManagedDocument = ManagedDocument> {
private listeners: Set<() => void>;
private emitScheduled: boolean;
constructor(
fetchDocument?: FetchDocument,
) {
@@ -22,10 +24,18 @@ class DocumentsManager<T extends ManagedDocument = ManagedDocument> {
this.fetcher = fetchDocument;
this.inflight = new Map();
this.listeners = new Set();
this.emitScheduled = false;
}
private emit() {
this.listeners.forEach((fn) => fn());
if (this.emitScheduled) {
return;
}
this.emitScheduled = true;
setTimeout(() => {
this.emitScheduled = false;
this.listeners.forEach((fn) => fn());
}, 0);
}
subscribe(listener: () => void) {
+9 -4
View File
@@ -1,5 +1,4 @@
import React, {
Children,
useCallback,
useEffect,
useMemo,
@@ -431,9 +430,15 @@ const DocumentViewerPanel: React.FC<DocumentViewerPanelProps> = ({
: null;
const headerLeadingButtons = isSidebarVariant
? [collapseButton, maximizeButton].filter(Boolean)
: [sidebarToggle, closeButton].filter(Boolean);
const headerLeadingContent = headerLeadingButtons.length ? Children.toArray(headerLeadingButtons) : null;
? [
collapseButton ? <React.Fragment key="collapse-button">{collapseButton}</React.Fragment> : null,
maximizeButton ? <React.Fragment key="maximize-button">{maximizeButton}</React.Fragment> : null,
].filter(Boolean)
: [
sidebarToggle ? <React.Fragment key="sidebar-toggle">{sidebarToggle}</React.Fragment> : null,
closeButton ? <React.Fragment key="close-button">{closeButton}</React.Fragment> : null,
].filter(Boolean);
const headerLeadingContent = headerLeadingButtons.length ? headerLeadingButtons : null;
const resizeHandle = isSidebarVariant ? (
<button