2 <div class="dialog message" v-if="message" v-html="message"></div>
3 <div class="dialog alert" v-if="error" v-html="error"></div>
4 <div class="dialog alert modal" v-if="warning">
5 <h1 v-html="warning"></h1>
6 <button id="close_modal" class="approve" @click="removeMessages">
7 <i class="fa fa-fw fa-check"></i>
11 <div class="modal_centered" v-if="confirmation">
12 <div class="dialog alert confirmation">
13 <h1 v-html="confirmation.title"></h1>
14 <p v-html="confirmation.message"></p>
16 v-if="accept_callback"
19 @click="accept_callback"
21 <i class="fa fa-fw fa-check"></i>
22 <span v-html="confirmation.accept_label"></span>
27 @click="removeConfirmationMessages"
29 <i class="fa fa-fw fa-remove"></i>
30 <span v-html="confirmation.cancel_label"></span>
34 <!-- Must be styled differently -->
36 <div class="modal_centered" v-if="is_submitting">
37 <div class="spinner dialog alert">{{ $__("Submitting...") }}</div>
39 <div class="modal_centered" v-if="is_loading">
40 <div class="spinner dialog message">{{ $__("Loading...") }}</div>
45 import { inject } from "vue"
46 import { storeToRefs } from "pinia"
49 const mainStore = inject("mainStore")
58 } = storeToRefs(mainStore)
59 const { removeMessages, removeConfirmationMessages } = mainStore
69 removeConfirmationMessages,
80 transition: opacity 0.3s ease;
83 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);
84 transition: all 0.3s ease;
94 transition: opacity 0.3s ease;
99 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);
117 justify-content: center;