summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context/global-sync.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/app/src/context/global-sync.tsx')
-rw-r--r--packages/app/src/context/global-sync.tsx20
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/app/src/context/global-sync.tsx b/packages/app/src/context/global-sync.tsx
index 86ac9b45a..0cf3570a8 100644
--- a/packages/app/src/context/global-sync.tsx
+++ b/packages/app/src/context/global-sync.tsx
@@ -72,10 +72,16 @@ function createGlobalSync() {
let projectWritten = false
let bootedAt = 0
let bootingRoot = false
+ let eventFrame: number | undefined
+ let eventTimer: ReturnType<typeof setTimeout> | undefined
onCleanup(() => {
active = false
})
+ onCleanup(() => {
+ if (eventFrame !== undefined) cancelAnimationFrame(eventFrame)
+ if (eventTimer !== undefined) clearTimeout(eventTimer)
+ })
const cacheProjects = () => {
setProjectCache(
@@ -348,6 +354,20 @@ function createGlobalSync() {
}
onMount(() => {
+ if (typeof requestAnimationFrame === "function") {
+ eventFrame = requestAnimationFrame(() => {
+ eventFrame = undefined
+ eventTimer = setTimeout(() => {
+ eventTimer = undefined
+ globalSDK.event.start()
+ }, 0)
+ })
+ } else {
+ eventTimer = setTimeout(() => {
+ eventTimer = undefined
+ globalSDK.event.start()
+ }, 0)
+ }
void bootstrap()
})