github.com/grafana/pyroscope@v1.18.0/public/app/ui/StatusMessage/index.tsx (about)

     1  import React, { ReactNode } from 'react';
     2  import cx from 'classnames';
     3  import styles from './StatusMessage.module.scss';
     4  
     5  interface StatusMessageProps {
     6    type: 'error' | 'success' | 'warning' | 'info';
     7    message: string;
     8    action?: ReactNode;
     9  }
    10  
    11  export default function StatusMessage({
    12    type,
    13    message,
    14    action,
    15  }: StatusMessageProps) {
    16    const getClassnameForType = () => {
    17      switch (type) {
    18        case 'error':
    19          return styles.error;
    20        case 'success':
    21          return styles.success;
    22        case 'warning':
    23          return styles.warning;
    24        case 'info':
    25          return styles.info;
    26        default:
    27          return styles.error;
    28      }
    29    };
    30  
    31    return (
    32      <div
    33        className={cx({
    34          [styles.statusMessage]: true,
    35          [getClassnameForType()]: true,
    36        })}
    37      >
    38        <div>{message}</div>
    39        <div className={styles.action}>{action}</div>
    40      </div>
    41    );
    42  }