keystone
Version:
Web Application Framework and Admin GUI / Content Management System built on Express.js and Mongoose
35 lines (30 loc) • 778 B
JavaScript
/**
* Render a popout pane, calls props.onLayout when the component mounts
*/
import React from 'react';
import blacklist from 'blacklist';
import classnames from 'classnames';
var PopoutPane = React.createClass({
displayName: 'PopoutPane',
propTypes: {
children: React.PropTypes.node.isRequired,
className: React.PropTypes.string,
onLayout: React.PropTypes.func,
},
getDefaultProps () {
return {
onLayout: () => {},
};
},
componentDidMount () {
this.props.onLayout(this.refs.el.offsetHeight);
},
render () {
const className = classnames('Popout__pane', this.props.className);
const props = blacklist(this.props, 'className', 'onLayout');
return (
<div ref="el" className={className} {...props} />
);
},
});
module.exports = PopoutPane;