Skip to content

Commit cb73743

Browse files
authored
feat(validateFields): add message to reject error type (#748)
1 parent 24c7583 commit cb73743

File tree

3 files changed

+7
-1
lines changed

3 files changed

+7
-1
lines changed

src/interface.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ export type RuleObject = AggregationRule | ArrayRule;
8686
export type Rule = RuleObject | RuleRender;
8787

8888
export interface ValidateErrorEntity<Values = any> {
89+
message: string;
8990
values: Values;
9091
errorFields: { name: InternalNamePath; errors: string[] }[];
9192
outOfDate: boolean;

src/useForm.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,9 @@ export class FormStore {
982982
})
983983
.catch((results: { name: InternalNamePath; errors: string[] }[]) => {
984984
const errorList = results.filter(result => result && result.errors.length);
985+
const errorMessage = errorList[0]?.errors?.[0];
985986
return Promise.reject({
987+
message: errorMessage,
986988
values: this.getFieldsValue(namePathList),
987989
errorFields: errorList,
988990
outOfDate: this.lastValidatePromise !== summaryPromise,

tests/index.test.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,9 +328,12 @@ describe('Form.Basic', () => {
328328
matchError(container, "'user' is required");
329329
expect(onFinish).not.toHaveBeenCalled();
330330
expect(onFinishFailed).toHaveBeenCalledWith({
331+
message: "'user' is required",
331332
errorFields: [{ name: ['user'], errors: ["'user' is required"], warnings: [] }],
332333
outOfDate: false,
333-
values: {},
334+
values: {
335+
user: undefined
336+
},
334337
});
335338

336339
onFinish.mockReset();

0 commit comments

Comments
 (0)