import React, { MouseEventHandler, ReactElement, ReactNode } from 'react'; import { makeStyles } from '@material-ui/core/styles'; import { Paper } from '@material-ui/core'; import classNames from 'classnames'; import SectionTitle from './SectionTitle'; const useStyles = makeStyles(theme => ({ paper: { padding: theme.spacing(3), marginBottom: theme.spacing(3), }, condensedVertical: { paddingTop: theme.spacing(2), paddingBottom: theme.spacing(2), }, condensedHorizontal: { paddingLeft: theme.spacing(2), paddingRight: theme.spacing(2), }, marginTop: { marginTop: theme.spacing(3), }, clickable: { '&:hover': { cursor: 'pointer', }, }, header: { display: 'flex', justifyContent: 'space-between', }, })); interface Props { title?: string; children: ReactNode; onClick?: MouseEventHandler; marginTop?: boolean; condensedVertical?: boolean; condensedHorizontal?: boolean; className?: string; elevation?: number; actions?: ReactElement; } const PaperSection = ({ title, children, marginTop = false, condensedVertical = false, condensedHorizontal = false, onClick, className, elevation, actions, }: Props) => { const classes = useStyles(); return ( {(title || actions) && (
{title && } {actions && !title &&
} {actions && actions}
)} {children} ); }; export default PaperSection;