chore(core): cleanup
Signed-off-by: braks <78412429+bcakmakoglu@users.noreply.github.com>
This commit is contained in:
@@ -141,20 +141,31 @@ watch(
|
||||
watch([() => node.extent, () => nodeExtent], ([nodeExtent, globalExtent], [oldNodeExtent, oldGlobalExtent]) => {
|
||||
// update position if extent has actually changed
|
||||
if (nodeExtent !== oldNodeExtent || globalExtent !== oldGlobalExtent) {
|
||||
// todo: can we solve this without a timeout? Without the timeout the initial extent is not properly calculated
|
||||
setTimeout(clampPosition, 1)
|
||||
if (isParentExtent()) {
|
||||
// todo: can we solve this without a timeout? Without the timeout the initial extent is not properly calculated
|
||||
setTimeout(clampPosition, 1)
|
||||
} else {
|
||||
clampPosition()
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
// clamp initial position to nodes' extent
|
||||
if (node.extent === 'parent' || typeof node.extent === 'object') {
|
||||
// if extent is parent, we need dimensions to properly clamp the position
|
||||
if (isParentExtent()) {
|
||||
until(() => node.initialized)
|
||||
.toBe(true)
|
||||
.then(clampPosition)
|
||||
} else {
|
||||
}
|
||||
// if extent is not parent, we can clamp it immediately
|
||||
else {
|
||||
clampPosition()
|
||||
}
|
||||
|
||||
function isParentExtent() {
|
||||
return node.extent === 'parent' || (typeof node.extent === 'object' && 'range' in node.extent && node.extent.range === 'parent')
|
||||
}
|
||||
|
||||
/** this re-calculates the current position, necessary for clamping by a node's extent */
|
||||
function clampPosition() {
|
||||
const { computedPosition, position } = calcNextPosition(node, node.computedPosition, nodeExtent, parentNode)
|
||||
|
||||
Reference in New Issue
Block a user