@zengenti/contensis-react-base 3.0.0-beta.74 → 3.0.0-beta.77

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/cjs/forms.js CHANGED
@@ -44,7 +44,7 @@ const initialSettings = {
44
44
  }
45
45
  };
46
46
  const initialStatus = {
47
- isLoading: false,
47
+ isLoading: true,
48
48
  isSubmitting: false,
49
49
  hasSuccess: false,
50
50
  successMessage: null,
@@ -95,6 +95,7 @@ var reducer = immer.produce((state, action) => {
95
95
  state[formId].groups = groups;
96
96
  state[formId].defaultLanguage = defaultLanguage;
97
97
  state[formId].status.isSubmitting = false;
98
+ state[formId].status.isLoading = false;
98
99
  state[formId].status.hasSuccess = false;
99
100
  state[formId].status.hasError = false;
100
101
  state[formId].settings = settings;
@@ -436,7 +437,7 @@ const validateInput = (field, value) => {
436
437
  message: 'You must enter a business email address.'
437
438
  };
438
439
  }
439
- } else {
440
+ } else if (!isValidRegex(field, value)) {
440
441
  return {
441
442
  fieldId: field.id,
442
443
  groupId: field.groupId,
@@ -484,13 +485,15 @@ const isBusinessEmailValid = (field, value) => {
484
485
  };
485
486
 
486
487
  const MakeFieldType = field => {
488
+ var _field$editor, _field$editor$propert;
489
+
487
490
  if (!field) return null;
488
491
 
489
492
  if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
490
493
  return 'textarea';
491
494
  } else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
492
495
  return 'dropdown';
493
- } else if (field.editor && field.editor.properties && field.editor.properties.readOnly || field.groupId && field.groupId === 'private') {
496
+ } else if (field !== null && field !== void 0 && (_field$editor = field.editor) !== null && _field$editor !== void 0 && (_field$editor$propert = _field$editor.properties) !== null && _field$editor$propert !== void 0 && _field$editor$propert.readOnly || (field === null || field === void 0 ? void 0 : field.groupId) === 'private' || (field === null || field === void 0 ? void 0 : field.groupId) === 'settings') {
494
497
  return 'hidden';
495
498
  } else if (field.dataType === 'stringArray' || field.dataType === 'boolean') {
496
499
  return 'checkbox';
@@ -631,7 +634,7 @@ function* fetchForm(action) {
631
634
 
632
635
  const formId = action.formId;
633
636
  const schema = yield getFormSchema(formId);
634
- const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private');
637
+ const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private' && group.id !== 'settings');
635
638
 
636
639
  if (formId && schema) {
637
640
  var _schema$groups2, _submitButtonText$def;
@@ -1912,17 +1915,23 @@ FormComposer.propTypes = {
1912
1915
  setCheckboxValue: PropTypes__default["default"].func
1913
1916
  };
1914
1917
 
1915
- const LoadingSpinner = () => {
1918
+ const LoadingSpinner = ({
1919
+ className,
1920
+ color = '#fff',
1921
+ width = 20,
1922
+ height = 20
1923
+ }) => {
1916
1924
  return /*#__PURE__*/React__default["default"].createElement("svg", {
1917
- width: "20px",
1918
- height: "20px",
1925
+ className: className,
1926
+ width: `${width}px`,
1927
+ height: `${height}px`,
1919
1928
  viewBox: "0 0 100 100",
1920
1929
  preserveAspectRatio: "xMidYMid"
1921
1930
  }, /*#__PURE__*/React__default["default"].createElement("circle", {
1922
1931
  cx: "50",
1923
1932
  cy: "50",
1924
1933
  fill: "none",
1925
- stroke: "#ffffff",
1934
+ stroke: color,
1926
1935
  strokeWidth: "10",
1927
1936
  r: "35",
1928
1937
  strokeDasharray: "164.93361431346415 56.97787143782138",
@@ -1969,7 +1978,10 @@ const Button = ({
1969
1978
  onClick: () => action(),
1970
1979
  disabled: loading,
1971
1980
  useDefaultTheme: useDefaultTheme
1972
- }, text, loading && /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, null));
1981
+ }, text, loading && /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
1982
+ height: 18,
1983
+ width: 18
1984
+ }));
1973
1985
  };
1974
1986
  Button.propTypes = {
1975
1987
  className: PropTypes__default["default"].string,
@@ -2137,7 +2149,7 @@ const Form = ({
2137
2149
  className: className,
2138
2150
  id: formId,
2139
2151
  useDefaultTheme: useDefaultTheme
2140
- }, !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
2152
+ }, !status || !(status !== null && status !== void 0 && status.hasSuccess) && !(status !== null && status !== void 0 && status.isLoading) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
2141
2153
  type: "button",
2142
2154
  text: "Go Back",
2143
2155
  action: () => _togglePageBack(formId, pagingInfo.pageIndex - 1),
@@ -2163,13 +2175,19 @@ const Form = ({
2163
2175
  }), isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
2164
2176
  text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
2165
2177
  type: "button",
2178
+ loading: status === null || status === void 0 ? void 0 : status.isLoading,
2166
2179
  action: () => {
2167
2180
  _submitForm(formId);
2168
2181
 
2169
2182
  if (customSubmit) customSubmit();
2170
2183
  },
2171
2184
  useDefaultTheme: useDefaultTheme
2172
- })), status && status.hasSuccess && status.successMessage && /*#__PURE__*/React__default["default"].createElement("p", {
2185
+ })) : /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
2186
+ className: "loading",
2187
+ height: 24,
2188
+ width: 24,
2189
+ color: "#333"
2190
+ }), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.successMessage) && /*#__PURE__*/React__default["default"].createElement("p", {
2173
2191
  className: "success-message"
2174
2192
  }, status.successMessage)));
2175
2193
  } else {
@@ -2179,7 +2197,7 @@ const Form = ({
2179
2197
  className: className,
2180
2198
  id: formId,
2181
2199
  useDefaultTheme: useDefaultTheme
2182
- }, !status || status && !status.isLoading && !status.isSubmitting && !status.hasSuccess && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormComposer, {
2200
+ }, !status || !(status !== null && status !== void 0 && status.hasSuccess) && !(status !== null && status !== void 0 && status.isLoading) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormComposer, {
2183
2201
  fields: fields,
2184
2202
  formId: formId,
2185
2203
  setValue: _setValue,
@@ -2191,6 +2209,7 @@ const Form = ({
2191
2209
  entries: entries,
2192
2210
  setCheckboxValue: _setCheckboxValue
2193
2211
  }), /*#__PURE__*/React__default["default"].createElement(Button, {
2212
+ loading: status === null || status === void 0 ? void 0 : status.isSubmitting,
2194
2213
  text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
2195
2214
  type: "button",
2196
2215
  action: () => {
@@ -2199,7 +2218,12 @@ const Form = ({
2199
2218
  if (customSubmit) customSubmit();
2200
2219
  },
2201
2220
  useDefaultTheme: useDefaultTheme
2202
- })), status && status.hasSuccess && status.successMessage && /*#__PURE__*/React__default["default"].createElement("p", {
2221
+ })) : /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
2222
+ className: "loading",
2223
+ height: 24,
2224
+ width: 24,
2225
+ color: "#333"
2226
+ }), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.successMessage) && /*#__PURE__*/React__default["default"].createElement("p", {
2203
2227
  className: "success-message"
2204
2228
  }, status.successMessage)));
2205
2229
  }