'use client' import { SyntheticEvent } from 'react' import { observer } from 'mobx-react-lite' import { AppManager } from '@app/managers' import { Link } from './link' import { Button } from './buttons' interface SnackProps { topLevel?: boolean snackID?: string adjustPlacement?: boolean // adjust the position to avoid overlaps } // close the snackbar const handleClose = ( event: SyntheticEvent, reason: string ): any => { event?.preventDefault() event?.stopPropagation() if (reason === 'clickaway') { return } AppManager.closeSnack() } const SnackBarComponent = ({ topLevel, snackID, adjustPlacement, }: SnackProps) => { const snackStyle = !!AppManager.snackbar.open && !(topLevel && AppManager.modalActive) ? `transition transform fixed z-100 ${ adjustPlacement ? 'bottom-52' : 'bottom-0' } inset-x-0 pb-2 sm:pb-5 scale-100 translate-y-0 ease-out duration-500 z-30` : 'hidden' const id = snackID ?? 'message-id' return (
{AppManager.snackbar.title}
{AppManager.snackbar.showBtn ? ( UPGRADE ACCOUNT ) : null}
{!AppManager.snackbar.autoClose ? ( ) : null}
) } export const SnackBar = observer(SnackBarComponent)