@data-driven-forms/react-form-renderer
Advanced tools
Comparing version 3.18.11 to 3.19.0
import Field from "../common-types/field"; | ||
import type { FormState, FormApi } from "final-form"; | ||
export interface ActionResolution { | ||
visible?: boolean; | ||
set?: object; // TO DO specify this | ||
set?: object | ((formState:FormState<Record<string, any>>, getFieldState:FormApi["getFieldState"]) => object) ; // TO DO specify this | ||
} | ||
@@ -7,0 +8,0 @@ |
@@ -12,4 +12,2 @@ "use strict"; | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); | ||
@@ -19,2 +17,4 @@ | ||
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); | ||
var _react = _interopRequireWildcard(require("react")); | ||
@@ -38,2 +38,11 @@ | ||
var setterValueCheck = function setterValueCheck(setterValue) { | ||
if (setterValue === null || Array.isArray(setterValue)) { | ||
console.error('Received invalid setterValue. Expected object, received: ', setterValue); | ||
return false; | ||
} | ||
return (0, _typeof2["default"])(setterValue) === 'object'; | ||
}; | ||
var reducer = function reducer(state, _ref) { | ||
@@ -87,2 +96,11 @@ var type = _ref.type, | ||
}, [dirty]); | ||
var setValue = (0, _react.useCallback)(function (setter) { | ||
Object.entries(setter).forEach(function (_ref3) { | ||
var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2), | ||
name = _ref4[0], | ||
value = _ref4[1]; | ||
formOptions.change(name, value); | ||
}); | ||
}, []); | ||
(0, _react.useEffect)(function () { | ||
@@ -107,9 +125,13 @@ if (setters && setters.length > 0 && (state.initial || !(0, _isEqual["default"])(setters, state.sets))) { | ||
formOptions.batch(function () { | ||
Object.entries(setter).forEach(function (_ref3) { | ||
var _ref4 = (0, _slicedToArray2["default"])(_ref3, 2), | ||
name = _ref4[0], | ||
value = _ref4[1]; | ||
if (typeof setter !== 'function') { | ||
setValue(setter); | ||
} else { | ||
var setterValue = setter(formOptions.getState(), formOptions.getFieldState); | ||
formOptions.change(name, value); | ||
}); | ||
if (setterValueCheck(setterValue)) { | ||
setValue(setterValue); | ||
} else { | ||
console.error('Received invalid setterValue. Expected object, received: ', setterValue); | ||
} | ||
} | ||
}); | ||
@@ -154,7 +176,7 @@ } | ||
visible: _propTypes["default"].bool, | ||
set: _propTypes["default"].object | ||
set: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]) | ||
}), | ||
"else": _propTypes["default"].shape({ | ||
visible: _propTypes["default"].bool, | ||
set: _propTypes["default"].object | ||
set: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].func]) | ||
}) | ||
@@ -161,0 +183,0 @@ }; |
@@ -37,3 +37,3 @@ "use strict"; | ||
if (action.hasOwnProperty('set') && ((0, _typeof2["default"])(action.set) !== 'object' || Array.isArray(action.set))) { | ||
if (action.hasOwnProperty('set') && ((0, _typeof2["default"])(action.set) !== 'object' && typeof action.set !== 'function' || Array.isArray(action.set))) { | ||
throw new _schemaErrors["default"]("\n Error occured in field definition with \"name\" property: \"".concat(fieldName, "\".\n 'set' property in action \"").concat(type, "\" has to be a object! Received: ").concat((0, _typeof2["default"])(action.visible), ", isArray: ").concat(Array.isArray(action.set), ".\n ")); | ||
@@ -40,0 +40,0 @@ } |
@@ -1,4 +0,4 @@ | ||
import _typeof from "@babel/runtime/helpers/typeof"; | ||
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; | ||
import _defineProperty from "@babel/runtime/helpers/defineProperty"; | ||
import _typeof from "@babel/runtime/helpers/typeof"; | ||
@@ -9,3 +9,3 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } | ||
import React, { useEffect, useReducer } from 'react'; | ||
import React, { useCallback, useEffect, useReducer } from 'react'; | ||
import PropTypes from 'prop-types'; | ||
@@ -15,2 +15,12 @@ import isEqual from 'lodash/isEqual'; | ||
import parseCondition from '../parse-condition'; | ||
var setterValueCheck = function setterValueCheck(setterValue) { | ||
if (setterValue === null || Array.isArray(setterValue)) { | ||
console.error('Received invalid setterValue. Expected object, received: ', setterValue); | ||
return false; | ||
} | ||
return _typeof(setterValue) === 'object'; | ||
}; | ||
export var reducer = function reducer(state, _ref) { | ||
@@ -61,2 +71,11 @@ var type = _ref.type, | ||
}, [dirty]); | ||
var setValue = useCallback(function (setter) { | ||
Object.entries(setter).forEach(function (_ref3) { | ||
var _ref4 = _slicedToArray(_ref3, 2), | ||
name = _ref4[0], | ||
value = _ref4[1]; | ||
formOptions.change(name, value); | ||
}); | ||
}, []); | ||
useEffect(function () { | ||
@@ -81,9 +100,13 @@ if (setters && setters.length > 0 && (state.initial || !isEqual(setters, state.sets))) { | ||
formOptions.batch(function () { | ||
Object.entries(setter).forEach(function (_ref3) { | ||
var _ref4 = _slicedToArray(_ref3, 2), | ||
name = _ref4[0], | ||
value = _ref4[1]; | ||
if (typeof setter !== 'function') { | ||
setValue(setter); | ||
} else { | ||
var setterValue = setter(formOptions.getState(), formOptions.getFieldState); | ||
formOptions.change(name, value); | ||
}); | ||
if (setterValueCheck(setterValue)) { | ||
setValue(setterValue); | ||
} else { | ||
console.error('Received invalid setterValue. Expected object, received: ', setterValue); | ||
} | ||
} | ||
}); | ||
@@ -127,7 +150,7 @@ } | ||
visible: PropTypes.bool, | ||
set: PropTypes.object | ||
set: PropTypes.oneOfType([PropTypes.object, PropTypes.func]) | ||
}), | ||
"else": PropTypes.shape({ | ||
visible: PropTypes.bool, | ||
set: PropTypes.object | ||
set: PropTypes.oneOfType([PropTypes.object, PropTypes.func]) | ||
}) | ||
@@ -134,0 +157,0 @@ }; |
@@ -25,3 +25,3 @@ import _typeof from "@babel/runtime/helpers/typeof"; | ||
if (action.hasOwnProperty('set') && (_typeof(action.set) !== 'object' || Array.isArray(action.set))) { | ||
if (action.hasOwnProperty('set') && (_typeof(action.set) !== 'object' && typeof action.set !== 'function' || Array.isArray(action.set))) { | ||
throw new DefaultSchemaError("\n Error occured in field definition with \"name\" property: \"".concat(fieldName, "\".\n 'set' property in action \"").concat(type, "\" has to be a object! Received: ").concat(_typeof(action.visible), ", isArray: ").concat(Array.isArray(action.set), ".\n ")); | ||
@@ -28,0 +28,0 @@ } |
{ | ||
"name": "@data-driven-forms/react-form-renderer", | ||
"version": "3.18.11", | ||
"version": "3.19.0", | ||
"description": "React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.", | ||
@@ -30,3 +30,5 @@ "main": "index.js", | ||
], | ||
"devDependencies": {}, | ||
"devDependencies": { | ||
"process": "^0.11.10" | ||
}, | ||
"dependencies": { | ||
@@ -33,0 +35,0 @@ "final-form": "^4.20.4", |
295714
6020
1