<template>
  <b-field class="column mb-0 pb-0" label="Institución" :class="columnSize">
    <b-select
      icon="school-outline"
      :loading="isLoadingSelect"
      v-model="institucion"
      expanded
      rounded
    >
      <option :disabled="deshabilitarOptVacia" :value="objVacio">
        Selecciona una opción
      </option>

      <option v-for="(i, index) in instituciones" :key="index" :value="i">
        {{ i.institucion }}
      </option>
    </b-select>
  </b-field>
</template>

<script>
import axios from 'axios'

export default {
  props: {
    deshabilitarOptVacia: { typeof: Boolean, required: false, default: true },
    institucionPadre: { type: Object, required: true },
    columnSize: { typeof: String, required: false, default: '' },
  },
  data() {
    return {
      instituciones: [],
      isLoadingSelect: false,
      institucion: {},
      objVacio: {},
    }
  },
  methods: {
    obtenerInstituciones() {
      this.isLoadingSelect = true
      this.instituciones = []
      axios
        .get(`${process.env.api}/institucion`, this.$getToken.token())
        .then((res) => {
          this.instituciones = res.data
          this.$emit('catalogo-instituciones', this.instituciones)
          this.isLoadingSelect = false
        })
        .catch((err) => {
          this.isLoadingSelect = false
        })
    },
  },
  watch: {
    institucion(institucionSeleccionada) {
      this.$emit('institucion-seleccionada', institucionSeleccionada)
    },
    institucionPadre(nuevaInstitucion) {
      if (this.$objIsEmpty(nuevaInstitucion)) this.modulo = this.objVacio
    },
  },
  created() {
    this.institucion = this.objVacio
    this.obtenerInstituciones()
  },
}
</script>
