{
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/sku_bru0220_30.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/sku_bru0220_30.png';
const extraImgs = JSON.parse('[\u0022\\\/storage\\\/products\\\/sku_bru0220_30.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 pembersih 2 in 1 peralatan dapur serbaguna
0.0
★
|
0 Penilaian
|
0 Terjual
Rp 85.000
KategoriSikat
Stok
SKUBRU0220
Jumlah
Deskripsi Produk
Permudah pekerjaan mencuci peralatan dapur dengan Sikat Cuci Piring Dispenser Sabun yang Praktis dan multifungsi. Dilengkapi tangki sabun cair pada gagang, Anda cukup menekan tombol untuk mengeluarkan sabun sesuai kebutuhan, sehingga penggunaan lebih hemat dan proses mencuci menjadi lebih cepat.
Sikat ini hadir dengan 2 pilihan kepala pembersih, yaitu sikat berbulu nilon yang kuat untuk mengangkat noda membandel serta spons lembut yang cocok untuk membersihkan permukaan halus tanpa menggores. Desain gagangnya ergonomis sehingga nyaman digenggam dan tidak mudah licin saat digunakan bahkan saat basah.
Keunggulan Produk:
- Mudah digunakan dgn membuka tombol silikon ,masukkan sabun cuci piring ke gagangnya,tekan dengan lembut untuk memudahkan mengeluarkan aliran sabun untuk mencuci.
- Memiliki 2 kepala pembersih: 1 sikat dan 1 spons yang dapat dilepas dan di ganti sesuai kebutuhan mencuci.
- Bulu sikat kuat untuk mengangkat minyak dan kerak membandel.
- Spons lembut aman untuk piring, gelas, dan peralatan anti lengket.
- Pegangan ergonomis, nyaman anti slip ketika digunakan sekalipun dalam keadaan basah bersabun.
- Mudah dibongkar dan dibersihkan.
- Dilengkapi lubang gantung untuk penyimpanan yang lebih rapi.
Cocok digunakan untuk:
Piring dan mangkuk
Gelas dan cangkir
Wajan dan panci
Peralatan masak anti lengket
Wastafel dan permukaan dapur
Dengan desain modern dan fungsi yang lengkap, sikat cuci piring dispenser sabun ini menjadi solusi praktis untuk menjaga peralatan dapur tetap bersih, higienis, dan menghemat waktu saat mencuci.
Isi kemasan:
1 sikat bulu + 1 kepala spons
Spesifikasi
| Kategori | Sikat |
| SKU | BRU0220 |
| Total Stok Yang Tersedia | 100 |
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.