@hperchec/scorpion-ui-template-default
Version:
Scorpion UI - Default template
227 lines (226 loc) • 5.15 kB
JavaScript
/**
* Modals
* @alias module:store/modules/Core/Modals
* @type {Object}
*/
export default {
/**
* @private
*/
namespaced: true,
/**
* state
* @type {Object}
* @readonly
* @description Store module state
* @example
* // Access to the module state
* Store.state.Core.Modals
*/
state: {
/**
* modals
* @description Modals data
* @type {Object}
*/
modals: {
/**
* EmailSentModal
* @type {Object}
*/
EmailSentModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
},
/**
* GlobalErrorModal
* @type {Object}
*/
GlobalErrorModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
},
/**
* HelpLearnMoreModal
* @type {Object}
*/
HelpLearnMoreModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
},
/**
* NotCompletedProfileModal
* @type {Object}
*/
NotCompletedProfileModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
},
/**
* PasswordGuardModal
* @type {Object}
*/
PasswordGuardModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
},
/**
* RequiresVerifiedEmailModal
* @type {Object}
*/
RequiresVerifiedEmailModal: {
/**
* Defines if visible
* @type {boolean}
* @default false
*/
show: false,
/**
* Modal props
* @type {Object}
*/
props: {}
}
}
},
/**
* getters
* @type {Object}
* @readonly
* @description Store module getters
* @example
* // Access to the module getters, where <name> is the getter name
* Store.getters['Core/Modals/<name>']
*/
getters: {
// ...
},
/**
* actions
* @type {Object}
* @protected
* @description Store module actions
* @example
* // Access to the module action, where <name> is the action name
* Store.dispatch('Core/Modals/<name>')
*/
actions: {
/**
* showModal
* @description Show modal
* @param {Object} payload - Payload
* @param {string} payload.name - Modal name
* @param {Object} [payload.props] - (Optional) Modal props
* @return {void}
* @example
* this.$store.dispatch('Core/Modals/showModal', { name: 'GlobalErrorModal' })
*/
showModal: function ({ commit }, { name, props }) {
// Show modal
commit('SET_SHOW_MODAL', {
name: name,
value: true
})
// Set modal props if defined
commit('SET_MODAL_PROPS', {
name: name,
props: props || {}
})
},
/**
* hideModal
* @description Hide modal
* @param {string} name - Modal name
* @return {void}
* @example
* this.$store.dispatch('Core/Modals/showModal', 'GlobalErrorModal')
*/
hideModal: function ({ commit }, name) {
// Hide modal
commit('SET_SHOW_MODAL', {
name: name,
value: false
})
}
},
/**
* mutations
* @type {Object}
* @protected
* @description Store module mutations
* @example
* // Dispatch a module mutation, where <mutation_name> is the mutation name
* Store.commit('Core/Modals/<mutation_name>', [payload])
*/
mutations: {
/**
* SET_SHOW_MODAL
* @description
* Mutate `state.modals.<name>.show`
* @param {object} payload - Mutation payload
* @param {string} payload.name - Modal name
* @param {boolean} payload.value - True or false
* @return {void}
*/
SET_SHOW_MODAL (state, { name, value }) {
state.modals[name].show = value
},
/**
* SET_MODAL_PROPS
* @description
* Mutate `state.modals.<name>.props`
* @param {object} payload - Mutation payload
* @param {string} payload.name - Modal name
* @param {boolean} payload.value - True or false
* @return {void}
*/
SET_MODAL_PROPS (state, { name, props }) {
state.modals[name].props = props
}
}
}