@dreamcommerce/aurora 2.23.6 → 2.23.7

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.
@@ -81,6 +81,11 @@ var Content = function Content(_ref) {
81
81
  parentScrollTop = _useState4[0],
82
82
  setParentScrollTop = _useState4[1];
83
83
 
84
+ var _useState5 = React.useState(false),
85
+ _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
86
+ fitOnBottomOfScrollableParent = _useState6[0],
87
+ setFitOnBottomOfScrollableParent = _useState6[1];
88
+
84
89
  var dropdownIdRef = React.useRef("dropdown-".concat(v4['default']()));
85
90
 
86
91
  var _useDropdownsManagerC = use_dropdowns_manager_context.useDropdownsManagerContext(),
@@ -90,15 +95,15 @@ var Content = function Content(_ref) {
90
95
 
91
96
  var dropdown = getDropdown(dropdownIdRef.current);
92
97
 
93
- var _useState5 = React.useState({
98
+ var _useState7 = React.useState({
94
99
  top: '0px',
95
100
  bottom: '0px',
96
101
  left: '0px',
97
102
  zIndex: constants.DROPDOWN_Z_INDEX
98
103
  }),
99
- _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
100
- styles = _useState6[0],
101
- setStyles = _useState6[1];
104
+ _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
105
+ styles = _useState8[0],
106
+ setStyles = _useState8[1];
102
107
 
103
108
  var windowYScroll = window.scrollY;
104
109
  var windowHeightMinusYOffset = window.innerHeight - windowYScroll;
@@ -133,7 +138,7 @@ var Content = function Content(_ref) {
133
138
 
134
139
  var checkIfIsOutsideBottomViewport = function checkIfIsOutsideBottomViewport() {
135
140
  if (!contentRef.current || !bounding || !isOpen) return;
136
- return bounding.height + bounding.top + constants.DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight;
141
+ return bounding.height + bounding.top + constants.DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight && !fitOnBottomOfScrollableParent;
137
142
  };
138
143
 
139
144
  var dropdownIsOutsideTopViewport = checkIfIsOutsideTopViewport();
@@ -202,7 +207,7 @@ var Content = function Content(_ref) {
202
207
 
203
208
  if (verticalPosition === 'bottom') {
204
209
  setBottomPosition();
205
- if (dropdownIsOutsideBottomViewport) setTopPosition();
210
+ if (dropdownIsOutsideBottomViewport && !fitOnBottomOfScrollableParent) setTopPosition();
206
211
  }
207
212
 
208
213
  screenWidthName === responsive_breakpoints.SCREEN_XS ? setStyles({
@@ -217,12 +222,13 @@ var Content = function Content(_ref) {
217
222
  zIndex: zIndex
218
223
  });
219
224
  }
220
- }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop]);
225
+ }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop, fitOnBottomOfScrollableParent]);
221
226
  React.useEffect(function () {
222
227
  var _UiDomUtils$getFirstS;
223
228
 
224
229
  if (!(wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current) || !isOpen) return;
225
230
  var scrollableParent = (_UiDomUtils$getFirstS = utilities$1.UiDomUtils.getFirstScrollableParent(wrapperRef.current)) !== null && _UiDomUtils$getFirstS !== void 0 ? _UiDomUtils$getFirstS : document.body;
231
+ var wrapperRect = wrapperRef.current.getBoundingClientRect();
226
232
 
227
233
  var handleWindowScroll = function handleWindowScroll() {
228
234
  if (typeof toggleDropdown === 'function' && shouldCloseOnScroll) {
@@ -238,6 +244,14 @@ var Content = function Content(_ref) {
238
244
  once: true
239
245
  });
240
246
  scrollableParent.addEventListener('scroll', setParentScrollTopValue);
247
+ requestAnimationFrame(function () {
248
+ var _contentRef$current;
249
+
250
+ var scrollableParentHeight = scrollableParent === null || scrollableParent === void 0 ? void 0 : scrollableParent.scrollHeight;
251
+ var scrollableParentBottomSpace = scrollableParentHeight - (wrapperRect.bottom - scrollableParent.offsetTop + scrollableParent.scrollTop);
252
+ var dropdownHeight = contentRef === null || contentRef === void 0 || (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight;
253
+ if (dropdownHeight) setFitOnBottomOfScrollableParent(scrollableParentBottomSpace > dropdownHeight);
254
+ });
241
255
  return function () {
242
256
  scrollableParent.removeEventListener('scroll', handleWindowScroll);
243
257
  scrollableParent.removeEventListener('scroll', setParentScrollTopValue);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oEAAwE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
@@ -72,6 +72,11 @@ var Content = function Content(_ref) {
72
72
  parentScrollTop = _useState4[0],
73
73
  setParentScrollTop = _useState4[1];
74
74
 
75
+ var _useState5 = useState(false),
76
+ _useState6 = _slicedToArray(_useState5, 2),
77
+ fitOnBottomOfScrollableParent = _useState6[0],
78
+ setFitOnBottomOfScrollableParent = _useState6[1];
79
+
75
80
  var dropdownIdRef = useRef("dropdown-".concat(v4()));
76
81
 
77
82
  var _useDropdownsManagerC = useDropdownsManagerContext(),
@@ -81,15 +86,15 @@ var Content = function Content(_ref) {
81
86
 
82
87
  var dropdown = getDropdown(dropdownIdRef.current);
83
88
 
84
- var _useState5 = useState({
89
+ var _useState7 = useState({
85
90
  top: '0px',
86
91
  bottom: '0px',
87
92
  left: '0px',
88
93
  zIndex: DROPDOWN_Z_INDEX
89
94
  }),
90
- _useState6 = _slicedToArray(_useState5, 2),
91
- styles = _useState6[0],
92
- setStyles = _useState6[1];
95
+ _useState8 = _slicedToArray(_useState7, 2),
96
+ styles = _useState8[0],
97
+ setStyles = _useState8[1];
93
98
 
94
99
  var windowYScroll = window.scrollY;
95
100
  var windowHeightMinusYOffset = window.innerHeight - windowYScroll;
@@ -124,7 +129,7 @@ var Content = function Content(_ref) {
124
129
 
125
130
  var checkIfIsOutsideBottomViewport = function checkIfIsOutsideBottomViewport() {
126
131
  if (!contentRef.current || !bounding || !isOpen) return;
127
- return bounding.height + bounding.top + DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight;
132
+ return bounding.height + bounding.top + DROPDOWN_CONTENT_ARROW_HEIGHT > window.innerHeight && !fitOnBottomOfScrollableParent;
128
133
  };
129
134
 
130
135
  var dropdownIsOutsideTopViewport = checkIfIsOutsideTopViewport();
@@ -193,7 +198,7 @@ var Content = function Content(_ref) {
193
198
 
194
199
  if (verticalPosition === 'bottom') {
195
200
  setBottomPosition();
196
- if (dropdownIsOutsideBottomViewport) setTopPosition();
201
+ if (dropdownIsOutsideBottomViewport && !fitOnBottomOfScrollableParent) setTopPosition();
197
202
  }
198
203
 
199
204
  screenWidthName === SCREEN_XS ? setStyles({
@@ -208,12 +213,13 @@ var Content = function Content(_ref) {
208
213
  zIndex: zIndex
209
214
  });
210
215
  }
211
- }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop]);
216
+ }, [portalContainer, screenWidthName, wrapperRef, isOpen, dropdownIsOutsideTopViewport, dropdownIsOutsideBottomViewport, windowYScroll, windowHeightMinusYOffset, parentScrollTop, fitOnBottomOfScrollableParent]);
212
217
  useEffect(function () {
213
218
  var _UiDomUtils$getFirstS;
214
219
 
215
220
  if (!(wrapperRef !== null && wrapperRef !== void 0 && wrapperRef.current) || !isOpen) return;
216
221
  var scrollableParent = (_UiDomUtils$getFirstS = UiDomUtils.getFirstScrollableParent(wrapperRef.current)) !== null && _UiDomUtils$getFirstS !== void 0 ? _UiDomUtils$getFirstS : document.body;
222
+ var wrapperRect = wrapperRef.current.getBoundingClientRect();
217
223
 
218
224
  var handleWindowScroll = function handleWindowScroll() {
219
225
  if (typeof toggleDropdown === 'function' && shouldCloseOnScroll) {
@@ -229,6 +235,14 @@ var Content = function Content(_ref) {
229
235
  once: true
230
236
  });
231
237
  scrollableParent.addEventListener('scroll', setParentScrollTopValue);
238
+ requestAnimationFrame(function () {
239
+ var _contentRef$current;
240
+
241
+ var scrollableParentHeight = scrollableParent === null || scrollableParent === void 0 ? void 0 : scrollableParent.scrollHeight;
242
+ var scrollableParentBottomSpace = scrollableParentHeight - (wrapperRect.bottom - scrollableParent.offsetTop + scrollableParent.scrollTop);
243
+ var dropdownHeight = contentRef === null || contentRef === void 0 || (_contentRef$current = contentRef.current) === null || _contentRef$current === void 0 ? void 0 : _contentRef$current.offsetHeight;
244
+ if (dropdownHeight) setFitOnBottomOfScrollableParent(scrollableParentBottomSpace > dropdownHeight);
245
+ });
232
246
  return function () {
233
247
  scrollableParent.removeEventListener('scroll', handleWindowScroll);
234
248
  scrollableParent.removeEventListener('scroll', setParentScrollTopValue);
@@ -1 +1 @@
1
- {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
1
+ {"version":3,"file":null,"sources":[null],"sourcesContent":[null],"names":[],"mappings":"AAAA;AACA,+BAA+B,oEAAwE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAA4D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@dreamcommerce/aurora",
3
3
  "packageManager": "yarn@3.2.0",
4
4
  "sideEffects": false,
5
- "version": "2.23.6",
5
+ "version": "2.23.7",
6
6
  "description": "aurora",
7
7
  "author": "k0ssak",
8
8
  "license": "MIT",