diff --git a/src/SnackbarProvider/SnackbarProvider.tsx b/src/SnackbarProvider/SnackbarProvider.tsx index c404716..819531c 100644 --- a/src/SnackbarProvider/SnackbarProvider.tsx +++ b/src/SnackbarProvider/SnackbarProvider.tsx @@ -255,14 +255,14 @@ class SnackbarProvider extends Component { /** * Close snackbar with the given key */ - closeSnackbar: ProviderContext['closeSnackbar'] = (key) => { + closeSnackbar: ProviderContext['closeSnackbar'] = (key, reason = 'instructed') => { // call individual snackbar onClose callback passed through options parameter const toBeClosed = this.state.snacks.find((item) => item.id === key); if (isDefined(key) && toBeClosed && toBeClosed.onClose) { - toBeClosed.onClose(null, 'instructed', key); + toBeClosed.onClose(null, reason, key); } - this.handleCloseSnack(null, 'instructed', key); + this.handleCloseSnack(null, reason, key); }; /** diff --git a/src/types.ts b/src/types.ts index 54dbe7d..fdbf7c3 100644 --- a/src/types.ts +++ b/src/types.ts @@ -279,11 +279,11 @@ export interface SharedProps extends Partia * @param {object} event The event source of the callback * @param {string} reason Can be:`"timeout"` (`autoHideDuration` expired) or: `"maxsnack"` * (snackbar was closed because `maxSnack` has reached) or: `"instructed"` (snackbar was - * closed programmatically) + * closed programmatically) or: any string if closeSnackbar had reason parameter * @param {string|number|undefined} key key of a Snackbar. key will be `undefined` if closeSnackbar * is called with no key (user requested all the snackbars to be closed) */ - onClose?: (event: React.SyntheticEvent | null, reason: CloseReason, key?: SnackbarKey) => void; + onClose?: (event: React.SyntheticEvent | null, reason: CloseReason | string, key?: SnackbarKey) => void; } /** @@ -405,7 +405,7 @@ interface EnqueueSnackbar { export interface ProviderContext { enqueueSnackbar: EnqueueSnackbar; - closeSnackbar: (key?: SnackbarKey) => void; + closeSnackbar: (key?: SnackbarKey, reason?: string) => void; } export declare class SnackbarProvider extends React.Component {