import React from 'react'; import { Alert, AlertGroup, AlertVariant, ToggleGroup, ToggleGroupItem } from '@breakaway/preact-core'; interface AlertInfo { title: string; variant: AlertVariant; key: number; } export const AsyncLiveRegionAlert: React.FunctionComponent = () => { const [alerts, setAlerts] = React.useState([]); const [isActive, setIsActive] = React.useState(false); const getUniqueId: () => number = () => new Date().getTime(); const addAlert = (alertInfo: AlertInfo) => { setAlerts((prevAlertInfo) => [...prevAlertInfo, alertInfo]); }; React.useEffect(() => { let timer = null; if (isActive) { timer = setInterval(() => { addAlert({ title: `Async alert number ${alerts.length + 1}`, variant: AlertVariant.info, key: getUniqueId() }); }, 4500); } else { clearInterval(timer); } return () => { clearInterval(timer); }; }, [isActive, alerts]); return ( setIsActive(true)} /> setIsActive(false)} /> {alerts.map(({ title, variant, key }) => ( ))} ); };