@jobber/components 4.18.9 → 4.18.10-add-contro.3
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/Checkbox/index.js
CHANGED
|
@@ -2,9 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var Checkbox = require('../Checkbox-
|
|
5
|
+
var Checkbox = require('../Checkbox-3bccf65c.js');
|
|
6
|
+
require('../tslib.es6-5b8768b7.js');
|
|
6
7
|
require('react');
|
|
8
|
+
require('uuid');
|
|
7
9
|
require('classnames');
|
|
10
|
+
require('react-hook-form');
|
|
8
11
|
require('../style-inject.es-9d2f5f4e.js');
|
|
9
12
|
require('../Icon-405a216c.js');
|
|
10
13
|
require('@jobber/design');
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var tslib_es6 = require('./tslib.es6-5b8768b7.js');
|
|
3
4
|
var React = require('react');
|
|
5
|
+
var uuid = require('uuid');
|
|
4
6
|
var classnames = require('classnames');
|
|
7
|
+
var reactHookForm = require('react-hook-form');
|
|
5
8
|
var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
|
|
6
9
|
var Icon = require('./Icon-405a216c.js');
|
|
7
10
|
var Text = require('./Text-e7ed0974.js');
|
|
@@ -16,25 +19,46 @@ var styles = {"checkbox":"d-2MyyzKGN0-","wrapper":"OFHQaLxY8zI-","disabled":"HRr
|
|
|
16
19
|
styleInject_es.styleInject(css_248z);
|
|
17
20
|
|
|
18
21
|
function Checkbox({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, children, onChange, onFocus, }) {
|
|
22
|
+
const { control, setValue, watch } = reactHookForm.useFormContext() != undefined
|
|
23
|
+
? reactHookForm.useFormContext()
|
|
24
|
+
: // If there isn't a Form Context being provided, get a form for this field.
|
|
25
|
+
reactHookForm.useForm({ mode: "onTouched" });
|
|
26
|
+
const [identifier] = React.useState(uuid.v1());
|
|
27
|
+
/**
|
|
28
|
+
* Generate a name if one is not supplied, this is the name
|
|
29
|
+
* that will be used for react-hook-form and not neccessarily
|
|
30
|
+
* attached to the DOM
|
|
31
|
+
*/
|
|
32
|
+
const [controlledName] = React.useState(name ? name : `generatedName--${identifier}`);
|
|
33
|
+
React.useEffect(() => {
|
|
34
|
+
if (value != undefined) {
|
|
35
|
+
setValue(controlledName, value);
|
|
36
|
+
}
|
|
37
|
+
}, [value, watch(controlledName)]);
|
|
19
38
|
const wrapperClassName = classnames__default["default"](styles.wrapper, disabled && styles.disabled);
|
|
20
39
|
const inputClassName = classnames__default["default"](styles.input, {
|
|
21
40
|
[styles.indeterminate]: indeterminate,
|
|
22
41
|
});
|
|
23
42
|
const iconName = indeterminate ? "minus2" : "checkmark";
|
|
24
43
|
const labelText = label ? React__default["default"].createElement(Text.Text, null, label) : children;
|
|
25
|
-
return (React__default["default"].createElement(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
React__default["default"].createElement("
|
|
30
|
-
React__default["default"].createElement(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
44
|
+
return (React__default["default"].createElement(reactHookForm.Controller, { control: control, name: controlledName, defaultValue: defaultChecked, render: (_a) => {
|
|
45
|
+
var _b = _a.field, { onChange: onControllerChange, name: controllerName } = _b, rest = tslib_es6.__rest(_b, ["onChange", "name"]);
|
|
46
|
+
const fieldProps = Object.assign(Object.assign({}, rest), { id: identifier, className: inputClassName, name: name && controllerName, onChange: handleChange, disabled: disabled });
|
|
47
|
+
return (React__default["default"].createElement("div", { className: styles.checkbox },
|
|
48
|
+
React__default["default"].createElement("label", { className: wrapperClassName },
|
|
49
|
+
React__default["default"].createElement("span", { className: styles.checkHolder },
|
|
50
|
+
React__default["default"].createElement("input", Object.assign({}, fieldProps, { type: "checkbox", checked: checked, defaultChecked: defaultChecked, "aria-label": label, onChange: handleChange, onFocus: onFocus })),
|
|
51
|
+
React__default["default"].createElement("span", { className: styles.checkBox },
|
|
52
|
+
React__default["default"].createElement(Icon.Icon, { name: iconName, size: "small", color: "white" }))),
|
|
53
|
+
labelText && React__default["default"].createElement("span", { className: styles.label }, labelText)),
|
|
54
|
+
description && (React__default["default"].createElement("div", { className: styles.description },
|
|
55
|
+
React__default["default"].createElement(Text.Text, { variation: "subdued", size: "small" }, description)))));
|
|
56
|
+
function handleChange(event) {
|
|
57
|
+
const newChecked = event.currentTarget.checked;
|
|
58
|
+
onChange && onChange(newChecked);
|
|
59
|
+
onControllerChange(event);
|
|
60
|
+
}
|
|
61
|
+
} }));
|
|
38
62
|
}
|
|
39
63
|
|
|
40
64
|
exports.Checkbox = Checkbox;
|
|
@@ -6,9 +6,12 @@ var React = require('react');
|
|
|
6
6
|
var classnames = require('classnames');
|
|
7
7
|
var useOnKeyDown = require('@jobber/hooks/useOnKeyDown');
|
|
8
8
|
var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
|
|
9
|
-
var Checkbox = require('../Checkbox-
|
|
9
|
+
var Checkbox = require('../Checkbox-3bccf65c.js');
|
|
10
10
|
var Text = require('../Text-e7ed0974.js');
|
|
11
11
|
var Icon = require('../Icon-405a216c.js');
|
|
12
|
+
require('../tslib.es6-5b8768b7.js');
|
|
13
|
+
require('uuid');
|
|
14
|
+
require('react-hook-form');
|
|
12
15
|
require('../Typography-fd6f932a.js');
|
|
13
16
|
require('@jobber/design');
|
|
14
17
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jobber/components",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.10-add-contro.3+54ff1f01",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@jobber/design": "^0.41.2",
|
|
23
|
-
"@jobber/formatters": "
|
|
23
|
+
"@jobber/formatters": "^0.2.2",
|
|
24
24
|
"@jobber/hooks": "^2.1.3",
|
|
25
25
|
"@popperjs/core": "^2.0.6",
|
|
26
26
|
"@std-proposal/temporal": "0.0.1",
|
|
@@ -83,5 +83,5 @@
|
|
|
83
83
|
"> 1%",
|
|
84
84
|
"IE 10"
|
|
85
85
|
],
|
|
86
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "54ff1f018b21f93e885c1c90b475b09437e035f2"
|
|
87
87
|
}
|