- {{ data.product.name }}
+ {{ product.name }}
- {{ stripHTML(data.product.description) }}
+ {{ stripHTML(product.description) }}
- {{ data.product.stockQuantity }} in stock
+ {{ product.stockQuantity }} in stock
Varianter
@@ -40,19 +37,19 @@
v-model="selectedVariation"
>
ADD TO CART
@@ -80,8 +77,6 @@
import { ref, watch, computed } from "vue";
-import GET_SINGLE_PRODUCT_QUERY from "@/apollo/queries/GET_SINGLE_PRODUCT_QUERY.gql";
-
import { stripHTML, filteredVariantName } from "@/utils/functions";
import { useCart } from "@/store/useCart";
@@ -90,23 +85,19 @@ const cart = useCart();
const isLoading = computed(() => cart.loading);
-const selectedVariation = ref(); // TODO Pass this value to addProductToCart()
const toast = ref(null);
const props = defineProps({
- id: { type: String, required: true },
- slug: { type: String, required: true },
+ product: { type: Object, required: true },
});
-const variables = { id: props.id, slug: props.slug };
-const { data } = await useAsyncQuery(GET_SINGLE_PRODUCT_QUERY, variables);
+const selectedVariation = ref();
watch(
- () => data.value,
- (dataValue) => {
- if (dataValue && dataValue.product?.variations?.nodes?.length > 0) {
- selectedVariation.value =
- dataValue.product?.variations?.nodes[0].databaseId;
+ () => props.product,
+ (productValue) => {
+ if (productValue && productValue.variations?.nodes?.length > 0) {
+ selectedVariation.value = productValue.variations?.nodes[0].databaseId;
}
},
{ immediate: true }
diff --git a/pages/product/[product].vue b/pages/product/[product].vue
index 193fe76d..aef7bacc 100644
--- a/pages/product/[product].vue
+++ b/pages/product/[product].vue
@@ -1,10 +1,16 @@
-
+