@mysetup/hooks 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { type AlertState } from "@mysetup/types";
|
|
2
3
|
import type { RuleInfo, RuleName, Validations } from "./types";
|
|
3
4
|
export declare const message: <T extends Record<keyof T, unknown> = object>(rule: RuleName, field: keyof T, rulesList: Record<RuleName, RuleInfo>, validations: Validations<T>) => string;
|
|
@@ -8,5 +9,5 @@ export declare const sizeText: (type: unknown) => "" | " characters" | " element
|
|
|
8
9
|
export declare const isBlank: (value: unknown) => boolean;
|
|
9
10
|
export declare const testRegex: (value: string, regex: string | RegExp) => boolean;
|
|
10
11
|
export declare const getValidationClass: (value?: AlertState, customClass?: string[]) => string[] | undefined;
|
|
11
|
-
export declare const getValidationMessage: (value?: AlertState) =>
|
|
12
|
+
export declare const getValidationMessage: (value?: AlertState) => React.JSX.Element;
|
|
12
13
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/useForm/helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAChD,QAAQ,SACP,MAAM,CAAC,aACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,eACxB,WAAW,CAAC,CAAC,CAAC,WA4B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,WAO9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,OAAO,OAEhD,CAAC;AAEF,eAAO,MAAM,IAAI,QAAS,MAAM,QAAQ,OAAO,WAQ9C,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,OAAO,qCAOrC,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,OAAO,YAMrC,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,SAAS,MAAM,GAAG,MAAM,YAE9D,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACnB,UAAU,gBACJ,MAAM,EAAE,yBAGzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,UAAU,
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/useForm/helpers.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAChD,QAAQ,SACP,MAAM,CAAC,aACH,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,eACxB,WAAW,CAAC,CAAC,CAAC,WA4B9B,CAAC;AAEF,eAAO,MAAM,iBAAiB,UAAW,MAAM,WAO9C,CAAC;AAEF,eAAO,MAAM,kBAAkB,UAAW,OAAO,OAEhD,CAAC;AAEF,eAAO,MAAM,IAAI,QAAS,MAAM,QAAQ,OAAO,WAQ9C,CAAC;AAEF,eAAO,MAAM,QAAQ,SAAU,OAAO,qCAOrC,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,OAAO,YAMrC,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,SAAS,MAAM,GAAG,MAAM,YAE9D,CAAC;AAEF,eAAO,MAAM,kBAAkB,WACnB,UAAU,gBACJ,MAAM,EAAE,yBAGzB,CAAC;AAEF,eAAO,MAAM,oBAAoB,WAAY,UAAU,sBAYtD,CAAC"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.getValidationMessage = exports.getValidationClass = exports.testRegex = exports.isBlank = exports.sizeText = exports.size = exports.valueOrEmptyString = exports.humanizeFieldName = exports.message = void 0;
|
|
7
|
+
var react_1 = __importDefault(require("react"));
|
|
4
8
|
var classnames_1 = require("@mysetup/classnames");
|
|
5
9
|
var types_1 = require("./types");
|
|
6
10
|
var message = function (rule, field, rulesList, validations) {
|
|
@@ -79,6 +83,6 @@ var getValidationClass = function (value, customClass) {
|
|
|
79
83
|
exports.getValidationClass = getValidationClass;
|
|
80
84
|
var getValidationMessage = function (value) {
|
|
81
85
|
var messageClasses = (0, classnames_1.classNames)("mt-1 text-[10px] leading-[18px]", value && types_1.stateMessageClasses[value.type]);
|
|
82
|
-
return (
|
|
86
|
+
return (react_1.default.createElement(react_1.default.Fragment, null, value ? (react_1.default.createElement("div", { className: messageClasses }, value.message)) : null));
|
|
83
87
|
};
|
|
84
88
|
exports.getValidationMessage = getValidationMessage;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FormEvent } from "react";
|
|
2
2
|
import type { AlertState } from "@mysetup/types";
|
|
3
3
|
import type { FormValue, Validations } from "./types";
|
|
4
|
-
export declare const useForm: <T extends Record<keyof T, unknown> =
|
|
4
|
+
export declare const useForm: <T extends Record<keyof T, unknown> = Record<string, unknown>>(options?: {
|
|
5
5
|
validations: Validations<T>;
|
|
6
6
|
initialValues?: Partial<T>;
|
|
7
7
|
onReset?: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../src/useForm/useForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAKhE,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"useForm.d.ts","sourceRoot":"","sources":["../../../src/useForm/useForm.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAY,WAAW,EAAE,MAAM,SAAS,CAAC;AAKhE,eAAO,MAAM,OAAO,GAChB,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,sCAC1B;IACR,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;6BAqRmC,MAAM,CAAC;;0BAKb,SAAS;;;;;;wBArPR,MAAM,CAAC;;wBA9BzB,MAAM,CAAC,SACL,SAAS;uBAmIY,SAAS,CAAC,eAAe,CAAC;4BApH3B,MAAM,CAAC;;;;4BA+QP,OAAO,CAAC,CAAC,CAAC;CAsB5C,CAAC"}
|
|
@@ -56,8 +56,6 @@ var useForm = function (options) {
|
|
|
56
56
|
var _b = (0, react_1.useState)({}), errors = _b[0], setErrors = _b[1];
|
|
57
57
|
var _c = (0, react_1.useState)({}), passed = _c[0], setPassed = _c[1];
|
|
58
58
|
var _d = (0, react_1.useState)(false), isSubmitted = _d[0], setIsSubmitted = _d[1];
|
|
59
|
-
var newErrors = {};
|
|
60
|
-
var newPassed = {};
|
|
61
59
|
var handleChange = function (key, value, showError) {
|
|
62
60
|
if (showError === void 0) { showError = false; }
|
|
63
61
|
setData(function (prev) {
|
|
@@ -76,7 +74,7 @@ var useForm = function (options) {
|
|
|
76
74
|
handleChange(key, value.trim(), showError);
|
|
77
75
|
return;
|
|
78
76
|
}
|
|
79
|
-
var isValid = checkFieldValidation(key,
|
|
77
|
+
var isValid = checkFieldValidation(key, value, showError).isValid;
|
|
80
78
|
if (isValid) {
|
|
81
79
|
clearError(key);
|
|
82
80
|
}
|
|
@@ -164,49 +162,59 @@ var useForm = function (options) {
|
|
|
164
162
|
};
|
|
165
163
|
};
|
|
166
164
|
var handleSubmit = function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
167
|
-
var isValid, validations,
|
|
168
|
-
var
|
|
169
|
-
return __generator(this, function (
|
|
165
|
+
var isValid, validations, _loop_2, key;
|
|
166
|
+
var _a;
|
|
167
|
+
return __generator(this, function (_b) {
|
|
170
168
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
171
169
|
setIsSubmitted(true);
|
|
172
170
|
isValid = true;
|
|
173
171
|
validations = options === null || options === void 0 ? void 0 : options.validations;
|
|
174
172
|
if (validations) {
|
|
175
|
-
|
|
176
|
-
inputValue = data[key];
|
|
177
|
-
validationRules = (
|
|
178
|
-
|
|
179
|
-
rule =
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
ruleValue = rulesList_1.rulesList[normalizeRuleName];
|
|
173
|
+
_loop_2 = function (key) {
|
|
174
|
+
var inputValue = data[key];
|
|
175
|
+
var validationRules = (_a = validations[key]) === null || _a === void 0 ? void 0 : _a.rules;
|
|
176
|
+
var _loop_3 = function (rule) {
|
|
177
|
+
var _d = normalizeValues(inputValue, rule), value = _d[0], ruleName = _d[1], params = _d[2];
|
|
178
|
+
var normalizeValue = value;
|
|
179
|
+
var normalizeRuleName = ruleName;
|
|
180
|
+
var normalizeParams = params;
|
|
181
|
+
var ruleValue = rulesList_1.rulesList[normalizeRuleName];
|
|
185
182
|
if (!passes(normalizeRuleName, normalizeValue, normalizeParams)) {
|
|
186
183
|
isValid = false;
|
|
187
|
-
|
|
184
|
+
var msg_2 = (0, helpers_1.message)(normalizeRuleName, key, rulesList_1.rulesList, validations);
|
|
188
185
|
if (normalizeParams.length > 0 &&
|
|
189
186
|
Object.prototype.hasOwnProperty.call(rulesList_1.rulesList[normalizeRuleName], "messageReplace")) {
|
|
190
|
-
|
|
191
|
-
? ruleValue.messageReplace(
|
|
187
|
+
msg_2 = ruleValue.messageReplace
|
|
188
|
+
? ruleValue.messageReplace(msg_2, normalizeParams)
|
|
192
189
|
: "";
|
|
193
190
|
}
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
191
|
+
setErrors(function (prev) {
|
|
192
|
+
var _a;
|
|
193
|
+
return (__assign(__assign({}, prev), (_a = {}, _a[key] = {
|
|
194
|
+
type: "error",
|
|
195
|
+
message: msg_2,
|
|
196
|
+
}, _a)));
|
|
197
|
+
});
|
|
198
198
|
}
|
|
199
199
|
else {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
200
|
+
setPassed(function (prev) {
|
|
201
|
+
var _a;
|
|
202
|
+
return (__assign(__assign({}, prev), (_a = {}, _a[key] = {
|
|
203
|
+
type: "success",
|
|
204
|
+
message: "",
|
|
205
|
+
}, _a)));
|
|
206
|
+
});
|
|
205
207
|
}
|
|
208
|
+
};
|
|
209
|
+
for (var _i = 0, _c = validationRules || []; _i < _c.length; _i++) {
|
|
210
|
+
var rule = _c[_i];
|
|
211
|
+
_loop_3(rule);
|
|
206
212
|
}
|
|
213
|
+
};
|
|
214
|
+
for (key in validations) {
|
|
215
|
+
_loop_2(key);
|
|
207
216
|
}
|
|
208
217
|
if (!isValid) {
|
|
209
|
-
setErrors(newErrors);
|
|
210
218
|
return [2 /*return*/];
|
|
211
219
|
}
|
|
212
220
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mysetup/hooks",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"files": [
|
|
@@ -35,16 +35,16 @@
|
|
|
35
35
|
"@mysetup/prettier-config": "latest",
|
|
36
36
|
"@mysetup/test-helpers": "latest",
|
|
37
37
|
"@mysetup/tsconfig": "latest",
|
|
38
|
-
"@testing-library/react": "^16.0
|
|
38
|
+
"@testing-library/react": "^16.2.0",
|
|
39
39
|
"@types/jest": "^29.5.14",
|
|
40
|
-
"@types/node": "^22.
|
|
41
|
-
"@types/react": "^
|
|
42
|
-
"@types/react-dom": "^
|
|
40
|
+
"@types/node": "^22.13.1",
|
|
41
|
+
"@types/react": "^19.0.8",
|
|
42
|
+
"@types/react-dom": "^19.0.3",
|
|
43
43
|
"eslint": "8.57.0",
|
|
44
44
|
"jest": "^29.7.0",
|
|
45
45
|
"react": "^18.3.1",
|
|
46
46
|
"react-dom": "^18.3.1",
|
|
47
|
-
"typescript": "^5.
|
|
47
|
+
"typescript": "^5.7.3"
|
|
48
48
|
},
|
|
49
49
|
"prettier": "@mysetup/prettier-config",
|
|
50
50
|
"engines": {
|