@redneckz/wildless-cms-uni-blocks 0.14.846 → 0.14.850

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.
Files changed (109) hide show
  1. package/bundle/bundle.umd.js +22 -74
  2. package/bundle/bundle.umd.min.js +1 -1
  3. package/bundle/components/Header/HeaderChatBotButton.d.ts +0 -1
  4. package/bundle/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  5. package/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  6. package/bundle/hooks/useAspects/useAspects.d.ts +1 -1
  7. package/dist/components/Header/HeaderChatBotButton.d.ts +0 -1
  8. package/dist/components/Header/HeaderChatBotButton.js +15 -4
  9. package/dist/components/Header/HeaderChatBotButton.js.map +1 -1
  10. package/dist/components/Header/HeaderSubMenu.js +1 -1
  11. package/dist/components/Header/HeaderSubMenu.js.map +1 -1
  12. package/dist/components/Header/HeaderTop.js +1 -1
  13. package/dist/components/Header/HeaderTop.js.map +1 -1
  14. package/dist/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  15. package/dist/hooks/useAspects/aspects/forwardQuery.js +1 -1
  16. package/dist/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
  17. package/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  18. package/dist/hooks/useAspects/handleAspects.js +5 -2
  19. package/dist/hooks/useAspects/handleAspects.js.map +1 -1
  20. package/dist/hooks/useAspects/useAspects.d.ts +1 -1
  21. package/dist/retail/utils/renderStep.js +3 -1
  22. package/dist/retail/utils/renderStep.js.map +1 -1
  23. package/lib/common.css +1 -1
  24. package/lib/components/Header/HeaderChatBotButton.d.ts +0 -1
  25. package/lib/components/Header/HeaderChatBotButton.js +15 -4
  26. package/lib/components/Header/HeaderChatBotButton.js.map +1 -1
  27. package/lib/components/Header/HeaderSubMenu.js +1 -1
  28. package/lib/components/Header/HeaderSubMenu.js.map +1 -1
  29. package/lib/components/Header/HeaderTop.js +1 -1
  30. package/lib/components/Header/HeaderTop.js.map +1 -1
  31. package/lib/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  32. package/lib/hooks/useAspects/aspects/forwardQuery.js +1 -1
  33. package/lib/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
  34. package/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  35. package/lib/hooks/useAspects/handleAspects.js +5 -2
  36. package/lib/hooks/useAspects/handleAspects.js.map +1 -1
  37. package/lib/hooks/useAspects/useAspects.d.ts +1 -1
  38. package/lib/retail/utils/renderStep.js +3 -1
  39. package/lib/retail/utils/renderStep.js.map +1 -1
  40. package/mobile/bundle/bundle.umd.js +22 -74
  41. package/mobile/bundle/bundle.umd.min.js +1 -1
  42. package/mobile/bundle/components/Header/HeaderChatBotButton.d.ts +0 -1
  43. package/mobile/bundle/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  44. package/mobile/bundle/hooks/useAspects/handleAspects.d.ts +1 -1
  45. package/mobile/bundle/hooks/useAspects/useAspects.d.ts +1 -1
  46. package/mobile/dist/components/Header/HeaderChatBotButton.d.ts +0 -1
  47. package/mobile/dist/components/Header/HeaderChatBotButton.js +15 -4
  48. package/mobile/dist/components/Header/HeaderChatBotButton.js.map +1 -1
  49. package/mobile/dist/components/Header/HeaderSubMenu.js +1 -1
  50. package/mobile/dist/components/Header/HeaderSubMenu.js.map +1 -1
  51. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  52. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  53. package/mobile/dist/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  54. package/mobile/dist/hooks/useAspects/aspects/forwardQuery.js +1 -1
  55. package/mobile/dist/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
  56. package/mobile/dist/hooks/useAspects/handleAspects.d.ts +1 -1
  57. package/mobile/dist/hooks/useAspects/handleAspects.js +5 -2
  58. package/mobile/dist/hooks/useAspects/handleAspects.js.map +1 -1
  59. package/mobile/dist/hooks/useAspects/useAspects.d.ts +1 -1
  60. package/mobile/dist/retail/utils/renderStep.js +3 -1
  61. package/mobile/dist/retail/utils/renderStep.js.map +1 -1
  62. package/mobile/lib/common.css +1 -1
  63. package/mobile/lib/components/Header/HeaderChatBotButton.d.ts +0 -1
  64. package/mobile/lib/components/Header/HeaderChatBotButton.js +15 -4
  65. package/mobile/lib/components/Header/HeaderChatBotButton.js.map +1 -1
  66. package/mobile/lib/components/Header/HeaderSubMenu.js +1 -1
  67. package/mobile/lib/components/Header/HeaderSubMenu.js.map +1 -1
  68. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  69. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  70. package/mobile/lib/hooks/useAspects/aspects/forwardQuery.d.ts +1 -1
  71. package/mobile/lib/hooks/useAspects/aspects/forwardQuery.js +1 -1
  72. package/mobile/lib/hooks/useAspects/aspects/forwardQuery.js.map +1 -1
  73. package/mobile/lib/hooks/useAspects/handleAspects.d.ts +1 -1
  74. package/mobile/lib/hooks/useAspects/handleAspects.js +5 -2
  75. package/mobile/lib/hooks/useAspects/handleAspects.js.map +1 -1
  76. package/mobile/lib/hooks/useAspects/useAspects.d.ts +1 -1
  77. package/mobile/lib/retail/utils/renderStep.js +3 -1
  78. package/mobile/lib/retail/utils/renderStep.js.map +1 -1
  79. package/mobile/src/components/Header/HeaderChatBotButton.tsx +18 -12
  80. package/mobile/src/components/Header/HeaderSubMenu.tsx +0 -1
  81. package/mobile/src/components/Header/HeaderTop.tsx +1 -6
  82. package/mobile/src/hooks/useAspects/aspects/forwardQuery.ts +1 -1
  83. package/mobile/src/hooks/useAspects/handleAspects.ts +6 -2
  84. package/mobile/src/hooks/useAspects/useAspects.ts +1 -1
  85. package/mobile/src/retail/utils/renderStep.tsx +3 -1
  86. package/package.json +1 -1
  87. package/src/components/Header/HeaderChatBotButton.tsx +18 -12
  88. package/src/components/Header/HeaderSubMenu.tsx +0 -1
  89. package/src/components/Header/HeaderTop.tsx +1 -6
  90. package/src/hooks/useAspects/aspects/forwardQuery.ts +1 -1
  91. package/src/hooks/useAspects/handleAspects.ts +6 -2
  92. package/src/hooks/useAspects/useAspects.ts +1 -1
  93. package/src/retail/utils/renderStep.tsx +3 -1
  94. package/bundle/components/Header/useChatBot.d.ts +0 -5
  95. package/dist/components/Header/useChatBot.d.ts +0 -5
  96. package/dist/components/Header/useChatBot.js +0 -61
  97. package/dist/components/Header/useChatBot.js.map +0 -1
  98. package/lib/components/Header/useChatBot.d.ts +0 -5
  99. package/lib/components/Header/useChatBot.js +0 -58
  100. package/lib/components/Header/useChatBot.js.map +0 -1
  101. package/mobile/bundle/components/Header/useChatBot.d.ts +0 -5
  102. package/mobile/dist/components/Header/useChatBot.d.ts +0 -5
  103. package/mobile/dist/components/Header/useChatBot.js +0 -61
  104. package/mobile/dist/components/Header/useChatBot.js.map +0 -1
  105. package/mobile/lib/components/Header/useChatBot.d.ts +0 -5
  106. package/mobile/lib/components/Header/useChatBot.js +0 -58
  107. package/mobile/lib/components/Header/useChatBot.js.map +0 -1
  108. package/mobile/src/components/Header/useChatBot.ts +0 -86
  109. package/src/components/Header/useChatBot.ts +0 -86
@@ -9,7 +9,9 @@ export const renderStep = ({ sections, field, step, params, }) => sections?.map(
9
9
  const cleanElements = [
10
10
  !checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
11
11
  ...renderInputs({ field, inputs, params }),
12
- ].filter(Boolean);
12
+ ]
13
+ .filter(Boolean)
14
+ .map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
13
15
  return cleanElements.length ? (_jsx("div", { className: style(inputColumnStyles(columns), 'grid gap-x-m'), children: cleanElements }, `section-${i}`)) : null;
14
16
  });
15
17
  const getValue = (field) => (name) => field(name)?.value;
@@ -1 +1 @@
1
- {"version":3,"file":"renderStep.js","sourceRoot":"","sources":["../../../src/retail/utils/renderStep.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4C,EACpE,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,GACmB,EAAE,EAAE,CAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC3C,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5B,cAA0B,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,YACnF,aAAa,IADN,WAAW,CAAC,EAAE,CAElB,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC;AAEL,MAAM,QAAQ,GACZ,CAAC,KAAyC,EAAY,EAAE,CACxD,CAAC,IAAI,EAAE,EAAE,CACP,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC"}
1
+ {"version":3,"file":"renderStep.js","sourceRoot":"","sources":["../../../src/retail/utils/renderStep.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAS9C,MAAM,CAAC,MAAM,UAAU,GAAG,CAA4C,EACpE,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,MAAM,GACmB,EAAE,EAAE,CAC7B,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,aAAa,GAAG;QACpB,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC3E,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;KAC3C;SACE,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAExD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAC5B,cAA0B,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,YACnF,aAAa,IADN,WAAW,CAAC,EAAE,CAElB,CACP,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CAAC,CAAC;AAEL,MAAM,QAAQ,GACZ,CAAC,KAAyC,EAAY,EAAE,CACxD,CAAC,IAAI,EAAE,EAAE,CACP,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC"}
@@ -1,14 +1,17 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
+ import { useAspects } from '../../hooks/useAspects/useAspects';
2
5
  import { type BlockVersion } from '../../model/BlockVersion';
3
6
  import { type ComponentType } from '../../model/ComponentType';
4
7
  import { type IconVersion } from '../../model/IconVersion';
5
8
  import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
6
9
  import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
7
- import { useChatBot } from './useChatBot';
10
+
11
+ const CHAT_BOT_ASPECT_NAME = 'openChatBot';
8
12
 
9
13
  interface HeaderChatBotButtonProps extends ComponentType {
10
14
  iconVersion?: IconVersion;
11
- chat?: string;
12
15
  onClick?: (ev: PreventableEventWithTarget) => void;
13
16
  ariaLabel?: string;
14
17
  version?: BlockVersion;
@@ -16,26 +19,29 @@ interface HeaderChatBotButtonProps extends ComponentType {
16
19
  }
17
20
 
18
21
  export const HeaderChatBotButton = JSX<HeaderChatBotButtonProps>(
19
- ({
20
- chat = 'personal',
21
- iconVersion,
22
- className,
23
- ariaLabel = 'Чат',
24
- version,
25
- buttonSize = 'large',
26
- }) => {
27
- const { load, isLoading } = useChatBot(chat);
22
+ ({ iconVersion, className, ariaLabel = 'Чат', version, buttonSize = 'large' }) => {
23
+ const [isLoading, { setTrue: startLoad, setFalse: endLoad }] = useBool(false);
24
+ const aspects = useAspects();
25
+
26
+ const handleClick = useCallback((ev: PreventableEventWithTarget) => {
27
+ const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
28
+ if (openChatBot) {
29
+ startLoad();
30
+ openChatBot(ev).finally(endLoad);
31
+ }
32
+ }, []);
28
33
 
29
34
  return (
30
35
  <HeaderSecondaryMenuButton
31
36
  className={className}
32
37
  image={{ icon: 'ChatBotIcon', iconVersion }}
33
38
  ariaLabel={ariaLabel}
34
- onClick={load}
39
+ onClick={handleClick}
35
40
  buttonSize={buttonSize}
36
41
  isGrayBg={true}
37
42
  version={version}
38
43
  isLoading={isLoading}
44
+ disabled={isLoading}
39
45
  dataTestId="chat icon"
40
46
  />
41
47
  );
@@ -74,7 +74,6 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(
74
74
  <HeaderChatBotButton
75
75
  version={version}
76
76
  iconVersion={iconVersion}
77
- chat={projectSettings.CHAT_BOT}
78
77
  ariaLabel={chatBotAriaLabel}
79
78
  />
80
79
  ) : null}
@@ -51,12 +51,7 @@ export const HeaderTop = JSX<HeaderTopProps>(
51
51
  )}
52
52
  <div className="flex gap-lg items-center">
53
53
  {projectSettings.CHAT_BOT ? (
54
- <HeaderChatBotButton
55
- version={version}
56
- iconVersion={iconVersion}
57
- chat={projectSettings.CHAT_BOT}
58
- buttonSize="medium"
59
- />
54
+ <HeaderChatBotButton version={version} iconVersion={iconVersion} buttonSize="medium" />
60
55
  ) : null}
61
56
  <InternetBankButton version={version} {...internetBankButton} />
62
57
  </div>
@@ -4,7 +4,7 @@ import { type PreventableEventWithTarget } from '../../../ui-kit/PreventableEven
4
4
  import { adjustSessionQuery } from '../../../utils/adjustSessionQuery';
5
5
  import { isURL } from '../../../utils/url';
6
6
 
7
- export const forwardQuery = (ev: PreventableEventWithTarget) => {
7
+ export const forwardQuery = async (ev: PreventableEventWithTarget) => {
8
8
  const anchor = (ev.target as Element | null)?.closest('a');
9
9
  const navigator = locationNavigator();
10
10
 
@@ -7,8 +7,12 @@ export type HandleAspectsProps = {
7
7
  ev: PreventableEventWithTarget;
8
8
  };
9
9
 
10
- export const handleAspects = ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
10
+ export const handleAspects = async ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
11
11
  for (const { aspectName, params } of aspectsAttributes ?? []) {
12
- aspects[aspectName ?? '']?.(ev, params);
12
+ const aspectFn = aspects[aspectName ?? ''];
13
+
14
+ if (aspectFn) {
15
+ await aspectFn(ev, params);
16
+ }
13
17
  }
14
18
  };
@@ -14,7 +14,7 @@ export interface AspectsAttribute {
14
14
  }
15
15
 
16
16
  export interface Aspects {
17
- [key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => void;
17
+ [key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => Promise<void>;
18
18
  }
19
19
 
20
20
  export function useAspects(): Aspects {
@@ -25,7 +25,9 @@ export const renderStep = <SectionsProps extends SectionsRetailProps>({
25
25
  const cleanElements = [
26
26
  !checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
27
27
  ...renderInputs({ field, inputs, params }),
28
- ].filter(Boolean);
28
+ ]
29
+ .filter(Boolean)
30
+ .map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
29
31
 
30
32
  return cleanElements.length ? (
31
33
  <div key={`section-${i}`} className={style(inputColumnStyles(columns), 'grid gap-x-m')}>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.14.846",
3
+ "version": "0.14.850",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -1,14 +1,17 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
+ import { useAspects } from '../../hooks/useAspects/useAspects';
2
5
  import { type BlockVersion } from '../../model/BlockVersion';
3
6
  import { type ComponentType } from '../../model/ComponentType';
4
7
  import { type IconVersion } from '../../model/IconVersion';
5
8
  import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
6
9
  import { HeaderSecondaryMenuButton } from './HeaderSecondaryMenuButton';
7
- import { useChatBot } from './useChatBot';
10
+
11
+ const CHAT_BOT_ASPECT_NAME = 'openChatBot';
8
12
 
9
13
  interface HeaderChatBotButtonProps extends ComponentType {
10
14
  iconVersion?: IconVersion;
11
- chat?: string;
12
15
  onClick?: (ev: PreventableEventWithTarget) => void;
13
16
  ariaLabel?: string;
14
17
  version?: BlockVersion;
@@ -16,26 +19,29 @@ interface HeaderChatBotButtonProps extends ComponentType {
16
19
  }
17
20
 
18
21
  export const HeaderChatBotButton = JSX<HeaderChatBotButtonProps>(
19
- ({
20
- chat = 'personal',
21
- iconVersion,
22
- className,
23
- ariaLabel = 'Чат',
24
- version,
25
- buttonSize = 'large',
26
- }) => {
27
- const { load, isLoading } = useChatBot(chat);
22
+ ({ iconVersion, className, ariaLabel = 'Чат', version, buttonSize = 'large' }) => {
23
+ const [isLoading, { setTrue: startLoad, setFalse: endLoad }] = useBool(false);
24
+ const aspects = useAspects();
25
+
26
+ const handleClick = useCallback((ev: PreventableEventWithTarget) => {
27
+ const openChatBot = aspects[CHAT_BOT_ASPECT_NAME];
28
+ if (openChatBot) {
29
+ startLoad();
30
+ openChatBot(ev).finally(endLoad);
31
+ }
32
+ }, []);
28
33
 
29
34
  return (
30
35
  <HeaderSecondaryMenuButton
31
36
  className={className}
32
37
  image={{ icon: 'ChatBotIcon', iconVersion }}
33
38
  ariaLabel={ariaLabel}
34
- onClick={load}
39
+ onClick={handleClick}
35
40
  buttonSize={buttonSize}
36
41
  isGrayBg={true}
37
42
  version={version}
38
43
  isLoading={isLoading}
44
+ disabled={isLoading}
39
45
  dataTestId="chat icon"
40
46
  />
41
47
  );
@@ -74,7 +74,6 @@ export const HeaderSubMenu = JSX<HeaderSubMenuProps>(
74
74
  <HeaderChatBotButton
75
75
  version={version}
76
76
  iconVersion={iconVersion}
77
- chat={projectSettings.CHAT_BOT}
78
77
  ariaLabel={chatBotAriaLabel}
79
78
  />
80
79
  ) : null}
@@ -51,12 +51,7 @@ export const HeaderTop = JSX<HeaderTopProps>(
51
51
  )}
52
52
  <div className="flex gap-lg items-center">
53
53
  {projectSettings.CHAT_BOT ? (
54
- <HeaderChatBotButton
55
- version={version}
56
- iconVersion={iconVersion}
57
- chat={projectSettings.CHAT_BOT}
58
- buttonSize="medium"
59
- />
54
+ <HeaderChatBotButton version={version} iconVersion={iconVersion} buttonSize="medium" />
60
55
  ) : null}
61
56
  <InternetBankButton version={version} {...internetBankButton} />
62
57
  </div>
@@ -4,7 +4,7 @@ import { type PreventableEventWithTarget } from '../../../ui-kit/PreventableEven
4
4
  import { adjustSessionQuery } from '../../../utils/adjustSessionQuery';
5
5
  import { isURL } from '../../../utils/url';
6
6
 
7
- export const forwardQuery = (ev: PreventableEventWithTarget) => {
7
+ export const forwardQuery = async (ev: PreventableEventWithTarget) => {
8
8
  const anchor = (ev.target as Element | null)?.closest('a');
9
9
  const navigator = locationNavigator();
10
10
 
@@ -7,8 +7,12 @@ export type HandleAspectsProps = {
7
7
  ev: PreventableEventWithTarget;
8
8
  };
9
9
 
10
- export const handleAspects = ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
10
+ export const handleAspects = async ({ aspectsAttributes, aspects, ev }: HandleAspectsProps) => {
11
11
  for (const { aspectName, params } of aspectsAttributes ?? []) {
12
- aspects[aspectName ?? '']?.(ev, params);
12
+ const aspectFn = aspects[aspectName ?? ''];
13
+
14
+ if (aspectFn) {
15
+ await aspectFn(ev, params);
16
+ }
13
17
  }
14
18
  };
@@ -14,7 +14,7 @@ export interface AspectsAttribute {
14
14
  }
15
15
 
16
16
  export interface Aspects {
17
- [key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => void;
17
+ [key: string]: (ev: PreventableEventWithTarget, data?: AspectData) => Promise<void>;
18
18
  }
19
19
 
20
20
  export function useAspects(): Aspects {
@@ -25,7 +25,9 @@ export const renderStep = <SectionsProps extends SectionsRetailProps>({
25
25
  const cleanElements = [
26
26
  !checkCondition({ condition }, getValue(field)) ? renderTitle(title) : null,
27
27
  ...renderInputs({ field, inputs, params }),
28
- ].filter(Boolean);
28
+ ]
29
+ .filter(Boolean)
30
+ .map((_, j) => ({ ..._, key: _.key ?? `elem-${j}` }));
29
31
 
30
32
  return cleanElements.length ? (
31
33
  <div key={`section-${i}`} className={style(inputColumnStyles(columns), 'grid gap-x-m')}>
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,61 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.useChatBot = void 0;
3
- const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
- const useExternalNS_1 = require("../../hooks/useExternalNS");
5
- const CHAT_NAMESPACE = 'chatbot';
6
- const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
7
- const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
8
- const CHAT_STORAGE_NAME = 'webchat-keep-open';
9
- const BUSINESS_CHAT_PREFIX = '/webchat-api';
10
- const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
11
- const CHATBOT_URL = {
12
- personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
13
- business: '/webchat',
14
- };
15
- const useChatBot = (chat) => {
16
- const [isLoading, setIsLoading] = (0, hooks_1.useState)(false);
17
- (0, hooks_1.useEffect)(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
18
- const chatUrl = CHATBOT_URL[chat ?? ''];
19
- const load = (0, hooks_1.useCallback)((ev) => {
20
- if (!chatUrl) {
21
- return;
22
- }
23
- setIsLoading(true);
24
- if (chat === 'business') {
25
- renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
26
- }
27
- else {
28
- renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
29
- }
30
- }, [chatUrl, chat]);
31
- return { load, isLoading };
32
- };
33
- exports.useChatBot = useChatBot;
34
- const renderPersonalChatBot = async (ev, chatUrl) => {
35
- const target = ev.target;
36
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
37
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
38
- }
39
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
40
- if (!chatFrame) {
41
- await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
42
- }
43
- };
44
- const renderBusinessChatBot = async (chatUrl) => {
45
- const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
46
- (0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
47
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
48
- if (chatFrame) {
49
- businessChat?.chatOpen?.();
50
- }
51
- else {
52
- createChatFrame();
53
- businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
54
- }
55
- };
56
- const createChatFrame = () => {
57
- const chatFrame = globalThis.document.createElement('div');
58
- chatFrame.id = CHAT_FRAME_ID;
59
- globalThis.document.body.appendChild(chatFrame);
60
- };
61
- //# sourceMappingURL=useChatBot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,58 +0,0 @@
1
- import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
2
- import { initializeExternalNS, initializeExternalStylesheet } from '../../hooks/useExternalNS.js';
3
- const CHAT_NAMESPACE = 'chatbot';
4
- const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
5
- const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
6
- const CHAT_STORAGE_NAME = 'webchat-keep-open';
7
- const BUSINESS_CHAT_PREFIX = '/webchat-api';
8
- const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
9
- const CHATBOT_URL = {
10
- personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
11
- business: '/webchat',
12
- };
13
- export const useChatBot = (chat) => {
14
- const [isLoading, setIsLoading] = useState(false);
15
- useEffect(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
16
- const chatUrl = CHATBOT_URL[chat ?? ''];
17
- const load = useCallback((ev) => {
18
- if (!chatUrl) {
19
- return;
20
- }
21
- setIsLoading(true);
22
- if (chat === 'business') {
23
- renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
24
- }
25
- else {
26
- renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
27
- }
28
- }, [chatUrl, chat]);
29
- return { load, isLoading };
30
- };
31
- const renderPersonalChatBot = async (ev, chatUrl) => {
32
- const target = ev.target;
33
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
34
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
35
- }
36
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
37
- if (!chatFrame) {
38
- await initializeExternalNS(CHAT_NAMESPACE, chatUrl);
39
- }
40
- };
41
- const renderBusinessChatBot = async (chatUrl) => {
42
- const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
43
- initializeExternalStylesheet(`${chatUrl}/bundle.css`);
44
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
45
- if (chatFrame) {
46
- businessChat?.chatOpen?.();
47
- }
48
- else {
49
- createChatFrame();
50
- businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
51
- }
52
- };
53
- const createChatFrame = () => {
54
- const chatFrame = globalThis.document.createElement('div');
55
- chatFrame.id = CHAT_FRAME_ID;
56
- globalThis.document.body.appendChild(chatFrame);
57
- };
58
- //# sourceMappingURL=useChatBot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,61 +0,0 @@
1
- Object.defineProperty(exports, "__esModule", { value: true });
2
- exports.useChatBot = void 0;
3
- const hooks_1 = require("@redneckz/uni-jsx/lib/hooks");
4
- const useExternalNS_1 = require("../../hooks/useExternalNS");
5
- const CHAT_NAMESPACE = 'chatbot';
6
- const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
7
- const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
8
- const CHAT_STORAGE_NAME = 'webchat-keep-open';
9
- const BUSINESS_CHAT_PREFIX = '/webchat-api';
10
- const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
11
- const CHATBOT_URL = {
12
- personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
13
- business: '/webchat',
14
- };
15
- const useChatBot = (chat) => {
16
- const [isLoading, setIsLoading] = (0, hooks_1.useState)(false);
17
- (0, hooks_1.useEffect)(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
18
- const chatUrl = CHATBOT_URL[chat ?? ''];
19
- const load = (0, hooks_1.useCallback)((ev) => {
20
- if (!chatUrl) {
21
- return;
22
- }
23
- setIsLoading(true);
24
- if (chat === 'business') {
25
- renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
26
- }
27
- else {
28
- renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
29
- }
30
- }, [chatUrl, chat]);
31
- return { load, isLoading };
32
- };
33
- exports.useChatBot = useChatBot;
34
- const renderPersonalChatBot = async (ev, chatUrl) => {
35
- const target = ev.target;
36
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
37
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
38
- }
39
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
40
- if (!chatFrame) {
41
- await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, chatUrl);
42
- }
43
- };
44
- const renderBusinessChatBot = async (chatUrl) => {
45
- const businessChat = (await (0, useExternalNS_1.initializeExternalNS)(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
46
- (0, useExternalNS_1.initializeExternalStylesheet)(`${chatUrl}/bundle.css`);
47
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
48
- if (chatFrame) {
49
- businessChat?.chatOpen?.();
50
- }
51
- else {
52
- createChatFrame();
53
- businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
54
- }
55
- };
56
- const createChatFrame = () => {
57
- const chatFrame = globalThis.document.createElement('div');
58
- chatFrame.id = CHAT_FRAME_ID;
59
- globalThis.document.body.appendChild(chatFrame);
60
- };
61
- //# sourceMappingURL=useChatBot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { type PreventableEventWithTarget } from '../../ui-kit/PreventableEvent';
2
- export declare const useChatBot: (chat?: string) => {
3
- load: (ev: PreventableEventWithTarget) => void;
4
- isLoading: boolean;
5
- };
@@ -1,58 +0,0 @@
1
- import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
2
- import { initializeExternalNS, initializeExternalStylesheet } from '../../hooks/useExternalNS.js';
3
- const CHAT_NAMESPACE = 'chatbot';
4
- const CHAT_BUTTON_EXTERNAL_NAME = 'text-page__btn-chat';
5
- const CHAT_FRAME_ID = 'webchat-js-container:webchat_rshb';
6
- const CHAT_STORAGE_NAME = 'webchat-keep-open';
7
- const BUSINESS_CHAT_PREFIX = '/webchat-api';
8
- const BUSINESS_CHAT_CLASSNAME = '@container fixed right-0 bottom-0 top-0 h-full w-full z-[100] @3xl:w-auto h-fit';
9
- const CHATBOT_URL = {
10
- personal: '//chat.mes.rshb.ru/assets/js/webchat_rshb',
11
- business: '/webchat',
12
- };
13
- export const useChatBot = (chat) => {
14
- const [isLoading, setIsLoading] = useState(false);
15
- useEffect(() => globalThis.localStorage?.setItem(CHAT_STORAGE_NAME, String(Date.now())), []);
16
- const chatUrl = CHATBOT_URL[chat ?? ''];
17
- const load = useCallback((ev) => {
18
- if (!chatUrl) {
19
- return;
20
- }
21
- setIsLoading(true);
22
- if (chat === 'business') {
23
- renderBusinessChatBot(chatUrl).finally(() => setIsLoading(false));
24
- }
25
- else {
26
- renderPersonalChatBot(ev, chatUrl).finally(() => setIsLoading(false));
27
- }
28
- }, [chatUrl, chat]);
29
- return { load, isLoading };
30
- };
31
- const renderPersonalChatBot = async (ev, chatUrl) => {
32
- const target = ev.target;
33
- if (!target?.classList.contains(CHAT_BUTTON_EXTERNAL_NAME)) {
34
- target?.classList.add(CHAT_BUTTON_EXTERNAL_NAME);
35
- }
36
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
37
- if (!chatFrame) {
38
- await initializeExternalNS(CHAT_NAMESPACE, chatUrl);
39
- }
40
- };
41
- const renderBusinessChatBot = async (chatUrl) => {
42
- const businessChat = (await initializeExternalNS(CHAT_NAMESPACE, `${chatUrl}/bundle.js`, true));
43
- initializeExternalStylesheet(`${chatUrl}/bundle.css`);
44
- const chatFrame = globalThis.document.getElementById(CHAT_FRAME_ID);
45
- if (chatFrame) {
46
- businessChat?.chatOpen?.();
47
- }
48
- else {
49
- createChatFrame();
50
- businessChat?.render?.(CHAT_FRAME_ID, true, BUSINESS_CHAT_PREFIX, BUSINESS_CHAT_CLASSNAME);
51
- }
52
- };
53
- const createChatFrame = () => {
54
- const chatFrame = globalThis.document.createElement('div');
55
- chatFrame.id = CHAT_FRAME_ID;
56
- globalThis.document.body.appendChild(chatFrame);
57
- };
58
- //# sourceMappingURL=useChatBot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useChatBot.js","sourceRoot":"","sources":["../../../src/components/Header/useChatBot.ts"],"names":[],"mappings":"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"}