@teamturing/react-kit 2.23.0 → 2.23.1

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.
package/dist/index.js CHANGED
@@ -20880,50 +20880,6 @@ const useFocusZone = (settings = {}, dependencies = []) => {
20880
20880
  };
20881
20881
  };
20882
20882
 
20883
- const useMousePosition = ({
20884
- targetRef,
20885
- resetOnExit = false
20886
- }) => {
20887
- const [position, setPosition] = React.useState({
20888
- x: 0,
20889
- y: 0
20890
- });
20891
- const ref = useProvidedOrCreatedRef(targetRef);
20892
- const setMousePosition = event => {
20893
- if (ref.current) {
20894
- const rect = event.currentTarget.getBoundingClientRect();
20895
- const x = Math.max(0, Math.round(event.pageX - rect.left - (window.pageXOffset || window.scrollX)));
20896
- const y = Math.max(0, Math.round(event.pageY - rect.top - (window.pageYOffset || window.scrollY)));
20897
- setPosition({
20898
- x,
20899
- y
20900
- });
20901
- } else {
20902
- setPosition({
20903
- x: event.clientX,
20904
- y: event.clientY
20905
- });
20906
- }
20907
- };
20908
- const resetMousePosition = () => setPosition({
20909
- x: 0,
20910
- y: 0
20911
- });
20912
- React.useEffect(() => {
20913
- const element = ref?.current ? ref.current : document;
20914
- element.addEventListener('mousemove', setMousePosition);
20915
- if (resetOnExit) element.addEventListener('mouseleave', resetMousePosition);
20916
- return () => {
20917
- element.removeEventListener('mousemove', setMousePosition);
20918
- if (resetOnExit) element.removeEventListener('mouseleave', resetMousePosition);
20919
- };
20920
- }, [ref.current]);
20921
- return {
20922
- ref,
20923
- ...position
20924
- };
20925
- };
20926
-
20927
20883
  const useToggleState = ({
20928
20884
  initialState = false
20929
20885
  }) => {
@@ -20965,12 +20921,6 @@ const OverlayPopper = ({
20965
20921
  const [isOpen, toggleOverlay, openOverlay, closeOverlay] = useToggleState({
20966
20922
  initialState: false
20967
20923
  });
20968
- const {
20969
- x,
20970
- y
20971
- } = useMousePosition({
20972
- targetRef: refs.floating
20973
- });
20974
20924
  const handleOverlayToggle = () => {
20975
20925
  if (!isOpen) onOpen?.();else onClose?.();
20976
20926
  toggleOverlay();
@@ -21003,11 +20953,7 @@ const OverlayPopper = ({
21003
20953
  }
21004
20954
  } : triggeredBy === 'hover' ? {
21005
20955
  onMouseEnter: handleOverlayOpen,
21006
- onMouseLeave: () => {
21007
- if (x === 0 && y === 0) {
21008
- delayedHandleOverlayClose();
21009
- }
21010
- }
20956
+ onMouseLeave: delayedHandleOverlayClose
21011
20957
  } : {}),
21012
20958
  ...{
21013
20959
  ref: refs.setReference
@@ -21039,9 +20985,7 @@ const OverlayPopper = ({
21039
20985
  style: {
21040
20986
  ...floatingStyles
21041
20987
  },
21042
- onDismiss: handleDismiss,
21043
- onMouseEnter: openOverlay,
21044
- onMouseLeave: delayedHandleOverlayClose
20988
+ onDismiss: handleDismiss
21045
20989
  }, {
21046
20990
  isOpen,
21047
20991
  closeOverlay: handleOverlayClose
@@ -26105,6 +26049,50 @@ const useHover = ({
26105
26049
  };
26106
26050
  };
26107
26051
 
26052
+ const useMousePosition = ({
26053
+ targetRef,
26054
+ resetOnExit = false
26055
+ }) => {
26056
+ const [position, setPosition] = React.useState({
26057
+ x: 0,
26058
+ y: 0
26059
+ });
26060
+ const ref = useProvidedOrCreatedRef(targetRef);
26061
+ const setMousePosition = event => {
26062
+ if (ref.current) {
26063
+ const rect = event.currentTarget.getBoundingClientRect();
26064
+ const x = Math.max(0, Math.round(event.pageX - rect.left - (window.pageXOffset || window.scrollX)));
26065
+ const y = Math.max(0, Math.round(event.pageY - rect.top - (window.pageYOffset || window.scrollY)));
26066
+ setPosition({
26067
+ x,
26068
+ y
26069
+ });
26070
+ } else {
26071
+ setPosition({
26072
+ x: event.clientX,
26073
+ y: event.clientY
26074
+ });
26075
+ }
26076
+ };
26077
+ const resetMousePosition = () => setPosition({
26078
+ x: 0,
26079
+ y: 0
26080
+ });
26081
+ React.useEffect(() => {
26082
+ const element = ref?.current ? ref.current : document;
26083
+ element.addEventListener('mousemove', setMousePosition);
26084
+ if (resetOnExit) element.addEventListener('mouseleave', resetMousePosition);
26085
+ return () => {
26086
+ element.removeEventListener('mousemove', setMousePosition);
26087
+ if (resetOnExit) element.removeEventListener('mouseleave', resetMousePosition);
26088
+ };
26089
+ }, [ref.current]);
26090
+ return {
26091
+ ref,
26092
+ ...position
26093
+ };
26094
+ };
26095
+
26108
26096
  /**
26109
26097
  * 특정 컴포넌트을 제외한 바깥쪽을 클릭했을 때를 핸들링하기 위한 훅입니다.
26110
26098
  */
@@ -5,7 +5,6 @@ import { useTheme } from 'styled-components';
5
5
  import useDelayedFunction from '../../hook/useDelayedFunction.js';
6
6
  import useFocusTrap from '../../hook/useFocusTrap.js';
7
7
  import useFocusZone from '../../hook/useFocusZone.js';
8
- import useMousePosition from '../../hook/useMousePosition.js';
9
8
  import useToggleState from '../../hook/useToggleState.js';
10
9
  import { j as jsxRuntimeExports } from '../../node_modules/react/jsx-runtime.js';
11
10
  import { autoUpdate } from '../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js';
@@ -36,12 +35,6 @@ const OverlayPopper = ({
36
35
  const [isOpen, toggleOverlay, openOverlay, closeOverlay] = useToggleState({
37
36
  initialState: false
38
37
  });
39
- const {
40
- x,
41
- y
42
- } = useMousePosition({
43
- targetRef: refs.floating
44
- });
45
38
  const handleOverlayToggle = () => {
46
39
  if (!isOpen) onOpen?.();else onClose?.();
47
40
  toggleOverlay();
@@ -74,11 +67,7 @@ const OverlayPopper = ({
74
67
  }
75
68
  } : triggeredBy === 'hover' ? {
76
69
  onMouseEnter: handleOverlayOpen,
77
- onMouseLeave: () => {
78
- if (x === 0 && y === 0) {
79
- delayedHandleOverlayClose();
80
- }
81
- }
70
+ onMouseLeave: delayedHandleOverlayClose
82
71
  } : {}),
83
72
  ...{
84
73
  ref: refs.setReference
@@ -110,9 +99,7 @@ const OverlayPopper = ({
110
99
  style: {
111
100
  ...floatingStyles
112
101
  },
113
- onDismiss: handleDismiss,
114
- onMouseEnter: openOverlay,
115
- onMouseLeave: delayedHandleOverlayClose
102
+ onDismiss: handleDismiss
116
103
  }, {
117
104
  isOpen,
118
105
  closeOverlay: handleOverlayClose
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teamturing/react-kit",
3
- "version": "2.23.0",
3
+ "version": "2.23.1",
4
4
  "description": "React components, hooks for create teamturing web application",
5
5
  "author": "Sungchang Park <psch300@gmail.com> (https://github.com/psch300)",
6
6
  "homepage": "https://github.com/weareteamturing/bombe#readme",
@@ -66,5 +66,5 @@
66
66
  "react-textarea-autosize": "^8.5.3",
67
67
  "styled-system": "^5.1.5"
68
68
  },
69
- "gitHead": "b1e684052cbf2fb69649fd93db8a1b76cca52ad7"
69
+ "gitHead": "5268a60ac707cb805ced97d347b7ab20de29b0f9"
70
70
  }