Alert.tsx 906 B

12345678910111213141516171819202122232425262728293031323334
  1. import React, { FC, ReactNode } from 'react';
  2. interface Props {
  3. title: string;
  4. button?: {
  5. text: string;
  6. onClick: (event: React.MouseEvent) => void;
  7. };
  8. children?: ReactNode;
  9. }
  10. export const Alert: FC<Props> = props => {
  11. const { title, button, children } = props;
  12. return (
  13. <div className="alert-container">
  14. <div className="alert-error alert">
  15. <div className="alert-icon">
  16. <i className="fa fa-exclamation-triangle" />
  17. </div>
  18. <div className="alert-body">
  19. <div className="alert-title">{title}</div>
  20. {children && <div className="alert-text">{children}</div>}
  21. </div>
  22. {button && (
  23. <div className="alert-button">
  24. <button className="btn btn-outline-danger" onClick={button.onClick}>
  25. {button.text}
  26. </button>
  27. </div>
  28. )}
  29. </div>
  30. </div>
  31. );
  32. };