Alert.tsx 788 B

12345678910111213141516171819202122232425262728
  1. import React from 'react';
  2. import CloseIcon from 'components/common/Icons/CloseIcon';
  3. import IconButtonWrapper from 'components/common/Icons/IconButtonWrapper';
  4. import { Alert as AlertType } from 'redux/interfaces';
  5. import * as S from './Alert.styled';
  6. export interface AlertProps {
  7. title: AlertType['title'];
  8. type: AlertType['type'];
  9. message: AlertType['message'];
  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. <CloseIcon />
  20. </IconButtonWrapper>
  21. </S.Alert>
  22. );
  23. export default Alert;