mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-18 20:09:08 +02:00
24c11332b5
* refactor: update mui packages * refactor: run mui codemods * refactor: format files after codemods * refactor: fix broken types * refactor: clean up theme * refactor: fix broken tests * refactor: replace @mui/styles with tss-react * refactor: move breakpoints into classes for tss * refactor: fix crash on missing feature description * refactor: remove void classNames * refactor: adjust styles to new defaults * refactor: remove broken rollout slider e2e test * refactor: fix duplicate e2e testid * refactor: update makeStyles after rebase * refactor: add missing snapshot after rebase * refactor: fix TableCellSortable focus styles * refactor: use 1.4 as the default line-height * refactor: hide webkit search field icons * refactor: fix select box label * refactor: make AutocompleteBox smaller * refactor: make heading smaller * refactor: fix toast close icon color * refactor: update snapshots * refactor: add missing test event awaits * refactor: fix default button line-height
67 lines
1.8 KiB
TypeScript
67 lines
1.8 KiB
TypeScript
import { useState, useEffect } from 'react';
|
|
import { Alert } from '@mui/material';
|
|
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
|
|
import { Typography } from '@mui/material';
|
|
import { useStyles } from './Proclamation.styles';
|
|
import { IProclamationToast } from 'interfaces/uiConfig';
|
|
|
|
interface IProclamationProps {
|
|
toast?: IProclamationToast;
|
|
}
|
|
|
|
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);
|
|
const { classes: styles } = useStyles();
|
|
|
|
useEffect(() => {
|
|
setShow(renderProclamation(toast?.id || ''));
|
|
}, [toast?.id]);
|
|
|
|
const onClose = () => {
|
|
if (localStorage) {
|
|
localStorage.setItem(toast?.id || '', 'seen');
|
|
}
|
|
setShow(false);
|
|
};
|
|
|
|
if (!toast) return null;
|
|
|
|
return (
|
|
<ConditionallyRender
|
|
condition={show}
|
|
show={
|
|
<Alert
|
|
className={styles.proclamation}
|
|
severity={toast.severity}
|
|
onClose={onClose}
|
|
>
|
|
<Typography className={styles.content} variant="body2">
|
|
{toast.message}
|
|
</Typography>
|
|
<a
|
|
href={toast.link}
|
|
className={styles.link}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
>
|
|
View more
|
|
</a>
|
|
</Alert>
|
|
}
|
|
/>
|
|
);
|
|
};
|
|
|
|
export default Proclamation;
|