diff --git a/src/sections/Advice/components/AdviceSlip.jsx b/src/sections/Advice/components/AdviceSlip.jsx
index e69de29b..c89cf29d 100644
--- a/src/sections/Advice/components/AdviceSlip.jsx
+++ b/src/sections/Advice/components/AdviceSlip.jsx
@@ -0,0 +1,16 @@
+function AdviceSlip(props){
+ const {random, handleAddFavourite, fetchData} = props
+
+ return(
+
+ Some Advice
+ {random && random.slip ? random.slip.advice : "Loading..."}
+
+
+
+ )
+}
+
+export default AdviceSlip
\ No newline at end of file
diff --git a/src/sections/Advice/components/FavouriteSlipsList.jsx b/src/sections/Advice/components/FavouriteSlipsList.jsx
index e69de29b..35d01b8d 100644
--- a/src/sections/Advice/components/FavouriteSlipsList.jsx
+++ b/src/sections/Advice/components/FavouriteSlipsList.jsx
@@ -0,0 +1,15 @@
+function FavouriteSlipsList(props){
+ const { favourites } = props
+ return (
+
+ Favourite Advice Slips
+
+ {favourites.map(slip => (
+ - {slip.advice}
+ ))}
+
+
+ )
+}
+
+export default FavouriteSlipsList
\ No newline at end of file
diff --git a/src/sections/Advice/index.jsx b/src/sections/Advice/index.jsx
index 0405f11f..3eec577b 100644
--- a/src/sections/Advice/index.jsx
+++ b/src/sections/Advice/index.jsx
@@ -1,11 +1,39 @@
+import{ useEffect, useState } from 'react'
+import AdviceSlip from './components/AdviceSlip'
+import FavouriteSlipsList from './components/FavouriteSlipsList'
+
function AdviceSection() {
+ const url = "https://api.adviceslip.com/advice"
+ const [random, setRandom] = useState(null)
+ const [favourites, setFavourites] = useState([])
+
+ const fetchData = async () => {
+ const response = await fetch(url)
+ const jsonData = await response.json()
+ setRandom(jsonData)
+ }
+
+ useEffect(() => {
+ fetchData()
+ }, [])
+
+ const handleAddFavourite = () => {
+ if (random && random.slip) {
+ if (!favourites.some(fav => fav.id === random.slip.id)) {
+ setFavourites([...favourites, random.slip])
+ }
+ }
+ }
+
return (
)
}
export default AdviceSection
+
+
diff --git a/src/sections/Art/components/ArtList.jsx b/src/sections/Art/components/ArtList.jsx
index e69de29b..8906107d 100644
--- a/src/sections/Art/components/ArtList.jsx
+++ b/src/sections/Art/components/ArtList.jsx
@@ -0,0 +1,17 @@
+import ArtListItem from "./ArtListItem"
+
+function ArtList(props) {
+ const { artList } = props
+ const baseUrl = props
+
+ console.log(baseUrl)
+ return (
+
+ {artList.map((art, index) => (
+
+ ))}
+
+ )
+}
+
+export default ArtList
\ No newline at end of file
diff --git a/src/sections/Art/components/ArtListItem.jsx b/src/sections/Art/components/ArtListItem.jsx
index e69de29b..dbfd7c17 100644
--- a/src/sections/Art/components/ArtListItem.jsx
+++ b/src/sections/Art/components/ArtListItem.jsx
@@ -0,0 +1,15 @@
+import PublicationHistoryList from "./PublicationHistoryList"
+
+function ArtListItem({art, index, baseUrl}){
+ return (
+
+

+
{art.title}
+
{"Artist: " + art.artist}
+
Publication History:
+
+
+ )
+}
+
+export default ArtListItem
\ No newline at end of file
diff --git a/src/sections/Art/components/PublicationHistoryList.jsx b/src/sections/Art/components/PublicationHistoryList.jsx
index d3f5a12f..a9780458 100644
--- a/src/sections/Art/components/PublicationHistoryList.jsx
+++ b/src/sections/Art/components/PublicationHistoryList.jsx
@@ -1 +1,12 @@
+function PublicationHistoryList({art}){
+ return(
+
+ - {art.publicationHistory[0]}
+ - {art.publicationHistory[1]}
+ - {art.publicationHistory[2]}
+
+ )
+}
+
+export default PublicationHistoryList
\ No newline at end of file
diff --git a/src/sections/Art/index.jsx b/src/sections/Art/index.jsx
index 0c74ffc2..11d74808 100644
--- a/src/sections/Art/index.jsx
+++ b/src/sections/Art/index.jsx
@@ -1,8 +1,30 @@
+import{ useEffect, useState } from 'react'
+import ArtList from './components/ArtList'
+
function ArtsSection() {
+ const baseUrl = "https://boolean-uk-api-server.fly.dev"
+ const url = "https://boolean-uk-api-server.fly.dev/art"
+ const [filteredData, setFilteredData] = useState([])
+
+ useEffect(() => {
+ const fetchData = async () => {
+ const response = await fetch(url)
+ const jsonData = await response.json()
+ setFilteredData(jsonData)
+ }
+ fetchData()
+ }, [])
+
+
+
return (
)
}
diff --git a/src/sections/Users/components/UsersList.jsx b/src/sections/Users/components/UsersList.jsx
index e69de29b..87a50b8e 100644
--- a/src/sections/Users/components/UsersList.jsx
+++ b/src/sections/Users/components/UsersList.jsx
@@ -0,0 +1,15 @@
+import UsersListItem from "./UsersListItem"
+
+function UsersList(props) {
+ const { users } = props
+
+ 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..895dd13c 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..4f0f8da7 100644
--- a/src/sections/Users/index.jsx
+++ b/src/sections/Users/index.jsx
@@ -1,8 +1,26 @@
+import{ useEffect, useState } from 'react'
+import UsersList from './components/UsersList'
+
function UsersSection() {
+ const url = "https://boolean-uk-api-server.fly.dev/lindadqd/contact"
+
+ const [filteredData, setFilteredData] = useState([])
+
+ useEffect(() => {
+ const fetchData = async () => {
+ const response = await fetch(url)
+ const jsonData = await response.json()
+ setFilteredData(jsonData)
+ }
+ fetchData()
+ }, [])
+
return (
)
}