diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md index 10582d56..f5693432 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/authentication/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/authentication +## 4.1.5 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + ## 4.1.4 ### Patch Changes diff --git a/packages/authentication/package.json b/packages/authentication/package.json index 43bed09e..69e8f8f1 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/authentication", "description": "Authentication modules.", - "version": "4.1.4", + "version": "4.1.5", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/components/CHANGELOG.md b/packages/components/CHANGELOG.md index 0e95c13e..c3581411 100644 --- a/packages/components/CHANGELOG.md +++ b/packages/components/CHANGELOG.md @@ -1,5 +1,15 @@ # @baseapp-frontend/components +## 1.0.3 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + - @baseapp-frontend/authentication@4.1.5 + - @baseapp-frontend/design-system@1.0.3 + - @baseapp-frontend/graphql@1.2.5 + ## 1.0.2 ### Patch Changes diff --git a/packages/components/package.json b/packages/components/package.json index 4c6359bd..ee75f9ab 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/components", "description": "BaseApp components modules such as comments, notifications, messages, and more.", - "version": "1.0.2", + "version": "1.0.3", "sideEffects": false, "scripts": { "babel:bundle": "babel modules -d tmp-babel --extensions .ts,.tsx --ignore '**/__tests__/**','**/__storybook__/**'", diff --git a/packages/design-system/CHANGELOG.md b/packages/design-system/CHANGELOG.md index 756cfef8..f445836d 100644 --- a/packages/design-system/CHANGELOG.md +++ b/packages/design-system/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/design-system +## 1.0.3 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + ## 1.0.2 ### Patch Changes diff --git a/packages/design-system/package.json b/packages/design-system/package.json index 22ca637f..5a487565 100644 --- a/packages/design-system/package.json +++ b/packages/design-system/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/design-system", "description": "Design System components and configurations.", - "version": "1.0.2", + "version": "1.0.3", "sideEffects": false, "scripts": { "tsup:bundle": "tsup --tsconfig tsconfig.build.json", diff --git a/packages/graphql/CHANGELOG.md b/packages/graphql/CHANGELOG.md index 348a3598..d86dfc36 100644 --- a/packages/graphql/CHANGELOG.md +++ b/packages/graphql/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/graphql +## 1.2.5 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + ## 1.2.4 ### Patch Changes diff --git a/packages/graphql/package.json b/packages/graphql/package.json index 87cd6720..aadc1b4b 100644 --- a/packages/graphql/package.json +++ b/packages/graphql/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/graphql", "description": "GraphQL configurations and utilities", - "version": "1.2.4", + "version": "1.2.5", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/provider/CHANGELOG.md b/packages/provider/CHANGELOG.md index 84f9616c..506ac931 100644 --- a/packages/provider/CHANGELOG.md +++ b/packages/provider/CHANGELOG.md @@ -1,5 +1,12 @@ # @baseapp-frontend/provider +## 2.0.11 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + ## 2.0.10 ### Patch Changes diff --git a/packages/provider/package.json b/packages/provider/package.json index aed8794a..47532d08 100644 --- a/packages/provider/package.json +++ b/packages/provider/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/provider", "description": "Providers for React Query and Emotion.", - "version": "2.0.10", + "version": "2.0.11", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/utils/CHANGELOG.md b/packages/utils/CHANGELOG.md index 52ed6195..bc05a007 100644 --- a/packages/utils/CHANGELOG.md +++ b/packages/utils/CHANGELOG.md @@ -1,5 +1,11 @@ # @baseapp-frontend/utils +## 3.1.4 + +### Patch Changes + +- setFormApiErrors also handles Error objects + ## 3.1.3 ### Patch Changes diff --git a/packages/utils/functions/api/getApiErrorMessage/__tests__/getApiErrorMessage.test.ts b/packages/utils/functions/api/getApiErrorMessage/__tests__/getApiErrorMessage.test.ts index 097dd454..23178aba 100644 --- a/packages/utils/functions/api/getApiErrorMessage/__tests__/getApiErrorMessage.test.ts +++ b/packages/utils/functions/api/getApiErrorMessage/__tests__/getApiErrorMessage.test.ts @@ -34,7 +34,7 @@ describe('getApiErrorMessage', () => { expect(result).toBe('Detailed error message.') }) - it('should return default message when error.message is invalid JSON', () => { + it('should return error message when error.message is invalid JSON', () => { const errorMessage = 'Invalid JSON string' const defaultMessage = 'Something went wrong.' const error = { message: errorMessage } diff --git a/packages/utils/functions/api/getApiErrorMessage/index.ts b/packages/utils/functions/api/getApiErrorMessage/index.ts index 2e9edb24..791305dc 100644 --- a/packages/utils/functions/api/getApiErrorMessage/index.ts +++ b/packages/utils/functions/api/getApiErrorMessage/index.ts @@ -9,7 +9,7 @@ export const getApiErrorMessage = ( if (error?.message) { try { const parsedMessage = JSON.parse(error.message) - message = parsedMessage.detail || parsedMessage || message + message = parsedMessage.detail || error.message } catch { message = error.message } diff --git a/packages/utils/functions/form/setFormApiErrors/__tests__/setFormApiErrors.test.ts b/packages/utils/functions/form/setFormApiErrors/__tests__/setFormApiErrors.test.ts index 59a726ad..5f5efadd 100644 --- a/packages/utils/functions/form/setFormApiErrors/__tests__/setFormApiErrors.test.ts +++ b/packages/utils/functions/form/setFormApiErrors/__tests__/setFormApiErrors.test.ts @@ -11,7 +11,9 @@ describe('setFormApiErrors', () => { ({ name: 'John', age: 20, - }[fieldKey]), + bio: '', + image: null, + })[fieldKey], ), setError: jest.fn(), } @@ -75,4 +77,40 @@ describe('setFormApiErrors', () => { message: 'Address is required', }) }) + + it('should set errors for null or blank fields', () => { + mockError.response.data = { + image: ['Image is required'], + bio: ['Bio may not be blank'], + } + setFormApiErrors(mockForm, mockError) + + expect(mockForm.setError).toHaveBeenCalledWith('image', { + type: 'manual', + message: 'Image is required', + }) + expect(mockForm.setError).toHaveBeenCalledWith('bio', { + type: 'manual', + message: 'Bio may not be blank', + }) + }) + + it('should also handle Error objects', () => { + mockError = new Error( + JSON.stringify({ + name: ['Name is required'], + age: ['Age should be a number'], + }), + ) + setFormApiErrors(mockForm, mockError) + + expect(mockForm.setError).toHaveBeenCalledWith('name', { + type: 'manual', + message: 'Name is required', + }) + expect(mockForm.setError).toHaveBeenCalledWith('age', { + type: 'manual', + message: 'Age should be a number', + }) + }) }) diff --git a/packages/utils/functions/form/setFormApiErrors/index.ts b/packages/utils/functions/form/setFormApiErrors/index.ts index 489b8172..958c17f7 100644 --- a/packages/utils/functions/form/setFormApiErrors/index.ts +++ b/packages/utils/functions/form/setFormApiErrors/index.ts @@ -11,11 +11,22 @@ export const setFormApiErrors = < form: UseFormReturn, err: any, ) => { + let errorObject if (err.response?.data && typeof err.response.data === 'object') { - map(entries(err.response.data), ([key, errors]) => { + errorObject = err.response?.data + } else if (err.message) { + try { + errorObject = JSON.parse(err.message) + } catch (parsingError) { + // Error message is not a JSON object, no further action taken + } + } + + if (errorObject) { + map(entries(errorObject), ([key, errors]) => { const fieldKey = key as Path const errorMessage = head(errors as string[]) - if (!!form.getValues(fieldKey) && typeof errorMessage === 'string') { + if (form.getValues(fieldKey) !== undefined && typeof errorMessage === 'string') { form.setError(fieldKey, { type: 'manual', message: errorMessage }) } }) diff --git a/packages/utils/package.json b/packages/utils/package.json index 9bf2b0f7..cabd91e8 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/utils", "description": "Util functions, constants and types.", - "version": "3.1.3", + "version": "3.1.4", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false, diff --git a/packages/wagtail/CHANGELOG.md b/packages/wagtail/CHANGELOG.md index 59844cdd..8b221dbc 100644 --- a/packages/wagtail/CHANGELOG.md +++ b/packages/wagtail/CHANGELOG.md @@ -1,5 +1,14 @@ # @baseapp-frontend/wagtail +## 1.0.21 + +### Patch Changes + +- Updated dependencies + - @baseapp-frontend/utils@3.1.4 + - @baseapp-frontend/design-system@1.0.3 + - @baseapp-frontend/graphql@1.2.5 + ## 1.0.20 ### Patch Changes diff --git a/packages/wagtail/package.json b/packages/wagtail/package.json index 0e95528f..a95af40e 100644 --- a/packages/wagtail/package.json +++ b/packages/wagtail/package.json @@ -1,7 +1,7 @@ { "name": "@baseapp-frontend/wagtail", "description": "BaseApp Wagtail", - "version": "1.0.20", + "version": "1.0.21", "main": "./index.ts", "types": "dist/index.d.ts", "sideEffects": false,