Skip to content

Commit 210913c

Browse files
authored
Merge pull request #44 from Priyami/tableview
Toggle between Card/Table View
2 parents 8f26ca8 + 56ed9ba commit 210913c

File tree

9 files changed

+108
-5
lines changed

9 files changed

+108
-5
lines changed

src/assets/images/card.svg

Lines changed: 1 addition & 0 deletions
Loading

src/assets/images/table.svg

Lines changed: 1 addition & 0 deletions
Loading

src/components/Resources/Resources.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,4 @@
3434
.resourceLink:hover {
3535
background-color: rgba(0, 122, 124, 0.8);
3636
}
37+

src/components/Resources/Resources.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,17 @@ import '../../assets/css/App.css';
33
import './Resources.css';
44
import ResourcesList from '../data/data.json';
55
import { Link } from "react-router-dom";
6+
import Toggle from "../Toggle"
7+
8+
9+
610

711
export default function Resources() {
8-
return (
12+
return (
913
<>
10-
<div className="grid">
11-
{
14+
<Toggle />
15+
<div className="grid">
16+
{
1217
ResourcesList.map(resource =>
1318
<article key={resource.id}>
1419
<div className="text">{resource.name}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
.table {
2+
text-align: center;
3+
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
4+
border-collapse: collapse;
5+
border: 0px solid #ddd;
6+
width: 100%;
7+
padding: 40px 0px 0px 500px;
8+
}
9+
10+
.table td, .table th {
11+
border: 1px solid #ddd;
12+
padding: 40px;
13+
padding-right: 78px;
14+
}
15+
16+
.table tr:nth-child(even){background-color: #f2f2f2;}
17+
18+
.table tr:hover {background-color: #ddd;}
19+
20+
.table th {
21+
padding-top: 12px;
22+
padding-bottom: 12px;
23+
text-align: center;
24+
background-color: #4CAF50;
25+
color: white;
26+
}
27+

src/components/Resources/TableView.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import React from 'react';
2+
import ResourcesList from '../data/data.json';
3+
import { Link } from "react-router-dom";
4+
import './TableView.css';
5+
import Toggle from "../Toggle";
6+
7+
export default function TableView() {
8+
9+
return (
10+
<>
11+
<Toggle />
12+
<div className="table">
13+
<th>ID</th>
14+
<th>Name</th>
15+
<th>URL</th>
16+
{
17+
ResourcesList.map(resource =>
18+
19+
<tr key={resource.id}>
20+
<td>{resource.id}</td>
21+
<td>{resource.name}</td>
22+
<td>{<Link className="resourceLink" to={`/resources/${resource.id}`}><span>More info</span></Link>}</td>
23+
</tr>
24+
25+
)
26+
}
27+
28+
</div>
29+
</>
30+
);
31+
}

src/components/Router.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,22 @@ import Resources from "./Resources/Resources";
66
import Footer from "./Footer/Footer";
77
import SingleResource from "./SingleResource/SingleResource";
88
import Contact from "./ContactUs/Contact";
9+
import TableView from "./Resources/TableView";
10+
911

1012
const Router = () => (
13+
1114
<BrowserRouter>
1215
<Header />
16+
1317
<Switch>
1418
<Route exact path="/" component={App} />
1519
<Route exact path="/resources" component={Resources} />
1620
<Route path="/resources/:id" component={SingleResource} />
1721
<Route exact path="/contact" component={Contact} />
22+
<Route exact path="/TableView" component={TableView} />
1823
</Switch>
1924
<Footer/>
2025
</BrowserRouter>
2126
);
22-
23-
export default Router;
27+
export default Router;

src/components/Toggle.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
.flex-container {
2+
display: flex;
3+
justify-content: flex-end;
4+
}
5+
6+
.flex-container > button{
7+
background-color: white;
8+
width: 50px;
9+
height: 50px;
10+
text-align: center;
11+
}

src/components/Toggle.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import card from '../assets/images/card.svg';
2+
import table from '../assets/images/table.svg';
3+
import React from "react";
4+
import { useHistory } from 'react-router-dom';
5+
import './Toggle.css';
6+
7+
8+
export default function Toggle(){
9+
const history = useHistory();
10+
return (
11+
<>
12+
<div className="flex-container">
13+
14+
<button onClick={() => history.push('/TableView')}><img alt ="table" src={table}></img></button>
15+
<button onClick={() => history.push('/resources')}><img alt ="card" src={card}></img></button>
16+
17+
</div>
18+
</>
19+
20+
);
21+
22+
}

0 commit comments

Comments
 (0)