Fix: Input Validation for minimum values for Search Index and Data insights (#21038)

* minimum field limit for config form

* added negative number validation for form builder

* localization file update

* update minimum values for search config and data insights

* update localization files

* fix nested schema field validation for neggative numbers

* revert  nav-bar.less prettier changes

* revert nav-bar.less file prettier changes

* revert  nav-bar.less prettier changes

* minor code refactor

* address sonar issue

* address pr comments

* minor code refactor

* Update ingestionPipeline.ts

* Update ingestionPipeline.ts
This commit is contained in:
Shrushti Polekar 2025-05-13 10:15:36 +05:30 committed by shrushti2000
parent 47c17180bd
commit 70aef3b104
21 changed files with 172 additions and 129 deletions

View File

@ -10,9 +10,9 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
@import (reference) '../../styles/variables.less'; @import (reference) '../../styles/variables.less';
.navbar-container { .navbar-container {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@ -41,18 +41,18 @@
line-height: 21px; line-height: 21px;
} }
} }
} }
.domain-dropdown-menu { .domain-dropdown-menu {
max-height: 400px; max-height: 400px;
overflow-y: auto; overflow-y: auto;
} }
.slide-in-top { .slide-in-top {
animation: slide-in-top 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both; animation: slide-in-top 1s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
} }
@keyframes slide-in-top { @keyframes slide-in-top {
0% { 0% {
transform: translate(-50%, 100%); transform: translate(-50%, 100%);
} }
@ -60,9 +60,9 @@
100% { 100% {
transform: translate(-50%, 0); transform: translate(-50%, 0);
} }
} }
.ant-btn.domain-nav-btn { .ant-btn.domain-nav-btn {
background-color: @white; background-color: @white;
border: 1px solid @grey-15; border: 1px solid @grey-15;
color: @text-color; color: @text-color;
@ -85,9 +85,9 @@
border: 1px solid @primary-color; border: 1px solid @primary-color;
background-color: @primary-button-background; background-color: @primary-button-background;
} }
} }
.ant-alert.ant-alert-info.refresh-alert { .ant-alert.ant-alert-info.refresh-alert {
width: 470px; width: 470px;
bottom: 30px; bottom: 30px;
align-items: center; align-items: center;
@ -118,5 +118,4 @@
font-weight: 700; font-weight: 700;
color: @white; color: @white;
} }
} }

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Benutzer erfolgreich verifiziert", "user-verified-successfully": "Benutzer erfolgreich verifiziert",
"valid-url-endpoint": "Endpunkte sollten gültige URLs sein", "valid-url-endpoint": "Endpunkte sollten gültige URLs sein",
"validation-error-assets": "Bitte überprüfen Sie alle Assets, die hinzugefügt werden.", "validation-error-assets": "Bitte überprüfen Sie alle Assets, die hinzugefügt werden.",
"value-must-be-greater-than": "{{field}} muss größer als {{minimum}} sein",
"value-should-equal-to-value": "Der Wert sollte gleich {{value}} sein.", "value-should-equal-to-value": "Der Wert sollte gleich {{value}} sein.",
"value-should-not-equal-to-value": "Der Wert sollte nicht gleich {{value}} sein.", "value-should-not-equal-to-value": "Der Wert sollte nicht gleich {{value}} sein.",
"version-released-try-now": "{{version}} Veröffentlicht <0>Sehen Sie, was es Neues gibt!</0>", "version-released-try-now": "{{version}} Veröffentlicht <0>Sehen Sie, was es Neues gibt!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "User Verified Successfully", "user-verified-successfully": "User Verified Successfully",
"valid-url-endpoint": "Endpoints should be valid URL", "valid-url-endpoint": "Endpoints should be valid URL",
"validation-error-assets": "Please examine all your assets that are being added", "validation-error-assets": "Please examine all your assets that are being added",
"value-must-be-greater-than": "{{field}} must be greater than {{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} Released <0>See What's New!</0>", "version-released-try-now": "{{version}} Released <0>See What's New!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Usuario verificado con éxito", "user-verified-successfully": "Usuario verificado con éxito",
"valid-url-endpoint": "Los terminales deben ser URL válidas", "valid-url-endpoint": "Los terminales deben ser URL válidas",
"validation-error-assets": "Por favor, examine todos sus activos que se están agregando", "validation-error-assets": "Por favor, examine todos sus activos que se están agregando",
"value-must-be-greater-than": "{{field}} debe ser mayor que {{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} Lanzado <0>¡Mira qué hay de nuevo!</0>", "version-released-try-now": "{{version}} Lanzado <0>¡Mira qué hay de nuevo!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "L'utilisateur a été vérifié avec succès", "user-verified-successfully": "L'utilisateur a été vérifié avec succès",
"valid-url-endpoint": "Les points de terminaison doivent être une URL valide", "valid-url-endpoint": "Les points de terminaison doivent être une URL valide",
"validation-error-assets": "Veuillez exmanier tous les actifs qui sont ajoutés", "validation-error-assets": "Veuillez exmanier tous les actifs qui sont ajoutés",
"value-must-be-greater-than": "{{field}} doit être supérieur à {{minimum}}",
"value-should-equal-to-value": "La valeur devrait être égale à {{value}}.", "value-should-equal-to-value": "La valeur devrait être égale à {{value}}.",
"value-should-not-equal-to-value": "La valeur ne devrait pas être égale à {{value}}.", "value-should-not-equal-to-value": "La valeur ne devrait pas être égale à {{value}}.",
"version-released-try-now": "{{version}} publié essayez maintenant !", "version-released-try-now": "{{version}} publié essayez maintenant !",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Usuario verificado correctamente", "user-verified-successfully": "Usuario verificado correctamente",
"valid-url-endpoint": "Os endpoints deben ser unha URL válida", "valid-url-endpoint": "Os endpoints deben ser unha URL válida",
"validation-error-assets": "Examina todos os teus activos que están sendo engadidos", "validation-error-assets": "Examina todos os teus activos que están sendo engadidos",
"value-must-be-greater-than": "{{field}} debe ser maior que {{minimum}}",
"value-should-equal-to-value": "O valor debe ser igual a {{value}}.", "value-should-equal-to-value": "O valor debe ser igual a {{value}}.",
"value-should-not-equal-to-value": "O valor non debe ser igual a {{value}}.", "value-should-not-equal-to-value": "O valor non debe ser igual a {{value}}.",
"version-released-try-now": "{{version}} Lançada <0>Vexa as Novidades!</0>", "version-released-try-now": "{{version}} Lançada <0>Vexa as Novidades!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "משתמש אומת בהצלחה", "user-verified-successfully": "משתמש אומת בהצלחה",
"valid-url-endpoint": "נקודות קצה צריכות להיות URL תקף", "valid-url-endpoint": "נקודות קצה צריכות להיות URL תקף",
"validation-error-assets": "Please examine all your assets that are being added", "validation-error-assets": "Please examine all your assets that are being added",
"value-must-be-greater-than": "{{field}} חייב להיות גדול מ-{{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} שוחרר <0>ראה מה חדש!</0>", "version-released-try-now": "{{version}} שוחרר <0>ראה מה חדש!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "ユーザ認証に成功しました", "user-verified-successfully": "ユーザ認証に成功しました",
"valid-url-endpoint": "エンドポイントは有効なURLでなければなりません", "valid-url-endpoint": "エンドポイントは有効なURLでなければなりません",
"validation-error-assets": "Please examine all your assets that are being added", "validation-error-assets": "Please examine all your assets that are being added",
"value-must-be-greater-than": "{{field}} は {{minimum}} より大きくなければなりません",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} Released <0>See What's New!</0>", "version-released-try-now": "{{version}} Released <0>See What's New!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "사용자가 성공적으로 확인되었습니다", "user-verified-successfully": "사용자가 성공적으로 확인되었습니다",
"valid-url-endpoint": "엔드포인트는 유효한 URL이어야 합니다", "valid-url-endpoint": "엔드포인트는 유효한 URL이어야 합니다",
"validation-error-assets": "추가 중인 모든 자산을 검토하세요", "validation-error-assets": "추가 중인 모든 자산을 검토하세요",
"value-must-be-greater-than": "{{field}}는 {{minimum}}보다 커야 합니다",
"value-should-equal-to-value": "값은 {{value}}와(과) 같아야 합니다.", "value-should-equal-to-value": "값은 {{value}}와(과) 같아야 합니다.",
"value-should-not-equal-to-value": "값은 {{value}}와(과) 같지 않아야 합니다.", "value-should-not-equal-to-value": "값은 {{value}}와(과) 같지 않아야 합니다.",
"version-released-try-now": "{{version}} 출시됨 <0>새로운 기능 확인하기!</0>", "version-released-try-now": "{{version}} 출시됨 <0>새로운 기능 확인하기!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "वापरकर्ता यशस्वीरित्या सत्यापित केला", "user-verified-successfully": "वापरकर्ता यशस्वीरित्या सत्यापित केला",
"valid-url-endpoint": "एंडपॉईंट्स वैध URL असावेत", "valid-url-endpoint": "एंडपॉईंट्स वैध URL असावेत",
"validation-error-assets": "कृपया तुम्ही जोडत असलेल्या सर्व ॲसेट्सची तपासणी करा", "validation-error-assets": "कृपया तुम्ही जोडत असलेल्या सर्व ॲसेट्सची तपासणी करा",
"value-must-be-greater-than": "{{field}} {{minimum}} पेक्षा मोठा असावा",
"value-should-equal-to-value": "मूल्य {{value}} च्या बरोबरीचे असावे.", "value-should-equal-to-value": "मूल्य {{value}} च्या बरोबरीचे असावे.",
"value-should-not-equal-to-value": "मूल्य {{value}} च्या बरोबरीचे नसावे.", "value-should-not-equal-to-value": "मूल्य {{value}} च्या बरोबरीचे नसावे.",
"version-released-try-now": "{{version}} रिलीझ झाले <0>नवीन काय आहे ते पहा!</0>", "version-released-try-now": "{{version}} रिलीझ झाले <0>नवीन काय आहे ते पहा!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Gebruiker succesvol geverifieerd", "user-verified-successfully": "Gebruiker succesvol geverifieerd",
"valid-url-endpoint": "Eindpunten moeten geldige URL's zijn", "valid-url-endpoint": "Eindpunten moeten geldige URL's zijn",
"validation-error-assets": "Onderzoek al je assets die worden toegevoegd", "validation-error-assets": "Onderzoek al je assets die worden toegevoegd",
"value-must-be-greater-than": "{{field}} moet groter zijn dan {{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} vrijgegeven <0>Zie wat er veranderd is!</0>", "version-released-try-now": "{{version}} vrijgegeven <0>Zie wat er veranderd is!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "کاربر با موفقیت تأیید شد.", "user-verified-successfully": "کاربر با موفقیت تأیید شد.",
"valid-url-endpoint": "نقاط پایانی باید URL معتبر باشند.", "valid-url-endpoint": "نقاط پایانی باید URL معتبر باشند.",
"validation-error-assets": "لطفاً تمام دارایی‌هایی که در حال اضافه کردن آن‌ها هستید را بررسی کنید.", "validation-error-assets": "لطفاً تمام دارایی‌هایی که در حال اضافه کردن آن‌ها هستید را بررسی کنید.",
"value-must-be-greater-than": "{{field}} {{minimum}} से अधिक होना चाहिए",
"value-should-equal-to-value": "مقدار باید برابر با {{value}} باشد.", "value-should-equal-to-value": "مقدار باید برابر با {{value}} باشد.",
"value-should-not-equal-to-value": "مقدار نباید برابر با {{value}} باشد.", "value-should-not-equal-to-value": "مقدار نباید برابر با {{value}} باشد.",
"version-released-try-now": "{{version}} منتشر شد <0>مشاهده کنید چه خبر است!</0>", "version-released-try-now": "{{version}} منتشر شد <0>مشاهده کنید چه خبر است!</0>",

View File

@ -2148,8 +2148,9 @@
"user-verified-successfully": "Usuário verificado com sucesso", "user-verified-successfully": "Usuário verificado com sucesso",
"valid-url-endpoint": "Os endpoints devem ser URLs válidas", "valid-url-endpoint": "Os endpoints devem ser URLs válidas",
"validation-error-assets": "Por favor, verifique todos os seus ativos que estão sendo adicionados", "validation-error-assets": "Por favor, verifique todos os seus ativos que estão sendo adicionados",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-must-be-greater-than": "{{field}} deve ser maior que {{minimum}}",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-equal-to-value": "O valor deve ser igual a {{value}}.",
"value-should-not-equal-to-value": "O valor não deve ser igual a {{value}}.",
"version-released-try-now": "{{version}} Lançada <0>Veja o que há de novo!</0>", "version-released-try-now": "{{version}} Lançada <0>Veja o que há de novo!</0>",
"video-playback-not-supported": "Seu navegador não suporta a reprodução de vídeo.", "video-playback-not-supported": "Seu navegador não suporta a reprodução de vídeo.",
"view-deleted-entity": "Visualize todos os {{entity}} excluídos, que fazem parte deste {{parent}}.", "view-deleted-entity": "Visualize todos os {{entity}} excluídos, que fazem parte deste {{parent}}.",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Utilizador verificado com sucesso", "user-verified-successfully": "Utilizador verificado com sucesso",
"valid-url-endpoint": "Os endpoints devem ser URLs válidas", "valid-url-endpoint": "Os endpoints devem ser URLs válidas",
"validation-error-assets": "Por favor, verifique todos os seus ativos que estão sendo adicionados", "validation-error-assets": "Por favor, verifique todos os seus ativos que estão sendo adicionados",
"value-must-be-greater-than": "{{field}} deve ser superior a {{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "{{version}} Lançada <0>Veja o que há de novo!</0>", "version-released-try-now": "{{version}} Lançada <0>Veja o que há de novo!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "Пользователь успешно проверен", "user-verified-successfully": "Пользователь успешно проверен",
"valid-url-endpoint": "Конечные точки должны быть действительным URL", "valid-url-endpoint": "Конечные точки должны быть действительным URL",
"validation-error-assets": "Please examine all your assets that are being added", "validation-error-assets": "Please examine all your assets that are being added",
"value-must-be-greater-than": "{{field}} должно быть больше чем {{minimum}}",
"value-should-equal-to-value": "The value should be equal to {{value}}.", "value-should-equal-to-value": "The value should be equal to {{value}}.",
"value-should-not-equal-to-value": "The value should not be equal to {{value}}.", "value-should-not-equal-to-value": "The value should not be equal to {{value}}.",
"version-released-try-now": "Выпущена {{версия}} <0>Посмотрите, что нового!</0>", "version-released-try-now": "Выпущена {{версия}} <0>Посмотрите, что нового!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "ผู้ใช้ได้รับการตรวจสอบแล้วสำเร็จ", "user-verified-successfully": "ผู้ใช้ได้รับการตรวจสอบแล้วสำเร็จ",
"valid-url-endpoint": "จุดสิ้นสุดต้องเป็น URL ที่ถูกต้อง", "valid-url-endpoint": "จุดสิ้นสุดต้องเป็น URL ที่ถูกต้อง",
"validation-error-assets": "โปรดตรวจสอบสินทรัพย์ทั้งหมดที่กำลังถูกเพิ่ม", "validation-error-assets": "โปรดตรวจสอบสินทรัพย์ทั้งหมดที่กำลังถูกเพิ่ม",
"value-must-be-greater-than": "{{field}} ต้องมากกว่า {{minimum}}",
"value-should-equal-to-value": "ค่าต้องเท่ากับ {{value}}", "value-should-equal-to-value": "ค่าต้องเท่ากับ {{value}}",
"value-should-not-equal-to-value": "ค่าต้องไม่เท่ากับ {{value}}", "value-should-not-equal-to-value": "ค่าต้องไม่เท่ากับ {{value}}",
"version-released-try-now": "{{version}} ได้ออกแล้ว <0>ดูสิ่งใหม่!</0>", "version-released-try-now": "{{version}} ได้ออกแล้ว <0>ดูสิ่งใหม่!</0>",

View File

@ -2148,6 +2148,7 @@
"user-verified-successfully": "用户验证成功", "user-verified-successfully": "用户验证成功",
"valid-url-endpoint": "端点应该是有效的 URL", "valid-url-endpoint": "端点应该是有效的 URL",
"validation-error-assets": "请检查您正在添加的全部资产", "validation-error-assets": "请检查您正在添加的全部资产",
"value-must-be-greater-than": "{{field}} 必须大于 {{minimum}}",
"value-should-equal-to-value": "该值应等于{{value}}.", "value-should-equal-to-value": "该值应等于{{value}}.",
"value-should-not-equal-to-value": "该值不应等于{{value}}.", "value-should-not-equal-to-value": "该值不应等于{{value}}.",
"version-released-try-now": "查看新版本 {{version}} 的新特性!", "version-released-try-now": "查看新版本 {{version}} 的新特性!",

View File

@ -137,3 +137,7 @@
cursor: pointer; cursor: pointer;
accent-color: @primary-color; accent-color: @primary-color;
} }
.rjsf .has-error input {
border-color: @error-color !important;
}

View File

@ -75,7 +75,8 @@
"title": "Data Retention (Days)", "title": "Data Retention (Days)",
"description": "Defines the number of days the Data Assets Insights information will be kept. After it they will be deleted.", "description": "Defines the number of days the Data Assets Insights information will be kept. After it they will be deleted.",
"type": "integer", "type": "integer",
"default": 7 "default": 7,
"minimum": 0
}, },
"serviceFilter": { "serviceFilter": {
"type": "object", "type": "object",
@ -173,7 +174,8 @@
"batchSize": { "batchSize": {
"description": "Maximum number of events processed at a time (Default 100).", "description": "Maximum number of events processed at a time (Default 100).",
"type": "integer", "type": "integer",
"default": 100 "default": 100,
"minimum": 0
}, },
"recreateDataAssetsIndex": { "recreateDataAssetsIndex": {
"title": "Recreate DataInsights DataAssets Index", "title": "Recreate DataInsights DataAssets Index",

View File

@ -8,55 +8,64 @@
"title": "Batch Size", "title": "Batch Size",
"description": "Maximum number of events entities in a batch (Default 100).", "description": "Maximum number of events entities in a batch (Default 100).",
"type": "integer", "type": "integer",
"default": 100 "default": 100,
"minimum": 1
}, },
"payLoadSize": { "payLoadSize": {
"title": "Payload Size", "title": "Payload Size",
"description": "Maximum number of events entities in a batch (Default 100).", "description": "Maximum number of events entities in a batch (Default 100).",
"type": "integer", "type": "integer",
"default": 104857600 "default": 104857600,
"minimum": 1
}, },
"producerThreads": { "producerThreads": {
"title": "Number of Producer Threads", "title": "Number of Producer Threads",
"description": "Number of threads to use for reindexing", "description": "Number of threads to use for reindexing",
"type": "integer", "type": "integer",
"default": 5 "default": 5,
"minimum": 1
}, },
"consumerThreads": { "consumerThreads": {
"title": "Number of Consumer Threads", "title": "Number of Consumer Threads",
"description": "Number of threads to use for reindexing", "description": "Number of threads to use for reindexing",
"type": "integer", "type": "integer",
"default": 1 "default": 1,
"minimum": 1
}, },
"queueSize": { "queueSize": {
"title": "Queue Size to use.", "title": "Queue Size to use.",
"description": "Queue Size to use internally for reindexing.", "description": "Queue Size to use internally for reindexing.",
"type": "integer", "type": "integer",
"default": 100 "default": 100,
"minimum": 1
}, },
"maxConcurrentRequests": { "maxConcurrentRequests": {
"title": "Max Concurrent Requests", "title": "Max Concurrent Requests",
"description": "Maximum number of concurrent requests to the search index", "description": "Maximum number of concurrent requests to the search index",
"type": "integer", "type": "integer",
"default": 100 "default": 100,
"minimum": 1
}, },
"maxRetries": { "maxRetries": {
"title": "Max Retries", "title": "Max Retries",
"description": "Maximum number of retries for a failed request", "description": "Maximum number of retries for a failed request",
"type": "integer", "type": "integer",
"default": 5 "default": 5,
"minimum": 0
}, },
"initialBackoff": { "initialBackoff": {
"title": "Initial Backoff Millis", "title": "Initial Backoff Millis",
"description": "Initial backoff time in milliseconds", "description": "Initial backoff time in milliseconds",
"type": "integer", "type": "integer",
"default": 1000 "default": 1000,
"minimum": 0
}, },
"maxBackoff": { "maxBackoff": {
"title": "Max Backoff Millis", "title": "Max Backoff Millis",
"description": "Maximum backoff time in milliseconds", "description": "Maximum backoff time in milliseconds",
"type": "integer", "type": "integer",
"default": 10000 "default": 10000,
"minimum": 0
}, },
"entities": { "entities": {
"title": "Entities", "title": "Entities",

View File

@ -278,7 +278,7 @@ export const generateFormFields = (fields: FieldProp[]) => {
export const transformErrors: ErrorTransformer = (errors) => { export const transformErrors: ErrorTransformer = (errors) => {
const errorRet = errors.map((error) => { const errorRet = errors.map((error) => {
const { property } = error; const { property, params, name } = error;
/** /**
* For nested fields we have to check if it's property start with "." * For nested fields we have to check if it's property start with "."
@ -290,12 +290,25 @@ export const transformErrors: ErrorTransformer = (errors) => {
// If element is not present in DOM, ignore error // If element is not present in DOM, ignore error
if (document.getElementById(id)) { if (document.getElementById(id)) {
const fieldName = error.params?.missingProperty; const fieldName = startCase(property?.split('/').pop() ?? '');
if (fieldName) {
const customMessage = i18n.t('message.field-text-is-required', { const errorMessages = {
fieldText: startCase(fieldName), required: () => ({
}); message: i18n.t('message.field-text-is-required', {
error.message = customMessage; fieldText: startCase(params?.missingProperty),
}),
}),
minimum: () => ({
message: i18n.t('message.value-must-be-greater-than', {
field: fieldName,
minimum: params?.limit,
}),
}),
};
const errorHandler = errorMessages[name as keyof typeof errorMessages];
if (errorHandler && params) {
error.message = errorHandler().message;
return error; return error;
} }