<template>
  <v-dialog
    v-model="dialog"
    width="800px"
  >
    <template v-slot:activator="{ on }">
      <v-btn
        class="mb-2 text-capitalize"
        :class="classObject"
        :color="color"
        :outlined="isOutlined"
        :disabled="disabled"
        @click="dialog=true"
      >
        {{ text }}
      </v-btn>
    </template>
    <slot :close="close" />
  </v-dialog>
</template>

<script>
export default {
  props: {
    text: {
      type: String,
      default: '',
      required: true
    },
    disabled: {
      type: Boolean,
      default: false
    },
    isCreate: {
      type: Boolean,
      default: false
    }
  },

  data() {
    return {
      dialog: false
    }
  },

  computed: {
    classObject() {
      return this.isCreate ? [] : ['ml-2']
    },
    color() {
      return this.isCreate ? 'primary' : ''
    },
    isOutlined() {
      return !this.isCreate
    }
  },

  methods: {
    close() {
      this.dialog = false
    }
  }
}
</script>