@simplybusiness/mobius 3.4.0 → 3.4.2
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/CHANGELOG.md +15 -0
- package/dist/cjs/components/Chopin/Question/Question.d.ts +2 -1
- package/dist/cjs/components/Chopin/Question/Question.js +6 -3
- package/dist/cjs/components/Chopin/Question/Question.js.map +1 -1
- package/dist/cjs/components/Chopin/Question/Question.test.js +16 -4
- package/dist/cjs/components/Chopin/Question/Question.test.js.map +1 -1
- package/dist/esm/components/Chopin/Question/Question.js +7 -4
- package/dist/esm/components/Chopin/Question/Question.js.map +1 -1
- package/dist/esm/components/Chopin/Question/Question.test.js +16 -4
- package/dist/esm/components/Chopin/Question/Question.test.js.map +1 -1
- package/dist/mobius.d.ts +2 -1
- package/package.json +1 -1
- package/src/components/Chopin/Question/Question.test.tsx +32 -7
- package/src/components/Chopin/Question/Question.tsx +13 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file, or link in
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.4.2] - 2023-03-27
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add onChange prop to `<Question>` for when help text is shown/hidden. This is to enable Snowplow analytics events to be attached
|
|
13
|
+
|
|
14
|
+
## [3.4.1] - 2023-03-23
|
|
15
|
+
|
|
16
|
+
## Fixed
|
|
17
|
+
|
|
18
|
+
- Fix an issue where disabled button ghost variant would change colour on click
|
|
19
|
+
- Replace 301 Moved Permanently with 307 Temporary Redirect for homepage
|
|
20
|
+
|
|
8
21
|
## [3.4.0] - 2023-03-06
|
|
9
22
|
|
|
10
23
|
### Added
|
|
@@ -188,6 +201,8 @@ Additionally, mobius and themes are available on the public NPM registry and can
|
|
|
188
201
|
|
|
189
202
|
## Github Links
|
|
190
203
|
|
|
204
|
+
[3.4.2]: https://github.com/simplybusiness/mobius/releases/tag/v3.4.2
|
|
205
|
+
[3.4.1]: https://github.com/simplybusiness/mobius/releases/tag/v3.4.1
|
|
191
206
|
[3.4.0]: https://github.com/simplybusiness/mobius/releases/tag/v3.4.0
|
|
192
207
|
[3.3.2]: https://github.com/simplybusiness/mobius/releases/tag/v3.3.2
|
|
193
208
|
[3.3.1]: https://github.com/simplybusiness/mobius/releases/tag/v3.3.1
|
|
@@ -8,5 +8,6 @@ export interface QuestionProps {
|
|
|
8
8
|
help?: ReactNode;
|
|
9
9
|
className?: string;
|
|
10
10
|
closeHelpOnOutsideClick?: boolean;
|
|
11
|
+
onChange?: () => void;
|
|
11
12
|
}
|
|
12
|
-
export declare function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, }: QuestionProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
13
|
+
export declare function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, onChange, }: QuestionProps): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -12,7 +12,7 @@ const hooks_1 = require("../../../hooks");
|
|
|
12
12
|
const Label_1 = require("../../Label");
|
|
13
13
|
const Text_1 = require("../../Text");
|
|
14
14
|
const QuestionHelp_1 = require("../QuestionHelp/QuestionHelp");
|
|
15
|
-
function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, }) {
|
|
15
|
+
function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, onChange, }) {
|
|
16
16
|
const [isOpen, setIsOpen] = (0, react_1.useState)(false);
|
|
17
17
|
const labelId = (0, utils_1.useId)();
|
|
18
18
|
const descriptionId = (0, utils_1.useId)();
|
|
@@ -22,9 +22,12 @@ function Question({ label, description, children, errorMessage, validationState,
|
|
|
22
22
|
const classes = (0, clsx_1.default)("chopin", "chopin/Question", {
|
|
23
23
|
"--has-help-open": isOpen,
|
|
24
24
|
}, isDesktop ? "--is-desktop" : "", className);
|
|
25
|
-
const handleChange = (state) => {
|
|
25
|
+
const handleChange = (0, react_1.useCallback)((state) => {
|
|
26
26
|
setIsOpen(state);
|
|
27
|
-
|
|
27
|
+
if (onChange) {
|
|
28
|
+
onChange();
|
|
29
|
+
}
|
|
30
|
+
}, [onChange]);
|
|
28
31
|
// Allow for rich html descriptions
|
|
29
32
|
const DescriptionComponent = (0, react_1.isValidElement)(description) ? "div" : Text_1.Text;
|
|
30
33
|
const labelClasses = (0, clsx_1.default)("chopin/QuestionLabel", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.tsx"],"names":[],"mappings":";;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.tsx"],"names":[],"mappings":";;;;;;;AAAA,iCAQe;AACf,gDAAwB;AACxB,6CAA0C;AAC1C,0CAA+C;AAC/C,uCAAoC;AACpC,qCAAkC;AAClC,+DAA4D;AAc5D,SAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,QAAQ,GACM;IACd,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAA,aAAK,GAAE,CAAC;IACxB,MAAM,aAAa,GAAG,IAAA,aAAK,GAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,IAAA,aAAK,GAAE,CAAC;IACxB,MAAM,EAAE,EAAE,EAAE,GAAG,IAAA,qBAAa,GAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,OAAO,GAAG,IAAA,cAAI,EAClB,QAAQ,EACR,iBAAiB,EACjB;QACE,iBAAiB,EAAE,MAAM;KAC1B,EACD,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAC/B,SAAS,CACV,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,mBAAW,EAC9B,CAAC,KAAc,EAAE,EAAE;QACjB,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjB,IAAI,QAAQ,EAAE;YACZ,QAAQ,EAAE,CAAC;SACZ;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,IAAA,sBAAc,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAI,CAAC;IAExE,MAAM,YAAY,GAAG,IAAA,cAAI,EAAC,sBAAsB,EAAE;QAChD,YAAY,EAAE,eAAe,KAAK,OAAO;QACzC,cAAc,EAAE,eAAe,KAAK,SAAS;KAC9C,CAAC,CAAC;IAEH,OAAO,CACL,+CAAK,SAAS,EAAE,OAAO,iBACrB,uBAAC,aAAK,kBACJ,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACxC,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,YAAY,gBAEtB,KAAK,IACA,EACP,IAAI,IAAI,CACP,uBAAC,2BAAY,kBACX,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,uBAAuB,gBAE/C,IAAI,IACQ,CAChB,EACA,WAAW,IAAI,CACd,uBAAC,oBAAoB,kBACnB,EAAE,EAAE,aAAa,EACjB,SAAS,EAAC,4BAA4B,gBAErC,WAAW,IACS,CACxB,EACA,gBAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAC9B,IAAA,sBAAc,EAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,IAAA,oBAAY,EAAC,KAAK,EAAE;oBAClB,YAAY;oBACZ,eAAe;oBACf,EAAE,EAAE,OAAO;oBACX,iBAAiB,EAAE,OAAO;oBAC1B,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBACrD,CAAC;gBACX,CAAC,CAAC,KAAK,CACV,KACG,CACP,CAAC;AACJ,CAAC;AAvFD,4BAuFC"}
|
|
@@ -64,35 +64,47 @@ describe("Question", () => {
|
|
|
64
64
|
});
|
|
65
65
|
describe("Help", () => {
|
|
66
66
|
it("should be mouse accessible", async () => {
|
|
67
|
-
|
|
67
|
+
const onChange = jest.fn();
|
|
68
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(_1.Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: (0, jsx_runtime_1.jsx)(TextField_1.TextField, {}) })));
|
|
68
69
|
await user_event_1.default.click(react_1.screen.getByRole("button", { name: "Open Help" }));
|
|
70
|
+
expect(onChange).toHaveBeenCalled();
|
|
69
71
|
expect(react_1.screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
70
72
|
await user_event_1.default.click(react_1.screen.getByRole("button", { name: "Close Help" }));
|
|
73
|
+
expect(onChange).toHaveBeenCalled();
|
|
71
74
|
expect(react_1.screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
72
75
|
});
|
|
73
76
|
it("should be keyboard accessible", async () => {
|
|
74
|
-
|
|
77
|
+
const onChange = jest.fn();
|
|
78
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(_1.Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: (0, jsx_runtime_1.jsx)(TextField_1.TextField, {}) })));
|
|
75
79
|
await user_event_1.default.tab();
|
|
76
80
|
await user_event_1.default.keyboard("{enter}");
|
|
81
|
+
expect(onChange).toHaveBeenCalled();
|
|
77
82
|
expect(react_1.screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
78
83
|
await user_event_1.default.keyboard("{enter}");
|
|
84
|
+
expect(onChange).toHaveBeenCalled();
|
|
79
85
|
expect(react_1.screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
80
86
|
});
|
|
81
87
|
it("should close on escape key", async () => {
|
|
82
|
-
|
|
88
|
+
const onChange = jest.fn();
|
|
89
|
+
(0, react_1.render)((0, jsx_runtime_1.jsx)(_1.Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: (0, jsx_runtime_1.jsx)(TextField_1.TextField, {}) })));
|
|
83
90
|
await user_event_1.default.tab();
|
|
84
91
|
await user_event_1.default.keyboard("{enter}");
|
|
92
|
+
expect(onChange).toHaveBeenCalled();
|
|
85
93
|
expect(react_1.screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
86
94
|
await user_event_1.default.keyboard("{escape}");
|
|
95
|
+
expect(onChange).toHaveBeenCalled();
|
|
87
96
|
expect(react_1.screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
88
97
|
});
|
|
89
98
|
describe("given closeHelpOnOutsideClick is set to true", () => {
|
|
90
99
|
it("should close on outside click", async () => {
|
|
91
|
-
const
|
|
100
|
+
const onChange = jest.fn();
|
|
101
|
+
const { container } = (0, react_1.render)((0, jsx_runtime_1.jsx)(_1.Question, Object.assign({ label: "Question", help: "This is a help message", closeHelpOnOutsideClick: true, onChange: onChange }, { children: (0, jsx_runtime_1.jsx)(TextField_1.TextField, {}) })));
|
|
92
102
|
const toggle = react_1.screen.getByRole("button");
|
|
93
103
|
await user_event_1.default.click(toggle);
|
|
104
|
+
expect(onChange).toHaveBeenCalled();
|
|
94
105
|
expect(toggle.parentElement).toHaveClass(OPEN_CLASS_NAME);
|
|
95
106
|
await user_event_1.default.click(container);
|
|
107
|
+
expect(onChange).toHaveBeenCalled();
|
|
96
108
|
expect(toggle.parentElement).toHaveClass(CLOSED_CLASS_NAME);
|
|
97
109
|
});
|
|
98
110
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Question.test.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Question.test.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
2
|
-
import { Children, cloneElement, isValidElement, useState, } from "react";
|
|
2
|
+
import { Children, cloneElement, isValidElement, useState, useCallback, } from "react";
|
|
3
3
|
import clsx from "clsx";
|
|
4
4
|
import { useId } from "@react-aria/utils";
|
|
5
5
|
import { useBreakpoint } from "../../../hooks";
|
|
6
6
|
import { Label } from "../../Label";
|
|
7
7
|
import { Text } from "../../Text";
|
|
8
8
|
import { QuestionHelp } from "../QuestionHelp/QuestionHelp";
|
|
9
|
-
export function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, }) {
|
|
9
|
+
export function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, onChange, }) {
|
|
10
10
|
const [isOpen, setIsOpen] = useState(false);
|
|
11
11
|
const labelId = useId();
|
|
12
12
|
const descriptionId = useId();
|
|
@@ -16,9 +16,12 @@ export function Question({ label, description, children, errorMessage, validatio
|
|
|
16
16
|
const classes = clsx("chopin", "chopin/Question", {
|
|
17
17
|
"--has-help-open": isOpen,
|
|
18
18
|
}, isDesktop ? "--is-desktop" : "", className);
|
|
19
|
-
const handleChange = (state) => {
|
|
19
|
+
const handleChange = useCallback((state) => {
|
|
20
20
|
setIsOpen(state);
|
|
21
|
-
|
|
21
|
+
if (onChange) {
|
|
22
|
+
onChange();
|
|
23
|
+
}
|
|
24
|
+
}, [onChange]);
|
|
22
25
|
// Allow for rich html descriptions
|
|
23
26
|
const DescriptionComponent = isValidElement(description) ? "div" : Text;
|
|
24
27
|
const labelClasses = clsx("chopin/QuestionLabel", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,QAAQ,
|
|
1
|
+
{"version":3,"file":"Question.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,QAAQ,EAER,WAAW,GACZ,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAc5D,MAAM,UAAU,QAAQ,CAAC,EACvB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,SAAS,EACT,uBAAuB,EACvB,QAAQ,GACM;IACd,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,aAAa,GAAG,KAAK,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,KAAK,EAAE,CAAC;IACxB,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,EAAE,CAAC;IAC/B,MAAM,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,OAAO,GAAG,IAAI,CAClB,QAAQ,EACR,iBAAiB,EACjB;QACE,iBAAiB,EAAE,MAAM;KAC1B,EACD,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAC/B,SAAS,CACV,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,KAAc,EAAE,EAAE;QACjB,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjB,IAAI,QAAQ,EAAE;YACZ,QAAQ,EAAE,CAAC;SACZ;IACH,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAExE,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,EAAE;QAChD,YAAY,EAAE,eAAe,KAAK,OAAO;QACzC,cAAc,EAAE,eAAe,KAAK,SAAS;KAC9C,CAAC,CAAC;IAEH,OAAO,CACL,6BAAK,SAAS,EAAE,OAAO,iBACrB,KAAC,KAAK,kBACJ,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACxC,OAAO,EAAE,OAAO,EAChB,EAAE,EAAE,OAAO,EACX,SAAS,EAAE,YAAY,gBAEtB,KAAK,IACA,EACP,IAAI,IAAI,CACP,KAAC,YAAY,kBACX,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,uBAAuB,gBAE/C,IAAI,IACQ,CAChB,EACA,WAAW,IAAI,CACd,KAAC,oBAAoB,kBACnB,EAAE,EAAE,aAAa,EACjB,SAAS,EAAC,4BAA4B,gBAErC,WAAW,IACS,CACxB,EACA,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAC9B,cAAc,CAAC,KAAK,CAAC;gBACnB,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE;oBAClB,YAAY;oBACZ,eAAe;oBACf,EAAE,EAAE,OAAO;oBACX,iBAAiB,EAAE,OAAO;oBAC1B,kBAAkB,EAAE,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;iBACrD,CAAC;gBACX,CAAC,CAAC,KAAK,CACV,KACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -59,35 +59,47 @@ describe("Question", () => {
|
|
|
59
59
|
});
|
|
60
60
|
describe("Help", () => {
|
|
61
61
|
it("should be mouse accessible", async () => {
|
|
62
|
-
|
|
62
|
+
const onChange = jest.fn();
|
|
63
|
+
render(_jsx(Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: _jsx(TextField, {}) })));
|
|
63
64
|
await userEvent.click(screen.getByRole("button", { name: "Open Help" }));
|
|
65
|
+
expect(onChange).toHaveBeenCalled();
|
|
64
66
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
65
67
|
await userEvent.click(screen.getByRole("button", { name: "Close Help" }));
|
|
68
|
+
expect(onChange).toHaveBeenCalled();
|
|
66
69
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
67
70
|
});
|
|
68
71
|
it("should be keyboard accessible", async () => {
|
|
69
|
-
|
|
72
|
+
const onChange = jest.fn();
|
|
73
|
+
render(_jsx(Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: _jsx(TextField, {}) })));
|
|
70
74
|
await userEvent.tab();
|
|
71
75
|
await userEvent.keyboard("{enter}");
|
|
76
|
+
expect(onChange).toHaveBeenCalled();
|
|
72
77
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
73
78
|
await userEvent.keyboard("{enter}");
|
|
79
|
+
expect(onChange).toHaveBeenCalled();
|
|
74
80
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
75
81
|
});
|
|
76
82
|
it("should close on escape key", async () => {
|
|
77
|
-
|
|
83
|
+
const onChange = jest.fn();
|
|
84
|
+
render(_jsx(Question, Object.assign({ label: "Question", help: "This is a help message", onChange: onChange }, { children: _jsx(TextField, {}) })));
|
|
78
85
|
await userEvent.tab();
|
|
79
86
|
await userEvent.keyboard("{enter}");
|
|
87
|
+
expect(onChange).toHaveBeenCalled();
|
|
80
88
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
81
89
|
await userEvent.keyboard("{escape}");
|
|
90
|
+
expect(onChange).toHaveBeenCalled();
|
|
82
91
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
83
92
|
});
|
|
84
93
|
describe("given closeHelpOnOutsideClick is set to true", () => {
|
|
85
94
|
it("should close on outside click", async () => {
|
|
86
|
-
const
|
|
95
|
+
const onChange = jest.fn();
|
|
96
|
+
const { container } = render(_jsx(Question, Object.assign({ label: "Question", help: "This is a help message", closeHelpOnOutsideClick: true, onChange: onChange }, { children: _jsx(TextField, {}) })));
|
|
87
97
|
const toggle = screen.getByRole("button");
|
|
88
98
|
await userEvent.click(toggle);
|
|
99
|
+
expect(onChange).toHaveBeenCalled();
|
|
89
100
|
expect(toggle.parentElement).toHaveClass(OPEN_CLASS_NAME);
|
|
90
101
|
await userEvent.click(container);
|
|
102
|
+
expect(onChange).toHaveBeenCalled();
|
|
91
103
|
expect(toggle.parentElement).toHaveClass(CLOSED_CLASS_NAME);
|
|
92
104
|
});
|
|
93
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Question.test.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.test.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Question.test.js","sourceRoot":"","sources":["../../../../../src/components/Chopin/Question/Question.test.tsx"],"names":[],"mappings":"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"}
|
package/dist/mobius.d.ts
CHANGED
|
@@ -795,7 +795,7 @@ export declare interface ProgressProps extends AriaProgressBarProps, DOMProps, R
|
|
|
795
795
|
|
|
796
796
|
export declare type ProgressRef = Ref<ProgressElementType>;
|
|
797
797
|
|
|
798
|
-
declare function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, }: QuestionProps): JSX_2.Element;
|
|
798
|
+
declare function Question({ label, description, children, errorMessage, validationState, help, className, closeHelpOnOutsideClick, onChange, }: QuestionProps): JSX_2.Element;
|
|
799
799
|
|
|
800
800
|
declare const QuestionGroup: ForwardedRefComponent<QuestionGroupProps, QuestionGroupElementType>;
|
|
801
801
|
|
|
@@ -821,6 +821,7 @@ declare interface QuestionProps {
|
|
|
821
821
|
help?: ReactNode;
|
|
822
822
|
className?: string;
|
|
823
823
|
closeHelpOnOutsideClick?: boolean;
|
|
824
|
+
onChange?: () => void;
|
|
824
825
|
}
|
|
825
826
|
|
|
826
827
|
export declare const Radio: ForwardedRefComponent<RadioProps, RadioElementType>;
|
package/package.json
CHANGED
|
@@ -136,50 +136,77 @@ describe("Question", () => {
|
|
|
136
136
|
|
|
137
137
|
describe("Help", () => {
|
|
138
138
|
it("should be mouse accessible", async () => {
|
|
139
|
+
const onChange = jest.fn();
|
|
140
|
+
|
|
139
141
|
render(
|
|
140
|
-
<Question
|
|
142
|
+
<Question
|
|
143
|
+
label="Question"
|
|
144
|
+
help="This is a help message"
|
|
145
|
+
onChange={onChange}
|
|
146
|
+
>
|
|
141
147
|
<TextField />
|
|
142
148
|
</Question>,
|
|
143
149
|
);
|
|
144
150
|
await userEvent.click(screen.getByRole("button", { name: "Open Help" }));
|
|
151
|
+
expect(onChange).toHaveBeenCalled();
|
|
145
152
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
146
153
|
await userEvent.click(screen.getByRole("button", { name: "Close Help" }));
|
|
154
|
+
expect(onChange).toHaveBeenCalled();
|
|
147
155
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
148
156
|
});
|
|
149
157
|
|
|
150
158
|
it("should be keyboard accessible", async () => {
|
|
159
|
+
const onChange = jest.fn();
|
|
160
|
+
|
|
151
161
|
render(
|
|
152
|
-
<Question
|
|
162
|
+
<Question
|
|
163
|
+
label="Question"
|
|
164
|
+
help="This is a help message"
|
|
165
|
+
onChange={onChange}
|
|
166
|
+
>
|
|
153
167
|
<TextField />
|
|
154
168
|
</Question>,
|
|
155
169
|
);
|
|
156
170
|
await userEvent.tab();
|
|
157
171
|
await userEvent.keyboard("{enter}");
|
|
172
|
+
expect(onChange).toHaveBeenCalled();
|
|
158
173
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
159
174
|
await userEvent.keyboard("{enter}");
|
|
175
|
+
expect(onChange).toHaveBeenCalled();
|
|
160
176
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
161
177
|
});
|
|
162
178
|
|
|
163
179
|
it("should close on escape key", async () => {
|
|
180
|
+
const onChange = jest.fn();
|
|
181
|
+
|
|
164
182
|
render(
|
|
165
|
-
<Question
|
|
183
|
+
<Question
|
|
184
|
+
label="Question"
|
|
185
|
+
help="This is a help message"
|
|
186
|
+
onChange={onChange}
|
|
187
|
+
>
|
|
166
188
|
<TextField />
|
|
167
189
|
</Question>,
|
|
168
190
|
);
|
|
169
191
|
await userEvent.tab();
|
|
170
192
|
await userEvent.keyboard("{enter}");
|
|
193
|
+
expect(onChange).toHaveBeenCalled();
|
|
171
194
|
expect(screen.queryByRole("tooltip")).toBeInTheDocument();
|
|
172
195
|
await userEvent.keyboard("{escape}");
|
|
196
|
+
expect(onChange).toHaveBeenCalled();
|
|
173
197
|
expect(screen.queryByRole("tooltip")).not.toBeInTheDocument();
|
|
174
198
|
});
|
|
175
199
|
|
|
176
200
|
describe("given closeHelpOnOutsideClick is set to true", () => {
|
|
177
201
|
it("should close on outside click", async () => {
|
|
202
|
+
const onChange = jest.fn();
|
|
203
|
+
|
|
178
204
|
const { container } = render(
|
|
179
205
|
<Question
|
|
180
206
|
label="Question"
|
|
181
207
|
help="This is a help message"
|
|
182
208
|
closeHelpOnOutsideClick
|
|
209
|
+
onChange={onChange}
|
|
183
210
|
>
|
|
184
211
|
<TextField />
|
|
185
212
|
</Question>,
|
|
@@ -188,11 +215,11 @@ describe("Question", () => {
|
|
|
188
215
|
const toggle = screen.getByRole("button");
|
|
189
216
|
|
|
190
217
|
await userEvent.click(toggle);
|
|
191
|
-
|
|
218
|
+
expect(onChange).toHaveBeenCalled();
|
|
192
219
|
expect(toggle.parentElement).toHaveClass(OPEN_CLASS_NAME);
|
|
193
220
|
|
|
194
221
|
await userEvent.click(container);
|
|
195
|
-
|
|
222
|
+
expect(onChange).toHaveBeenCalled();
|
|
196
223
|
expect(toggle.parentElement).toHaveClass(CLOSED_CLASS_NAME);
|
|
197
224
|
});
|
|
198
225
|
});
|
|
@@ -208,11 +235,9 @@ describe("Question", () => {
|
|
|
208
235
|
const toggle = screen.getByRole("button");
|
|
209
236
|
|
|
210
237
|
await userEvent.click(toggle);
|
|
211
|
-
|
|
212
238
|
expect(toggle.parentElement).toHaveClass(OPEN_CLASS_NAME);
|
|
213
239
|
|
|
214
240
|
await userEvent.click(container);
|
|
215
|
-
|
|
216
241
|
expect(toggle.parentElement).toHaveClass(OPEN_CLASS_NAME);
|
|
217
242
|
});
|
|
218
243
|
});
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
ReactNode,
|
|
6
6
|
useState,
|
|
7
7
|
ReactElement,
|
|
8
|
+
useCallback,
|
|
8
9
|
} from "react";
|
|
9
10
|
import clsx from "clsx";
|
|
10
11
|
import { useId } from "@react-aria/utils";
|
|
@@ -22,6 +23,7 @@ export interface QuestionProps {
|
|
|
22
23
|
help?: ReactNode;
|
|
23
24
|
className?: string;
|
|
24
25
|
closeHelpOnOutsideClick?: boolean;
|
|
26
|
+
onChange?: () => void;
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
export function Question({
|
|
@@ -33,6 +35,7 @@ export function Question({
|
|
|
33
35
|
help,
|
|
34
36
|
className,
|
|
35
37
|
closeHelpOnOutsideClick,
|
|
38
|
+
onChange,
|
|
36
39
|
}: QuestionProps) {
|
|
37
40
|
const [isOpen, setIsOpen] = useState(false);
|
|
38
41
|
const labelId = useId();
|
|
@@ -51,9 +54,16 @@ export function Question({
|
|
|
51
54
|
className,
|
|
52
55
|
);
|
|
53
56
|
|
|
54
|
-
const handleChange = (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
const handleChange = useCallback(
|
|
58
|
+
(state: boolean) => {
|
|
59
|
+
setIsOpen(state);
|
|
60
|
+
|
|
61
|
+
if (onChange) {
|
|
62
|
+
onChange();
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
[onChange],
|
|
66
|
+
);
|
|
57
67
|
|
|
58
68
|
// Allow for rich html descriptions
|
|
59
69
|
const DescriptionComponent = isValidElement(description) ? "div" : Text;
|