diff --git a/.changeset/preact-v11-peer-dependency.md b/.changeset/preact-v11-peer-dependency.md
new file mode 100644
index 00000000000..360bf58d6fd
--- /dev/null
+++ b/.changeset/preact-v11-peer-dependency.md
@@ -0,0 +1,7 @@
+---
+'@tanstack/preact-query': patch
+'@tanstack/preact-query-devtools': patch
+'@tanstack/preact-query-persist-client': patch
+---
+
+Add Preact v11 to peerDependencies
diff --git a/packages/preact-query-devtools/package.json b/packages/preact-query-devtools/package.json
index fa7ecd600fd..01b7025d86b 100644
--- a/packages/preact-query-devtools/package.json
+++ b/packages/preact-query-devtools/package.json
@@ -89,6 +89,6 @@
},
"peerDependencies": {
"@tanstack/preact-query": "workspace:^",
- "preact": "^10.0.0"
+ "preact": "^10.0.0 || ^11.0.0-0"
}
}
diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx
index 75e69860edd..33862ef5108 100644
--- a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx
+++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtools.test.tsx
@@ -1,5 +1,5 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
-import { render } from '@testing-library/preact'
+import { act, render } from '@testing-library/preact'
import { QueryClient, QueryClientProvider } from '@tanstack/preact-query'
import { TanstackQueryDevtools } from '@tanstack/query-devtools'
import type { PreactQueryDevtools as PreactQueryDevtoolsComponent } from '../PreactQueryDevtools'
@@ -216,7 +216,9 @@ describe('PreactQueryDevtools', () => {
it('should call "unmount" on the devtools instance when the component unmounts', () => {
const { unmount } = render()
- unmount()
+ act(() => {
+ unmount()
+ })
expect(unmountMock).toHaveBeenCalled()
})
diff --git a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx
index 3eedadff41f..586987bb9a1 100644
--- a/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx
+++ b/packages/preact-query-devtools/src/__tests__/PreactQueryDevtoolsPanel.test.tsx
@@ -1,5 +1,5 @@
import { beforeEach, describe, expect, it, vi } from 'vitest'
-import { render } from '@testing-library/preact'
+import { act, render } from '@testing-library/preact'
import { QueryClient, QueryClientProvider } from '@tanstack/preact-query'
import { TanstackQueryDevtoolsPanel } from '@tanstack/query-devtools'
import type { PreactQueryDevtoolsPanel as PreactQueryDevtoolsPanelComponent } from '../PreactQueryDevtoolsPanel'
@@ -175,7 +175,9 @@ describe('PreactQueryDevtoolsPanel', () => {
const { unmount } = render(
,
)
- unmount()
+ act(() => {
+ unmount()
+ })
expect(unmountMock).toHaveBeenCalled()
})
diff --git a/packages/preact-query-devtools/test-setup.ts b/packages/preact-query-devtools/test-setup.ts
index e7b70f873e2..c509f3ae57f 100644
--- a/packages/preact-query-devtools/test-setup.ts
+++ b/packages/preact-query-devtools/test-setup.ts
@@ -4,8 +4,11 @@ import { notifyManager } from '@tanstack/preact-query'
import { afterEach } from 'vitest'
// https://testing-library.com/docs/preact-testing-library/api#cleanup
+// Wrap in act so effect cleanups Preact defers on unmount run synchronously
afterEach(() => {
- cleanupRTL()
+ act(() => {
+ cleanupRTL()
+ })
})
// Wrap notifications with act to make sure Preact knows about Query updates
diff --git a/packages/preact-query-persist-client/package.json b/packages/preact-query-persist-client/package.json
index 40d63c1f334..09fe66c4deb 100644
--- a/packages/preact-query-persist-client/package.json
+++ b/packages/preact-query-persist-client/package.json
@@ -69,6 +69,6 @@
},
"peerDependencies": {
"@tanstack/preact-query": "workspace:^",
- "preact": "^10.0.0"
+ "preact": "^10.0.0 || ^11.0.0-0"
}
}
diff --git a/packages/preact-query-persist-client/test-setup.ts b/packages/preact-query-persist-client/test-setup.ts
index 62f11f2a29d..31f5c884e75 100644
--- a/packages/preact-query-persist-client/test-setup.ts
+++ b/packages/preact-query-persist-client/test-setup.ts
@@ -4,8 +4,11 @@ import { afterEach } from 'vitest'
import { notifyManager } from '@tanstack/preact-query'
// https://testing-library.com/docs/preact-testing-library/api#cleanup
+// Wrap in act so effect cleanups Preact defers on unmount run synchronously
afterEach(() => {
- cleanupRTL()
+ act(() => {
+ cleanupRTL()
+ })
})
// Wrap notifications with act to make sure Preact knows about Query updates
diff --git a/packages/preact-query/package.json b/packages/preact-query/package.json
index c31954e2239..0624802a683 100644
--- a/packages/preact-query/package.json
+++ b/packages/preact-query/package.json
@@ -75,6 +75,6 @@
"typescript-eslint": "^8.54.0"
},
"peerDependencies": {
- "preact": "^10.0.0"
+ "preact": "^10.0.0 || ^11.0.0-0"
}
}
diff --git a/packages/preact-query/src/__tests__/useQuery.test.tsx b/packages/preact-query/src/__tests__/useQuery.test.tsx
index 137e8c43936..c77a806c1c9 100644
--- a/packages/preact-query/src/__tests__/useQuery.test.tsx
+++ b/packages/preact-query/src/__tests__/useQuery.test.tsx
@@ -3966,7 +3966,9 @@ describe('useQuery', () => {
rendered.getByText('fetched data')
const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout')
- rendered.unmount()
+ act(() => {
+ rendered.unmount()
+ })
expect(setTimeoutSpy).not.toHaveBeenCalled()
})
@@ -3990,7 +3992,9 @@ describe('useQuery', () => {
const setTimeoutSpy = vi.spyOn(globalThis.window, 'setTimeout')
- rendered.unmount()
+ act(() => {
+ rendered.unmount()
+ })
expect(setTimeoutSpy).toHaveBeenLastCalledWith(
expect.any(Function),
diff --git a/packages/preact-query/src/utils.ts b/packages/preact-query/src/utils.ts
index 94a449dd18a..85a31aba89c 100644
--- a/packages/preact-query/src/utils.ts
+++ b/packages/preact-query/src/utils.ts
@@ -67,7 +67,7 @@ export function useSyncExternalStoreWithSelector(
selector: (snapshot: TSnapshot) => TSelected,
isEqual: (a: TSelected, b: TSelected) => boolean,
): TSelected {
- const selectedSnapshotRef = useRef()
+ const selectedSnapshotRef = useRef(undefined)
const getSelectedSnapshot = () => {
const snapshot = getSnapshot()
diff --git a/packages/preact-query/test-setup.ts b/packages/preact-query/test-setup.ts
index 478cb07bdd8..ec9fac062b2 100644
--- a/packages/preact-query/test-setup.ts
+++ b/packages/preact-query/test-setup.ts
@@ -4,8 +4,11 @@ import { act, cleanup as cleanupRTL } from '@testing-library/preact'
import { afterEach } from 'vitest'
// https://testing-library.com/docs/preact-testing-library/api#cleanup
+// Wrap in act so effect cleanups Preact defers on unmount run synchronously
afterEach(() => {
- cleanupRTL()
+ act(() => {
+ cleanupRTL()
+ })
})
// Wrap notifications with act to make sure React knows about React Query updates