@alfalab/core-components-universal-modal 3.2.5 → 3.2.6-alfasans

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 (236) hide show
  1. package/Context.d.ts +1 -1
  2. package/Context.js +1 -1
  3. package/Context.js.map +1 -1
  4. package/components/base-content/index.css +1 -1
  5. package/components/base-content/index.module.css.js +1 -1
  6. package/components/base-footer/index.css +3 -3
  7. package/components/base-footer/index.module.css.js +1 -1
  8. package/components/base-header/index.css +4 -4
  9. package/components/base-header/index.module.css.js +1 -1
  10. package/cssm/Context.d.ts +1 -1
  11. package/cssm/Context.js +1 -1
  12. package/cssm/Context.js.map +1 -1
  13. package/cssm/desktop/Component.desktop.d.ts +1 -1
  14. package/cssm/desktop/components/center-modal/center-modal.js +2 -2
  15. package/cssm/desktop/components/center-modal/center-modal.js.map +1 -1
  16. package/cssm/desktop/components/footer/index.d.ts +2 -7
  17. package/cssm/desktop/components/footer/index.js.map +1 -1
  18. package/cssm/desktop/components/header/desktop.module.css +11 -6
  19. package/cssm/desktop/components/modal-content/modal-content.js +2 -9
  20. package/cssm/desktop/components/modal-content/modal-content.js.map +1 -1
  21. package/cssm/desktop/components/side-modal/side-modal.js +2 -2
  22. package/cssm/desktop/components/side-modal/side-modal.js.map +1 -1
  23. package/cssm/desktop/types/props.d.ts +1 -1
  24. package/cssm/mobile/components/header/index.module.css +9 -6
  25. package/cssm/mobile/types/props.d.ts +1 -1
  26. package/desktop/Component.desktop.d.ts +1 -1
  27. package/desktop/components/center-modal/center-modal.js +2 -2
  28. package/desktop/components/center-modal/center-modal.js.map +1 -1
  29. package/desktop/components/center-modal/index.css +1104 -1104
  30. package/desktop/components/center-modal/index.module.css.js +1 -1
  31. package/desktop/components/center-modal/transitions/safari-transitions.css +7 -7
  32. package/desktop/components/center-modal/transitions/safari-transitions.module.css.js +1 -1
  33. package/desktop/components/center-modal/transitions/transitions.css +7 -7
  34. package/desktop/components/center-modal/transitions/transitions.module.css.js +1 -1
  35. package/desktop/components/footer/desktop.css +1 -1
  36. package/desktop/components/footer/desktop.module.css.js +1 -1
  37. package/desktop/components/footer/index.d.ts +2 -7
  38. package/desktop/components/footer/index.js.map +1 -1
  39. package/desktop/components/footer/layout.css +9 -9
  40. package/desktop/components/footer/layout.module.css.js +1 -1
  41. package/desktop/components/header/desktop.css +16 -11
  42. package/desktop/components/header/desktop.module.css.js +1 -1
  43. package/desktop/components/modal-content/modal-content.css +4 -4
  44. package/desktop/components/modal-content/modal-content.js +2 -9
  45. package/desktop/components/modal-content/modal-content.js.map +1 -1
  46. package/desktop/components/modal-content/modal-content.module.css.js +1 -1
  47. package/desktop/components/side-modal/index.css +1106 -1106
  48. package/desktop/components/side-modal/index.module.css.js +1 -1
  49. package/desktop/components/side-modal/side-modal.js +2 -2
  50. package/desktop/components/side-modal/side-modal.js.map +1 -1
  51. package/desktop/components/side-modal/transitions/transitions.css +71 -71
  52. package/desktop/components/side-modal/transitions/transitions.module.css.js +1 -1
  53. package/desktop/styles/transitions/full-size-backdrop-transitions.css +13 -13
  54. package/desktop/styles/transitions/full-size-backdrop-transitions.module.css.js +1 -1
  55. package/desktop/styles/transitions/full-size-vertical-bottom-transitions.css +7 -7
  56. package/desktop/styles/transitions/full-size-vertical-bottom-transitions.module.css.js +1 -1
  57. package/desktop/styles/transitions/full-size-vertical-center-transitions.css +7 -7
  58. package/desktop/styles/transitions/full-size-vertical-center-transitions.module.css.js +1 -1
  59. package/desktop/styles/transitions/full-size-vertical-top-transitions.css +7 -7
  60. package/desktop/styles/transitions/full-size-vertical-top-transitions.module.css.js +1 -1
  61. package/desktop/types/props.d.ts +1 -1
  62. package/esm/Context.d.ts +1 -1
  63. package/esm/Context.js +1 -1
  64. package/esm/Context.js.map +1 -1
  65. package/esm/components/base-content/index.css +1 -1
  66. package/esm/components/base-content/index.module.css.js +1 -1
  67. package/esm/components/base-footer/index.css +3 -3
  68. package/esm/components/base-footer/index.module.css.js +1 -1
  69. package/esm/components/base-header/index.css +4 -4
  70. package/esm/components/base-header/index.module.css.js +1 -1
  71. package/esm/desktop/Component.desktop.d.ts +1 -1
  72. package/esm/desktop/components/center-modal/center-modal.js +2 -2
  73. package/esm/desktop/components/center-modal/center-modal.js.map +1 -1
  74. package/esm/desktop/components/center-modal/index.css +1104 -1104
  75. package/esm/desktop/components/center-modal/index.module.css.js +1 -1
  76. package/esm/desktop/components/center-modal/transitions/safari-transitions.css +7 -7
  77. package/esm/desktop/components/center-modal/transitions/safari-transitions.module.css.js +1 -1
  78. package/esm/desktop/components/center-modal/transitions/transitions.css +7 -7
  79. package/esm/desktop/components/center-modal/transitions/transitions.module.css.js +1 -1
  80. package/esm/desktop/components/footer/desktop.css +1 -1
  81. package/esm/desktop/components/footer/desktop.module.css.js +1 -1
  82. package/esm/desktop/components/footer/index.d.ts +2 -7
  83. package/esm/desktop/components/footer/index.js.map +1 -1
  84. package/esm/desktop/components/footer/layout.css +9 -9
  85. package/esm/desktop/components/footer/layout.module.css.js +1 -1
  86. package/esm/desktop/components/header/desktop.css +16 -11
  87. package/esm/desktop/components/header/desktop.module.css.js +1 -1
  88. package/esm/desktop/components/modal-content/modal-content.css +4 -4
  89. package/esm/desktop/components/modal-content/modal-content.js +2 -8
  90. package/esm/desktop/components/modal-content/modal-content.js.map +1 -1
  91. package/esm/desktop/components/modal-content/modal-content.module.css.js +1 -1
  92. package/esm/desktop/components/side-modal/index.css +1106 -1106
  93. package/esm/desktop/components/side-modal/index.module.css.js +1 -1
  94. package/esm/desktop/components/side-modal/side-modal.js +2 -2
  95. package/esm/desktop/components/side-modal/side-modal.js.map +1 -1
  96. package/esm/desktop/components/side-modal/transitions/transitions.css +71 -71
  97. package/esm/desktop/components/side-modal/transitions/transitions.module.css.js +1 -1
  98. package/esm/desktop/styles/transitions/full-size-backdrop-transitions.css +13 -13
  99. package/esm/desktop/styles/transitions/full-size-backdrop-transitions.module.css.js +1 -1
  100. package/esm/desktop/styles/transitions/full-size-vertical-bottom-transitions.css +7 -7
  101. package/esm/desktop/styles/transitions/full-size-vertical-bottom-transitions.module.css.js +1 -1
  102. package/esm/desktop/styles/transitions/full-size-vertical-center-transitions.css +7 -7
  103. package/esm/desktop/styles/transitions/full-size-vertical-center-transitions.module.css.js +1 -1
  104. package/esm/desktop/styles/transitions/full-size-vertical-top-transitions.css +7 -7
  105. package/esm/desktop/styles/transitions/full-size-vertical-top-transitions.module.css.js +1 -1
  106. package/esm/desktop/types/props.d.ts +1 -1
  107. package/esm/mobile/components/content/index.css +3 -3
  108. package/esm/mobile/components/content/index.module.css.js +1 -1
  109. package/esm/mobile/components/footer/index.css +2 -2
  110. package/esm/mobile/components/footer/index.module.css.js +1 -1
  111. package/esm/mobile/components/footer/layout.mobile.css +9 -9
  112. package/esm/mobile/components/footer/layout.mobile.module.css.js +1 -1
  113. package/esm/mobile/components/header/index.css +12 -9
  114. package/esm/mobile/components/header/index.module.css.js +1 -1
  115. package/esm/mobile/mobile.css +3 -3
  116. package/esm/mobile/mobile.module.css.js +1 -1
  117. package/esm/mobile/transitions/right-side-transitions.mobile.css +7 -7
  118. package/esm/mobile/transitions/right-side-transitions.mobile.module.css.js +1 -1
  119. package/esm/mobile/transitions/transitions.mobile.css +7 -7
  120. package/esm/mobile/transitions/transitions.mobile.module.css.js +1 -1
  121. package/esm/mobile/types/props.d.ts +1 -1
  122. package/mobile/components/content/index.css +3 -3
  123. package/mobile/components/content/index.module.css.js +1 -1
  124. package/mobile/components/footer/index.css +2 -2
  125. package/mobile/components/footer/index.module.css.js +1 -1
  126. package/mobile/components/footer/layout.mobile.css +9 -9
  127. package/mobile/components/footer/layout.mobile.module.css.js +1 -1
  128. package/mobile/components/header/index.css +12 -9
  129. package/mobile/components/header/index.module.css.js +1 -1
  130. package/mobile/mobile.css +3 -3
  131. package/mobile/mobile.module.css.js +1 -1
  132. package/mobile/transitions/right-side-transitions.mobile.css +7 -7
  133. package/mobile/transitions/right-side-transitions.mobile.module.css.js +1 -1
  134. package/mobile/transitions/transitions.mobile.css +7 -7
  135. package/mobile/transitions/transitions.mobile.module.css.js +1 -1
  136. package/mobile/types/props.d.ts +1 -1
  137. package/modern/Context.d.ts +1 -1
  138. package/modern/Context.js +1 -1
  139. package/modern/Context.js.map +1 -1
  140. package/modern/components/base-content/index.css +1 -1
  141. package/modern/components/base-content/index.module.css.js +1 -1
  142. package/modern/components/base-footer/index.css +3 -3
  143. package/modern/components/base-footer/index.module.css.js +1 -1
  144. package/modern/components/base-header/index.css +4 -4
  145. package/modern/components/base-header/index.module.css.js +1 -1
  146. package/modern/desktop/Component.desktop.d.ts +1 -1
  147. package/modern/desktop/components/center-modal/center-modal.js +2 -2
  148. package/modern/desktop/components/center-modal/center-modal.js.map +1 -1
  149. package/modern/desktop/components/center-modal/index.css +1104 -1104
  150. package/modern/desktop/components/center-modal/index.module.css.js +1 -1
  151. package/modern/desktop/components/center-modal/transitions/safari-transitions.css +7 -7
  152. package/modern/desktop/components/center-modal/transitions/safari-transitions.module.css.js +1 -1
  153. package/modern/desktop/components/center-modal/transitions/transitions.css +7 -7
  154. package/modern/desktop/components/center-modal/transitions/transitions.module.css.js +1 -1
  155. package/modern/desktop/components/footer/desktop.css +1 -1
  156. package/modern/desktop/components/footer/desktop.module.css.js +1 -1
  157. package/modern/desktop/components/footer/index.d.ts +2 -7
  158. package/modern/desktop/components/footer/index.js.map +1 -1
  159. package/modern/desktop/components/footer/layout.css +9 -9
  160. package/modern/desktop/components/footer/layout.module.css.js +1 -1
  161. package/modern/desktop/components/header/desktop.css +16 -11
  162. package/modern/desktop/components/header/desktop.module.css.js +1 -1
  163. package/modern/desktop/components/modal-content/modal-content.css +4 -4
  164. package/modern/desktop/components/modal-content/modal-content.js +2 -8
  165. package/modern/desktop/components/modal-content/modal-content.js.map +1 -1
  166. package/modern/desktop/components/modal-content/modal-content.module.css.js +1 -1
  167. package/modern/desktop/components/side-modal/index.css +1106 -1106
  168. package/modern/desktop/components/side-modal/index.module.css.js +1 -1
  169. package/modern/desktop/components/side-modal/side-modal.js +2 -2
  170. package/modern/desktop/components/side-modal/side-modal.js.map +1 -1
  171. package/modern/desktop/components/side-modal/transitions/transitions.css +71 -71
  172. package/modern/desktop/components/side-modal/transitions/transitions.module.css.js +1 -1
  173. package/modern/desktop/styles/transitions/full-size-backdrop-transitions.css +13 -13
  174. package/modern/desktop/styles/transitions/full-size-backdrop-transitions.module.css.js +1 -1
  175. package/modern/desktop/styles/transitions/full-size-vertical-bottom-transitions.css +7 -7
  176. package/modern/desktop/styles/transitions/full-size-vertical-bottom-transitions.module.css.js +1 -1
  177. package/modern/desktop/styles/transitions/full-size-vertical-center-transitions.css +7 -7
  178. package/modern/desktop/styles/transitions/full-size-vertical-center-transitions.module.css.js +1 -1
  179. package/modern/desktop/styles/transitions/full-size-vertical-top-transitions.css +7 -7
  180. package/modern/desktop/styles/transitions/full-size-vertical-top-transitions.module.css.js +1 -1
  181. package/modern/desktop/types/props.d.ts +1 -1
  182. package/modern/mobile/components/content/index.css +3 -3
  183. package/modern/mobile/components/content/index.module.css.js +1 -1
  184. package/modern/mobile/components/footer/index.css +2 -2
  185. package/modern/mobile/components/footer/index.module.css.js +1 -1
  186. package/modern/mobile/components/footer/layout.mobile.css +9 -9
  187. package/modern/mobile/components/footer/layout.mobile.module.css.js +1 -1
  188. package/modern/mobile/components/header/index.css +12 -9
  189. package/modern/mobile/components/header/index.module.css.js +1 -1
  190. package/modern/mobile/mobile.css +3 -3
  191. package/modern/mobile/mobile.module.css.js +1 -1
  192. package/modern/mobile/transitions/right-side-transitions.mobile.css +7 -7
  193. package/modern/mobile/transitions/right-side-transitions.mobile.module.css.js +1 -1
  194. package/modern/mobile/transitions/transitions.mobile.css +7 -7
  195. package/modern/mobile/transitions/transitions.mobile.module.css.js +1 -1
  196. package/modern/mobile/types/props.d.ts +1 -1
  197. package/moderncssm/Context.d.ts +1 -1
  198. package/moderncssm/Context.js +1 -1
  199. package/moderncssm/Context.js.map +1 -1
  200. package/moderncssm/desktop/Component.desktop.d.ts +1 -1
  201. package/moderncssm/desktop/components/center-modal/center-modal.js +2 -2
  202. package/moderncssm/desktop/components/center-modal/center-modal.js.map +1 -1
  203. package/moderncssm/desktop/components/footer/index.d.ts +2 -7
  204. package/moderncssm/desktop/components/footer/index.js.map +1 -1
  205. package/moderncssm/desktop/components/header/desktop.module.css +8 -4
  206. package/moderncssm/desktop/components/modal-content/modal-content.js +2 -8
  207. package/moderncssm/desktop/components/modal-content/modal-content.js.map +1 -1
  208. package/moderncssm/desktop/components/side-modal/side-modal.js +2 -2
  209. package/moderncssm/desktop/components/side-modal/side-modal.js.map +1 -1
  210. package/moderncssm/desktop/types/props.d.ts +1 -1
  211. package/moderncssm/mobile/components/header/index.module.css +6 -4
  212. package/moderncssm/mobile/types/props.d.ts +1 -1
  213. package/package.json +9 -9
  214. package/src/Context.ts +1 -1
  215. package/src/desktop/components/center-modal/center-modal.tsx +5 -3
  216. package/src/desktop/components/footer/index.tsx +1 -6
  217. package/src/desktop/components/modal-content/modal-content.tsx +1 -9
  218. package/src/desktop/components/side-modal/side-modal.tsx +5 -3
  219. package/src/desktop/types/props.ts +1 -0
  220. package/src/mobile/types/props.ts +2 -0
  221. package/cssm/desktop/hooks/use-modal-highlighted.d.ts +0 -13
  222. package/cssm/desktop/hooks/use-modal-highlighted.js +0 -57
  223. package/cssm/desktop/hooks/use-modal-highlighted.js.map +0 -1
  224. package/desktop/hooks/use-modal-highlighted.d.ts +0 -13
  225. package/desktop/hooks/use-modal-highlighted.js +0 -57
  226. package/desktop/hooks/use-modal-highlighted.js.map +0 -1
  227. package/esm/desktop/hooks/use-modal-highlighted.d.ts +0 -13
  228. package/esm/desktop/hooks/use-modal-highlighted.js +0 -53
  229. package/esm/desktop/hooks/use-modal-highlighted.js.map +0 -1
  230. package/modern/desktop/hooks/use-modal-highlighted.d.ts +0 -13
  231. package/modern/desktop/hooks/use-modal-highlighted.js +0 -52
  232. package/modern/desktop/hooks/use-modal-highlighted.js.map +0 -1
  233. package/moderncssm/desktop/hooks/use-modal-highlighted.d.ts +0 -13
  234. package/moderncssm/desktop/hooks/use-modal-highlighted.js +0 -52
  235. package/moderncssm/desktop/hooks/use-modal-highlighted.js.map +0 -1
  236. package/src/desktop/hooks/use-modal-highlighted.ts +0 -75
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useRef } from 'react';
1
+ import React, { forwardRef, type MutableRefObject, useRef } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { BaseModal } from '@alfalab/core-components-base-modal';
@@ -36,6 +36,7 @@ export const CenterModal = forwardRef<HTMLDivElement, UniversalModalDesktopProps
36
36
  margin,
37
37
  scrollableContainerRef: scrollableContainerRefProp,
38
38
  onClose,
39
+ wrapperClassName,
39
40
  ...restProps
40
41
  } = props;
41
42
 
@@ -60,9 +61,10 @@ export const CenterModal = forwardRef<HTMLDivElement, UniversalModalDesktopProps
60
61
  dataTestId={dataTestId}
61
62
  ref={ref}
62
63
  componentRef={componentRef}
63
- scrollHandler='content'
64
+ scrollHandler={scrollableContainerRef as MutableRefObject<HTMLDivElement | null>}
65
+ scrollContainerFillsViewport={false}
64
66
  disableBlockingScroll={withoutOverlay}
65
- wrapperClassName={cn(styles.baseModalContainer, {
67
+ wrapperClassName={cn(styles.baseModalContainer, wrapperClassName, {
66
68
  [styles.wrapperJustifyStart]: verticalAlign === 'top',
67
69
  [styles.wrapperJustifyCenter]: verticalAlign === 'center',
68
70
  [styles.wrapperJustifyEnd]: verticalAlign === 'bottom',
@@ -10,12 +10,7 @@ import layoutStyles from './layout.module.css';
10
10
 
11
11
  const FOOTER_MEDIUM_BREAKPOINT = 800;
12
12
 
13
- export interface FooterDesktopProps extends FooterProps {
14
- /**
15
- * Размер (только для desktop версии компонента)
16
- */
17
- size?: 's' | 500;
18
- }
13
+ export type FooterDesktopProps = FooterProps;
19
14
 
20
15
  export const FooterDesktop = forwardRef<HTMLDivElement, FooterDesktopProps>((props, ref) => {
21
16
  const { className, sticky, layout = 'start', ...restProps } = props;
@@ -1,11 +1,9 @@
1
1
  import React, { type FC, useRef } from 'react';
2
- import mergeRefs from 'react-merge-refs';
3
2
  import cn from 'classnames';
4
3
 
5
4
  import { type BaseModalProps } from '@alfalab/core-components-base-modal';
6
5
  import { Scrollbar } from '@alfalab/core-components-scrollbar';
7
6
 
8
- import { useModalHighlighted } from '../../hooks/use-modal-highlighted';
9
7
  import { useSetScrollbarHeight } from '../../hooks/use-set-scrollbar-height';
10
8
  import { type UniversalModalDesktopProps } from '../../types/props';
11
9
  import { setFooterAndHeaderRefs } from '../../utils/set-footer-and-header-refs';
@@ -23,15 +21,11 @@ type Props = PickedBaseModalProps & PickedUniversalModalDesktopProps;
23
21
  export const ModalContent: FC<Props> = (props) => {
24
22
  const { children, height, scrollableContainerRef = null } = props;
25
23
 
26
- const scrollableNodeRef = useRef<HTMLDivElement>(null);
27
- const scrollbarContentNodeRef = useRef<HTMLDivElement>(null);
28
24
  const scrollbarRef = useRef<HTMLDivElement | null>(null);
29
25
  const verticalBarRef = useRef<HTMLDivElement>(null);
30
26
  const headerElementRef = useRef<HTMLDivElement>(null);
31
27
  const footerElementRef = useRef<HTMLDivElement | null>(null);
32
28
 
33
- const { handleScroll } = useModalHighlighted({ scrollbarContentNodeRef, scrollableNodeRef });
34
-
35
29
  const { enhancedChildren } = setFooterAndHeaderRefs({
36
30
  children,
37
31
  headerElementRef,
@@ -46,16 +40,14 @@ export const ModalContent: FC<Props> = (props) => {
46
40
  ref={scrollbarRef}
47
41
  verticalBarRef={verticalBarRef}
48
42
  scrollableNodeProps={{
49
- ref: mergeRefs([scrollableNodeRef, scrollableContainerRef]),
43
+ ref: scrollableContainerRef,
50
44
  className: styles.scrollableNode,
51
45
  }}
52
46
  contentNodeProps={{
53
- ref: scrollbarContentNodeRef,
54
47
  className: cn(styles.contentNode, {
55
48
  [styles.hugContent]: height === 'hugContent',
56
49
  }),
57
50
  }}
58
- onContentScroll={handleScroll}
59
51
  >
60
52
  {enhancedChildren}
61
53
  </Scrollbar>
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useRef } from 'react';
1
+ import React, { forwardRef, type MutableRefObject, useRef } from 'react';
2
2
  import cn from 'classnames';
3
3
 
4
4
  import { BaseModal } from '@alfalab/core-components-base-modal';
@@ -30,6 +30,7 @@ export const SideModal = forwardRef<HTMLDivElement, UniversalModalDesktopProps>(
30
30
  margin,
31
31
  scrollableContainerRef: scrollableContainerRefProp,
32
32
  onClose,
33
+ wrapperClassName,
33
34
  ...restProps
34
35
  } = props;
35
36
  const componentRef = useRef<HTMLDivElement>(null);
@@ -55,9 +56,10 @@ export const SideModal = forwardRef<HTMLDivElement, UniversalModalDesktopProps>(
55
56
  ref={ref}
56
57
  componentRef={componentRef}
57
58
  contentElementRef={contentRef}
58
- scrollHandler='content'
59
+ scrollHandler={scrollableContainerRef as MutableRefObject<HTMLDivElement | null>}
60
+ scrollContainerFillsViewport={false}
59
61
  disableBlockingScroll={withoutOverlay}
60
- wrapperClassName={cn(styles.wrapper, styles.baseModalContainer, {
62
+ wrapperClassName={cn(styles.wrapper, styles.baseModalContainer, wrapperClassName, {
61
63
  [styles.wrapperAlignStart]: horizontalAlign === 'start',
62
64
  [styles.wrapperAlignEnd]: horizontalAlign === 'end',
63
65
  [styles.wrapperJustifyCenter]: verticalAlign === 'center',
@@ -65,6 +65,7 @@ export interface UniversalModalDesktopProps
65
65
  | 'container'
66
66
  | 'disableRestoreFocus'
67
67
  | 'disableAutoFocus'
68
+ | 'zIndex'
68
69
  >
69
70
  > {
70
71
  /**
@@ -23,5 +23,7 @@ export interface UniversalModalMobileProps
23
23
  | 'disableFocusLock'
24
24
  | 'container'
25
25
  | 'disableAutoFocus'
26
+ | 'zIndex'
27
+ | 'scrollLock'
26
28
  >
27
29
  > {}
@@ -1,13 +0,0 @@
1
- import { type RefObject } from 'react';
2
- interface Params {
3
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
4
- scrollableNodeRef: RefObject<HTMLDivElement>;
5
- }
6
- /**
7
- * Расчет overlap состояния
8
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
9
- */
10
- export declare const useModalHighlighted: (params: Params) => {
11
- handleScroll: (e: Event) => void;
12
- };
13
- export {};
@@ -1,57 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var Context = require('../../Context.js');
7
-
8
- /**
9
- * Расчет overlap состояния
10
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
11
- */
12
- var useModalHighlighted = function (params) {
13
- var scrollbarContentNodeRef = params.scrollbarContentNodeRef, scrollableNodeRef = params.scrollableNodeRef;
14
- var _a = React.useContext(Context.ModalContext), setModalHeaderHighlighted = _a.setHeaderHighlighted, setModalFooterHighlighted = _a.setFooterHighlighted;
15
- var handleScroll = function (e) {
16
- var target = e.target;
17
- var scrollTop = target.scrollTop, scrollHeight = target.scrollHeight, clientHeight = target.clientHeight;
18
- var isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
19
- if (setModalHeaderHighlighted) {
20
- setModalHeaderHighlighted(scrollTop > 0);
21
- }
22
- if (setModalFooterHighlighted) {
23
- setModalFooterHighlighted(!isElementFullScrolled);
24
- }
25
- };
26
- // Очищаем overlap значения в контексте
27
- React.useEffect(function () { return function () {
28
- if (setModalHeaderHighlighted) {
29
- setModalHeaderHighlighted(false);
30
- }
31
- if (setModalFooterHighlighted) {
32
- setModalFooterHighlighted(false);
33
- }
34
- }; }, [setModalHeaderHighlighted, setModalFooterHighlighted]);
35
- // Расчет overlap футера при resize событии
36
- React.useEffect(function () {
37
- var resizeObserver = new ResizeObserver(function () {
38
- var _a, _b;
39
- var contentHeight = ((_a = scrollbarContentNodeRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0;
40
- var wrapperHeight = ((_b = scrollableNodeRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight) || 0;
41
- if (setModalFooterHighlighted) {
42
- setModalFooterHighlighted(contentHeight > wrapperHeight);
43
- }
44
- });
45
- if (scrollbarContentNodeRef.current) {
46
- resizeObserver.observe(scrollbarContentNodeRef.current);
47
- }
48
- return function () {
49
- resizeObserver.disconnect();
50
- };
51
- // eslint-disable-next-line react-hooks/exhaustive-deps
52
- }, [setModalFooterHighlighted]);
53
- return { handleScroll: handleScroll };
54
- };
55
-
56
- exports.useModalHighlighted = useModalHighlighted;
57
- //# sourceMappingURL=use-modal-highlighted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-modal-highlighted.js","sources":["../../../src/desktop/hooks/use-modal-highlighted.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from 'react';\n\nimport { type ScrollbarProps } from '@alfalab/core-components-scrollbar';\n\nimport { ModalContext } from '../../Context';\n\ninterface Params {\n scrollbarContentNodeRef: RefObject<HTMLDivElement>;\n scrollableNodeRef: RefObject<HTMLDivElement>;\n}\n\n/**\n * Расчет overlap состояния\n * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную\n */\nexport const useModalHighlighted = (params: Params) => {\n const { scrollbarContentNodeRef, scrollableNodeRef } = params;\n\n const {\n setHeaderHighlighted: setModalHeaderHighlighted,\n setFooterHighlighted: setModalFooterHighlighted,\n } = useContext(ModalContext);\n\n const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {\n const target = e.target as HTMLDivElement;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;\n\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(scrollTop > 0);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(!isElementFullScrolled);\n }\n };\n\n // Очищаем overlap значения в контексте\n useEffect(\n () => () => {\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(false);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(false);\n }\n },\n [setModalHeaderHighlighted, setModalFooterHighlighted],\n );\n\n // Расчет overlap футера при resize событии\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;\n const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(contentHeight > wrapperHeight);\n }\n });\n\n if (scrollbarContentNodeRef.current) {\n resizeObserver.observe(scrollbarContentNodeRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setModalFooterHighlighted]);\n\n return { handleScroll };\n};\n"],"names":["useContext","ModalContext","useEffect"],"mappings":";;;;;;;AAWA;;;AAGG;AACI,IAAM,mBAAmB,GAAG,UAAC,MAAc,EAAA;IACtC,IAAA,uBAAuB,GAAwB,MAAM,CAAA,uBAA9B,EAAE,iBAAiB,GAAK,MAAM,CAAA,iBAAX;IAE5C,IAAA,EAAA,GAGFA,gBAAU,CAACC,oBAAY,CAAC,EAFF,yBAAyB,GAAA,EAAA,CAAA,oBAAA,EACzB,yBAAyB,GAAA,EAAA,CAAA,oBACvB;IAE5B,IAAM,YAAY,GAAsC,UAAC,CAAC,EAAA;AACtD,QAAA,IAAM,MAAM,GAAG,CAAC,CAAC,MAAwB;AACjC,QAAA,IAAA,SAAS,GAAiC,MAAM,CAAA,SAAvC,EAAE,YAAY,GAAmB,MAAM,CAAA,YAAzB,EAAE,YAAY,GAAK,MAAM,aAAX;AAE7C,QAAA,IAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,KAAK,YAAY;QAEvE,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,SAAS,GAAG,CAAC,CAAC;;QAG5C,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,CAAC,qBAAqB,CAAC;;AAEzD,KAAC;;IAGDC,eAAS,CACL,cAAM,OAAA,YAAA;QACF,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;QAGpC,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;KAEvC,CAAA,EAAA,EACD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CACzD;;AAGD,IAAAA,eAAS,CAAC,YAAA;AACN,QAAA,IAAM,cAAc,GAAG,IAAI,cAAc,CAAC,YAAA;;YACtC,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,uBAAuB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YACxE,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,iBAAiB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YAElE,IAAI,yBAAyB,EAAE;AAC3B,gBAAA,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;;AAEhE,SAAC,CAAC;AAEF,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACjC,YAAA,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC;;QAG3D,OAAO,YAAA;YACH,cAAc,CAAC,UAAU,EAAE;AAC/B,SAAC;;AAEL,KAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAE/B,IAAA,OAAO,EAAE,YAAY,EAAA,YAAA,EAAE;AAC3B;;;;"}
@@ -1,13 +0,0 @@
1
- import { type RefObject } from 'react';
2
- interface Params {
3
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
4
- scrollableNodeRef: RefObject<HTMLDivElement>;
5
- }
6
- /**
7
- * Расчет overlap состояния
8
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
9
- */
10
- export declare const useModalHighlighted: (params: Params) => {
11
- handleScroll: (e: Event) => void;
12
- };
13
- export {};
@@ -1,57 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var Context = require('../../Context.js');
7
-
8
- /**
9
- * Расчет overlap состояния
10
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
11
- */
12
- var useModalHighlighted = function (params) {
13
- var scrollbarContentNodeRef = params.scrollbarContentNodeRef, scrollableNodeRef = params.scrollableNodeRef;
14
- var _a = React.useContext(Context.ModalContext), setModalHeaderHighlighted = _a.setHeaderHighlighted, setModalFooterHighlighted = _a.setFooterHighlighted;
15
- var handleScroll = function (e) {
16
- var target = e.target;
17
- var scrollTop = target.scrollTop, scrollHeight = target.scrollHeight, clientHeight = target.clientHeight;
18
- var isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
19
- if (setModalHeaderHighlighted) {
20
- setModalHeaderHighlighted(scrollTop > 0);
21
- }
22
- if (setModalFooterHighlighted) {
23
- setModalFooterHighlighted(!isElementFullScrolled);
24
- }
25
- };
26
- // Очищаем overlap значения в контексте
27
- React.useEffect(function () { return function () {
28
- if (setModalHeaderHighlighted) {
29
- setModalHeaderHighlighted(false);
30
- }
31
- if (setModalFooterHighlighted) {
32
- setModalFooterHighlighted(false);
33
- }
34
- }; }, [setModalHeaderHighlighted, setModalFooterHighlighted]);
35
- // Расчет overlap футера при resize событии
36
- React.useEffect(function () {
37
- var resizeObserver = new ResizeObserver(function () {
38
- var _a, _b;
39
- var contentHeight = ((_a = scrollbarContentNodeRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0;
40
- var wrapperHeight = ((_b = scrollableNodeRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight) || 0;
41
- if (setModalFooterHighlighted) {
42
- setModalFooterHighlighted(contentHeight > wrapperHeight);
43
- }
44
- });
45
- if (scrollbarContentNodeRef.current) {
46
- resizeObserver.observe(scrollbarContentNodeRef.current);
47
- }
48
- return function () {
49
- resizeObserver.disconnect();
50
- };
51
- // eslint-disable-next-line react-hooks/exhaustive-deps
52
- }, [setModalFooterHighlighted]);
53
- return { handleScroll: handleScroll };
54
- };
55
-
56
- exports.useModalHighlighted = useModalHighlighted;
57
- //# sourceMappingURL=use-modal-highlighted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-modal-highlighted.js","sources":["../../src/desktop/hooks/use-modal-highlighted.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from 'react';\n\nimport { type ScrollbarProps } from '@alfalab/core-components-scrollbar';\n\nimport { ModalContext } from '../../Context';\n\ninterface Params {\n scrollbarContentNodeRef: RefObject<HTMLDivElement>;\n scrollableNodeRef: RefObject<HTMLDivElement>;\n}\n\n/**\n * Расчет overlap состояния\n * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную\n */\nexport const useModalHighlighted = (params: Params) => {\n const { scrollbarContentNodeRef, scrollableNodeRef } = params;\n\n const {\n setHeaderHighlighted: setModalHeaderHighlighted,\n setFooterHighlighted: setModalFooterHighlighted,\n } = useContext(ModalContext);\n\n const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {\n const target = e.target as HTMLDivElement;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;\n\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(scrollTop > 0);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(!isElementFullScrolled);\n }\n };\n\n // Очищаем overlap значения в контексте\n useEffect(\n () => () => {\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(false);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(false);\n }\n },\n [setModalHeaderHighlighted, setModalFooterHighlighted],\n );\n\n // Расчет overlap футера при resize событии\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;\n const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(contentHeight > wrapperHeight);\n }\n });\n\n if (scrollbarContentNodeRef.current) {\n resizeObserver.observe(scrollbarContentNodeRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setModalFooterHighlighted]);\n\n return { handleScroll };\n};\n"],"names":["useContext","ModalContext","useEffect"],"mappings":";;;;;;;AAWA;;;AAGG;AACI,IAAM,mBAAmB,GAAG,UAAC,MAAc,EAAA;IACtC,IAAA,uBAAuB,GAAwB,MAAM,CAAA,uBAA9B,EAAE,iBAAiB,GAAK,MAAM,CAAA,iBAAX;IAE5C,IAAA,EAAA,GAGFA,gBAAU,CAACC,oBAAY,CAAC,EAFF,yBAAyB,GAAA,EAAA,CAAA,oBAAA,EACzB,yBAAyB,GAAA,EAAA,CAAA,oBACvB;IAE5B,IAAM,YAAY,GAAsC,UAAC,CAAC,EAAA;AACtD,QAAA,IAAM,MAAM,GAAG,CAAC,CAAC,MAAwB;AACjC,QAAA,IAAA,SAAS,GAAiC,MAAM,CAAA,SAAvC,EAAE,YAAY,GAAmB,MAAM,CAAA,YAAzB,EAAE,YAAY,GAAK,MAAM,aAAX;AAE7C,QAAA,IAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,KAAK,YAAY;QAEvE,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,SAAS,GAAG,CAAC,CAAC;;QAG5C,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,CAAC,qBAAqB,CAAC;;AAEzD,KAAC;;IAGDC,eAAS,CACL,cAAM,OAAA,YAAA;QACF,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;QAGpC,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;KAEvC,CAAA,EAAA,EACD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CACzD;;AAGD,IAAAA,eAAS,CAAC,YAAA;AACN,QAAA,IAAM,cAAc,GAAG,IAAI,cAAc,CAAC,YAAA;;YACtC,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,uBAAuB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YACxE,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,iBAAiB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YAElE,IAAI,yBAAyB,EAAE;AAC3B,gBAAA,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;;AAEhE,SAAC,CAAC;AAEF,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACjC,YAAA,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC;;QAG3D,OAAO,YAAA;YACH,cAAc,CAAC,UAAU,EAAE;AAC/B,SAAC;;AAEL,KAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAE/B,IAAA,OAAO,EAAE,YAAY,EAAA,YAAA,EAAE;AAC3B;;;;"}
@@ -1,13 +0,0 @@
1
- import { type RefObject } from 'react';
2
- interface Params {
3
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
4
- scrollableNodeRef: RefObject<HTMLDivElement>;
5
- }
6
- /**
7
- * Расчет overlap состояния
8
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
9
- */
10
- export declare const useModalHighlighted: (params: Params) => {
11
- handleScroll: (e: Event) => void;
12
- };
13
- export {};
@@ -1,53 +0,0 @@
1
- import { useContext, useEffect } from 'react';
2
- import { ModalContext } from '../../Context.js';
3
-
4
- /**
5
- * Расчет overlap состояния
6
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
7
- */
8
- var useModalHighlighted = function (params) {
9
- var scrollbarContentNodeRef = params.scrollbarContentNodeRef, scrollableNodeRef = params.scrollableNodeRef;
10
- var _a = useContext(ModalContext), setModalHeaderHighlighted = _a.setHeaderHighlighted, setModalFooterHighlighted = _a.setFooterHighlighted;
11
- var handleScroll = function (e) {
12
- var target = e.target;
13
- var scrollTop = target.scrollTop, scrollHeight = target.scrollHeight, clientHeight = target.clientHeight;
14
- var isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
15
- if (setModalHeaderHighlighted) {
16
- setModalHeaderHighlighted(scrollTop > 0);
17
- }
18
- if (setModalFooterHighlighted) {
19
- setModalFooterHighlighted(!isElementFullScrolled);
20
- }
21
- };
22
- // Очищаем overlap значения в контексте
23
- useEffect(function () { return function () {
24
- if (setModalHeaderHighlighted) {
25
- setModalHeaderHighlighted(false);
26
- }
27
- if (setModalFooterHighlighted) {
28
- setModalFooterHighlighted(false);
29
- }
30
- }; }, [setModalHeaderHighlighted, setModalFooterHighlighted]);
31
- // Расчет overlap футера при resize событии
32
- useEffect(function () {
33
- var resizeObserver = new ResizeObserver(function () {
34
- var _a, _b;
35
- var contentHeight = ((_a = scrollbarContentNodeRef.current) === null || _a === void 0 ? void 0 : _a.clientHeight) || 0;
36
- var wrapperHeight = ((_b = scrollableNodeRef.current) === null || _b === void 0 ? void 0 : _b.clientHeight) || 0;
37
- if (setModalFooterHighlighted) {
38
- setModalFooterHighlighted(contentHeight > wrapperHeight);
39
- }
40
- });
41
- if (scrollbarContentNodeRef.current) {
42
- resizeObserver.observe(scrollbarContentNodeRef.current);
43
- }
44
- return function () {
45
- resizeObserver.disconnect();
46
- };
47
- // eslint-disable-next-line react-hooks/exhaustive-deps
48
- }, [setModalFooterHighlighted]);
49
- return { handleScroll: handleScroll };
50
- };
51
-
52
- export { useModalHighlighted };
53
- //# sourceMappingURL=use-modal-highlighted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-modal-highlighted.js","sources":["../../../src/desktop/hooks/use-modal-highlighted.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from 'react';\n\nimport { type ScrollbarProps } from '@alfalab/core-components-scrollbar';\n\nimport { ModalContext } from '../../Context';\n\ninterface Params {\n scrollbarContentNodeRef: RefObject<HTMLDivElement>;\n scrollableNodeRef: RefObject<HTMLDivElement>;\n}\n\n/**\n * Расчет overlap состояния\n * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную\n */\nexport const useModalHighlighted = (params: Params) => {\n const { scrollbarContentNodeRef, scrollableNodeRef } = params;\n\n const {\n setHeaderHighlighted: setModalHeaderHighlighted,\n setFooterHighlighted: setModalFooterHighlighted,\n } = useContext(ModalContext);\n\n const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {\n const target = e.target as HTMLDivElement;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;\n\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(scrollTop > 0);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(!isElementFullScrolled);\n }\n };\n\n // Очищаем overlap значения в контексте\n useEffect(\n () => () => {\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(false);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(false);\n }\n },\n [setModalHeaderHighlighted, setModalFooterHighlighted],\n );\n\n // Расчет overlap футера при resize событии\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;\n const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(contentHeight > wrapperHeight);\n }\n });\n\n if (scrollbarContentNodeRef.current) {\n resizeObserver.observe(scrollbarContentNodeRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setModalFooterHighlighted]);\n\n return { handleScroll };\n};\n"],"names":[],"mappings":";;;AAWA;;;AAGG;AACI,IAAM,mBAAmB,GAAG,UAAC,MAAc,EAAA;IACtC,IAAA,uBAAuB,GAAwB,MAAM,CAAA,uBAA9B,EAAE,iBAAiB,GAAK,MAAM,CAAA,iBAAX;IAE5C,IAAA,EAAA,GAGF,UAAU,CAAC,YAAY,CAAC,EAFF,yBAAyB,GAAA,EAAA,CAAA,oBAAA,EACzB,yBAAyB,GAAA,EAAA,CAAA,oBACvB;IAE5B,IAAM,YAAY,GAAsC,UAAC,CAAC,EAAA;AACtD,QAAA,IAAM,MAAM,GAAG,CAAC,CAAC,MAAwB;AACjC,QAAA,IAAA,SAAS,GAAiC,MAAM,CAAA,SAAvC,EAAE,YAAY,GAAmB,MAAM,CAAA,YAAzB,EAAE,YAAY,GAAK,MAAM,aAAX;AAE7C,QAAA,IAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,KAAK,YAAY;QAEvE,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,SAAS,GAAG,CAAC,CAAC;;QAG5C,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,CAAC,qBAAqB,CAAC;;AAEzD,KAAC;;IAGD,SAAS,CACL,cAAM,OAAA,YAAA;QACF,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;QAGpC,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;KAEvC,CAAA,EAAA,EACD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CACzD;;AAGD,IAAA,SAAS,CAAC,YAAA;AACN,QAAA,IAAM,cAAc,GAAG,IAAI,cAAc,CAAC,YAAA;;YACtC,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,uBAAuB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YACxE,IAAM,aAAa,GAAG,CAAA,CAAA,EAAA,GAAA,iBAAiB,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAA,YAAY,KAAI,CAAC;YAElE,IAAI,yBAAyB,EAAE;AAC3B,gBAAA,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;;AAEhE,SAAC,CAAC;AAEF,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACjC,YAAA,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC;;QAG3D,OAAO,YAAA;YACH,cAAc,CAAC,UAAU,EAAE;AAC/B,SAAC;;AAEL,KAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;AAE/B,IAAA,OAAO,EAAE,YAAY,EAAA,YAAA,EAAE;AAC3B;;;;"}
@@ -1,13 +0,0 @@
1
- import { type RefObject } from 'react';
2
- interface Params {
3
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
4
- scrollableNodeRef: RefObject<HTMLDivElement>;
5
- }
6
- /**
7
- * Расчет overlap состояния
8
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
9
- */
10
- export declare const useModalHighlighted: (params: Params) => {
11
- handleScroll: (e: Event) => void;
12
- };
13
- export {};
@@ -1,52 +0,0 @@
1
- import { useContext, useEffect } from 'react';
2
- import { ModalContext } from '../../Context.js';
3
-
4
- /**
5
- * Расчет overlap состояния
6
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
7
- */
8
- const useModalHighlighted = (params) => {
9
- const { scrollbarContentNodeRef, scrollableNodeRef } = params;
10
- const { setHeaderHighlighted: setModalHeaderHighlighted, setFooterHighlighted: setModalFooterHighlighted, } = useContext(ModalContext);
11
- const handleScroll = (e) => {
12
- const target = e.target;
13
- const { scrollTop, scrollHeight, clientHeight } = target;
14
- const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
15
- if (setModalHeaderHighlighted) {
16
- setModalHeaderHighlighted(scrollTop > 0);
17
- }
18
- if (setModalFooterHighlighted) {
19
- setModalFooterHighlighted(!isElementFullScrolled);
20
- }
21
- };
22
- // Очищаем overlap значения в контексте
23
- useEffect(() => () => {
24
- if (setModalHeaderHighlighted) {
25
- setModalHeaderHighlighted(false);
26
- }
27
- if (setModalFooterHighlighted) {
28
- setModalFooterHighlighted(false);
29
- }
30
- }, [setModalHeaderHighlighted, setModalFooterHighlighted]);
31
- // Расчет overlap футера при resize событии
32
- useEffect(() => {
33
- const resizeObserver = new ResizeObserver(() => {
34
- const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;
35
- const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;
36
- if (setModalFooterHighlighted) {
37
- setModalFooterHighlighted(contentHeight > wrapperHeight);
38
- }
39
- });
40
- if (scrollbarContentNodeRef.current) {
41
- resizeObserver.observe(scrollbarContentNodeRef.current);
42
- }
43
- return () => {
44
- resizeObserver.disconnect();
45
- };
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- }, [setModalFooterHighlighted]);
48
- return { handleScroll };
49
- };
50
-
51
- export { useModalHighlighted };
52
- //# sourceMappingURL=use-modal-highlighted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-modal-highlighted.js","sources":["../../../src/desktop/hooks/use-modal-highlighted.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from 'react';\n\nimport { type ScrollbarProps } from '@alfalab/core-components-scrollbar';\n\nimport { ModalContext } from '../../Context';\n\ninterface Params {\n scrollbarContentNodeRef: RefObject<HTMLDivElement>;\n scrollableNodeRef: RefObject<HTMLDivElement>;\n}\n\n/**\n * Расчет overlap состояния\n * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную\n */\nexport const useModalHighlighted = (params: Params) => {\n const { scrollbarContentNodeRef, scrollableNodeRef } = params;\n\n const {\n setHeaderHighlighted: setModalHeaderHighlighted,\n setFooterHighlighted: setModalFooterHighlighted,\n } = useContext(ModalContext);\n\n const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {\n const target = e.target as HTMLDivElement;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;\n\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(scrollTop > 0);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(!isElementFullScrolled);\n }\n };\n\n // Очищаем overlap значения в контексте\n useEffect(\n () => () => {\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(false);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(false);\n }\n },\n [setModalHeaderHighlighted, setModalFooterHighlighted],\n );\n\n // Расчет overlap футера при resize событии\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;\n const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(contentHeight > wrapperHeight);\n }\n });\n\n if (scrollbarContentNodeRef.current) {\n resizeObserver.observe(scrollbarContentNodeRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setModalFooterHighlighted]);\n\n return { handleScroll };\n};\n"],"names":[],"mappings":";;;AAWA;;;AAGG;AACU,MAAA,mBAAmB,GAAG,CAAC,MAAc,KAAI;AAClD,IAAA,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,MAAM;AAE7D,IAAA,MAAM,EACF,oBAAoB,EAAE,yBAAyB,EAC/C,oBAAoB,EAAE,yBAAyB,GAClD,GAAG,UAAU,CAAC,YAAY,CAAC;AAE5B,IAAA,MAAM,YAAY,GAAsC,CAAC,CAAC,KAAI;AAC1D,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB;QACzC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM;AAExD,QAAA,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,KAAK,YAAY;QAEvE,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,SAAS,GAAG,CAAC,CAAC;;QAG5C,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,CAAC,qBAAqB,CAAC;;AAEzD,KAAC;;AAGD,IAAA,SAAS,CACL,MAAM,MAAK;QACP,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;QAGpC,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;AAExC,KAAC,EACD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CACzD;;IAGD,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;YAC3C,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;YACxE,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;YAElE,IAAI,yBAAyB,EAAE;AAC3B,gBAAA,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;;AAEhE,SAAC,CAAC;AAEF,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACjC,YAAA,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC;;AAG3D,QAAA,OAAO,MAAK;YACR,cAAc,CAAC,UAAU,EAAE;AAC/B,SAAC;;AAEL,KAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;IAE/B,OAAO,EAAE,YAAY,EAAE;AAC3B;;;;"}
@@ -1,13 +0,0 @@
1
- import { type RefObject } from 'react';
2
- interface Params {
3
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
4
- scrollableNodeRef: RefObject<HTMLDivElement>;
5
- }
6
- /**
7
- * Расчет overlap состояния
8
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
9
- */
10
- export declare const useModalHighlighted: (params: Params) => {
11
- handleScroll: (e: Event) => void;
12
- };
13
- export {};
@@ -1,52 +0,0 @@
1
- import { useContext, useEffect } from 'react';
2
- import { ModalContext } from '../../Context.js';
3
-
4
- /**
5
- * Расчет overlap состояния
6
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
7
- */
8
- const useModalHighlighted = (params) => {
9
- const { scrollbarContentNodeRef, scrollableNodeRef } = params;
10
- const { setHeaderHighlighted: setModalHeaderHighlighted, setFooterHighlighted: setModalFooterHighlighted, } = useContext(ModalContext);
11
- const handleScroll = (e) => {
12
- const target = e.target;
13
- const { scrollTop, scrollHeight, clientHeight } = target;
14
- const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
15
- if (setModalHeaderHighlighted) {
16
- setModalHeaderHighlighted(scrollTop > 0);
17
- }
18
- if (setModalFooterHighlighted) {
19
- setModalFooterHighlighted(!isElementFullScrolled);
20
- }
21
- };
22
- // Очищаем overlap значения в контексте
23
- useEffect(() => () => {
24
- if (setModalHeaderHighlighted) {
25
- setModalHeaderHighlighted(false);
26
- }
27
- if (setModalFooterHighlighted) {
28
- setModalFooterHighlighted(false);
29
- }
30
- }, [setModalHeaderHighlighted, setModalFooterHighlighted]);
31
- // Расчет overlap футера при resize событии
32
- useEffect(() => {
33
- const resizeObserver = new ResizeObserver(() => {
34
- const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;
35
- const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;
36
- if (setModalFooterHighlighted) {
37
- setModalFooterHighlighted(contentHeight > wrapperHeight);
38
- }
39
- });
40
- if (scrollbarContentNodeRef.current) {
41
- resizeObserver.observe(scrollbarContentNodeRef.current);
42
- }
43
- return () => {
44
- resizeObserver.disconnect();
45
- };
46
- // eslint-disable-next-line react-hooks/exhaustive-deps
47
- }, [setModalFooterHighlighted]);
48
- return { handleScroll };
49
- };
50
-
51
- export { useModalHighlighted };
52
- //# sourceMappingURL=use-modal-highlighted.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-modal-highlighted.js","sources":["../../../src/desktop/hooks/use-modal-highlighted.ts"],"sourcesContent":["import { type RefObject, useContext, useEffect } from 'react';\n\nimport { type ScrollbarProps } from '@alfalab/core-components-scrollbar';\n\nimport { ModalContext } from '../../Context';\n\ninterface Params {\n scrollbarContentNodeRef: RefObject<HTMLDivElement>;\n scrollableNodeRef: RefObject<HTMLDivElement>;\n}\n\n/**\n * Расчет overlap состояния\n * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную\n */\nexport const useModalHighlighted = (params: Params) => {\n const { scrollbarContentNodeRef, scrollableNodeRef } = params;\n\n const {\n setHeaderHighlighted: setModalHeaderHighlighted,\n setFooterHighlighted: setModalFooterHighlighted,\n } = useContext(ModalContext);\n\n const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {\n const target = e.target as HTMLDivElement;\n const { scrollTop, scrollHeight, clientHeight } = target;\n\n const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;\n\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(scrollTop > 0);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(!isElementFullScrolled);\n }\n };\n\n // Очищаем overlap значения в контексте\n useEffect(\n () => () => {\n if (setModalHeaderHighlighted) {\n setModalHeaderHighlighted(false);\n }\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(false);\n }\n },\n [setModalHeaderHighlighted, setModalFooterHighlighted],\n );\n\n // Расчет overlap футера при resize событии\n useEffect(() => {\n const resizeObserver = new ResizeObserver(() => {\n const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;\n const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;\n\n if (setModalFooterHighlighted) {\n setModalFooterHighlighted(contentHeight > wrapperHeight);\n }\n });\n\n if (scrollbarContentNodeRef.current) {\n resizeObserver.observe(scrollbarContentNodeRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setModalFooterHighlighted]);\n\n return { handleScroll };\n};\n"],"names":[],"mappings":";;;AAWA;;;AAGG;AACU,MAAA,mBAAmB,GAAG,CAAC,MAAc,KAAI;AAClD,IAAA,MAAM,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,GAAG,MAAM;AAE7D,IAAA,MAAM,EACF,oBAAoB,EAAE,yBAAyB,EAC/C,oBAAoB,EAAE,yBAAyB,GAClD,GAAG,UAAU,CAAC,YAAY,CAAC;AAE5B,IAAA,MAAM,YAAY,GAAsC,CAAC,CAAC,KAAI;AAC1D,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAAwB;QACzC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,MAAM;AAExD,QAAA,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,KAAK,YAAY;QAEvE,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,SAAS,GAAG,CAAC,CAAC;;QAG5C,IAAI,yBAAyB,EAAE;AAC3B,YAAA,yBAAyB,CAAC,CAAC,qBAAqB,CAAC;;AAEzD,KAAC;;AAGD,IAAA,SAAS,CACL,MAAM,MAAK;QACP,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;QAGpC,IAAI,yBAAyB,EAAE;YAC3B,yBAAyB,CAAC,KAAK,CAAC;;AAExC,KAAC,EACD,CAAC,yBAAyB,EAAE,yBAAyB,CAAC,CACzD;;IAGD,SAAS,CAAC,MAAK;AACX,QAAA,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,MAAK;YAC3C,MAAM,aAAa,GAAG,uBAAuB,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;YACxE,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;YAElE,IAAI,yBAAyB,EAAE;AAC3B,gBAAA,yBAAyB,CAAC,aAAa,GAAG,aAAa,CAAC;;AAEhE,SAAC,CAAC;AAEF,QAAA,IAAI,uBAAuB,CAAC,OAAO,EAAE;AACjC,YAAA,cAAc,CAAC,OAAO,CAAC,uBAAuB,CAAC,OAAO,CAAC;;AAG3D,QAAA,OAAO,MAAK;YACR,cAAc,CAAC,UAAU,EAAE;AAC/B,SAAC;;AAEL,KAAC,EAAE,CAAC,yBAAyB,CAAC,CAAC;IAE/B,OAAO,EAAE,YAAY,EAAE;AAC3B;;;;"}
@@ -1,75 +0,0 @@
1
- import { type RefObject, useContext, useEffect } from 'react';
2
-
3
- import { type ScrollbarProps } from '@alfalab/core-components-scrollbar';
4
-
5
- import { ModalContext } from '../../Context';
6
-
7
- interface Params {
8
- scrollbarContentNodeRef: RefObject<HTMLDivElement>;
9
- scrollableNodeRef: RefObject<HTMLDivElement>;
10
- }
11
-
12
- /**
13
- * Расчет overlap состояния
14
- * Этот функционал есть в base-modal, но так как в desktop версии используется кастомный scroll необходимо обрабатывать это в ручную
15
- */
16
- export const useModalHighlighted = (params: Params) => {
17
- const { scrollbarContentNodeRef, scrollableNodeRef } = params;
18
-
19
- const {
20
- setHeaderHighlighted: setModalHeaderHighlighted,
21
- setFooterHighlighted: setModalFooterHighlighted,
22
- } = useContext(ModalContext);
23
-
24
- const handleScroll: ScrollbarProps['onContentScroll'] = (e) => {
25
- const target = e.target as HTMLDivElement;
26
- const { scrollTop, scrollHeight, clientHeight } = target;
27
-
28
- const isElementFullScrolled = scrollHeight - scrollTop === clientHeight;
29
-
30
- if (setModalHeaderHighlighted) {
31
- setModalHeaderHighlighted(scrollTop > 0);
32
- }
33
-
34
- if (setModalFooterHighlighted) {
35
- setModalFooterHighlighted(!isElementFullScrolled);
36
- }
37
- };
38
-
39
- // Очищаем overlap значения в контексте
40
- useEffect(
41
- () => () => {
42
- if (setModalHeaderHighlighted) {
43
- setModalHeaderHighlighted(false);
44
- }
45
-
46
- if (setModalFooterHighlighted) {
47
- setModalFooterHighlighted(false);
48
- }
49
- },
50
- [setModalHeaderHighlighted, setModalFooterHighlighted],
51
- );
52
-
53
- // Расчет overlap футера при resize событии
54
- useEffect(() => {
55
- const resizeObserver = new ResizeObserver(() => {
56
- const contentHeight = scrollbarContentNodeRef.current?.clientHeight || 0;
57
- const wrapperHeight = scrollableNodeRef.current?.clientHeight || 0;
58
-
59
- if (setModalFooterHighlighted) {
60
- setModalFooterHighlighted(contentHeight > wrapperHeight);
61
- }
62
- });
63
-
64
- if (scrollbarContentNodeRef.current) {
65
- resizeObserver.observe(scrollbarContentNodeRef.current);
66
- }
67
-
68
- return () => {
69
- resizeObserver.disconnect();
70
- };
71
- // eslint-disable-next-line react-hooks/exhaustive-deps
72
- }, [setModalFooterHighlighted]);
73
-
74
- return { handleScroll };
75
- };