limit which linear elements can be switched

This commit is contained in:
Ryan Di 2025-04-16 18:04:16 +10:00
parent beb0bd1528
commit 8e9e0e2709
2 changed files with 48 additions and 14 deletions

View file

@ -379,8 +379,29 @@ export const getSwitchableTypeFromElements = (
}
if (onlyLinear) {
// check at least some linear element is switchable
// for a linear to be swtichable:
// - no labels
// - not bound to anything
let linear = true;
for (const element of elements) {
if (
isArrowElement(element) &&
(element.startBinding !== null || element.endBinding !== null)
) {
linear = false;
} else if (element.boundElements && element.boundElements.length > 0) {
linear = false;
} else {
linear = true;
break;
}
}
return {
linear: true,
linear,
generic: false,
};
}