I have the component pasted below that outputs a grid of 6 items. These 6 items are currently hardcoded as gridItems.
I would like to understand how I can make this component dynamic. Where I can tell the component, via props, which items (designer, manager, ...) to render.
Currently, the component will output 6 items. How can I make it so by doing something like:
<RoleCardGrid designer manager />
Renders the component with only 2 of the items.
Example 2:
<RoleCardGrid designer manager doctor sales />
Renders the component with only 4 of the items.
Thank you for the help.
Here is my current component:
import React from 'react';
import RoleCard from 'components/RoleCard';
let gridItems = [
{ roleTitle: "designer",
linkTo: "example.com",
description: "Desc goes here",
},
{ roleTitle: "manager",
linkTo: "example.com",
description: "Desc goes here",
},
{ roleTitle:"freelancer",
linkTo: "example.com",
description: "Desc goes here",
},
{ roleTitle:"engineer",
linkTo: "example.com",
description: "Desc goes here",
},
{ roleTitle:"doctor",
linkTo: "example.com",
description: "Desc goes here",
},
{ roleTitle:"sales",
linkTo: "example.com",
description: "Desc goes here",
}
];
function renderGridItems(items) {
let rendered = items.map((item, index) => {
return (<div key={`gridItem-${index}`}>
<RoleCard
key={`roleGridItem-${index}`}
roleTitle={item.roleTitle}
linkTo={item.linkTo}
description={item.description}
/>
</div>);
});
return rendered;
}
const RoleCardGrid = () => (
<Grid
maxColumns={[1, 2, 2]}
gridGap={[40, 40, 40]}
maxWidth={[null, 760, 760]}
rcLabel="rolePages"
>
{renderGridItems(gridItems)}
</Grid>
);
export default RoleCardGrid;