var React = require("react"); var NavigationActions = require('../../actions/navigationActions'); var UserActions = require('../../actions/userActions'); var Router = require('react-router'); var Link = Router.Link; var RibicaValidationMixin = require('../../components/shared/mixins/ribicaValidationMixin'); var ValidationUtils = require('../../utils/validation.js'); var LoginModel = require('../../models/login'); var UserStore = require('../../stores/userStore'); var Login = React.createClass({ mixins: [RibicaValidationMixin], componentDidMount:function() { UserStore.addChangeListener(this.onUserStoreChange); UserActions.clearLogin(); }, componentWillUnmount: function() { UserStore.removeChangeListener(this.onUserStoreChange); }, componentWillReceiveProps: function() { UserActions.clearLogin(); }, onUserStoreChange: function() { if(this.isMounted()) { var loginState = UserStore.getLoginState(); this.setState({login: loginState}); if (loginState.loggedIn) { setTimeout(function(){ NavigationActions.goToHome(); }, 0); } } }, getInitialState: function() { return { email: '', password: '', login: UserStore.getLoginState() }; }, validations: { email:function(value) { if(!ValidationUtils.isValidEmail(value)) { return ['Neispravna email adresa.']; } return []; }, password: function(value) { if(!ValidationUtils.isValidRequired(value)) { return ["Šifra je obavezna."]; } return []; } }, renderErrorMessage: function(message){ return (