feat: Add support for scrollToCenter in initialData so host can control whether to scroll to center on mount (#3070)

* feat: Add support for scrollToCenter in initialData so host can control whether to scroll to center on mount

* fix

* update changelog and readme

* fix

* Scroll to center only for collab and shareable links in excalidraw app

* fix test

* update readme

* Update src/packages/excalidraw/README.md
This commit is contained in:
Aakansha Doshi 2021-02-21 19:01:34 +05:30 committed by GitHub
parent d17464fbaa
commit 7c5481b877
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 37 additions and 18 deletions

View file

@ -13,7 +13,7 @@ import { ExcalidrawImperativeAPI } from "../components/App";
import { ErrorDialog } from "../components/ErrorDialog";
import { TopErrorBoundary } from "../components/TopErrorBoundary";
import { APP_NAME, EVENT, TITLE_TIMEOUT, VERSION_TIMEOUT } from "../constants";
import { ImportedDataState } from "../data/types";
import { DataState, ImportedDataState } from "../data/types";
import {
ExcalidrawElement,
NonDeletedExcalidrawElement,
@ -75,7 +75,11 @@ const initializeScene = async (opts: {
const initialData = importFromLocalStorage();
let scene = await loadScene(null, null, initialData);
let scene: DataState & { scrollToCenter?: boolean } = await loadScene(
null,
null,
initialData,
);
let roomLinkData = getCollaborationLinkData(window.location.href);
const isExternalScene = !!(id || jsonMatch || roomLinkData);
@ -94,6 +98,7 @@ const initializeScene = async (opts: {
} else if (jsonMatch) {
scene = await loadScene(jsonMatch[1], jsonMatch[2], initialData);
}
scene.scrollToCenter = true;
if (!roomLinkData) {
window.history.replaceState({}, APP_NAME, window.location.origin);
}