orc-shared 5.99.0-dev.4 → 5.99.0-dev.6

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.
@@ -0,0 +1,39 @@
1
+ import { useEffect, useState } from "react";
2
+
3
+ export const useWindowSize = () => {
4
+ const [windowSize, setWindowSize] = useState({
5
+ innerWidth: window.innerWidth,
6
+ innerHeight: window.innerHeight,
7
+ outerWidth: window.outerWidth,
8
+ outerHeight: window.outerHeight,
9
+ });
10
+
11
+ useEffect(() => {
12
+ const handleResize = () => {
13
+ const haveChanged =
14
+ windowSize.innerWidth !== window.innerWidth ||
15
+ windowSize.innerHeight !== window.innerHeight ||
16
+ windowSize.outerWidth !== window.outerWidth ||
17
+ windowSize.outerHeight !== window.outerHeight;
18
+
19
+ if (haveChanged) {
20
+ setWindowSize({
21
+ innerWidth: window.innerWidth,
22
+ innerHeight: window.innerHeight,
23
+ outerWidth: window.outerWidth,
24
+ outerHeight: window.outerHeight,
25
+ });
26
+ }
27
+ };
28
+
29
+ handleResize();
30
+
31
+ window.addEventListener("resize", handleResize);
32
+
33
+ return () => window.removeEventListener("resize", handleResize);
34
+ }, [windowSize]);
35
+
36
+ return windowSize;
37
+ };
38
+
39
+ export default useWindowSize;
@@ -0,0 +1,68 @@
1
+ import React from "react";
2
+ import useWindowSize from "./useWindowSize";
3
+ import { mount, unmount, act } from "unexpected-reaction";
4
+
5
+ let renderingCount = 0;
6
+
7
+ const TestComp = () => {
8
+ const windowSize = useWindowSize();
9
+
10
+ const allDimensions = `${windowSize.innerWidth},${windowSize.innerHeight},${windowSize.outerWidth},${windowSize.outerHeight},${++renderingCount}`;
11
+
12
+ return <div>{allDimensions}</div>;
13
+ };
14
+
15
+ function setViewport(width, height) {
16
+ Object.defineProperty(window, "innerWidth", { configurable: true, value: width });
17
+ Object.defineProperty(window, "innerHeight", { configurable: true, value: height });
18
+ Object.defineProperty(window, "outerWidth", { configurable: true, value: width + 20 });
19
+ Object.defineProperty(window, "outerHeight", { configurable: true, value: height + 25 });
20
+ }
21
+
22
+ describe("useWindowSize", () => {
23
+ let element = null;
24
+
25
+ beforeEach(() => {
26
+ renderingCount = 0;
27
+ setViewport(1440, 720);
28
+ window.dispatchEvent(new Event("resize"));
29
+ });
30
+
31
+ afterEach(() => {
32
+ if (element !== null) {
33
+ unmount(element);
34
+ }
35
+ });
36
+
37
+ it("display window dimensions properly after first render", () => {
38
+ element = mount(<TestComp />);
39
+
40
+ expect(element, "to satisfy", <div>1440,720,1460,745,1</div>);
41
+ });
42
+
43
+ it("display window dimensions properly after resize event", () => {
44
+ element = mount(<TestComp />);
45
+
46
+ expect(element, "to satisfy", <div>1440,720,1460,745,1</div>);
47
+
48
+ act(() => {
49
+ setViewport(843, 487);
50
+ window.dispatchEvent(new Event("resize"));
51
+ });
52
+
53
+ expect(element, "to satisfy", <div>843,487,863,512,2</div>);
54
+ });
55
+
56
+ it("display window dimensions properly after resize event with unchanged dimensions", () => {
57
+ element = mount(<TestComp />);
58
+
59
+ expect(element, "to satisfy", <div>1440,720,1460,745,1</div>);
60
+
61
+ act(() => {
62
+ setViewport(1440, 720);
63
+ window.dispatchEvent(new Event("resize"));
64
+ });
65
+
66
+ expect(element, "to satisfy", <div>1440,720,1460,745,1</div>);
67
+ });
68
+ });
@@ -483,6 +483,14 @@ const sharedMessages = defineMessages({
483
483
  id: "orc-shared.december",
484
484
  defaultMessage: "December",
485
485
  },
486
+ selectAll: {
487
+ id: "orc-shared.selectAll",
488
+ defaultMessage: "Select All",
489
+ },
490
+ clear: {
491
+ id: "orc-shared.clear",
492
+ defaultMessage: "Clear",
493
+ },
486
494
  });
487
495
 
488
496
  export default sharedMessages;
@@ -14,6 +14,7 @@
14
14
  "orc-shared.ccDescription": "The API-first commerce platform that makes omnichannel retail work.",
15
15
  "orc-shared.ccName": "Orckestra Commerce Cloud",
16
16
  "orc-shared.ccVersion": "Commerce Cloud {version}",
17
+ "orc-shared.clear": "Clear",
17
18
  "orc-shared.close": "Close",
18
19
  "orc-shared.confirmation": "Confirmation",
19
20
  "orc-shared.copyright": "© {year} Orckestra Technologies Inc.",
@@ -90,6 +91,7 @@
90
91
  "orc-shared.scopeChangeWithUnsavedDataTitle": "Confirm scope change without saving data",
91
92
  "orc-shared.scopeFilterPlaceholder": "Type a scope name",
92
93
  "orc-shared.search": "Search",
94
+ "orc-shared.selectAll": "Select All",
93
95
  "orc-shared.september": "September",
94
96
  "orc-shared.septemberShort": "Sep",
95
97
  "orc-shared.shared": "Shared",
@@ -14,6 +14,7 @@
14
14
  "orc-shared.ccDescription": "La plateforme de commerce « API-first » qui rend le commerce de détail omnicanal fluide.",
15
15
  "orc-shared.ccName": "Orckestra Commerce Cloud",
16
16
  "orc-shared.ccVersion": "Commerce Cloud {version}",
17
+ "orc-shared.clear": "Effacer",
17
18
  "orc-shared.close": "Fermer",
18
19
  "orc-shared.confirmation": "Confirmation",
19
20
  "orc-shared.copyright": "© {year} Technologies Orckestra Inc.",
@@ -90,6 +91,7 @@
90
91
  "orc-shared.scopeChangeWithUnsavedDataTitle": "Confirmation du changement de Scope sans sauvegarde",
91
92
  "orc-shared.scopeFilterPlaceholder": "Entrez un nom de Scope",
92
93
  "orc-shared.search": "Recherche",
94
+ "orc-shared.selectAll": "Tout sélectionner",
93
95
  "orc-shared.september": "septembre",
94
96
  "orc-shared.septemberShort": "sept.",
95
97
  "orc-shared.shared": "Partagé",