@wordpress/components
Version:
UI components for WordPress.
45 lines (34 loc) • 1.25 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useScrollable = useScrollable;
var _emotion = require("emotion");
var _element = require("@wordpress/element");
var _context = require("../context");
var styles = _interopRequireWildcard(require("./styles"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/* eslint-disable jsdoc/valid-types */
/**
* @param {import('../context').ViewOwnProps<import('./types').Props, 'div'>} props
*/
/* eslint-enable jsdoc/valid-types */
function useScrollable(props) {
const {
className,
scrollDirection = 'y',
smoothScroll = false,
...otherProps
} = (0, _context.useContextSystem)(props, 'Scrollable');
const classes = (0, _element.useMemo)(() => (0, _emotion.cx)(styles.Scrollable, styles.scrollableScrollbar, smoothScroll && styles.smoothScroll, scrollDirection === 'x' && styles.scrollX, scrollDirection === 'y' && styles.scrollY, scrollDirection === 'auto' && styles.scrollAuto, className), [className, scrollDirection, smoothScroll]);
return { ...otherProps,
className: classes
};
}
//# sourceMappingURL=hook.js.map