From 21aa36e3d1dfaf36863a21b6e7b3cb56d603048e Mon Sep 17 00:00:00 2001 From: ale <ale.tasistro@gmail.com> Date: Fri, 23 May 2025 00:36:53 -0300 Subject: [PATCH] Cambios de nombres, y movida logica de chismosa a store de vuex --- resources/js/components/comunes/NavBar.vue | 4 ++-- .../components/pedidos/ChismosaDropdown.vue | 22 +++++-------------- resources/js/components/pedidos/Productos.vue | 17 +++++--------- resources/js/store/index.js | 2 ++ resources/js/store/modules/ui.js | 19 ++++++++++++++++ 5 files changed, 35 insertions(+), 29 deletions(-) create mode 100644 resources/js/store/modules/ui.js diff --git a/resources/js/components/comunes/NavBar.vue b/resources/js/components/comunes/NavBar.vue index 4377df5..4bc97e2 100644 --- a/resources/js/components/comunes/NavBar.vue +++ b/resources/js/components/comunes/NavBar.vue @@ -12,7 +12,7 @@ <chismosa-dropdown v-if="pedidoDefinido" class="hide-above-1023" - id="mobile"> + ariaControls="mobile"> </chismosa-dropdown> <a role="button" class="navbar-burger" :class="{'is-active':burgerActiva}" aria-label="menu" aria-expanded="false" data-target="nav-bar" @click="toggleBurger"> @@ -35,7 +35,7 @@ <chismosa-dropdown v-if="pedidoDefinido" class="hide-below-1024" - id="wide"> + ariaControls="wide"> </chismosa-dropdown> <div class="block navbar-item"> <a onclick="event.preventDefault(); document.getElementById('logout-form').submit();" diff --git a/resources/js/components/pedidos/ChismosaDropdown.vue b/resources/js/components/pedidos/ChismosaDropdown.vue index 19b0207..cb91a74 100644 --- a/resources/js/components/pedidos/ChismosaDropdown.vue +++ b/resources/js/components/pedidos/ChismosaDropdown.vue @@ -1,7 +1,7 @@ <template> - <div class="dropdown is-right navbar-item" :class="{'is-active':activa}"> + <div class="dropdown is-right navbar-item" :class="{'is-active': show_chismosa}"> <div class="dropdown-trigger"> - <a class="text-a" aria-haspopup="true" :aria-controls="id" @click.capture="toggle"> + <a class="text-a" aria-haspopup="true" :aria-controls="ariaControls" @click.capture="toggleChismosa"> <span class="icon is-small mr-1"> <img src="/assets/chismosa.png"> </span> @@ -13,33 +13,23 @@ <script> import Chismosa from './Chismosa.vue' -import { mapState } from "vuex"; +import { mapMutations, mapState } from "vuex"; export default { components: { Chismosa }, props: { - id: { + ariaControls: { type: String, required: true } }, - data() { - return { - activa: false, - } - }, computed: { ...mapState('pedido',["total"]), - }, - mounted() { - Event.$on('pedido-actualizado', this.actualizar); + ...mapState('ui',["show_chismosa"]), }, methods: { - toggle() { - this.activa = !this.activa; - Event.$emit("toggle-chismosa", this.activa); - }, + ...mapMutations('ui',["toggleChismosa"]), }, } </script> diff --git a/resources/js/components/pedidos/Productos.vue b/resources/js/components/pedidos/Productos.vue index 06e6db3..30a9b1c 100644 --- a/resources/js/components/pedidos/Productos.vue +++ b/resources/js/components/pedidos/Productos.vue @@ -4,32 +4,27 @@ import ProductosContainer from "./ProductosContainer.vue"; import Chismosa from "./Chismosa.vue"; import { defineComponent } from "vue"; import SubpedidoSelect from "./SubpedidoSelect.vue"; -import { mapActions } from "vuex"; +import { mapActions, mapState } from "vuex"; export default defineComponent({ components: { SubpedidoSelect, CategoriasContainer, ProductosContainer, Chismosa }, - data() { - return { - chismosaActiva: false, - } + computed: { + ...mapState('ui',["show_chismosa"]) }, methods: { ...mapActions('productos',["init"]), }, async mounted() { await this.init(); - Event.$on('toggle-chismosa', (activa) => { - this.chismosaActiva = activa; - }); }, }) </script> <template> <div class="columns ml-3 mr-3" v-else> - <categorias-container :class="chismosaActiva ? 'hide-below-1024' : ''"></categorias-container> - <productos-container :class="chismosaActiva ? 'hide-below-1024' : ''"></productos-container> - <chismosa v-show="chismosaActiva"></chismosa> + <categorias-container :class="show_chismosa ? 'hide-below-1024' : ''"></categorias-container> + <productos-container :class="show_chismosa ? 'hide-below-1024' : ''"></productos-container> + <chismosa v-show="show_chismosa"></chismosa> </div> </template> diff --git a/resources/js/store/index.js b/resources/js/store/index.js index b184b7f..245553a 100644 --- a/resources/js/store/index.js +++ b/resources/js/store/index.js @@ -5,6 +5,7 @@ import login from "./modules/login"; import pedido from "./modules/pedido"; import barrio from "./modules/barrio"; import productos from "./modules/productos"; +import ui from "./modules/ui"; Vue.use(Vuex); @@ -15,5 +16,6 @@ export default new Vuex.Store({ pedido, barrio, productos, + ui, }, }); diff --git a/resources/js/store/modules/ui.js b/resources/js/store/modules/ui.js new file mode 100644 index 0000000..3144e16 --- /dev/null +++ b/resources/js/store/modules/ui.js @@ -0,0 +1,19 @@ +const state = { + show_chismosa: false, + show_devoluciones: false, +}; + +const mutations = { + toggleChismosa(state) { + state.show_chismosa = !state.show_chismosa; + }, + toggleDevoluciones(state) { + state.show_devoluciones = !state.show_devoluciones; + }, +}; + +export default { + namespaced: true, + state, + mutations, +};