<template lang="pug">
  v-dialog(v-model='dialogOpen', max-width='650')
    v-card
      .dialog-header Search User
      v-card-text
        v-select(
          :items='items'
          :loading='searchLoading'
          :search-input.sync='search'
          autocomplete
          autofocus
          cache-items
          chips
          clearable
          hide-details
          item-text='name',
          item-value='id',
          label='Search users...'
          light
          multiple
          v-model='selectedItems'
        )
      v-card-actions
        v-spacer
        v-btn(flat, @click='close', :disabled='loading') Cancel
        v-btn(color='primary', dark, @click='setUser', :loading='loading', :disabled='loading')
          v-icon(left) assignment_ind
          span Select User
</template>

<script>
import searchUsersQuery from 'gql/common-users-query-search.gql'

export default {
  props: {
    value: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      loading: false,
      searchLoading: false,
      search: '',
      items: [],
      selectedItems: []
    }
  },
  computed: {
    dialogOpen: {
      get() { return this.value },
      set(value) { this.$emit('input', value) }
    }
  },
  methods: {
    close() {
      this.$emit('input', false)
    },
    setUser() {

    }
  },
  apollo: {
    items: {
      query: searchUsersQuery,
      variables() {
        return {
          search: this.search
        }
      },
      skip() {
        return !this.search || this.search.length < 2
      },
      update: (data) => data.upsells.segments,
      watchLoading (isLoading) {
        this.searchLoading = isLoading
      }
    }
  }
}
</script>