@workday/canvas-kit-react
Version:
The parent module that contains all Workday Canvas Kit React components
29 lines (28 loc) • 1.14 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.useOverflowListMeasure = void 0;
const common_1 = require("@workday/canvas-kit-react/common");
const useOverflowListModel_1 = require("./useOverflowListModel");
/**
* This elemProps hook measures a list and reports it to an `OverflowListModel`. This is used in
* overflow detection.
*/
exports.useOverflowListMeasure = (0, common_1.createElemPropsHook)(useOverflowListModel_1.useOverflowListModel)((model, ref) => {
const { elementRef, localRef } = (0, common_1.useLocalRef)(ref);
const gapProperty = model.state.orientation === 'horizontal' ? 'columnGap' : 'rowGap';
(0, common_1.useResizeObserver)({
ref: localRef,
onResize: model.events.setContainerSize,
});
(0, common_1.useMountLayout)(() => {
if (localRef.current) {
const styles = getComputedStyle(localRef.current);
model.events.setContainerGap({
size: styles.gap === 'normal' ? 0 : Number(styles[gapProperty].replace('px', '')),
});
}
});
return {
ref: elementRef,
};
});
;