Skip to content

Commit 53fd7b5

Browse files
committed
Adapt unsubscription for new Event Emitter API
1 parent f673372 commit 53fd7b5

File tree

4 files changed

+44
-8
lines changed

4 files changed

+44
-8
lines changed

src/useAccessibilityInfo.ts

+15-2
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,22 @@ function useAccessibilityStateListener(
2121
}
2222

2323
AccessibilityInfo[initializerName]().then(setIsEnabled)
24-
AccessibilityInfo.addEventListener(eventName, setIsEnabled)
2524

26-
return () => AccessibilityInfo.removeEventListener(eventName, setIsEnabled)
25+
const subscription = AccessibilityInfo.addEventListener(
26+
eventName,
27+
setIsEnabled,
28+
)
29+
30+
return () => {
31+
// @ts-expect-error - React Native >= 0.65
32+
if (typeof subscription?.remove === 'function') {
33+
// @ts-expect-error - need update @types/[email protected]
34+
subscription.remove()
35+
} else {
36+
// React Native < 0.65
37+
AccessibilityInfo.removeEventListener(eventName, setIsEnabled)
38+
}
39+
}
2740
}, [eventName, initializerName])
2841

2942
return isEnabled

src/useAppState.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,17 @@ export function useAppState() {
1010
setAppState(newState)
1111
}
1212

13-
AppState.addEventListener('change', onChange)
13+
const subscription = AppState.addEventListener('change', onChange)
1414

1515
return () => {
16-
AppState.removeEventListener('change', onChange)
16+
// @ts-expect-error - React Native >= 0.65
17+
if (typeof subscription?.remove === 'function') {
18+
// @ts-expect-error - need update @types/[email protected]
19+
subscription.remove()
20+
} else {
21+
// React Native < 0.65
22+
AppState.removeEventListener('change', onChange)
23+
}
1724
}
1825
}, [])
1926

src/useDeviceOrientation.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,17 @@ export function useDeviceOrientation() {
2121
})
2222
}
2323

24-
Dimensions.addEventListener('change', onChange)
24+
const subscription = Dimensions.addEventListener('change', onChange)
2525

2626
return () => {
27-
Dimensions.removeEventListener('change', onChange)
27+
// @ts-expect-error - React Native >= 0.65
28+
if (typeof subscription?.remove === 'function') {
29+
// @ts-expect-error - need update @types/[email protected]
30+
subscription.remove()
31+
} else {
32+
// React Native < 0.65
33+
Dimensions.removeEventListener('change', onChange)
34+
}
2835
}
2936
}, [])
3037

src/useDimensions.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,18 @@ export function useDimensions() {
1818
}
1919

2020
useEffect(() => {
21-
Dimensions.addEventListener('change', onChange)
21+
const subscription = Dimensions.addEventListener('change', onChange)
2222

23-
return () => Dimensions.removeEventListener('change', onChange)
23+
return () => {
24+
// @ts-expect-error - React Native >= 0.65
25+
if (typeof subscription?.remove === 'function') {
26+
// @ts-expect-error - need update @types/[email protected]
27+
subscription.remove()
28+
} else {
29+
// React Native < 0.65
30+
Dimensions.removeEventListener('change', onChange)
31+
}
32+
}
2433
}, [])
2534

2635
return dimensions

0 commit comments

Comments
 (0)