This commit is contained in:
Sacha Greif 2016-07-22 14:44:54 +09:00
commit 189e97f7c4
4 changed files with 17 additions and 8 deletions

View file

@ -62,7 +62,7 @@ class Newsletter extends Component {
renderButton() {
return <Telescope.components.NewsletterButton
successCallback={() => this.successCallbackSubscription}
successCallback={() => this.successCallbackSubscription()}
subscribeText={this.context.intl.formatMessage({id: "newsletter.subscribe"})}
user={this.context.currentUser}
/>

View file

@ -11,10 +11,10 @@ class NewsletterButton extends Component {
}
subscriptionAction() {
const action = Users.getSetting(this.context.currentUser, 'newsletter_subscribeToNewsletter', false) ?
const action = Users.getSetting(this.props.user, 'newsletter_subscribeToNewsletter', false) ?
'newsletter.removeUser' : 'newsletter.addUser';
this.context.actions.call(action, this.context.currentUser, (error, result) => {
this.context.actions.call(action, this.props.user, (error, result) => {
if (error) {
console.log(error);
this.context.messages.flash(error.message, "error");
@ -25,7 +25,7 @@ class NewsletterButton extends Component {
}
render() {
const isSubscribed = Users.getSetting(this.context.currentUser, 'newsletter_subscribeToNewsletter', false);
const isSubscribed = Users.getSetting(this.props.user, 'newsletter_subscribeToNewsletter', false);
return (
<Button
@ -40,7 +40,8 @@ class NewsletterButton extends Component {
}
NewsletterButton.propTypes = {
successCallback: React.PropTypes.func.isRequired
successCallback: React.PropTypes.func.isRequired,
user: React.PropTypes.object.isRequired,
};
NewsletterButton.contextTypes = {

View file

@ -116,6 +116,11 @@ class NovaForm extends Component{
field.group = fieldSchema.group;
}
// add document if the control is a React component (cannot access it through the context)
if (typeof fieldSchema.control === "function") {
field.document = this.getDocument();
}
return field;
});

View file

@ -1,16 +1,19 @@
import React, { PropTypes, Component } from 'react';
import { Messages } from 'meteor/nova:core';
const NewsletterSubscribe = ({props}) => {
const NewsletterSubscribe = (props, context) => {
return (
<div className="form-group row">
<label className="control-label col-sm-3">Newsletter</label>
<div className="col-sm-9">
<Telescope.components.NewsletterButton successCallback={() => Messages.flash("Newsletter subscription updated", "success")}/>
<Telescope.components.NewsletterButton user={props.document} successCallback={() => context.messages.flash("Newsletter subscription updated", "success")}/>
</div>
</div>
)
}
NewsletterSubscribe.contextTypes = {
messages: React.PropTypes.object,
};
module.exports = NewsletterSubscribe;
export default NewsletterSubscribe;