Home Reference Source

src/components/errors/index.js

import React from 'react';
import ErrorPage from './ErrorPage';
import DocumentTitle from '../core/DocumentTitle';

const PAGE_NOT_FOUND = 'Страница не найдена';
const ACCESS_DENIED = 'Доступ запрещён';
const INNER_APPLICATION_ERROR = 'Внутренняя ошибка приложения';

const NotFoundPage = () => (
  <React.Fragment>
    <DocumentTitle title={PAGE_NOT_FOUND} />
    <ErrorPage status={404} error={PAGE_NOT_FOUND} />
  </React.Fragment>
);
const ForbiddenPage = () => (
  <React.Fragment>
    <DocumentTitle title={ACCESS_DENIED} />
    <ErrorPage status={403} error={ACCESS_DENIED} />
  </React.Fragment>
);
const ServerErrorPage = () => (
  <React.Fragment>
    <DocumentTitle title={INNER_APPLICATION_ERROR} />
    <ErrorPage status={500} error={INNER_APPLICATION_ERROR} />
  </React.Fragment>
);

const createErrorPages = ({
  notFound = NotFoundPage,
  forbidden = ForbiddenPage,
  serverError = ServerErrorPage,
} = {}) => {
  return [
    {
      status: 403,
      component: forbidden,
    },
    {
      status: 404,
      component: notFound,
    },
    {
      status: 500,
      component: serverError,
    },
  ];
};

export default createErrorPages;