<script>

import REST from '@api/rest-axios'

import { mapActions, mapState } from 'pinia'
import { ConcernementsStore } from '@stores/concernements'
import { UserStore } from '@stores/user'


export default {
  props: {
    value: String,
    options: Object,
    label: String, 
    data: Object
  },
  emits: ['updated'],
  data(){
    return {
      
    }
  },
  computed: {
    ...mapState(UserStore,['csrf_token']),
  },
  created () {
    console.log('SelectEditable created');
  },
  mounted () {

  },
  methods: {
    ...mapActions(ConcernementsStore, ['reloadConcernements']),
    onInput(e){
      console.log('onInput select e', e);
      // let checked  = e.target.checked;
      let value = e.target.value;
      // console.log('onInput checkbox checked', checked);
      this.save(value)
    },
    save(value){
      // console.log('save csrf_token', this.csrf_token);
      const params = {
        type: this.data.bundle,
        nid: [{"value":this.data.nid}],
        [this.data.field]: {value: value}
      };
      const configs = {
        headers: {'X-CSRF-Token': this.csrf_token}
      };
      REST.patch(`/node/${this.data.nid}?_format=json`, params, configs)
        .then(({ data }) => {
          console.log('user REST post node data', data)
          // TODO if success update the data in pinia 
          // this.reloadConcernements();
          this.$emit('updated');
        })
        .catch(error => {
          console.warn(`Issue with patch node ${this.data.bundle}`, error)
          Promise.reject(error)
        })
    }
  },
}
</script>

<template>
  <section class="editable">
    <label>{{ label }}</label>
    <select :value="value" @input="onInput">
      <template v-for="(name,value,index) in options" :key="index">
        <option :value="value">{{name}}</option>
      </template>
    </select>
  </section>
</template>