diff --git a/src/sections/Advice/index.jsx b/src/sections/Advice/index.jsx index 0405f11f..06232fcb 100644 --- a/src/sections/Advice/index.jsx +++ b/src/sections/Advice/index.jsx @@ -1,11 +1,68 @@ +import { useEffect, useState } from "react" + function AdviceSection() { + + const url = "https://api.adviceslip.com/advice"; + const [loading, setLoading] = useState(true); + const [slip, setSlip] = useState(); + const [favouriteSlips, setFavouriteSlips] = useState([]); + + + const loadSlip = async () => { + const response = await fetch(url); + const jsonData = await response.json(); + setSlip(jsonData); + }; + + const saveSlip = async () => { + if(!favouriteSlips.includes(slip)) setFavouriteSlips([...favouriteSlips, slip]) + }; + + + useEffect(() => { + const fetchData = async () => { + const response = await fetch(url); + const jsonData = await response.json(); + + + setSlip(jsonData); + }; + + fetchData(); +}, [url]); + + return ( Advice Section - - + + {slip && ( + + advice #{slip.slip.id} + {slip.slip.advice} + Get More Advice + Save to Favourties + + )} + + + + + + Favourite Advice Slips + + {favouriteSlips.map((slip, index) => ( + + advice #{slip.slip.id} + {slip.slip.advice} + + ))} + + ) } export default AdviceSection + + diff --git a/src/sections/Art/index.jsx b/src/sections/Art/index.jsx index 0c74ffc2..6e98d4de 100644 --- a/src/sections/Art/index.jsx +++ b/src/sections/Art/index.jsx @@ -1,8 +1,50 @@ +import { useEffect, useState } from "react"; + function ArtsSection() { + const url = "https://boolean-uk-api-server.fly.dev/art"; + const [data, setData] = useState([]); + const [filteredData, setFilteredData] = useState([]); + + useEffect(() => { + const fetchData = async () => { + const response = await fetch(url); + const jsonData = await response.json(); + setData(jsonData); + setFilteredData(jsonData); + }; + fetchData(); + }, []); + return ( Arts Section - + + + Arts Section + + + {filteredData.map((artPiece, index) => ( + + + + + {artPiece.title} + Artist: {artPiece.artist} + Publication History: + + {artPiece.publicationHistory.map((publicationHistory, index) => ( + {publicationHistory} + ))} + + + ))} + + + + + ) } diff --git a/src/sections/Users/index.jsx b/src/sections/Users/index.jsx index 77332830..350f3526 100644 --- a/src/sections/Users/index.jsx +++ b/src/sections/Users/index.jsx @@ -1,9 +1,50 @@ +import { useEffect, useState } from "react"; + function UsersSection() { + const url = "https://boolean-uk-api-server.fly.dev/johanreitan/contact"; + const [data, setData] = useState([]); + const [filteredData, setFilteredData] = useState([]); + + useEffect(() => { + const fetchData = async () => { + const response = await fetch(url); + const jsonData = await response.json(); + setData(jsonData); + setFilteredData(jsonData); + }; + fetchData(); + }, []) + return ( Users Section - + + + {filteredData.map((user, index) => ( + + + {user.firstName} {user.lastName} + Email: {user.email} + + + ))}; + + + Ms Chloe Lopez + Email: chloe.lopez@example.com + + + + ) }
{slip.slip.advice}
Artist: {artPiece.artist}
Email: {user.email}
Email: chloe.lopez@example.com