<template lang="pug">
  v-dialog(v-model='isShown', max-width='550')
    v-card
      .dialog-header.is-short New Local User
      v-card-text
        v-text-field.md2(
          solo
          flat
          background-color='grey lighten-4'
          prepend-icon='email'
          v-model='email'
          label='Email Address'
          ref='emailInput'
          )
        v-text-field.md2(
          solo
          flat
          background-color='grey lighten-4'
          prepend-icon='person'
          v-model='name'
          label='Name'
          )
        v-text-field.md2(
          solo
          flat
          background-color='grey lighten-4'
          prepend-icon='lock'
          append-icon='casino'
          v-model='password'
          label='Password'
          counter='255'
          @click:append='generatePwd'
          )
        v-text-field.md2(
          solo
          flat
          background-color='grey lighten-4'
          prepend-icon='title'
          v-model='jobTitle'
          label='Job Title'
          counter='255'
          hint='Optional'
          persistent-hint
          )
        v-text-field.md2(
          solo
          flat
          background-color='grey lighten-4'
          prepend-icon='public'
          v-model='location'
          label='Location'
          counter='255'
          hint='Optional'
          persistent-hint
          )
      v-card-chin
        v-spacer
        v-btn(flat, @click='isShown = false') Cancel
        v-btn(color='primary', @click='createUser') Create
</template>

<script>
import uuidv4 from 'uuid/v4'

export default {
  props: {
    value: {
      type: Boolean,
      default: false
    }
  },
  data() {
    return {
      email: '',
      name: '',
      password: '',
      jobTitle: '',
      location: ''
    }
  },
  computed: {
    isShown: {
      get() { return this.value },
      set(val) { this.$emit('input', val) }
    }
  },
  watch: {
    value(newValue, oldValue) {
      if (newValue) {
        this.$nextTick(() => {
          this.$refs.emailInput.focus()
        })
      }
    }
  },
  methods: {
    async createUser() {

    },
    generatePwd() {
      this.password = uuidv4().slice(-12)
    }
  }
}
</script>