UNPKG

redux-form

Version:

A higher order component decorator for forms using Redux and React

37 lines (31 loc) 1.06 kB
import _toPath from 'lodash-es/toPath'; var createDeleteInWithCleanUp = function createDeleteInWithCleanUp(_ref) { var deepEqual = _ref.deepEqual; var empty = _ref.empty; var getIn = _ref.getIn; var deleteIn = _ref.deleteIn; var setIn = _ref.setIn; var deleteInWithCleanUp = function deleteInWithCleanUp(state, path) { if (path[path.length - 1] === ']') { // array path var pathTokens = _toPath(path); pathTokens.pop(); var parent = getIn(state, pathTokens.join('.')); return parent ? setIn(state, path, undefined) : state; } var result = deleteIn(state, path); var dotIndex = path.lastIndexOf('.'); if (dotIndex > 0) { var parentPath = path.substring(0, dotIndex); if (parentPath[parentPath.length - 1] !== ']') { var _parent = getIn(result, parentPath); if (deepEqual(_parent, empty)) { return deleteInWithCleanUp(result, parentPath); } } } return result; }; return deleteInWithCleanUp; }; export default createDeleteInWithCleanUp;