Skip to content

Commit 91e2afb

Browse files
committed
just ignore stale hydrations if the client changes
1 parent e78a470 commit 91e2afb

File tree

1 file changed

+8
-11
lines changed

1 file changed

+8
-11
lines changed

src/persistQueryClient/PersistQueryClientProvider.tsx

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,33 +19,30 @@ export const PersistQueryClientProvider = ({
1919
}: PersistQueryClientProviderProps): JSX.Element => {
2020
const [isHydrating, setIsHydrating] = React.useState(true)
2121
const refs = React.useRef({ persistOptions, onSuccess })
22-
const previousPromise = React.useRef(Promise.resolve())
2322

2423
React.useEffect(() => {
2524
refs.current = { persistOptions, onSuccess }
2625
})
2726

2827
React.useEffect(() => {
28+
let isStale = false
2929
setIsHydrating(true)
3030
const [unsubscribe, promise] = persistQueryClient({
3131
...refs.current.persistOptions,
3232
queryClient: client,
3333
})
3434

35-
async function handlePersist() {
36-
try {
37-
await previousPromise.current
38-
previousPromise.current = promise
39-
await promise
35+
promise.then(() => {
36+
if (!isStale) {
4037
refs.current.onSuccess?.()
41-
} finally {
4238
setIsHydrating(false)
4339
}
44-
}
45-
46-
void handlePersist()
40+
})
4741

48-
return unsubscribe
42+
return () => {
43+
isStale = true
44+
unsubscribe()
45+
}
4946
}, [client])
5047

5148
return (

0 commit comments

Comments
 (0)