diff --git a/src/sections/Advice/components/AdviceSlip.jsx b/src/sections/Advice/components/AdviceSlip.jsx
index e69de29b..f8f3d28b 100644
--- a/src/sections/Advice/components/AdviceSlip.jsx
+++ b/src/sections/Advice/components/AdviceSlip.jsx
@@ -0,0 +1,12 @@
+function AdviceSlip({ slip, onNewAdvice, onSaveAdvice }) {
+ return (
+
+ Random Advice
+ {slip.advice}
+
+
+
+ );
+}
+
+export default AdviceSlip;
diff --git a/src/sections/Advice/components/FavouriteSlipsList.jsx b/src/sections/Advice/components/FavouriteSlipsList.jsx
index e69de29b..adeb4ccb 100644
--- a/src/sections/Advice/components/FavouriteSlipsList.jsx
+++ b/src/sections/Advice/components/FavouriteSlipsList.jsx
@@ -0,0 +1,14 @@
+function FavourtiteSlipsList({ favouriteAdvices }) {
+ return (
+
+ Favourite Advice Slips
+
+ {favouriteAdvices.map((advice, index) => (
+ - {advice.advice}
+ ))}
+
+
+ );
+}
+
+export default FavourtiteSlipsList;
diff --git a/src/sections/Advice/index.jsx b/src/sections/Advice/index.jsx
index 0405f11f..12efa91f 100644
--- a/src/sections/Advice/index.jsx
+++ b/src/sections/Advice/index.jsx
@@ -1,11 +1,43 @@
+import { useState, useEffect } from "react";
+import AdviceSlip from "./components/AdviceSlip";
+import FavourtiteSlipsList from "./components/FavouriteSlipsList";
+
function AdviceSection() {
+ const [data, setData] = useState([]);
+ const [favouriteAdvices, setFavouriteAdvices] = useState([]);
+
+ const fetchData = async () => {
+ const string = await fetch("https://api.adviceslip.com/advice");
+ const data = await string.json();
+ setData(data.slip);
+ };
+
+ const saveAdviceToFavourites = (slip) => {
+ if (!favouriteAdvices.find((fav) => fav.id === slip.id)) {
+ setFavouriteAdvices([...favouriteAdvices, slip]);
+ }
+ console.log(favouriteAdvices);
+ };
+
+ useEffect(() => {
+ fetchData();
+ }, []);
+
return (
Advice Section
+ {data && (
+
+ )}
+
- )
+ );
}
-export default AdviceSection
+export default AdviceSection;
diff --git a/src/sections/Art/components/ArtList.jsx b/src/sections/Art/components/ArtList.jsx
index e69de29b..f1a5e19e 100644
--- a/src/sections/Art/components/ArtList.jsx
+++ b/src/sections/Art/components/ArtList.jsx
@@ -0,0 +1,13 @@
+import ArtListItem from "./ArtListItem";
+
+function ArtList({ arts }) {
+ return (
+
+ {arts.map((art, index) => (
+
+ ))}
+
+ );
+}
+
+export default ArtList;
diff --git a/src/sections/Art/components/ArtListItem.jsx b/src/sections/Art/components/ArtListItem.jsx
index e69de29b..ff705540 100644
--- a/src/sections/Art/components/ArtListItem.jsx
+++ b/src/sections/Art/components/ArtListItem.jsx
@@ -0,0 +1,18 @@
+import PublicationHistoryList from "./PublicationHistoryList";
+
+function ArtListItem({ art, index }) {
+ const url = "https://boolean-uk-api-server.fly.dev";
+
+ return (
+
+
+

+
+ {art.title}
+ Artist: {art.artist}
+
+
+ );
+}
+
+export default ArtListItem;
diff --git a/src/sections/Art/components/PublicationHistoryList.jsx b/src/sections/Art/components/PublicationHistoryList.jsx
index d3f5a12f..4c57db4f 100644
--- a/src/sections/Art/components/PublicationHistoryList.jsx
+++ b/src/sections/Art/components/PublicationHistoryList.jsx
@@ -1 +1,14 @@
+function PublicationHistoryList({ publicationHistory }) {
+ return (
+
+
Publication History:
+
+ {publicationHistory.map((item, index) => (
+ - {item}
+ ))}
+
+
+ );
+}
+export default PublicationHistoryList;
diff --git a/src/sections/Art/index.jsx b/src/sections/Art/index.jsx
index 0c74ffc2..bcef176d 100644
--- a/src/sections/Art/index.jsx
+++ b/src/sections/Art/index.jsx
@@ -1,10 +1,27 @@
+import { useState, useEffect } from "react";
+import ArtList from "./components/ArtList";
+
function ArtsSection() {
+ const url = "https://boolean-uk-api-server.fly.dev/art";
+ const [arts, setData] = useState([]);
+
+ useEffect(() => {
+ const fetchData = async () => {
+ const response = await fetch(url);
+ const jsonData = await response.json();
+ setData(jsonData);
+ };
+ fetchData();
+ }, []);
+
return (
- )
+ );
}
-export default ArtsSection
+export default ArtsSection;
diff --git a/src/sections/Users/components/UsersList.jsx b/src/sections/Users/components/UsersList.jsx
index e69de29b..07f004f9 100644
--- a/src/sections/Users/components/UsersList.jsx
+++ b/src/sections/Users/components/UsersList.jsx
@@ -0,0 +1,13 @@
+import UserListItem from './UsersListItem'
+
+function UsersList({ users }) {
+ return (
+
+ {users.map((user, index) => (
+
+ ))}
+
+ );
+}
+
+export default UsersList;
\ No newline at end of file
diff --git a/src/sections/Users/components/UsersListItem.jsx b/src/sections/Users/components/UsersListItem.jsx
index e69de29b..9c9aa7e2 100644
--- a/src/sections/Users/components/UsersListItem.jsx
+++ b/src/sections/Users/components/UsersListItem.jsx
@@ -0,0 +1,12 @@
+function UsersListItem({ user, index }) {
+
+ return (
+
+
+ {user.firstName} {user.lastName}
+ Email: {user.email}
+
+ );
+}
+
+export default UsersListItem;
\ No newline at end of file
diff --git a/src/sections/Users/index.jsx b/src/sections/Users/index.jsx
index 77332830..7f53c33a 100644
--- a/src/sections/Users/index.jsx
+++ b/src/sections/Users/index.jsx
@@ -1,10 +1,27 @@
+import { useState, useEffect } from "react";
+import UsersList from './components/UsersList'
+
function UsersSection() {
+ const url = "https://boolean-uk-api-server.fly.dev/TeinSchoemaker/contact";
+ const [data, setData] = useState([]);
+
+ useEffect(() => {
+ const fetchUsers = async () => {
+ const response = await fetch(url);
+ const jsonData = await response.json();
+ setData(jsonData);
+ }
+ fetchUsers();
+ }, [])
+
return (
)
}
-export default UsersSection
+export default UsersSection;
\ No newline at end of file