| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  | 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-28 22:48:45 -07:00
										 |  |  |     closeDrawer: PropTypes.func, | 
					
						
							|  |  |  |     closeAria: PropTypes.string, | 
					
						
							|  |  |  |     newTabLink: PropTypes.string, | 
					
						
							|  |  |  |     newTabAria: PropTypes.string | 
					
						
							| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   render() { | 
					
						
							| 
									
										
										
										
											2016-07-28 22:48:45 -07:00
										 |  |  |     const { | 
					
						
							|  |  |  |       isOpen, | 
					
						
							|  |  |  |       closeDrawer, | 
					
						
							|  |  |  |       closeAria, | 
					
						
							|  |  |  |       children, | 
					
						
							|  |  |  |       newTabAria, | 
					
						
							|  |  |  |       newTabLink | 
					
						
							|  |  |  |     } = this.props; | 
					
						
							| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  |     const drawerClass = classnames({ | 
					
						
							|  |  |  |       drawer: true, | 
					
						
							|  |  |  |       'is-collapsed': !isOpen | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     return ( | 
					
						
							|  |  |  |       <aside className={ drawerClass }> | 
					
						
							|  |  |  |         <div className='drawer-action-bar'> | 
					
						
							|  |  |  |           <a | 
					
						
							| 
									
										
										
										
											2016-07-28 22:48:45 -07:00
										 |  |  |             aria-label={ newTabAria } | 
					
						
							| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  |             className='drawer-action-item drawer-action-pop-out' | 
					
						
							| 
									
										
										
										
											2016-07-28 22:48:45 -07:00
										 |  |  |             href={ newTabLink } | 
					
						
							|  |  |  |             target='_blank' | 
					
						
							| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  |           /> | 
					
						
							|  |  |  |           <button | 
					
						
							| 
									
										
										
										
											2016-07-28 22:48:45 -07:00
										 |  |  |             aria-label={ closeAria } | 
					
						
							| 
									
										
										
										
											2016-06-03 13:43:42 -07:00
										 |  |  |             className='drawer-action-item drawer-action-collapse' | 
					
						
							|  |  |  |             onClick={ closeDrawer } | 
					
						
							|  |  |  |           /> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |         <div className='drawer-content'> | 
					
						
							|  |  |  |           { children } | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |       </aside> | 
					
						
							|  |  |  |     ); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |