import { FC } from 'react';

import { IconArrowLeft, IconX } from '@material-hu/icons/tabler';
import IconButton from '@material-hu/mui/IconButton';
import Stack from '@material-hu/mui/Stack';

import HuPills from '@material-hu/components/design-system/Pills';
import HuTitle from '@material-hu/components/design-system/Title';

import { useLokaliseTranslation } from 'src/utils/i18n';

type Props = {
  goBack: () => void;
  title: string;
  pill?: string;
  withBackArrow?: boolean;
};

const SectionHeader: FC<Props> = props => {
  const { goBack, pill, title, withBackArrow = false } = props;
  const { t } = useLokaliseTranslation('general');

  return (
    <Stack
      sx={{
        alignItems: 'center',
        alignSelf: 'flex-start',
        backgroundColor: ({ palette }) =>
          palette.new.background.layout.tertiary,
        borderBottom: ({ palette }) => `1px solid ${palette.divider}`,
        flexDirection: 'row',
        justifyContent: 'space-between',
        px: 3,
        py: 1,
        width: '100%',
      }}
    >
      <Stack
        sx={{
          alignItems: 'center',
          flexDirection: 'row',
          gap: 1,
        }}
      >
        {withBackArrow && (
          <IconButton
            onClick={goBack}
            aria-label={t('GENERAL:BACK')}
            sx={{ color: ({ palette }) => palette.new.text.neutral.default }}
          >
            <IconArrowLeft />
          </IconButton>
        )}
        <HuTitle
          variant="L"
          title={title}
        />
        {pill && (
          <HuPills
            label={pill}
            type="neutral"
            hasIcon={false}
          />
        )}
      </Stack>
      <IconButton
        onClick={goBack}
        aria-label={t('GENERAL:BACK')}
        sx={{ color: ({ palette }) => palette.new.text.neutral.default }}
      >
        <IconX />
      </IconButton>
    </Stack>
  );
};

export default SectionHeader;
