diff --git a/src/components/MenuBox.jsx b/src/components/MenuBox.jsx
index c8b200f..137f266 100644
--- a/src/components/MenuBox.jsx
+++ b/src/components/MenuBox.jsx
@@ -48,52 +48,61 @@ import { motion } from "framer-motion";
import { useMemo } from "react";
import { useNavigate } from "react-router";
import { DiagonalRightArrowIcon, RightArrowIcon } from "../assets/icons";
-import { useDepName, useDepartments } from "../hooks";
+import { useDepName, useDepartments, useScheduleData } from "../hooks";
import i18n from "../i18n";
export default function MenuBox({ category }) {
- const { title, iconSVG, route, span, isExternal, requireSelection,englishRoute } =
- category;
+ const { title, iconSVG, route, span, isExternal, requireSelection, englishRoute } =
+ category;
const { depName, depCode } = useDepName();
const departments = useDepartments();
const toast = useToast();
const isDisabled =
- requireSelection && (!depCode || !departments.some((dep) => dep.code === depCode));
+ requireSelection && (!depCode || !departments.some((dep) => dep.code === depCode));
const rotateIn = useMemo(
- () => ({
- initial: {
- rotateX: "180deg",
- opacity: 0,
+ () => ({
+ initial: {
+ rotateX: "180deg",
+ opacity: 0,
+ },
+ inView: {
+ rotateX: "0deg",
+ opacity: isDisabled ? 0.6 : 1,
+ transition: {
+ duration: 0.45,
+ ease: "easeIn",
},
- inView: {
- rotateX: "0deg",
- opacity: isDisabled ? 0.6 : 1,
- transition: {
- duration: 0.45,
- ease: "easeIn",
- },
- },
- }),
- [isDisabled]
+ },
+ }),
+ [isDisabled]
);
+ const scheduleData = useScheduleData(depCode);
const navigate = useNavigate();
const handleNavigation = () => {
+ if (route === "/semesterschedule" && scheduleData?.semester) {
+ window.open(scheduleData.semester, "_blank");
+ return;
+ }
+ if (route === "/examschedule" && scheduleData?.exam) {
+ window.open(scheduleData.exam, "_blank");
+ return;
+ }
- if(i18n.language === 'en' && englishRoute){
+ if (i18n.language === 'en' && englishRoute) {
isExternal
- ? requireSelection
- ? window.location.replace(englishRoute, "_blank")
- : window.open(englishRoute, "_blank")
- : navigate(englishRoute);
- }else{
+ ? requireSelection
+ ? window.location.replace(englishRoute, "_blank")
+ : window.open(englishRoute, "_blank")
+ : navigate(englishRoute);
+ } else {
isExternal
- ? requireSelection
- ? window.location.replace(route, "_blank")
- : window.open(route, "_blank")
- : navigate(route);
+ ? requireSelection
+ ? window.location.replace(route, "_blank")
+ : window.open(route, "_blank")
+ : navigate(route);
}
};
@@ -118,59 +127,59 @@ export default function MenuBox({ category }) {
return (
-
-
-
- {iconSVG}
-
-
- {isExternal ? : }
-
-
-
- {title}
-
-
+
+
+
+ {iconSVG}
+
+
+ {isExternal ? : }
+
+
+
+ {title}
+
+
);
}