All files / src/datepicker util.ts

36.36% Statements 4/11
0% Branches 0/4
25% Functions 1/4
36.36% Lines 4/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43                        3x               36x   36x           36x                            
import { Moment } from "moment";
import { useOutsideClick } from "../_util/use-outside-click";
import { TriggerProps } from "../popover/trigger";
 
export function getYearMonthDate(date: Moment) {
  return {
    year: date.year(),
    month: date.month(),
    date: date.date(),
  };
}
 
export const DatePickerTrigger = ({
  childrenElementRef,
  overlayElementRef,
  visible,
  render,
  onOpen,
  onClose,
}: TriggerProps & { onOpen: () => void; onClose: () => void }) => {
  const { listen } = useOutsideClick([childrenElementRef, overlayElementRef]);
 
  listen(() => {
    if (visible) {
      onClose();
    }
  });
 
  return render({
    overlayProps: {},
    childrenProps: {
      onClick: (event: React.MouseEvent) => {
        event.stopPropagation();
        if (!visible) {
          onOpen();
        } else {
          onClose();
        }
      },
    },
  });
};