Alert.tsx 774 B

123456789101112131415161718192021222324252627
  1. import React from 'react';
  2. import CloseCircleIcon from 'components/common/Icons/CloseCircleIcon';
  3. import IconButtonWrapper from 'components/common/Icons/IconButtonWrapper';
  4. import { ToastTypes } from 'lib/errorHandling';
  5. import * as S from './Alert.styled';
  6. export interface AlertProps {
  7. title: string;
  8. type: ToastTypes;
  9. message: React.ReactNode;
  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 role="contentinfo">{message}</S.Message>
  17. </div>
  18. <IconButtonWrapper role="button" onClick={onDissmiss}>
  19. <CloseCircleIcon />
  20. </IconButtonWrapper>
  21. </S.Alert>
  22. );
  23. export default Alert;