@wordpress/components
Version:
UI components for WordPress.
56 lines (47 loc) • 1.34 kB
JavaScript
;
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useSurface = useSurface;
var _emotion = require("emotion");
var _element = require("@wordpress/element");
var _context = require("../context");
var styles = _interopRequireWildcard(require("./styles"));
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
/**
* @param {import('../context').ViewOwnProps<import('./types').Props, 'div'>} props
*/
function useSurface(props) {
const {
backgroundSize = 12,
border,
borderBottom,
borderLeft,
borderRight,
borderTop,
className,
variant = 'primary',
...otherProps
} = (0, _context.useContextSystem)(props, 'Surface');
const classes = (0, _element.useMemo)(() => {
const sx = {};
sx.borders = styles.getBorders({
border,
borderBottom,
borderLeft,
borderRight,
borderTop
});
return (0, _emotion.cx)(styles.Surface, sx.borders, styles.getVariant(variant, `${backgroundSize}px`, `${backgroundSize - 1}px`), className);
}, [backgroundSize, border, borderBottom, borderLeft, borderRight, borderTop, className, variant]);
return { ...otherProps,
className: classes
};
}
//# sourceMappingURL=hook.js.map