@zohodesk/components
Version:
Dot UI is a customizable React component library built to deliver a clean, accessible, and developer-friendly UI experience. It offers a growing set of reusable components designed to align with modern design systems and streamline application development
63 lines (54 loc) • 1.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.windowResizeObserver = void 0;
var _utils = require("./utils/");
var windowResizeObserver = function () {
var listeners = [];
var size = {
height: 0,
width: 0
};
var breackPoint = null;
function handleResize() {
var newSize = {
height: window.innerHeight,
width: window.innerWidth
};
size = newSize;
var newBreackPoint = (0, _utils.defaultMatcher)(size);
if (newBreackPoint !== breackPoint) {
breackPoint = newBreackPoint;
listeners.forEach(function (listener) {
return listener(newBreackPoint);
});
}
}
function addResizeListener() {
window.addEventListener('resize', handleResize);
handleResize();
}
function removeResizeListener() {
window.removeEventListener('resize', handleResize);
}
return {
observe: function observe(listener) {
listeners.push(listener);
listener.length === 1 && addResizeListener();
},
getBreackPoint: function getBreackPoint() {
return breackPoint;
},
getSize: function getSize() {
return size;
},
unobserve: function unobserve(listener) {
listeners = listeners.filter(function (l) {
return l !== listener;
});
listener.length === 0 && removeResizeListener();
}
};
}();
exports.windowResizeObserver = windowResizeObserver;