UNPKG

@applicaster/zapp-react-native-ui-components

Version:

Applicaster Zapp React Native ui components for the Quick Brick App

40 lines (32 loc) 1.02 kB
import * as React from "react"; import { pluck, uniq } from "ramda"; import { quickBrickLogger } from "@applicaster/zapp-react-native-utils/logger"; import { getNonUniqueValues } from "./utils"; const logger = quickBrickLogger .addSubsystem("packages") .addSubsystem("zapp-react-native-ui-components") .addSubsystem("Components") .addSubsystem("FocusableList") .addSubsystem("index.tsx"); const getIds = pluck("id"); type Props = { componentId?: number | string; items: ZappEntry[] | ZappUIComponent[] | any[]; }; export const useCheckItemIdsForUnique = ({ componentId, items }: Props) => { React.useEffect(() => { const ids = getIds(items); const uniqIds = uniq(ids); if (ids.length !== uniqIds.length) { const nonUniqueIds = getNonUniqueValues(ids); logger.warning({ message: "Items have non-unique ids. This is our requirement to backend.", data: { componentId, nonUniqueIds, }, }); } }, [items.length]); };