import { useState, useEffect } from 'react'; import { Alert, styled } from '@mui/material'; import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender'; import { Typography } from '@mui/material'; import type { IProclamationToast } from 'interfaces/uiConfig'; interface IProclamationProps { toast?: IProclamationToast; } const StyledProclamation = styled(Alert)(({ theme }) => ({ marginBottom: theme.spacing(2), })); const StyledContent = styled(Typography)(({ theme }) => ({ maxWidth: '800px', })); const StyledLink = styled('a')(({ theme }) => ({ display: 'block', marginTop: theme.spacing(1), width: '100px', })); const renderProclamation = (id: string) => { if (!id) return false; if (localStorage) { const value = localStorage.getItem(id); if (value) { return false; } } return true; }; const Proclamation = ({ toast }: IProclamationProps) => { const [show, setShow] = useState(false); useEffect(() => { setShow(renderProclamation(toast?.id || '')); }, [toast?.id]); const onClose = () => { if (localStorage) { localStorage.setItem(toast?.id || '', 'seen'); } setShow(false); }; if (!toast) return null; return ( {toast.message} View more } /> ); }; export default Proclamation;