diff --git a/packages/excalidraw/data/restore.ts b/packages/excalidraw/data/restore.ts index 25f2033f94..1b531c4840 100644 --- a/packages/excalidraw/data/restore.ts +++ b/packages/excalidraw/data/restore.ts @@ -509,9 +509,17 @@ export const restoreElement = ( name: element.name ?? null, }); case "frame": + const hasBackgroundEnabled = Object.prototype.hasOwnProperty.call( + element, + "backgroundEnabled", + ); + const backgroundEnabled = (element as any).backgroundEnabled ?? false; return restoreElementWithProperties(element, { name: element.name ?? null, - backgroundEnabled: (element as any).backgroundEnabled ?? false, + backgroundEnabled, + ...(hasBackgroundEnabled + ? {} + : { backgroundColor: DEFAULT_ELEMENT_PROPS.backgroundColor }), }); // Don't use default case so as to catch a missing an element type case. diff --git a/packages/excalidraw/tests/data/restore.test.ts b/packages/excalidraw/tests/data/restore.test.ts index 1ed8b5f059..321424f647 100644 --- a/packages/excalidraw/tests/data/restore.test.ts +++ b/packages/excalidraw/tests/data/restore.test.ts @@ -95,7 +95,7 @@ describe("restoreElements", () => { null, )[0] as ExcalidrawFrameElement; - expect(restoredFrame.backgroundColor).toBe("#ffc9c9"); + expect(restoredFrame.backgroundColor).toBe("transparent"); expect(restoredFrame.backgroundEnabled).toBe(false); });