Skip to content

Commit 797b872

Browse files
committed
🐛(service-worker) Fix useOffline Maximum update depth exceeded
Sentry was reporting a "Maximum update depth exceeded" error comming from the `useOffline` hook. We updated the hook to avoid mutation. Seems to impact mainly edge browsers.
1 parent ca09f9a commit 797b872

File tree

1 file changed

+7
-3
lines changed
  • src/frontend/apps/impress/src/features/service-worker/hooks

1 file changed

+7
-3
lines changed

src/frontend/apps/impress/src/features/service-worker/hooks/useOffline.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,17 @@ interface IsOfflineState {
1414
setIsOffline: (value: boolean) => void;
1515
}
1616

17-
export const useIsOffline = create<IsOfflineState>((set) => ({
17+
export const useIsOffline = create<IsOfflineState>((set, get) => ({
1818
isOffline: typeof navigator !== 'undefined' && !navigator.onLine,
19-
setIsOffline: (value: boolean) => set({ isOffline: value }),
19+
setIsOffline: (value: boolean) => {
20+
if (get().isOffline !== value) {
21+
set({ isOffline: value });
22+
}
23+
},
2024
}));
2125

2226
export const useOffline = () => {
23-
const { setIsOffline } = useIsOffline();
27+
const setIsOffline = useIsOffline((state) => state.setIsOffline);
2428

2529
useEffect(() => {
2630
const handleMessage = (event: MessageEvent<OfflineMessageData>) => {

0 commit comments

Comments
 (0)