@applicaster/zapp-react-native-ui-components
Version:
Applicaster Zapp React Native ui components for the Quick Brick App
93 lines (73 loc) • 1.58 kB
text/typescript
import { uniq } from "ramda";
export const getNextFocusDown = (
disableNextFocusDown,
upperNextFocusDown,
parentFocus
) => {
if (disableNextFocusDown) {
return null;
}
if (upperNextFocusDown) {
return upperNextFocusDown;
}
if (parentFocus.nextFocusDown) {
return parentFocus.nextFocusDown;
}
return null;
};
export const getNextFocusUp = (
disableNextFocusUp,
upperNextFocusUp,
parentFocus
) => {
if (disableNextFocusUp) {
return null;
}
if (upperNextFocusUp) {
return upperNextFocusUp;
}
if (parentFocus.nextFocusUp) {
return parentFocus.nextFocusUp;
}
return null;
};
export const getNextFocusLeft = (
disableNextFocusLeft,
upperNextFocusLeft,
parentFocus
) => {
if (disableNextFocusLeft) {
return null;
}
if (upperNextFocusLeft) {
return upperNextFocusLeft;
}
if (parentFocus.nextFocusLeft) {
return parentFocus.nextFocusLeft;
}
return null;
};
export const getNextFocusRight = (
disableNextFocusRight,
upperNextFocusRight,
parentFocus
) => {
if (disableNextFocusRight) {
return null;
}
if (upperNextFocusRight) {
return upperNextFocusRight;
}
if (parentFocus.nextFocusRight) {
return parentFocus.nextFocusRight;
}
return null;
};
const getCount = (element, elements): number =>
elements.filter((el) => el === element).length;
export const getNonUniqueValues = (ids: string[]): string[] => {
const uniqIds = uniq(ids);
return uniqIds.reduce((acc, id) => {
return getCount(id, ids) >= 2 ? [...acc, id] : acc;
}, []);
};