UNPKG

next-material-kit

Version:

NextJS Version of Material Kit React by Creative Tim (https://creative-tim.com)

57 lines (51 loc) 1.53 kB
import React from "react"; // nodejs library to set properties for components import PropTypes from "prop-types"; // nodejs library that concatenates classes import classNames from "classnames"; // @material-ui/core components import { makeStyles } from "@material-ui/core/styles"; import styles from "styles/jss/nextjs-material-kit/components/infoStyle.js"; const useStyles = makeStyles(styles); export default function InfoArea(props) { const classes = useStyles(); const { title, description, iconColor, vertical } = props; const iconWrapper = classNames({ [classes.iconWrapper]: true, [classes[iconColor]]: true, [classes.iconWrapperVertical]: vertical, }); const iconClasses = classNames({ [classes.icon]: true, [classes.iconVertical]: vertical, }); return ( <div className={classes.infoArea}> <div className={iconWrapper}> <props.icon className={iconClasses} /> </div> <div className={classes.descriptionWrapper}> <h4 className={classes.title}>{title}</h4> <p className={classes.description}>{description}</p> </div> </div> ); } InfoArea.defaultProps = { iconColor: "gray", }; InfoArea.propTypes = { icon: PropTypes.object.isRequired, title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, description: PropTypes.string.isRequired, iconColor: PropTypes.oneOf([ "primary", "warning", "danger", "success", "info", "rose", "gray", ]), vertical: PropTypes.bool, };