<template>
  <div class="column is-4">
    <h3 class="is-size-4 mb-4">Administrador</h3>

    <InputModulo
      label="Cambiar nombre del módulo"
      :disabled="!modulo.id_modulo"
      :moduloPadre="nuevoNombreModulo"
      @modulo="(moduloNuevo) => (nuevoNombreModulo = moduloNuevo)"
    />

    <BotonGuardar
      :disabled="!nuevoNombreModulo"
      :guardar="actualizarDatos"
      msjWarning="¿Estas segur@ de querer cambiar el nombre al módulo?"
    />
  </div>
</template>

<script>
import axios from 'axios'
import BotonGuardar from '@/components/botones/BotonGuardar'
import InputModulo from '@/components/inputs/InputModulo'

export default {
  components: { BotonGuardar, InputModulo },
  props: {
    buscar: { type: Function, required: true, default: () => {} },
    updateIsLoading: { type: Function, required: true, default: () => {} },
    admin: { type: Object, required: true, default: () => ({}) },
    modulo: { type: Object, required: true, default: () => ({}) },
  },
  data() {
    return { nuevoNombreModulo: '' }
  },
  methods: {
    actualizarDatos() {
      const data = {
        id_modulo: this.modulo.id_modulo,
        modulo: this.nuevoNombreModulo,
      }

      this.updateIsLoading(true)
      return axios
        .put(`${process.env.api}/modulo`, data, this.$getToken.token())
        .then((res) => {
          this.nuevoNombreModulo = ''
          this.buscar()
          this.updateIsLoading(false)
          this.$alertsGenericos.imprimirMensaje(this.$buefy, res.data.message)
        })
        .catch((err) => {
          this.updateIsLoading(false)
          this.$alertsGenericos.imprimirError(
            this.$buefy,
            this.$router,
            err.response.data
          )
        })
    },
  },
}
</script>

<style></style>
