Skip to content

Commit 3e65d75

Browse files
committed
48
1 parent b033211 commit 3e65d75

File tree

3 files changed

+30
-6
lines changed

3 files changed

+30
-6
lines changed

src/components/BlogList.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import Card from '../components/Card';
44
import { Link } from 'react-router-dom';
55
import { useHistory } from 'react-router';
66
import LoadingSpinner from '../components/LoadingSpinner';
7+
import { bool } from 'prop-types';
78

8-
const BlogList = () => {
9+
const BlogList = ({ isAdmin }) => {
910
const history = useHistory();
1011
const [posts, setPosts] = useState([]);
1112
const [loading, setLoading] = useState(true);
@@ -40,25 +41,33 @@ const BlogList = () => {
4041
}
4142

4243
return posts.filter(post => {
43-
return post.publish
44+
return isAdmin || post.publish
4445
}).map(post => {
4546
return (
4647
<Card
4748
key={post.id}
4849
title={post.title}
4950
onClick={() => history.push(`/blogs/${post.id}`)}
5051
>
51-
<div>
52+
{isAdmin ? (<div>
5253
<button
5354
className="btn btn-danger btn-sm"
5455
onClick={(e) => deleteBlog(e, post.id)}
5556
>
5657
Delete
5758
</button>
58-
</div>
59+
</div>) : null}
5960
</Card>
6061
);
6162
})
6263
};
6364

65+
BlogList.propTypes = {
66+
isAdmin: bool
67+
};
68+
69+
BlogList.defaultProps = {
70+
isAdmin: false
71+
}
72+
6473
export default BlogList;

src/components/NavBar.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,22 @@ const NavBar = () => {
55
<nav className="navbar navbar-dark bg-dark">
66
<div className="container">
77
<Link className="navbar-brand" to="/">Home</Link>
8-
<ul className="navbar-nav">
8+
<ul
9+
style={{
10+
flexDirection: 'row'
11+
}}
12+
className="navbar-nav"
13+
>
14+
<li className="nav-item me-2">
15+
<NavLink
16+
activeClassName="active"
17+
className="nav-link"
18+
aria-current="page"
19+
to="/admin"
20+
>
21+
Admin
22+
</NavLink>
23+
</li>
924
<li className="nav-item">
1025
<NavLink
1126
activeClassName="active"

src/pages/AdminPage.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ const AdminPage = () => {
1212
</Link>
1313
</div>
1414
</div>
15-
<BlogList />
15+
<BlogList isAdmin={true} />
1616
</div>
1717
);
1818
};

0 commit comments

Comments
 (0)