feat: close snackbars upon click (#1378)

This commit is contained in:
Ali BARIN
2023-10-24 12:03:30 +02:00
committed by GitHub
parent c1bf063b12
commit 0a36101da1

View File

@@ -1,7 +1,8 @@
import type { import type {
OptionsWithExtraProps, OptionsWithExtraProps,
SnackbarMessage, SnackbarMessage,
VariantType VariantType,
SnackbarKey
} from 'notistack'; } from 'notistack';
import { useSnackbar } from 'notistack'; import { useSnackbar } from 'notistack';
@@ -10,9 +11,20 @@ type ExtendedOptionsWithExtraProps<V extends VariantType> = OptionsWithExtraProp
} }
export default function useEnqueueSnackbar() { export default function useEnqueueSnackbar() {
const { enqueueSnackbar } = useSnackbar(); const { enqueueSnackbar, closeSnackbar } = useSnackbar();
return function wrappedEnqueueSnackbar<V extends VariantType>(message: SnackbarMessage, options: ExtendedOptionsWithExtraProps<V>) { return function wrappedEnqueueSnackbar<V extends VariantType>(message: SnackbarMessage, options: ExtendedOptionsWithExtraProps<V>) {
return enqueueSnackbar(message, options); const key: SnackbarKey = enqueueSnackbar(
message,
{
...(options || {}) as Record<string, unknown>,
SnackbarProps: {
onClick: () => closeSnackbar(key),
...(options.SnackbarProps || {}) as Record<string, unknown>
}
}
);
return key;
}; };
} }