Skip to content

Commit d996791

Browse files
committed
fix(eslint-plugin-query): fix no-unstable-deps false positive for useSuspenseQueries
The `no-unstable-deps` rule was previously fixed for `useQueries` with `combine` in PR #9720, but the same false positive persists for `useSuspenseQueries` with `combine`. This extends the fix to also recognize `useSuspenseQueries` with a `combine` property as returning a stable value. Closes #10641
1 parent 0d63459 commit d996791

2 files changed

Lines changed: 22 additions & 3 deletions

File tree

packages/eslint-plugin-query/src/__tests__/no-unstable-deps.test.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,24 @@ const baseTestCases = {
6363
}
6464
`,
6565
},
66+
{
67+
name: `should pass when useSuspenseQueries with combine is passed to ${reactHookAlias} as dependency`,
68+
code: `
69+
${reactHookImport}
70+
import { useSuspenseQueries } from "@tanstack/react-query";
71+
72+
function Component() {
73+
const queries = useSuspenseQueries({
74+
queries: [
75+
{ queryKey: ['test'], queryFn: () => 'test' }
76+
],
77+
combine: (results) => ({ data: results[0]?.data })
78+
});
79+
const callback = ${reactHookInvocation}(() => { queries.data }, [queries]);
80+
return;
81+
}
82+
`,
83+
},
6684
])
6785
.concat([
6886
{

packages/eslint-plugin-query/src/rules/no-unstable-deps/no-unstable-deps.rule.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,13 @@ export const rule = createRule({
112112
allHookNames.includes(node.init.callee.name) &&
113113
helpers.isTanstackQueryImport(node.init.callee)
114114
) {
115-
// Special case for useQueries with combine property - it's stable
115+
// Special case for useQueries/useSuspenseQueries with combine property - it's stable
116116
if (
117-
node.init.callee.name === 'useQueries' &&
117+
(node.init.callee.name === 'useQueries' ||
118+
node.init.callee.name === 'useSuspenseQueries') &&
118119
hasCombineProperty(node.init)
119120
) {
120-
// Don't track useQueries with combine as unstable
121+
// Don't track useQueries/useSuspenseQueries with combine as unstable
121122
return
122123
}
123124
collectVariableNames(node.id, node.init.callee.name)

0 commit comments

Comments
 (0)