You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mvfront-react/src/Routes.jsx

109 lines
3.0 KiB

4 years ago
import React from "react";
import { Switch, Route } from "react-router-dom";
5 years ago
import Home from "./components/views/Home";
import CreateElection from "./components/views/CreateElection";
import Vote from "./components/views/Vote";
import Result from "./components/views/Result";
5 years ago
import UnknownView from "./components/views/UnknownView";
import UnknownElection from "./components/views/UnknownElection";
import CreateSuccess from "./components/views/CreateSuccess";
import VoteSuccess from "./components/views/VoteSuccess";
5 years ago
function Routes() {
const params = new URLSearchParams(window.location.search);
const urlServer = process.env.REACT_APP_SERVER_URL;
const routesServer = {
setElection: "election/",
getElection: "election/get/:slug",
getResultsElection: "election/results/:slug",
voteElection: "election/vote/:slug"
};
4 years ago
return (
<main className="d-flex flex-column justify-content-center">
<Switch>
<Route exact path="/" component={Home} />
<Route
path="/create-election"
render={props => (
<CreateElection
{...props}
title={params.get("title") ? params.get("title") : ""}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
<Route
path="/vote/:slug"
render={props => (
<Vote
{...props}
slug={props.match.params.slug}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
<Route
path="/result/:handle"
render={props => (
<Result
{...props}
slug={props.match.params.slug}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
<Route
path="/create-success/:handle"
render={props => (
<CreateSuccess
{...props}
slug={props.match.params.slug}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
<Route
path="/vote-success/:handle"
render={props => (
<VoteSuccess
{...props}
slug={props.match.params.slug}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
<Route
path="/unknown-election/:handle"
render={props => (
<UnknownElection
{...props}
slug={props.match.params.slug}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
/>
<Route
render={props => (
<UnknownView
{...props}
urlServer={urlServer}
routesServer={routesServer}
/>
)}
/>
4 years ago
</Switch>
</main>
5 years ago
);
}
export default Routes;