/**
 * @Move (SQPM)
 * Only used by the Performance module - move to Performance/
 */
import { isNil } from 'lodash-es';
import Typography from '@material-hu/mui/Typography';

import { PeerUserStatus } from 'src/types/performance';
import { useLokaliseTranslation } from 'src/utils/i18n';

import Label from 'src/components/Label';

type Props = {
  status?: PeerUserStatus;
};

const STATUS_COLOR_MAP = {
  [PeerUserStatus.ASSIGNED]: {
    background: '#E3F6F3',
    border: 'transparent',
    label: '#107569',
  },
  [PeerUserStatus.PENDING]: {
    background: '#FFFFFF',
    border: '#D0D1D4',
    label: '#757575',
  },
};

const PeerReviewUserStatus = ({ status }: Props) => {
  const { t } = useLokaliseTranslation(['backoffice_only']);

  if (isNil(status)) {
    return (
      <Typography
        variant="body2"
        color="secondary"
      >
        --
      </Typography>
    );
  }

  return (
    <Label
      color={STATUS_COLOR_MAP[status].background}
      sx={{
        border: '0.5px solid',
        borderColor: STATUS_COLOR_MAP[status].border,
      }}
      size="small"
    >
      <Typography
        variant="caption"
        sx={{ color: STATUS_COLOR_MAP[status].label }}
      >
        {t('backoffice_only:peer_review_user_status.user_status', {
          context: status,
        })}
      </Typography>
    </Label>
  );
};

export default PeerReviewUserStatus;
