Skip to content

Instantly share code, notes, and snippets.

@lilrogalski
Last active June 6, 2018 17:55
Show Gist options
  • Save lilrogalski/62f7f0a9ff006eb7d88905aac8084791 to your computer and use it in GitHub Desktop.
Save lilrogalski/62f7f0a9ff006eb7d88905aac8084791 to your computer and use it in GitHub Desktop.
import React from 'react'
import classNames from 'classnames'
export default class SocialButtons extends React.Component {
componentWillMount() {
this.setupTwitter()
this.setupFacebook()
}
setupTwitter() {
return window.twttr = (function (d, s, id) {
let js = undefined;
let fjs = d.getElementsByTagName(s)[0];
let t = window.twttr || {};
if (d.getElementById(id)) {
return t;
}
js = d.createElement(s);
js.id = id;
js.src = 'https://platform.twitter.com/widgets.js';
fjs.parentNode.insertBefore(js, fjs);
t._e = [];
t.ready = function (f) {
t._e.push(f);
};
return t;
})(document, 'script', 'twitter-wjs');
}
setupFacebook() {
return (function (d, s, id) {
let js = undefined;
let fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {
return;
}
js = d.createElement(s);
js.id = id;
js.src = '//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.6';
fjs.parentNode.insertBefore(js, fjs);
})(document, 'script', 'facebook-jssdk');
}
render() {
let tweetText = 'Check out www.gifstudio.me by @infiniteloopco';
let shareText = 'This gif was made with www.gifstudio.me by @infiniteloopco';
let hashtags = 'gifstudio, infiniteloopco';
let hidden = classNames({
'hidden': this.props.snapping || (this.props.count < 4)
})
let shareBtn = classNames({
'hidden': !this.props.linkCreated
})
let tweetBtn = classNames({
'hidden': this.props.linkCreated || this.props.snapping || (this.props.count < 4)
})
return(
<div className={hidden}>
<a className={`tweet-btn action-btn btn ${shareBtn}`}
href={`https://twitter.com/intent/tweet?text=${shareText}&hashtags=${hashtags}&url=${window.location.href}`}>
<i className="fa fa-twitter"/>
<span className="text">Tweet</span>
</a>
<a className={`tweet-btn action-btn btn ${tweetBtn}`}
href={`https://twitter.com/intent/tweet?text=${tweetText}&hashtags=${hashtags}&url=https://www.gifstudio.me`}>
<i className="fa fa-twitter"/>
<span className="text">Tweet</span>
</a>
<div
className="facebook-btn action-btn btn"
data-href="https://www.gifstudio.me"
data-layout="link"
data-mobile-iframe="true"
>
<i className="fa fa-facebook"/>
<a
className="fb-xfbml-parse-ignore"
target="_blank"
href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.gifstudio.me%2F&amp;src=sdkpreparse"
>
<span className="text">Share</span>
</a>
</div>
</div>
)
}
}
SocialButtons.propTypes = {
snapping: React.PropTypes.bool,
count: React.PropTypes.number,
linkCreated: React.PropTypes.bool
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment