import { ActionButton, IconButton, Stack } from "@fluentui/react"; import { UniqueKeysHeader } from "Explorer/Panes/AddCollectionPanel/AddCollectionPanelUtility"; import React from "react"; import { userContext } from "UserContext"; export interface UniqueKeysComponentProps { uniqueKeys: string[]; setUniqueKeys: React.Dispatch>; } export const UniqueKeysComponent = (props: UniqueKeysComponentProps): JSX.Element => { const { uniqueKeys, setUniqueKeys } = props; const updateUniqueKeysOnChange = (value: string, uniqueKeyToReplaceIndex: number): void => { const updatedUniqueKeys = uniqueKeys.map((uniqueKey: string, uniqueKeyIndex: number) => { if (uniqueKeyToReplaceIndex === uniqueKeyIndex) { return value; } return uniqueKey; }); setUniqueKeys(updatedUniqueKeys); }; const deleteUniqueKeyOnClick = (uniqueKeyToDeleteIndex: number): void => { const updatedUniqueKeys = uniqueKeys.filter((_, uniqueKeyIndex) => uniqueKeyToDeleteIndex !== uniqueKeyIndex); setUniqueKeys(updatedUniqueKeys); }; const addUniqueKeyOnClick = (): void => { setUniqueKeys([...uniqueKeys, ""]); }; return ( {UniqueKeysHeader()} {uniqueKeys.map((uniqueKey: string, uniqueKeyIndex: number): JSX.Element => { return ( ) => { updateUniqueKeysOnChange(event.target.value, uniqueKeyIndex); }} /> { deleteUniqueKeyOnClick(uniqueKeyIndex); }} /> ); })} { addUniqueKeyOnClick(); }} > Add unique key ); };