aboutsummaryrefslogtreecommitdiffstats
path: root/src/react/Tile.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/react/Tile.js')
-rw-r--r--src/react/Tile.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/react/Tile.js b/src/react/Tile.js
new file mode 100644
index 0000000..f47f88d
--- /dev/null
+++ b/src/react/Tile.js
@@ -0,0 +1,33 @@
+import React, {Children} from 'react';
+import PropTypes from 'prop-types';
+import TileInfo from './TileInfo.js';
+import TileFooter from './TileFooter.js';
+import SVGIcon from './SVGIcon.js';
+
+const Tile = ({headerText, headerColor, iconName, iconColor, className, onClick, children, dataTestId}) => {
+ let childrenArr = Children.toArray(children);
+ return (
+ <div className={`sdc-tile ${className || ''}`} onClick={onClick} data-test-id={dataTestId}>
+ <div className={`sdc-tile-header ${headerColor || ''}`}>{headerText}</div>
+ <div className='sdc-tile-content'>
+ <div className={`sdc-tile-content-icon ${iconColor || ''}`}>
+ {iconName && <SVGIcon name={iconName}/>}
+ </div>
+ {childrenArr.find(e => e.type === TileInfo)}
+ </div>
+ {childrenArr.find(e => e.type === TileFooter)}
+ </div>
+ );
+};
+
+Tile.propTypes = {
+ headerText: PropTypes.string,
+ headerColor: PropTypes.string,
+ iconName: PropTypes.string,
+ iconColor: PropTypes.string,
+ className: PropTypes.string,
+ onClick: PropTypes.func,
+ dataTestId: PropTypes.string
+};
+
+export default Tile;