@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
27 lines (20 loc) • 783 B
text/typescript
import * as React from "react";
import * as FOCUS_EVENTS from "@applicaster/zapp-react-native-utils/appUtils/focusManager/events";
import { useFocusManager } from "@applicaster/zapp-react-native-utils/focusManager";
export const useCellState = (id: string) => {
const focusManager = useFocusManager();
const [currentCellFocused, setCurrentCellFocused] = React.useState(
focusManager.isFocused(id)
);
React.useEffect(() => {
const handler = (focusable) => {
const isChildren = focusManager.isFocusableChildOf(focusable, id);
setCurrentCellFocused(isChildren);
};
focusManager.on(FOCUS_EVENTS.FOCUS, handler);
return () => {
focusManager.removeHandler(FOCUS_EVENTS.FOCUS, handler);
};
}, [id]);
return currentCellFocused;
};