@mskcc/carbon-react
Version:
Carbon react components for the MSKCC DSM
57 lines (53 loc) • 1.51 kB
JavaScript
/**
* MSKCC 2021, 2024
*/
import cx from 'classnames';
import React__default from 'react';
import PropTypes from 'prop-types';
const MskTile = _ref => {
let {
children,
className,
clickable,
handleClick,
kind = 'default',
target = '_self',
url = '#'
} = _ref;
const tileClasses = cx(className, 'msk-tile', {
'msk-tile-default': kind === 'default',
'msk-tile-outline': kind === 'outline',
'msk-tile-ghost': kind === 'ghost',
'msk-tile-clickable': clickable
});
const tileLink = /*#__PURE__*/React__default.createElement("a", {
href: url,
className: tileClasses,
target: target
}, children);
const tileButton = /*#__PURE__*/React__default.createElement("button", {
type: "button",
className: tileClasses,
onClick: handleClick
}, children);
const tileDefault = /*#__PURE__*/React__default.createElement("div", {
className: tileClasses
}, children);
return /*#__PURE__*/React__default.createElement("div", {
className: "msk-tile-wrapper"
}, !clickable && tileDefault, clickable === 'link' && tileLink, clickable === 'button' && tileButton);
};
MskTile.displayName = 'Footer';
MskTile.propTypes = {
children: PropTypes.node,
/**
* Add custom class
* */
className: PropTypes.string,
clickable: PropTypes.oneOf(['link', 'button']),
handleClick: PropTypes.func,
kind: PropTypes.oneOf(['default', 'outline', 'ghost']),
target: PropTypes.string,
url: PropTypes.string
};
export { MskTile };