github.com/filecoin-project/bacalhau@v0.3.23-0.20230228154132-45c989550ace/dashboard/frontend/src/components/system/Snackbar.tsx (about)

     1  import React, { useCallback } from 'react'
     2  import MuiSnackbar from '@mui/material/Snackbar'
     3  import Alert from '@mui/material/Alert'
     4  import {
     5    SnackbarContext,
     6  } from '../../contexts/snackbar'
     7  
     8  const Snackbar: React.FC = () => {
     9    const snackbarContext = React.useContext(SnackbarContext)
    10  
    11    const handleClose = useCallback(() => {
    12      snackbarContext.setSnackbar('')
    13    }, [])
    14  
    15    if(!snackbarContext.snackbar) return null
    16  
    17    return (
    18      <MuiSnackbar
    19        open
    20        autoHideDuration={ 5000 }
    21        anchorOrigin={{ vertical: 'top', horizontal: 'center' }}
    22        onClose={ handleClose }
    23      >
    24        <Alert
    25          severity={ snackbarContext.snackbar.severity }
    26          elevation={ 6 }
    27          variant="filled"
    28          onClose={ handleClose }
    29        >
    30          { snackbarContext.snackbar.message }
    31        </Alert>
    32      </MuiSnackbar>
    33    )
    34  }
    35  
    36  export default Snackbar