From e907c350f7274a9acff1f86da835de3ec611f807 Mon Sep 17 00:00:00 2001 From: marzban-dev Date: Mon, 27 Oct 2025 12:34:12 +0330 Subject: [PATCH 1/3] Fix categories link condition Close categories mega menu after click on categories item --- frontend/components/global/Header.vue | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/frontend/components/global/Header.vue b/frontend/components/global/Header.vue index 55a4ff1..9583300 100644 --- a/frontend/components/global/Header.vue +++ b/frontend/components/global/Header.vue @@ -133,9 +133,10 @@ const megaMenuCategories = computed(() => { v-for="(link, index) in NAV_LINKS" :key="index" :to="link.path" + @click="isCategoriesMenuOpen = false" class="underline-offset-[10px]" - :activeClass="isCategoriesMenuOpen && link.title !== 'دسته بندی ها' ? 'underline' : ''" - :class="isCategoriesMenuOpen ? 'underline' : ''" + :activeClass="isCategoriesMenuOpen ? 'no-underline' : 'underline'" + :class="isCategoriesMenuOpen && link.title === 'دسته بندی ها' ? 'underline' : ''" @mouseenter="link.title === 'دسته بندی ها' ? (isCategoriesMenuOpen = true) : undefined" > {{ link.title }} From f04b7050723393c5ea546ea6c914beac808d11c6 Mon Sep 17 00:00:00 2001 From: marzban-dev Date: Mon, 27 Oct 2025 12:34:25 +0330 Subject: [PATCH 2/3] Fix mega menu animation and style --- frontend/components/global/MegaMenu.vue | 148 +++++++++++++++++------- 1 file changed, 105 insertions(+), 43 deletions(-) diff --git a/frontend/components/global/MegaMenu.vue b/frontend/components/global/MegaMenu.vue index b428108..253f780 100644 --- a/frontend/components/global/MegaMenu.vue +++ b/frontend/components/global/MegaMenu.vue @@ -31,6 +31,14 @@ const isScrollLocked = useScrollLock(window); const navbarEl = ref(null); const { height: navbarHeight } = useElementSize(navbarEl); +const { $gsap: gsap } = useNuxtApp(); +let gsapTimeline: gsap.core.Timeline; + +const prevNavbarStyle = ref({ + itemFilter: "", + background: "", +}); + // computed const selectedItemSubItems = computed(() => { @@ -55,6 +63,14 @@ const menuTabMouseLeave = () => { selectTabTimer.value = null; }; +const updatePrevStyle = () => { + const headerNavbarEl = document.querySelector("#header-navbar")!; + const headerNavbarItemEl = document.querySelector(".header-navbar-item")!; + + prevNavbarStyle.value.background = getComputedStyle(headerNavbarEl).backgroundColor; + prevNavbarStyle.value.itemFilter = getComputedStyle(headerNavbarItemEl).filter; +}; + // watches watch( @@ -71,10 +87,54 @@ watch( } ); +watch(isOpen, async (newValue) => { + if (newValue) { + updatePrevStyle(); + + gsapTimeline + .to( + ".header-navbar-item", + { + filter: "invert(0%)", + } + ) + .to( + "#header-navbar", + { + background: "white", + }, + "=" + ); + } else { + gsapTimeline + .fromTo( + ".header-navbar-item", + { + filter: "invert(0%)", + }, + { + filter: prevNavbarStyle.value.itemFilter, + } + ) + .fromTo( + "#header-navbar", + { + background: "white", + }, + { + background: prevNavbarStyle.value.background, + }, + "=" + ); + } +}); + // lifecycle onMounted(() => { - navbarEl.value = document.querySelector("#header-navbar"); + gsapTimeline = gsap.timeline(); + + navbarEl.value = document.querySelector("#header-navbar"); }); @@ -86,51 +146,53 @@ onMounted(() => {
-
-
- -
-
- -
+
+
+
+
+ +
- - {{ item.title }} - - -
-
+ + + {{ item.title }} + + +
+ +
From b2c6aa8a0eae12b2dbe676733c231f6ea422cf85 Mon Sep 17 00:00:00 2001 From: marzban-dev Date: Mon, 27 Oct 2025 12:34:29 +0330 Subject: [PATCH 3/3] Removed --- frontend/components/server-logs/LogDate.vue | 28 --------------------- 1 file changed, 28 deletions(-) delete mode 100644 frontend/components/server-logs/LogDate.vue diff --git a/frontend/components/server-logs/LogDate.vue b/frontend/components/server-logs/LogDate.vue deleted file mode 100644 index 2026092..0000000 --- a/frontend/components/server-logs/LogDate.vue +++ /dev/null @@ -1,28 +0,0 @@ - - - \ No newline at end of file