From e5ae6c09a5a294734f3b40ac0ee3865e6208a5bb Mon Sep 17 00:00:00 2001 From: Mamalizz Date: Thu, 13 Mar 2025 01:35:29 +0330 Subject: [PATCH] responsived and added filter response message --- .../global/products/FilterProducts.vue | 85 +++++++++++++++---- 1 file changed, 68 insertions(+), 17 deletions(-) diff --git a/frontend/components/global/products/FilterProducts.vue b/frontend/components/global/products/FilterProducts.vue index 07b9908..7e07f30 100644 --- a/frontend/components/global/products/FilterProducts.vue +++ b/frontend/components/global/products/FilterProducts.vue @@ -27,6 +27,8 @@ const in_stock = ref(JSON.parse(params.in_stock ?? false)); const sliderValueDebounced = refDebounced(sliderValue, 1000); +const filtersSuccessMessage = ref<{ title: string; status: string } | null>(""); + // queries const filters = computed(() => { @@ -46,7 +48,8 @@ const { data: categories, suspense } = useGetCategories(); await suspense(); -const { isPending: productsIsPending } = useGetProducts(filters); +const { isPending: productsIsPending, status: productsStatus } = + useGetProducts(filters); // computed @@ -92,6 +95,26 @@ watch( params.in_stock = newInStock; } ); + +watch( + () => productsStatus.value, + (nv) => { + if (nv == "success") { + filtersSuccessMessage.value = { + title: "فیلتر اعمال شد", + status: nv, + }; + } else if (nv == "error") { + filtersSuccessMessage.value = { + title: "خطایی در اعمال فیلتر رخ داد", + status: nv, + }; + } + setTimeout(() => { + filtersSuccessMessage.value = null; + }, 4000); + } +);