Skip to content
Snippets Groups Projects
RootReducer.js 2.69 KiB
import * as authenticationActions from '../actions/AuthenticationActions'
import * as userManagementActions from '../actions/UserManagementActions'

const initialState = {
    user: null,
    accessToken: null,
    loginPending: false,
    showLoginDialog: false,
    showDeleteUserModal: false,
    isAdmin: false,
    userList: null,
    newUserData: null
};

function rootReducer(state = initialState, action) {

    console.log("Bin im reducer: " + action.type)

    switch (action.type) {
        case userManagementActions.SHOW_DELETE_USER_MODAL:
            return {
                ...state,
                showDeleteUserModal: true,
                error: null
            }
        case userManagementActions.HIDE_DELETE_USER_MODAL:
            return {
                ...state,
                showDeleteUserModal: false,
                error: null
            }


        case userManagementActions.SHOW_ALL_USERS:
            return {
                ...state,
                userList: action.userList,
                error: null
            }

        case userManagementActions.ALL_USERS_ERROR:
            return {
                ...state,
                error: "displaying all users failed"
            }


            case userManagementActions.CREATE_NEW_USER_SUCCESS:
                return {
                    ...state,
                    newUserData: action.userData,
                    error: null
                }


        case authenticationActions.SHOW_LOGIN_DIALOG:
            return {
                ...state,
                showLoginDialog: true,
                error: null
            }
        case authenticationActions.HIDE_LOGIN_DIALOG:
            return {
                ...state,
                showLoginDialog: false,
                error: null
            }
        case authenticationActions.AUTHENTICATION_PENDING:
            return {
                ...state,
                pending: true,
                error: null
            }
        case authenticationActions.AUTHENTICATION_SUCCESS:
            return {
                ...state,
                showLoginDialog: false,
                pending: false,
                user: action.user,
                accessToken: action.accessToken,
                isAdmin: action.isAdmin
            }
        case authenticationActions.AUTHENTICATION_ERROR:
            return {
                ...state,
                pending: false,
                error: 'Authentication failed'
            }
        case authenticationActions.LOGOUT:
            return {
                ...state,
                user: null,
                accessToken: null
            }
        default:
            return state;
    }
};

export default rootReducer;