notistack
Advanced tools
Comparing version
@@ -7,3 +7,3 @@ /** | ||
export type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>> | ||
type RequiredBy<T, K extends keyof T> = Omit<T, K> & Required<Pick<T, K>> | ||
export type ClassNameMap<ClassKey extends string = string> = Record<ClassKey, string>; | ||
@@ -15,3 +15,3 @@ | ||
export type SnackbarMessage = string | React.ReactNode; | ||
export type SnackbarMessage = string; | ||
export type SnackbarAction = React.ReactNode | ((key: SnackbarKey) => React.ReactNode); | ||
@@ -24,2 +24,5 @@ export type SnackbarContentCallback = React.ReactNode | ((key: SnackbarKey, message: SnackbarMessage) => React.ReactNode); | ||
type AnyComponentMap = Record<string, React.ComponentType<any>>; | ||
type VariantsOf<T> = { [K in keyof T]: K extends string ? K : never; }[keyof T]; | ||
export type SnackbarClassKey = | ||
@@ -133,3 +136,3 @@ | 'root' | ||
*/ | ||
variant?: V; | ||
variant?: V | VariantType; | ||
/** | ||
@@ -150,3 +153,3 @@ * Ignores displaying multiple snackbars with the same `message` | ||
hideIconVariant?: boolean; | ||
/** | ||
/** | ||
* Properties applied to the Snackbar root element. You'd only want to use | ||
@@ -197,5 +200,5 @@ * this prop to apply html attributes for accessibility or data-* attributes. | ||
*/ | ||
export interface InternalSnack extends RequiredBy<Omit<OptionsObject, 'key' | 'preventDuplicate'>, NeededByInternalSnack>, InternalSnackAttributes { | ||
export interface InternalSnack<V extends string = VariantType> extends RequiredBy<Omit<OptionsObject<V>, 'key' | 'preventDuplicate'>, NeededByInternalSnack>, InternalSnackAttributes { | ||
id: SnackbarKey; | ||
message: SnackbarMessage; | ||
message?: SnackbarMessage; | ||
iconVariant: Record<string, React.ReactNode>; | ||
@@ -209,3 +212,3 @@ } | ||
*/ | ||
export interface CustomContentProps extends Omit<InternalSnack, NotNeededByCustomSnackbar> { | ||
export interface CustomContentProps<V extends string = VariantType> extends Omit<InternalSnack<V>, NotNeededByCustomSnackbar> { | ||
@@ -217,3 +220,3 @@ } | ||
*/ | ||
export interface SnackbarProviderProps<V extends string = VariantType> extends SharedProps<V> { | ||
export interface SnackbarProviderProps<V extends keyof T = any, T extends Record<V, React.ComponentType<any>> = any> extends SharedProps<VariantsOf<T>> { | ||
/** | ||
@@ -254,17 +257,26 @@ * Most of the time this is your App. every component from this point onward | ||
*/ | ||
Components?: { | ||
[key in V]?: React.ComponentType<CustomContentProps>; | ||
}; | ||
Components?: T; | ||
} | ||
export class SnackbarProvider extends React.Component<SnackbarProviderProps> { | ||
enqueueSnackbar: ProviderContext['enqueueSnackbar']; | ||
closeSnackbar: ProviderContext['closeSnackbar']; | ||
/** All additional props (custom content props excluded (except message)) */ | ||
type AdditionalProps<P extends CustomContentProps> = Omit<P, keyof CustomContentProps>; | ||
/** Infers type of props passed to a custom component */ | ||
type PropsOfComponent<C> = C extends React.ComponentType<infer P> ? P : never; | ||
type AdditionalPropsOfComponent<C extends React.ComponentType<any>> = AdditionalProps<PropsOfComponent<C>> | ||
interface EnqueueSnackbar<T extends AnyComponentMap> { | ||
<V extends VariantsOf<T>>(message: string, options?: OptionsObject<V> & AdditionalPropsOfComponent<T[V]>): SnackbarKey; | ||
<V extends VariantsOf<T>>(options: OptionsObject<V> & AdditionalPropsOfComponent<T[V]> & { message?: SnackbarMessage }): SnackbarKey | ||
} | ||
export interface ProviderContext { | ||
enqueueSnackbar: (message: SnackbarMessage, options?: OptionsObject) => SnackbarKey; | ||
export interface ProviderContext<T extends AnyComponentMap = any> { | ||
enqueueSnackbar: EnqueueSnackbar<T>; | ||
closeSnackbar: (key?: SnackbarKey) => void; | ||
} | ||
export class SnackbarProvider<V extends keyof T, T extends Record<V, React.ComponentType<any>>> extends React.Component<SnackbarProviderProps<V, T>> { | ||
enqueueSnackbar: ProviderContext<T>['enqueueSnackbar']; | ||
closeSnackbar: ProviderContext<T>['closeSnackbar']; | ||
} | ||
export function withSnackbar<P extends ProviderContext>(component: React.ComponentType<P>): | ||
@@ -275,2 +287,2 @@ React.ComponentClass<Omit<P, keyof ProviderContext>> & { WrappedComponent: React.ComponentType<P> }; | ||
export function useSnackbar(): ProviderContext; | ||
export function useSnackbar<T extends AnyComponentMap>(): ProviderContext<T>; |
@@ -708,70 +708,2 @@ 'use strict'; | ||
/** | ||
* Adds a new snackbar to the queue to be presented. | ||
* Returns generated or user defined key referencing the new snackbar or null | ||
*/ | ||
_this.enqueueSnackbar = function (message, opts) { | ||
if (opts === void 0) { | ||
opts = {}; | ||
} | ||
var _opts = opts, | ||
key = _opts.key, | ||
preventDuplicate = _opts.preventDuplicate, | ||
options = _objectWithoutPropertiesLoose(_opts, ["key", "preventDuplicate"]); | ||
var hasSpecifiedKey = isDefined(key); | ||
var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random(); | ||
var merger = merge(options, _this.props, DEFAULTS); | ||
var snack = _extends({ | ||
id: id | ||
}, options, { | ||
message: message, | ||
open: true, | ||
entered: false, | ||
requestClose: false, | ||
persist: merger('persist'), | ||
action: merger('action'), | ||
content: merger('content'), | ||
variant: merger('variant'), | ||
anchorOrigin: merger('anchorOrigin'), | ||
disableWindowBlurListener: merger('disableWindowBlurListener'), | ||
autoHideDuration: merger('autoHideDuration'), | ||
hideIconVariant: merger('hideIconVariant'), | ||
TransitionComponent: merger('TransitionComponent'), | ||
transitionDuration: merger('transitionDuration', true), | ||
TransitionProps: merger('TransitionProps', true), | ||
iconVariant: merger('iconVariant', true), | ||
style: merger('style', true), | ||
SnackbarProps: merger('SnackbarProps', true), | ||
className: clsx(_this.props.className, options.className) | ||
}); | ||
if (snack.persist) { | ||
snack.autoHideDuration = undefined; | ||
} | ||
_this.setState(function (state) { | ||
if (preventDuplicate === undefined && _this.props.preventDuplicate || preventDuplicate) { | ||
var compareFunction = function compareFunction(item) { | ||
return hasSpecifiedKey ? item.id === id : item.message === message; | ||
}; | ||
var inQueue = state.queue.findIndex(compareFunction) > -1; | ||
var inView = state.snacks.findIndex(compareFunction) > -1; | ||
if (inQueue || inView) { | ||
return state; | ||
} | ||
} | ||
return _this.handleDisplaySnack(_extends({}, state, { | ||
queue: [].concat(state.queue, [snack]) | ||
})); | ||
}); | ||
return id; | ||
}; | ||
/** | ||
* Reducer: Display snack if there's space for it. Otherwise, immediately | ||
@@ -781,3 +713,2 @@ * begin dismissing the oldest message to start showing the new one. | ||
_this.handleDisplaySnack = function (state) { | ||
@@ -980,5 +911,76 @@ var snacks = state.snacks; | ||
_proto.render = function render() { | ||
/** | ||
* Adds a new snackbar to the queue to be presented. | ||
* Returns generated or user defined key referencing the new snackbar or null | ||
*/ | ||
_proto.enqueueSnackbar = function enqueueSnackbar(messageOrOptions, optsOrUndefined) { | ||
var _this2 = this; | ||
if (optsOrUndefined === void 0) { | ||
optsOrUndefined = {}; | ||
} | ||
var opts = typeof messageOrOptions !== 'string' ? messageOrOptions : optsOrUndefined; | ||
var message = typeof messageOrOptions === 'string' ? messageOrOptions : optsOrUndefined.message; | ||
var key = opts.key, | ||
preventDuplicate = opts.preventDuplicate, | ||
options = _objectWithoutPropertiesLoose(opts, ["key", "preventDuplicate"]); | ||
var hasSpecifiedKey = isDefined(key); | ||
var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random(); | ||
var merger = merge(options, this.props, DEFAULTS); | ||
var snack = _extends({ | ||
id: id | ||
}, options, { | ||
message: message, | ||
open: true, | ||
entered: false, | ||
requestClose: false, | ||
persist: merger('persist'), | ||
action: merger('action'), | ||
content: merger('content'), | ||
variant: merger('variant'), | ||
anchorOrigin: merger('anchorOrigin'), | ||
disableWindowBlurListener: merger('disableWindowBlurListener'), | ||
autoHideDuration: merger('autoHideDuration'), | ||
hideIconVariant: merger('hideIconVariant'), | ||
TransitionComponent: merger('TransitionComponent'), | ||
transitionDuration: merger('transitionDuration', true), | ||
TransitionProps: merger('TransitionProps', true), | ||
iconVariant: merger('iconVariant', true), | ||
style: merger('style', true), | ||
SnackbarProps: merger('SnackbarProps', true), | ||
className: clsx(this.props.className, options.className) | ||
}); | ||
if (snack.persist) { | ||
snack.autoHideDuration = undefined; | ||
} | ||
this.setState(function (state) { | ||
if (preventDuplicate === undefined && _this2.props.preventDuplicate || preventDuplicate) { | ||
var compareFunction = function compareFunction(item) { | ||
return hasSpecifiedKey ? item.id === id : item.message === message; | ||
}; | ||
var inQueue = state.queue.findIndex(compareFunction) > -1; | ||
var inView = state.snacks.findIndex(compareFunction) > -1; | ||
if (inQueue || inView) { | ||
return state; | ||
} | ||
} | ||
return _this2.handleDisplaySnack(_extends({}, state, { | ||
queue: [].concat(state.queue, [snack]) | ||
})); | ||
}); | ||
return id; | ||
}; | ||
_proto.render = function render() { | ||
var _this3 = this; | ||
var contextValue = this.state.contextValue; | ||
@@ -1015,7 +1017,7 @@ var _this$props = this.props, | ||
Component: Components[snack.variant] || MaterialDesignContent$1, | ||
onClose: _this2.handleCloseSnack, | ||
onEnter: _this2.props.onEnter, | ||
onExit: _this2.props.onExit, | ||
onExited: createChainedFunction([_this2.handleExitedSnack, _this2.props.onExited]), | ||
onEntered: createChainedFunction([_this2.handleEnteredSnack, _this2.props.onEntered]) | ||
onClose: _this3.handleCloseSnack, | ||
onEnter: _this3.props.onEnter, | ||
onExit: _this3.props.onExit, | ||
onExited: createChainedFunction([_this3.handleExitedSnack, _this3.props.onExited]), | ||
onEntered: createChainedFunction([_this3.handleEnteredSnack, _this3.props.onEntered]) | ||
}); | ||
@@ -1022,0 +1024,0 @@ })); |
@@ -1,2 +0,2 @@ | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),t=e(n),r=require("react-dom"),o=e(require("clsx")),a=e(require("@material-ui/core/Slide")),i=e(require("@material-ui/core/SvgIcon")),s=e(require("@material-ui/core/Collapse")),c=e(require("@material-ui/core/ClickAwayListener")),u=require("goober"),l=e(require("hoist-non-react-statics"));function d(){return(d=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function p(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(o[t]=e[t]);return o}var f=t.createContext(),m=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41\n 10.59L10 14.17L17.59 6.58L19 8L10 17Z"}))},h=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z"}))},x=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,\n 6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,\n 13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"}))},g=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,\n 0 22,12A10,10 0 0,0 12,2Z"}))},v={fontSize:20,marginInlineEnd:8},k={maxSnack:3,persist:!1,hideIconVariant:!1,disableWindowBlurListener:!1,variant:"default",autoHideDuration:5e3,iconVariant:{default:void 0,success:t.createElement(m,{style:v}),warning:t.createElement(h,{style:v}),error:t.createElement(x,{style:v}),info:t.createElement(g,{style:v})},anchorOrigin:{vertical:"bottom",horizontal:"left"},TransitionComponent:a,transitionDuration:{enter:225,exit:195}},b=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},E=function(e){var n={containerRoot:"",containerAnchorOriginTopCenter:"",containerAnchorOriginBottomCenter:"",containerAnchorOriginTopRight:"",containerAnchorOriginBottomRight:"",containerAnchorOriginTopLeft:"",containerAnchorOriginBottomLeft:""};return Object.keys(e).filter((function(e){return!n[e]})).reduce((function(n,t){var r;return d({},n,((r={})[t]=e[t],r))}),{})},C={TIMEOUT:"timeout",CLICKAWAY:"clickaway",MAXSNACK:"maxsnack",INSTRUCTED:"instructed"},S=function(e){return"containerAnchorOrigin"+e},w=function(e){return!!e||0===e},y=function(e){return"number"==typeof e||null===e},L={right:"left",left:"right",bottom:"up",top:"down"};function O(e,n){return e.reduce((function(e,t){return null==t?e:function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var i=[].concat(o);n&&-1===i.indexOf(n)&&i.push(n),e.apply(this,i),t.apply(this,i)}}),(function(){}))}var D="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function T(e){var t=n.useRef(e);return D((function(){t.current=e})),n.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}var q,A,H=n.forwardRef((function(e,t){var r=e.children,o=e.className,a=e.autoHideDuration,i=e.disableWindowBlurListener,s=void 0!==i&&i,u=e.onClose,l=e.open,d=e.SnackbarProps,p=void 0===d?{}:d,f=n.useRef(),m=T((function(){u&&u.apply(void 0,arguments)})),h=T((function(e){u&&null!=e&&(f.current&&clearTimeout(f.current),f.current=setTimeout((function(){m(null,C.TIMEOUT)}),e))}));n.useEffect((function(){return l&&h(a),function(){f.current&&clearTimeout(f.current)}}),[l,a,h]);var x=function(){f.current&&clearTimeout(f.current)},g=n.useCallback((function(){null!=a&&h(.5*a)}),[a,h]);return n.useEffect((function(){if(!s&&l)return window.addEventListener("focus",g),window.addEventListener("blur",x),function(){window.removeEventListener("focus",g),window.removeEventListener("blur",x)}}),[s,g,l]),n.createElement(c,{onClickAway:function(e){u&&u(e,C.CLICKAWAY)}},n.createElement("div",Object.assign({ref:t},p,{className:o,onMouseEnter:function(e){p.onMouseEnter&&p.onMouseEnter(e),x()},onMouseLeave:function(e){p.onMouseLeave&&p.onMouseLeave(e),g()}}),r))}));function I(e){return Object.entries(e).reduce((function(e,n){var t;return d({},e,((t={})[n[0]]=u.css(n[1]),t))}),{})}var M,N,R,W=I({wrappedRoot:{position:"relative",transform:"translateX(0)",top:0,right:0,bottom:0,left:0},collapseContainer:(q={},q["@media (max-width:599.95px)"]={paddingLeft:"8px",paddingRight:"8px"},q),collapseWrapper:{transition:"margin-bottom 300ms ease 0ms",marginTop:"6px",marginBottom:"6px"},collapseWrapperDense:{marginTop:"2px",marginBottom:"2px"},collapseWrapperInner:(A={width:"auto !important"},A["@media (max-width:599.95px)"]={width:"100%"},A)}),j=function(e){var r=n.useRef(),a=n.useState(!0),i=a[0],c=a[1],u=O([e.snack.onClose,e.onClose],e.snack.id),l=n.useCallback((function(){r.current=setTimeout((function(){c((function(e){return!e}))}),125)}),[]);n.useEffect((function(){return function(){r.current&&clearTimeout(r.current)}}),[]);var f,m=e.snack,h=e.dense,x=e.classes,g=e.Component,v=m.open,k=m.SnackbarProps,E=m.TransitionComponent,S=m.TransitionProps,w=m.transitionDuration,y=m.disableWindowBlurListener,D=m.content,T=p(m,["open","SnackbarProps","TransitionComponent","TransitionProps","transitionDuration","disableWindowBlurListener","content","entered","requestClose","onEnter","onEntered","onExit","onExited"]),q=d({direction:(f=T.anchorOrigin,"center"!==f.horizontal?L[f.horizontal]:L[f.vertical])},S),A=D;"function"==typeof A&&(A=A(T.id,T.message));var I,M,N=["onEnter","onEntered","onExit","onExited"].reduce((function(n,t){var r;return d({},n,((r={})[t]=O([e.snack[t],e[t]],T.id),r))}),{});return t.createElement(s,{unmountOnExit:!0,timeout:175,in:i,classes:{container:W.collapseContainer,wrapper:o(W.collapseWrapper,h&&W.collapseWrapperDense),wrapperInner:W.collapseWrapperInner},onExited:N.onExited},t.createElement(H,{open:v,disableWindowBlurListener:y,autoHideDuration:T.autoHideDuration,className:o(W.wrappedRoot,x.root,x[(I=T.anchorOrigin,M=I.horizontal,"anchorOrigin"+b(I.vertical)+b(M))]),SnackbarProps:k,onClose:u},t.createElement(E,Object.assign({appear:!0,in:v,timeout:w},q,{onExit:N.onExit,onExited:l,onEnter:N.onEnter,onEntered:O([N.onEntered,function(){e.snack.requestClose&&u(null,C.INSTRCUTED)}])}),A||t.createElement(g,Object.assign({},T)))))},P=I({root:(M={boxSizing:"border-box",display:"flex",maxHeight:"100%",maxWidth:"100%",position:"fixed",flexDirection:"column",zIndex:1400,height:"auto",width:"auto",minWidth:"288px",transition:"top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms"},M["@media (max-width:599.95px)"]={left:"0 !important",right:"0 !important",width:"100%"},M),top:{top:"14px"},topDense:{top:"2px"},bottom:{bottom:"14px",flexDirection:"column-reverse"},bottomDense:{bottom:"2px"},left:{left:"20px"},leftDense:{left:"4px"},right:{right:"20px"},rightDense:{right:"4px"},center:(N={left:"50%",transform:"translateX(-50%)"},N["@media (max-width:599.95px)"]={transform:"translateX(0)"},N)}),V=n.memo((function(e){var n=e.anchorOrigin,r=e.children,a=o(P.root,P[n.vertical],P[n.horizontal],e.className,e.dense&&[P[n.vertical+"Dense"],P[n.horizontal+"Dense"]]);return t.createElement("div",{className:a},r)})),B=I({root:(R={display:"flex",flexWrap:"wrap",flexGrow:1},R["@media (min-width:600px)"]={flexGrow:"initial",minWidth:"288px"},R)}),z=n.forwardRef((function(e,n){var r=e.className,a=p(e,["className"]);return t.createElement("div",Object.assign({ref:n,className:o(B.root,r)},a))})),U=I({root:{fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,fontSize:"0.875rem",lineHeight:1.43,letterSpacing:"0.01071em",color:"#fff",alignItems:"center",padding:"6px 16px",borderRadius:"4px",boxShadow:"0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)"},lessPadding:{paddingLeft:"20px"},default:{backgroundColor:"#313131"},success:{backgroundColor:"#43a047"},error:{backgroundColor:"#d32f2f"},warning:{backgroundColor:"#ff9800"},info:{backgroundColor:"#2196f3"},message:{display:"flex",alignItems:"center",padding:"8px 0"},action:{display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:"16px",marginRight:"-8px"}}),K=n.memo(n.forwardRef((function(e,n){var r=e.message,a=e.variant,i=e.hideIconVariant,s=e.style,c=e.iconVariant[a],u=e.action;return"function"==typeof u&&(u=u(e.id)),t.createElement(z,{ref:n,role:"alert",style:s,className:o(U.root,U[a],!i&&c&&U.lessPadding)},t.createElement("div",{id:"notistack-snackbar",className:U.message},i?null:c,r),u&&t.createElement("div",{className:U.action},u))}))),X=function(e){var n,a,i;function s(n){var t;return(t=e.call(this,n)||this).enqueueSnackbar=function(e,n){void 0===n&&(n={});var r=n.key,a=n.preventDuplicate,i=p(n,["key","preventDuplicate"]),s=w(r),c=s?r:(new Date).getTime()+Math.random(),u=function(e,n,t){return function(r,o){return void 0===o&&(o=!1),o?d({},t[r],{},n[r],{},e[r]):"autoHideDuration"===r?y(e.autoHideDuration)?e.autoHideDuration:y(n.autoHideDuration)?n.autoHideDuration:k.autoHideDuration:e[r]||n[r]||t[r]}}(i,t.props,k),l=d({id:c},i,{message:e,open:!0,entered:!1,requestClose:!1,persist:u("persist"),action:u("action"),content:u("content"),variant:u("variant"),anchorOrigin:u("anchorOrigin"),disableWindowBlurListener:u("disableWindowBlurListener"),autoHideDuration:u("autoHideDuration"),hideIconVariant:u("hideIconVariant"),TransitionComponent:u("TransitionComponent"),transitionDuration:u("transitionDuration",!0),TransitionProps:u("TransitionProps",!0),iconVariant:u("iconVariant",!0),style:u("style",!0),SnackbarProps:u("SnackbarProps",!0),className:o(t.props.className,i.className)});return l.persist&&(l.autoHideDuration=void 0),t.setState((function(n){if(void 0===a&&t.props.preventDuplicate||a){var r=function(n){return s?n.id===c:n.message===e},o=n.queue.findIndex(r)>-1,i=n.snacks.findIndex(r)>-1;if(o||i)return n}return t.handleDisplaySnack(d({},n,{queue:[].concat(n.queue,[l])}))})),c},t.handleDisplaySnack=function(e){return e.snacks.length>=t.maxSnack?t.handleDismissOldest(e):t.processQueue(e)},t.processQueue=function(e){var n=e.queue;return n.length>0?d({},e,{snacks:[].concat(e.snacks,[n[0]]),queue:n.slice(1,n.length)}):e},t.handleDismissOldest=function(e){if(e.snacks.some((function(e){return!e.open||e.requestClose})))return e;var n=!1,r=!1;e.snacks.reduce((function(e,n){return e+(n.open&&n.persist?1:0)}),0)===t.maxSnack&&(r=!0);var o=e.snacks.map((function(e){return n||e.persist&&!r?d({},e):(n=!0,e.entered?(e.onClose&&e.onClose(null,C.MAXSNACK,e.id),t.props.onClose&&t.props.onClose(null,C.MAXSNACK,e.id),d({},e,{open:!1})):d({},e,{requestClose:!0}))}));return d({},e,{snacks:o})},t.handleEnteredSnack=function(e,n,r){if(!w(r))throw new Error("handleEnteredSnack Cannot be called with undefined key");t.setState((function(e){return{snacks:e.snacks.map((function(e){return e.id===r?d({},e,{entered:!0}):d({},e)}))}}))},t.handleCloseSnack=function(e,n,r){if(t.props.onClose&&t.props.onClose(e,n,r),n!==C.CLICKAWAY){var o=void 0===r;t.setState((function(e){var n=e.queue;return{snacks:e.snacks.map((function(e){return o||e.id===r?d({},e,e.entered?{open:!1}:{requestClose:!0}):d({},e)})),queue:n.filter((function(e){return e.id!==r}))}}))}},t.closeSnackbar=function(e){var n=t.state.snacks.find((function(n){return n.id===e}));w(e)&&n&&n.onClose&&n.onClose(null,C.INSTRUCTED,e),t.handleCloseSnack(null,C.INSTRUCTED,e)},t.handleExitedSnack=function(e,n,r){var o=n||r;if(!w(o))throw new Error("handleExitedSnack Cannot be called with undefined key");t.setState((function(e){var n=t.processQueue(d({},e,{snacks:e.snacks.filter((function(e){return e.id!==o}))}));return 0===n.queue.length?n:t.handleDismissOldest(n)}))},t.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:t.enqueueSnackbar,closeSnackbar:t.closeSnackbar}},t}return a=e,(n=s).prototype=Object.create(a.prototype),n.prototype.constructor=n,n.__proto__=a,s.prototype.render=function(){var e=this,n=this.state.contextValue,a=this.props,i=a.domRoot,s=a.children,c=a.dense,u=void 0!==c&&c,l=a.Components,p=void 0===l?{}:l,m=a.classes,h=void 0===m?{}:m,x=this.state.snacks.reduce((function(e,n){var t,r,o=""+b((r=n.anchorOrigin).vertical)+b(r.horizontal);return d({},e,((t={})[o]=[].concat(e[o]||[],[n]),t))}),{}),g=Object.keys(x).map((function(n){var r=x[n];return t.createElement(V,{key:n,dense:u,anchorOrigin:r[0].anchorOrigin,className:o(h.containerRoot,h[S(n)])},r.map((function(n){return t.createElement(j,{key:n.id,dense:u,snack:n,classes:E(h),Component:p[n.variant]||K,onClose:e.handleCloseSnack,onEnter:e.props.onEnter,onExit:e.props.onExit,onExited:O([e.handleExitedSnack,e.props.onExited]),onEntered:O([e.handleEnteredSnack,e.props.onEntered])})})))}));return t.createElement(f.Provider,{value:n},s,i?r.createPortal(g,i):g)},(i=[{key:"maxSnack",get:function(){return this.props.maxSnack||k.maxSnack}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(s.prototype,i),s}(n.Component);exports.SnackbarContent=z,exports.SnackbarProvider=X,exports.useSnackbar=function(){return n.useContext(f)},exports.withSnackbar=function(e){var n=t.forwardRef((function(n,r){return t.createElement(f.Consumer,null,(function(o){return t.createElement(e,d({},n,{ref:r,enqueueSnackbar:o.enqueueSnackbar,closeSnackbar:o.closeSnackbar}))}))}));return l(n,e),n}; | ||
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n=require("react"),t=e(n),r=require("react-dom"),o=e(require("clsx")),a=e(require("@material-ui/core/Slide")),i=e(require("@material-ui/core/SvgIcon")),s=e(require("@material-ui/core/Collapse")),c=e(require("@material-ui/core/ClickAwayListener")),u=require("goober"),l=e(require("hoist-non-react-statics"));function p(){return(p=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e}).apply(this,arguments)}function d(e,n){if(null==e)return{};var t,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n.indexOf(t=a[r])>=0||(o[t]=e[t]);return o}var f=t.createContext(),m=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41\n 10.59L10 14.17L17.59 6.58L19 8L10 17Z"}))},h=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z"}))},x=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,\n 6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,\n 13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z"}))},g=function(e){return t.createElement(i,Object.assign({},e),t.createElement("path",{d:"M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,\n 0 22,12A10,10 0 0,0 12,2Z"}))},v={fontSize:20,marginInlineEnd:8},k={maxSnack:3,persist:!1,hideIconVariant:!1,disableWindowBlurListener:!1,variant:"default",autoHideDuration:5e3,iconVariant:{default:void 0,success:t.createElement(m,{style:v}),warning:t.createElement(h,{style:v}),error:t.createElement(x,{style:v}),info:t.createElement(g,{style:v})},anchorOrigin:{vertical:"bottom",horizontal:"left"},TransitionComponent:a,transitionDuration:{enter:225,exit:195}},b=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},E=function(e){var n={containerRoot:"",containerAnchorOriginTopCenter:"",containerAnchorOriginBottomCenter:"",containerAnchorOriginTopRight:"",containerAnchorOriginBottomRight:"",containerAnchorOriginTopLeft:"",containerAnchorOriginBottomLeft:""};return Object.keys(e).filter((function(e){return!n[e]})).reduce((function(n,t){var r;return p({},n,((r={})[t]=e[t],r))}),{})},C={TIMEOUT:"timeout",CLICKAWAY:"clickaway",MAXSNACK:"maxsnack",INSTRUCTED:"instructed"},S=function(e){return"containerAnchorOrigin"+e},w=function(e){return!!e||0===e},y=function(e){return"number"==typeof e||null===e},L={right:"left",left:"right",bottom:"up",top:"down"};function O(e,n){return e.reduce((function(e,t){return null==t?e:function(){for(var r=arguments.length,o=new Array(r),a=0;a<r;a++)o[a]=arguments[a];var i=[].concat(o);n&&-1===i.indexOf(n)&&i.push(n),e.apply(this,i),t.apply(this,i)}}),(function(){}))}var D="undefined"!=typeof window?n.useLayoutEffect:n.useEffect;function T(e){var t=n.useRef(e);return D((function(){t.current=e})),n.useCallback((function(){return t.current.apply(void 0,arguments)}),[])}var q,A,H=n.forwardRef((function(e,t){var r=e.children,o=e.className,a=e.autoHideDuration,i=e.disableWindowBlurListener,s=void 0!==i&&i,u=e.onClose,l=e.open,p=e.SnackbarProps,d=void 0===p?{}:p,f=n.useRef(),m=T((function(){u&&u.apply(void 0,arguments)})),h=T((function(e){u&&null!=e&&(f.current&&clearTimeout(f.current),f.current=setTimeout((function(){m(null,C.TIMEOUT)}),e))}));n.useEffect((function(){return l&&h(a),function(){f.current&&clearTimeout(f.current)}}),[l,a,h]);var x=function(){f.current&&clearTimeout(f.current)},g=n.useCallback((function(){null!=a&&h(.5*a)}),[a,h]);return n.useEffect((function(){if(!s&&l)return window.addEventListener("focus",g),window.addEventListener("blur",x),function(){window.removeEventListener("focus",g),window.removeEventListener("blur",x)}}),[s,g,l]),n.createElement(c,{onClickAway:function(e){u&&u(e,C.CLICKAWAY)}},n.createElement("div",Object.assign({ref:t},d,{className:o,onMouseEnter:function(e){d.onMouseEnter&&d.onMouseEnter(e),x()},onMouseLeave:function(e){d.onMouseLeave&&d.onMouseLeave(e),g()}}),r))}));function I(e){return Object.entries(e).reduce((function(e,n){var t;return p({},e,((t={})[n[0]]=u.css(n[1]),t))}),{})}var M,N,R,W=I({wrappedRoot:{position:"relative",transform:"translateX(0)",top:0,right:0,bottom:0,left:0},collapseContainer:(q={},q["@media (max-width:599.95px)"]={paddingLeft:"8px",paddingRight:"8px"},q),collapseWrapper:{transition:"margin-bottom 300ms ease 0ms",marginTop:"6px",marginBottom:"6px"},collapseWrapperDense:{marginTop:"2px",marginBottom:"2px"},collapseWrapperInner:(A={width:"auto !important"},A["@media (max-width:599.95px)"]={width:"100%"},A)}),j=function(e){var r=n.useRef(),a=n.useState(!0),i=a[0],c=a[1],u=O([e.snack.onClose,e.onClose],e.snack.id),l=n.useCallback((function(){r.current=setTimeout((function(){c((function(e){return!e}))}),125)}),[]);n.useEffect((function(){return function(){r.current&&clearTimeout(r.current)}}),[]);var f,m=e.snack,h=e.dense,x=e.classes,g=e.Component,v=m.open,k=m.SnackbarProps,E=m.TransitionComponent,S=m.TransitionProps,w=m.transitionDuration,y=m.disableWindowBlurListener,D=m.content,T=d(m,["open","SnackbarProps","TransitionComponent","TransitionProps","transitionDuration","disableWindowBlurListener","content","entered","requestClose","onEnter","onEntered","onExit","onExited"]),q=p({direction:(f=T.anchorOrigin,"center"!==f.horizontal?L[f.horizontal]:L[f.vertical])},S),A=D;"function"==typeof A&&(A=A(T.id,T.message));var I,M,N=["onEnter","onEntered","onExit","onExited"].reduce((function(n,t){var r;return p({},n,((r={})[t]=O([e.snack[t],e[t]],T.id),r))}),{});return t.createElement(s,{unmountOnExit:!0,timeout:175,in:i,classes:{container:W.collapseContainer,wrapper:o(W.collapseWrapper,h&&W.collapseWrapperDense),wrapperInner:W.collapseWrapperInner},onExited:N.onExited},t.createElement(H,{open:v,disableWindowBlurListener:y,autoHideDuration:T.autoHideDuration,className:o(W.wrappedRoot,x.root,x[(I=T.anchorOrigin,M=I.horizontal,"anchorOrigin"+b(I.vertical)+b(M))]),SnackbarProps:k,onClose:u},t.createElement(E,Object.assign({appear:!0,in:v,timeout:w},q,{onExit:N.onExit,onExited:l,onEnter:N.onEnter,onEntered:O([N.onEntered,function(){e.snack.requestClose&&u(null,C.INSTRCUTED)}])}),A||t.createElement(g,Object.assign({},T)))))},P=I({root:(M={boxSizing:"border-box",display:"flex",maxHeight:"100%",maxWidth:"100%",position:"fixed",flexDirection:"column",zIndex:1400,height:"auto",width:"auto",minWidth:"288px",transition:"top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms"},M["@media (max-width:599.95px)"]={left:"0 !important",right:"0 !important",width:"100%"},M),top:{top:"14px"},topDense:{top:"2px"},bottom:{bottom:"14px",flexDirection:"column-reverse"},bottomDense:{bottom:"2px"},left:{left:"20px"},leftDense:{left:"4px"},right:{right:"20px"},rightDense:{right:"4px"},center:(N={left:"50%",transform:"translateX(-50%)"},N["@media (max-width:599.95px)"]={transform:"translateX(0)"},N)}),V=n.memo((function(e){var n=e.anchorOrigin,r=e.children,a=o(P.root,P[n.vertical],P[n.horizontal],e.className,e.dense&&[P[n.vertical+"Dense"],P[n.horizontal+"Dense"]]);return t.createElement("div",{className:a},r)})),B=I({root:(R={display:"flex",flexWrap:"wrap",flexGrow:1},R["@media (min-width:600px)"]={flexGrow:"initial",minWidth:"288px"},R)}),z=n.forwardRef((function(e,n){var r=e.className,a=d(e,["className"]);return t.createElement("div",Object.assign({ref:n,className:o(B.root,r)},a))})),U=I({root:{fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,fontSize:"0.875rem",lineHeight:1.43,letterSpacing:"0.01071em",color:"#fff",alignItems:"center",padding:"6px 16px",borderRadius:"4px",boxShadow:"0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)"},lessPadding:{paddingLeft:"20px"},default:{backgroundColor:"#313131"},success:{backgroundColor:"#43a047"},error:{backgroundColor:"#d32f2f"},warning:{backgroundColor:"#ff9800"},info:{backgroundColor:"#2196f3"},message:{display:"flex",alignItems:"center",padding:"8px 0"},action:{display:"flex",alignItems:"center",marginLeft:"auto",paddingLeft:"16px",marginRight:"-8px"}}),K=n.memo(n.forwardRef((function(e,n){var r=e.message,a=e.variant,i=e.hideIconVariant,s=e.style,c=e.iconVariant[a],u=e.action;return"function"==typeof u&&(u=u(e.id)),t.createElement(z,{ref:n,role:"alert",style:s,className:o(U.root,U[a],!i&&c&&U.lessPadding)},t.createElement("div",{id:"notistack-snackbar",className:U.message},i?null:c,r),u&&t.createElement("div",{className:U.action},u))}))),X=function(e){var n,a;function i(n){var t;return(t=e.call(this,n)||this).handleDisplaySnack=function(e){return e.snacks.length>=t.maxSnack?t.handleDismissOldest(e):t.processQueue(e)},t.processQueue=function(e){var n=e.queue;return n.length>0?p({},e,{snacks:[].concat(e.snacks,[n[0]]),queue:n.slice(1,n.length)}):e},t.handleDismissOldest=function(e){if(e.snacks.some((function(e){return!e.open||e.requestClose})))return e;var n=!1,r=!1;e.snacks.reduce((function(e,n){return e+(n.open&&n.persist?1:0)}),0)===t.maxSnack&&(r=!0);var o=e.snacks.map((function(e){return n||e.persist&&!r?p({},e):(n=!0,e.entered?(e.onClose&&e.onClose(null,C.MAXSNACK,e.id),t.props.onClose&&t.props.onClose(null,C.MAXSNACK,e.id),p({},e,{open:!1})):p({},e,{requestClose:!0}))}));return p({},e,{snacks:o})},t.handleEnteredSnack=function(e,n,r){if(!w(r))throw new Error("handleEnteredSnack Cannot be called with undefined key");t.setState((function(e){return{snacks:e.snacks.map((function(e){return e.id===r?p({},e,{entered:!0}):p({},e)}))}}))},t.handleCloseSnack=function(e,n,r){if(t.props.onClose&&t.props.onClose(e,n,r),n!==C.CLICKAWAY){var o=void 0===r;t.setState((function(e){var n=e.queue;return{snacks:e.snacks.map((function(e){return o||e.id===r?p({},e,e.entered?{open:!1}:{requestClose:!0}):p({},e)})),queue:n.filter((function(e){return e.id!==r}))}}))}},t.closeSnackbar=function(e){var n=t.state.snacks.find((function(n){return n.id===e}));w(e)&&n&&n.onClose&&n.onClose(null,C.INSTRUCTED,e),t.handleCloseSnack(null,C.INSTRUCTED,e)},t.handleExitedSnack=function(e,n,r){var o=n||r;if(!w(o))throw new Error("handleExitedSnack Cannot be called with undefined key");t.setState((function(e){var n=t.processQueue(p({},e,{snacks:e.snacks.filter((function(e){return e.id!==o}))}));return 0===n.queue.length?n:t.handleDismissOldest(n)}))},t.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:t.enqueueSnackbar,closeSnackbar:t.closeSnackbar}},t}a=e,(n=i).prototype=Object.create(a.prototype),n.prototype.constructor=n,n.__proto__=a;var s,c=i.prototype;return c.enqueueSnackbar=function(e,n){var t=this;void 0===n&&(n={});var r="string"!=typeof e?e:n,a="string"==typeof e?e:n.message,i=r.key,s=r.preventDuplicate,c=d(r,["key","preventDuplicate"]),u=w(i),l=u?i:(new Date).getTime()+Math.random(),f=function(e,n,t){return function(r,o){return void 0===o&&(o=!1),o?p({},t[r],{},n[r],{},e[r]):"autoHideDuration"===r?y(e.autoHideDuration)?e.autoHideDuration:y(n.autoHideDuration)?n.autoHideDuration:k.autoHideDuration:e[r]||n[r]||t[r]}}(c,this.props,k),m=p({id:l},c,{message:a,open:!0,entered:!1,requestClose:!1,persist:f("persist"),action:f("action"),content:f("content"),variant:f("variant"),anchorOrigin:f("anchorOrigin"),disableWindowBlurListener:f("disableWindowBlurListener"),autoHideDuration:f("autoHideDuration"),hideIconVariant:f("hideIconVariant"),TransitionComponent:f("TransitionComponent"),transitionDuration:f("transitionDuration",!0),TransitionProps:f("TransitionProps",!0),iconVariant:f("iconVariant",!0),style:f("style",!0),SnackbarProps:f("SnackbarProps",!0),className:o(this.props.className,c.className)});return m.persist&&(m.autoHideDuration=void 0),this.setState((function(e){if(void 0===s&&t.props.preventDuplicate||s){var n=function(e){return u?e.id===l:e.message===a},r=e.queue.findIndex(n)>-1,o=e.snacks.findIndex(n)>-1;if(r||o)return e}return t.handleDisplaySnack(p({},e,{queue:[].concat(e.queue,[m])}))})),l},c.render=function(){var e=this,n=this.state.contextValue,a=this.props,i=a.domRoot,s=a.children,c=a.dense,u=void 0!==c&&c,l=a.Components,d=void 0===l?{}:l,m=a.classes,h=void 0===m?{}:m,x=this.state.snacks.reduce((function(e,n){var t,r,o=""+b((r=n.anchorOrigin).vertical)+b(r.horizontal);return p({},e,((t={})[o]=[].concat(e[o]||[],[n]),t))}),{}),g=Object.keys(x).map((function(n){var r=x[n];return t.createElement(V,{key:n,dense:u,anchorOrigin:r[0].anchorOrigin,className:o(h.containerRoot,h[S(n)])},r.map((function(n){return t.createElement(j,{key:n.id,dense:u,snack:n,classes:E(h),Component:d[n.variant]||K,onClose:e.handleCloseSnack,onEnter:e.props.onEnter,onExit:e.props.onExit,onExited:O([e.handleExitedSnack,e.props.onExited]),onEntered:O([e.handleEnteredSnack,e.props.onEntered])})})))}));return t.createElement(f.Provider,{value:n},s,i?r.createPortal(g,i):g)},(s=[{key:"maxSnack",get:function(){return this.props.maxSnack||k.maxSnack}}])&&function(e,n){for(var t=0;t<n.length;t++){var r=n[t];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(i.prototype,s),i}(n.Component);exports.SnackbarContent=z,exports.SnackbarProvider=X,exports.useSnackbar=function(){return n.useContext(f)},exports.withSnackbar=function(e){var n=t.forwardRef((function(n,r){return t.createElement(f.Consumer,null,(function(o){return t.createElement(e,p({},n,{ref:r,enqueueSnackbar:o.enqueueSnackbar,closeSnackbar:o.closeSnackbar}))}))}));return l(n,e),n}; | ||
//# sourceMappingURL=notistack.cjs.production.min.js.map |
@@ -703,70 +703,2 @@ import React__default, { useRef, useCallback, useLayoutEffect, useEffect, forwardRef, createElement, useState, memo, Component, useContext } from 'react'; | ||
/** | ||
* Adds a new snackbar to the queue to be presented. | ||
* Returns generated or user defined key referencing the new snackbar or null | ||
*/ | ||
_this.enqueueSnackbar = function (message, opts) { | ||
if (opts === void 0) { | ||
opts = {}; | ||
} | ||
var _opts = opts, | ||
key = _opts.key, | ||
preventDuplicate = _opts.preventDuplicate, | ||
options = _objectWithoutPropertiesLoose(_opts, ["key", "preventDuplicate"]); | ||
var hasSpecifiedKey = isDefined(key); | ||
var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random(); | ||
var merger = merge(options, _this.props, DEFAULTS); | ||
var snack = _extends({ | ||
id: id | ||
}, options, { | ||
message: message, | ||
open: true, | ||
entered: false, | ||
requestClose: false, | ||
persist: merger('persist'), | ||
action: merger('action'), | ||
content: merger('content'), | ||
variant: merger('variant'), | ||
anchorOrigin: merger('anchorOrigin'), | ||
disableWindowBlurListener: merger('disableWindowBlurListener'), | ||
autoHideDuration: merger('autoHideDuration'), | ||
hideIconVariant: merger('hideIconVariant'), | ||
TransitionComponent: merger('TransitionComponent'), | ||
transitionDuration: merger('transitionDuration', true), | ||
TransitionProps: merger('TransitionProps', true), | ||
iconVariant: merger('iconVariant', true), | ||
style: merger('style', true), | ||
SnackbarProps: merger('SnackbarProps', true), | ||
className: clsx(_this.props.className, options.className) | ||
}); | ||
if (snack.persist) { | ||
snack.autoHideDuration = undefined; | ||
} | ||
_this.setState(function (state) { | ||
if (preventDuplicate === undefined && _this.props.preventDuplicate || preventDuplicate) { | ||
var compareFunction = function compareFunction(item) { | ||
return hasSpecifiedKey ? item.id === id : item.message === message; | ||
}; | ||
var inQueue = state.queue.findIndex(compareFunction) > -1; | ||
var inView = state.snacks.findIndex(compareFunction) > -1; | ||
if (inQueue || inView) { | ||
return state; | ||
} | ||
} | ||
return _this.handleDisplaySnack(_extends({}, state, { | ||
queue: [].concat(state.queue, [snack]) | ||
})); | ||
}); | ||
return id; | ||
}; | ||
/** | ||
* Reducer: Display snack if there's space for it. Otherwise, immediately | ||
@@ -776,3 +708,2 @@ * begin dismissing the oldest message to start showing the new one. | ||
_this.handleDisplaySnack = function (state) { | ||
@@ -975,5 +906,76 @@ var snacks = state.snacks; | ||
_proto.render = function render() { | ||
/** | ||
* Adds a new snackbar to the queue to be presented. | ||
* Returns generated or user defined key referencing the new snackbar or null | ||
*/ | ||
_proto.enqueueSnackbar = function enqueueSnackbar(messageOrOptions, optsOrUndefined) { | ||
var _this2 = this; | ||
if (optsOrUndefined === void 0) { | ||
optsOrUndefined = {}; | ||
} | ||
var opts = typeof messageOrOptions !== 'string' ? messageOrOptions : optsOrUndefined; | ||
var message = typeof messageOrOptions === 'string' ? messageOrOptions : optsOrUndefined.message; | ||
var key = opts.key, | ||
preventDuplicate = opts.preventDuplicate, | ||
options = _objectWithoutPropertiesLoose(opts, ["key", "preventDuplicate"]); | ||
var hasSpecifiedKey = isDefined(key); | ||
var id = hasSpecifiedKey ? key : new Date().getTime() + Math.random(); | ||
var merger = merge(options, this.props, DEFAULTS); | ||
var snack = _extends({ | ||
id: id | ||
}, options, { | ||
message: message, | ||
open: true, | ||
entered: false, | ||
requestClose: false, | ||
persist: merger('persist'), | ||
action: merger('action'), | ||
content: merger('content'), | ||
variant: merger('variant'), | ||
anchorOrigin: merger('anchorOrigin'), | ||
disableWindowBlurListener: merger('disableWindowBlurListener'), | ||
autoHideDuration: merger('autoHideDuration'), | ||
hideIconVariant: merger('hideIconVariant'), | ||
TransitionComponent: merger('TransitionComponent'), | ||
transitionDuration: merger('transitionDuration', true), | ||
TransitionProps: merger('TransitionProps', true), | ||
iconVariant: merger('iconVariant', true), | ||
style: merger('style', true), | ||
SnackbarProps: merger('SnackbarProps', true), | ||
className: clsx(this.props.className, options.className) | ||
}); | ||
if (snack.persist) { | ||
snack.autoHideDuration = undefined; | ||
} | ||
this.setState(function (state) { | ||
if (preventDuplicate === undefined && _this2.props.preventDuplicate || preventDuplicate) { | ||
var compareFunction = function compareFunction(item) { | ||
return hasSpecifiedKey ? item.id === id : item.message === message; | ||
}; | ||
var inQueue = state.queue.findIndex(compareFunction) > -1; | ||
var inView = state.snacks.findIndex(compareFunction) > -1; | ||
if (inQueue || inView) { | ||
return state; | ||
} | ||
} | ||
return _this2.handleDisplaySnack(_extends({}, state, { | ||
queue: [].concat(state.queue, [snack]) | ||
})); | ||
}); | ||
return id; | ||
}; | ||
_proto.render = function render() { | ||
var _this3 = this; | ||
var contextValue = this.state.contextValue; | ||
@@ -1010,7 +1012,7 @@ var _this$props = this.props, | ||
Component: Components[snack.variant] || MaterialDesignContent$1, | ||
onClose: _this2.handleCloseSnack, | ||
onEnter: _this2.props.onEnter, | ||
onExit: _this2.props.onExit, | ||
onExited: createChainedFunction([_this2.handleExitedSnack, _this2.props.onExited]), | ||
onEntered: createChainedFunction([_this2.handleEnteredSnack, _this2.props.onEntered]) | ||
onClose: _this3.handleCloseSnack, | ||
onEnter: _this3.props.onEnter, | ||
onExit: _this3.props.onExit, | ||
onExited: createChainedFunction([_this3.handleExitedSnack, _this3.props.onExited]), | ||
onEntered: createChainedFunction([_this3.handleEnteredSnack, _this3.props.onEntered]) | ||
}); | ||
@@ -1017,0 +1019,0 @@ })); |
{ | ||
"name": "notistack", | ||
"version": "2.0.1-alpha.2", | ||
"version": "2.0.1-alpha.3", | ||
"description": "Highly customizable notification snackbars (toasts) that can be stacked on top of each other", | ||
@@ -40,2 +40,3 @@ "main": "dist/index.js", | ||
"@typescript-eslint/parser": "^3.9.1", | ||
"babel-eslint": "^10.1.0", | ||
"babel-plugin-optimize-clsx": "^2.6.1", | ||
@@ -55,3 +56,3 @@ "eslint": "^7.7.0", | ||
"typedoc": "^0.16.11", | ||
"typescript": "^3.8.3" | ||
"typescript": "^4.2.4" | ||
}, | ||
@@ -58,0 +59,0 @@ "dependencies": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
310195
0.93%2272
0.58%24
4.35%