{
if (img && !validImages.includes(img)) {
validImages.unshift(img);
}
});
if ($event.detail.images.length > 0) activeImg = $event.detail.images[0];
} else if ($event.detail.image) {
activeImg = $event.detail.image;
if (!validImages.includes($event.detail.image)) {
validImages.unshift($event.detail.image);
}
}
}
"
x-data="{
activeImg: '/storage/products/d210e490-32a2-40c8-a9d5-62f8dc392986.png',
showLightbox: false,
lightboxIndex: 0,
zoom: false,
savedScrollY: 0,
validImages: [],
imgAspect: 1,
zoomLevel: 1,
panX: 0,
panY: 0,
isDragging: false,
dragStartX: 0,
dragStartY: 0,
startPanX: 0,
startPanY: 0,
async init() {
const primary = '/storage/products/d210e490-32a2-40c8-a9d5-62f8dc392986.png';
const extraImgs = JSON.parse('[\u0022\\\/storage\\\/products\\\/d210e490-32a2-40c8-a9d5-62f8dc392986.png\u0022]');
const allImgs = Array.from(new Set([primary, ...extraImgs])).filter(Boolean);
const checks = await Promise.all(allImgs.map(async (src) => {
try {
const resp = await fetch(src, { method: 'HEAD' });
return resp.ok ? src : null;
} catch { return null; }
}));
this.validImages = checks.filter(Boolean);
if (this.validImages.length === 0) {
this.validImages = [primary];
}
this.activeImg = this.validImages[0];
},
onImgLoad(el) {
if (el && el.naturalWidth && el.naturalHeight) {
this.imgAspect = el.naturalWidth / el.naturalHeight;
}
},
openLightbox(i) {
this.lightboxIndex = i >= 0 ? i : 0;
this.zoomLevel = 1;
this.resetPan();
this.showLightbox = true;
document.documentElement.style.overflow = 'hidden';
document.body.style.overflow = 'hidden';
document.body.style.touchAction = 'none';
document.body.classList.add('overlay-open');
document.documentElement.classList.add('overlay-open');
},
closeLightbox() {
this.showLightbox = false;
this.zoomLevel = 1;
this.resetPan();
document.documentElement.style.overflow = '';
document.body.style.overflow = '';
document.body.style.touchAction = '';
document.body.classList.remove('overlay-open');
document.documentElement.classList.remove('overlay-open');
},
zoomIn() {
if (this.zoomLevel < 2.5) this.zoomLevel = parseFloat((this.zoomLevel + 0.25).toFixed(2));
},
zoomOut() {
if (this.zoomLevel > 1) {
this.zoomLevel = parseFloat((this.zoomLevel - 0.25).toFixed(2));
if (this.zoomLevel === 1) this.resetPan();
}
},
resetZoom() {
this.zoomLevel = 1;
this.resetPan();
},
resetPan() {
this.panX = 0;
this.panY = 0;
this.isDragging = false;
},
startDrag(e) {
if (this.zoomLevel <= 1) return;
this.isDragging = true;
const clientX = e.touches ? e.touches[0].clientX : e.clientX;
const clientY = e.touches ? e.touches[0].clientY : e.clientY;
this.dragStartX = clientX;
this.dragStartY = clientY;
this.startPanX = this.panX;
this.startPanY = this.panY;
},
onDrag(e) {
if (!this.isDragging || this.zoomLevel <= 1) return;
const clientX = e.touches ? e.touches[0].clientX : e.clientX;
const clientY = e.touches ? e.touches[0].clientY : e.clientY;
this.panX = this.startPanX + (clientX - this.dragStartX);
this.panY = this.startPanY + (clientY - this.dragStartY);
},
stopDrag() {
this.isDragging = false;
},
toggleZoom() {
if (this.zoomLevel > 1) {
this.zoomLevel = 1;
this.resetPan();
} else {
this.zoomLevel = 1.5;
}
},
nextImg() { this.zoomLevel = 1; this.resetPan(); this.lightboxIndex = (this.lightboxIndex + 1) % this.validImages.length; },
prevImg() { this.zoomLevel = 1; this.resetPan(); this.lightboxIndex = (this.lightboxIndex - 1 + this.validImages.length) % this.validImages.length; }
}">
= 0 ? validImages.indexOf(activeImg) : 0)">
/
Bagikan:
{ window.open('https://www.instagram.com/', '_blank', 'noopener,noreferrer'); window.toast.show('Tautan disalin — tempel di Instagram', 'success') })"
class="flex items-center gap-3 px-3 py-2.5 rounded-xl text-sm font-medium text-brand-700 hover:bg-brand-50 transition-colors">
Instagram
X (Twitter)
WhatsApp
Facebook
Sikat Kloset Gagang Panjang Minimalis - Putih Abu
0.0
★
|
0 Penilaian
|
0 Terjual
Rp 46.000
KategoriSikat
Stok
SKUGCL6686
Jumlah
Deskripsi Produk
Sikat pembersih serbaguna yang cocok untuk membantu membersihkan berbagai area di rumah. Memiliki bulu sikat yang rapat dan kuat sehingga efektif mengangkat noda, minyak, sabun, dan kotoran membandel tanpa merusak permukaan. Desain gagang yang ergonomis memberikan pegangan yang nyaman dan tidak mudah licin saat digunakan.
Keunggulan Produk
- Bulu sikat rapat dan kuat untuk membersihkan noda membandel.
- Gagang ergonomis yang nyaman digenggam.
- Ringan dan mudah digunakan.
- Dilengkapi lubang gantung untuk penyimpanan yang lebih praktis.
- Tahan lama dan mudah dibersihkan setelah digunakan.
- Cocok untuk penggunaan di area basah maupun kering.
Spesifikasi
Jenis: Sikat pembersih genggam (Hand Brush)
Panjang: ± 31,5 cm
Ukuran kepala sikat: ± 7 × 5 cm
Material gagang: Plastik PP + TPR (anti selip)
Material bulu: Nilon berkualitas
Warna: Putih kombinasi abu-abu
Cocok Digunakan Untuk
Membersihkan wastafel dan bak cuci.
Menyikat keramik lantai maupun dinding.
Membersihkan kamar mandi dan toilet.
Sikat pembersih ini merupakan pilihan yang praktis untuk kebutuhan kebersihan sehari-hari. Dengan bulu sikat yang kuat dan gagang ergonomis, proses membersihkan menjadi lebih mudah, nyaman, dan efektif untuk berbagai area di rumah maupun tempat usaha.
Spesifikasi
| Kategori | Sikat |
| SKU | GCL6686 |
| Total Stok Yang Tersedia | 360 |
0.0
☆
☆
☆
☆
☆
0 Ulasan
5★
0
4★
0
3★
0
2★
0
1★
0
Belum ada ulasan
Jadilah yang pertama memberikan ulasan untuk produk ini.