diff --git a/package-lock.json b/package-lock.json
index 3841a5b..b52e94c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1154,6 +1154,25 @@
}
}
},
+ "@material-ui/icons": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/@material-ui/icons/-/icons-4.5.1.tgz",
+ "integrity": "sha512-YZ/BgJbXX4a0gOuKWb30mBaHaoXRqPanlePam83JQPZ/y4kl+3aW0Wv9tlR70hB5EGAkEJGW5m4ktJwMgxQAeA==",
+ "requires": {
+ "@babel/runtime": "^7.4.4"
+ }
+ },
+ "@material-ui/lab": {
+ "version": "4.0.0-alpha.29",
+ "resolved": "https://registry.npmjs.org/@material-ui/lab/-/lab-4.0.0-alpha.29.tgz",
+ "integrity": "sha512-lF8PHp7IkJUvbH8L9IrTCYfMtwMlAFmp0Weoc4kgLJuJMW3JAUQ2NMpyIhy3jcTJjxH/LhK+y6cKYALx2c0O1g==",
+ "requires": {
+ "@babel/runtime": "^7.4.4",
+ "@material-ui/utils": "^4.4.0",
+ "clsx": "^1.0.4",
+ "prop-types": "^15.7.2"
+ }
+ },
"@material-ui/styles": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/@material-ui/styles/-/styles-4.5.0.tgz",
@@ -2119,6 +2138,43 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
},
+ "axios": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
+ "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
+ "requires": {
+ "follow-redirects": "1.5.10",
+ "is-buffer": "^2.0.2"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "follow-redirects": {
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
+ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
+ "requires": {
+ "debug": "=3.1.0"
+ }
+ },
+ "is-buffer": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
+ "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A=="
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
"axobject-query": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz",
diff --git a/package.json b/package.json
index ff96b00..ec5e7b0 100644
--- a/package.json
+++ b/package.json
@@ -3,9 +3,12 @@
"version": "0.1.0",
"private": true,
"dependencies": {
+ "@material-ui/core": "^4.5.1",
+ "@material-ui/icons": "^4.5.1",
+ "@material-ui/lab": "^4.0.0-alpha.29",
+ "axios": "^0.19.0",
"json-server": "^0.15.1",
"npm-run-all": "^4.1.5",
- "@material-ui/core": "^4.5.1",
"react": "16.10.2",
"react-dom": "16.10.2",
"react-router-dom": "5.1.2",
diff --git a/src/components/PersonalMenu/index.js b/src/components/PersonalMenu/index.js
new file mode 100644
index 0000000..2b64796
--- /dev/null
+++ b/src/components/PersonalMenu/index.js
@@ -0,0 +1,11 @@
+import React from "react";
+import { Typography } from "@material-ui/core";
+
+export default function PersonalMenu() {
+ return (
+ <>
+
Personal Menu
+ lorem ipsum
+ >
+ );
+}
diff --git a/src/components/Resources/index.js b/src/components/Resources/index.js
index 5f6a5c9..fdfeb5d 100644
--- a/src/components/Resources/index.js
+++ b/src/components/Resources/index.js
@@ -1,5 +1,190 @@
-import React from "react";
+import React, { useState, useEffect } from "react";
+import axios from "axios";
+import { makeStyles } from "@material-ui/core/styles";
+import clsx from "clsx";
+import PersonalMenu from "../PersonalMenu";
+import Card from "@material-ui/core/Card";
+import CardHeader from "@material-ui/core/CardHeader";
+import CardContent from "@material-ui/core/CardContent";
+import CardActions from "@material-ui/core/CardActions";
+import Collapse from "@material-ui/core/Collapse";
+import Avatar from "@material-ui/core/Avatar";
+import IconButton from "@material-ui/core/IconButton";
+import Rating from "@material-ui/lab/Rating";
+import StarBorderIcon from "@material-ui/icons/StarBorder";
+import Typography from "@material-ui/core/Typography";
+import { red } from "@material-ui/core/colors";
+import BookmarkIcon from "@material-ui/icons/Bookmark";
+import ShareIcon from "@material-ui/icons/Share";
+import ExpandMoreIcon from "@material-ui/icons/ExpandMore";
+import MoreVertIcon from "@material-ui/icons/MoreVert";
+import Grid from "@material-ui/core/Grid";
+import TextareaAutosize from "@material-ui/core/TextareaAutosize";
+import { Button } from "@material-ui/core";
+import LinkIcon from "@material-ui/icons/Link";
+import Search from "../Search";
-export default function Resources() {
- return Resources ;
+const useStyles = makeStyles(theme => ({
+ card: {
+ maxWidth: 345
+ },
+ media: {
+ height: 0,
+ paddingTop: "56.25%" // 16:9
+ },
+ expand: {
+ transform: "rotate(0deg)",
+ marginLeft: "auto",
+ transition: theme.transitions.create("transform", {
+ duration: theme.transitions.duration.shortest
+ })
+ },
+ expandOpen: {
+ transform: "rotate(180deg)"
+ },
+ avatar: {
+ backgroundColor: red[500]
+ }
+}));
+
+function Resources() {
+ const [resources, setResources] = useState([]);
+
+ const classes = useStyles();
+ const [expanded, setExpanded] = React.useState(false);
+
+ const handleExpandClick = () => {
+ setExpanded(!expanded);
+ };
+
+ useEffect(() => {
+ axios
+ .get("http://localhost:3000/resources")
+ .then(function(response) {
+ // handle success
+ setResources(response.data);
+ console.log(response);
+ })
+ .catch(function(error) {
+ // handle error
+ console.log(error);
+ });
+ }, []);
+
+ return (
+ <>
+ {console.log(resources)}
+
+
+
+
+
+
+ Resources
+
+
+
+ {resources.map(
+ ({
+ id,
+ title,
+ created,
+ description,
+ url,
+ referrer,
+ credit,
+ date_published,
+ paid,
+ tags
+ }) => {
+ return (
+
+
+
+ R
+
+ }
+ action={
+
+
+
+ }
+ title={title}
+ subheader={created}
+ />
+
+
+ {description}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ }
+ />
+
+
+ Submit
+
+
+
+
+
+ );
+ }
+ )}
+
+
+
+ >
+ );
}
+
+export default Resources;
diff --git a/src/components/Search/index.js b/src/components/Search/index.js
new file mode 100644
index 0000000..a97d45b
--- /dev/null
+++ b/src/components/Search/index.js
@@ -0,0 +1,16 @@
+import React from "react";
+import { Input } from "@material-ui/core";
+import PropTypes from "prop-types";
+
+function Search({ label }) {
+ return (
+
+
+
+ );
+}
+export default Search;
+
+Search.propTypes = {
+ label: PropTypes.string
+};