standard-resume
Version:
The Standard Resume ReactJS component.
89 lines (79 loc) • 2.14 kB
JavaScript
;
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;