@panneau/field-toggle 3.0.192 → 3.0.194

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/es/index.js CHANGED
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
2
  import classNames from 'classnames';
3
3
  import PropTypes from 'prop-types';
4
4
  import Switch from 'rc-switch';
5
- import React from 'react';
5
+ import React, { useMemo, useCallback } from 'react';
6
6
  import 'rc-switch/assets/index.css';
7
7
 
8
8
  var styles = {"container":"panneau-field-toggle-container"};
@@ -10,6 +10,7 @@ var styles = {"container":"panneau-field-toggle-container"};
10
10
  var propTypes = {
11
11
  value: PropTypes.bool,
12
12
  name: PropTypes.string,
13
+ queryValue: PropTypes.string,
13
14
  disabled: PropTypes.bool,
14
15
  className: PropTypes.string,
15
16
  onChange: PropTypes.func
@@ -17,17 +18,32 @@ var propTypes = {
17
18
  var defaultProps = {
18
19
  value: null,
19
20
  name: null,
21
+ queryValue: null,
20
22
  disabled: false,
21
23
  className: null,
22
24
  onChange: null
23
25
  };
24
26
  var ToggleField = function ToggleField(_ref) {
25
27
  var value = _ref.value,
28
+ queryValue = _ref.queryValue,
26
29
  name = _ref.name,
27
30
  disabled = _ref.disabled,
28
31
  className = _ref.className,
29
32
  onChange = _ref.onChange;
30
- var isTrue = value === true || value === 'true' || value === 1 || value === '1';
33
+ var isTrue = useMemo(function () {
34
+ return queryValue !== null ? value === queryValue : value === true || value === 'true' || value === 1 || value === '1';
35
+ }, [value, queryValue]);
36
+ var finalOnChange = useCallback(function (val) {
37
+ if (queryValue !== null) {
38
+ if (val === true) {
39
+ onChange(queryValue);
40
+ } else {
41
+ onChange(null);
42
+ }
43
+ } else {
44
+ onChange(val);
45
+ }
46
+ }, [onChange]);
31
47
  return /*#__PURE__*/React.createElement("div", {
32
48
  className: classNames([styles.container, _defineProperty({
33
49
  disabled: disabled
@@ -35,7 +51,7 @@ var ToggleField = function ToggleField(_ref) {
35
51
  }, /*#__PURE__*/React.createElement(Switch, {
36
52
  name: name,
37
53
  checked: isTrue,
38
- onChange: onChange,
54
+ onChange: finalOnChange,
39
55
  disabled: disabled
40
56
  }));
41
57
  };
package/lib/index.js CHANGED
@@ -14,6 +14,7 @@ var styles = {"container":"panneau-field-toggle-container"};
14
14
  var propTypes = {
15
15
  value: PropTypes.bool,
16
16
  name: PropTypes.string,
17
+ queryValue: PropTypes.string,
17
18
  disabled: PropTypes.bool,
18
19
  className: PropTypes.string,
19
20
  onChange: PropTypes.func
@@ -21,17 +22,32 @@ var propTypes = {
21
22
  var defaultProps = {
22
23
  value: null,
23
24
  name: null,
25
+ queryValue: null,
24
26
  disabled: false,
25
27
  className: null,
26
28
  onChange: null
27
29
  };
28
30
  var ToggleField = function ToggleField(_ref) {
29
31
  var value = _ref.value,
32
+ queryValue = _ref.queryValue,
30
33
  name = _ref.name,
31
34
  disabled = _ref.disabled,
32
35
  className = _ref.className,
33
36
  onChange = _ref.onChange;
34
- var isTrue = value === true || value === 'true' || value === 1 || value === '1';
37
+ var isTrue = React.useMemo(function () {
38
+ return queryValue !== null ? value === queryValue : value === true || value === 'true' || value === 1 || value === '1';
39
+ }, [value, queryValue]);
40
+ var finalOnChange = React.useCallback(function (val) {
41
+ if (queryValue !== null) {
42
+ if (val === true) {
43
+ onChange(queryValue);
44
+ } else {
45
+ onChange(null);
46
+ }
47
+ } else {
48
+ onChange(val);
49
+ }
50
+ }, [onChange]);
35
51
  return /*#__PURE__*/React.createElement("div", {
36
52
  className: classNames([styles.container, _defineProperty({
37
53
  disabled: disabled
@@ -39,7 +55,7 @@ var ToggleField = function ToggleField(_ref) {
39
55
  }, /*#__PURE__*/React.createElement(Switch, {
40
56
  name: name,
41
57
  checked: isTrue,
42
- onChange: onChange,
58
+ onChange: finalOnChange,
43
59
  disabled: disabled
44
60
  }));
45
61
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@panneau/field-toggle",
3
- "version": "3.0.192",
3
+ "version": "3.0.194",
4
4
  "description": "A toggle field",
5
5
  "keywords": [
6
6
  "javascript"
@@ -54,8 +54,8 @@
54
54
  },
55
55
  "dependencies": {
56
56
  "@babel/runtime": "^7.12.5",
57
- "@panneau/core": "^3.0.192",
58
- "@panneau/themes": "^3.0.192",
57
+ "@panneau/core": "^3.0.194",
58
+ "@panneau/themes": "^3.0.194",
59
59
  "classnames": "^2.5.1",
60
60
  "prop-types": "^15.7.2",
61
61
  "rc-switch": "^4.1.0"
@@ -63,5 +63,5 @@
63
63
  "publishConfig": {
64
64
  "access": "public"
65
65
  },
66
- "gitHead": "fdea2ce9766bf695810d652ddd7db8d768ea5332"
66
+ "gitHead": "6d49da8ecbe43b3a5c11dc9ddb9553ef64e58c83"
67
67
  }