diff --git a/src/Components/Navbar/NavBarWrapper.js b/src/Components/Navbar/NavBarWrapper.js index dcba10351..63701b934 100755 --- a/src/Components/Navbar/NavBarWrapper.js +++ b/src/Components/Navbar/NavBarWrapper.js @@ -1,14 +1,18 @@ import React from 'react'; import UserNavbar from './UserNavbar'; import AdminNavbar from './AdminNavbar'; +import { useUser } from '../context/UserContext'; function NavBarWrapper({ enableAdminNavbar = false, component: Component, ...appProps }) { + const { user, setUser } = useUser(); + function handleLogout() { appProps.setAuthenticated(false); + setUser(null); window.localStorage.removeItem('jwtToken'); window.location.reload(); } diff --git a/src/Components/context/UserContext.js b/src/Components/context/UserContext.js new file mode 100644 index 000000000..76ab85f10 --- /dev/null +++ b/src/Components/context/UserContext.js @@ -0,0 +1,7 @@ +import React, { createContext, useContext } from 'react'; + +export const UserContext = createContext(); + +export function useUser() { + return useContext(UserContext); +} diff --git a/src/Pages/Advertisement/AdvertisementAdmin.js b/src/Pages/Advertisement/AdvertisementAdmin.js index 425b6c9ad..854c5b4d8 100644 --- a/src/Pages/Advertisement/AdvertisementAdmin.js +++ b/src/Pages/Advertisement/AdvertisementAdmin.js @@ -1,8 +1,10 @@ import React from 'react'; import { createAd, getAds, deleteAd } from '../../APIFunctions/Advertisement.js'; import { useState, useEffect } from 'react'; +import { useUser } from '../../Components/context/UserContext'; -export default function AdvertisementAdmin(props) { +export default function AdvertisementAdmin() { + const { user } = useUser(); const [ads, setAds] = useState([]); const [message, setMessage] = useState(''); @@ -11,7 +13,7 @@ export default function AdvertisementAdmin(props) { const [day, setDay] = useState(); async function getAdsFromDB() { - const adsFromDB = await getAds(props.user.token); + const adsFromDB = await getAds(user.token); if (!adsFromDB.error) { setAds(adsFromDB.responseData); } @@ -37,13 +39,13 @@ export default function AdvertisementAdmin(props) { await createAd({ message, expireDate, - }, props.user.token); + }, user.token); await getAdsFromDB(); } async function deleteExpiredAds() { - const adsFromDB = await getAds(props.user.token); + const adsFromDB = await getAds(user.token); if (!adsFromDB.error) { const currentDate = new Date(); const expiredAds = adsFromDB.responseData.filter(ad => { @@ -52,7 +54,7 @@ export default function AdvertisementAdmin(props) { }); for (const ad of expiredAds) { - await deleteAd(ad, props.user.token); + await deleteAd(ad, user.token); } } } @@ -160,7 +162,7 @@ export default function AdvertisementAdmin(props) {