react-hooks-validation
Advanced tools
Comparing version 1.0.4 to 1.1.0
@@ -8,2 +8,3 @@ "use strict"; | ||
exports.validateAll = validateAll; | ||
exports.reset = reset; | ||
@@ -28,3 +29,5 @@ var _react = _interopRequireWildcard(require("react")); | ||
var depended = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; | ||
if (!object.name) throw new Error("You should add a 'name' property on your object and provide a value for it!");else if (object.value === undefined) throw new Error("You should add a 'value' property on your object!");else if (object.contains && !Array.isArray(object.contains)) throw new Error("'contains' should be an Array!");else if (object.containsNot && !Array.isArray(object.containsNot)) throw new Error("'containsNot' should be an Array!"); | ||
if (!object.name) throw new Error("You should add a 'name' property on your object and provide a value for it!");else if (object.contains && !Array.isArray(object.contains)) throw new Error("'contains' should be an Array!");else if (object.containsNot && !Array.isArray(object.containsNot)) throw new Error("'containsNot' should be an Array!"); | ||
if (object.defaultValue === undefined) object.defaultValue = ''; | ||
if (object.value === undefined) object.value = object.defaultValue; | ||
@@ -49,2 +52,7 @@ var _useState = (0, _react.useState)(object.value), | ||
function reset() { | ||
setValue(object.defaultValue); | ||
setError(null); | ||
} | ||
(0, _react.useEffect)(function () { | ||
@@ -68,3 +76,5 @@ object.depend = depended; | ||
onChange: onChange, | ||
required: object.required | ||
required: object.required, | ||
defaultValue: object.defaultValue, | ||
reset: reset | ||
}; | ||
@@ -81,2 +91,8 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdC1ob29rcy12YWxpZGF0aW9uLmpzIl0sIm5hbWVzIjpbInVzZVZhbGlkYXRpb24iLCJvYmplY3QiLCJkZXBlbmRlZCIsIm5hbWUiLCJFcnJvciIsInZhbHVlIiwidW5kZWZpbmVkIiwiY29udGFpbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjb250YWluc05vdCIsInNldFZhbHVlIiwiZXJyb3IiLCJzZXRFcnJvciIsIm9uQ2hhbmdlIiwibmV3VmFsdWUiLCJkaXNhYmxlZCIsImRlcGVuZCIsInJlcXVpcmVkIiwidmFsaWRhdGVBbGwiLCJzY2hlbWEiLCJlcnIiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsImtleSIsInB1c2giLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsTUFBdkIsRUFBZ0Q7QUFBQSxNQUFqQkMsUUFBaUIsdUVBQU4sSUFBTTtBQUM3RCxNQUFJLENBQUNELE1BQU0sQ0FBQ0UsSUFBWixFQUNFLE1BQU0sSUFBSUMsS0FBSixDQUNKLDZFQURJLENBQU4sQ0FERixLQUlLLElBQUlILE1BQU0sQ0FBQ0ksS0FBUCxLQUFpQkMsU0FBckIsRUFDSCxNQUFNLElBQUlGLEtBQUosQ0FBVSxtREFBVixDQUFOLENBREcsS0FFQSxJQUFJSCxNQUFNLENBQUNNLFFBQVAsSUFBbUIsQ0FBQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNSLE1BQU0sQ0FBQ00sUUFBckIsQ0FBeEIsRUFDSCxNQUFNLElBQUlILEtBQUosQ0FBVSxnQ0FBVixDQUFOLENBREcsS0FFQSxJQUFJSCxNQUFNLENBQUNTLFdBQVAsSUFBc0IsQ0FBQ0YsS0FBSyxDQUFDQyxPQUFOLENBQWNSLE1BQU0sQ0FBQ1MsV0FBckIsQ0FBM0IsRUFDSCxNQUFNLElBQUlOLEtBQUosQ0FBVSxtQ0FBVixDQUFOOztBQVYyRCxrQkFZbkMscUJBQVNILE1BQU0sQ0FBQ0ksS0FBaEIsQ0FabUM7QUFBQTtBQUFBLE1BWXREQSxLQVpzRDtBQUFBLE1BWS9DTSxRQVorQzs7QUFBQSxtQkFhbkMscUJBQVMsSUFBVCxDQWJtQztBQUFBO0FBQUEsTUFhdERDLEtBYnNEO0FBQUEsTUFhL0NDLFFBYitDOztBQWU3RCxXQUFTQyxRQUFULENBQWtCQyxRQUFsQixFQUE0QjtBQUMxQixRQUFJZCxNQUFNLENBQUNlLFFBQVgsRUFBcUIsT0FBTyxLQUFQO0FBQ3JCTCxJQUFBQSxRQUFRLENBQUNJLFFBQUQsQ0FBUjtBQUNBZCxJQUFBQSxNQUFNLENBQUNnQixNQUFQLEdBQWdCZixRQUFoQjtBQUNBRCxJQUFBQSxNQUFNLENBQUNJLEtBQVAsR0FBZVUsUUFBZjtBQUNBRixJQUFBQSxRQUFRLENBQUMsQ0FBQywwQkFBU1osTUFBVCxDQUFGLENBQVI7QUFDRDs7QUFFRCx3QkFBVSxZQUFNO0FBQ2RBLElBQUFBLE1BQU0sQ0FBQ2dCLE1BQVAsR0FBZ0JmLFFBQWhCO0FBQ0EsUUFBSUQsTUFBTSxDQUFDSSxLQUFYLEVBQWtCUSxRQUFRLENBQUMsQ0FBQywwQkFBU1osTUFBVCxDQUFGLENBQVI7QUFDbkIsR0FIRCxFQUdHLEVBSEg7O0FBS0EsTUFBSUEsTUFBTSxDQUFDVyxLQUFQLEtBQWlCLElBQWpCLElBQTBCWCxNQUFNLENBQUNJLEtBQVAsS0FBaUIsRUFBakIsSUFBdUJKLE1BQU0sQ0FBQ0ksS0FBUCxLQUFpQixJQUF4QyxJQUFnREosTUFBTSxDQUFDSSxLQUFQLEtBQWlCQyxTQUEvRixFQUEyRztBQUN6R08sSUFBQUEsUUFBUSxDQUFDLENBQUMsMEJBQVNaLE1BQVQsQ0FBRixDQUFSO0FBQ0Q7O0FBR0QsTUFBSUEsTUFBTSxDQUFDVyxLQUFQLElBQWdCLElBQWhCLElBQXdCLENBQUNYLE1BQU0sQ0FBQ2lCLFFBQXBDLEVBQThDO0FBQzVDakIsSUFBQUEsTUFBTSxDQUFDVyxLQUFQLEdBQWUsS0FBZjtBQUNELEdBRkQsTUFHS1gsTUFBTSxDQUFDVyxLQUFQLEdBQWVBLEtBQWY7O0FBRUwsU0FBTztBQUNMVCxJQUFBQSxJQUFJLEVBQUVGLE1BQU0sQ0FBQ0UsSUFEUjtBQUVMRSxJQUFBQSxLQUFLLEVBQUxBLEtBRks7QUFHTE8sSUFBQUEsS0FBSyxFQUFFWCxNQUFNLENBQUNXLEtBSFQ7QUFJTEUsSUFBQUEsUUFBUSxFQUFSQSxRQUpLO0FBS0xJLElBQUFBLFFBQVEsRUFBRWpCLE1BQU0sQ0FBQ2lCO0FBTFosR0FBUDtBQU9EOztBQUVNLFNBQVNDLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTZCO0FBQ2xDLE1BQUlDLEdBQUcsR0FBRyxFQUFWO0FBQ0FDLEVBQUFBLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxNQUFaLEVBQW9CSSxPQUFwQixDQUE0QixVQUFBQyxHQUFHLEVBQUk7QUFDakMsUUFDRUwsTUFBTSxDQUFDSyxHQUFELENBQU4sQ0FBWWIsS0FBWixJQUNBUSxNQUFNLENBQUNLLEdBQUQsQ0FBTixDQUFZYixLQUFaLEtBQXNCLElBRHRCLElBRUEsQ0FBQywwQkFBU1EsTUFBTSxDQUFDSyxHQUFELENBQWYsQ0FISCxFQUtFSixHQUFHLENBQUNLLElBQUosQ0FBU04sTUFBTSxDQUFDSyxHQUFELENBQU4sQ0FBWXRCLElBQXJCO0FBQ0gsR0FQRDtBQVFBLE1BQUlrQixHQUFHLENBQUNNLE1BQUosR0FBYSxDQUFqQixFQUFvQixPQUFPTixHQUFQO0FBQ3BCLFNBQU8sSUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCIuL3ZhbGlkYXRlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VWYWxpZGF0aW9uKG9iamVjdCwgZGVwZW5kZWQgPSBudWxsKSB7XHJcbiAgaWYgKCFvYmplY3QubmFtZSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgXCJZb3Ugc2hvdWxkIGFkZCBhICduYW1lJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCBhbmQgcHJvdmlkZSBhIHZhbHVlIGZvciBpdCFcIlxyXG4gICAgKTtcclxuICBlbHNlIGlmIChvYmplY3QudmFsdWUgPT09IHVuZGVmaW5lZClcclxuICAgIHRocm93IG5ldyBFcnJvcihcIllvdSBzaG91bGQgYWRkIGEgJ3ZhbHVlJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCFcIik7XHJcbiAgZWxzZSBpZiAob2JqZWN0LmNvbnRhaW5zICYmICFBcnJheS5pc0FycmF5KG9iamVjdC5jb250YWlucykpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInY29udGFpbnMnIHNob3VsZCBiZSBhbiBBcnJheSFcIik7XHJcbiAgZWxzZSBpZiAob2JqZWN0LmNvbnRhaW5zTm90ICYmICFBcnJheS5pc0FycmF5KG9iamVjdC5jb250YWluc05vdCkpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCInY29udGFpbnNOb3QnIHNob3VsZCBiZSBhbiBBcnJheSFcIik7XHJcblxyXG4gIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUob2JqZWN0LnZhbHVlKTtcclxuICBjb25zdCBbZXJyb3IsIHNldEVycm9yXSA9IHVzZVN0YXRlKG51bGwpO1xyXG5cclxuICBmdW5jdGlvbiBvbkNoYW5nZShuZXdWYWx1ZSkge1xyXG4gICAgaWYgKG9iamVjdC5kaXNhYmxlZCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgc2V0VmFsdWUobmV3VmFsdWUpO1xyXG4gICAgb2JqZWN0LmRlcGVuZCA9IGRlcGVuZGVkO1xyXG4gICAgb2JqZWN0LnZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuICB1c2VFZmZlY3QoKCkgPT4ge1xyXG4gICAgb2JqZWN0LmRlcGVuZCA9IGRlcGVuZGVkO1xyXG4gICAgaWYgKG9iamVjdC52YWx1ZSkgc2V0RXJyb3IoIXZhbGlkYXRlKG9iamVjdCkpO1xyXG4gIH0sIFtdKTtcclxuXHJcbiAgaWYgKG9iamVjdC5lcnJvciA9PT0gbnVsbCAmJiAob2JqZWN0LnZhbHVlICE9PSAnJyAmJiBvYmplY3QudmFsdWUgIT09IG51bGwgJiYgb2JqZWN0LnZhbHVlICE9PSB1bmRlZmluZWQpKSB7XHJcbiAgICBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgaWYgKG9iamVjdC5lcnJvciAhPSB0cnVlICYmICFvYmplY3QucmVxdWlyZWQpIHtcclxuICAgIG9iamVjdC5lcnJvciA9IGZhbHNlO1xyXG4gIH1cclxuICBlbHNlIG9iamVjdC5lcnJvciA9IGVycm9yO1xyXG5cclxuICByZXR1cm4ge1xyXG4gICAgbmFtZTogb2JqZWN0Lm5hbWUsXHJcbiAgICB2YWx1ZSxcclxuICAgIGVycm9yOiBvYmplY3QuZXJyb3IsXHJcbiAgICBvbkNoYW5nZSxcclxuICAgIHJlcXVpcmVkOiBvYmplY3QucmVxdWlyZWRcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVBbGwoc2NoZW1hKSB7XHJcbiAgdmFyIGVyciA9IFtdO1xyXG4gIE9iamVjdC5rZXlzKHNjaGVtYSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgaWYgKFxyXG4gICAgICBzY2hlbWFba2V5XS5lcnJvciB8fFxyXG4gICAgICBzY2hlbWFba2V5XS5lcnJvciA9PT0gbnVsbCB8fFxyXG4gICAgICAhdmFsaWRhdGUoc2NoZW1hW2tleV0pXHJcbiAgICApXHJcbiAgICAgIGVyci5wdXNoKHNjaGVtYVtrZXldLm5hbWUpO1xyXG4gIH0pO1xyXG4gIGlmIChlcnIubGVuZ3RoID4gMCkgcmV0dXJuIGVycjtcclxuICByZXR1cm4gbnVsbDtcclxufVxyXG4iXX0= | ||
function reset(schema) { | ||
Object.keys(schema).forEach(function (key) { | ||
schema[key].reset(); | ||
}); | ||
} | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdC1ob29rcy12YWxpZGF0aW9uLmpzIl0sIm5hbWVzIjpbInVzZVZhbGlkYXRpb24iLCJvYmplY3QiLCJkZXBlbmRlZCIsIm5hbWUiLCJFcnJvciIsImNvbnRhaW5zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnNOb3QiLCJkZWZhdWx0VmFsdWUiLCJ1bmRlZmluZWQiLCJ2YWx1ZSIsInNldFZhbHVlIiwiZXJyb3IiLCJzZXRFcnJvciIsIm9uQ2hhbmdlIiwibmV3VmFsdWUiLCJkaXNhYmxlZCIsImRlcGVuZCIsInJlc2V0IiwicmVxdWlyZWQiLCJ2YWxpZGF0ZUFsbCIsInNjaGVtYSIsImVyciIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwicHVzaCIsImxlbmd0aCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7Ozs7Ozs7Ozs7Ozs7O0FBRWUsU0FBU0EsYUFBVCxDQUF1QkMsTUFBdkIsRUFBZ0Q7QUFBQSxNQUFqQkMsUUFBaUIsdUVBQU4sSUFBTTtBQUM3RCxNQUFJLENBQUNELE1BQU0sQ0FBQ0UsSUFBWixFQUNFLE1BQU0sSUFBSUMsS0FBSixDQUNKLDZFQURJLENBQU4sQ0FERixLQUlLLElBQUlILE1BQU0sQ0FBQ0ksUUFBUCxJQUFtQixDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY04sTUFBTSxDQUFDSSxRQUFyQixDQUF4QixFQUNILE1BQU0sSUFBSUQsS0FBSixDQUFVLGdDQUFWLENBQU4sQ0FERyxLQUVBLElBQUlILE1BQU0sQ0FBQ08sV0FBUCxJQUFzQixDQUFDRixLQUFLLENBQUNDLE9BQU4sQ0FBY04sTUFBTSxDQUFDTyxXQUFyQixDQUEzQixFQUNILE1BQU0sSUFBSUosS0FBSixDQUFVLG1DQUFWLENBQU47QUFFRixNQUFJSCxNQUFNLENBQUNRLFlBQVAsS0FBd0JDLFNBQTVCLEVBQXVDVCxNQUFNLENBQUNRLFlBQVAsR0FBc0IsRUFBdEI7QUFDdkMsTUFBSVIsTUFBTSxDQUFDVSxLQUFQ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RyxNQUFmLEVBQXVCO0FBQzVCRSxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUgsTUFBWixFQUFvQkksT0FBcEIsQ0FBNEIsVUFBQUMsR0FBRyxFQUFJO0FBQ2pDTCxJQUFBQSxNQUFNLENBQUNLLEdBQUQsQ0FBTixDQUFZUixLQUFaO0FBQ0QsR0FGRDtBQUdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHZhbGlkYXRlIGZyb20gXCIuL3ZhbGlkYXRlXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VWYWxpZGF0aW9uKG9iamVjdCwgZGVwZW5kZWQgPSBudWxsKSB7XHJcbiAgaWYgKCFvYmplY3QubmFtZSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgXCJZb3Ugc2hvdWxkIGFkZCBhICduYW1lJyBwcm9wZXJ0eSBvbiB5b3VyIG9iamVjdCBhbmQgcHJvdmlkZSBhIHZhbHVlIGZvciBpdCFcIlxyXG4gICAgKTtcclxuICBlbHNlIGlmIChvYmplY3QuY29udGFpbnMgJiYgIUFycmF5LmlzQXJyYXkob2JqZWN0LmNvbnRhaW5zKSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcIidjb250YWlucycgc2hvdWxkIGJlIGFuIEFycmF5IVwiKTtcclxuICBlbHNlIGlmIChvYmplY3QuY29udGFpbnNOb3QgJiYgIUFycmF5LmlzQXJyYXkob2JqZWN0LmNvbnRhaW5zTm90KSlcclxuICAgIHRocm93IG5ldyBFcnJvcihcIidjb250YWluc05vdCcgc2hvdWxkIGJlIGFuIEFycmF5IVwiKTtcclxuXHJcbiAgaWYgKG9iamVjdC5kZWZhdWx0VmFsdWUgPT09IHVuZGVmaW5lZCkgb2JqZWN0LmRlZmF1bHRWYWx1ZSA9ICcnO1xyXG4gIGlmIChvYmplY3QudmFsdWUgPT09IHVuZGVmaW5lZCkgb2JqZWN0LnZhbHVlID0gb2JqZWN0LmRlZmF1bHRWYWx1ZTtcclxuXHJcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShvYmplY3QudmFsdWUpO1xyXG4gIGNvbnN0IFtlcnJvciwgc2V0RXJyb3JdID0gdXNlU3RhdGUobnVsbCk7XHJcblxyXG4gIGZ1bmN0aW9uIG9uQ2hhbmdlKG5ld1ZhbHVlKSB7XHJcbiAgICBpZiAob2JqZWN0LmRpc2FibGVkKSByZXR1cm4gZmFsc2U7XHJcbiAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgICBvYmplY3QuZGVwZW5kID0gZGVwZW5kZWQ7XHJcbiAgICBvYmplY3QudmFsdWUgPSBuZXdWYWx1ZTtcclxuICAgIHNldEVycm9yKCF2YWxpZGF0ZShvYmplY3QpKTtcclxuICB9XHJcblxyXG4gIGZ1bmN0aW9uIHJlc2V0KCkge1xyXG4gICAgc2V0VmFsdWUob2JqZWN0LmRlZmF1bHRWYWx1ZSk7XHJcbiAgICBzZXRFcnJvcihudWxsKTtcclxuICB9XHJcblxyXG4gIHVzZUVmZmVjdCgoKSA9PiB7XHJcbiAgICBvYmplY3QuZGVwZW5kID0gZGVwZW5kZWQ7XHJcbiAgICBpZiAob2JqZWN0LnZhbHVlKSBzZXRFcnJvcighdmFsaWRhdGUob2JqZWN0KSk7XHJcbiAgfSwgW10pO1xyXG5cclxuICBpZiAob2JqZWN0LmVycm9yID09PSBudWxsICYmIChvYmplY3QudmFsdWUgIT09ICcnICYmIG9iamVjdC52YWx1ZSAhPT0gbnVsbCAmJiBvYmplY3QudmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgIHNldEVycm9yKCF2YWxpZGF0ZShvYmplY3QpKTtcclxuICB9XHJcblxyXG4gIGlmIChvYmplY3QuZXJyb3IgIT0gdHJ1ZSAmJiAhb2JqZWN0LnJlcXVpcmVkKSB7XHJcbiAgICBvYmplY3QuZXJyb3IgPSBmYWxzZTtcclxuICB9XHJcbiAgZWxzZSBvYmplY3QuZXJyb3IgPSBlcnJvcjtcclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIG5hbWU6IG9iamVjdC5uYW1lLFxyXG4gICAgdmFsdWUsXHJcbiAgICBlcnJvcjogb2JqZWN0LmVycm9yLFxyXG4gICAgb25DaGFuZ2UsXHJcbiAgICByZXF1aXJlZDogb2JqZWN0LnJlcXVpcmVkLFxyXG4gICAgZGVmYXVsdFZhbHVlOiBvYmplY3QuZGVmYXVsdFZhbHVlLFxyXG4gICAgcmVzZXQ6IHJlc2V0XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQWxsKHNjaGVtYSkge1xyXG4gIHZhciBlcnIgPSBbXTtcclxuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcclxuICAgIGlmIChcclxuICAgICAgc2NoZW1hW2tleV0uZXJyb3IgfHxcclxuICAgICAgc2NoZW1hW2tleV0uZXJyb3IgPT09IG51bGwgfHxcclxuICAgICAgIXZhbGlkYXRlKHNjaGVtYVtrZXldKVxyXG4gICAgKVxyXG4gICAgICBlcnIucHVzaChzY2hlbWFba2V5XS5uYW1lKTtcclxuICB9KTtcclxuICBpZiAoZXJyLmxlbmd0aCA+IDApIHJldHVybiBlcnI7XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXNldChzY2hlbWEpIHtcclxuICBPYmplY3Qua2V5cyhzY2hlbWEpLmZvckVhY2goa2V5ID0+IHtcclxuICAgIHNjaGVtYVtrZXldLnJlc2V0KCk7XHJcbiAgfSk7XHJcbn0iXX0= |
{ | ||
"name": "react-hooks-validation", | ||
"version": "1.0.4", | ||
"version": "1.1.0", | ||
"description": "Simple form validation for your React Hooks project.", | ||
@@ -36,2 +36,2 @@ "main": "dist/react-hooks-validation.js", | ||
] | ||
} | ||
} |
128
README.md
@@ -21,3 +21,3 @@ # react-hooks-validation | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
required: true | ||
@@ -32,5 +32,9 @@ } | ||
{ | ||
name: 'name', //name | ||
value: '', //the current value | ||
error: false, //returns true or false to let us know if validation is ok or not | ||
onChange: function(value) //we need to call onChange everytime we need to change a value | ||
required: false, //returns true or false if field is required or not | ||
defaultValue: '', //returns defaultValue if we provided one | ||
onChange: function(value), //we need to call onChange everytime we need to change a value | ||
reset: function() //we call that if we need to reset validation for that field | ||
} | ||
@@ -45,8 +49,11 @@ ``` | ||
### reset(object) | ||
`reset(object)` expects an object that contains objects from `useValidation(object)`. And it will reset the validation for the object, and all values will be set to their `defaultValue`s. | ||
## DEMO | ||
Here is a simple demo of how to use `useValidation(object)` and `validateAll(object)` together: | ||
Here is a simple demo of how to use `useValidation(object)`, `validateAll(object)` and `reset(object)` together: | ||
``` | ||
import useValidation, { validateAll } from 'react-hooks-validation'; | ||
import useValidation, { validateAll, reset } from 'react-hooks-validation'; | ||
@@ -57,3 +64,3 @@ function MyClass(){ | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
required: true | ||
@@ -63,3 +70,3 @@ }, | ||
name: 'lastName', | ||
value: '', | ||
defaultValue: '', | ||
required: true | ||
@@ -74,8 +81,13 @@ } | ||
handleChange({currentTarget: input}){ | ||
function handleChange({currentTarget: input}){ | ||
data[input.name].onChange(value); | ||
} | ||
function handleOnSubmit(e){ | ||
e.preventDefault(); | ||
reset(data); | ||
} | ||
return( | ||
<form> | ||
<form onSubmit={handleOnSubmit}> | ||
<div> | ||
@@ -109,3 +121,3 @@ <label>First Name:</label> | ||
name: 'password', | ||
value: '', | ||
defaultValue: '', | ||
required: true, | ||
@@ -117,3 +129,3 @@ min: 6, | ||
name: 'confirmPassword', | ||
value: '', | ||
defaultValue: '', | ||
required: true | ||
@@ -139,7 +151,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo' //the default value will be 'Kosovo' now | ||
defaultValue: 'Kosovo' //the default value will be 'Kosovo' now | ||
} | ||
@@ -155,3 +167,3 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
required: true // this will be required now | ||
@@ -161,3 +173,3 @@ }, | ||
name: 'country', | ||
value: 'Kosovo' | ||
defaultValue: 'Kosovo' | ||
} | ||
@@ -173,7 +185,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
disabled: true //now you will not be able to change this value | ||
@@ -190,7 +202,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
age: { | ||
name: 'age', | ||
value: 2, | ||
defaultValue: 2, | ||
number: true // we will require this to be number now | ||
@@ -207,3 +219,3 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
min: 2 //the minimum required length of the value is 2 | ||
@@ -213,3 +225,3 @@ }, | ||
name: 'age', | ||
value: 18, | ||
defaultValue: 18, | ||
number: true, | ||
@@ -220,3 +232,3 @@ min: 18 //the minimum required number is 18 | ||
name: 'projects', | ||
value: [], | ||
defaultValue: [], | ||
array: true, | ||
@@ -234,3 +246,3 @@ min: 2 //the array shuld have minimum 2 elements | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
max: 30 // the maximum value length is 30 characters | ||
@@ -240,3 +252,3 @@ }, | ||
name: 'age', | ||
value: 18, | ||
defaultValue: 18, | ||
number: true, | ||
@@ -248,3 +260,3 @@ min: 18, //the mimumum number required is 18 | ||
name: 'projects', | ||
value: [], | ||
defaultValue: [], | ||
array: true, | ||
@@ -262,7 +274,7 @@ max: 2 //the array shuld have maximum 2 elements | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
countries: { | ||
name: 'countries', | ||
value: ['Kosovo', 'Albania', 'United States', 'Sweden'], | ||
defaultValue: ['Kosovo', 'Albania', 'United States', 'Sweden'], | ||
array: true // we will require value to be array | ||
@@ -279,7 +291,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
email: { | ||
name: 'email', | ||
value: '', | ||
defaultValue: '', | ||
email: true // this value now will need to match an email pattern | ||
@@ -296,7 +308,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
acceptTerms: { | ||
name: 'acceptTerms', | ||
value: false, | ||
defaultValue: false, | ||
boolean: true // this value needs to be boolean now | ||
@@ -313,7 +325,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: '', | ||
defaultValue: '', | ||
regex : /^[a-zA-Z]+$/ //now the value should match the regex pattern | ||
@@ -331,7 +343,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
birthday: { | ||
name: 'birthday', | ||
value: '', | ||
defaultValue: '', | ||
date: true // the value will need to be in a date format, and it will try to parse any format | ||
@@ -341,3 +353,3 @@ }, | ||
name: 'startDate', | ||
value: '', | ||
defaultValue: '', | ||
date: true, // the value will need to be in a date format | ||
@@ -355,3 +367,3 @@ format: 'DD.MM.YYYY' // and will need to be in this format. | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
greater: 2 // the value length should be more than 2 | ||
@@ -361,3 +373,3 @@ }, | ||
name: 'experience', | ||
value: 3, | ||
defaultValue: 3, | ||
number: true, | ||
@@ -368,3 +380,3 @@ greater: 2 // the number should be greater than 2 | ||
name: 'projects', | ||
value: [], | ||
defaultValue: [], | ||
array: true, | ||
@@ -382,3 +394,3 @@ greater: 2 //the array shuld have more than 2 elements | ||
name: 'firstName', | ||
value: '',, | ||
defaultValue: '',, | ||
less: 100 // the value length should be less than 100 | ||
@@ -388,3 +400,3 @@ }, | ||
name: 'experience', | ||
value: 1, | ||
defaultValue: 1, | ||
number: true, | ||
@@ -395,3 +407,3 @@ less: 2 // the number should be less than 2 | ||
name: 'projects', | ||
value: [], | ||
defaultValue: [], | ||
array: true, | ||
@@ -409,7 +421,7 @@ less: 4 //the array shuld have less than 4 elements | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'KOSOVO', | ||
defaultValue: 'KOSOVO', | ||
uppercase: true // now the value should be in uppercase | ||
@@ -426,7 +438,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'kosovo', | ||
defaultValue: 'kosovo', | ||
lowercase: true // now the value should be in lowercase | ||
@@ -443,7 +455,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
valid: 'Kosovo' //now the value should match the 'Kosovo' string | ||
@@ -453,3 +465,3 @@ }, | ||
name: 'age', | ||
value: 18, | ||
defaultValue: 18, | ||
number: true, | ||
@@ -467,7 +479,7 @@ valid: 18 //now the value should be 18 | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
is: ['Kosovo', 'Albania'] // now the value should be one of values in this array | ||
@@ -484,7 +496,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
contains: 'os' // the value should contain 'os' string inside | ||
@@ -501,7 +513,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
invalid: 'Africa' // the value should not be 'Africa' | ||
@@ -518,7 +530,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
isNot: ['Africa', 'Australia'] // the value should not be one of the elements in this arrat | ||
@@ -535,7 +547,7 @@ } | ||
name: 'firstName', | ||
value: '', | ||
defaultValue: '', | ||
}, | ||
country: { | ||
name: 'country', | ||
value: 'Kosovo', | ||
defaultValue: 'Kosovo', | ||
containsNot: 'a' //the value should not contain 'a'. | ||
@@ -542,0 +554,0 @@ } |
44874
229
517