import React, { useLayoutEffect } from "react";
import { Navigate, useParams } from "react-router-dom";
import {
useReFetch,
useMenu,
useProfile,
useSelected,
useMenuTitle,
useMenuMode,
} from "../components/MenuProvider";
import { useBack, useIsSmallScreen } from "../components/ContextProvider";
/**
* Only for small screens
* Controls the menu to show ProfileMenu
* @returns a div element
*/
export default function History() {
const params = useParams();
const [profile, setProfile] = useProfile();
const [menu, setMenu] = useMenu();
const [back, setBack] = useBack();
const isSmallScreen = useIsSmallScreen();
const [selected, setSelected] = useSelected();
const [, setMenuTitle] = useMenuTitle();
const [, setReFetch] = useReFetch();
const [menuMode, setMenuMode] = useMenuMode();
useLayoutEffect(() => {
function clearData() {
setReFetch(true);
setMenuTitle("");
selected && setSelected(0);
}
!menu && setMenu(true);
back !== window.location.pathname && setBack(window.location.pathname);
if (profile !== Number(params.id) || menuMode !== "profile") clearData();
if (profile !== Number(params.id)) setProfile(Number(params.id));
if (menuMode !== "profile") setMenuMode("profile");
}, [
back,
isSmallScreen,
menu,
menuMode,
params.id,
profile,
selected,
setMenuTitle,
setReFetch,
setSelected,
setMenuMode,
setMenu,
setBack,
setProfile,
]);
if (!isSmallScreen) return ;
return ;
}