UNPKG

standard-resume

Version:
89 lines (79 loc) 2.14 kB
'use strict'; var React = require('react'); var ContactBtn = React.createClass({ displayName: 'ContactBtn', getInitialState: function getInitialState() { return { open: false }; }, render: function render() { var basic = this.props.resume.basic; // Dont render anything if there is no contact info if (!(basic.phone || basic.email || basic.website)) { return false; } return React.createElement( 'div', { className: 'contact-wrap dropdown-wrap' }, React.createElement( 'button', { className: 'c-contact-btn', onClick: this.handleClick }, React.createElement('div', { className: 'contact-icon' }), 'Contact' ), this.state.open && React.createElement( 'div', null, React.createElement('div', { className: 'dropdown-overlay', onClick: this.overlayClick }), React.createElement( 'ul', { className: 'dropdown' }, basic.phone && React.createElement( 'li', null, React.createElement( 'h5', null, 'Phone' ), basic.phone ), basic.email && React.createElement( 'li', null, React.createElement( 'h5', null, 'Email' ), React.createElement( 'a', { href: 'mailto:' + basic.email, target: '_blank' }, basic.email ) ), basic.website && React.createElement( 'li', null, React.createElement( 'h5', null, 'Website' ), React.createElement( 'a', { href: basic.website }, basic.website ) ) ) ) ); }, handleClick: function handleClick() { this.setState({ open: !this.state.open }); }, overlayClick: function overlayClick() { this.setState({ open: false }); } }); module.exports = ContactBtn;