From 0a36101da1a2bc9983887f4fd220ff9ef298ecaa Mon Sep 17 00:00:00 2001 From: Ali BARIN Date: Tue, 24 Oct 2023 12:03:30 +0200 Subject: [PATCH] feat: close snackbars upon click (#1378) --- packages/web/src/hooks/useEnqueueSnackbar.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/web/src/hooks/useEnqueueSnackbar.ts b/packages/web/src/hooks/useEnqueueSnackbar.ts index 02a23074..078166a1 100644 --- a/packages/web/src/hooks/useEnqueueSnackbar.ts +++ b/packages/web/src/hooks/useEnqueueSnackbar.ts @@ -1,7 +1,8 @@ import type { OptionsWithExtraProps, SnackbarMessage, - VariantType + VariantType, + SnackbarKey } from 'notistack'; import { useSnackbar } from 'notistack'; @@ -10,9 +11,20 @@ type ExtendedOptionsWithExtraProps = OptionsWithExtraProp } export default function useEnqueueSnackbar() { - const { enqueueSnackbar } = useSnackbar(); + const { enqueueSnackbar, closeSnackbar } = useSnackbar(); return function wrappedEnqueueSnackbar(message: SnackbarMessage, options: ExtendedOptionsWithExtraProps) { - return enqueueSnackbar(message, options); + const key: SnackbarKey = enqueueSnackbar( + message, + { + ...(options || {}) as Record, + SnackbarProps: { + onClick: () => closeSnackbar(key), + ...(options.SnackbarProps || {}) as Record + } + } + ); + + return key; }; }