FenjuFu commented on issue #287:
URL: 
https://github.com/apache/fineract-backoffice-ui/issues/287#issuecomment-5248543459

   I'd like to take the one-form proof slice. I checked current `main`, and 
propose this API/scope before writing the implementation:
   
   ```html
   <app-form-field labelKey="PAYMENT_TYPES.NAME" [required]="true">
     <ion-input name="name" [(ngModel)]="paymentType().name" 
required></ion-input>
   </app-form-field>
   ```
   
   - `app-form-field` is standalone and uses signal inputs (`labelKey`, 
`required`, optional `hintKey`). It owns the `ion-item fill="outline"` shell 
but content-projects the Ionic control, so `name`, `[(ngModel)]`, `type`, and 
other control-specific inputs stay at the call site.
   - A typed signal content query applies the translated value to the projected 
control's native `label` and `labelPlacement="stacked"` properties. That 
removes the sibling `ion-label` and makes `[attr.aria-label]` unnecessary 
without moving form ownership into the wrapper.
   - The wrapper exposes projected hint/error slots but does not introduce 
validation behavior in this PR.
   - For the proof form, I suggest `payment-type-form.component.ts`: its three 
inputs cover required/optional/number cases, it has no date triad to muddy the 
first API, and its existing unit spec can remain untouched.
   - Tests: a focused wrapper spec for translated label, required marker, 
preserved projected `name`, and accessible name; plus `getByLabel('Name')` in 
the existing mocked `functional-coverage.spec.ts` payment-type flow.
   - `_common.scss` already owns base `.form-container` padding/margin. I would 
add only a shared narrow-width modifier for the proof (`600px`) and remove the 
local duplicate; other width variants can move incrementally rather than adding 
unused utilities now.
   - I will update `STYLE.md` from the Ionic 7 sibling-label example to this 
wrapper/native-label pattern in the same PR.
   
   One design question: I prefer proving a single `app-form-field` first and 
adding select/date-specific components after its projection API is accepted. 
Would you like that smaller first PR, or do you want `app-select-field` and 
`app-date-field` included from the start?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to