Newer
Older
/*Copyright (C) 2019 Centro de Computacao Cientifica e Software Livre
Departamento de Informatica - Universidade Federal do Parana
This file is part of Plataforma Integrada MEC.
Plataforma Integrada MEC is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Plataforma Integrada MEC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Plataforma Integrada MEC. If not, see <http://www.gnu.org/licenses/>.*/
import React, { useContext, useEffect, useState } from 'react';
Vinícius de Lima Gonçalves
committed
import Home from './Pages/Home';
import Search from './Pages/Search'
import Header from './Components/Header'
import EcFooter from './Components/EcFooter';
import GNUAGPLfooter from './Components/AGPLFooter';
import UserPage from './Pages/UserPage';
import TabResoursePub from './Pages/TabsHelp/TabResoursePub';
import TabResourseFind from './Pages/TabsHelp/TabResourseFind';
import TabNetPart from './Pages/TabsHelp/TabNetPart';
import TabManageAc from './Pages/TabsHelp/TabManageAc';
import PasswordRecoveryPage from './Pages/PasswordRecoveryPage.js'
import PageProfessor from './Pages/PageProfessor.js'
import ResourcePage from './Pages/ResourcePage';
import {BrowserRouter, Switch, Route } from 'react-router-dom';
Vinícius de Lima Gonçalves
committed
import { Store } from './Store'

Lucas Eduardo Schoenfelder
committed
import TermsPage from './Pages/TermsPage.js'
import PublicationPermissionsPage from './Pages/PublicationPermissionsPage.js'
import TabPlataformaMEC from './Pages/TabsHelp/TabPlataformaMEC';
import ItemStore from './Pages/ItemStore.js'
import EditProfilePage from './Pages/EditProfilePage.js'

Lucas Eduardo Schoenfelder
committed
import PublicUserPage from './Pages/PublicUserPage.js'
import UploadPage from './Pages/UploadPage.js'
import EditLearningObjectPage from './Pages/EditLearningObjectPage.js'
import SiteMap from './Pages/SiteMap'
import Accessibility from './Pages/Accessibility'
import CollectionPage from './Pages/CollectionPage.js'
import FormationMaterialPage from './Pages/FormationMaterialPage.js';
import FormationMaterialIframe from './Pages/FormationMaterialIframe.js';
Vinícius de Lima Gonçalves
committed
export default function App(){
// eslint-disable-next-line
const { state, dispatch } = useContext(Store)
const [ hideFooter, setHideFooter ] = useState(false);
useEffect(() => {
setHideFooter(String(window.location.href).includes('iframe-colecao'));
}, [ window.location.href ]);
Vinícius de Lima Gonçalves
committed
useEffect(() => {
dispatch({
type: 'WINDOW_SIZE',
innerWindow: {
width: window.innerWidth,
height: window.innerHeight
}
})
}, [])
Vinícius de Lima Gonçalves
committed
useEffect(() => {
const setWindowSize = () => {
dispatch({
type: 'WINDOW_SIZE',
innerWindow: {
width: window.innerWidth,
height: window.innerHeight
}
})
Vinícius de Lima Gonçalves
committed
}
Vinícius de Lima Gonçalves
committed
return () => window.removeEventListener('resize', setWindowSize)
}, [window.innerWidth, window.innerHeight])
Vinícius de Lima Gonçalves
committed
return(
<BrowserRouter basename="/react">
Vinícius de Lima Gonçalves
committed
<Header />
<div style={{backgroundImage: "linear-gradient(to right,#ff7f00,#e81f4f,#673ab7,#00bcd4)", height:"5px"}}></div>
<link href="https://fonts.googleapis.com/css?family=Kalam|Pompiere|Roboto&display=swap" rel="stylesheet"/>
Vinícius de Lima Gonçalves
committed
<Switch>
<Route path="/" exact={true} component={Home}/>
Vinícius de Lima Gonçalves
committed
<Route path="/busca" component={Search} />
<Route path="/perfil" component={UserPage} />
<Route path="/editarperfil" component={EditProfilePage} />
<Route path="/recurso/:recursoId" component={ResourcePage}/>

Lucas Eduardo Schoenfelder
committed
<Route path="/termos-publicar-recurso" component={TermsPage}/>
<Route path="/permission" component={PublicationPermissionsPage}/>
{/*<Route path="termos-de-uso#publicacoes-de-usuario" component={}*/}
<Route path="/termos" component={UserTerms}/>
<Route path="/teste" component={Teste}/>
<Route path="/mapa-site" component={SiteMap}/>
<Route path="/acessibilidade" component={Accessibility}/>
<Route path="/publicando-recurso" component={TabResoursePub}/>
<Route path="/encontrando-recurso" component={TabResourseFind}/>
<Route path="/participando-da-rede" component={TabNetPart}/>
<Route path="/gerenciando-conta" component={TabManageAc}/>
<Route path="/plataforma-mec" component={TabPlataformaMEC}/>
<Route path="/recuperar-senha" component={PasswordRecoveryPage}/>
<Route path="/usuario-publico/:userId" component={PublicUserPage}/>
<Route path="/editar-recurso/:recursoId" component={EditLearningObjectPage}/>
<Route path='/professor' component={PageProfessor}/>
<Route path="/upload" component={UploadPage}/>
<Route path='/loja' component={ItemStore} />
<Route path='/colecao-do-usuario/:id' component={CollectionPage} />
<Route path='/colecao' component={FormationMaterialPage} />
<Route path='/topico' component={FormationMaterialPage} />
<Route path='/iframe-colecao' component={FormationMaterialIframe} />
Vinícius de Lima Gonçalves
committed
</Switch>
{ !hideFooter &&
<div>
<EcFooter/>
<GNUAGPLfooter/>
</div>
}
Vinícius de Lima Gonçalves
committed
</BrowserRouter>
)