Confirm.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <template>
  2. <div>
  3. <modal class="confirm-modal" title="Confirm Action" :size="'slim'">
  4. <template #body>
  5. <div class="confirm-modal-inner-container">
  6. {{ message }}
  7. </div>
  8. </template>
  9. <template #footer>
  10. <button class="button is-danger" @click="confirmAction()">
  11. <i class="material-icons icon-with-button">warning</i>
  12. Confirm
  13. </button>
  14. </template>
  15. </modal>
  16. </div>
  17. </template>
  18. <script>
  19. import { mapState, mapActions } from "vuex";
  20. import Modal from "../Modal.vue";
  21. export default {
  22. components: { Modal },
  23. emits: ["confirmed"],
  24. data() {
  25. return {
  26. modalName: ""
  27. };
  28. },
  29. computed: {
  30. ...mapState("modalVisibility", {
  31. currentlyActive: state => state.currentlyActive
  32. }),
  33. ...mapState("modals/confirm", {
  34. message: state => state.message
  35. })
  36. },
  37. mounted() {
  38. // eslint-disable-next-line
  39. this.modalName = this.currentlyActive[0];
  40. },
  41. methods: {
  42. confirmAction() {
  43. this.updateConfirmMessage("");
  44. this.$emit("confirmed");
  45. this.closeModal(this.modalName);
  46. },
  47. ...mapActions("modals/confirm", ["updateConfirmMessage"]),
  48. ...mapActions("modalVisibility", ["closeModal"])
  49. }
  50. };
  51. </script>