mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
simplify
This commit is contained in:
parent
fa2713197a
commit
8cf726b8f9
1 changed files with 52 additions and 70 deletions
|
@ -30,6 +30,7 @@ import {
|
|||
import { wrapText } from "@excalidraw/element/textWrapping";
|
||||
|
||||
import {
|
||||
assertNever,
|
||||
CLASSES,
|
||||
getFontString,
|
||||
isProdEnv,
|
||||
|
@ -937,25 +938,14 @@ const convertElementType = <
|
|||
return element;
|
||||
}
|
||||
|
||||
const origType = isSharpArrow(element)
|
||||
? "sharpArrow"
|
||||
: isCurvedArrow(element)
|
||||
? "curvedArrow"
|
||||
: isElbowArrow(element)
|
||||
? "elbowArrow"
|
||||
: element.type;
|
||||
|
||||
if (element.type === targetType) {
|
||||
return element;
|
||||
}
|
||||
|
||||
ShapeCache.delete(element);
|
||||
|
||||
if (
|
||||
isConvertibleGenericType(origType) &&
|
||||
isConvertibleGenericType(targetType)
|
||||
) {
|
||||
const nextElement = bumpVersion(
|
||||
if (isConvertibleGenericType(targetType)) {
|
||||
return bumpVersion(
|
||||
newElement({
|
||||
...element,
|
||||
type: targetType,
|
||||
|
@ -969,42 +959,33 @@ const convertElementType = <
|
|||
: element.roundness,
|
||||
}),
|
||||
);
|
||||
|
||||
switch (nextElement.type) {
|
||||
case "rectangle":
|
||||
return nextElement as ExcalidrawRectangleElement;
|
||||
case "diamond":
|
||||
return nextElement as ExcalidrawDiamondElement;
|
||||
case "ellipse":
|
||||
return nextElement as ExcalidrawEllipseElement;
|
||||
}
|
||||
}
|
||||
|
||||
if (isConvertibleLinearType(element.type)) {
|
||||
if (targetType === "line") {
|
||||
const nextElement = newLinearElement({
|
||||
if (isConvertibleLinearType(targetType)) {
|
||||
switch (targetType) {
|
||||
case "line": {
|
||||
return bumpVersion(
|
||||
newLinearElement({
|
||||
...element,
|
||||
type: "line",
|
||||
});
|
||||
|
||||
return bumpVersion(nextElement);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (targetType === "sharpArrow") {
|
||||
const nextElement = newArrowElement({
|
||||
case "sharpArrow": {
|
||||
return bumpVersion(
|
||||
newArrowElement({
|
||||
...element,
|
||||
type: "arrow",
|
||||
elbowed: false,
|
||||
roundness: null,
|
||||
startArrowhead: app.state.currentItemStartArrowhead,
|
||||
endArrowhead: app.state.currentItemEndArrowhead,
|
||||
});
|
||||
|
||||
return bumpVersion(nextElement);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (targetType === "curvedArrow") {
|
||||
const nextElement = newArrowElement({
|
||||
case "curvedArrow": {
|
||||
return bumpVersion(
|
||||
newArrowElement({
|
||||
...element,
|
||||
type: "arrow",
|
||||
elbowed: false,
|
||||
|
@ -1013,23 +994,24 @@ const convertElementType = <
|
|||
},
|
||||
startArrowhead: app.state.currentItemStartArrowhead,
|
||||
endArrowhead: app.state.currentItemEndArrowhead,
|
||||
});
|
||||
|
||||
return bumpVersion(nextElement);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
if (targetType === "elbowArrow") {
|
||||
const nextElement = newArrowElement({
|
||||
case "elbowArrow": {
|
||||
return bumpVersion(
|
||||
newArrowElement({
|
||||
...element,
|
||||
type: "arrow",
|
||||
elbowed: true,
|
||||
fixedSegments: null,
|
||||
roundness: null,
|
||||
});
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return bumpVersion(nextElement);
|
||||
}
|
||||
}
|
||||
assertNever(targetType, `unhandled conversion type: ${targetType}`);
|
||||
|
||||
return element;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue