I have a customInput with type select, it's onChange is running a setState.
my state object looks like this
const [upload, setUpload] = useState({
    uploadType: 'files',
    selectHeader: [],
    defaultFields: [
      {
        baseField: 'First name',
      },
      {
        baseField: 'Last name',
      },
      {
        baseField: 'Phone number',
      },
      {
        baseField: 'Company',
      },
      {
        baseField: 'Email',
      },
    ] 
  });
When the onChange runs, I am successfully adding a new object to the selectHeader array with a
{value: firstName, index: 1} 
The issue is that when a user selects a new value for a header at index 1 ( or any index for that matter) I want to check if there is duplicate in this array.
Im not sure how to do this inline with setState and cant seem to find a good thread on this example
Here is the CustomInput with type select below
<thead>
        <tr>
          {
            fileContacts.map((contact) => (
                <th scope="col" key={fileContacts.indexOf(contact)}>
        <WizardInput // this is just a fancy CustomInput at its core
        type="select"
        defaultValue={"Do not Import"}
        tag={CustomInput}
        name="selectHeader"
        id="selectHeader"
        onChange={({ target }) => {
          setUpload({...upload, selectHeader: [...upload.selectHeader, {value: target.value, index:fileContacts.indexOf(contact)}]})
          // this is adding a duplicate object if the user changes the header value twice.
        }}
        innerRef={register}
        errors={errors}
        options={['First Name', 'Last name', 'Phone', 'Email']}
      />
            </th>  
            ))}
        </tr>
      </thead>
 
     
     
     
    