import {mapFields} from 'vuex-map-fields'; import Snackbar from "../components/Snackbar.vue"; //import { useToast } from "vue-toastification"; // inside of a Vue file //import { useQuasar } from 'quasar' export default { setup() { }, computed: { ...mapFields('notifications', ['color', 'show', 'subText', 'text', 'timeout']) }, methods: { cleanState() { /*setTimeout(() => { this.show = false; }, this.timeout );*/ }, showError(error) { this.showMessage(error, 'danger'); }, showMessage(message, type = 'success') { /*const content = { // Your component or JSX template component: Snackbar, // Props are just regular props, but these won't be reactive props: { message: message }, // Listeners will listen to and execute on event emission listeners: { //click: () => console.log("Clicked!"), //myEvent: myEventHandler } };*/ let color = 'primary'; let icon = 'info'; switch (type) { case 'info': break; case 'success': color = 'green'; break; case 'error': case 'danger': color = 'red'; icon: 'error'; break; case 'warning': color = 'yellow'; break; } if ('danger' === type) { type = 'error'; } this.$q.notify({ position: 'top', timeout: 10000, message: message, color: color, html: true, multiLine: true, }) /*const toast = useToast(); console.log('toast'); console.log(message); console.log(content); toast(content, { type: type, position: 'top-center', timeout: 10000, // 10 seconds closeOnClick: false, pauseOnFocusLoss: true, pauseOnHover: true, draggable: true, draggablePercent: 0.6, showCloseButtonOnHover: false, hideProgressBar: true, closeButton: "button", icon: true, rtl: false });*/ /*this.show = true; this.color = color; if (typeof message === 'string') { this.text = message; this.cleanState(); return; } this.text = message.message; if (message.response) this.subText = message.response.data.message; this.cleanState();*/ } } };