@ttoss/forms 0.17.14 → 0.18.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.
package/README.md CHANGED
@@ -9,7 +9,7 @@ pnpm i @ttoss/forms @ttoss/react-i18n
9
9
  pnpm i --save-dev @ttoss/i18n-cli
10
10
  ```
11
11
 
12
- ## Quick Start
12
+ ## Quickstart
13
13
 
14
14
  ```tsx
15
15
  import { Button } from '@ttoss/ui';
package/dist/esm/index.js CHANGED
@@ -97,6 +97,7 @@ import * as React2 from "react";
97
97
  import { useFormContext } from "react-hook-form";
98
98
  import { FormattedMessage } from "@ttoss/react-i18n";
99
99
  import { HelpText } from "@ttoss/ui";
100
+ import { ErrorMessage as HookformErrorMessage } from "@hookform/error-message";
100
101
  import { jsx as jsx2 } from "react/jsx-runtime";
101
102
  var isMessageDescriptor = possibleMessageDescriptor => {
102
103
  return possibleMessageDescriptor !== void 0 && possibleMessageDescriptor.defaultMessage !== void 0;
@@ -110,17 +111,24 @@ var ErrorMessage = ({
110
111
  errors
111
112
  }
112
113
  } = useFormContext();
113
- const error = errors[name];
114
- if (!error) return null;
115
- const {
116
- message
117
- } = error;
118
- return error && /* @__PURE__ */jsx2(HelpText, {
119
- negative: true,
120
- disabled,
121
- children: isMessageDescriptor(message) ? /* @__PURE__ */jsx2(FormattedMessage, {
122
- ...message
123
- }) : message
114
+ return /* @__PURE__ */jsx2(HookformErrorMessage, {
115
+ name,
116
+ errors,
117
+ render: ({
118
+ message
119
+ }) => {
120
+ return /* @__PURE__ */jsx2(HelpText, {
121
+ negative: true,
122
+ disabled,
123
+ children: (() => {
124
+ if (typeof message === "string") return message;
125
+ if (isMessageDescriptor(message)) return /* @__PURE__ */jsx2(FormattedMessage, {
126
+ ...message
127
+ });
128
+ return JSON.stringify(message);
129
+ })()
130
+ });
131
+ }
124
132
  });
125
133
  };
126
134
 
package/dist/index.js CHANGED
@@ -133,6 +133,7 @@ var React2 = __toESM(require("react"));
133
133
  var import_react_hook_form2 = require("react-hook-form");
134
134
  var import_react_i18n2 = require("@ttoss/react-i18n");
135
135
  var import_ui2 = require("@ttoss/ui");
136
+ var import_error_message = require("@hookform/error-message");
136
137
  var import_jsx_runtime2 = require("react/jsx-runtime");
137
138
  var isMessageDescriptor = possibleMessageDescriptor => {
138
139
  return possibleMessageDescriptor !== void 0 && possibleMessageDescriptor.defaultMessage !== void 0;
@@ -146,17 +147,24 @@ var ErrorMessage = ({
146
147
  errors
147
148
  }
148
149
  } = (0, import_react_hook_form2.useFormContext)();
149
- const error = errors[name];
150
- if (!error) return null;
151
- const {
152
- message
153
- } = error;
154
- return error && /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_ui2.HelpText, {
155
- negative: true,
156
- disabled,
157
- children: isMessageDescriptor(message) ? /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_react_i18n2.FormattedMessage, {
158
- ...message
159
- }) : message
150
+ return /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_error_message.ErrorMessage, {
151
+ name,
152
+ errors,
153
+ render: ({
154
+ message
155
+ }) => {
156
+ return /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_ui2.HelpText, {
157
+ negative: true,
158
+ disabled,
159
+ children: (() => {
160
+ if (typeof message === "string") return message;
161
+ if (isMessageDescriptor(message)) return /* @__PURE__ */(0, import_jsx_runtime2.jsx)(import_react_i18n2.FormattedMessage, {
162
+ ...message
163
+ });
164
+ return JSON.stringify(message);
165
+ })()
166
+ });
167
+ }
160
168
  });
161
169
  };
162
170
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ttoss/forms",
3
- "version": "0.17.14",
3
+ "version": "0.18.0",
4
4
  "license": "UNLICENSED",
5
5
  "author": "ttoss",
6
6
  "contributors": [
@@ -15,6 +15,7 @@
15
15
  "sideEffects": true,
16
16
  "typings": "dist/index.d.ts",
17
17
  "dependencies": {
18
+ "@hookform/error-message": "^2.0.1",
18
19
  "@hookform/resolvers": "^3.1.0",
19
20
  "react-hook-form": "^7.44.3",
20
21
  "yup": "^1.2.0"
@@ -22,7 +23,7 @@
22
23
  "peerDependencies": {
23
24
  "react": ">=16.8.0",
24
25
  "@ttoss/react-i18n": "^1.23.1",
25
- "@ttoss/ui": "^1.36.12"
26
+ "@ttoss/ui": "^1.37.0"
26
27
  },
27
28
  "devDependencies": {
28
29
  "@types/jest": "^29.5.2",
@@ -35,10 +36,10 @@
35
36
  "tsup": "^6.7.0",
36
37
  "yup": "^1.2.0",
37
38
  "@ttoss/config": "^1.30.1",
38
- "@ttoss/react-i18n": "^1.23.1",
39
39
  "@ttoss/i18n-cli": "^0.6.0",
40
+ "@ttoss/react-i18n": "^1.23.1",
40
41
  "@ttoss/test-utils": "^1.23.2",
41
- "@ttoss/ui": "^1.36.12"
42
+ "@ttoss/ui": "^1.37.0"
42
43
  },
43
44
  "publishConfig": {
44
45
  "access": "public"
@@ -1,6 +1,13 @@
1
- import { FieldName, FieldValues, useFormContext } from 'react-hook-form';
1
+ import {
2
+ FieldError,
3
+ FieldErrors,
4
+ FieldName,
5
+ FieldValues,
6
+ useFormContext,
7
+ } from 'react-hook-form';
2
8
  import { FormattedMessage, MessageDescriptor } from '@ttoss/react-i18n';
3
9
  import { HelpText } from '@ttoss/ui';
10
+ import { ErrorMessage as HookformErrorMessage } from '@hookform/error-message';
4
11
 
5
12
  type ModifiedDescriptor = MessageDescriptor & { values?: any };
6
13
 
@@ -25,21 +32,24 @@ export const ErrorMessage = <TFieldValues extends FieldValues = FieldValues>({
25
32
  formState: { errors },
26
33
  } = useFormContext<TFieldValues>();
27
34
 
28
- const error = errors[name];
29
-
30
- if (!error) return null;
35
+ return (
36
+ <HookformErrorMessage
37
+ name={name as any}
38
+ errors={errors}
39
+ render={({ message }: { message: FieldError | string }) => {
40
+ return (
41
+ <HelpText negative disabled={disabled}>
42
+ {(() => {
43
+ if (typeof message === 'string') return message;
31
44
 
32
- const { message } = error;
45
+ if (isMessageDescriptor(message))
46
+ return <FormattedMessage {...message} />;
33
47
 
34
- return (
35
- error && (
36
- <HelpText negative disabled={disabled}>
37
- {isMessageDescriptor(message) ? (
38
- <FormattedMessage {...message} />
39
- ) : (
40
- (message as string)
41
- )}
42
- </HelpText>
43
- )
48
+ return JSON.stringify(message);
49
+ })()}
50
+ </HelpText>
51
+ );
52
+ }}
53
+ />
44
54
  );
45
55
  };