UNPKG

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