diff --git a/src/sections/Advice/components/AdviceSlip.jsx b/src/sections/Advice/components/AdviceSlip.jsx index e69de29b..01fb2118 100644 --- a/src/sections/Advice/components/AdviceSlip.jsx +++ b/src/sections/Advice/components/AdviceSlip.jsx @@ -0,0 +1,13 @@ +function AdviceSlip( {slip, onNewAdvice, onSaveAdvice} ) { + + return ( +
+

Random Advice

+

{slip.advice}

+ + +
+ ) +} + +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..35fd252d 100644 --- a/src/sections/Advice/components/FavouriteSlipsList.jsx +++ b/src/sections/Advice/components/FavouriteSlipsList.jsx @@ -0,0 +1,13 @@ +function FavourtiteSlipsList({ favouriteAdvices }) { + + return ( +
+

Favourite Advice Slips

+ +
+ ) +} + +export default FavourtiteSlipsList; \ No newline at end of file diff --git a/src/sections/Advice/index.jsx b/src/sections/Advice/index.jsx index 0405f11f..35767066 100644 --- a/src/sections/Advice/index.jsx +++ b/src/sections/Advice/index.jsx @@ -1,9 +1,37 @@ +import { useState, useEffect } from "react"; +import AdviceSlip from "./components/AdviceSlip" +import FavourtiteSlipsList from "./components/FavouriteSlipsList" + function AdviceSection() { + + const advice_url = "https://api.adviceslip.com/advice"; + const [advice, setAdvice] = useState([]); + const [favouriteAdvices, setFavouriteAdvices] = useState([]); + + const fetchAdvice = async () => { + const string = await fetch(advice_url); + const data = await string.json(); + setAdvice(data.slip); + }; + + const saveAdviceToFavourites = (slip) => { + if (!favouriteAdvices.find((fav) => fav.id === slip.id)) { + setFavouriteAdvices([...favouriteAdvices, slip]); + } + console.log(favouriteAdvices); + }; + + + useEffect(() => { + fetchAdvice(); + }, []); + + return (

Advice Section

-
-
+ {advice && } +
) } diff --git a/src/sections/Art/components/ArtList.jsx b/src/sections/Art/components/ArtList.jsx index e69de29b..1edd8483 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({ artworks }) { + return ( + + ); +} + +export default ArtList; diff --git a/src/sections/Art/components/ArtListItem.jsx b/src/sections/Art/components/ArtListItem.jsx index e69de29b..627d9fa7 100644 --- a/src/sections/Art/components/ArtListItem.jsx +++ b/src/sections/Art/components/ArtListItem.jsx @@ -0,0 +1,20 @@ +import PublicationHistoryList from "./PublicationHistoryList"; + +function ArtListItem({ artwork, index}) { + const artImage_url = "https://boolean-uk-api-server.fly.dev"; + + return ( +
  • +
    + +
    +

    {artwork.title}

    +

    Artist: {artwork.artist}

    + +
  • + ); +} + +export default ArtListItem; diff --git a/src/sections/Art/components/PublicationHistoryList.jsx b/src/sections/Art/components/PublicationHistoryList.jsx index d3f5a12f..7e4f507c 100644 --- a/src/sections/Art/components/PublicationHistoryList.jsx +++ b/src/sections/Art/components/PublicationHistoryList.jsx @@ -1 +1,13 @@ +function PublicationHistoryList({ publicationHistory }) { + return ( + <> +

    Publication History:

    + + + ); +} +export default PublicationHistoryList; diff --git a/src/sections/Art/index.jsx b/src/sections/Art/index.jsx index 0c74ffc2..9dbe644d 100644 --- a/src/sections/Art/index.jsx +++ b/src/sections/Art/index.jsx @@ -1,8 +1,26 @@ +import { useState, useEffect } from "react"; +import ArtList from "./components/ArtList"; + function ArtsSection() { + + const art_url = "https://boolean-uk-api-server.fly.dev/art"; + const [artworks, setArtworks] = useState([]); + + useEffect(() => { + const fetchArtworks = async () => { + const response = await fetch(art_url); + const data = await response.json(); + setArtworks(data); + }; + fetchArtworks(); + }, []); + return (

    Arts Section

    -
    +
    + +
    ) } 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 ( + + ); +} + +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..49745341 100644 --- a/src/sections/Users/components/UsersListItem.jsx +++ b/src/sections/Users/components/UsersListItem.jsx @@ -0,0 +1,15 @@ +function UsersListItem({ user, index }) { + + return ( +
  • + {`${user.firstName} +

    {user.firstName} {user.lastName}

    +

    Email: {user.email}

    +
  • + ); +} + +export default UsersListItem; diff --git a/src/sections/Users/index.jsx b/src/sections/Users/index.jsx index 77332830..4be3511d 100644 --- a/src/sections/Users/index.jsx +++ b/src/sections/Users/index.jsx @@ -1,8 +1,26 @@ +import { useState, useEffect } from "react"; +import UsersList from './components/UsersList' + function UsersSection() { + + const users_url = "https://boolean-uk-api-server.fly.dev/elisabethroys/contact"; + const [users, setUsers] = useState([]); + + useEffect(() => { + const fetchUsers = async () => { + const response = await fetch(users_url); + const data = await response.json(); + setUsers(data); + } + fetchUsers(); + }, []) + return (

    Users Section

    -
    +
    + +
    ) }