Update on numeric inputs

This commit is contained in:
Andreas Knuth 2024-08-12 11:06:15 +02:00
parent d71a5c25c3
commit 245e76f697
2 changed files with 29 additions and 3 deletions

View File

@ -116,8 +116,15 @@
</div>
</div> -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<app-validated-input label="Years Established Since" name="established" [(ngModel)]="listing.established" kind="number"></app-validated-input>
<app-validated-input label="Employees" name="employees" [(ngModel)]="listing.employees" kind="number"></app-validated-input>
<app-validated-input
label="Years Established Since"
name="established"
[(ngModel)]="listing.established"
kind="number"
mask="0000"
(ngModelChange)="onNumericInputChange($event, 'listing.established')"
></app-validated-input>
<app-validated-input label="Employees" name="employees" [(ngModel)]="listing.employees" kind="number" mask="0000" (ngModelChange)="onNumericInputChange($event, 'listing.employees')"></app-validated-input>
</div>
<div class="flex mb-4 space-x-4">
@ -160,7 +167,13 @@
</div> -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<app-validated-input label="Broker Licensing" name="brokerLicencing" [(ngModel)]="listing.brokerLicencing"></app-validated-input>
<app-validated-input label="Internal Listing Number" name="internalListingNumber" [(ngModel)]="listing.internalListingNumber" kind="number"></app-validated-input>
<app-validated-input
label="Internal Listing Number"
name="internalListingNumber"
[(ngModel)]="listing.internalListingNumber"
kind="number"
(ngModelChange)="onNumericInputChange($event, 'listing.internalListingNumber')"
></app-validated-input>
</div>
<!-- <div class="mb-4">

View File

@ -146,4 +146,17 @@ export class EditBusinessListingComponent {
changeListingCategory(value: 'business' | 'commercialProperty') {
routeListingWithState(this.router, value, this.listing);
}
onNumericInputChange(value: string, modelProperty: string): void {
const newValue = value === '' ? null : +value;
this.setPropertyByPath(this, modelProperty, newValue);
}
private setPropertyByPath(obj: any, path: string, value: any): void {
const keys = path.split('.');
let target = obj;
for (let i = 0; i < keys.length - 1; i++) {
target = target[keys[i]];
}
target[keys[keys.length - 1]] = value;
}
}