From 4a21072e54616a69bdc9b1c1a0963ec24939d438 Mon Sep 17 00:00:00 2001 From: marzban-dev Date: Tue, 9 Sep 2025 10:45:27 +0330 Subject: [PATCH] Add priority and lazy loading to some images --- frontend/components/cart/checkout/Gateway.vue | 19 ++++--- .../cart/checkout/PaymentPendingModal.vue | 26 +++------ .../cart/global/MinimalCartItem.vue | 12 ++-- frontend/components/cart/index/CartItem.vue | 2 + frontend/components/global/AvatarGroup.vue | 2 + frontend/components/global/BlogPost.vue | 4 ++ frontend/components/global/Brands.vue | 24 ++------ frontend/components/global/CategoryCard.vue | 2 + frontend/components/global/Footer.vue | 4 ++ frontend/components/global/Header.vue | 3 + .../components/global/ServiceHighlights.vue | 24 ++++---- .../global/product-detail/Slider.vue | 2 + .../components/global/product/ProductCard.vue | 2 + frontend/components/home/Categories.vue | 2 + frontend/components/home/Hero.vue | 5 ++ .../components/home/MostRecentComments.vue | 31 +++++----- frontend/components/home/Preview.vue | 12 ++-- frontend/components/home/ProductsShowcase.vue | 10 ++++ .../product/ChatBox/ChatBoxContainer.vue | 4 ++ .../product/ChatBox/ChatMessage.vue | 21 ++++--- .../components/product/ProductComments.vue | 2 + .../components/product/ProductDetails.vue | 20 +++---- .../profile/tickets/[id]/TicketBubble.vue | 15 ++--- frontend/pages/article/[id].vue | 5 ++ frontend/pages/cart/delivery.vue | 2 + frontend/pages/cart/index.vue | 57 +++++++++++++------ frontend/pages/index.vue | 2 +- frontend/pages/transaction.vue | 10 ++-- 28 files changed, 192 insertions(+), 132 deletions(-) diff --git a/frontend/components/cart/checkout/Gateway.vue b/frontend/components/cart/checkout/Gateway.vue index 177b3ed..3785b6a 100644 --- a/frontend/components/cart/checkout/Gateway.vue +++ b/frontend/components/cart/checkout/Gateway.vue @@ -22,15 +22,16 @@ const emit = defineEmits(); - diff --git a/frontend/components/global/CategoryCard.vue b/frontend/components/global/CategoryCard.vue index e14e612..e3dd03f 100644 --- a/frontend/components/global/CategoryCard.vue +++ b/frontend/components/global/CategoryCard.vue @@ -44,6 +44,8 @@ const { colorObject } = useImageColor(`#category-image-${id.value}`); :id="`category-image-${id}`" class="group-hover:scale-105 transition-transform duration-200 absolute object-contain size-full" :src="picture" + loading="lazy" + fetch-priority="low" alt="" /> diff --git a/frontend/components/global/Footer.vue b/frontend/components/global/Footer.vue index b9190b0..bf9850f 100644 --- a/frontend/components/global/Footer.vue +++ b/frontend/components/global/Footer.vue @@ -3,6 +3,8 @@ diff --git a/frontend/components/global/Header.vue b/frontend/components/global/Header.vue index 06097a3..f0d8c38 100644 --- a/frontend/components/global/Header.vue +++ b/frontend/components/global/Header.vue @@ -124,6 +124,9 @@ const isHomePage = computed(() => route.path === "/");
diff --git a/frontend/components/global/ServiceHighlights.vue b/frontend/components/global/ServiceHighlights.vue index 5e86ae1..6090dce 100644 --- a/frontend/components/global/ServiceHighlights.vue +++ b/frontend/components/global/ServiceHighlights.vue @@ -35,24 +35,26 @@ const highlights = ref([ diff --git a/frontend/components/profile/tickets/[id]/TicketBubble.vue b/frontend/components/profile/tickets/[id]/TicketBubble.vue index fb5acf0..a92ae3b 100644 --- a/frontend/components/profile/tickets/[id]/TicketBubble.vue +++ b/frontend/components/profile/tickets/[id]/TicketBubble.vue @@ -38,9 +38,7 @@ const profile = computed(() => { }); const username = computed(() => { - return is_user.value - ? `${account.value?.first_name} ${account.value?.last_name}` - : "ادمین پشتیبانی هی ملز"; + return is_user.value ? `${account.value?.first_name} ${account.value?.last_name}` : "ادمین پشتیبانی هی ملز"; }); @@ -54,7 +52,12 @@ const username = computed(() => { :class="is_user ? 'rounded-br-none' : 'rounded-bl-none'" >
- +
@@ -65,9 +68,7 @@ const username = computed(() => { > {{ timeAgo }}

-

+

{{ username }}

diff --git a/frontend/pages/article/[id].vue b/frontend/pages/article/[id].vue index 6f7d1fa..fdfa9c5 100644 --- a/frontend/pages/article/[id].vue +++ b/frontend/pages/article/[id].vue @@ -38,6 +38,9 @@ if (response.isError) { class="absolute object-cover size-full" :alt="article!.title" :src="article!.cover_image" + preload + loading="eager" + fetch-priority="high" />
@@ -62,6 +65,8 @@ if (response.isError) { class="size-full object-cover absolute" :src="article!.author.profile_photo" alt="article-author" + loading="lazy" + fetch-priority="low" />
diff --git a/frontend/pages/cart/delivery.vue b/frontend/pages/cart/delivery.vue index 3741253..497af68 100644 --- a/frontend/pages/cart/delivery.vue +++ b/frontend/pages/cart/delivery.vue @@ -61,6 +61,8 @@ const deliveryData = ref({
آدرس های شما diff --git a/frontend/pages/cart/index.vue b/frontend/pages/cart/index.vue index 84ef551..e843f17 100644 --- a/frontend/pages/cart/index.vue +++ b/frontend/pages/cart/index.vue @@ -6,7 +6,7 @@ import useGetCartOrders from "~/composables/api/orders/useGetCartOrders"; // meta useSeoMeta({ - title : "سبد خرید" + title: "سبد خرید", }); definePageMeta({ @@ -22,9 +22,7 @@ const { data: cart, isLoading: cartIsLoading } = useGetCartOrders(); // computed -const hasCartItem = computed( - () => !!cart.value && cart.value.items.length! > 0 -); +const hasCartItem = computed(() => !!cart.value && cart.value.items.length! > 0);