Skip to content

Instantly share code, notes, and snippets.

@vincicat
Created June 20, 2022 14:35
Show Gist options
  • Save vincicat/76f5f4622c09f9e3b9888a60df5b598d to your computer and use it in GitHub Desktop.
Save vincicat/76f5f4622c09f9e3b9888a60df5b598d to your computer and use it in GitHub Desktop.
Hook for properly use `screenReaderEnabled` (RN 0.68+)
import React, { useEffect, useState } from 'react';
import { AccessibilityInfo } from 'react-native';
const useScreenReaderEnabled = () => {
const [screenReaderEnabled, setScreenReaderEnabled] = useState(false);
useEffect(() => {
const screenReaderChangedSubscription = AccessibilityInfo.addEventListener(
"screenReaderChanged",
(screenReaderEnabled) => {
setScreenReaderEnabled(screenReaderEnabled);
}
);
AccessibilityInfo.isScreenReaderEnabled().then((screenReaderEnabled) => {
setScreenReaderEnabled(screenReaderEnabled);
});
return () => {
screenReaderChangedSubscription.remove();
};
}, []);
return screenReaderEnabled;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment