This commit is contained in:
marzban-dev
2025-02-21 20:00:12 +03:30
parent c4627ca791
commit 157e077f9a
+21 -1
View File
@@ -1,9 +1,20 @@
<script lang="ts" setup> <script lang="ts" setup>
// import
import ChatButton from "~/components/product/ChatBox/ChatButton.vue"; import ChatButton from "~/components/product/ChatBox/ChatButton.vue";
import useGetProduct from "~/composables/api/product/useGetProduct"; import useGetProduct from "~/composables/api/product/useGetProduct";
import useGetComments from "~/composables/api/product/useGetComments"; import useGetComments from "~/composables/api/product/useGetComments";
// type
export type ProductVariantProvideType = {
selectedVariant: Ref<ProductVariant>,
changeSelectedVariant: (value: ProductVariant) => void
}
// state
const route = useRoute(); const route = useRoute();
const id = route.params.id as string | undefined; const id = route.params.id as string | undefined;
@@ -12,6 +23,15 @@ const page = ref(1);
const { suspense: suspenseProduct } = useGetProduct(id); const { suspense: suspenseProduct } = useGetProduct(id);
const { suspense: suspenseComments } = useGetComments(id, page); const { suspense: suspenseComments } = useGetComments(id, page);
const selectedVariant = ref<ProductVariant>();
// provide / inject
provide("productVariant", {
selectedVariant,
changeSelectedVariant: (value: ProductVariant) => selectedVariant.value = value
});
// ssr // ssr
const productResponse = await suspenseProduct(); const productResponse = await suspenseProduct();
@@ -27,7 +47,7 @@ if (productResponse.isError || commentsResponse.isError) {
</script> </script>
<template> <template>
<div class="w-full flex flex-col gap-20"> <div class="w-full flex flex-col ">
<ProductHero /> <ProductHero />
<ProductVideo /> <ProductVideo />
<ProductComments /> <ProductComments />