UNPKG

@zohodesk/components

Version:

In this Package, we Provide Some Basic Components to Build Web App

51 lines (44 loc) 1.15 kB
import { defaultMatcher } from "./utils/"; export const windowResizeObserver = (() => { let listeners = []; let size = { height: 0, width: 0 }; let breackPoint = null; function handleResize() { const newSize = { height: window.innerHeight, width: window.innerWidth }; size = newSize; const newBreackPoint = defaultMatcher(size); if (newBreackPoint !== breackPoint) { breackPoint = newBreackPoint; listeners.forEach(listener => listener(newBreackPoint)); } } function addResizeListener() { window.addEventListener('resize', handleResize); handleResize(); } function removeResizeListener() { window.removeEventListener('resize', handleResize); } return { observe: function (listener) { listeners.push(listener); listener.length === 1 && addResizeListener(); }, getBreackPoint() { return breackPoint; }, getSize: function () { return size; }, unobserve: function (listener) { listeners = listeners.filter(l => l !== listener); listener.length === 0 && removeResizeListener(); } }; })();