import type {VNodeChild} from "vue"; interface INotificationArguments { message: string | VNodeChild, type: string, title?: string } export function useNotification( args: INotificationArguments ) { const duration = 5000 const progressBar = h('div', { class: 'el-notification__progress', style: { animationDuration: `${duration}ms` } }) const bodyContent: VNodeChild = typeof args.message === 'string' ? h('p', args.message) : args.message const messageVNode = h('div', [bodyContent, progressBar]) const notification = ElNotification({ title: args.title, duration: 0, message: messageVNode, type: args.type } as NotificationOptions) setTimeout(() => { notification.close() }, duration) }