Skip to content

Commit eaf2baa

Browse files
committed
fix(svelte-query): don't wrap observers in derived to avoid state_unsafe_mutation
fixes useIsFetching and useIsMutating in svelte 5 adapter
1 parent 746b9c5 commit eaf2baa

File tree

3 files changed

+21
-20
lines changed

3 files changed

+21
-20
lines changed

packages/svelte-query/src/createBaseQuery.svelte.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,15 @@ export function createBaseQuery<
3939
})
4040

4141
/** Creates the observer */
42-
const observer = $derived(
43-
new Observer<TQueryFnData, TError, TData, TQueryData, TQueryKey>(
44-
client,
45-
untrack(() => resolvedOptions),
46-
),
42+
const observer = new Observer<
43+
TQueryFnData,
44+
TError,
45+
TData,
46+
TQueryData,
47+
TQueryKey
48+
>(
49+
client,
50+
untrack(() => resolvedOptions),
4751
)
4852

4953
function createResult() {

packages/svelte-query/src/createMutation.svelte.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,24 +26,23 @@ export function createMutation<
2626
): CreateMutationResult<TData, TError, TVariables, TContext> {
2727
const client = useQueryClient(queryClient?.())
2828

29-
const observer = $derived(
30-
new MutationObserver<TData, TError, TVariables, TContext>(
31-
client,
32-
options(),
33-
),
29+
const observer = new MutationObserver<TData, TError, TVariables, TContext>(
30+
client,
31+
options(),
3432
)
3533

36-
const mutate = $state<
37-
CreateMutateFunction<TData, TError, TVariables, TContext>
38-
>((variables, mutateOptions) => {
34+
const mutate = <CreateMutateFunction<TData, TError, TVariables, TContext>>((
35+
variables,
36+
mutateOptions,
37+
) => {
3938
observer.mutate(variables, mutateOptions).catch(noop)
4039
})
4140

4241
$effect.pre(() => {
4342
observer.setOptions(options())
4443
})
4544

46-
const result = $state(observer.getCurrentResult())
45+
const result = observer.getCurrentResult()
4746

4847
const unsubscribe = observer.subscribe((val) => {
4948
notifyManager.batchCalls(() => {

packages/svelte-query/src/createQueries.svelte.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,10 @@ export function createQueries<
216216
}),
217217
)
218218

219-
const observer = $derived(
220-
new QueriesObserver<TCombinedResult>(
221-
client,
222-
untrack(() => resolvedQueryOptions),
223-
untrack(() => combine as QueriesObserverOptions<TCombinedResult>),
224-
),
219+
const observer = new QueriesObserver<TCombinedResult>(
220+
client,
221+
untrack(() => resolvedQueryOptions),
222+
untrack(() => combine as QueriesObserverOptions<TCombinedResult>),
225223
)
226224

227225
function createResult() {

0 commit comments

Comments
 (0)