This commit is contained in:
dwelle
2026-04-03 16:34:26 +02:00
parent d9e8a33aa4
commit 3e53dcd956
28 changed files with 986 additions and 56 deletions
+27
View File
@@ -1,4 +1,5 @@
import {
DEFAULT_FREE_DRAW_STROKE_SHAPE,
getSizeFromPoints,
randomInteger,
getUpdatedTimestamp,
@@ -18,6 +19,8 @@ import type {
ElementsMap,
ExcalidrawElbowArrowElement,
ExcalidrawElement,
ExcalidrawFreeDrawElement,
FreeDrawStrokeShape,
NonDeletedSceneElementsMap,
} from "./types";
@@ -177,6 +180,30 @@ export const newElementWith = <TElement extends ExcalidrawElement>(
};
};
export const newFreeDrawElementWithStrokeShape = <
TElement extends ExcalidrawFreeDrawElement,
>(
element: TElement,
strokeShape: FreeDrawStrokeShape,
): TElement => {
if (strokeShape === DEFAULT_FREE_DRAW_STROKE_SHAPE) {
if (!("strokeShape" in element)) {
return element;
}
const nextElement = newElementWith(
element,
{} as ElementUpdate<TElement>,
true,
);
delete (nextElement as Mutable<Partial<TElement>>).strokeShape;
return nextElement;
}
return newElementWith(element, {
strokeShape,
} as ElementUpdate<TElement>);
};
/**
* Mutates element, bumping `version`, `versionNonce`, and `updated`.
*