@salutejs/plasma-new-hope 0.251.0-dev.0 → 0.251.1-canary.1712.13062616456.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.
@@ -24,9 +24,7 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
24
24
  rest = _rollupPluginBabelHelpers.objectWithoutProperties(props, _excluded);
25
25
  var _useToastInner = ToastProvider.useToastInner(),
26
26
  hideToast = _useToastInner.hideToast,
27
- isVisible = _useToastInner.isVisible,
28
- hideTimeout = _useToastInner.hideTimeout,
29
- animationRunTimeout = _useToastInner.animationRunTimeout;
27
+ isVisible = _useToastInner.isVisible;
30
28
  var toastKey = "".concat(text).concat(position);
31
29
  var showedClass = isVisible ? Toast_tokens.classes.toastShowed : Toast_tokens.classes.toastHidden;
32
30
  var showedFadeClass = isVisible ? Toast_tokens.classes.toastFadeShowed : Toast_tokens.classes.toastFadeHidden;
@@ -34,16 +32,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
34
32
  text: text,
35
33
  onCloseButtonClick: hideToast
36
34
  }, rest);
37
- React.useEffect(function () {
38
- return function () {
39
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
40
- clearTimeout(hideTimeout.current);
41
- }
42
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
43
- clearTimeout(animationRunTimeout.current);
44
- }
45
- };
46
- }, []);
47
35
  if (!text) {
48
36
  return null;
49
37
  }
@@ -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 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 } = 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 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","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","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,GAAiCC,2BAAa,EAAE;MAAxCC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS,CAAA;IAC5B,IAAMC,QAAQ,MAAAC,MAAA,CAAMT,IAAI,CAAAS,CAAAA,MAAA,CAAGZ,QAAQ,CAAE,CAAA;IAErC,IAAMa,WAAW,GAAGH,SAAS,GAAGI,oBAAO,CAACC,WAAW,GAAGD,oBAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGP,SAAS,GAAGI,oBAAO,CAACI,eAAe,GAAGJ,oBAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,uCAAA,CAAA;AACZlB,MAAAA,IAAI,EAAJA,IAAI;AACJmB,MAAAA,kBAAkB,EAAEb,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;IAEN,IAAI,CAACD,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIoB,sBAAA,CAAAC,aAAA,CAAAD,sBAAA,CAAAE,QAAA,EACKvB,IAAAA,EAAAA,IAAI,iBACDqB,sBAAA,CAAAC,aAAA,CAACE,0BAAa,EAAA;AACVC,MAAAA,SAAS,EAAEV,eAAgB;AAC3BW,MAAAA,MAAM,EAAEC,kBAAa;AACrBC,MAAAA,uBAAuB,EAAEC,eAAS,CAAC/B,QAAQ,CAAE;AAC7CgC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,sBAAA,CAAAC,aAAA,CAACS,uBAAU,EAAA;AACPC,MAAAA,GAAG,EAAEvB,QAAS;AACdX,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBiB,MAAAA,SAAS,EAAEd,WAAAA;KAEXU,eAAAA,sBAAA,CAAAC,aAAA,CAAC5B,cAAc,EAAKwB,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 () {
@@ -167,13 +167,26 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
167
167
  clearTimeout(animationRunTimeout.current);
168
168
  animationRunTimeout.current = null;
169
169
  }
170
+ return function () {
171
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
172
+ clearTimeout(animationRunTimeout.current);
173
+ }
174
+ };
170
175
  }, [timeout]);
176
+
177
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
171
178
  React.useEffect(function () {
172
179
  if (timeout && isVisible) {
173
180
  hideTimeout.current = setTimeout(function () {
174
181
  hideToast();
175
182
  }, timeout);
176
183
  }
184
+ return function () {
185
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
186
+ clearTimeout(hideTimeout.current);
187
+ hideTimeout.current = null;
188
+ }
189
+ };
177
190
  }, [isVisible, timeout]);
178
191
  return /*#__PURE__*/React__default.default.createElement(ToastContext.Provider, {
179
192
  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\n return () => {\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, [timeout]);\n\n // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount\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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"}
@@ -5,14 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ToastControllerHoc = void 0;
8
- var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react"));
8
+ var _react = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("react"));
9
9
  var _Toast = /*#__PURE__*/require("./Toast.tokens");
10
10
  var _Toast2 = /*#__PURE__*/require("./Toast.styles");
11
11
  var _ToastProvider = /*#__PURE__*/require("./ToastProvider");
12
12
  var _utils = /*#__PURE__*/require("./utils");
13
13
  var _excluded = ["position", "offset", "fade", "text"];
14
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -30,9 +29,7 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
30
29
  rest = _objectWithoutProperties(props, _excluded);
31
30
  var _useToastInner = (0, _ToastProvider.useToastInner)(),
32
31
  hideToast = _useToastInner.hideToast,
33
- isVisible = _useToastInner.isVisible,
34
- hideTimeout = _useToastInner.hideTimeout,
35
- animationRunTimeout = _useToastInner.animationRunTimeout;
32
+ isVisible = _useToastInner.isVisible;
36
33
  var toastKey = "".concat(text).concat(position);
37
34
  var showedClass = isVisible ? _Toast.classes.toastShowed : _Toast.classes.toastHidden;
38
35
  var showedFadeClass = isVisible ? _Toast.classes.toastFadeShowed : _Toast.classes.toastFadeHidden;
@@ -40,16 +37,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
40
37
  text: text,
41
38
  onCloseButtonClick: hideToast
42
39
  }, rest);
43
- (0, _react.useEffect)(function () {
44
- return function () {
45
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
46
- clearTimeout(hideTimeout.current);
47
- }
48
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
49
- clearTimeout(animationRunTimeout.current);
50
- }
51
- };
52
- }, []);
53
40
  if (!text) {
54
41
  return null;
55
42
  }
@@ -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 () {
@@ -172,13 +172,26 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
172
172
  clearTimeout(animationRunTimeout.current);
173
173
  animationRunTimeout.current = null;
174
174
  }
175
+ return function () {
176
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
177
+ clearTimeout(animationRunTimeout.current);
178
+ }
179
+ };
175
180
  }, [timeout]);
181
+
182
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
176
183
  (0, _react.useEffect)(function () {
177
184
  if (timeout && isVisible) {
178
185
  hideTimeout.current = setTimeout(function () {
179
186
  hideToast();
180
187
  }, timeout);
181
188
  }
189
+ return function () {
190
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
191
+ clearTimeout(hideTimeout.current);
192
+ hideTimeout.current = null;
193
+ }
194
+ };
182
195
  }, [isVisible, timeout]);
183
196
  return /*#__PURE__*/_react["default"].createElement(ToastContext.Provider, {
184
197
  value: {
@@ -7,7 +7,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
9
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
- import React, { useEffect } from 'react';
10
+ import React from 'react';
11
11
  import { classes } from './Toast.tokens';
12
12
  import { StyledOverlay, StyledRoot } from './Toast.styles';
13
13
  import { useToastInner } from './ToastProvider';
@@ -22,9 +22,7 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
22
22
  rest = _objectWithoutProperties(props, _excluded);
23
23
  var _useToastInner = useToastInner(),
24
24
  hideToast = _useToastInner.hideToast,
25
- isVisible = _useToastInner.isVisible,
26
- hideTimeout = _useToastInner.hideTimeout,
27
- animationRunTimeout = _useToastInner.animationRunTimeout;
25
+ isVisible = _useToastInner.isVisible;
28
26
  var toastKey = "".concat(text).concat(position);
29
27
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
30
28
  var showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;
@@ -32,16 +30,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
32
30
  text: text,
33
31
  onCloseButtonClick: hideToast
34
32
  }, rest);
35
- useEffect(function () {
36
- return function () {
37
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
38
- clearTimeout(hideTimeout.current);
39
- }
40
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
41
- clearTimeout(animationRunTimeout.current);
42
- }
43
- };
44
- }, []);
45
33
  if (!text) {
46
34
  return null;
47
35
  }
@@ -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 () {
@@ -164,13 +164,26 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
164
164
  clearTimeout(animationRunTimeout.current);
165
165
  animationRunTimeout.current = null;
166
166
  }
167
+ return function () {
168
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
169
+ clearTimeout(animationRunTimeout.current);
170
+ }
171
+ };
167
172
  }, [timeout]);
173
+
174
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
168
175
  useEffect(function () {
169
176
  if (timeout && isVisible) {
170
177
  hideTimeout.current = setTimeout(function () {
171
178
  hideToast();
172
179
  }, timeout);
173
180
  }
181
+ return function () {
182
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
183
+ clearTimeout(hideTimeout.current);
184
+ hideTimeout.current = null;
185
+ }
186
+ };
174
187
  }, [isVisible, timeout]);
175
188
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
176
189
  value: {
@@ -1,5 +1,5 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
- import React, { useEffect } from 'react';
2
+ import React from 'react';
3
3
  import { classes } from './Toast.tokens.js';
4
4
  import { StyledOverlay, StyledRoot } from './Toast.styles.js';
5
5
  import { FADE_Z_INDEX, gradients } from './utils.js';
@@ -16,9 +16,7 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
16
16
  rest = _objectWithoutProperties(props, _excluded);
17
17
  var _useToastInner = useToastInner(),
18
18
  hideToast = _useToastInner.hideToast,
19
- isVisible = _useToastInner.isVisible,
20
- hideTimeout = _useToastInner.hideTimeout,
21
- animationRunTimeout = _useToastInner.animationRunTimeout;
19
+ isVisible = _useToastInner.isVisible;
22
20
  var toastKey = "".concat(text).concat(position);
23
21
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
24
22
  var showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;
@@ -26,16 +24,6 @@ var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
26
24
  text: text,
27
25
  onCloseButtonClick: hideToast
28
26
  }, rest);
29
- useEffect(function () {
30
- return function () {
31
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
32
- clearTimeout(hideTimeout.current);
33
- }
34
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
35
- clearTimeout(animationRunTimeout.current);
36
- }
37
- };
38
- }, []);
39
27
  if (!text) {
40
28
  return null;
41
29
  }
@@ -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 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 } = 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 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","toastKey","concat","showedClass","classes","toastShowed","toastHidden","showedFadeClass","toastFadeShowed","toastFadeHidden","toastProps","_objectSpread","onCloseButtonClick","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,GAAiCC,aAAa,EAAE;MAAxCC,SAAS,GAAAF,cAAA,CAATE,SAAS;MAAEC,SAAS,GAAAH,cAAA,CAATG,SAAS,CAAA;IAC5B,IAAMC,QAAQ,MAAAC,MAAA,CAAMT,IAAI,CAAAS,CAAAA,MAAA,CAAGZ,QAAQ,CAAE,CAAA;IAErC,IAAMa,WAAW,GAAGH,SAAS,GAAGI,OAAO,CAACC,WAAW,GAAGD,OAAO,CAACE,WAAW,CAAA;IACzE,IAAMC,eAAe,GAAGP,SAAS,GAAGI,OAAO,CAACI,eAAe,GAAGJ,OAAO,CAACK,eAAe,CAAA;IAErF,IAAMC,UAAU,GAAAC,cAAA,CAAA;AACZlB,MAAAA,IAAI,EAAJA,IAAI;AACJmB,MAAAA,kBAAkB,EAAEb,SAAAA;AAAS,KAAA,EAC1BL,IAAI,CACL,CAAA;IAEN,IAAI,CAACD,IAAI,EAAE;AACP,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,oBACIoB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACKvB,IAAAA,EAAAA,IAAI,iBACDqB,KAAA,CAAAC,aAAA,CAACE,aAAa,EAAA;AACVC,MAAAA,SAAS,EAAEV,eAAgB;AAC3BW,MAAAA,MAAM,EAAEC,YAAa;AACrBC,MAAAA,uBAAuB,EAAEC,SAAS,CAAC/B,QAAQ,CAAE;AAC7CgC,MAAAA,WAAW,EAAE,KAAA;AAAM,KACtB,CACJ,eACDT,KAAA,CAAAC,aAAA,CAACS,UAAU,EAAA;AACPC,MAAAA,GAAG,EAAEvB,QAAS;AACdX,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,MAAM,EAAEA,MAAO;AACfS,MAAAA,SAAS,EAAEA,SAAU;AACrBiB,MAAAA,SAAS,EAAEd,WAAAA;KAEXU,eAAAA,KAAA,CAAAC,aAAA,CAAC5B,cAAc,EAAKwB,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 () {
@@ -159,13 +159,26 @@ var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
159
159
  clearTimeout(animationRunTimeout.current);
160
160
  animationRunTimeout.current = null;
161
161
  }
162
+ return function () {
163
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
164
+ clearTimeout(animationRunTimeout.current);
165
+ }
166
+ };
162
167
  }, [timeout]);
168
+
169
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
163
170
  useEffect(function () {
164
171
  if (timeout && isVisible) {
165
172
  hideTimeout.current = setTimeout(function () {
166
173
  hideToast();
167
174
  }, timeout);
168
175
  }
176
+ return function () {
177
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
178
+ clearTimeout(hideTimeout.current);
179
+ hideTimeout.current = null;
180
+ }
181
+ };
169
182
  }, [isVisible, timeout]);
170
183
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
171
184
  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":";;;;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;MAChC,IAAI,CAAC5B,SAAS,EAAE;AACZ,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIM,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;AAEAf,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;AACJ,KAAC,EAAE,CAACqB,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;;;;"}
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\n return () => {\n if (animationRunTimeout?.current) {\n clearTimeout(animationRunTimeout.current);\n }\n };\n }, [timeout]);\n\n // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.251.0-dev.0",
3
+ "version": "0.251.1-canary.1712.13062616456.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": "4e0135b18116e7ea9b9f580518c8f0e928cfcd62"
134
+ "gitHead": "6a480bb0ce6d0dd34724847abc9c66b0aebfcbd4"
135
135
  }
@@ -5,14 +5,13 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ToastControllerHoc = void 0;
8
- var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react"));
8
+ var _react = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("react"));
9
9
  var _Toast = /*#__PURE__*/require("./Toast.tokens");
10
10
  var _Toast2 = /*#__PURE__*/require("./Toast.styles");
11
11
  var _ToastProvider = /*#__PURE__*/require("./ToastProvider");
12
12
  var _utils = /*#__PURE__*/require("./utils");
13
13
  var _excluded = ["position", "offset", "fade", "text"];
14
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
17
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -30,9 +29,7 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
30
29
  rest = _objectWithoutProperties(props, _excluded);
31
30
  var _useToastInner = (0, _ToastProvider.useToastInner)(),
32
31
  hideToast = _useToastInner.hideToast,
33
- isVisible = _useToastInner.isVisible,
34
- hideTimeout = _useToastInner.hideTimeout,
35
- animationRunTimeout = _useToastInner.animationRunTimeout;
32
+ isVisible = _useToastInner.isVisible;
36
33
  var toastKey = "".concat(text).concat(position);
37
34
  var showedClass = isVisible ? _Toast.classes.toastShowed : _Toast.classes.toastHidden;
38
35
  var showedFadeClass = isVisible ? _Toast.classes.toastFadeShowed : _Toast.classes.toastFadeHidden;
@@ -40,16 +37,6 @@ var ToastControllerHoc = exports.ToastControllerHoc = function ToastControllerHo
40
37
  text: text,
41
38
  onCloseButtonClick: hideToast
42
39
  }, rest);
43
- (0, _react.useEffect)(function () {
44
- return function () {
45
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
46
- clearTimeout(hideTimeout.current);
47
- }
48
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
49
- clearTimeout(animationRunTimeout.current);
50
- }
51
- };
52
- }, []);
53
40
  if (!text) {
54
41
  return null;
55
42
  }
@@ -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 () {
@@ -172,13 +172,26 @@ var ToastProviderHoc = exports.ToastProviderHoc = function ToastProviderHoc(Toas
172
172
  clearTimeout(animationRunTimeout.current);
173
173
  animationRunTimeout.current = null;
174
174
  }
175
+ return function () {
176
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
177
+ clearTimeout(animationRunTimeout.current);
178
+ }
179
+ };
175
180
  }, [timeout]);
181
+
182
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
176
183
  (0, _react.useEffect)(function () {
177
184
  if (timeout && isVisible) {
178
185
  hideTimeout.current = setTimeout(function () {
179
186
  hideToast();
180
187
  }, timeout);
181
188
  }
189
+ return function () {
190
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
191
+ clearTimeout(hideTimeout.current);
192
+ hideTimeout.current = null;
193
+ }
194
+ };
182
195
  }, [isVisible, timeout]);
183
196
  return /*#__PURE__*/_react["default"].createElement(ToastContext.Provider, {
184
197
  value: {
@@ -7,7 +7,7 @@ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol"
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
9
9
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
10
- import React, { useEffect } from 'react';
10
+ import React from 'react';
11
11
  import { classes } from './Toast.tokens';
12
12
  import { StyledOverlay, StyledRoot } from './Toast.styles';
13
13
  import { useToastInner } from './ToastProvider';
@@ -22,9 +22,7 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
22
22
  rest = _objectWithoutProperties(props, _excluded);
23
23
  var _useToastInner = useToastInner(),
24
24
  hideToast = _useToastInner.hideToast,
25
- isVisible = _useToastInner.isVisible,
26
- hideTimeout = _useToastInner.hideTimeout,
27
- animationRunTimeout = _useToastInner.animationRunTimeout;
25
+ isVisible = _useToastInner.isVisible;
28
26
  var toastKey = "".concat(text).concat(position);
29
27
  var showedClass = isVisible ? classes.toastShowed : classes.toastHidden;
30
28
  var showedFadeClass = isVisible ? classes.toastFadeShowed : classes.toastFadeHidden;
@@ -32,16 +30,6 @@ export var ToastControllerHoc = function ToastControllerHoc(ToastComponent) {
32
30
  text: text,
33
31
  onCloseButtonClick: hideToast
34
32
  }, rest);
35
- useEffect(function () {
36
- return function () {
37
- if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
38
- clearTimeout(hideTimeout.current);
39
- }
40
- if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
41
- clearTimeout(animationRunTimeout.current);
42
- }
43
- };
44
- }, []);
45
33
  if (!text) {
46
34
  return null;
47
35
  }
@@ -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 () {
@@ -164,13 +164,26 @@ export var ToastProviderHoc = function ToastProviderHoc(ToastComponent) {
164
164
  clearTimeout(animationRunTimeout.current);
165
165
  animationRunTimeout.current = null;
166
166
  }
167
+ return function () {
168
+ if (animationRunTimeout !== null && animationRunTimeout !== void 0 && animationRunTimeout.current) {
169
+ clearTimeout(animationRunTimeout.current);
170
+ }
171
+ };
167
172
  }, [timeout]);
173
+
174
+ // очистка таймаутов перенесена из ToastController, т. к. в StrictМоde react делает дополнительный unmount
168
175
  useEffect(function () {
169
176
  if (timeout && isVisible) {
170
177
  hideTimeout.current = setTimeout(function () {
171
178
  hideToast();
172
179
  }, timeout);
173
180
  }
181
+ return function () {
182
+ if (hideTimeout !== null && hideTimeout !== void 0 && hideTimeout.current) {
183
+ clearTimeout(hideTimeout.current);
184
+ hideTimeout.current = null;
185
+ }
186
+ };
174
187
  }, [isVisible, timeout]);
175
188
  return /*#__PURE__*/React.createElement(ToastContext.Provider, {
176
189
  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,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKjE,eAAO,MAAM,kBAAkB,iEACK,oBAAoB,uBAwCnD,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;iBAiHzD,CAAC"}