arengibook 1.2.2-main → 1.2.3-main

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 (2) hide show
  1. package/dist/index.js +18 -35
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React from 'react';
2
- import React__default, { useContext, useState, useRef, useEffect, isValidElement, cloneElement, Children, forwardRef, Fragment, useMemo, useCallback } from 'react';
2
+ import React__default, { useContext, useState, useRef, useEffect, isValidElement, cloneElement, Children, useLayoutEffect, forwardRef, Fragment, useMemo, useCallback } from 'react';
3
3
  import ReactDOM from 'react-dom';
4
4
 
5
5
  function styleInject(css, ref) {
@@ -13938,6 +13938,7 @@ var DatePicker = function DatePicker(_ref) {
13938
13938
  }
13939
13939
  return scrollables;
13940
13940
  };
13941
+ var BOTTOM_MARGIN = 80;
13941
13942
  var repositionPanel = function repositionPanel() {
13942
13943
  var _calendarRef$current;
13943
13944
  if (!panelVisibleRef.current) return;
@@ -13952,6 +13953,14 @@ var DatePicker = function DatePicker(_ref) {
13952
13953
  if (customContent) {
13953
13954
  overlay.style.minHeight = '';
13954
13955
  }
13956
+ var overlayRect = overlay.getBoundingClientRect();
13957
+ var viewportHeight = window.innerHeight;
13958
+ if (overlayRect.bottom + BOTTOM_MARGIN > viewportHeight) {
13959
+ var inputRect = input.getBoundingClientRect();
13960
+ var scrollY = window.scrollY || window.pageYOffset;
13961
+ var overlayHeight = overlay.offsetHeight;
13962
+ overlay.style.top = inputRect.top + scrollY - overlayHeight - 4 + 'px';
13963
+ }
13955
13964
  }
13956
13965
  };
13957
13966
  var cleanupScrollListeners = function cleanupScrollListeners() {
@@ -14017,19 +14026,7 @@ var DatePicker = function DatePicker(_ref) {
14017
14026
  if (customContent) {
14018
14027
  currentOverlay.style.minHeight = customContent.offsetHeight + 80 + 'px';
14019
14028
  }
14020
- var extraHeight = 80;
14021
14029
  repositionPanel();
14022
- if (customContent) {
14023
- currentOverlay.style.minHeight = '';
14024
- var input = inputRef.current;
14025
- if (input) {
14026
- var overlayTop = parseFloat(currentOverlay.style.top) || 0;
14027
- var inputTop = input.getBoundingClientRect().top + window.scrollY;
14028
- if (overlayTop < inputTop) {
14029
- currentOverlay.style.top = overlayTop + extraHeight + 'px';
14030
- }
14031
- }
14032
- }
14033
14030
  setPanelReady(true);
14034
14031
  }, 0);
14035
14032
  };
@@ -14056,30 +14053,16 @@ var DatePicker = function DatePicker(_ref) {
14056
14053
  cleanupScrollListeners();
14057
14054
  };
14058
14055
  }, []);
14059
- useEffect(function () {
14056
+ useLayoutEffect(function () {
14060
14057
  if (mode !== 'monthYear' || !panelVisibleRef.current) return;
14061
- var extraHeight = 80;
14062
- setTimeout(function () {
14063
- var _calendarRef$current4;
14064
- var overlay = (_calendarRef$current4 = calendarRef.current) === null || _calendarRef$current4 === void 0 ? void 0 : _calendarRef$current4.getOverlay();
14065
- if (!overlay) return;
14066
- var customContent = overlay.querySelector('.dp-monthyear-header');
14067
- if (customContent) {
14068
- overlay.style.minHeight = customContent.offsetHeight + extraHeight + 'px';
14069
- }
14058
+ setPanelReady(false);
14059
+ var frame = requestAnimationFrame(function () {
14070
14060
  repositionPanel();
14071
- if (customContent) {
14072
- overlay.style.minHeight = '';
14073
- var input = inputRef.current;
14074
- if (input) {
14075
- var overlayTop = parseFloat(overlay.style.top) || 0;
14076
- var inputTop = input.getBoundingClientRect().top + window.scrollY;
14077
- if (overlayTop < inputTop) {
14078
- overlay.style.top = overlayTop + extraHeight + 'px';
14079
- }
14080
- }
14081
- }
14082
- }, 0);
14061
+ setPanelReady(true);
14062
+ });
14063
+ return function () {
14064
+ return cancelAnimationFrame(frame);
14065
+ };
14083
14066
  }, [mode]);
14084
14067
  var panelClassName = "datepickerbook" + (mode === "monthYear" ? " dp-monthyear-mode" : "") + (story === "year" ? " dp-year-only" : "") + (panelReady ? " dp-ready" : "");
14085
14068
  var wrapperStyle = _objectSpread2({
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "arengibook",
3
3
  "private": false,
4
- "version": "1.2.2-main",
4
+ "version": "1.2.3-main",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "exports": {