2016-05-25 08:52:04 +02:00
|
|
|
import React, { PropTypes, Component } from 'react';
|
2016-06-09 20:26:33 +09:00
|
|
|
import { FormattedMessage } from 'react-intl';
|
2016-05-25 08:52:04 +02:00
|
|
|
import { Button } from 'react-bootstrap';
|
|
|
|
import { Messages } from 'meteor/nova:core';
|
|
|
|
|
|
|
|
class NewsletterButton extends Component {
|
|
|
|
constructor(props) {
|
|
|
|
super(props);
|
2016-05-25 08:57:12 +02:00
|
|
|
this.subscriptionAction = this.subscriptionAction.bind(this);
|
2016-05-25 08:52:04 +02:00
|
|
|
}
|
2016-05-26 10:46:30 +02:00
|
|
|
|
|
|
|
subscriptionAction() {
|
2016-06-03 11:03:36 +09:00
|
|
|
const action = Users.getSetting(this.context.currentUser, 'newsletter_subscribeToNewsletter', false) ?
|
2016-05-26 10:46:30 +02:00
|
|
|
'newsletter.removeUser' : 'newsletter.addUser';
|
|
|
|
|
2016-06-03 11:03:36 +09:00
|
|
|
Meteor.call(action, this.context.currentUser, (error, result) => {
|
2016-05-26 10:46:30 +02:00
|
|
|
if (error) {
|
|
|
|
console.log(error);
|
2016-06-14 17:03:35 +09:00
|
|
|
this.context.messages.flash(error.message, "error");
|
2016-05-26 10:46:30 +02:00
|
|
|
} else {
|
|
|
|
this.props.successCallback(result);
|
|
|
|
}
|
|
|
|
});
|
2016-05-25 08:52:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
render() {
|
2016-06-03 11:03:36 +09:00
|
|
|
const isSubscribed = Users.getSetting(this.context.currentUser, 'newsletter_subscribeToNewsletter', false);
|
2016-05-25 08:52:04 +02:00
|
|
|
|
|
|
|
return (
|
2016-05-25 08:57:12 +02:00
|
|
|
<Button
|
|
|
|
className="newsletter-button"
|
2016-05-26 10:46:30 +02:00
|
|
|
onClick={this.subscriptionAction}
|
2016-05-25 08:57:12 +02:00
|
|
|
bsStyle="primary"
|
|
|
|
>
|
2016-06-09 20:26:33 +09:00
|
|
|
{isSubscribed ? <FormattedMessage id="newsletter.unsubscribe"/> : <FormattedMessage id="newsletter.subscribe"/>}
|
2016-05-25 08:52:04 +02:00
|
|
|
</Button>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
NewsletterButton.propTypes = {
|
2016-06-09 20:26:33 +09:00
|
|
|
successCallback: React.PropTypes.func.isRequired
|
2016-05-25 09:30:29 +02:00
|
|
|
};
|
|
|
|
|
2016-06-03 11:03:36 +09:00
|
|
|
NewsletterButton.contextTypes = {
|
2016-06-14 17:03:35 +09:00
|
|
|
currentUser: React.PropTypes.object,
|
|
|
|
messages: React.PropTypes.object
|
2016-06-03 11:03:36 +09:00
|
|
|
}
|
|
|
|
|
2016-05-25 08:52:04 +02:00
|
|
|
module.exports = NewsletterButton;
|
|
|
|
export default NewsletterButton;
|