Alert.tsx 792 B

123456789101112131415161718192021222324252627282930
  1. import React from 'react';
  2. import CloseIcon from 'components/common/Icons/CloseIcon';
  3. import IconButtonWrapper from 'components/common/Icons/IconButtonWrapper';
  4. import { ToastType } from 'react-hot-toast';
  5. import * as S from './Alert.styled';
  6. export interface AlertProps {
  7. title: string;
  8. type: ToastType;
  9. message: string;
  10. onDissmiss(): void;
  11. }
  12. const Alert: React.FC<AlertProps> = ({ title, type, message, onDissmiss }) => (
  13. <S.Alert $type={type} role="alert">
  14. <div>
  15. <S.Title role="heading">{title}</S.Title>
  16. <S.Message
  17. role="contentinfo"
  18. dangerouslySetInnerHTML={{ __html: message }}
  19. />
  20. </div>
  21. <IconButtonWrapper role="button" onClick={onDissmiss}>
  22. <CloseIcon />
  23. </IconButtonWrapper>
  24. </S.Alert>
  25. );
  26. export default Alert;