@entur/datepicker 9.4.10-beta.0 → 9.4.11-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -530,11 +530,12 @@ var DatePicker = function DatePicker(_ref) {
530
530
  var datePickerRef = React.useRef(null);
531
531
  var calendarRef = React.useRef(null);
532
532
  var dateFieldRef = React.useRef(null);
533
+ var _useState = React.useState(false),
534
+ showAnimations = _useState[0],
535
+ setShowAnimations = _useState[1];
533
536
  var _useWindowDimensions = utils.useWindowDimensions(),
534
537
  width = _useWindowDimensions.width;
535
538
  var handleOnChange = function handleOnChange(value) {
536
- // console.log(value && value.compare(parseDate('1000-01-01')) < 0);
537
- // if (value && value.compare(parseDate('1000-01-01')) < 0) return;
538
539
  if (forcedReturnType !== undefined) {
539
540
  return onChange(convertValueToType({
540
541
  value: value,
@@ -562,7 +563,11 @@ var DatePicker = function DatePicker(_ref) {
562
563
  calendarProps = _useDatePicker.calendarProps;
563
564
  // calculations for floating-UI popover position
564
565
  var _useFloating = reactDom.useFloating({
565
- whileElementsMounted: reactDom.autoUpdate,
566
+ whileElementsMounted: function whileElementsMounted(ref, _float, update) {
567
+ return reactDom.autoUpdate(ref, _float, update, {
568
+ elementResize: false
569
+ });
570
+ },
566
571
  placement: 'bottom-start',
567
572
  middleware: [reactDom.offset(tokens.space.extraSmall), reactDom.flip(), reactDom.shift({
568
573
  padding: tokens.space.extraSmall
@@ -570,9 +575,9 @@ var DatePicker = function DatePicker(_ref) {
570
575
  }),
571
576
  x = _useFloating.x,
572
577
  y = _useFloating.y,
573
- reference = _useFloating.reference,
574
- floating = _useFloating.floating,
575
- strategy = _useFloating.strategy;
578
+ refs = _useFloating.refs,
579
+ strategy = _useFloating.strategy,
580
+ update = _useFloating.update;
576
581
  utils.useOnClickOutside([calendarRef], function () {
577
582
  state.setOpen(false);
578
583
  });
@@ -595,17 +600,25 @@ var DatePicker = function DatePicker(_ref) {
595
600
  showWeekNumbers: showWeekNumbers,
596
601
  weekNumberHeader: weekNumberHeader
597
602
  });
603
+ // Initial position for popover is (0,0) before being moved to calculated position.
604
+ // To avoid animating this move we delay turning on animation by a few ms.
605
+ React.useEffect(function () {
606
+ setTimeout(function () {
607
+ return setShowAnimations(state.isOpen);
608
+ }, 10);
609
+ }, [state.isOpen]);
598
610
  var useModal = typeof width !== 'undefined' && width <= CALENDAR_MODAL_MAX_SCREEN_WIDTH && !disableModal;
599
611
  var popoverCalendar = React.createElement("div", {
600
612
  // styling for floating-UI popover
601
613
  style: {
602
614
  position: strategy,
603
- top: y != null ? y : 0,
604
- left: x != null ? x : 0,
605
- zIndex: tokens.zIndexes.popover
615
+ top: y,
616
+ left: x,
617
+ zIndex: tokens.zIndexes.popover,
618
+ transition: showAnimations ? "top " + tokens.timings.medium + " ease-in-out" : 'unset'
606
619
  },
607
620
  ref: function ref(node) {
608
- floating(node);
621
+ refs.setFloating(node);
609
622
  }
610
623
  }, React.createElement(FocusLock, {
611
624
  disabled: !state.isOpen || useModal,
@@ -632,7 +645,7 @@ var DatePicker = function DatePicker(_ref) {
632
645
  }, React.createElement("div", _extends({}, groupProps, {
633
646
  ref: function ref(node) {
634
647
  datePickerRef.current = node;
635
- reference(node);
648
+ refs.setReference(node);
636
649
  },
637
650
  id: undefined,
638
651
  className: "eds-datepicker__datefield__wrapper"
@@ -657,7 +670,8 @@ var DatePicker = function DatePicker(_ref) {
657
670
  })
658
671
  })), !disabled && React.createElement(CalendarButton, _extends({}, buttonProps, {
659
672
  onPress: function onPress() {
660
- return state.setOpen(!state.isOpen);
673
+ state.setOpen(!state.isOpen);
674
+ update();
661
675
  },
662
676
  className: "eds-datepicker__open-calendar-button"
663
677
  }), React.createElement(icons.CalendarIcon, null)), useModal ? modalCalendar : popoverCalendar)));