clientjs/packages/dashboard-components/src/layouts/DefaultLayout.jsx
author ymh <ymh.work@gmail.com>
Mon, 04 Apr 2022 17:02:10 +0200
changeset 26 eb14941af2e7
parent 17 c2c97df0a642
permissions -rw-r--r--
Added tag 0.2.2 for changeset 7f7cdcd01dea

import React from 'react';
import { Route } from 'react-router-dom';
import PropTypes from 'prop-types';

import Loader from '../ui/Loader';
import MainNav from '../ui/MainNav';

const DefaultLayout = ({
  // eslint-disable-next-line react/prop-types
  component: Component,
  title,
  version,
  ...rest
}) => (
  <Route
    {...rest}
    render={matchProps => (
      <div>
        <Loader />
        <div className="container">
          <h1 className="mb-5 mt-5">{ title }</h1>
          <MainNav />
          <Component {...matchProps} {...rest} />
        </div>
        <footer className="text-center text-muted small mt-3 mb-3">
          {`v. ${version} - 2017 - `}
          <a href="http://www.iri.centrepompidou.fr">IRI</a>
          {' / '}
          <a href="https://web.hypothes.is">hypothes.is</a>
        </footer>
      </div>
    )}
  />
);

DefaultLayout.propTypes = {
  title: PropTypes.string.isRequired,
  version: PropTypes.string.isRequired,
};

export default DefaultLayout;