UNPKG

react-native-a11y

Version:

Improvements of a11y for ReactNative, this library improve work with reader and keyboard focus and reader in general.

32 lines (26 loc) 837 B
import { useState, useMemo } from 'react'; import { StyleSheet } from 'react-native'; import type { FocusStyle, OnFocusChangeFn } from '../../../components'; export const useFocusStyle = ( focusStyle?: FocusStyle, onFocusChange?: OnFocusChangeFn ) => { const [focused, setFocusStatus] = useState(false); const onFocusChangeHandler: OnFocusChangeFn = (event) => { setFocusStatus(event.nativeEvent.isFocused); onFocusChange?.(event); }; const fStyle = useMemo(() => { if (!focusStyle) return focused ? styles.defaultHighlight : undefined; return typeof focusStyle === 'function' ? focusStyle({ focused }) : focusStyle; }, [focused, focusStyle]); return { onFocusChangeHandler, fStyle, }; }; const styles = StyleSheet.create({ defaultHighlight: { backgroundColor: '#9999' }, });