Skip to content

Commit

Permalink
#13 Create context provider for traveler data
Browse files Browse the repository at this point in the history
  • Loading branch information
SandraBergstrom committed Jun 29, 2023
1 parent e4c1adb commit 49c0e02
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions src/contexts/TravelerDataContext.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import { createContext, useContext, useEffect, useState } from "react";
import { axiosReq } from "../api/axiosDefaults";
import { useCurrentUser } from "./CurrentUserContext";

export const TravelerDataContext = createContext();
export const SetTravelerDataContext = createContext();

export const useTravelerData = () => useContext(TravelerDataContext);
export const useSetTravelerDataContext = () =>
useContext(SetTravelerDataContext);

export const TravelerDataProvider = ({ children }) => {
const [travelerData, setTravelerData] = useState({
pageTraveler: { results: [] },
popularTravelers: { results: [] },
});
const { popularTravelers } = travelerData;
const currentUser = useCurrentUser();

useEffect(() => {
const handleMount = async () => {
try {
const { data } = await axiosReq.get(
"/travelers/?ordering=-followers_count"
);
setTravelerData((prevState) => ({
...prevState,
popularTravelers: data,
}));
} catch (err) {
console.log(err);
}
};

handleMount();
}, [currentUser]);
};

return (
<TravelerDataContext.Provider value={travelerData}>
<SetTravelerDataContext.Provider value={setTravelerData}>
{children}
</SetTravelerDataContext.Provider>
</TravelerDataContext.Provider>
)

0 comments on commit 49c0e02

Please sign in to comment.