clientjs/packages/annotation-dashboard-explorunivers/src/App.js
changeset 0 5f4fcbc80b37
child 6 819a7ab4e3fb
equal deleted inserted replaced
-1:000000000000 0:5f4fcbc80b37
       
     1 import React from 'react';
       
     2 
       
     3 import { HashRouter } from 'react-router-dom';
       
     4 import { ui, layouts, pages } from 'dashboard-components';
       
     5 import PropTypes from 'prop-types';
       
     6 
       
     7 import { FormattedMessage } from 'react-intl';
       
     8 
       
     9 import config from './config.json';
       
    10 
       
    11 import './App.css';
       
    12 
       
    13 const { DefaultLayoutSidebar, DefaultLayout } = layouts;
       
    14 const { ScrollToTop } = ui;
       
    15 
       
    16 const {
       
    17   DocumentsPage,
       
    18   GlossaryPage,
       
    19   ChartsPage,
       
    20   AnnotationsPage,
       
    21   TermPage,
       
    22 } = pages;
       
    23 
       
    24 const version = process.env.REACT_APP_VERSION;
       
    25 const viaBaseUrl = process.env.REACT_APP_VIA_BASE_URL;
       
    26 const discussionUrl = process.env.REACT_APP_DISCUSSION_URL;
       
    27 const {
       
    28   metacategories,
       
    29   topics,
       
    30   documents,
       
    31   title,
       
    32   dashboardId,
       
    33 } = config;
       
    34 
       
    35 const DocumentsPageBanner = ({
       
    36   documentsMap,
       
    37   topics: topicsProp,
       
    38   metacategories: metacategoriesProp,
       
    39   viaBaseUrl: viaBaseUrlProp,
       
    40 }) => (
       
    41   <DocumentsPage
       
    42     documentsMap={documentsMap}
       
    43     topics={topicsProp}
       
    44     metacategories={metacategoriesProp}
       
    45     viaBaseUrl={viaBaseUrlProp}
       
    46   >
       
    47     <div className="row">
       
    48       <h3><a className="scenarioterre-link" href={`${viaBaseUrlProp}http://scenario-terre.space/`} target="_blank" rel="noopener noreferrer"><FormattedMessage id="home.scenarioterre.welcome" defaultMessage="Annotez le site «&nbsp;Scénario Terre&nbsp;»" /></a></h3>
       
    49       <div className="scenarioterre-banner-container">
       
    50         <a className="scenarioterre-banner" href={`${viaBaseUrlProp}http://scenario-terre.space/`} target="_blank" rel="noopener noreferrer">&nbsp;</a>
       
    51       </div>
       
    52     </div>
       
    53   </DocumentsPage>
       
    54 );
       
    55 
       
    56 DocumentsPageBanner.propTypes = {
       
    57   viaBaseUrl: PropTypes.string.isRequired,
       
    58   documentsMap: PropTypes.arrayOf(PropTypes.object).isRequired,
       
    59   metacategories: PropTypes.arrayOf(PropTypes.object).isRequired,
       
    60   topics: PropTypes.arrayOf(PropTypes.string).isRequired,
       
    61 };
       
    62 
       
    63 const App = () => (
       
    64   <HashRouter>
       
    65     <ScrollToTop>
       
    66       <div>
       
    67         <DefaultLayoutSidebar
       
    68           exact
       
    69           path="/"
       
    70           component={DocumentsPageBanner}
       
    71           version={version}
       
    72           metacategories={metacategories}
       
    73           topics={topics}
       
    74           documentsMap={documents}
       
    75           viaBaseUrl={viaBaseUrl}
       
    76           title={title}
       
    77         />
       
    78         <DefaultLayout
       
    79           path="/glossary"
       
    80           component={GlossaryPage}
       
    81           title={title}
       
    82           version={version}
       
    83         />
       
    84         <DefaultLayoutSidebar
       
    85           path="/charts"
       
    86           component={ChartsPage}
       
    87           metacategories={metacategories}
       
    88           topics={topics}
       
    89           title={title}
       
    90           version={version}
       
    91         />
       
    92         <DefaultLayoutSidebar
       
    93           path="/annotations/:tagName?"
       
    94           component={AnnotationsPage}
       
    95           metacategories={metacategories}
       
    96           topics={topics}
       
    97           viaBaseUrl={viaBaseUrl}
       
    98           title={title}
       
    99           version={version}
       
   100         />
       
   101         <DefaultLayoutSidebar
       
   102           path="/term/:term/:activeTab?/:messageId?"
       
   103           component={TermPage}
       
   104           title={title}
       
   105           viaBaseUrl={viaBaseUrl}
       
   106           metacategories={metacategories}
       
   107           topics={topics}
       
   108           version={version}
       
   109           discussionUrl={discussionUrl}
       
   110           dashboardId={dashboardId}
       
   111         />
       
   112       </div>
       
   113     </ScrollToTop>
       
   114   </HashRouter>
       
   115 );
       
   116 
       
   117 export default App;