UNPKG

3.63 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 withFilePickers = function withFilePickers() {
36 var initialFilePickers = 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 filePickers: typeof initialFilePickers === 'function' ? initialFilePickers(props) : initialFilePickers
41 };
42 }, {
43 clearFilePickers: function clearFilePickers() {
44 return function () {
45 return {
46 filePickers: {}
47 };
48 };
49 },
50 setFilePickers: function setFilePickers() {
51 return function (payload) {
52 return {
53 filePickers: (0, _lodash["default"])(payload, isNil)
54 };
55 };
56 },
57 setFilePicker: function setFilePicker(_ref) {
58 var filePickers = _ref.filePickers;
59 return function (key, value) {
60 return isNil(value) ? {
61 filePickers: del(filePickers, key)
62 } : {
63 filePickers: (0, _objectSpread3["default"])({}, filePickers, (0, _defineProperty2["default"])({}, key, value))
64 };
65 };
66 },
67 deleteFilePicker: function deleteFilePicker(_ref2) {
68 var filePickers = _ref2.filePickers;
69 return function (key) {
70 return {
71 filePickers: del(filePickers, key)
72 };
73 };
74 },
75 mergeFilePickers: function mergeFilePickers(_ref3) {
76 var filePickers = _ref3.filePickers;
77 return function (payload) {
78 return {
79 filePickers: (0, _lodash["default"])((0, _objectSpread3["default"])({}, filePickers, payload), isNil)
80 };
81 };
82 }
83 }), (0, _withHandlers["default"])({
84 filePicker: function filePicker(_ref4) {
85 var filePickers = _ref4.filePickers;
86 return function (key) {
87 return filePickers[key];
88 };
89 },
90 filePickerHandler: function filePickerHandler(_ref5) {
91 var filePickers = _ref5.filePickers,
92 setFilePickers = _ref5.setFilePickers;
93 return function (_ref6) {
94 var target = _ref6.target;
95 var newFilePickers = (0, _objectSpread3["default"])({}, filePickers);
96
97 if (target.value !== '') {
98 newFilePickers[target.name] = target.files;
99 } else {
100 delete newFilePickers[target.name];
101 }
102
103 setFilePickers((0, _lodash["default"])(newFilePickers, isNil));
104 };
105 }
106 }))(Cmp);
107 };
108};
109
110var _default = withFilePickers;
111exports["default"] = _default;
\No newline at end of file