@jobber/components 6.111.4 → 6.111.5

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.
@@ -41,5 +41,16 @@ interface LightBoxProps {
41
41
  */
42
42
  readonly boxSizing?: CSSProperties["boxSizing"];
43
43
  }
44
+ export declare const slideVariants: {
45
+ enter: (directionRef: React.RefObject<number>) => {
46
+ x: string;
47
+ };
48
+ center: {
49
+ x: number;
50
+ };
51
+ exit: (directionRef: React.RefObject<number>) => {
52
+ x: string;
53
+ };
54
+ };
44
55
  export declare function LightBox({ boxSizing, open, images, imageIndex, onRequestClose, }: LightBoxProps): React.JSX.Element;
45
56
  export {};
@@ -17,20 +17,16 @@ const swipeConfidenceThreshold = 10000;
17
17
  const swipePower = (offset, velocity) => {
18
18
  return Math.abs(offset) * velocity;
19
19
  };
20
- const variants = {
21
- enter: (direction) => {
22
- return {
23
- x: direction > 0 ? "150%" : "-150%",
24
- };
25
- },
20
+ const slideVariants = {
21
+ enter: (directionRef) => ({
22
+ x: directionRef.current > 0 ? "150%" : "-150%",
23
+ }),
26
24
  center: {
27
25
  x: 0,
28
26
  },
29
- exit: (direction) => {
30
- return {
31
- x: direction < 0 ? "150%" : "-150%",
32
- };
33
- },
27
+ exit: (directionRef) => ({
28
+ x: directionRef.current < 0 ? "150%" : "-150%",
29
+ }),
34
30
  };
35
31
  const imageTransition = {
36
32
  x: { duration: 0.65, ease: [0.42, 0, 0, 1.03] },
@@ -42,7 +38,7 @@ const BUTTON_DEBOUNCE_DELAY = 250;
42
38
  const MOVEMENT_DEBOUNCE_DELAY = 1000;
43
39
  function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onRequestClose, }) {
44
40
  const [currentImageIndex, setCurrentImageIndex] = React.useState(imageIndex);
45
- const [direction, setDirection] = React.useState(0);
41
+ const directionRef = React.useRef(0);
46
42
  const [mouseIsStationary, setMouseIsStationary] = React.useState(true);
47
43
  const lightboxRef = jobberHooks.useFocusTrap(open);
48
44
  const selectedThumbnailRef = React.useRef(null);
@@ -94,7 +90,7 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
94
90
  React.createElement(ButtonDismiss.ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })))),
95
91
  React.createElement("div", { className: styles.imageArea },
96
92
  React.createElement(framerMotion.AnimatePresence, { initial: false },
97
- React.createElement(framerMotion.motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: styles.image, initial: "enter", alt: images[currentImageIndex].alt ||
93
+ React.createElement(framerMotion.motion.img, { key: currentImageIndex, variants: slideVariants, src: images[currentImageIndex].url, custom: directionRef, className: styles.image, initial: "enter", alt: images[currentImageIndex].alt ||
98
94
  images[currentImageIndex].title ||
99
95
  "", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
100
96
  images.length > 1 && (React.createElement(React.Fragment, null,
@@ -116,11 +112,11 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
116
112
  ? ReactDOM.createPortal(template, document.body)
117
113
  : template;
118
114
  function handleMovePrevious() {
119
- setDirection(-1);
115
+ directionRef.current = -1;
120
116
  setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
121
117
  }
122
118
  function handleMoveNext() {
123
- setDirection(1);
119
+ directionRef.current = 1;
124
120
  setCurrentImageIndex((currentImageIndex + 1) % images.length);
125
121
  }
126
122
  function handleRequestClose() {
@@ -137,10 +133,10 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
137
133
  }
138
134
  function handleThumbnailClick(index) {
139
135
  if (index < currentImageIndex) {
140
- setDirection(-1);
136
+ directionRef.current = -1;
141
137
  }
142
138
  else {
143
- setDirection(1);
139
+ directionRef.current = 1;
144
140
  }
145
141
  setCurrentImageIndex(index);
146
142
  }
@@ -15,20 +15,16 @@ const swipeConfidenceThreshold = 10000;
15
15
  const swipePower = (offset, velocity) => {
16
16
  return Math.abs(offset) * velocity;
17
17
  };
18
- const variants = {
19
- enter: (direction) => {
20
- return {
21
- x: direction > 0 ? "150%" : "-150%",
22
- };
23
- },
18
+ const slideVariants = {
19
+ enter: (directionRef) => ({
20
+ x: directionRef.current > 0 ? "150%" : "-150%",
21
+ }),
24
22
  center: {
25
23
  x: 0,
26
24
  },
27
- exit: (direction) => {
28
- return {
29
- x: direction < 0 ? "150%" : "-150%",
30
- };
31
- },
25
+ exit: (directionRef) => ({
26
+ x: directionRef.current < 0 ? "150%" : "-150%",
27
+ }),
32
28
  };
33
29
  const imageTransition = {
34
30
  x: { duration: 0.65, ease: [0.42, 0, 0, 1.03] },
@@ -40,7 +36,7 @@ const BUTTON_DEBOUNCE_DELAY = 250;
40
36
  const MOVEMENT_DEBOUNCE_DELAY = 1000;
41
37
  function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onRequestClose, }) {
42
38
  const [currentImageIndex, setCurrentImageIndex] = useState(imageIndex);
43
- const [direction, setDirection] = useState(0);
39
+ const directionRef = useRef(0);
44
40
  const [mouseIsStationary, setMouseIsStationary] = useState(true);
45
41
  const lightboxRef = useFocusTrap(open);
46
42
  const selectedThumbnailRef = useRef(null);
@@ -92,7 +88,7 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
92
88
  React__default.createElement(ButtonDismiss, { ariaLabel: "Close", onClick: handleRequestClose })))),
93
89
  React__default.createElement("div", { className: styles.imageArea },
94
90
  React__default.createElement(AnimatePresence, { initial: false },
95
- React__default.createElement(motion.img, { key: currentImageIndex, variants: variants, src: images[currentImageIndex].url, custom: direction, className: styles.image, initial: "enter", alt: images[currentImageIndex].alt ||
91
+ React__default.createElement(motion.img, { key: currentImageIndex, variants: slideVariants, src: images[currentImageIndex].url, custom: directionRef, className: styles.image, initial: "enter", alt: images[currentImageIndex].alt ||
96
92
  images[currentImageIndex].title ||
97
93
  "", animate: "center", exit: "exit", transition: imageTransition, drag: "x", dragConstraints: { left: 0, right: 0 }, dragElastic: 1, onDragEnd: handleOnDragEnd }))),
98
94
  images.length > 1 && (React__default.createElement(React__default.Fragment, null,
@@ -114,11 +110,11 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
114
110
  ? ReactDOM__default.createPortal(template, document.body)
115
111
  : template;
116
112
  function handleMovePrevious() {
117
- setDirection(-1);
113
+ directionRef.current = -1;
118
114
  setCurrentImageIndex((currentImageIndex + images.length - 1) % images.length);
119
115
  }
120
116
  function handleMoveNext() {
121
- setDirection(1);
117
+ directionRef.current = 1;
122
118
  setCurrentImageIndex((currentImageIndex + 1) % images.length);
123
119
  }
124
120
  function handleRequestClose() {
@@ -135,10 +131,10 @@ function LightBox({ boxSizing = "content-box", open, images, imageIndex = 0, onR
135
131
  }
136
132
  function handleThumbnailClick(index) {
137
133
  if (index < currentImageIndex) {
138
- setDirection(-1);
134
+ directionRef.current = -1;
139
135
  }
140
136
  else {
141
- setDirection(1);
137
+ directionRef.current = 1;
142
138
  }
143
139
  setCurrentImageIndex(index);
144
140
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jobber/components",
3
- "version": "6.111.4",
3
+ "version": "6.111.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -538,5 +538,5 @@
538
538
  "> 1%",
539
539
  "IE 10"
540
540
  ],
541
- "gitHead": "7f1df502111c69f3371131ca2e2d3ff2ee5cb1af"
541
+ "gitHead": "74ad056f656ebfec2d55cc1f52703abbd8aaaecc"
542
542
  }