@bigbinary/neeto-form-frontend 1.2.46 → 1.2.47

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/README.md CHANGED
@@ -76,6 +76,16 @@ The engine adds setup for form on backend and allows us to attach forms to any m
76
76
  has_one :form, class_name: "::NeetoFormEngine::Form", as: :attachable
77
77
  ```
78
78
 
79
+ ### Customizability
80
+ The engine supports customizing the default behavior of `Questions::UpdateService`. The supported methods/constants can be overridden by defining them in the concern `NeetoFormEngine::Customizable::Questions::Updateable`
81
+
82
+ #### Available methods:
83
+ 1. `create_question!`: This takes 2 arguments: `params` and `question`. The `params` argument contains the question parameters passed from the front-end, and the `question` argument contains the current question. This argument is required if you need translation support.
84
+ 2. `additional_question_params`: If you want to include additional attributes while creating questions, you can specify them using this method. It takes one argument `params` which will be the question parameters passed from the front-end.
85
+
86
+ #### Available constants:
87
+ 1. `EXCLUDED_UPDATE_PARAMS`: If you have included extra parameters other than `kind` for additional use cases that are not valid entity attributes, they need to be specified as `EXCLUDED_UPDATE_PARAMS`.
88
+
79
89
  ## Frontend package
80
90
  The frontend package allows us to create forms across neeto products.
81
91
 
package/dist/index.cjs.js CHANGED
@@ -9842,14 +9842,15 @@ var useBuildFormState = function useBuildFormState() {
9842
9842
  };
9843
9843
 
9844
9844
  var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
9845
- var initialLanguage = _ref.initialLanguage,
9845
+ var _findBy;
9846
+ var currentLanguage = _ref.currentLanguage,
9846
9847
  languages = _ref.languages,
9847
9848
  onChange = _ref.onChange;
9848
9849
  var _useState = React$2.useState(false),
9849
9850
  _useState2 = _slicedToArray$3(_useState, 2),
9850
9851
  isUnsavedChangesAlertOpen = _useState2[0],
9851
9852
  setIsUnsavedChangesAlertOpen = _useState2[1];
9852
- var _useState3 = React$2.useState(initialLanguage),
9853
+ var _useState3 = React$2.useState(currentLanguage),
9853
9854
  _useState4 = _slicedToArray$3(_useState3, 2),
9854
9855
  selectedLanguage = _useState4[0],
9855
9856
  setSelectedLanguage = _useState4[1];
@@ -9865,17 +9866,24 @@ var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
9865
9866
  setSelectedLanguage(code);
9866
9867
  setIsUnsavedChangesAlertOpen(true);
9867
9868
  };
9869
+ var selectedLanguageName = (_findBy = neetoCist.findBy({
9870
+ code: currentLanguage
9871
+ }, languages)) === null || _findBy === void 0 ? void 0 : _findBy.name;
9868
9872
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
9869
9873
  content: t("neetoForm.questions.changeLanguage")
9870
9874
  }, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
9875
+ buttonProps: {
9876
+ iconPosition: "left"
9877
+ },
9871
9878
  buttonStyle: "text",
9872
9879
  icon: neetoIcons.Globe,
9880
+ label: selectedLanguageName,
9873
9881
  position: "top-start"
9874
9882
  }, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.Menu, null, languages.map(function (_ref2) {
9875
9883
  var code = _ref2.code,
9876
9884
  name = _ref2.name;
9877
9885
  return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.MenuItem.Button, {
9878
- isActive: initialLanguage === code,
9886
+ isActive: currentLanguage === code,
9879
9887
  key: code,
9880
9888
  onClick: function onClick() {
9881
9889
  return languageChangeHandler(code);
@@ -9912,7 +9920,7 @@ var Overview = function Overview(_ref) {
9912
9920
  style: "h4",
9913
9921
  weight: "semibold"
9914
9922
  }, title), availableLanguages.length > 1 && /*#__PURE__*/React__default["default"].createElement(ChangeLanguageDropdown, {
9915
- initialLanguage: selectedLanguage,
9923
+ currentLanguage: selectedLanguage,
9916
9924
  languages: availableLanguages,
9917
9925
  onChange: onLanguageChange
9918
9926
  })), description);
@@ -12047,7 +12055,8 @@ var BuildForm = function BuildForm(_ref) {
12047
12055
  className: "flex h-full w-full items-center justify-center py-6"
12048
12056
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
12049
12057
  }
12050
- var handleSubmit = function handleSubmit(payload) {
12058
+ var handleSubmit = function handleSubmit(payload, _ref2) {
12059
+ var setSubmitting = _ref2.setSubmitting;
12051
12060
  updateQuestions({
12052
12061
  id: id,
12053
12062
  values: _objectSpread$e({
@@ -12055,7 +12064,10 @@ var BuildForm = function BuildForm(_ref) {
12055
12064
  neetoFormQuestion: payload
12056
12065
  }, buildRequestArgs)
12057
12066
  }, {
12058
- onSuccess: refetch
12067
+ onSuccess: refetch,
12068
+ onSettled: function onSettled() {
12069
+ return setSubmitting(false);
12070
+ }
12059
12071
  });
12060
12072
  };
12061
12073
  var onValueChange = function onValueChange(questions) {
@@ -12068,8 +12080,8 @@ var BuildForm = function BuildForm(_ref) {
12068
12080
  var isDeletable = isQuestionDeletable !== null && isQuestionDeletable !== void 0 ? isQuestionDeletable : function (question) {
12069
12081
  return !nonRemovableFields.includes(question.kind);
12070
12082
  };
12071
- var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref2) {
12072
- var kind = _ref2.kind;
12083
+ var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref3) {
12084
+ var kind = _ref3.kind;
12073
12085
  return requiredFields.includes(kind);
12074
12086
  };
12075
12087
  var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
@@ -12087,9 +12099,9 @@ var BuildForm = function BuildForm(_ref) {
12087
12099
  },
12088
12100
  validationSchema: formValidationSchema,
12089
12101
  onSubmit: handleSubmit
12090
- }, function (_ref3) {
12091
- var errors = _ref3.errors,
12092
- setFieldError = _ref3.setFieldError;
12102
+ }, function (_ref4) {
12103
+ var errors = _ref4.errors,
12104
+ setFieldError = _ref4.setFieldError;
12093
12105
  return /*#__PURE__*/React__default["default"].createElement(Form, _extends$8({}, _objectSpread$e(_objectSpread$e({}, formDomProps), {}, {
12094
12106
  availableLanguages: availableLanguages,
12095
12107
  cancelButtonProps: cancelButtonProps,