Niffgaff 2 Pack Shower Caddies Bathroom Organizer Bathroom Shelves Shower Basket No Drilling Wall Mounted Shower Rack with Self-Adhesive Black Stainless Steel Rustproof

Niffgaff 2 Pack Shower Caddies Bathroom Organizer Bathroom Shelves Shower Basket No Drilling Wall Mounted Shower Rack with Self-Adhesive Black Stainless Steel Rustproof

Price

$0.00 $23.99
Save $-23.99
Free shipping

Quantity

Free worldwide shipping
Free returns
Sustainably made
Secure payments
Niffgaff shower caddies - help you create extra storage space and ensure a tidy and clean bathroom space. Super upgraded strong drill-free adhesives and thickened design ensure better stability and long term use. This shower shelves are made of high quality alloy steel, rustproof and durable. Without any tools, you can install within 30 seconds.
Thickened structure design shower shelves】Made of solid alloy steel and coated with high-quality rust protection powder and matte black polished, the bathroom caddies are rust-proof, scratch-resistant and non-fading. The simple and stylish, large hollow design ensures excellent drainage and thus prevents the accumulation of water and bacteria. No Drilling with Strong Adhesives】The shower basket comse with powerful and transparent adhesive with excellent stability and a load capacity of up to 10 kg. Simply insert the shower holder of the shower shelf without tools and attach it to the adhesive surfaces with the hooks. Please make sure to apply the adhesives to smooth, flat and dry surfaces such as glass, tile or marble walls, otherwise the adhesives may fall off in a short time. Remember to leave it for at least 24 hours before placing anything on the containers. Package list】You will receive a pack of 2 shower shelves and 2 mounting adhesives. The bathroom shelves are in two sizes, a smaller one with 28 x 9 x 4 cm and a larger one with 30 x 11 x 5 cm.Please Note:SUITABLE WALL SURFACES: Wood,Metal,Ceramic Tiles,Marble,Glass,️Other smooth surface.NOT SUITABLE SURFACES:Painted wall,bric wall,wallpaper,whitewashed wall,any other rough surface.
Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.