store.js 3.35 KB
import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'

Vue.use(Vuex)

export default new Vuex.Store({
    strict: true,
    plugins: [
        createPersistedState()
    ],
    state: {
        token: null,
        data: null,
        isUserLoggedIn: false,
        id: null,
        role: null,
        // schoolId: null,
        schoolToken: null,
        schoolRole: null,
        studentsData: [],
        activeStudent: {},

    },
    getters: {
        GET_STUDENTS_DATA: state => {
            return state.studentsData
        },
        GET_ACTIVE_STUDENT: state => {
            return state.activeStudent
        },
        GET_TOKEN: state => {
            return state.token
        },

    },
    // serve as the one and only way to change the state of the data in the state object
    mutations: {
        RESET_STORE(state, defaultState) {
            state = defaultState
            // state.isUserLoggedIn = false
        },
        setToken(state, token) {
            state.token = token
            //state.isUserLoggedIn = !!(token)
            if (token != null) {
                state.isUserLoggedIn = true
            } else {
                state.isUserLoggedIn = false
                state.isSchoolLoggedIn = false
            }
        },
        setSchoolToken(state, schoolToken) {
            state.schoolToken = schoolToken
            //state.isUserLoggedIn = !!(token)
            if (schoolToken != null) {
                state.isSchoolLoggedIn = true
            } else {
                state.isSchoolLoggedIn = false
            }
        },
        setUser(state, data) {
            state.data = data
        },
        Id(state, id) {
            state.id = id
        },
        Role(state, role) {
            state.role = role
        },
        setSchoolRole(state, schoolRole) {
            state.schoolRole = schoolRole
        },
        SET_STUDENTS_DATA(state, data) {
            state.studentsData = data
        },
        SET_ACTIVE_STUDENT(state, data) {
            state.activeStudent = data
        },
        // SchoolId(state, schoolId) {
        //     state.schoolId = schoolId
        // }
    },
    //Action methods are referred to as being "dispatched"
    actions: {
        RESET_STORE({
            commit
        }, defaultState) {
            commit('RESET_STORE', defaultState)
        },
        setToken({
            commit
        }, token) {
            commit('setToken', token)
        },
        setSchoolToken({
            commit
        }, schoolToken) {
            commit('setSchoolToken', schoolToken)
        },
        setUser({
            commit
        }, data) {
            commit('setUser', data)
        },
        SET_STUDENTS_DATA({
            commit
        }, data) {
            commit('SET_STUDENTS_DATA', data)
        },
        SET_ACTIVE_STUDENT({
            commit
        }, data) {
            commit('SET_ACTIVE_STUDENT', data)
        },
        Id({
            commit
        }, id) {
            commit('Id', id)
        },
        Role({
            commit
        }, role) {
            commit('Role', role)
        },
        setSchoolRole({
            commit
        }, schoolRole) {
            commit('setSchoolRole', schoolRole)
        },
        // SchoolId({ commit }, schoolId) {
        //     commit('SchoolId', schoolId)
        // }

    }

})