UNPKG

3.74 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
4
5var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
6
7_Object$defineProperty(exports, "__esModule", {
8 value: true
9});
10
11exports["default"] = void 0;
12
13var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
14
15var _objectSpread3 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/objectSpread"));
16
17var _lodash = _interopRequireDefault(require("lodash.omitby"));
18
19var _compose = _interopRequireDefault(require("recompose/compose"));
20
21var _withStateHandlers = _interopRequireDefault(require("recompose/withStateHandlers"));
22
23var _withHandlers = _interopRequireDefault(require("recompose/withHandlers"));
24
25var isNil = function isNil(val) {
26 return val === null || val === undefined;
27};
28
29var del = function del(fields, key) {
30 var newFields = (0, _objectSpread3["default"])({}, fields);
31 delete newFields[key];
32 return newFields;
33};
34
35var withFields = function withFields() {
36 var initialFields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37 return function (Cmp) {
38 return (0, _compose["default"])((0, _withStateHandlers["default"])(function (props) {
39 return {
40 fields: typeof initialFields === 'function' ? initialFields(props) : initialFields
41 };
42 }, {
43 clearFields: function clearFields() {
44 return function () {
45 return {
46 fields: {}
47 };
48 };
49 },
50 setFields: function setFields() {
51 return function (payload) {
52 return {
53 fields: (0, _lodash["default"])(payload, isNil)
54 };
55 };
56 },
57 setField: function setField(_ref) {
58 var fields = _ref.fields;
59 return function (key, value) {
60 return isNil(value) ? {
61 fields: del(fields, key)
62 } : {
63 fields: (0, _objectSpread3["default"])({}, fields, (0, _defineProperty2["default"])({}, key, value))
64 };
65 };
66 },
67 deleteField: function deleteField(_ref2) {
68 var fields = _ref2.fields;
69 return function (key) {
70 return {
71 fields: del(fields, key)
72 };
73 };
74 },
75 mergeFields: function mergeFields(_ref3) {
76 var fields = _ref3.fields;
77 return function (payload) {
78 return {
79 fields: (0, _lodash["default"])((0, _objectSpread3["default"])({}, fields, payload), isNil)
80 };
81 };
82 }
83 }), (0, _withHandlers["default"])({
84 field: function field(_ref4) {
85 var fields = _ref4.fields;
86 return function (key, isBoolean) {
87 var _fields$key;
88
89 return isBoolean ? !!fields[key] || fields[key] === '' : (_fields$key = fields[key]) !== null && _fields$key !== void 0 ? _fields$key : '';
90 };
91 },
92 onChange: function onChange(_ref5) {
93 var fields = _ref5.fields,
94 setFields = _ref5.setFields;
95 return function (_ref6) {
96 var target = _ref6.target;
97 var newFields = (0, _objectSpread3["default"])({}, fields);
98
99 if (target.type === 'checkbox') {
100 if (target.checked) {
101 newFields[target.name] = target.value;
102 } else {
103 delete newFields[target.name];
104 }
105 } else if (target.value !== '') {
106 newFields[target.name] = target.value;
107 } else {
108 delete newFields[target.name];
109 }
110
111 setFields((0, _lodash["default"])(newFields, isNil));
112 };
113 }
114 }))(Cmp);
115 };
116};
117
118var _default = withFields;
119exports["default"] = _default;
\No newline at end of file