diff --git a/resources/js/store/modules/login.js b/resources/js/store/modules/login.js new file mode 100644 index 0000000..704a882 --- /dev/null +++ b/resources/js/store/modules/login.js @@ -0,0 +1,51 @@ +import axios from "axios"; + +const state = { + regiones: null, + grupos_de_compra: null, + region_elegida: null, + grupo_de_compra_elegido: null, +}; + +const mutations = { + setRegiones(state, { regiones }) { + state.regiones = regiones; + }, + setRegionYBarrios(state, { region, grupos_de_compra }) { + state.region_elegida = region; + state.grupos_de_compra = grupos_de_compra; + }, + selectGrupoDeCompra(state, { grupo_de_compra }) { + state.grupo_de_compra_elegido = grupo_de_compra; + }, +}; + +const actions = { + async getRegiones({ commit }) { + const response = await axios.get("/api/regiones"); + commit('setRegiones', { regiones: response.data }); + }, + async selectRegion({ commit }, { region }) { + const response = await axios.get("/api/grupos-de-compra"); + commit('setRegionYBarrios', { region: region, grupos_de_compra: response.data[region] }); + } +}; + +const getters = { + admin() { + return window.location.pathname.startsWith('/admin'); + }, + mensajes() { + return { + mensaje: `Contraseña de ${getters.admin() ? 'administración ' : ''}del barrio`, + ayuda: `Si no la sabés, consultá a ${getters.admin() ? 'la comisión informática ' : 'tus compañerxs'}.` }; + }, +}; + +export default { + namespaced: true, + state, + mutations, + actions, + getters, +};