@gitlab/ui
Version:
GitLab UI Components
31 lines (25 loc) • 773 B
JavaScript
import ResizeObserver from 'resize-observer-polyfill';
import isFunction from 'lodash/isFunction';
// more information: https://github.com/WICG/ResizeObserver/issues/59
var observer = new ResizeObserver(function (entries) {
entries.forEach(function (event) {
event.target.glResizeHandler(event);
});
});
var ResizeObserverDirective = {
bind: function bind(el, _ref) {
var resizeHandler = _ref.value;
if (!isFunction(resizeHandler)) {
throw TypeError('directive value must be a function');
}
el.glResizeHandler = resizeHandler;
observer.observe(el);
},
unbind: function unbind(el) {
if (el.glResizeHandler) {
delete el.glResizeHandler;
observer.unobserve(el);
}
}
};
export default ResizeObserverDirective;