@pinuts/bsr-uikit-relaunch 0.0.9 → 0.0.10

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.
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAddressContext.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressContext.js"],"names":[],"mappings":"AAcA,6DAAiD;;AAEjD;;;gBA2IC"}
1
+ {"version":3,"file":"BSRAddressContext.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressContext.js"],"names":[],"mappings":"AAcA,6DAAiD;;AAEjD;;;gBA4JC"}
@@ -27,7 +27,10 @@ const BSRAddressContextProvider = _ref => {
27
27
  } = _ref;
28
28
  const {
29
29
  setFieldValue,
30
- values
30
+ values,
31
+ submitForm,
32
+ isSubmitting,
33
+ submitCount
31
34
  } = useFormikContext();
32
35
  const [addressContext, setAddressContext] = (0, _react.useState)({
33
36
  ...defaultAdContext,
@@ -53,6 +56,12 @@ const BSRAddressContextProvider = _ref => {
53
56
  // used in plz and street selector
54
57
  const [showNoResultsError, setShowNoResultsError] = (0, _react.useState)(false);
55
58
  const [selectedStreetList, setSelectedStreetList] = (0, _react.useState)(null);
59
+
60
+ // used for autoCommit
61
+ const [lastCommitValue, setLastCommitValue] = (0, _react.useState)({
62
+ submitCount: -1,
63
+ value: null
64
+ });
56
65
  const fieldKeys = (0, _react.useMemo)(() => {
57
66
  const groupKey = addressContext.groupKey;
58
67
  return {
@@ -78,13 +87,9 @@ const BSRAddressContextProvider = _ref => {
78
87
  }
79
88
  }, [setFieldValue, values, fieldKeys]);
80
89
  const resetContextValues = (0, _react.useCallback)(() => {
81
- setFieldValue(fieldKeys.groupKey, undefined);
82
- setFieldValue(fieldKeys.labelKey, undefined);
83
- setFieldValue(fieldKeys.streetFieldKey, '');
84
- setFieldValue(fieldKeys.streetFieldKeyLabel, '');
85
- setFieldValue(fieldKeys.houseNumberFieldKey, '');
86
- setFieldValue(fieldKeys.selectedStreetAndNumberKey, '');
87
- setFieldValue(fieldKeys.selectedStreetStreetPlz, '');
90
+ Object.keys(fieldKeys).forEach(key => {
91
+ setFieldValue(fieldKeys[key], undefined);
92
+ });
88
93
 
89
94
  // rest autocomplete input
90
95
  setSelectedOptionId(' ');
@@ -104,8 +109,26 @@ const BSRAddressContextProvider = _ref => {
104
109
  }, [selectedStreetName, houseNumber, setFieldValue, fieldKeys.selectedStreetAndNumberKey]);
105
110
  const showNextBtn = values[fieldKeys.streetFieldKey] && values[fieldKeys.houseNumberFieldKey] && !values[fieldKeys.labelKey] && (!selectedStreetList || selectedStreetList.length === 1);
106
111
 
107
- // wenn alles ausgefüllt ist, dann nur die Adresse readonly anzeigen
112
+ // if everything is filled out, then only display the address as read-only
108
113
  const dontShowSelector = values[fieldKeys.labelKey] && values[fieldKeys.groupKey];
114
+ const hasNewValueSinceLastCommit = () => {
115
+ const curValue = values[fieldKeys.groupKey];
116
+ if (!curValue) {
117
+ return false;
118
+ }
119
+ return lastCommitValue.submitCount === -1 || lastCommitValue.submitCount !== submitCount && lastCommitValue.value !== curValue;
120
+ };
121
+ if (dontShowSelector && addressContext.doSubmitOnChange && !isSubmitting && hasNewValueSinceLastCommit()) {
122
+ setLastCommitValue({
123
+ submitCount,
124
+ value: values[fieldKeys.groupKey]
125
+ });
126
+ window.setTimeout(() => {
127
+ // need a thread change to wait the form is re-rendered before submitting
128
+ // ==> react-dom.development.js:86 Warning: Cannot update a component (`Vr`) while rendering a different component
129
+ submitForm();
130
+ }, 1);
131
+ }
109
132
  const pathThroughValues = (0, _react.useMemo)(() => {
110
133
  return {
111
134
  addressContext,
@@ -136,7 +159,8 @@ BSRAddressContextProvider.propTypes = {
136
159
  initAddressContext: _propTypes.default.shape({
137
160
  groupKey: _propTypes.default.string,
138
161
  restUrl: _propTypes.default.string,
139
- controllerPath: _propTypes.default.string
162
+ controllerPath: _propTypes.default.string,
163
+ doSubmitOnChange: _propTypes.default.bool
140
164
  }),
141
165
  children: _propTypes.default.node.isRequired
142
166
  };
@@ -5,6 +5,7 @@ declare function BSRAddressSelector({ config }: {
5
5
  declare namespace BSRAddressSelector {
6
6
  let propTypes: {
7
7
  restUrl: any;
8
+ doSubmitOnChange: any;
8
9
  controllerPath: any;
9
10
  value: any;
10
11
  values: any;
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAddressSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressSelector.jsx"],"names":[],"mappings":";AAkBA;;gBA4BC"}
1
+ {"version":3,"file":"BSRAddressSelector.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAddressSelector.jsx"],"names":[],"mappings":";AAkBA;;gBAyBC"}
@@ -27,20 +27,22 @@ const BSRAddressSelector = _ref => {
27
27
  } = _ref;
28
28
  const {
29
29
  controllerPath,
30
- restUrl
30
+ restUrl,
31
+ doSubmitOnChange
31
32
  } = config;
32
33
  const groupKey = config.key;
33
34
  const subFormConfig = JSON.parse(subFormConfigStr.replaceAll('{SELID}', groupKey));
34
35
  const initAddressContext = (0, _react.useMemo)(() => {
35
- const ad = {
36
+ const restUrlWithTrailingSlash = restUrl.endsWith('/') ? restUrl : `${restUrl}/`;
37
+ return {
36
38
  groupKey,
37
- restUrl
39
+ restUrl: restUrlWithTrailingSlash,
40
+ doSubmitOnChange,
41
+ ...(controllerPath && {
42
+ controllerPath
43
+ })
38
44
  };
39
- if (controllerPath) {
40
- ad.controllerPath = controllerPath;
41
- }
42
- return ad;
43
- }, [groupKey, controllerPath, restUrl]);
45
+ }, [groupKey, controllerPath, restUrl, doSubmitOnChange]);
44
46
  return /*#__PURE__*/_react.default.createElement(_BSRAddressContext.default, {
45
47
  initAddressContext: initAddressContext
46
48
  }, /*#__PURE__*/_react.default.createElement(_formBuilder.ComponentPopulator, {
@@ -51,6 +53,7 @@ const BSRAddressSelector = _ref => {
51
53
  BSRAddressSelector.propTypes = {
52
54
  ..._FormFieldChildPropTypes.default,
53
55
  restUrl: _propTypes.default.string,
56
+ doSubmitOnChange: _propTypes.default.bool,
54
57
  controllerPath: _propTypes.default.string
55
58
  };
56
59
  (0, _formBuilder.registerComponent)('BSRAddressSelector', BSRAddressSelector);
@@ -1 +1 @@
1
- {"version":3,"file":"BSRAutocompleteField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAutocompleteField.jsx"],"names":[],"mappings":";AA+CA;;QAuQC"}
1
+ {"version":3,"file":"BSRAutocompleteField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/BSRAutocompleteField.jsx"],"names":[],"mappings":";AA+CA;;QA2QC"}
@@ -174,7 +174,11 @@ const BSRAutocompleteField = _ref => {
174
174
  setFieldValue(groupKey, '');
175
175
  setFieldValue(labelFieldKey, undefined);
176
176
  setTimeout(() => {
177
- inputRef.current.select();
177
+ try {
178
+ inputRef.current.select();
179
+ } catch (e) {
180
+ // ignore
181
+ }
178
182
  }, 50);
179
183
  }, [key, setFieldValue, labelFieldKey, groupKey, setSelectedOptionId, setPrevSelection]);
180
184
  const className = (0, _react.useMemo)(() => [_BSRAddressSelectorModule.default.comboboxWrapper, 'ariakit-combobox', 'form-control px-2 py-1', isFocused && 'focused', isInvalid && 'is-invalid'].filter(Boolean).join(' '), [isFocused, isInvalid]);
@@ -1 +1 @@
1
- {"version":3,"file":"HouseNumberSelectField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/HouseNumberSelectField.jsx"],"names":[],"mappings":";AAYA,wEAYC"}
1
+ {"version":3,"file":"HouseNumberSelectField.d.ts","sourceRoot":"","sources":["../../../src/items/BSRAddressSelector/HouseNumberSelectField.jsx"],"names":[],"mappings":";AAWA,wEAYC"}
@@ -12,8 +12,6 @@ var _BSRAddressContext = require("./BSRAddressContext.js");
12
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
- // import PropTypes from 'prop-types';
16
-
17
15
  // form-builder
18
16
 
19
17
  // wrap the field label, error message help text and more
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pinuts/bsr-uikit-relaunch",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "private": false,
5
5
  "description": "BSR UI-KIT Relaunch",
6
6
  "main": "dist/index.js",