Delete.vue 958 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <!--
  2. Bouton Delete avec modale de confirmation de la suppression
  3. -->
  4. <template>
  5. <main>
  6. <v-btn :icon="true" :flat="flat" @click="alertDeleteItem()">
  7. <v-icon>fas fa-trash</v-icon>
  8. </v-btn>
  9. <UiFormDeletionConfirmationDialog
  10. v-model="showDialog"
  11. @delete-clicked="onDeleteClicked"
  12. />
  13. </main>
  14. </template>
  15. <script setup lang="ts">
  16. import type { Ref, PropType } from 'vue'
  17. import type ApiResource from '~/models/ApiResource'
  18. import { useDeleteItem } from '~/composables/form/useDeleteItem'
  19. const props = defineProps({
  20. entity: {
  21. type: Object as PropType<ApiResource>,
  22. required: true,
  23. },
  24. flat: {
  25. type: Boolean,
  26. required: false,
  27. default: false,
  28. },
  29. })
  30. const { deleteItem } = useDeleteItem()
  31. const showDialog: Ref<boolean> = ref(false)
  32. const alertDeleteItem = () => {
  33. showDialog.value = true
  34. }
  35. const onDeleteClicked = async () => {
  36. await deleteItem(entity)
  37. }
  38. </script>
  39. <style scoped></style>