n8n/packages/editor-ui/src/components/PageAlert.vue
2023-11-28 12:15:08 +01:00

50 lines
875 B
Vue

<template>
<span v-show="false" />
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import type { NotificationInstance } from 'element-plus';
import { sanitizeHtml } from '@/utils/htmlUtils';
import { useToast } from '@/composables/useToast';
export default defineComponent({
name: 'PageAlert',
props: {
message: {
type: String,
required: true,
},
popupClass: {
type: String,
},
},
setup() {
return {
...useToast(),
};
},
data() {
return {
alert: null as null | NotificationInstance,
};
},
mounted() {
this.alert = this.showAlert({
title: '',
message: sanitizeHtml(this.message),
type: 'warning',
duration: 0,
showClose: true,
dangerouslyUseHTMLString: true,
customClass: this.popupClass || '',
});
},
beforeUnmount() {
if (this.alert) {
this.alert.close();
}
},
});
</script>