@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
60 lines (51 loc) • 1.22 kB
text/typescript
import { isNil, pathOr } from "ramda";
import { useFocusable } from "@applicaster/zapp-react-native-ui-components/Components/Focusable/index.android";
import {
getNextFocusRight,
getNextFocusLeft,
getNextFocusDown,
getNextFocusUp,
} from "./utils";
export const useParentFocus = ({
parentFocused,
disableNextFocusUp,
disableNextFocusRight,
disableNextFocusDown,
disableNextFocusLeft,
parentNextFocusUp,
parentNextFocusRight,
parentNextFocusDown,
parentNextFocusLeft,
}) => {
const parentFocus = useFocusable() || {};
const focused = isNil(parentFocused)
? pathOr(false, ["focused"], parentFocus)
: parentFocused;
const nextFocusRight = getNextFocusRight(
disableNextFocusRight,
parentNextFocusRight,
parentFocus
);
const nextFocusLeft = getNextFocusLeft(
disableNextFocusLeft,
parentNextFocusLeft,
parentFocus
);
const nextFocusDown = getNextFocusDown(
disableNextFocusDown,
parentNextFocusDown,
parentFocus
);
const nextFocusUp = getNextFocusUp(
disableNextFocusUp,
parentNextFocusUp,
parentFocus
);
return {
focused,
nextFocusDown,
nextFocusUp,
nextFocusLeft,
nextFocusRight,
};
};