# All files / Toast Toast.tsx

0% Statements 0/12
0% Branches 0/2
0% Functions 0/1
0% Lines 0/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33

     import * as React from 'react'
    import { StyledToast, StyledToastContainer, StyledToastActions } from './Toast.styled'
    import Portal from '../Portal'
    import Transition from '../Transition'
    import { ToastProps, ToastPropTypes } from './Toast.type'

    const Toast: React.FC<ToastProps> = React.forwardRef<HTMLDivElement, ToastProps>(
      ({ children, visible = false, actions, placement = 'top', ...rest }, ref): React.ReactElement => {
        return (
          <Portal>
            <Transition visible={visible} wrapper={false} mountOnEnter unmountOnExit>
              <StyledToast
                ref={ref}
                width={{ xs: '288px', sm: 'auto' }}
                minWidth={{ xs: '288px', sm: '340px' }}
                placement={placement}
                {...rest}
              >
                <StyledToastContainer>{children}</StyledToastContainer>
                <StyledToastActions>{actions}</StyledToastActions>
              </StyledToast>
            </Transition>
          </Portal>
        )
      }
    )

    Toast.displayName = 'FToast'

    Toast.propTypes = ToastPropTypes

    export default Toast