From 6e14ca6e5f3c3c6b1ad691c7a0038b01fe4366a3 Mon Sep 17 00:00:00 2001 From: Hunter Johnston <64506580+huntabyte@users.noreply.github.com> Date: Mon, 7 Oct 2024 20:40:30 -0400 Subject: [PATCH] next: fix `untrack` cleanups (#746) --- .changeset/moody-islands-chew.md | 5 +++++ .../bits-ui/src/lib/bits/command/command.svelte.ts | 2 +- .../bits-ui/src/lib/bits/pin-input/pin-input.svelte.ts | 2 +- packages/bits-ui/src/lib/bits/select/select.svelte.ts | 2 +- packages/bits-ui/src/lib/bits/tabs/tabs.svelte.ts | 2 +- .../bits/utilities/focus-scope/useFocusScope.svelte.ts | 10 ++-------- 6 files changed, 11 insertions(+), 12 deletions(-) create mode 100644 .changeset/moody-islands-chew.md diff --git a/.changeset/moody-islands-chew.md b/.changeset/moody-islands-chew.md new file mode 100644 index 000000000..84cf1caa0 --- /dev/null +++ b/.changeset/moody-islands-chew.md @@ -0,0 +1,5 @@ +--- +"bits-ui": patch +--- + +fix: cleanup a few untracks that were left unhandled diff --git a/packages/bits-ui/src/lib/bits/command/command.svelte.ts b/packages/bits-ui/src/lib/bits/command/command.svelte.ts index b39c07f44..cb9d22818 100644 --- a/packages/bits-ui/src/lib/bits/command/command.svelte.ts +++ b/packages/bits-ui/src/lib/bits/command/command.svelte.ts @@ -836,7 +836,7 @@ class CommandItemState { this.id.current; this.#group?.id.current; if (!this.#forceMount.current) { - untrack(() => { + return untrack(() => { return this.root.registerItem(this.id.current, this.#group?.id.current); }); } diff --git a/packages/bits-ui/src/lib/bits/pin-input/pin-input.svelte.ts b/packages/bits-ui/src/lib/bits/pin-input/pin-input.svelte.ts index 671d5532d..95fe3d9e9 100644 --- a/packages/bits-ui/src/lib/bits/pin-input/pin-input.svelte.ts +++ b/packages/bits-ui/src/lib/bits/pin-input/pin-input.svelte.ts @@ -115,7 +115,7 @@ class PinInputRootState { $effect(() => { let unsub = noop; - untrack(() => { + return untrack(() => { const input = this.#inputRef.current; const container = this.#ref.current; diff --git a/packages/bits-ui/src/lib/bits/select/select.svelte.ts b/packages/bits-ui/src/lib/bits/select/select.svelte.ts index ccf4a166f..ca42430ab 100644 --- a/packages/bits-ui/src/lib/bits/select/select.svelte.ts +++ b/packages/bits-ui/src/lib/bits/select/select.svelte.ts @@ -379,7 +379,7 @@ export class SelectContentState { $effect(() => { this.root.open.current; - untrack(() => { + return untrack(() => { let cleanup = [noop]; afterTick(() => { diff --git a/packages/bits-ui/src/lib/bits/tabs/tabs.svelte.ts b/packages/bits-ui/src/lib/bits/tabs/tabs.svelte.ts index 06879ee8a..338da1ed5 100644 --- a/packages/bits-ui/src/lib/bits/tabs/tabs.svelte.ts +++ b/packages/bits-ui/src/lib/bits/tabs/tabs.svelte.ts @@ -183,7 +183,7 @@ class TabsTriggerState { const id = this.#id.current; const value = this.#value.current; - untrack(() => { + return untrack(() => { const deregister = this.#root.registerTrigger(id, value); return () => { deregister(); diff --git a/packages/bits-ui/src/lib/bits/utilities/focus-scope/useFocusScope.svelte.ts b/packages/bits-ui/src/lib/bits/utilities/focus-scope/useFocusScope.svelte.ts index 48ed3b11e..cc1b490fb 100644 --- a/packages/bits-ui/src/lib/bits/utilities/focus-scope/useFocusScope.svelte.ts +++ b/packages/bits-ui/src/lib/bits/utilities/focus-scope/useFocusScope.svelte.ts @@ -172,16 +172,10 @@ export function useFocusScope({ return () => { if (!container) return; - container.removeEventListener( - AUTOFOCUS_ON_MOUNT, - untrack(() => onOpenAutoFocus.current) - ); + container.removeEventListener(AUTOFOCUS_ON_MOUNT, onOpenAutoFocus.current); const destroyEvent = new CustomEvent(AUTOFOCUS_ON_DESTROY, EVENT_OPTIONS); - container.addEventListener( - AUTOFOCUS_ON_DESTROY, - untrack(() => onCloseAutoFocus.current) - ); + container.addEventListener(AUTOFOCUS_ON_DESTROY, onCloseAutoFocus.current); container.dispatchEvent(destroyEvent); setTimeout(() => {