feat: close snackbars upon click (#1378)
This commit is contained in:
@@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user