This is my current code:
// src/components/Main.tsx
import * as React from 'react';
import { ReactElement } from 'react';
import * as styles from '../styles/Main.module.scss';
type MainProps = {
leftBtnGroup: ReactElement[],
rightBtnGroup: ReactElement[],
children: string,
};
const Main = ({ leftBtnGroup, rightBtnGroup, children }: MainProps) => (
<>
<div className={styles.main__btnBar}>
<div className={styles.main__btnBar__leftBtnGrp}>
{
leftBtnGroup.map((btn) => {
btn.props.className += ` ${styles.main__btnBar__btn}`;
return btn;
})
}
</div>
<div className={styles.main__btnBar__rightBtnGrp}>
{
rightBtnGroup.map((btn) => {
btn.props.className += ` ${styles.main__btnBar__btn}`;
return btn;
})
}
</div>
</div>
{children}
</>
);
export default Main;
Two arrays of components are passed into the Main component as input and I want to add a class to each of these components. The function does not know what these components are (i.e. could be buttons, links, divs, or other components) but it can be asserted that they all have a className prop. How can I implement this? When I tried the above, I got this linting error:
ESLint: Assignment to property of function parameter 'btn'.(no-param-reassign)
.main__btnBar__leftBtnGrp > *?