From ee7b7eebad23c62ca59c8eecc967e5bc0957183c Mon Sep 17 00:00:00 2001 From: marzban-dev Date: Tue, 26 May 2026 19:25:54 +0330 Subject: [PATCH] Add toast to save button if no token found --- .../product/ProductHero/SaveButton.vue | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/frontend/components/product/ProductHero/SaveButton.vue b/frontend/components/product/ProductHero/SaveButton.vue index a05a150..64cc3d1 100644 --- a/frontend/components/product/ProductHero/SaveButton.vue +++ b/frontend/components/product/ProductHero/SaveButton.vue @@ -4,6 +4,7 @@ import { useAuth } from "~/composables/api/auth/useAuth"; import useGetProduct from "~/composables/api/product/useGetProduct"; import useSaveProduct from "~/composables/api/product/useSaveProduct"; +import { useToast } from "~/composables/global/useToast"; import { QUERY_KEYS } from "~/constants"; // states @@ -14,6 +15,7 @@ const id = route.params.id as string | undefined; const { $queryClient: queryClient } = useNuxtApp(); const { token } = useAuth(); +const { addToast } = useToast(); const { mutateAsync: saveProduct, isPending: isSaveProductPending } = useSaveProduct(); const { data: product, refetch: refetchProduct, isFetching: isFetchingPending } = useGetProduct(id); @@ -21,17 +23,26 @@ const { data: product, refetch: refetchProduct, isFetching: isFetchingPending } // methods const saveProductHandler = async () => { - await saveProduct({ product_slug: product.value!.slug }); - await queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.product] }); + if (!!token.value) { + await saveProduct({ product_slug: product.value!.slug }); + await queryClient.invalidateQueries({ queryKey: [QUERY_KEYS.product] }); + } else { + addToast({ + options: { status: "info" }, + message: "برای ذخیره کردن لطفا وارد شوید.", + }); + } };