<ModalDialog
  :id
  :label
  background="var(--main-bg)"
>
  <form class="confirmation-dialog-form">
    <p>
      {{text}}
    </p>
    <div class="confirmation-dialog-form-flex">
      <button type="button" on:click="onPositive()">
        {{positiveText || 'OK'}}
      </button>
      <button type="button" on:click="onNegative()">
        {{negativeText || 'Cancel'}}
      </button>
    </div>
  </form>
</ModalDialog>
<style>
  .confirmation-dialog-form-flex {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 10px;
    padding: 10px 20px;
  }
  .confirmation-dialog-form-flex button {
    min-width: 125px;
  }
  .confirmation-dialog-form p {
    font-size: 1.3em;
    padding: 40px 20px;
  }
</style>
<script>
  import ModalDialog from './ModalDialog.html'
  import { show } from '../helpers/showDialog'
  import { close } from '../helpers/closeDialog'
  import { on } from '../../../_utils/eventBus'
  import { oncreate as onCreateDialog } from '../helpers/onCreateDialog'

  export default {
    oncreate() {
      on('destroyDialog', this, this.onDestroyDialog)
      onCreateDialog.call(this)
    },
    methods: {
      show,
      close,
      onDestroyDialog(id) {
        if (id !== this.get('id')) {
          return
        }
        if (this.get('positiveResult')) {
          if (this.get('onPositive')) {
            this.get('onPositive')()
          }
        } else {
          if (this.get('onNegative')) {
            this.get('onNegative')()
          }
        }
      },
      onPositive() {
        this.set({positiveResult: true})
        this.close()
      },
      onNegative() {
        this.close()
      }
    },
    components: {
      ModalDialog
    }
  }
</script>