Skip to content

Commit 7c774e7

Browse files
committed
fix
1 parent 983de6b commit 7c774e7

File tree

1 file changed

+16
-16
lines changed

1 file changed

+16
-16
lines changed

src/useAccessibilityInfo.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
import React, { useEffect, useState } from 'react'
2-
import { AccessibilityInfo } from 'react-native'
2+
import { AccessibilityInfo, AccessibilityChangeEvent, AccessibilityEvent } from 'react-native'
33

44

55
export default function useAccessibilityInfo() {
6-
const [screenReaderEnabled, updateScreenReaderInfo] = useState(null)
6+
const [reduceMotionEnabled, setReduceMotionEnabled] = useState(false)
7+
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false)
78

9+
const handleReduceMotionChanged = (enabled: AccessibilityChangeEvent) => setReduceMotionEnabled(enabled)
10+
const handleScreenReaderChanged = (enabled: AccessibilityChangeEvent) => setScreenReaderEnabled(enabled)
811

9-
useEffect(() => {
10-
AccessibilityInfo.fetch().then((isEnabled) => {
11-
updateScreenReaderInfo(isEnabled)
12-
})
13-
}, [])
12+
useEffect(() => {
13+
AccessibilityInfo.isReduceMotionEnabled().then(handleReduceMotionChanged)
14+
AccessibilityInfo.isScreenReaderEnabled().then(handleScreenReaderChanged)
1415

15-
function onChange(isEnabled) {
16-
updateScreenReaderInfo(isEnabled)
17-
}
16+
AccessibilityInfo.addEventListener('reduceMotionChanged', handleReduceMotionChanged as (event: AccessibilityEvent) => void)
17+
AccessibilityInfo.addEventListener('screenReaderChanged', handleScreenReaderChanged as (event: AccessibilityEvent) => void)
1818

19-
useEffect(() => {
20-
AccessibilityInfo.addEventListener('change', onChange)
19+
return () => {
20+
AccessibilityInfo.removeEventListener('reduceMotionChanged', handleReduceMotionChanged as (event: AccessibilityEvent) => void)
21+
AccessibilityInfo.removeEventListener('screenReaderChanged', handleScreenReaderChanged as (event: AccessibilityEvent) => void)
22+
}
23+
}, [])
2124

22-
return () => AccessibilityInfo.removeEventListener('change', onChange)
23-
}, [])
24-
25-
return screenReaderEnabled
25+
return { reduceMotionEnabled, screenReaderEnabled }
2626
}

0 commit comments

Comments
 (0)