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

+ +
+ ) +} + +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 (

Advice Section

-
-
+ +
) } 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.name} +

    {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( + + ) +} + +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 (

    Arts Section

    -
    +
    + +
    ) } 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 ( + + ) +} + +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 (

    Users Section

    -
    +
    + +
    ) }