@jsenv/navi 0.10.1 → 0.10.2

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.
@@ -14208,9 +14208,25 @@ const useExecuteAction = (
14208
14208
 
14209
14209
  const validationMessageTargetRef = useRef(null);
14210
14210
  const addErrorMessage = (error) => {
14211
- const validationMessageTarget = validationMessageTargetRef.current;
14212
- const errorMapped = errorMapping ? errorMapping(error) : error;
14213
- addCustomMessage(validationMessageTarget, "action_error", errorMapped, {
14211
+ let calloutAnchor = validationMessageTargetRef.current;
14212
+ let message;
14213
+ if (errorMapping) {
14214
+ const errorMappingResult = errorMapping(error);
14215
+ if (typeof errorMappingResult === "string") {
14216
+ message = errorMappingResult;
14217
+ } else if (Error.isError(errorMappingResult)) {
14218
+ message = errorMappingResult;
14219
+ } else if (
14220
+ typeof errorMappingResult === "object" &&
14221
+ errorMappingResult !== null
14222
+ ) {
14223
+ message = errorMappingResult.message || error.message;
14224
+ calloutAnchor = errorMappingResult.target || calloutAnchor;
14225
+ }
14226
+ } else {
14227
+ message = error;
14228
+ }
14229
+ addCustomMessage(calloutAnchor, "action_error", message, {
14214
14230
  // This error should not prevent <form> submission
14215
14231
  // so whenever user tries to submit the form the error is cleared
14216
14232
  // (Hitting enter key, clicking on submit button, etc. would allow to re-submit the form in error state)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jsenv/navi",
3
- "version": "0.10.1",
3
+ "version": "0.10.2",
4
4
  "description": "Library of components including navigation to create frontend applications",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,9 +28,25 @@ export const useExecuteAction = (
28
28
 
29
29
  const validationMessageTargetRef = useRef(null);
30
30
  const addErrorMessage = (error) => {
31
- const validationMessageTarget = validationMessageTargetRef.current;
32
- const errorMapped = errorMapping ? errorMapping(error) : error;
33
- addCustomMessage(validationMessageTarget, "action_error", errorMapped, {
31
+ let calloutAnchor = validationMessageTargetRef.current;
32
+ let message;
33
+ if (errorMapping) {
34
+ const errorMappingResult = errorMapping(error);
35
+ if (typeof errorMappingResult === "string") {
36
+ message = errorMappingResult;
37
+ } else if (Error.isError(errorMappingResult)) {
38
+ message = errorMappingResult;
39
+ } else if (
40
+ typeof errorMappingResult === "object" &&
41
+ errorMappingResult !== null
42
+ ) {
43
+ message = errorMappingResult.message || error.message;
44
+ calloutAnchor = errorMappingResult.target || calloutAnchor;
45
+ }
46
+ } else {
47
+ message = error;
48
+ }
49
+ addCustomMessage(calloutAnchor, "action_error", message, {
34
50
  // This error should not prevent <form> submission
35
51
  // so whenever user tries to submit the form the error is cleared
36
52
  // (Hitting enter key, clicking on submit button, etc. would allow to re-submit the form in error state)