Skip to content

Commit ee9448a

Browse files
committed
feat: added image gallery to product page
1 parent a80c038 commit ee9448a

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

gql/queries/getProduct.gql

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,12 @@ query getProduct($slug: ID!, $sku: String!) {
1010
image {
1111
sourceUrl(size: LARGE)
1212
}
13+
galleryImages {
14+
nodes {
15+
id
16+
sourceUrl
17+
}
18+
}
1319
productTypes {
1420
nodes {
1521
products(where: { stockStatus: IN_STOCK, sku: $sku }) {

pages/product/[slug].vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,15 @@
33
<div v-if="loading">loading...</div>
44
<div v-else class="border mt-10 mb-10 rounded-[32px]">
55
<div class="flex p-5 flex-row gap-6">
6-
<div class="">
6+
<div class="relative">
77
<div class="w-[400px]">
88
<NuxtImg :src="product.image.sourceUrl" class="rounded-2xl" />
9+
<div class="bullets-wrapper">
10+
<div class="bullets-container gap-2">
11+
<NuxtImg class="w-6 rounded-sm" :src="product.image.sourceUrl" />
12+
<NuxtImg class="w-6 rounded-sm" v-for="node in product.galleryImages.nodes" :key="node.id" :src="node.sourceUrl" />
13+
</div>
14+
</div>
915
</div>
1016
</div>
1117
<div>
@@ -157,4 +163,10 @@ const calculateDiscountPercentage = computed(() => {
157163
no-repeat 0 0.7rem;
158164
padding-left: 0.938rem;
159165
}
166+
.bullets-wrapper {
167+
@apply p-2 rounded-xl absolute left-1/2 bottom-2 -translate-x-1/2 shadow-2xl backdrop-blur-xl border dark:bg-neutral-800/30 dark:border-white/10;
168+
}
169+
.bullets-wrapper .bullets-container {
170+
@apply flex justify-center items-center overflow-hidden rounded-md;
171+
}
160172
</style>

0 commit comments

Comments
 (0)