diff --git a/packages/console/package.json b/packages/console/package.json index 85b58aed1..1b816c659 100644 --- a/packages/console/package.json +++ b/packages/console/package.json @@ -18,11 +18,11 @@ }, "devDependencies": { "@fontsource/roboto-mono": "^4.5.7", + "@logto/core-kit": "^1.0.0-beta.13", "@logto/phrases": "^1.0.0-beta.9", "@logto/phrases-ui": "^1.0.0-beta.9", "@logto/react": "1.0.0-beta.8", "@logto/schemas": "^1.0.0-beta.9", - "@logto/core-kit": "^1.0.0-beta.13", "@mdx-js/react": "^1.6.22", "@parcel/core": "2.7.0", "@parcel/transformer-mdx": "2.7.0", @@ -43,6 +43,7 @@ "@types/react-modal": "^3.13.1", "@types/react-syntax-highlighter": "^15.5.1", "classnames": "^2.3.1", + "clean-deep": "^3.4.0", "cross-env": "^7.0.3", "csstype": "^3.0.11", "dayjs": "^1.10.5", diff --git a/packages/console/src/pages/SignInExperience/components/ManageLanguageModal/LanguageEditor.tsx b/packages/console/src/pages/SignInExperience/components/ManageLanguageModal/LanguageEditor.tsx index 6a56b545c..e36d8ce48 100644 --- a/packages/console/src/pages/SignInExperience/components/ManageLanguageModal/LanguageEditor.tsx +++ b/packages/console/src/pages/SignInExperience/components/ManageLanguageModal/LanguageEditor.tsx @@ -3,6 +3,7 @@ import resource, { languageCodeAndDisplayNameMappings, Translation as UiTranslation, } from '@logto/phrases-ui'; +import cleanDeep from 'clean-deep'; import { useEffect, useMemo } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import { toast } from 'react-hot-toast'; @@ -65,7 +66,7 @@ const LanguageEditor = ({ selectedLanguageKey, onFormStateChange }: LanguageEdit const updatedCustomPhrase = await api .put(`/api/custom-phrases/${selectedLanguageKey}`, { json: { - ...formData, + ...cleanDeep(formData), }, }) .json(); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 234cbcfc2..5b8a7ea8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -46,6 +46,7 @@ importers: '@types/react-modal': ^3.13.1 '@types/react-syntax-highlighter': ^15.5.1 classnames: ^2.3.1 + clean-deep: ^3.4.0 cross-env: ^7.0.3 csstype: ^3.0.11 dayjs: ^1.10.5 @@ -110,6 +111,7 @@ importers: '@types/react-modal': 3.13.1 '@types/react-syntax-highlighter': 15.5.1 classnames: 2.3.1 + clean-deep: 3.4.0 cross-env: 7.0.3 csstype: 3.0.11 dayjs: 1.10.7 @@ -5570,6 +5572,15 @@ packages: resolution: {integrity: sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==} dev: true + /clean-deep/3.4.0: + resolution: {integrity: sha512-Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==} + engines: {node: '>=4'} + dependencies: + lodash.isempty: 4.4.0 + lodash.isplainobject: 4.0.6 + lodash.transform: 4.6.0 + dev: true + /clean-regexp/1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} @@ -10212,10 +10223,18 @@ packages: resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true + /lodash.isempty/4.4.0: + resolution: {integrity: sha512-oKMuF3xEeqDltrGMfDxAPGIVMSSRv8tbRSODbrs4KGsRRLEhrW8N8Rd4DRgB2+621hY8A8XwwrTVhXWpxFvMzg==} + dev: true + /lodash.ismatch/4.4.0: resolution: {integrity: sha1-dWy1FQyjum8RCFp4hJZF8Yj4Xzc=} dev: true + /lodash.isplainobject/4.0.6: + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + dev: true + /lodash.kebabcase/4.1.1: resolution: {integrity: sha1-hImxyw0p/4gZXM7KRI/21swpXDY=} dev: true @@ -10258,6 +10277,10 @@ packages: lodash._reinterpolate: 3.0.0 dev: true + /lodash.transform/4.6.0: + resolution: {integrity: sha512-LO37ZnhmBVx0GvOU/caQuipEh4GN82TcWv3yHlebGDgOxbxiwwzW5Pcx2AcvpIv2WmvmSMoC492yQFNhy/l/UQ==} + dev: true + /lodash.truncate/4.4.2: resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} dev: true