Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter
Multifunctional sink food waste filter

Multifunctional sink food waste filter

Price

$29.99 $18.99
Save $11.00
In stock

specification

Please select a specification

Quantity

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

Novel design: make full use of the corner space of the sink, and can be placed upright when not in use, can be used to hang rags, without occupying additional space in the sink.

Flexible and flexible: The drainage groove is designed to allow water to flow away and dry the sponge and scrubber. These mesh bags are stretchy and flexible, easy to attach to the 4-point stand and maintain stability.

Superior function: The fine mesh catches all the small food particles that would normally slip through the filter. Effectively prevents hair, paper scraps, food scraps, fabrics and any other waste from entering the drain.

Economical and practical: filter the leftovers in the kitchen/dining room, protect the kitchen drainage, do not block the drainage pipe, save space and keep the kitchen clean.

Specification:

Material: Iron + PP

Size: 21X16.2X2cm/8.26X6.37X0.78inch

Shape: Square

Color: Dark green gold/White gold

Packing list:

1Pc Drain Rack + 50 Filters net bag

or 100PCS Filter Net Bag

or 1Pc Drain Rack