@mui/x-data-grid
Version:
The Community plan edition of the MUI X Data Grid components.
27 lines (25 loc) • 1.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.usePinnedScrollOffset = usePinnedScrollOffset;
var _xVirtualizer = require("@mui/x-virtualizer");
var _constants = require("../../internals/constants");
function usePinnedScrollOffset(apiRef, pinnedPosition) {
const store = apiRef.current.virtualizer.store;
// SAFETY: For performance reasons, we only add store selectors for pinned cells in controlled
// mode. Both pinnedPosition and layoutMode are stable (never change for a given instance),
// so the hook call order is consistent across renders.
if (pinnedPosition !== undefined) {
const layoutMode = store.use(_xVirtualizer.Virtualization.selectors.layoutMode);
if (layoutMode === 'controlled') {
if (pinnedPosition === _constants.PinnedColumnPosition.LEFT) {
return store.use(_xVirtualizer.Virtualization.selectors.pinnedLeftOffsetSelector);
}
if (pinnedPosition === _constants.PinnedColumnPosition.RIGHT) {
return store.use(_xVirtualizer.Virtualization.selectors.pinnedRightOffsetSelector);
}
}
}
return 0;
}