freeCodeCamp/common/app/components/Drawer.jsx

50 lines
1.2 KiB
JavaScript
Raw Normal View History

import React, { PropTypes } from 'react';
import classnames from 'classnames';
export default class Drawer extends React.Component {
static displayName = 'Drawer';
static propTypes = {
children: PropTypes.node,
isOpen: PropTypes.bool,
2016-07-29 05:48:45 +00:00
closeDrawer: PropTypes.func,
closeAria: PropTypes.string,
newTabLink: PropTypes.string,
newTabAria: PropTypes.string
};
render() {
2016-07-29 05:48:45 +00:00
const {
isOpen,
closeDrawer,
closeAria,
children,
newTabAria,
newTabLink
} = this.props;
const drawerClass = classnames({
drawer: true,
'is-collapsed': !isOpen
});
return (
<aside className={ drawerClass }>
<div className='drawer-action-bar'>
<a
2016-07-29 05:48:45 +00:00
aria-label={ newTabAria }
className='drawer-action-item drawer-action-pop-out'
2016-07-29 05:48:45 +00:00
href={ newTabLink }
target='_blank'
/>
<button
2016-07-29 05:48:45 +00:00
aria-label={ closeAria }
className='drawer-action-item drawer-action-collapse'
onClick={ closeDrawer }
/>
</div>
<div className='drawer-content'>
{ children }
</div>
</aside>
);
}
}