import ListItemIcon from '@mui/material/ListItemIcon';
import ListItemText from '@mui/material/ListItemText';
import MenuItem from '@mui/material/MenuItem';
import CheckIcon from '@mui/icons-material/CheckSharp';
import PropTypes from 'prop-types';

/**
 * LanguageSettings ~ the workspace sub menu to change the language
 * of the application
 */
export function LanguageSettings({ handleClick, languages }) {
  return (
    <>
      {languages.map((language) => (
        <MenuItem
          key={language.locale}
          lang={language.locale}
          onClick={() => {
            handleClick(language.locale);
          }}
        >
          <ListItemIcon>{language.current && <CheckIcon />}</ListItemIcon>
          <ListItemText primaryTypographyProps={{ variant: 'body1' }}>{language.label}</ListItemText>
        </MenuItem>
      ))}
    </>
  );
}

LanguageSettings.propTypes = {
  handleClick: PropTypes.func.isRequired,
  languages: PropTypes.arrayOf(
    PropTypes.shape({
      current: PropTypes.bool.isRequired,
      label: PropTypes.string.isRequired,
      locale: PropTypes.string.isRequired,
    }),
  ).isRequired,
};
