Skip to content

Commit 5a23c97

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 040eddb commit 5a23c97

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@ and this project adheres to
88

99
## [Unreleased]
1010

11-
## Fixed
11+
### Changed
12+
13+
- 🔧(project) change env.d system by using local files #1200
1214

15+
### Fixed
16+
17+
- 🐛(service-worker) Fix useOffline Maximum update depth exceeded #1196
1318
- 🐛(helm) charts generate invalid YAML for collaboration API / WS #890
1419

1520
## [3.4.2] - 2025-07-18
1621

1722
### Changed
1823

1924
- ⚡️(docker) Optimize Dockerfile to use apk with --no-cache #743
20-
- 🔧(project) change env.d system by using local files #1200
2125

2226
### Fixed
2327

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)