From 0f4d7ff64fe57198d0c05a4e45de511a9448afa9 Mon Sep 17 00:00:00 2001 From: Deandre Crayton Date: Sun, 20 May 2018 05:24:52 -0500 Subject: [PATCH] Advanced React Router Practice --- src/App.js | 41 ++++++++++++++++++++++++++++---------- src/components/Charts.js | 11 ++++++++++ src/components/Marquee.js | 2 +- src/components/Profile.js | 4 ++-- src/components/Profiles.js | 5 +++-- src/components/Settings.js | 11 ++++++++++ src/components/SideNav.js | 37 +++++++++++++++++++++++++++------- src/components/Tables.js | 11 ++++++++++ src/components/Wall.js | 11 ++++++++++ 9 files changed, 111 insertions(+), 22 deletions(-) create mode 100644 src/components/Charts.js create mode 100644 src/components/Settings.js create mode 100644 src/components/Tables.js create mode 100644 src/components/Wall.js diff --git a/src/App.js b/src/App.js index 15bddc9..aa0ab78 100644 --- a/src/App.js +++ b/src/App.js @@ -1,21 +1,42 @@ import React from "react"; import TopNav from "./components/TopNav"; import SideNav from "./components/SideNav"; +import Dashboard from "./components/Dashboard"; +import Charts from "./components/Charts"; +import Tables from "./components/Tables"; +import Settings from "./components/Settings"; +import Wall from "./components/Wall"; +import Profiles from "./components/Profiles"; +import Marquee from "./components/Marquee"; +import Profile from "./components/Profile"; +import { BrowserRouter, Switch, Route } from "react-router-dom"; function App() { return ( -
-
- -
- {/* PUT YOUR ROUTES HERE */} + +
+
+ +
+
+ + + + + + + + + + +
+
-
- + ); } diff --git a/src/components/Charts.js b/src/components/Charts.js new file mode 100644 index 0000000..69cf0df --- /dev/null +++ b/src/components/Charts.js @@ -0,0 +1,11 @@ +import React from "react"; + +function Charts(props) { + return ( +
+ Charts +
+ ); +} + +export default Charts; \ No newline at end of file diff --git a/src/components/Marquee.js b/src/components/Marquee.js index 820e8c4..21565c7 100644 --- a/src/components/Marquee.js +++ b/src/components/Marquee.js @@ -1,7 +1,7 @@ import React from "react"; function Marquee(props) { - const message = "hello"; + const message = props.match.params.text; return ( {message} ); diff --git a/src/components/Profile.js b/src/components/Profile.js index c4eb646..bdebdf3 100644 --- a/src/components/Profile.js +++ b/src/components/Profile.js @@ -2,8 +2,8 @@ import React from "react"; import {connect} from "react-redux"; function Profile(props) { - const userId = 0; - const user = props.users.find(u => u.id == userId) || {}; + const userId = parseInt(props.match.params.id, 10); + const user = props.users.find(u => u.id === userId) || {}; return (

{user.firstName} {user.lastName}

diff --git a/src/components/Profiles.js b/src/components/Profiles.js index 3409812..e69f169 100644 --- a/src/components/Profiles.js +++ b/src/components/Profiles.js @@ -1,12 +1,13 @@ import React from "react"; -import {connect} from "react-redux"; +import { connect } from "react-redux"; +import { Link } from "react-router-dom"; function Profiles(props) { const userDivs = props.users.map((user,i) => { return (
{user.firstName} - {user.lastName} - View + View
); }); return ( diff --git a/src/components/Settings.js b/src/components/Settings.js new file mode 100644 index 0000000..a1260f1 --- /dev/null +++ b/src/components/Settings.js @@ -0,0 +1,11 @@ +import React from "react"; + +function Settings(props) { + return ( +
+ Settings +
+ ); +} + +export default Settings; \ No newline at end of file diff --git a/src/components/SideNav.js b/src/components/SideNav.js index 9caaf7c..7c3fa8f 100644 --- a/src/components/SideNav.js +++ b/src/components/SideNav.js @@ -1,26 +1,49 @@ import React from "react"; -// import {Link} from "react-router-dom"; +import { Link } from "react-router-dom"; function SideNav() { return (
  • - {/* Dashboard - */}
  • - + Charts - +
  • - + Tables - + +
  • +
  • + + Settings + +
  • +
  • + + Wall + +
  • +
  • + + Profiles + +
  • +
  • + + FAQ + +
  • +
  • + + Twitter +
); diff --git a/src/components/Tables.js b/src/components/Tables.js new file mode 100644 index 0000000..140ba23 --- /dev/null +++ b/src/components/Tables.js @@ -0,0 +1,11 @@ +import React from "react"; + +function Tables(props) { + return ( +
+ Tables +
+ ); +} + +export default Tables; \ No newline at end of file diff --git a/src/components/Wall.js b/src/components/Wall.js new file mode 100644 index 0000000..b3f654b --- /dev/null +++ b/src/components/Wall.js @@ -0,0 +1,11 @@ +import React from "react"; + +function Wall(props) { + return ( +
+ Wall +
+ ); +} + +export default Wall; \ No newline at end of file