<template>
<div class="dialog message" v-if="message">{{ message }}</div>
<div class="dialog alert" v-if="error">{{ error }}</div>
+ <div class="dialog alert" v-if="warning">{{ warning }}</div> <!-- Must be styled differently -->
</template>
<script>
export default {
setup(){
const mainStore = useMainStore()
- const { message, error } = storeToRefs(mainStore)
- return { message, error }
+ const { message, error, warning } = storeToRefs(mainStore)
+ return { message, error, warning }
},
};
</script>
\ No newline at end of file
import { useMainStore } from "./stores/main";
-import { storeToRefs } from "pinia";
export const setError = function (new_error) {
const mainStore = useMainStore();
setError("Something went wrong: " + new_error);
};
+export const setWarning = function (new_warning) {
+ const mainStore = useMainStore();
+ const { setWarning } = mainStore;
+ setWarning(new_warning);
+};
+
export const setMessage = function (message) {
const mainStore = useMainStore();
const { setMessage } = mainStore;
state: () => ({
message: null,
error: null,
+ warning: null,
previousMessage: null,
previousError: null,
displayed_already: false,
actions: {
setMessage(message) {
this.error = null;
+ this.warning = null;
this.message = message;
this.displayed_already = false; /* Will be displayed on the next view */
},
this.message = null;
this.displayed_already = true; /* Is displayed on the current view */
},
+ setWarning(warning) {
+ this.warning = warning;
+ this.message = null;
+ this.displayed_already = true; /* Is displayed on the current view */
+ },
removeMessages() {
if (this.displayed_already) {
this.error = null;
+ this.warning = null;
this.message = null;
}
this.displayed_already = true;