From dee5c2ea8ebed186e08a3c5edff99cc52cdee1cd Mon Sep 17 00:00:00 2001 From: zsviczian Date: Sun, 21 Sep 2025 19:51:02 +0000 Subject: [PATCH] minor cleanup --- packages/element/src/delta.ts | 1 - packages/element/src/newElement.ts | 11 +---------- packages/excalidraw/data/restore.ts | 9 ++++++++- packages/excalidraw/wysiwyg/textWysiwyg.tsx | 1 - 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/packages/element/src/delta.ts b/packages/element/src/delta.ts index 668f44bbf4..e1bff91fd7 100644 --- a/packages/element/src/delta.ts +++ b/packages/element/src/delta.ts @@ -2057,7 +2057,6 @@ export class ElementsDelta implements DeltaContainer { } private static stripIrrelevantProps(partial: ElementPartial): ElementPartial { - // ElementPartial already excludes id, updated, seed; defensively strip if present const { id: _id, updated: _updated, diff --git a/packages/element/src/newElement.ts b/packages/element/src/newElement.ts index 7504f015da..180c0772e7 100644 --- a/packages/element/src/newElement.ts +++ b/packages/element/src/newElement.ts @@ -455,10 +455,6 @@ export const computeStickyNoteFontSize = ( text: string, element: ExcalidrawTextElement, container: ExcalidrawTextContainer, - /** - * Upper cap to which the font size is allowed to grow back during this - * editing session (snapped). If not provided defaults to global max. - */ maxGrowFontSize?: number, ): StickyNoteFontComputationResult => { const step = STICKY_NOTE_FONT_STEP; @@ -468,10 +464,7 @@ export const computeStickyNoteFontSize = ( const snap = (size: number) => Math.max( STICKY_NOTE_MIN_FONT_SIZE, - Math.min( - STICKY_NOTE_MAX_FONT_SIZE, - Math.max(step, Math.floor(size / step) * step), - ), + Math.max(step, Math.floor(size / step) * step), ); let size = snap(element.fontSize); @@ -548,8 +541,6 @@ export const refreshTextDimensions = ( : textElement.width, ); } - // NOTE: sticky note font auto-sizing is handled during editing (WYSIWYG) - // so we keep refresh logic unchanged to avoid side-effects elsewhere. const dimensions = getAdjustedDimensions(textElement, elementsMap, text); return { text, ...dimensions }; }; diff --git a/packages/excalidraw/data/restore.ts b/packages/excalidraw/data/restore.ts index 2a71dd7c26..57b6f27ca1 100644 --- a/packages/excalidraw/data/restore.ts +++ b/packages/excalidraw/data/restore.ts @@ -185,7 +185,8 @@ const restoreElementWithProperties = < element: T, extra: Pick< T, - // @ts-ignore + // This extra Pick ensure no excess properties are passed. + // @ts-ignore TS complains here but type checks the call sites fine. keyof K > & Partial>, @@ -195,6 +196,8 @@ const restoreElementWithProperties = < const base: Pick = { type: nextType, version: element.version || 1, + // all elements must have version > 0 so getSceneVersion() will pick up + // newly added elements versionNonce: element.versionNonce ?? 0, index: element.index ?? null, isDeleted: element.isDeleted ?? false, @@ -248,12 +251,16 @@ const restoreElementWithProperties = < } const ret = { + // spread the original element properties to not lose unknown ones + // for forward-compatibility ...element, + // normalized properties ...base, ...getNormalizedDimensions(base), ...extra, } as unknown as T; + // strip legacy props (migrated in previous steps) delete (ret as any).strokeSharpness; delete (ret as any).boundElementIds; diff --git a/packages/excalidraw/wysiwyg/textWysiwyg.tsx b/packages/excalidraw/wysiwyg/textWysiwyg.tsx index a7325b1877..838e9bb526 100644 --- a/packages/excalidraw/wysiwyg/textWysiwyg.tsx +++ b/packages/excalidraw/wysiwyg/textWysiwyg.tsx @@ -131,7 +131,6 @@ export const textWysiwyg = ({ return false; }; - // Sticky note: remember initial font size for this edit session let stickyNoteInitialFontSize: number | null = null; const updateWysiwygStyle = () => {