/* eslint-disable sonarjs/no-small-switch */
import { Button, Result } from 'ui/elements';

function handleRetry() {
  window.location.reload();
}

function openSupport() {
  window.open('https://help.evoleasing.ru', '_blank').focus();
}

const RetryButton = <Button action={handleRetry}>Попробовать еще раз</Button>;
const SupportButton = <Button action={openSupport}>Обратиться в поддержку</Button>;

export function CRMError({ error }) {
  return (
    <Result
      status="500"
      title="CRM не отвечает. Попробуйте позже."
      subTitle={`${error || ''}`}
      extra={RetryButton}
    />
  );
}

export function Forbidden() {
  return <Result status="403" title="Доступ запрещен" extra={SupportButton} />;
}

export function Error({ statusCode, ...props }) {
  switch (statusCode) {
    case 403: {
      return <Forbidden />;
    }
    default: {
      return <CRMError {...props} />;
    }
  }
}
