@appearhere/bloom
Version:
Appear Here's pattern library and styleguide
53 lines (45 loc) • 1.15 kB
JavaScript
import PropTypes from 'prop-types';
import React, { Component } from 'react';
import cx from 'classnames';
import Window from './Window';
import m from '../../globals/modifiers.css';
import noop from '../../utils/noop';
import css from './WithCross.css';
import Icon from '../Icon/Icon';
import BtnContainer from '../BtnContainer/BtnContainer';
/**
* TODO: Figure out react-motion compatible focus trap
*/
class WindowWithCross extends Component {
static propTypes = {
children: PropTypes.node,
onClose: PropTypes.func,
variant: PropTypes.oneOf(['light', 'dark']),
};
static defaultProps = {
onClose: noop,
variant: 'light',
};
render() {
const {
children,
onClose,
variant,
...rest
} = this.props;
return (
<Window
{...rest}
variant={variant}
>
<BtnContainer className={css.dismissContainer} onClick={onClose}>
<Icon className={css.icon} name="cross" />
</BtnContainer>
<div className={cx(css.inner, m.cf)}>
{ children }
</div>
</Window>
);
}
}
export default WindowWithCross;