UNPKG

@tencentcloud/roomkit-electron-vue3

Version:

<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,

71 lines (60 loc) 1.44 kB
import { createVNode, render, VNode } from 'vue'; import TUINotification from './index.vue'; export type NotificationProps = { message: string; confirm?: () => Promise<void>; cancel?: () => Promise<void>; confirmButtonText?: string; cancelButtonText?: string; }; let notificationInstance: VNode | null = null; let container: Element | null = null; let timer: ReturnType<typeof setTimeout> | null = null; const Notification = ({ message, confirm, cancel, confirmButtonText, cancelButtonText, }: NotificationProps) => { const fullscreenElement = document.fullscreenElement || document.getElementById('roomContainer') || document.body; if (!notificationInstance) { container = document.createElement('div'); fullscreenElement.appendChild(container); } const close = () => { if (container) { render(null, container); fullscreenElement.removeChild(container); notificationInstance = null; container = null; } if (timer) { clearTimeout(timer); timer = null; } }; const vnode = createVNode(TUINotification, { message, confirm, cancel, confirmButtonText, cancelButtonText, close, }); if (container) { render(vnode, container); notificationInstance = vnode; } if (timer) { clearTimeout(timer); } timer = setTimeout(close, 3000); return { close, }; }; export default Notification;