reka-ui
Version:
Vue port for Radix UI Primitives.
31 lines (27 loc) • 1.16 kB
JavaScript
;
const utils_assert = require('./assert.cjs');
function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {
layout.forEach((size, index) => {
const panelData = panelsArray[index];
utils_assert.assert(panelData);
const { callbacks, constraints, id: panelId } = panelData;
const { collapsedSize = 0, collapsible } = constraints;
const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];
if (lastNotifiedSize == null || size !== lastNotifiedSize) {
panelIdToLastNotifiedSizeMap[panelId] = size;
const { onCollapse, onExpand, onResize } = callbacks;
if (onResize)
onResize(size, lastNotifiedSize);
if (collapsible && (onCollapse || onExpand)) {
if (onExpand && (lastNotifiedSize == null || lastNotifiedSize === collapsedSize) && size !== collapsedSize) {
onExpand();
}
if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize !== collapsedSize) && size === collapsedSize) {
onCollapse();
}
}
}
});
}
exports.callPanelCallbacks = callPanelCallbacks;
//# sourceMappingURL=callPanelCallbacks.cjs.map