Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const releaseLock = () => {
if (lock.get(element) === releaseLock) {
lock.delete(element)
cleanup()
}
}
lock.set(element, releaseLock)
if (!isInViewport(from)) {
return
}
const isParentChanged = container !== element.parentElement
const snapshot = snapshotNode(element, isParentChanged)
snapshot.style.position = `absolute` // TODO more optimization such as contain
await new SynchronousPromise(
(resolve: () => void, reject: () => void) => {
listeners.set(element, () => {
listeners.delete(element)
resolve()
})
cleanup = () => {
listeners.delete(element)
reject()
}
},
)
await writePhase(OptimizeFor.LATENCY)
container.appendChild(snapshot)
cleanup = () => {
try { container.removeChild(snapshot) } catch {}
}