diff --git a/projects/demo/src/app/pages/form-field/form-field-demo.service.ts b/projects/demo/src/app/pages/form-field/form-field-demo.service.ts index 2eb6b9df..46289fc8 100644 --- a/projects/demo/src/app/pages/form-field/form-field-demo.service.ts +++ b/projects/demo/src/app/pages/form-field/form-field-demo.service.ts @@ -267,7 +267,7 @@ export class FormFieldDemoService { description: this._widgetDocs.getDescription( FORM_FIELD_SLOTS_DOCS_PATH, 'errorMessage', - 'Projected element, shown in the subscript area when the field is in an error state.', + 'Error message shown between the field and its hints when the field is in an error state.', ), }, { @@ -276,7 +276,7 @@ export class FormFieldDemoService { description: this._widgetDocs.getDescription( FORM_FIELD_SLOTS_DOCS_PATH, 'successMessage', - 'Projected element, shown in the subscript area when the field is in a success state.', + 'Success message shown between the field and its hints. Error messages take precedence.', ), }, { @@ -285,7 +285,7 @@ export class FormFieldDemoService { description: this._widgetDocs.getDescription( FORM_FIELD_SLOTS_DOCS_PATH, 'hintMessage', - 'Projected element, shown in the subscript area by default.', + 'Hint shown below the field, remaining visible below error or success messages.', ), }, ]; diff --git a/projects/widgets/forms/components/form-field/form-field.component.html b/projects/widgets/forms/components/form-field/form-field.component.html index c7916e1c..f4613b08 100644 --- a/projects/widgets/forms/components/form-field/form-field.component.html +++ b/projects/widgets/forms/components/form-field/form-field.component.html @@ -39,20 +39,18 @@
- @let messages = _displayedMessages(); - @if (messages) { + @let stateMessage = _displayedStateMessage(); + @if (stateMessage || _hasHintMessages()) {
- @switch (messages) { + @switch (stateMessage) { @case ("error") { } @case ("success") { } - @case ("hint") { - - } } +
}
diff --git a/projects/widgets/forms/components/form-field/form-field.component.slots.docs.json b/projects/widgets/forms/components/form-field/form-field.component.slots.docs.json index d2c782ba..d8eb1ee5 100644 --- a/projects/widgets/forms/components/form-field/form-field.component.slots.docs.json +++ b/projects/widgets/forms/components/form-field/form-field.component.slots.docs.json @@ -43,20 +43,20 @@ }, "errorMessage": { "description": { - "en": "Projected element, shown in the subscript area when the field is in an error state.", - "hu": "Beillesztett elem, amely hibaállapot esetén jelenik meg a mező alatti területen." + "en": "Error message shown between the field and its hints when the field is in an error state.", + "hu": "Hibaállapotban a mező és a súgóüzenetek között megjelenő hibaüzenet." } }, "successMessage": { "description": { - "en": "Projected element, shown in the subscript area when the field is in a success state.", - "hu": "Beillesztett elem, amely sikeres állapot esetén jelenik meg a mező alatti területen." + "en": "Success message shown between the field and its hints. Error messages take precedence.", + "hu": "Sikeres állapotban a mező és a súgóüzenetek között megjelenő üzenet. A hibaüzenet elsőbbséget élvez." } }, "hintMessage": { "description": { - "en": "Projected element, shown in the subscript area by default.", - "hu": "Beillesztett elem, amely alapértelmezetten a mező alatti területen jelenik meg." + "en": "Hint shown below the field, remaining visible below error or success messages.", + "hu": "A mező alatt megjelenő súgóüzenet, amely hiba vagy sikeres állapotban is látható marad az állapotüzenet alatt." } } } diff --git a/projects/widgets/forms/components/form-field/form-field.component.ts b/projects/widgets/forms/components/form-field/form-field.component.ts index 07d40433..9d2bd805 100644 --- a/projects/widgets/forms/components/form-field/form-field.component.ts +++ b/projects/widgets/forms/components/form-field/form-field.component.ts @@ -74,16 +74,15 @@ export class IdsFormFieldComponent extends ComponentBaseWithDefaults(() => { + protected _hasHintMessages = computed(() => this._hintMessages().length > 0); + + protected _displayedStateMessage = computed<'error' | 'success' | undefined>(() => { if (this._errorMessages().length > 0 && this._hasErrorState()) { return 'error'; } if (this._successMessages().length > 0 && this._hasSuccessState()) { return 'success'; } - if (this._hintMessages().length > 0) { - return 'hint'; - } return undefined; });