JSFiddle - React, Tailwind, and code Playground
by brandondurham
JavaScript
const fields = {
basicInformation: [
{
label: 'First or Preferred Name',
name: 'firstName',
required: true,
type: 'text',
},
{
label: 'Last Name',
name: 'lastName',
required: true,
type: 'text',
},
{
icon: 'mail',
label: 'Email',
name: 'email',
required: true,
type: 'email',
},
],
shippingAddress: [
{
label: 'Shipping Address',
name: 'shippingAddress',
required: true,
type: 'address',
},
{
label: 'Address 2',
name: 'shippingAddress2',
required: false,
type: 'text',
},
],
};
const validFields = ['email', 'lastName', 'shippingAddress'];
console.log('ENTRIES');
console.log(
Object.entries(fields)
.map( // loop through each group and return
([key, value]) => value
.filter(field => field.required)
.map(field => field.name)
.every(v => validFields.includes(v)) && key
).filter(Boolean)
);