@salutejs/plasma-new-hope 0.246.0-canary.1709.12889448199.0 → 0.246.1-canary.1712.12898760233.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
25
25
  var _useToastInner = ToastProvider.useToastInner(),
26
26
  hideToast = _useToastInner.hideToast,
27
27
  isVisible = _useToastInner.isVisible,
28
- hideTimeout = _useToastInner.hideTimeout,
29
28
  animationRunTimeout = _useToastInner.animationRunTimeout;
30
29
  var toastKey = "".concat(text).concat(position);
31
30
  var showedClass = isVisible ? Toast_tokens.classes.toastShowed : Toast_tokens.classes.toastHidden;
@@ -36,9 +35,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
36
35
  }, rest);
37
36
  React.useEffect(function () {
38
37
  return function () {
39
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
40
- clearTimeout(hideTimeout.current);
41
- }
42
38
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
43
39
  clearTimeout(animationRunTimeout.current);
44
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToastController.js","sources":["../../../src/components/Toast/ToastController.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { FC } from 'react';\n\nimport { classes } from './Toast.tokens';\nimport { ToastControllerProps, ToastProps } from './Toast.types';\nimport { StyledOverlay, StyledRoot } from './Toast.styles';\nimport { useToastInner } from './ToastProvider';\nimport { FADE_Z_INDEX, gradients } from './utils';\n\nexport const ToastControllerHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastController(props: ToastControllerProps) {\n const { position = 'bottom', offset, fade, text, ...rest } = props;\n\n const { hideToast, isVisible, hideTimeout, animationRunTimeout } = useToastInner();\n const toastKey = `${text}${position}`;\n\n const showedClass = isVisible ? classes.toastShowed : classes.toastHidden;\n const showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;\n\n const toastProps = {\n text,\n onCloseButtonClick: hideToast,\n ...rest,\n } as T;\n\n useEffect(() => {\n return () => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n }\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, []);\n\n if (!text) {\n return null;\n }\n\n return (\n <>\n {fade && (\n <StyledOverlay\n className={showedFadeClass}\n zIndex={FADE_Z_INDEX}\n backgroundColorProperty={gradients[position]}\n isClickable={false}\n />\n )}\n <StyledRoot\n key={toastKey}\n position={position}\n offset={offset}\n isVisible={isVisible}\n className={showedClass}\n >\n <ToastComponent {...toastProps} />\n </StyledRoot>\n </>\n );\n };\n"],"names":["ToastControllerHoc","ToastComponent","ToastController","props","_props$position","position","offset","fade","text","rest","_objectWithoutProperties","_excluded","_useToastInner","useToastInner","hideToast","isVisible","hideTimeout","animationRunTimeout","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","useEffect","current","clearTimeout","React","createElement","Fragment","StyledOverlay","className","zIndex","FADE_Z_INDEX","backgroundColorProperty","gradients","isClickable","StyledRoot","key"],"mappings":";;;;;;;;;;;;;;;;IASaA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAA0BC,cAAqB,EAAA;AAAA,EAAA,OAC1E,SAASC,eAAeA,CAACC,KAA2B,EAAE;AAClD,IAAA,IAAAC,eAAA,GAA6DD,KAAK,CAA1DE,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;MAAEE,MAAM,GAA0BH,KAAK,CAArCG,MAAM;MAAEC,IAAI,GAAoBJ,KAAK,CAA7BI,IAAI;MAAEC,IAAI,GAAcL,KAAK,CAAvBK,IAAI;AAAKC,MAAAA,IAAI,GAAAC,iDAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;AAElE,IAAA,IAAAC,cAAA,GAAmEC,2BAAa,EAAE;MAA1EC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS;MAAEC,WAAW,GAAAJ,cAAA,CAAXI,WAAW;MAAEC,mBAAmB,GAAAL,cAAA,CAAnBK,mBAAmB,CAAA;IAC9D,IAAMC,QAAQ,MAAAC,MAAA,CAAMX,IAAI,CAAAW,CAAAA,MAAA,CAAGd,QAAQ,CAAE,CAAA;IAErC,IAAMe,WAAW,GAAGL,SAAS,GAAGM,oBAAO,CAACC,WAAW,GAAGD,oBAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGT,SAAS,GAAGM,oBAAO,CAACI,eAAe,GAAGJ,oBAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,uCAAA,CAAA;AACZpB,MAAAA,IAAI,EAAJA,IAAI;AACJqB,MAAAA,kBAAkB,EAAEf,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;AAENqB,IAAAA,eAAS,CAAC,YAAM;AACZ,MAAA,OAAO,YAAM;AACT,QAAA,IAAId,WAAW,KAAXA,IAAAA,IAAAA,WAAW,eAAXA,WAAW,CAAEe,OAAO,EAAE;AACtBC,UAAAA,YAAY,CAAChB,WAAW,CAACe,OAAO,CAAC,CAAA;AACrC,SAAA;AACA,QAAA,IAAId,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEc,OAAO,EAAE;AAC9BC,UAAAA,YAAY,CAACf,mBAAmB,CAACc,OAAO,CAAC,CAAA;AAC7C,SAAA;OACH,CAAA;KACJ,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAACvB,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIyB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EACK5B,IAAAA,EAAAA,IAAI,iBACD0B,sBAAA,CAAAC,aAAA,CAACE,0BAAa,EAAA;AACVC,MAAAA,SAAS,EAAEb,eAAgB;AAC3Bc,MAAAA,MAAM,EAAEC,kBAAa;AACrBC,MAAAA,uBAAuB,EAAEC,eAAS,CAACpC,QAAQ,CAAE;AAC7CqC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,sBAAA,CAAAC,aAAA,CAACS,uBAAU,EAAA;AACPC,MAAAA,GAAG,EAAE1B,QAAS;AACdb,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBsB,MAAAA,SAAS,EAAEjB,WAAAA;KAEXa,eAAAA,sBAAA,CAAAC,aAAA,CAACjC,cAAc,EAAK0B,UAAa,CACzB,CACd,CAAC,CAAA;GAEV,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ToastController.js","sources":["../../../src/components/Toast/ToastController.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { FC } from 'react';\n\nimport { classes } from './Toast.tokens';\nimport { ToastControllerProps, ToastProps } from './Toast.types';\nimport { StyledOverlay, StyledRoot } from './Toast.styles';\nimport { useToastInner } from './ToastProvider';\nimport { FADE_Z_INDEX, gradients } from './utils';\n\nexport const ToastControllerHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastController(props: ToastControllerProps) {\n const { position = 'bottom', offset, fade, text, ...rest } = props;\n\n const { hideToast, isVisible, animationRunTimeout } = useToastInner();\n const toastKey = `${text}${position}`;\n\n const showedClass = isVisible ? classes.toastShowed : classes.toastHidden;\n const showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;\n\n const toastProps = {\n text,\n onCloseButtonClick: hideToast,\n ...rest,\n } as T;\n\n useEffect(() => {\n return () => {\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, []);\n\n if (!text) {\n return null;\n }\n\n return (\n <>\n {fade && (\n <StyledOverlay\n className={showedFadeClass}\n zIndex={FADE_Z_INDEX}\n backgroundColorProperty={gradients[position]}\n isClickable={false}\n />\n )}\n <StyledRoot\n key={toastKey}\n position={position}\n offset={offset}\n isVisible={isVisible}\n className={showedClass}\n >\n <ToastComponent {...toastProps} />\n </StyledRoot>\n </>\n );\n };\n"],"names":["ToastControllerHoc","ToastComponent","ToastController","props","_props$position","position","offset","fade","text","rest","_objectWithoutProperties","_excluded","_useToastInner","useToastInner","hideToast","isVisible","animationRunTimeout","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","useEffect","current","clearTimeout","React","createElement","Fragment","StyledOverlay","className","zIndex","FADE_Z_INDEX","backgroundColorProperty","gradients","isClickable","StyledRoot","key"],"mappings":";;;;;;;;;;;;;;;;IASaA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAA0BC,cAAqB,EAAA;AAAA,EAAA,OAC1E,SAASC,eAAeA,CAACC,KAA2B,EAAE;AAClD,IAAA,IAAAC,eAAA,GAA6DD,KAAK,CAA1DE,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;MAAEE,MAAM,GAA0BH,KAAK,CAArCG,MAAM;MAAEC,IAAI,GAAoBJ,KAAK,CAA7BI,IAAI;MAAEC,IAAI,GAAcL,KAAK,CAAvBK,IAAI;AAAKC,MAAAA,IAAI,GAAAC,iDAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;AAElE,IAAA,IAAAC,cAAA,GAAsDC,2BAAa,EAAE;MAA7DC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS;MAAEC,mBAAmB,GAAAJ,cAAA,CAAnBI,mBAAmB,CAAA;IACjD,IAAMC,QAAQ,MAAAC,MAAA,CAAMV,IAAI,CAAAU,CAAAA,MAAA,CAAGb,QAAQ,CAAE,CAAA;IAErC,IAAMc,WAAW,GAAGJ,SAAS,GAAGK,oBAAO,CAACC,WAAW,GAAGD,oBAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGR,SAAS,GAAGK,oBAAO,CAACI,eAAe,GAAGJ,oBAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,uCAAA,CAAA;AACZnB,MAAAA,IAAI,EAAJA,IAAI;AACJoB,MAAAA,kBAAkB,EAAEd,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;AAENoB,IAAAA,eAAS,CAAC,YAAM;AACZ,MAAA,OAAO,YAAM;AACT,QAAA,IAAIb,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEc,OAAO,EAAE;AAC9BC,UAAAA,YAAY,CAACf,mBAAmB,CAACc,OAAO,CAAC,CAAA;AAC7C,SAAA;OACH,CAAA;KACJ,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAACtB,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIwB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EACK3B,IAAAA,EAAAA,IAAI,iBACDyB,sBAAA,CAAAC,aAAA,CAACE,0BAAa,EAAA;AACVC,MAAAA,SAAS,EAAEb,eAAgB;AAC3Bc,MAAAA,MAAM,EAAEC,kBAAa;AACrBC,MAAAA,uBAAuB,EAAEC,eAAS,CAACnC,QAAQ,CAAE;AAC7CoC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,sBAAA,CAAAC,aAAA,CAACS,uBAAU,EAAA;AACPC,MAAAA,GAAG,EAAE1B,QAAS;AACdZ,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBqB,MAAAA,SAAS,EAAEjB,WAAAA;KAEXa,eAAAA,sBAAA,CAAAC,aAAA,CAAChC,cAAc,EAAKyB,UAAa,CACzB,CACd,CAAC,CAAA;GAEV,CAAA;AAAA;;;;"}
@@ -148,13 +148,13 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
148
148
  var onHide = toastInfo.onHide,
149
149
  timeout = toastInfo.timeout;
150
150
  var hideToast = React.useCallback(function () {
151
- if (!isVisible) {
152
- return;
153
- }
154
151
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
155
152
  clearTimeout(hideTimeout.current);
156
153
  hideTimeout.current = null;
157
154
  }
155
+ if (!isVisible) {
156
+ return;
157
+ }
158
158
  onHide === null || onHide === void 0 || onHide();
159
159
  setIsVisible(false);
160
160
  animationRunTimeout.current = setTimeout(function () {
@@ -174,6 +174,12 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
174
174
  hideToast();
175
175
  }, timeout);
176
176
  }
177
+ return function () {
178
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
179
+ clearTimeout(hideTimeout.current);
180
+ hideTimeout.current = null;
181
+ }
182
+ };
177
183
  }, [isVisible, timeout]);
178
184
  return /*#__PURE__*/React__default.default.createElement(ToastContext.Provider, {
179
185
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport type { ReactNode, FC } from 'react';\n\nimport type { CustomToastProps, ToastControllerProps, ToastProps } from '../Toast.types';\nimport { DEFAULT_FADE, DEFAULT_POSITION, TIMER_DELAY } from '../utils';\n\nimport type { ShowToast, ShowToastArgs, ShowToastCallSignature, ToastContextType } from './ToastProvider.types';\n\nexport const ToastContext = createContext<ToastContextType | null>(null);\n\nexport const useToastInner = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nexport const useToast = () => {\n const { showToast, hideToast } = useToastInner();\n return { showToast, hideToast };\n};\n\nconst initialToastData = {\n text: undefined,\n offset: undefined,\n position: DEFAULT_POSITION,\n fade: DEFAULT_FADE,\n timeout: undefined,\n contentLeft: undefined,\n role: undefined,\n pilled: undefined,\n hasClose: undefined,\n width: undefined,\n size: 'm',\n view: 'primary',\n} as CustomToastProps;\n\nconst getShowToastCallSignature = (args: ShowToastCallSignature) => {\n if (typeof args[0] === 'object' && 'text' in args[0]) {\n return args[0];\n }\n\n // TODO: issue https://github.com/salute-developers/plasma/issues/333\n const [text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view] = args;\n\n return { text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view };\n};\n\nexport const ToastProviderHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastProvider({ children }: { children: ReactNode }) {\n const [isVisible, setIsVisible] = useState(false);\n const [isHidden, setIsHidden] = useState(true);\n const hideTimeout = useRef<number | null>(null);\n const animationRunTimeout = useRef<number | null>(null);\n\n const [toastProps, setToastProps] = useState<ToastControllerProps>(initialToastData);\n const [toastInfo, setToastInfo] = useState<Pick<ShowToastArgs, 'timeout' | 'onHide'>>({\n timeout: undefined,\n onHide: undefined,\n });\n\n const showToastCallback: ShowToast = (...args: ShowToastCallSignature) => {\n if (isVisible) {\n return;\n }\n\n const {\n text,\n offset,\n position = DEFAULT_POSITION,\n fade = DEFAULT_FADE,\n timeout,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n width,\n onHide,\n onShow,\n } = getShowToastCallSignature(args);\n\n setToastProps({\n text,\n width,\n position,\n offset,\n fade,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n });\n\n setToastInfo({ timeout, onHide });\n\n setIsHidden(false);\n setIsVisible(true);\n onShow?.();\n };\n\n const showToast = useCallback(showToastCallback, []);\n\n const { onHide, timeout } = toastInfo;\n\n const hideToast = useCallback(() => {\n if (!isVisible) {\n return;\n }\n\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n\n onHide?.();\n setIsVisible(false);\n\n animationRunTimeout.current = setTimeout(() => {\n setIsHidden(true);\n setToastProps(initialToastData);\n }, TIMER_DELAY);\n }, [onHide, isVisible, isHidden]);\n\n useEffect(() => {\n if (timeout === null && animationRunTimeout.current !== null) {\n clearTimeout(animationRunTimeout.current);\n animationRunTimeout.current = null;\n }\n }, [timeout]);\n\n useEffect(() => {\n if (timeout && isVisible) {\n hideTimeout.current = setTimeout(() => {\n hideToast();\n }, timeout);\n }\n }, [isVisible, timeout]);\n\n return (\n <ToastContext.Provider value={{ showToast, hideToast, isVisible, hideTimeout, animationRunTimeout }}>\n {children}\n {!isHidden && <ToastComponent {...(toastProps as T)} />}\n </ToastContext.Provider>\n );\n };\n"],"names":["ToastContext","createContext","useToastInner","context","useContext","Error","useToast","_useToastInner","showToast","hideToast","initialToastData","text","undefined","offset","position","DEFAULT_POSITION","fade","DEFAULT_FADE","timeout","contentLeft","role","pilled","hasClose","width","size","view","getShowToastCallSignature","args","_typeof","_args","_slicedToArray","ToastProviderHoc","ToastComponent","ToastProvider","_ref","children","_useState","useState","_useState2","isVisible","setIsVisible","_useState3","_useState4","isHidden","setIsHidden","hideTimeout","useRef","animationRunTimeout","_useState5","_useState6","toastProps","setToastProps","_useState7","onHide","_useState8","toastInfo","setToastInfo","showToastCallback","_len","arguments","length","Array","_key","_getShowToastCallSign","_getShowToastCallSign2","_getShowToastCallSign3","onShow","useCallback","current","clearTimeout","setTimeout","TIMER_DELAY","useEffect","React","createElement","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport type { ReactNode, FC } from 'react';\n\nimport type { CustomToastProps, ToastControllerProps, ToastProps } from '../Toast.types';\nimport { DEFAULT_FADE, DEFAULT_POSITION, TIMER_DELAY } from '../utils';\n\nimport type { ShowToast, ShowToastArgs, ShowToastCallSignature, ToastContextType } from './ToastProvider.types';\n\nexport const ToastContext = createContext<ToastContextType | null>(null);\n\nexport const useToastInner = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nexport const useToast = () => {\n const { showToast, hideToast } = useToastInner();\n return { showToast, hideToast };\n};\n\nconst initialToastData = {\n text: undefined,\n offset: undefined,\n position: DEFAULT_POSITION,\n fade: DEFAULT_FADE,\n timeout: undefined,\n contentLeft: undefined,\n role: undefined,\n pilled: undefined,\n hasClose: undefined,\n width: undefined,\n size: 'm',\n view: 'primary',\n} as CustomToastProps;\n\nconst getShowToastCallSignature = (args: ShowToastCallSignature) => {\n if (typeof args[0] === 'object' && 'text' in args[0]) {\n return args[0];\n }\n\n // TODO: issue https://github.com/salute-developers/plasma/issues/333\n const [text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view] = args;\n\n return { text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view };\n};\n\nexport const ToastProviderHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastProvider({ children }: { children: ReactNode }) {\n const [isVisible, setIsVisible] = useState(false);\n const [isHidden, setIsHidden] = useState(true);\n const hideTimeout = useRef<number | null>(null);\n const animationRunTimeout = useRef<number | null>(null);\n\n const [toastProps, setToastProps] = useState<ToastControllerProps>(initialToastData);\n const [toastInfo, setToastInfo] = useState<Pick<ShowToastArgs, 'timeout' | 'onHide'>>({\n timeout: undefined,\n onHide: undefined,\n });\n\n const showToastCallback: ShowToast = (...args: ShowToastCallSignature) => {\n if (isVisible) {\n return;\n }\n\n const {\n text,\n offset,\n position = DEFAULT_POSITION,\n fade = DEFAULT_FADE,\n timeout,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n width,\n onHide,\n onShow,\n } = getShowToastCallSignature(args);\n\n setToastProps({\n text,\n width,\n position,\n offset,\n fade,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n });\n\n setToastInfo({ timeout, onHide });\n\n setIsHidden(false);\n setIsVisible(true);\n onShow?.();\n };\n\n const showToast = useCallback(showToastCallback, []);\n\n const { onHide, timeout } = toastInfo;\n\n const hideToast = useCallback(() => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n\n if (!isVisible) {\n return;\n }\n\n onHide?.();\n setIsVisible(false);\n\n animationRunTimeout.current = setTimeout(() => {\n setIsHidden(true);\n setToastProps(initialToastData);\n }, TIMER_DELAY);\n }, [onHide, isVisible, isHidden]);\n\n useEffect(() => {\n if (timeout === null && animationRunTimeout.current !== null) {\n clearTimeout(animationRunTimeout.current);\n animationRunTimeout.current = null;\n }\n }, [timeout]);\n\n useEffect(() => {\n if (timeout && isVisible) {\n hideTimeout.current = setTimeout(() => {\n hideToast();\n }, timeout);\n }\n\n return () => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n };\n }, [isVisible, timeout]);\n\n return (\n <ToastContext.Provider value={{ showToast, hideToast, isVisible, hideTimeout, animationRunTimeout }}>\n {children}\n {!isHidden && <ToastComponent {...(toastProps as T)} />}\n </ToastContext.Provider>\n );\n };\n"],"names":["ToastContext","createContext","useToastInner","context","useContext","Error","useToast","_useToastInner","showToast","hideToast","initialToastData","text","undefined","offset","position","DEFAULT_POSITION","fade","DEFAULT_FADE","timeout","contentLeft","role","pilled","hasClose","width","size","view","getShowToastCallSignature","args","_typeof","_args","_slicedToArray","ToastProviderHoc","ToastComponent","ToastProvider","_ref","children","_useState","useState","_useState2","isVisible","setIsVisible","_useState3","_useState4","isHidden","setIsHidden","hideTimeout","useRef","animationRunTimeout","_useState5","_useState6","toastProps","setToastProps","_useState7","onHide","_useState8","toastInfo","setToastInfo","showToastCallback","_len","arguments","length","Array","_key","_getShowToastCallSign","_getShowToastCallSign2","_getShowToastCallSign3","onShow","useCallback","current","clearTimeout","setTimeout","TIMER_DELAY","useEffect","React","createElement","Provider","value"],"mappings":"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"}
@@ -31,7 +31,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
31
31
  var _useToastInner = (0, _ToastProvider.useToastInner)(),
32
32
  hideToast = _useToastInner.hideToast,
33
33
  isVisible = _useToastInner.isVisible,
34
- hideTimeout = _useToastInner.hideTimeout,
35
34
  animationRunTimeout = _useToastInner.animationRunTimeout;
36
35
  var toastKey = "".concat(text).concat(position);
37
36
  var showedClass = isVisible ? _Toast.classes.toastShowed : _Toast.classes.toastHidden;
@@ -42,9 +41,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
42
41
  }, rest);
43
42
  (0, _react.useEffect)(function () {
44
43
  return function () {
45
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
46
- clearTimeout(hideTimeout.current);
47
- }
48
44
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
49
45
  clearTimeout(animationRunTimeout.current);
50
46
  }
@@ -153,13 +153,13 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
153
153
  var onHide = toastInfo.onHide,
154
154
  timeout = toastInfo.timeout;
155
155
  var hideToast = (0, _react.useCallback)(function () {
156
- if (!isVisible) {
157
- return;
158
- }
159
156
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
160
157
  clearTimeout(hideTimeout.current);
161
158
  hideTimeout.current = null;
162
159
  }
160
+ if (!isVisible) {
161
+ return;
162
+ }
163
163
  onHide === null || onHide === void 0 || onHide();
164
164
  setIsVisible(false);
165
165
  animationRunTimeout.current = setTimeout(function () {
@@ -179,6 +179,12 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
179
179
  hideToast();
180
180
  }, timeout);
181
181
  }
182
+ return function () {
183
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
184
+ clearTimeout(hideTimeout.current);
185
+ hideTimeout.current = null;
186
+ }
187
+ };
182
188
  }, [isVisible, timeout]);
183
189
  return /*#__PURE__*/_react["default"].createElement(ToastContext.Provider, {
184
190
  value: {
@@ -23,7 +23,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
23
23
  var _useToastInner = useToastInner(),
24
24
  hideToast = _useToastInner.hideToast,
25
25
  isVisible = _useToastInner.isVisible,
26
- hideTimeout = _useToastInner.hideTimeout,
27
26
  animationRunTimeout = _useToastInner.animationRunTimeout;
28
27
  var toastKey = "".concat(text).concat(position);
29
28
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
@@ -34,9 +33,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
34
33
  }, rest);
35
34
  useEffect(function () {
36
35
  return function () {
37
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
38
- clearTimeout(hideTimeout.current);
39
- }
40
36
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
41
37
  clearTimeout(animationRunTimeout.current);
42
38
  }
@@ -145,13 +145,13 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
145
145
  var onHide = toastInfo.onHide,
146
146
  timeout = toastInfo.timeout;
147
147
  var hideToast = useCallback(function () {
148
- if (!isVisible) {
149
- return;
150
- }
151
148
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
152
149
  clearTimeout(hideTimeout.current);
153
150
  hideTimeout.current = null;
154
151
  }
152
+ if (!isVisible) {
153
+ return;
154
+ }
155
155
  onHide === null || onHide === void 0 || onHide();
156
156
  setIsVisible(false);
157
157
  animationRunTimeout.current = setTimeout(function () {
@@ -171,6 +171,12 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
171
171
  hideToast();
172
172
  }, timeout);
173
173
  }
174
+ return function () {
175
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
176
+ clearTimeout(hideTimeout.current);
177
+ hideTimeout.current = null;
178
+ }
179
+ };
174
180
  }, [isVisible, timeout]);
175
181
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
176
182
  value: {
@@ -17,7 +17,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
17
17
  var _useToastInner = useToastInner(),
18
18
  hideToast = _useToastInner.hideToast,
19
19
  isVisible = _useToastInner.isVisible,
20
- hideTimeout = _useToastInner.hideTimeout,
21
20
  animationRunTimeout = _useToastInner.animationRunTimeout;
22
21
  var toastKey = "".concat(text).concat(position);
23
22
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
@@ -28,9 +27,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
28
27
  }, rest);
29
28
  useEffect(function () {
30
29
  return function () {
31
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
32
- clearTimeout(hideTimeout.current);
33
- }
34
30
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
35
31
  clearTimeout(animationRunTimeout.current);
36
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToastController.js","sources":["../../../src/components/Toast/ToastController.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { FC } from 'react';\n\nimport { classes } from './Toast.tokens';\nimport { ToastControllerProps, ToastProps } from './Toast.types';\nimport { StyledOverlay, StyledRoot } from './Toast.styles';\nimport { useToastInner } from './ToastProvider';\nimport { FADE_Z_INDEX, gradients } from './utils';\n\nexport const ToastControllerHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastController(props: ToastControllerProps) {\n const { position = 'bottom', offset, fade, text, ...rest } = props;\n\n const { hideToast, isVisible, hideTimeout, animationRunTimeout } = useToastInner();\n const toastKey = `${text}${position}`;\n\n const showedClass = isVisible ? classes.toastShowed : classes.toastHidden;\n const showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;\n\n const toastProps = {\n text,\n onCloseButtonClick: hideToast,\n ...rest,\n } as T;\n\n useEffect(() => {\n return () => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n }\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, []);\n\n if (!text) {\n return null;\n }\n\n return (\n <>\n {fade && (\n <StyledOverlay\n className={showedFadeClass}\n zIndex={FADE_Z_INDEX}\n backgroundColorProperty={gradients[position]}\n isClickable={false}\n />\n )}\n <StyledRoot\n key={toastKey}\n position={position}\n offset={offset}\n isVisible={isVisible}\n className={showedClass}\n >\n <ToastComponent {...toastProps} />\n </StyledRoot>\n </>\n );\n };\n"],"names":["ToastControllerHoc","ToastComponent","ToastController","props","_props$position","position","offset","fade","text","rest","_objectWithoutProperties","_excluded","_useToastInner","useToastInner","hideToast","isVisible","hideTimeout","animationRunTimeout","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","useEffect","current","clearTimeout","React","createElement","Fragment","StyledOverlay","className","zIndex","FADE_Z_INDEX","backgroundColorProperty","gradients","isClickable","StyledRoot","key"],"mappings":";;;;;;;;IASaA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAA0BC,cAAqB,EAAA;AAAA,EAAA,OAC1E,SAASC,eAAeA,CAACC,KAA2B,EAAE;AAClD,IAAA,IAAAC,eAAA,GAA6DD,KAAK,CAA1DE,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;MAAEE,MAAM,GAA0BH,KAAK,CAArCG,MAAM;MAAEC,IAAI,GAAoBJ,KAAK,CAA7BI,IAAI;MAAEC,IAAI,GAAcL,KAAK,CAAvBK,IAAI;AAAKC,MAAAA,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;AAElE,IAAA,IAAAC,cAAA,GAAmEC,aAAa,EAAE;MAA1EC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS;MAAEC,WAAW,GAAAJ,cAAA,CAAXI,WAAW;MAAEC,mBAAmB,GAAAL,cAAA,CAAnBK,mBAAmB,CAAA;IAC9D,IAAMC,QAAQ,MAAAC,MAAA,CAAMX,IAAI,CAAAW,CAAAA,MAAA,CAAGd,QAAQ,CAAE,CAAA;IAErC,IAAMe,WAAW,GAAGL,SAAS,GAAGM,OAAO,CAACC,WAAW,GAAGD,OAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGT,SAAS,GAAGM,OAAO,CAACI,eAAe,GAAGJ,OAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,cAAA,CAAA;AACZpB,MAAAA,IAAI,EAAJA,IAAI;AACJqB,MAAAA,kBAAkB,EAAEf,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;AAENqB,IAAAA,SAAS,CAAC,YAAM;AACZ,MAAA,OAAO,YAAM;AACT,QAAA,IAAId,WAAW,KAAXA,IAAAA,IAAAA,WAAW,eAAXA,WAAW,CAAEe,OAAO,EAAE;AACtBC,UAAAA,YAAY,CAAChB,WAAW,CAACe,OAAO,CAAC,CAAA;AACrC,SAAA;AACA,QAAA,IAAId,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEc,OAAO,EAAE;AAC9BC,UAAAA,YAAY,CAACf,mBAAmB,CAACc,OAAO,CAAC,CAAA;AAC7C,SAAA;OACH,CAAA;KACJ,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAACvB,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIyB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACK5B,IAAAA,EAAAA,IAAI,iBACD0B,KAAA,CAAAC,aAAA,CAACE,aAAa,EAAA;AACVC,MAAAA,SAAS,EAAEb,eAAgB;AAC3Bc,MAAAA,MAAM,EAAEC,YAAa;AACrBC,MAAAA,uBAAuB,EAAEC,SAAS,CAACpC,QAAQ,CAAE;AAC7CqC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,KAAA,CAAAC,aAAA,CAACS,UAAU,EAAA;AACPC,MAAAA,GAAG,EAAE1B,QAAS;AACdb,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBsB,MAAAA,SAAS,EAAEjB,WAAAA;KAEXa,eAAAA,KAAA,CAAAC,aAAA,CAACjC,cAAc,EAAK0B,UAAa,CACzB,CACd,CAAC,CAAA;GAEV,CAAA;AAAA;;;;"}
1
+ {"version":3,"file":"ToastController.js","sources":["../../../src/components/Toast/ToastController.tsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport type { FC } from 'react';\n\nimport { classes } from './Toast.tokens';\nimport { ToastControllerProps, ToastProps } from './Toast.types';\nimport { StyledOverlay, StyledRoot } from './Toast.styles';\nimport { useToastInner } from './ToastProvider';\nimport { FADE_Z_INDEX, gradients } from './utils';\n\nexport const ToastControllerHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastController(props: ToastControllerProps) {\n const { position = 'bottom', offset, fade, text, ...rest } = props;\n\n const { hideToast, isVisible, animationRunTimeout } = useToastInner();\n const toastKey = `${text}${position}`;\n\n const showedClass = isVisible ? classes.toastShowed : classes.toastHidden;\n const showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;\n\n const toastProps = {\n text,\n onCloseButtonClick: hideToast,\n ...rest,\n } as T;\n\n useEffect(() => {\n return () => {\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, []);\n\n if (!text) {\n return null;\n }\n\n return (\n <>\n {fade && (\n <StyledOverlay\n className={showedFadeClass}\n zIndex={FADE_Z_INDEX}\n backgroundColorProperty={gradients[position]}\n isClickable={false}\n />\n )}\n <StyledRoot\n key={toastKey}\n position={position}\n offset={offset}\n isVisible={isVisible}\n className={showedClass}\n >\n <ToastComponent {...toastProps} />\n </StyledRoot>\n </>\n );\n };\n"],"names":["ToastControllerHoc","ToastComponent","ToastController","props","_props$position","position","offset","fade","text","rest","_objectWithoutProperties","_excluded","_useToastInner","useToastInner","hideToast","isVisible","animationRunTimeout","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","useEffect","current","clearTimeout","React","createElement","Fragment","StyledOverlay","className","zIndex","FADE_Z_INDEX","backgroundColorProperty","gradients","isClickable","StyledRoot","key"],"mappings":";;;;;;;;IASaA,kBAAkB,GAAG,SAArBA,kBAAkBA,CAA0BC,cAAqB,EAAA;AAAA,EAAA,OAC1E,SAASC,eAAeA,CAACC,KAA2B,EAAE;AAClD,IAAA,IAAAC,eAAA,GAA6DD,KAAK,CAA1DE,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,eAAA;MAAEE,MAAM,GAA0BH,KAAK,CAArCG,MAAM;MAAEC,IAAI,GAAoBJ,KAAK,CAA7BI,IAAI;MAAEC,IAAI,GAAcL,KAAK,CAAvBK,IAAI;AAAKC,MAAAA,IAAI,GAAAC,wBAAA,CAAKP,KAAK,EAAAQ,SAAA,CAAA,CAAA;AAElE,IAAA,IAAAC,cAAA,GAAsDC,aAAa,EAAE;MAA7DC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS;MAAEC,mBAAmB,GAAAJ,cAAA,CAAnBI,mBAAmB,CAAA;IACjD,IAAMC,QAAQ,MAAAC,MAAA,CAAMV,IAAI,CAAAU,CAAAA,MAAA,CAAGb,QAAQ,CAAE,CAAA;IAErC,IAAMc,WAAW,GAAGJ,SAAS,GAAGK,OAAO,CAACC,WAAW,GAAGD,OAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGR,SAAS,GAAGK,OAAO,CAACI,eAAe,GAAGJ,OAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,cAAA,CAAA;AACZnB,MAAAA,IAAI,EAAJA,IAAI;AACJoB,MAAAA,kBAAkB,EAAEd,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;AAENoB,IAAAA,SAAS,CAAC,YAAM;AACZ,MAAA,OAAO,YAAM;AACT,QAAA,IAAIb,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEc,OAAO,EAAE;AAC9BC,UAAAA,YAAY,CAACf,mBAAmB,CAACc,OAAO,CAAC,CAAA;AAC7C,SAAA;OACH,CAAA;KACJ,EAAE,EAAE,CAAC,CAAA;IAEN,IAAI,CAACtB,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIwB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACK3B,IAAAA,EAAAA,IAAI,iBACDyB,KAAA,CAAAC,aAAA,CAACE,aAAa,EAAA;AACVC,MAAAA,SAAS,EAAEb,eAAgB;AAC3Bc,MAAAA,MAAM,EAAEC,YAAa;AACrBC,MAAAA,uBAAuB,EAAEC,SAAS,CAACnC,QAAQ,CAAE;AAC7CoC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,KAAA,CAAAC,aAAA,CAACS,UAAU,EAAA;AACPC,MAAAA,GAAG,EAAE1B,QAAS;AACdZ,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBqB,MAAAA,SAAS,EAAEjB,WAAAA;KAEXa,eAAAA,KAAA,CAAAC,aAAA,CAAChC,cAAc,EAAKyB,UAAa,CACzB,CACd,CAAC,CAAA;GAEV,CAAA;AAAA;;;;"}
@@ -140,13 +140,13 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
140
140
  var onHide = toastInfo.onHide,
141
141
  timeout = toastInfo.timeout;
142
142
  var hideToast = useCallback(function () {
143
- if (!isVisible) {
144
- return;
145
- }
146
143
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
147
144
  clearTimeout(hideTimeout.current);
148
145
  hideTimeout.current = null;
149
146
  }
147
+ if (!isVisible) {
148
+ return;
149
+ }
150
150
  onHide === null || onHide === void 0 || onHide();
151
151
  setIsVisible(false);
152
152
  animationRunTimeout.current = setTimeout(function () {
@@ -166,6 +166,12 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
166
166
  hideToast();
167
167
  }, timeout);
168
168
  }
169
+ return function () {
170
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
171
+ clearTimeout(hideTimeout.current);
172
+ hideTimeout.current = null;
173
+ }
174
+ };
169
175
  }, [isVisible, timeout]);
170
176
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
171
177
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport type { ReactNode, FC } from 'react';\n\nimport type { CustomToastProps, ToastControllerProps, ToastProps } from '../Toast.types';\nimport { DEFAULT_FADE, DEFAULT_POSITION, TIMER_DELAY } from '../utils';\n\nimport type { ShowToast, ShowToastArgs, ShowToastCallSignature, ToastContextType } from './ToastProvider.types';\n\nexport const ToastContext = createContext<ToastContextType | null>(null);\n\nexport const useToastInner = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nexport const useToast = () => {\n const { showToast, hideToast } = useToastInner();\n return { showToast, hideToast };\n};\n\nconst initialToastData = {\n text: undefined,\n offset: undefined,\n position: DEFAULT_POSITION,\n fade: DEFAULT_FADE,\n timeout: undefined,\n contentLeft: undefined,\n role: undefined,\n pilled: undefined,\n hasClose: undefined,\n width: undefined,\n size: 'm',\n view: 'primary',\n} as CustomToastProps;\n\nconst getShowToastCallSignature = (args: ShowToastCallSignature) => {\n if (typeof args[0] === 'object' && 'text' in args[0]) {\n return args[0];\n }\n\n // TODO: issue https://github.com/salute-developers/plasma/issues/333\n const [text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view] = args;\n\n return { text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view };\n};\n\nexport const ToastProviderHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastProvider({ children }: { children: ReactNode }) {\n const [isVisible, setIsVisible] = useState(false);\n const [isHidden, setIsHidden] = useState(true);\n const hideTimeout = useRef<number | null>(null);\n const animationRunTimeout = useRef<number | null>(null);\n\n const [toastProps, setToastProps] = useState<ToastControllerProps>(initialToastData);\n const [toastInfo, setToastInfo] = useState<Pick<ShowToastArgs, 'timeout' | 'onHide'>>({\n timeout: undefined,\n onHide: undefined,\n });\n\n const showToastCallback: ShowToast = (...args: ShowToastCallSignature) => {\n if (isVisible) {\n return;\n }\n\n const {\n text,\n offset,\n position = DEFAULT_POSITION,\n fade = DEFAULT_FADE,\n timeout,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n width,\n onHide,\n onShow,\n } = getShowToastCallSignature(args);\n\n setToastProps({\n text,\n width,\n position,\n offset,\n fade,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n });\n\n setToastInfo({ timeout, onHide });\n\n setIsHidden(false);\n setIsVisible(true);\n onShow?.();\n };\n\n const showToast = useCallback(showToastCallback, []);\n\n const { onHide, timeout } = toastInfo;\n\n const hideToast = useCallback(() => {\n if (!isVisible) {\n return;\n }\n\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n\n onHide?.();\n setIsVisible(false);\n\n animationRunTimeout.current = setTimeout(() => {\n setIsHidden(true);\n setToastProps(initialToastData);\n }, TIMER_DELAY);\n }, [onHide, isVisible, isHidden]);\n\n useEffect(() => {\n if (timeout === null && animationRunTimeout.current !== null) {\n clearTimeout(animationRunTimeout.current);\n animationRunTimeout.current = null;\n }\n }, [timeout]);\n\n useEffect(() => {\n if (timeout && isVisible) {\n hideTimeout.current = setTimeout(() => {\n hideToast();\n }, timeout);\n }\n }, [isVisible, timeout]);\n\n return (\n <ToastContext.Provider value={{ showToast, hideToast, isVisible, hideTimeout, animationRunTimeout }}>\n {children}\n {!isHidden && <ToastComponent {...(toastProps as T)} />}\n </ToastContext.Provider>\n );\n };\n"],"names":["ToastContext","createContext","useToastInner","context","useContext","Error","useToast","_useToastInner","showToast","hideToast","initialToastData","text","undefined","offset","position","DEFAULT_POSITION","fade","DEFAULT_FADE","timeout","contentLeft","role","pilled","hasClose","width","size","view","getShowToastCallSignature","args","_typeof","_args","_slicedToArray","ToastProviderHoc","ToastComponent","ToastProvider","_ref","children","_useState","useState","_useState2","isVisible","setIsVisible","_useState3","_useState4","isHidden","setIsHidden","hideTimeout","useRef","animationRunTimeout","_useState5","_useState6","toastProps","setToastProps","_useState7","onHide","_useState8","toastInfo","setToastInfo","showToastCallback","_len","arguments","length","Array","_key","_getShowToastCallSign","_getShowToastCallSign2","_getShowToastCallSign3","onShow","useCallback","current","clearTimeout","setTimeout","TIMER_DELAY","useEffect","React","createElement","Provider","value"],"mappings":"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"}
1
+ {"version":3,"file":"ToastProvider.js","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport type { ReactNode, FC } from 'react';\n\nimport type { CustomToastProps, ToastControllerProps, ToastProps } from '../Toast.types';\nimport { DEFAULT_FADE, DEFAULT_POSITION, TIMER_DELAY } from '../utils';\n\nimport type { ShowToast, ShowToastArgs, ShowToastCallSignature, ToastContextType } from './ToastProvider.types';\n\nexport const ToastContext = createContext<ToastContextType | null>(null);\n\nexport const useToastInner = () => {\n const context = useContext(ToastContext);\n if (!context) {\n throw new Error('useToast must be used within a ToastProvider');\n }\n return context;\n};\n\nexport const useToast = () => {\n const { showToast, hideToast } = useToastInner();\n return { showToast, hideToast };\n};\n\nconst initialToastData = {\n text: undefined,\n offset: undefined,\n position: DEFAULT_POSITION,\n fade: DEFAULT_FADE,\n timeout: undefined,\n contentLeft: undefined,\n role: undefined,\n pilled: undefined,\n hasClose: undefined,\n width: undefined,\n size: 'm',\n view: 'primary',\n} as CustomToastProps;\n\nconst getShowToastCallSignature = (args: ShowToastCallSignature) => {\n if (typeof args[0] === 'object' && 'text' in args[0]) {\n return args[0];\n }\n\n // TODO: issue https://github.com/salute-developers/plasma/issues/333\n const [text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view] = args;\n\n return { text, position, timeout, fade, contentLeft, role, offset, pilled, width, hasClose, size, view };\n};\n\nexport const ToastProviderHoc = <T extends ToastProps>(ToastComponent: FC<T>) =>\n function ToastProvider({ children }: { children: ReactNode }) {\n const [isVisible, setIsVisible] = useState(false);\n const [isHidden, setIsHidden] = useState(true);\n const hideTimeout = useRef<number | null>(null);\n const animationRunTimeout = useRef<number | null>(null);\n\n const [toastProps, setToastProps] = useState<ToastControllerProps>(initialToastData);\n const [toastInfo, setToastInfo] = useState<Pick<ShowToastArgs, 'timeout' | 'onHide'>>({\n timeout: undefined,\n onHide: undefined,\n });\n\n const showToastCallback: ShowToast = (...args: ShowToastCallSignature) => {\n if (isVisible) {\n return;\n }\n\n const {\n text,\n offset,\n position = DEFAULT_POSITION,\n fade = DEFAULT_FADE,\n timeout,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n width,\n onHide,\n onShow,\n } = getShowToastCallSignature(args);\n\n setToastProps({\n text,\n width,\n position,\n offset,\n fade,\n contentLeft,\n role,\n pilled,\n hasClose,\n size,\n view,\n });\n\n setToastInfo({ timeout, onHide });\n\n setIsHidden(false);\n setIsVisible(true);\n onShow?.();\n };\n\n const showToast = useCallback(showToastCallback, []);\n\n const { onHide, timeout } = toastInfo;\n\n const hideToast = useCallback(() => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n\n if (!isVisible) {\n return;\n }\n\n onHide?.();\n setIsVisible(false);\n\n animationRunTimeout.current = setTimeout(() => {\n setIsHidden(true);\n setToastProps(initialToastData);\n }, TIMER_DELAY);\n }, [onHide, isVisible, isHidden]);\n\n useEffect(() => {\n if (timeout === null && animationRunTimeout.current !== null) {\n clearTimeout(animationRunTimeout.current);\n animationRunTimeout.current = null;\n }\n }, [timeout]);\n\n useEffect(() => {\n if (timeout && isVisible) {\n hideTimeout.current = setTimeout(() => {\n hideToast();\n }, timeout);\n }\n\n return () => {\n if (hideTimeout?.current) {\n clearTimeout(hideTimeout.current);\n hideTimeout.current = null;\n }\n };\n }, [isVisible, timeout]);\n\n return (\n <ToastContext.Provider value={{ showToast, hideToast, isVisible, hideTimeout, animationRunTimeout }}>\n {children}\n {!isHidden && <ToastComponent {...(toastProps as T)} />}\n </ToastContext.Provider>\n );\n };\n"],"names":["ToastContext","createContext","useToastInner","context","useContext","Error","useToast","_useToastInner","showToast","hideToast","initialToastData","text","undefined","offset","position","DEFAULT_POSITION","fade","DEFAULT_FADE","timeout","contentLeft","role","pilled","hasClose","width","size","view","getShowToastCallSignature","args","_typeof","_args","_slicedToArray","ToastProviderHoc","ToastComponent","ToastProvider","_ref","children","_useState","useState","_useState2","isVisible","setIsVisible","_useState3","_useState4","isHidden","setIsHidden","hideTimeout","useRef","animationRunTimeout","_useState5","_useState6","toastProps","setToastProps","_useState7","onHide","_useState8","toastInfo","setToastInfo","showToastCallback","_len","arguments","length","Array","_key","_getShowToastCallSign","_getShowToastCallSign2","_getShowToastCallSign3","onShow","useCallback","current","clearTimeout","setTimeout","TIMER_DELAY","useEffect","React","createElement","Provider","value"],"mappings":";;;;IAQaA,YAAY,gBAAGC,aAAa,CAA0B,IAAI,EAAC;IAE3DC,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAC/B,EAAA,IAAMC,OAAO,GAAGC,UAAU,CAACJ,YAAY,CAAC,CAAA;EACxC,IAAI,CAACG,OAAO,EAAE;AACV,IAAA,MAAM,IAAIE,KAAK,CAAC,8CAA8C,CAAC,CAAA;AACnE,GAAA;AACA,EAAA,OAAOF,OAAO,CAAA;AAClB,EAAC;IAEYG,QAAQ,GAAG,SAAXA,QAAQA,GAAS;AAC1B,EAAA,IAAAC,cAAA,GAAiCL,aAAa,EAAE;IAAxCM,SAAS,GAAAD,cAAA,CAATC,SAAS;IAAEC,SAAS,GAAAF,cAAA,CAATE,SAAS,CAAA;EAC5B,OAAO;AAAED,IAAAA,SAAS,EAATA,SAAS;AAAEC,IAAAA,SAAS,EAATA,SAAAA;GAAW,CAAA;AACnC,EAAC;AAED,IAAMC,gBAAgB,GAAG;AACrBC,EAAAA,IAAI,EAAEC,SAAS;AACfC,EAAAA,MAAM,EAAED,SAAS;AACjBE,EAAAA,QAAQ,EAAEC,gBAAgB;AAC1BC,EAAAA,IAAI,EAAEC,YAAY;AAClBC,EAAAA,OAAO,EAAEN,SAAS;AAClBO,EAAAA,WAAW,EAAEP,SAAS;AACtBQ,EAAAA,IAAI,EAAER,SAAS;AACfS,EAAAA,MAAM,EAAET,SAAS;AACjBU,EAAAA,QAAQ,EAAEV,SAAS;AACnBW,EAAAA,KAAK,EAAEX,SAAS;AAChBY,EAAAA,IAAI,EAAE,GAAG;AACTC,EAAAA,IAAI,EAAE,SAAA;AACV,CAAqB,CAAA;AAErB,IAAMC,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIC,IAA4B,EAAK;AAChE,EAAA,IAAIC,OAAA,CAAOD,IAAI,CAAC,CAAC,CAAC,CAAA,KAAK,QAAQ,IAAI,MAAM,IAAIA,IAAI,CAAC,CAAC,CAAC,EAAE;IAClD,OAAOA,IAAI,CAAC,CAAC,CAAC,CAAA;AAClB,GAAA;;AAEA;AACA,EAAA,IAAAE,KAAA,GAAAC,cAAA,CAAwGH,IAAI,EAAA,EAAA,CAAA;AAArGhB,IAAAA,IAAI,GAAAkB,KAAA,CAAA,CAAA,CAAA;AAAEf,IAAAA,QAAQ,GAAAe,KAAA,CAAA,CAAA,CAAA;AAAEX,IAAAA,OAAO,GAAAW,KAAA,CAAA,CAAA,CAAA;AAAEb,IAAAA,IAAI,GAAAa,KAAA,CAAA,CAAA,CAAA;AAAEV,IAAAA,WAAW,GAAAU,KAAA,CAAA,CAAA,CAAA;AAAET,IAAAA,IAAI,GAAAS,KAAA,CAAA,CAAA,CAAA;AAAEhB,IAAAA,MAAM,GAAAgB,KAAA,CAAA,CAAA,CAAA;AAAER,IAAAA,MAAM,GAAAQ,KAAA,CAAA,CAAA,CAAA;AAAEN,IAAAA,KAAK,GAAAM,KAAA,CAAA,CAAA,CAAA;AAAEP,IAAAA,QAAQ,GAAAO,KAAA,CAAA,CAAA,CAAA;AAAEL,IAAAA,IAAI,GAAAK,KAAA,CAAA,EAAA,CAAA;AAAEJ,IAAAA,IAAI,GAAAI,KAAA,CAAA,EAAA,CAAA,CAAA;EAEpG,OAAO;AAAElB,IAAAA,IAAI,EAAJA,IAAI;AAAEG,IAAAA,QAAQ,EAARA,QAAQ;AAAEI,IAAAA,OAAO,EAAPA,OAAO;AAAEF,IAAAA,IAAI,EAAJA,IAAI;AAAEG,IAAAA,WAAW,EAAXA,WAAW;AAAEC,IAAAA,IAAI,EAAJA,IAAI;AAAEP,IAAAA,MAAM,EAANA,MAAM;AAAEQ,IAAAA,MAAM,EAANA,MAAM;AAAEE,IAAAA,KAAK,EAALA,KAAK;AAAED,IAAAA,QAAQ,EAARA,QAAQ;AAAEE,IAAAA,IAAI,EAAJA,IAAI;AAAEC,IAAAA,IAAI,EAAJA,IAAAA;GAAM,CAAA;AAC5G,CAAC,CAAA;IAEYM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAA0BC,cAAqB,EAAA;AAAA,EAAA,OACxE,SAASC,aAAaA,CAAAC,IAAA,EAAwC;AAAA,IAAA,IAArCC,QAAQ,GAAAD,IAAA,CAARC,QAAQ,CAAA;AAC7B,IAAA,IAAAC,SAAA,GAAkCC,QAAQ,CAAC,KAAK,CAAC;MAAAC,UAAA,GAAAR,cAAA,CAAAM,SAAA,EAAA,CAAA,CAAA;AAA1CG,MAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC9B,IAAA,IAAAG,UAAA,GAAgCJ,QAAQ,CAAC,IAAI,CAAC;MAAAK,UAAA,GAAAZ,cAAA,CAAAW,UAAA,EAAA,CAAA,CAAA;AAAvCE,MAAAA,QAAQ,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,WAAW,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5B,IAAA,IAAMG,WAAW,GAAGC,MAAM,CAAgB,IAAI,CAAC,CAAA;AAC/C,IAAA,IAAMC,mBAAmB,GAAGD,MAAM,CAAgB,IAAI,CAAC,CAAA;AAEvD,IAAA,IAAAE,UAAA,GAAoCX,QAAQ,CAAuB3B,gBAAgB,CAAC;MAAAuC,UAAA,GAAAnB,cAAA,CAAAkB,UAAA,EAAA,CAAA,CAAA;AAA7EE,MAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAChC,IAAAG,UAAA,GAAkCf,QAAQ,CAA4C;AAClFnB,QAAAA,OAAO,EAAEN,SAAS;AAClByC,QAAAA,MAAM,EAAEzC,SAAAA;AACZ,OAAC,CAAC;MAAA0C,UAAA,GAAAxB,cAAA,CAAAsB,UAAA,EAAA,CAAA,CAAA;AAHKG,MAAAA,SAAS,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAK9B,IAAA,IAAMG,iBAA4B,GAAG,SAA/BA,iBAA4BA,GAAwC;AACtE,MAAA,IAAIlB,SAAS,EAAE;AACX,QAAA,OAAA;AACJ,OAAA;AAAC,MAAA,KAAA,IAAAmB,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAHoCjC,IAAI,GAAAkC,IAAAA,KAAA,CAAAH,IAAA,GAAAI,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAJ,IAAA,EAAAI,IAAA,EAAA,EAAA;AAAJnC,QAAAA,IAAI,CAAAmC,IAAA,CAAAH,GAAAA,SAAA,CAAAG,IAAA,CAAA,CAAA;AAAA,OAAA;AAKzC,MAAA,IAAAC,qBAAA,GAeIrC,yBAAyB,CAACC,IAAI,CAAC;QAd/BhB,IAAI,GAAAoD,qBAAA,CAAJpD,IAAI;QACJE,MAAM,GAAAkD,qBAAA,CAANlD,MAAM;QAAAmD,sBAAA,GAAAD,qBAAA,CACNjD,QAAQ;AAARA,QAAAA,QAAQ,GAAAkD,sBAAA,KAAGjD,KAAAA,CAAAA,GAAAA,gBAAgB,GAAAiD,sBAAA;QAAAC,sBAAA,GAAAF,qBAAA,CAC3B/C,IAAI;AAAJA,QAAAA,IAAI,GAAAiD,sBAAA,KAAGhD,KAAAA,CAAAA,GAAAA,YAAY,GAAAgD,sBAAA;QACnB/C,OAAO,GAAA6C,qBAAA,CAAP7C,OAAO;QACPC,WAAW,GAAA4C,qBAAA,CAAX5C,WAAW;QACXC,IAAI,GAAA2C,qBAAA,CAAJ3C,IAAI;QACJC,MAAM,GAAA0C,qBAAA,CAAN1C,MAAM;QACNC,QAAQ,GAAAyC,qBAAA,CAARzC,QAAQ;QACRE,IAAI,GAAAuC,qBAAA,CAAJvC,IAAI;QACJC,IAAI,GAAAsC,qBAAA,CAAJtC,IAAI;QACJF,KAAK,GAAAwC,qBAAA,CAALxC,KAAK;QACL8B,MAAM,GAAAU,qBAAA,CAANV,MAAM;QACNa,MAAM,GAAAH,qBAAA,CAANG,MAAM,CAAA;AAGVf,MAAAA,aAAa,CAAC;AACVxC,QAAAA,IAAI,EAAJA,IAAI;AACJY,QAAAA,KAAK,EAALA,KAAK;AACLT,QAAAA,QAAQ,EAARA,QAAQ;AACRD,QAAAA,MAAM,EAANA,MAAM;AACNG,QAAAA,IAAI,EAAJA,IAAI;AACJG,QAAAA,WAAW,EAAXA,WAAW;AACXC,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,MAAM,EAANA,MAAM;AACNC,QAAAA,QAAQ,EAARA,QAAQ;AACRE,QAAAA,IAAI,EAAJA,IAAI;AACJC,QAAAA,IAAI,EAAJA,IAAAA;AACJ,OAAC,CAAC,CAAA;AAEF+B,MAAAA,YAAY,CAAC;AAAEtC,QAAAA,OAAO,EAAPA,OAAO;AAAEmC,QAAAA,MAAM,EAANA,MAAAA;AAAO,OAAC,CAAC,CAAA;MAEjCT,WAAW,CAAC,KAAK,CAAC,CAAA;MAClBJ,YAAY,CAAC,IAAI,CAAC,CAAA;AAClB0B,MAAAA,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,EAAI,CAAA;KACb,CAAA;AAED,IAAA,IAAM1D,SAAS,GAAG2D,WAAW,CAACV,iBAAiB,EAAE,EAAE,CAAC,CAAA;AAEpD,IAAA,IAAQJ,MAAM,GAAcE,SAAS,CAA7BF,MAAM;MAAEnC,OAAO,GAAKqC,SAAS,CAArBrC,OAAO,CAAA;AAEvB,IAAA,IAAMT,SAAS,GAAG0D,WAAW,CAAC,YAAM;AAChC,MAAA,IAAItB,WAAW,KAAXA,IAAAA,IAAAA,WAAW,eAAXA,WAAW,CAAEuB,OAAO,EAAE;AACtBC,QAAAA,YAAY,CAACxB,WAAW,CAACuB,OAAO,CAAC,CAAA;QACjCvB,WAAW,CAACuB,OAAO,GAAG,IAAI,CAAA;AAC9B,OAAA;MAEA,IAAI,CAAC7B,SAAS,EAAE;AACZ,QAAA,OAAA;AACJ,OAAA;AAEAc,MAAAA,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,IAAAA,MAAM,EAAI,CAAA;MACVb,YAAY,CAAC,KAAK,CAAC,CAAA;AAEnBO,MAAAA,mBAAmB,CAACqB,OAAO,GAAGE,UAAU,CAAC,YAAM;QAC3C1B,WAAW,CAAC,IAAI,CAAC,CAAA;QACjBO,aAAa,CAACzC,gBAAgB,CAAC,CAAA;OAClC,EAAE6D,WAAW,CAAC,CAAA;KAClB,EAAE,CAAClB,MAAM,EAAEd,SAAS,EAAEI,QAAQ,CAAC,CAAC,CAAA;AAEjC6B,IAAAA,SAAS,CAAC,YAAM;MACZ,IAAItD,OAAO,KAAK,IAAI,IAAI6B,mBAAmB,CAACqB,OAAO,KAAK,IAAI,EAAE;AAC1DC,QAAAA,YAAY,CAACtB,mBAAmB,CAACqB,OAAO,CAAC,CAAA;QACzCrB,mBAAmB,CAACqB,OAAO,GAAG,IAAI,CAAA;AACtC,OAAA;AACJ,KAAC,EAAE,CAAClD,OAAO,CAAC,CAAC,CAAA;AAEbsD,IAAAA,SAAS,CAAC,YAAM;MACZ,IAAItD,OAAO,IAAIqB,SAAS,EAAE;AACtBM,QAAAA,WAAW,CAACuB,OAAO,GAAGE,UAAU,CAAC,YAAM;AACnC7D,UAAAA,SAAS,EAAE,CAAA;SACd,EAAES,OAAO,CAAC,CAAA;AACf,OAAA;AAEA,MAAA,OAAO,YAAM;AACT,QAAA,IAAI2B,WAAW,KAAXA,IAAAA,IAAAA,WAAW,eAAXA,WAAW,CAAEuB,OAAO,EAAE;AACtBC,UAAAA,YAAY,CAACxB,WAAW,CAACuB,OAAO,CAAC,CAAA;UACjCvB,WAAW,CAACuB,OAAO,GAAG,IAAI,CAAA;AAC9B,SAAA;OACH,CAAA;AACL,KAAC,EAAE,CAAC7B,SAAS,EAAErB,OAAO,CAAC,CAAC,CAAA;AAExB,IAAA,oBACIuD,KAAA,CAAAC,aAAA,CAAC1E,YAAY,CAAC2E,QAAQ,EAAA;AAACC,MAAAA,KAAK,EAAE;AAAEpE,QAAAA,SAAS,EAATA,SAAS;AAAEC,QAAAA,SAAS,EAATA,SAAS;AAAE8B,QAAAA,SAAS,EAATA,SAAS;AAAEM,QAAAA,WAAW,EAAXA,WAAW;AAAEE,QAAAA,mBAAmB,EAAnBA,mBAAAA;AAAoB,OAAA;AAAE,KAAA,EAC/FZ,QAAQ,EACR,CAACQ,QAAQ,iBAAI8B,KAAA,CAAAC,aAAA,CAAC1C,cAAc,EAAMkB,UAAmB,CACnC,CAAC,CAAA;GAE/B,CAAA;AAAA;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.246.0-canary.1709.12889448199.0",
3
+ "version": "0.246.1-canary.1712.12898760233.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -131,5 +131,5 @@
131
131
  "sideEffects": [
132
132
  "*.css"
133
133
  ],
134
- "gitHead": "750a166f4525fccf95fcb8d8fc78b5a9d3b94ce4"
134
+ "gitHead": "11e14cd9770c17de0f57e54ed317f2f28294f00b"
135
135
  }
@@ -31,7 +31,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
31
31
  var _useToastInner = (0, _ToastProvider.useToastInner)(),
32
32
  hideToast = _useToastInner.hideToast,
33
33
  isVisible = _useToastInner.isVisible,
34
- hideTimeout = _useToastInner.hideTimeout,
35
34
  animationRunTimeout = _useToastInner.animationRunTimeout;
36
35
  var toastKey = "".concat(text).concat(position);
37
36
  var showedClass = isVisible ? _Toast.classes.toastShowed : _Toast.classes.toastHidden;
@@ -42,9 +41,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
42
41
  }, rest);
43
42
  (0, _react.useEffect)(function () {
44
43
  return function () {
45
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
46
- clearTimeout(hideTimeout.current);
47
- }
48
44
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
49
45
  clearTimeout(animationRunTimeout.current);
50
46
  }
@@ -153,13 +153,13 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
153
153
  var onHide = toastInfo.onHide,
154
154
  timeout = toastInfo.timeout;
155
155
  var hideToast = (0, _react.useCallback)(function () {
156
- if (!isVisible) {
157
- return;
158
- }
159
156
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
160
157
  clearTimeout(hideTimeout.current);
161
158
  hideTimeout.current = null;
162
159
  }
160
+ if (!isVisible) {
161
+ return;
162
+ }
163
163
  onHide === null || onHide === void 0 || onHide();
164
164
  setIsVisible(false);
165
165
  animationRunTimeout.current = setTimeout(function () {
@@ -179,6 +179,12 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
179
179
  hideToast();
180
180
  }, timeout);
181
181
  }
182
+ return function () {
183
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
184
+ clearTimeout(hideTimeout.current);
185
+ hideTimeout.current = null;
186
+ }
187
+ };
182
188
  }, [isVisible, timeout]);
183
189
  return /*#__PURE__*/_react["default"].createElement(ToastContext.Provider, {
184
190
  value: {
@@ -23,7 +23,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
23
23
  var _useToastInner = useToastInner(),
24
24
  hideToast = _useToastInner.hideToast,
25
25
  isVisible = _useToastInner.isVisible,
26
- hideTimeout = _useToastInner.hideTimeout,
27
26
  animationRunTimeout = _useToastInner.animationRunTimeout;
28
27
  var toastKey = "".concat(text).concat(position);
29
28
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
@@ -34,9 +33,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
34
33
  }, rest);
35
34
  useEffect(function () {
36
35
  return function () {
37
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
38
- clearTimeout(hideTimeout.current);
39
- }
40
36
  if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
41
37
  clearTimeout(animationRunTimeout.current);
42
38
  }
@@ -145,13 +145,13 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
145
145
  var onHide = toastInfo.onHide,
146
146
  timeout = toastInfo.timeout;
147
147
  var hideToast = useCallback(function () {
148
- if (!isVisible) {
149
- return;
150
- }
151
148
  if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
152
149
  clearTimeout(hideTimeout.current);
153
150
  hideTimeout.current = null;
154
151
  }
152
+ if (!isVisible) {
153
+ return;
154
+ }
155
155
  onHide === null || onHide === void 0 || onHide();
156
156
  setIsVisible(false);
157
157
  animationRunTimeout.current = setTimeout(function () {
@@ -171,6 +171,12 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
171
171
  hideToast();
172
172
  }, timeout);
173
173
  }
174
+ return function () {
175
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
176
+ clearTimeout(hideTimeout.current);
177
+ hideTimeout.current = null;
178
+ }
179
+ };
174
180
  }, [isVisible, timeout]);
175
181
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
176
182
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToastController.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/ToastController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKjE,eAAO,MAAM,kBAAkB,iEACK,oBAAoB,uBAmDnD,CAAC"}
1
+ {"version":3,"file":"ToastController.d.ts","sourceRoot":"","sources":["../../../src/components/Toast/ToastController.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKjE,eAAO,MAAM,kBAAkB,iEACK,oBAAoB,uBAgDnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAA0C,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzF,OAAO,KAAK,EAAE,SAAS,EAAyC,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhH,eAAO,MAAM,YAAY,wCAA+C,CAAC;AAEzE,eAAO,MAAM,aAAa,wBAMzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AA4BF,eAAO,MAAM,gBAAgB;cACwB,SAAS;iBAmGzD,CAAC"}
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/Toast/ToastProvider/ToastProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8E,MAAM,OAAO,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3C,OAAO,KAAK,EAA0C,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGzF,OAAO,KAAK,EAAE,SAAS,EAAyC,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEhH,eAAO,MAAM,YAAY,wCAA+C,CAAC;AAEzE,eAAO,MAAM,aAAa,wBAMzB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;CAGpB,CAAC;AA4BF,eAAO,MAAM,gBAAgB;cACwB,SAAS;iBA0GzD,CAAC"}