From 7f9a432b475573a6fa44e38807bf3864509f09eb Mon Sep 17 00:00:00 2001
From: mustafa-rezae <mustafa.rezae01@gmail.com>
Date: Mon, 19 May 2025 16:29:48 +0330
Subject: [PATCH] Update and refactor.

---
 assets/haditha/scss/haditha.css             | 22 +++++------------
 components/haditha/NavigationMenu.vue       | 26 +++++++++++++++++----
 components/haditha/hero-page/SectionOne.vue |  3 ++-
 pages/haditha/favorites/index.vue           |  4 ++--
 pages/haditha/library/index.vue             |  2 +-
 pages/haditha/public-pages/about-us.vue     |  2 +-
 pages/haditha/public-pages/contactus.vue    |  2 +-
 pages/haditha/public-pages/index.vue        |  3 ++-
 pages/haditha/public-pages/rules.vue        |  2 +-
 pages/haditha/search/index.vue              |  2 +-
 10 files changed, 39 insertions(+), 29 deletions(-)

diff --git a/assets/haditha/scss/haditha.css b/assets/haditha/scss/haditha.css
index 29ee471..fec9ded 100644
--- a/assets/haditha/scss/haditha.css
+++ b/assets/haditha/scss/haditha.css
@@ -14,14 +14,15 @@
 @import "@nuxt/ui";
 
 /* custom imports */
-@import "../../../../../assets/common/scss/_IRANSansX.scss";
+/* @import "../../../../../assets/common/scss/_IRANSansX.scss"; */
 @import "../../../../../assets/common/scss/_takrim.scss";
 @import "../../../../../assets/common/scss/_vazir.scss";
-@import "../../../../../assets/common/scss/_estedad.scss";
-@import "../../../../../assets/common/scss/_sahel-single-font-weight.scss";
+/* @import "../../../../../assets/common/scss/_estedad.scss"; */
+/* @import "../../../../../assets/common/scss/_sahel-single-font-weight.scss"; */
 
 @theme {
-  --font: vazir, sahel, estadad, IRANSansX, "Public Sans", sans-serif;
+  /* --font: vazir, sahel, estadad, IRANSansX, "Public Sans", sans-serif; */
+  --font: vazir, "Public Sans", sans-serif;
   --ar-font: Takrim;
   --breakpoint-sm: 360px;
   --breakpoint-md: 720px;
@@ -38,17 +39,6 @@
 } */
 /* @source  */
 
-/* @import "../../../../../assets/common/scss/customizations/_variables.scss"; */
-/* @import "../../../../../assets/common/scss/customizations/_list-variables.scss"; */
-/* @import "../../../../../assets/common/scss/customizations/_monir-variables.scss"; */
-/* @import "../../../../../assets/common/scss/components/components.scss"; */
-/* @import "../../../../../assets/common/scss/plugins/plugins.scss"; */
-/* @import "../../../../../assets/common/scss/mixin.scss"; */
-/* @import "../../../../../assets/common/scss/placeholder.scss"; */
-/* @import "../../../../../assets/common/scss/layouts/layouts.scss"; */
-/* @import "../../../../../assets/common/scss/common.scss"; */
-/* @import "../../../../../assets/common/scss/responsive/responsive.scss"; */
-
 html {
   height: 100%;
   direction: rtl;
@@ -108,4 +98,4 @@ html {
   scrollbar-color: #ccc #eee;
 }
 
-@import "./responsive/responsive.css";
+/* @import "./responsive/responsive.css"; */
diff --git a/components/haditha/NavigationMenu.vue b/components/haditha/NavigationMenu.vue
index e71f8d9..4d5549d 100644
--- a/components/haditha/NavigationMenu.vue
+++ b/components/haditha/NavigationMenu.vue
@@ -1,6 +1,7 @@
 <script setup lang="ts">
 import { useAuthStore } from "@stores/authStore";
 const route = useRoute();
+const router = useRouter();
 // {
 //     label: "چت بات",
 //     icon: "haditha:chat-bot",
@@ -80,7 +81,7 @@ const items = ref([
         type: "button" as const,
         onSelect(e: Event) {
           e.preventDefault();
-          logout();
+          localLogout();
         },
       },
     ],
@@ -125,7 +126,7 @@ const desktopLeftMenu = ref([
         type: "button" as const,
         onSelect(e: Event) {
           e.preventDefault();
-          logout();
+          localLogout();
         },
       },
     ],
@@ -134,7 +135,7 @@ const desktopLeftMenu = ref([
 
 const isMobile = ref(false);
 const rerenderNavigation = ref(1);
-const { isAuthenticatedGetter, isRealUserGetter } = useAuthStore();
+const { isAuthenticatedGetter,logout } = useAuthStore();
 
 const filterLeftItem = () => {
   if (isAuthenticatedGetter) {
@@ -182,9 +183,24 @@ const setMenu = () => {
 
 setMenu();
 
+const localLogout = () => {
+  logout();
+
+  router.push({
+    name: "hadithaLogin",
+  });
+};
 // if(!(isAuthenticatedGetter && isRealUserGetter))
 // items.value = items.value.filter((item) => item.to != "/haditha/favorites");
 
+// watch(
+//   () => isAuthenticatedGetter,
+//   (newVal) => {
+//     setMenu();
+//   },
+//   { immediate: true }
+// );
+
 onMounted(() => {
   if (window?.outerWidth < 991) {
     isMobile.value = true;
@@ -195,7 +211,9 @@ onMounted(() => {
 </script>
 
 <template>
-  <div class="fixed bottom-2 main-navbar lg:bottom-auto lg:top-2 right-0 left-0 pt-2">
+  <div
+    class="fixed bottom-2 main-navbar lg:bottom-auto lg:top-2 right-0 left-0 pt-2"
+  >
     <UContainer class="flex my-navbar mx-3 lg:mx-auto">
       <!-- :disableHoverTrigge="isMobile" -->
       <UNavigationMenu
diff --git a/components/haditha/hero-page/SectionOne.vue b/components/haditha/hero-page/SectionOne.vue
index 2423e5d..f0c7dbe 100644
--- a/components/haditha/hero-page/SectionOne.vue
+++ b/components/haditha/hero-page/SectionOne.vue
@@ -42,7 +42,8 @@ const AutoComplation = defineAsyncComponent(() =>
       <navigation-menu></navigation-menu>
 
       <div class="logo-container flex justify-center flex-col items-center">
-        <img fit="auto" quality="80" placeholder src="/img/haditha/logo.png" />
+        <!-- <img fit="auto" quality="80" placeholder src="/img/haditha/logo.png" /> -->
+        <NuxtImg src="/img/haditha/logo.png" />
         <div class="title">
           کاوش با
           <span class="badge-style me-1"> هوش مصنوعی </span>
diff --git a/pages/haditha/favorites/index.vue b/pages/haditha/favorites/index.vue
index fb3276e..12c14c8 100644
--- a/pages/haditha/favorites/index.vue
+++ b/pages/haditha/favorites/index.vue
@@ -95,8 +95,8 @@ const loadMore = async () => {
   });
 };
 
-// const { isFetching } = useInfiniteScroll(loadMore, "favoriteInfiniteScroll");
-const { isFetching } = useInfiniteScroll(async () => {
+// const { isFetching } = useCustomInfiniteScroll(loadMore, "favoriteInfiniteScroll");
+const { isFetching } = useCustomInfiniteScroll(async () => {
   await loadMore();
 });
 
diff --git a/pages/haditha/library/index.vue b/pages/haditha/library/index.vue
index 3f15068..c26a971 100644
--- a/pages/haditha/library/index.vue
+++ b/pages/haditha/library/index.vue
@@ -115,7 +115,7 @@ const loadMore = async () => {
 };
 // const { isFetching } = useInfiniteScroll(loadMore, "libraryInfiniteScroll");
 
-const { isFetching } = useInfiniteScroll(async () => {
+const { isFetching } = useCustomInfiniteScroll(async () => {
   await loadMore();
 });
 // #endregion methods
diff --git a/pages/haditha/public-pages/about-us.vue b/pages/haditha/public-pages/about-us.vue
index 4ef2866..cfeb3cf 100644
--- a/pages/haditha/public-pages/about-us.vue
+++ b/pages/haditha/public-pages/about-us.vue
@@ -27,7 +27,7 @@ const NavigationMenu = defineAsyncComponent(() =>
   <HadithaLayout>
     <div class="page-container h-full">
       <!-- max-w-[var(--ui-container-two)] -->
-      <UContainer class="page-inner-container sm:px-6 lg:px-4">
+      <UContainer class="page-inner-container mx-auto max-w-[var(--ui-container-two)] sm:px-6 lg:px-4">
         <navigation-menu></navigation-menu>
 
         <div
diff --git a/pages/haditha/public-pages/contactus.vue b/pages/haditha/public-pages/contactus.vue
index ec5c88b..1a16b1b 100644
--- a/pages/haditha/public-pages/contactus.vue
+++ b/pages/haditha/public-pages/contactus.vue
@@ -27,7 +27,7 @@ const NavigationMenu = defineAsyncComponent(() =>
   <HadithaLayout>
     <div class="page-container h-full">
       <!-- max-w-[var(--ui-container-two)] -->
-      <UContainer class="page-inner-container sm:px-6 lg:px-4">
+      <UContainer class="page-inner-container mx-auto max-w-[var(--ui-container-two)] sm:px-6 lg:px-4">
         <span class="top-left-bgi z-0"></span>
 
         <navigation-menu></navigation-menu>
diff --git a/pages/haditha/public-pages/index.vue b/pages/haditha/public-pages/index.vue
index b2e7c7b..d6059c8 100644
--- a/pages/haditha/public-pages/index.vue
+++ b/pages/haditha/public-pages/index.vue
@@ -129,7 +129,8 @@ onMounted(() => {
   <HadithaLayout>
     <div class="page-container h-full">
       <!-- max-w-[var(--ui-container-two)] -->
-      <UContainer class="page-inner-container sm:px-6 lg:px-4">
+      <UContainer
+      class="page-inner-container mx-auto max-w-[var(--ui-container-two)] sm:px-6 lg:px-4">      
         <navigation-menu></navigation-menu>
 
         <div class="page-header pt-38 pb-4 flex justify-between items-center">
diff --git a/pages/haditha/public-pages/rules.vue b/pages/haditha/public-pages/rules.vue
index 0a3fe1d..87aafeb 100644
--- a/pages/haditha/public-pages/rules.vue
+++ b/pages/haditha/public-pages/rules.vue
@@ -27,7 +27,7 @@ const NavigationMenu = defineAsyncComponent(() =>
   <HadithaLayout>
     <div class="page-container h-full">
       <!-- max-w-[var(--ui-container-two)] -->
-      <UContainer class="page-inner-container sm:px-6 lg:px-4">
+      <UContainer class="page-inner-container mx-auto max-w-[var(--ui-container-two)] sm:px-6 lg:px-4">
         <navigation-menu></navigation-menu>
 
         <div
diff --git a/pages/haditha/search/index.vue b/pages/haditha/search/index.vue
index 4802242..08f6b29 100644
--- a/pages/haditha/search/index.vue
+++ b/pages/haditha/search/index.vue
@@ -523,7 +523,7 @@ const loadMore = async () => {
   // } else status.value = "idle";
 };
 // For window scrolling
-const { isFetching } = useInfiniteScroll(async () => {
+const { isFetching } = useCustomInfiniteScroll(async () => {
   await loadMore();
 });
 // For a specific element