x-ui-design 0.8.66 → 0.8.68

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.
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
2
  import { PopoverProps } from "../../types/popover";
3
3
  import './style.css';
4
- declare const Popover: ({ prefixCls, content, children, trigger, placement, open, visible, title, style, overlayClassName, overlayStyle, listenPopoverPossitions, onVisibleChange, getPopupContainer }: PopoverProps) => React.JSX.Element;
4
+ declare const Popover: ({ prefixCls, content, children, trigger, placement, open, visible, title, style, overlayClassName, overlayStyle, listenPopoverPositions, placementPositionOffset, onVisibleChange, getPopupContainer }: PopoverProps) => React.JSX.Element;
5
5
  export default Popover;
@@ -7,9 +7,10 @@ type TPosition = {
7
7
  getPopupContainer?: HTMLElement;
8
8
  placement?: Placement;
9
9
  offset?: number;
10
- listenPopoverPossitions?: CSSProperties;
10
+ placementPositionOffset?: number;
11
+ listenPopoverPositions?: CSSProperties;
11
12
  };
12
- export declare const usePosition: ({ isOpen, offset, popupRef, placement, triggerRef, listenPopoverPossitions, getPopupContainer, }: TPosition) => {
13
+ export declare const usePosition: ({ isOpen, offset, popupRef, placement, triggerRef, listenPopoverPositions, getPopupContainer, placementPositionOffset }: TPosition) => {
13
14
  showPlacement: string;
14
15
  dropdownPosition: CSSProperties;
15
16
  };
@@ -10,7 +10,8 @@ export type PopoverProps = DefaultProps & {
10
10
  overlayClassName?: string;
11
11
  title?: string | ReactNode;
12
12
  visible?: boolean;
13
- listenPopoverPossitions?: CSSProperties;
13
+ listenPopoverPositions?: CSSProperties;
14
+ placementPositionOffset?: number;
14
15
  onVisibleChange?: ((open: boolean) => void) | undefined;
15
16
  getPopupContainer?: ((node: HTMLElement) => HTMLElement) | undefined;
16
17
  };
package/dist/index.esm.js CHANGED
@@ -2600,8 +2600,9 @@ const usePosition = ({
2600
2600
  popupRef,
2601
2601
  placement,
2602
2602
  triggerRef,
2603
- listenPopoverPossitions,
2604
- getPopupContainer
2603
+ listenPopoverPositions,
2604
+ getPopupContainer,
2605
+ placementPositionOffset = 1
2605
2606
  }) => {
2606
2607
  const [showPlacement, setShowPlacement] = useState('');
2607
2608
  const [_dropdownPosition, setDropdownPosition] = useState({});
@@ -2635,13 +2636,13 @@ const usePosition = ({
2635
2636
  setDropdownPosition({
2636
2637
  top: (_shouldShowAbove ? triggerRef.current.offsetTop - (popupRef.current?.offsetHeight || dropdownHeight) - offset * 2 : triggerRef.current.offsetTop + triggerRef.current?.offsetHeight) + offset,
2637
2638
  ...(hasRight ? {
2638
- left: triggerRef.current.offsetLeft + (triggerRef.current?.offsetWidth || 0) - (popupRef.current?.offsetWidth || 0)
2639
+ left: triggerRef.current.offsetLeft + (triggerRef.current?.offsetWidth || 0) - (popupRef.current?.offsetWidth || 0) / placementPositionOffset
2639
2640
  } : {
2640
2641
  left: triggerRef.current.offsetLeft
2641
2642
  })
2642
2643
  });
2643
2644
  }
2644
- }, [offset, popupRef, placement, triggerRef, getPopupContainer]);
2645
+ }, [offset, popupRef, placement, triggerRef, getPopupContainer, placementPositionOffset]);
2645
2646
  useEffect(() => {
2646
2647
  if (!isOpen) return;
2647
2648
  const _dropdownPosition = () => dropdownPosition();
@@ -2662,7 +2663,7 @@ const usePosition = ({
2662
2663
  return () => {
2663
2664
  controller.abort();
2664
2665
  };
2665
- }, [isOpen, listenPopoverPossitions, triggerRef, getPopupContainer, dropdownPosition]);
2666
+ }, [isOpen, listenPopoverPositions, triggerRef, getPopupContainer, dropdownPosition]);
2666
2667
  return {
2667
2668
  showPlacement,
2668
2669
  dropdownPosition: {
@@ -5507,7 +5508,8 @@ const Popover = ({
5507
5508
  style = {},
5508
5509
  overlayClassName = '',
5509
5510
  overlayStyle = {},
5510
- listenPopoverPossitions,
5511
+ listenPopoverPositions,
5512
+ placementPositionOffset,
5511
5513
  onVisibleChange,
5512
5514
  getPopupContainer
5513
5515
  }) => {
@@ -5524,7 +5526,8 @@ const Popover = ({
5524
5526
  popupRef,
5525
5527
  placement,
5526
5528
  triggerRef,
5527
- listenPopoverPossitions,
5529
+ listenPopoverPositions,
5530
+ placementPositionOffset,
5528
5531
  getPopupContainer: getPopupContainer?.(triggerRef.current)
5529
5532
  });
5530
5533
  useEffect(() => {
@@ -5559,12 +5562,15 @@ const Popover = ({
5559
5562
  setInnerOpen(false);
5560
5563
  }
5561
5564
  }, [triggers]);
5562
- const childProps = useMemo(() => triggers.includes("click") ? {
5563
- onClick: handleOnClick
5564
- } : {
5565
- onMouseEnter: handleOnMouseEnter,
5566
- onMouseLeave: handleOnMouseLeave
5567
- }, [triggers]);
5565
+ const childProps = useMemo(() => ({
5566
+ ...(triggers.includes("click") ? {
5567
+ onClick: handleOnClick
5568
+ } : {}),
5569
+ ...(triggers.includes("hover") ? {
5570
+ onMouseEnter: handleOnMouseEnter,
5571
+ onMouseLeave: handleOnMouseLeave
5572
+ } : {})
5573
+ }), [triggers]);
5568
5574
  const _children = useMemo(() => {
5569
5575
  if (Children.count(children) > 1) {
5570
5576
  children = /*#__PURE__*/React.createElement("div", null, children);
@@ -5583,7 +5589,7 @@ const Popover = ({
5583
5589
  }
5584
5590
  });
5585
5591
  });
5586
- }, [children, style, childProps]);
5592
+ }, [children, style]);
5587
5593
  return /*#__PURE__*/React.createElement(React.Fragment, null, _children, isOpen && /*#__PURE__*/React.createElement(ConditionalWrapper, {
5588
5594
  condition: !!getPopupContainer,
5589
5595
  wrapper: element => getPopupContainer ? /*#__PURE__*/createPortal(element, getPopupContainer(triggerRef.current)) : /*#__PURE__*/React.createElement(React.Fragment, null, element)