@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
text/typescript
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]);
};