|
@@ -265,7 +265,21 @@ export const zoomToFit = ({
|
|
30.0,
|
|
30.0,
|
|
) as NormalizedZoomValue;
|
|
) as NormalizedZoomValue;
|
|
|
|
|
|
- scrollX = (appState.width / 2) * (1 / newZoomValue) - centerX;
|
|
|
|
|
|
+ let appStateWidth = appState.width;
|
|
|
|
+
|
|
|
|
+ if (appState.openSidebar) {
|
|
|
|
+ const sidebarDOMElem = document.querySelector(
|
|
|
|
+ ".sidebar",
|
|
|
|
+ ) as HTMLElement | null;
|
|
|
|
+ const sidebarWidth = sidebarDOMElem?.offsetWidth ?? 0;
|
|
|
|
+ const isRTL = document.documentElement.getAttribute("dir") === "rtl";
|
|
|
|
+
|
|
|
|
+ appStateWidth = !isRTL
|
|
|
|
+ ? appState.width - sidebarWidth
|
|
|
|
+ : appState.width + sidebarWidth;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ scrollX = (appStateWidth / 2) * (1 / newZoomValue) - centerX;
|
|
scrollY = (appState.height / 2) * (1 / newZoomValue) - centerY;
|
|
scrollY = (appState.height / 2) * (1 / newZoomValue) - centerY;
|
|
} else {
|
|
} else {
|
|
newZoomValue = zoomValueToFitBoundsOnViewport(commonBounds, {
|
|
newZoomValue = zoomValueToFitBoundsOnViewport(commonBounds, {
|