{
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_tpu6825_34.jpeg',
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_tpu6825_34.jpeg';
const extraImgs = JSON.parse('[\u0022\\\/storage\\\/products\\\/sku_tpu6825_34.jpeg\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
Penyedot saluran kloset - karet pompa anti sumbat
0.0
★
|
0 Penilaian
|
0 Terjual
Rp 85.000
KategoriPenyedot
Stok
SKUTPU6825
Jumlah
Deskripsi Produk
Penyedot Toilet Manual – Toilet Plunger dengan Gagang Panjang
Atasi saluran mampet dengan mudah menggunakan penyedot toilet manual berkualitas. Dilengkapi dengan kepala karet fleksibel yang menghasilkan daya hisap kuat untuk membantu melancarkan sumbatan pada kloset, wastafel, maupun saluran pembuangan. Desain gagang panjang memberikan pegangan yang nyaman dan menjaga tangan tetap jauh dari area yang dibersihkan sehingga lebih higienis.
Keunggulan Produk
✅ Kepala karet elastis dengan daya hisap kuat.
✅ Efektif mengatasi sumbatan pada toilet, wastafel, floor drain, dan saluran pembuangan.
✅ Gagang panjang ergonomis, nyaman digunakan.
✅ Material kuat, tahan lama, dan tidak mudah rusak.
✅ Mudah dibersihkan setelah digunakan.
✅ Desain minimalis, praktis disimpan di sudut kamar mandi atau ruang cuci.
Spesifikasi
Material kepala: Karet berkualitas tinggi.
Material gagang: Plastik PP + batang aluminium/stainless (sesuai varian)
Warna: abu-abu dengan gagang hitam-putih.
Fungsi: Membantu membuka saluran yang tersumbat secara manual.
Isi paket: 1 buah penyedot toilet (toilet plunger).
Cocok Digunakan Untuk
Toilet duduk maupun jongkok.
Wastafel kamar mandi dan dapur.
Floor drain.
Saluran pembuangan air yang tersumbat ringan.
Penyedot toilet manual ini merupakan solusi praktis untuk mengatasi saluran mampet tanpa perlu menggunakan bahan kimia, sehingga lebih aman, hemat, dan mudah digunakan di rumah, kantor, hotel, maupun fasilitas umum.
Spesifikasi
| Kategori | Penyedot |
| SKU | TPU6825 |
| Total Stok Yang Tersedia | 200 |
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.