Files
Papo/public/ts/ui/toast.ts
Pascal Prießnitz 22caa79b54
All checks were successful
Deploy Discord Bot / deploy (push) Successful in 37s
[deploy]
2025-12-04 16:43:38 +01:00

24 lines
757 B
TypeScript

let currentTimeout: number | null = null;
export function showToast(message: string, isError = false, duration = 2500) {
let toast = document.getElementById('toast-root') as HTMLElement | null;
if (!toast) {
toast = document.createElement('div');
toast.id = 'toast-root';
document.body.appendChild(toast);
}
toast.className = `toast ${isError ? 'error' : ''}`;
toast.textContent = message;
requestAnimationFrame(() => {
toast?.classList.add('show');
});
if (currentTimeout) window.clearTimeout(currentTimeout);
currentTimeout = window.setTimeout(() => hideToast(), duration);
}
export function hideToast() {
const toast = document.getElementById('toast-root');
if (!toast) return;
toast.classList.remove('show');
}