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 {
OptionsWithExtraProps,
SnackbarMessage,
VariantType
VariantType,
SnackbarKey
} from 'notistack';
import { useSnackbar } from 'notistack';
@@ -10,9 +11,20 @@ type ExtendedOptionsWithExtraProps<V extends VariantType> = OptionsWithExtraProp
}
export default function useEnqueueSnackbar() {
const { enqueueSnackbar } = useSnackbar();
const { enqueueSnackbar, closeSnackbar } = useSnackbar();
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;
};
}