\o/ get rid of state warning on modal by wrapping in a container

This commit is contained in:
xavizalote 2016-04-16 18:02:21 +02:00
parent d878b8466e
commit 72ea1ab654

View file

@ -1,11 +1,20 @@
import React, { PropTypes, Component } from 'react';
import { composeWithTracker } from 'react-komposer';
import { Button, Modal } from 'react-bootstrap';
import Router from '../router.js';
import NovaForm from "meteor/nova:forms";
const UserProfileCheck = ({ currentUser }) => {
return currentUser && !Users.hasCompletedProfile(currentUser) ?
(<Modal bsSize='large' show={ true }>
function composerUserProfileCheck(props, onData) {
const currentUser = props.currentUser;
const show = currentUser && !Users.hasCompletedProfile(currentUser) ? true : false; // force a bool value
onData(null, { currentUser, show });
}
const UserProfileCheckModal = ({currentUser, show}) => {
return !!currentUser ?
(
<Modal bsSize='small' show={ show }>
<Modal.Header>
<Modal.Title>Complete your Profile</Modal.Title>
</Modal.Header>
@ -16,14 +25,16 @@ const UserProfileCheck = ({ currentUser }) => {
document={ currentUser }
methodName="users.edit"
labelFunction={ (fieldName)=>Telescope.utils.getFieldLabel(fieldName, Meteor.users) }
successCallback={ (user)=> Telescope.callbacks.runAsync("profileCompletedAsync", user) }
successCallback={ (user) => Telescope.callbacks.runAsync("profileCompletedAsync", user) }
fields={ ["telescope.email"] }
/>
</Modal.Body>
<Button bsStyle="primary" className="complete-profile-logout" onClick={ () => Meteor.logout() }>Log Out</Button>
</Modal>)
: (null);
<Button bsStyle="primary" className="complete-profile-logout" onClick={ () => Meteor.logout(() => Router.go('/')) }>Log Out</Button>
</Modal>
) : (null);
};
const UserProfileCheck = composeWithTracker(composerUserProfileCheck)(UserProfileCheckModal);
module.exports = UserProfileCheck;
export default UserProfileCheck;