diff --git a/src/App.js b/src/App.js index a0e2b1b33990c4bac80e3562ec47720f37c8d240..269c83b7271a1807ec18d7cdf6d82660d32a916c 100644 --- a/src/App.js +++ b/src/App.js @@ -1,33 +1,12 @@ import React from "react"; -import { HashRouter, Route, Redirect } from "react-router-dom"; import "./global.css"; -import CreateForm from "./pages/CreateForm"; -import AnswerForm from "./pages/AnswerForm"; -import Header from "./components/header/header"; -import Footer from "./components/footer/footer"; -import SignUp from "./pages/SignUp"; -import SignIn from "./pages/SignIn"; -import ListForms from "./pages/ListForms"; -import EditForm from "./pages/EditForm"; -import GetForm from "./pages/GetForm"; -import VisualizeForm from "./pages/VisualizeForm"; +import Routes from "./routes"; +import { BrowserRouter as Router } from "react-router-dom"; function App() { return ( - <HashRouter> - <Header /> - <Route exact path="/"> - <Redirect to="/SignIn" /> - </Route> - <Route path="/SignUp" component={SignUp} /> - <Route path="/SignIn" component={SignIn} /> - <Route path="/visualize/:id" component={VisualizeForm} /> - <Route path="/create" component={CreateForm} /> - <Route path="/answer/:id" component={AnswerForm} /> - <Route path="/edit/:id" component={EditForm} /> - <Route path="/list/:id" component={ListForms} /> - <Route path="/form/:id" component={GetForm} /> - <Footer /> - </HashRouter> + <Router> + <Routes /> + </Router> ); } diff --git a/src/components/header/header.jsx b/src/components/header/header.jsx index 696c62b7b1a2cc2d4255e0967bcd9cf9ddc83675..61c014d714c623c1a48fbf0c3665a3ca8c206861 100644 --- a/src/components/header/header.jsx +++ b/src/components/header/header.jsx @@ -70,7 +70,6 @@ export default function Header() { return false; } useEffect(() => { - console.log("O TOKEN MUDOU"); setIsLoged(!isLoged); }, [window.sessionStorage.getItem("token")]); diff --git a/src/pages/SignUp.js b/src/pages/SignUp.js index 8b3ac05e7178861162c43e33ccbea1f15bd768c0..ae6891bc51a213015ed9f971d4ffcd9b91c5bb5d 100644 --- a/src/pages/SignUp.js +++ b/src/pages/SignUp.js @@ -262,7 +262,6 @@ export default function SignUp() { </Grid> <Grid> <IconButton - type="submit" size="medium" className={classes.button} id="whiteTextedButton" diff --git a/src/routes.js b/src/routes.js new file mode 100644 index 0000000000000000000000000000000000000000..a54616a69d895d1078698e55090214edec467246 --- /dev/null +++ b/src/routes.js @@ -0,0 +1,62 @@ +import React, { useEffect } from "react"; +import CreateForm from "./pages/CreateForm"; +import AnswerForm from "./pages/AnswerForm"; +import Header from "./components/header/header"; +import Footer from "./components/footer/footer"; +import SignUp from "./pages/SignUp"; +import SignIn from "./pages/SignIn"; +import ListForms from "./pages/ListForms"; +import EditForm from "./pages/EditForm"; +import GetForm from "./pages/GetForm"; +import VisualizeForm from "./pages/VisualizeForm"; +import { BrowserRouter, Route, Switch, Redirect } from "react-router-dom"; + +const PrivateRoute = ({ component: Component, ...rest }) => { + let usr; + console.log(rest); + if (rest.path === "/list/:id") { + if ( + rest.computedMatch.params.id === window.sessionStorage.getItem("userId") + ) { + usr = true; + } + } + return ( + <Route + {...rest} + render={(props) => + usr && window.sessionStorage.getItem("token") !== null ? ( + <Component {...props} /> + ) : ( + <Redirect to={{ pathname: "/" }} /> + ) + } + /> + ); +}; + +const Routes = () => ( + <BrowserRouter> + <Header /> + <Switch> + <Route exact path="/"> + <Redirect to="/SignIn" /> + </Route> + <Route exact path="/SignUp" component={SignUp} /> + <Route exact path="/SignIn" component={SignIn} /> + <PrivateRoute + exact + path="/visualize/:id" + component={() => <VisualizeForm />} + /> + <PrivateRoute exact path="/create" component={() => <CreateForm />} /> + <PrivateRoute exact path="/answer/:id" component={() => <AnswerForm />} /> + <PrivateRoute exact path="/edit/:id" component={() => <EditForm />} /> + <PrivateRoute exact path="/list/:id" component={() => <ListForms />} /> + <PrivateRoute exact path="/form/:id" component={() => <GetForm />} /> + </Switch> + <Footer /> + </BrowserRouter> +); + +export default Routes;