diff --git a/src/data/blob.ts b/src/data/blob.ts index 08c394ac74..c0aa66ee73 100644 --- a/src/data/blob.ts +++ b/src/data/blob.ts @@ -134,18 +134,21 @@ export const loadSceneOrLibraryFromBlob = async ( try { const data = JSON.parse(contents); if (isValidExcalidrawData(data)) { - const excaldrawElements = data.elements || []; return { type: MIME_TYPES.excalidraw, data: restore( { - elements: clearElementsForExport(excaldrawElements), + elements: clearElementsForExport(data.elements || []), appState: { theme: localAppState?.theme, fileHandle: fileHandle || blob.handle || null, ...cleanAppStateForExport(data.appState || {}), ...(localAppState - ? calculateScrollCenter(excaldrawElements, localAppState, null) + ? calculateScrollCenter( + data.elements || [], + localAppState, + null, + ) : {}), }, files: data.files, diff --git a/src/data/restore.ts b/src/data/restore.ts index 2c3fc8bb6d..960b43d30c 100644 --- a/src/data/restore.ts +++ b/src/data/restore.ts @@ -83,7 +83,7 @@ const getFontFamilyByName = (fontFamilyName: string): FontFamilyValues => { return DEFAULT_FONT_FAMILY; }; -export const restoreElementWithProperties = < +const restoreElementWithProperties = < T extends Required> & { customData?: ExcalidrawElement["customData"]; /** @deprecated */ diff --git a/src/excalidraw-app/index.tsx b/src/excalidraw-app/index.tsx index dab0eda038..860437f3c1 100644 --- a/src/excalidraw-app/index.tsx +++ b/src/excalidraw-app/index.tsx @@ -322,9 +322,8 @@ const ExcalidrawWrapper = () => { }); } } else { - const sceneElements = data.scene.elements; const fileIds = - sceneElements?.reduce((acc, element) => { + data.scene.elements?.reduce((acc, element) => { if (isInitializedImageElement(element)) { return acc.concat(element.fileId); } diff --git a/src/packages/excalidraw/example/App.tsx b/src/packages/excalidraw/example/App.tsx index 72cf08a25f..3399b5caf0 100644 --- a/src/packages/excalidraw/example/App.tsx +++ b/src/packages/excalidraw/example/App.tsx @@ -31,7 +31,10 @@ import { ImportedLibraryData } from "../../../data/types"; import CustomFooter from "./CustomFooter"; import MobileFooter from "./MobileFooter"; import { KEYS } from "../../../keys"; -import { convertToExcalidrawElements } from "../../../data/transform"; +import { + convertToExcalidrawElements, + ExcalidrawProgrammaticAPI, +} from "../../../data/transform"; declare global { interface Window { @@ -143,8 +146,9 @@ export default function App({ appTitle, useCustom, customArgs }: AppProps) { //@ts-ignore initialStatePromiseRef.current.promise.resolve({ ...initialData, - //@ts-ignore - elements: convertToExcalidrawElements(initialData.elements), + elements: convertToExcalidrawElements( + initialData.elements as ExcalidrawProgrammaticAPI["elements"], + ), }); excalidrawAPI.addFiles(imagesArray); }; diff --git a/src/packages/excalidraw/example/initialData.js b/src/packages/excalidraw/example/initialData.tsx similarity index 100% rename from src/packages/excalidraw/example/initialData.js rename to src/packages/excalidraw/example/initialData.tsx