Greet the user after login with a toast
This commit is contained in:
parent
662050d60b
commit
b85ce62b2f
15
js/api.js
15
js/api.js
|
|
@ -20,6 +20,7 @@ const actiontypes_userinfo = {
|
||||||
'LOGIN' : 'LOGIN',
|
'LOGIN' : 'LOGIN',
|
||||||
'LOGIN_RESULT_SUCCESS' : 'LOGIN_RESULT_SUCCESS',
|
'LOGIN_RESULT_SUCCESS' : 'LOGIN_RESULT_SUCCESS',
|
||||||
'LOGIN_RESULT_ERROR' : 'LOGIN_RESULT_ERROR',
|
'LOGIN_RESULT_ERROR' : 'LOGIN_RESULT_ERROR',
|
||||||
|
'GREET' : 'GREET',
|
||||||
|
|
||||||
'CLEAR_ERRORS' : 'CLEAR_ERRORS',
|
'CLEAR_ERRORS' : 'CLEAR_ERRORS',
|
||||||
|
|
||||||
|
|
@ -37,6 +38,7 @@ const actiontypes_userinfo = {
|
||||||
|
|
||||||
const defaultstate_userinfo = {
|
const defaultstate_userinfo = {
|
||||||
isSignedIn : false,
|
isSignedIn : false,
|
||||||
|
wasGreeted : false,
|
||||||
username : null,
|
username : null,
|
||||||
error : false,
|
error : false,
|
||||||
errorMessages : [],
|
errorMessages : [],
|
||||||
|
|
@ -214,6 +216,7 @@ const reducer_userinfo = (state = defaultstate_userinfo, action) => {
|
||||||
case actiontypes_userinfo.LOGIN_RESULT_SUCCESS:
|
case actiontypes_userinfo.LOGIN_RESULT_SUCCESS:
|
||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
isSignedIn : true,
|
isSignedIn : true,
|
||||||
|
wasGreeted : false,
|
||||||
error : false,
|
error : false,
|
||||||
errorMessages : [],
|
errorMessages : [],
|
||||||
username : action.parameters.username,
|
username : action.parameters.username,
|
||||||
|
|
@ -235,6 +238,10 @@ const reducer_userinfo = (state = defaultstate_userinfo, action) => {
|
||||||
__store.dispatch({ type : actiontypes_userinfo.CLEAR });
|
__store.dispatch({ type : actiontypes_userinfo.CLEAR });
|
||||||
});
|
});
|
||||||
return Object.assign({}, state, {});
|
return Object.assign({}, state, {});
|
||||||
|
case actiontypes_userinfo.GREET:
|
||||||
|
return Object.assign({}, state, {
|
||||||
|
wasGreeted : true,
|
||||||
|
});
|
||||||
case actiontypes_userinfo.STORE_AUTH_HEADERS:
|
case actiontypes_userinfo.STORE_AUTH_HEADERS:
|
||||||
return Object.assign({}, state, {
|
return Object.assign({}, state, {
|
||||||
accesstoken : action.parameters.accesstoken,
|
accesstoken : action.parameters.accesstoken,
|
||||||
|
|
@ -396,6 +403,14 @@ export function login(email, password) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function greet() {
|
||||||
|
__store.dispatch({
|
||||||
|
type: actiontypes_userinfo.GREET,
|
||||||
|
parameters: {},
|
||||||
|
state: __store.getState()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function logout() {
|
export function logout() {
|
||||||
__store.dispatch({
|
__store.dispatch({
|
||||||
type : actiontypes_userinfo.LOGOUT,
|
type : actiontypes_userinfo.LOGOUT,
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,8 @@ import {
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
import { logout } from '../api';
|
import {greet, logout} from '../api';
|
||||||
|
import {notify} from "react-notify-toast";
|
||||||
|
|
||||||
export class TurniereNavigation extends React.Component {
|
export class TurniereNavigation extends React.Component {
|
||||||
|
|
||||||
|
|
@ -67,7 +68,12 @@ function Betabadge() {
|
||||||
class InvisibleLoginLogoutButtons extends React.Component {
|
class InvisibleLoginLogoutButtons extends React.Component {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isSignedIn, username } = this.props;
|
const {isSignedIn, username, wasGreeted} = this.props;
|
||||||
|
|
||||||
|
if (isSignedIn && !wasGreeted) {
|
||||||
|
notify.show('Willkommen, ' + username + '!', 'success', 3000);
|
||||||
|
greet();
|
||||||
|
}
|
||||||
|
|
||||||
if(isSignedIn) {
|
if(isSignedIn) {
|
||||||
return (
|
return (
|
||||||
|
|
@ -88,8 +94,8 @@ class InvisibleLoginLogoutButtons extends React.Component {
|
||||||
}
|
}
|
||||||
|
|
||||||
const mapStateToLoginLogoutButtonProperties = (state) => {
|
const mapStateToLoginLogoutButtonProperties = (state) => {
|
||||||
const { isSignedIn, username } = state.userinfo;
|
const {isSignedIn, username, wasGreeted} = state.userinfo;
|
||||||
return { isSignedIn, username };
|
return {isSignedIn, username, wasGreeted};
|
||||||
};
|
};
|
||||||
|
|
||||||
const LoginLogoutButtons = connect(
|
const LoginLogoutButtons = connect(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue