feat(checkout): enhance checkout form with user data pre-filling and disable fields
This commit is contained in:
parent
09fa876da3
commit
a642ae84d5
|
|
@ -2,6 +2,8 @@ export interface AuthUser {
|
|||
id: number;
|
||||
nombre_apellido: string;
|
||||
email: string;
|
||||
dni?: string;
|
||||
telefono?: string;
|
||||
}
|
||||
|
||||
export interface LoginPayload {
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@
|
|||
placeholder="Descripcion"
|
||||
[value]="form().controls.nombre.value"
|
||||
[invalid]="showControlError('nombre')"
|
||||
[disabled]="form().controls.nombre.disabled"
|
||||
(valueChange)="updateField('nombre', $event)"
|
||||
/>
|
||||
@if (getControlError('nombre'); as errorMessage) {
|
||||
|
|
@ -32,6 +33,7 @@
|
|||
placeholder="Descripcion"
|
||||
[value]="form().controls.email.value"
|
||||
[invalid]="showControlError('email')"
|
||||
[disabled]="form().controls.email.disabled"
|
||||
(valueChange)="updateField('email', $event)"
|
||||
/>
|
||||
@if (getControlError('email'); as errorMessage) {
|
||||
|
|
@ -49,6 +51,7 @@
|
|||
placeholder="Descripcion"
|
||||
[value]="form().controls.dni.value"
|
||||
[invalid]="showControlError('dni')"
|
||||
[disabled]="form().controls.dni.disabled"
|
||||
(valueChange)="updateField('dni', $event)"
|
||||
/>
|
||||
@if (getControlError('dni'); as errorMessage) {
|
||||
|
|
@ -66,6 +69,7 @@
|
|||
placeholder="Descripcion"
|
||||
[value]="form().controls.telefono.value"
|
||||
[invalid]="showControlError('telefono')"
|
||||
[disabled]="form().controls.telefono.disabled"
|
||||
(valueChange)="updateField('telefono', $event)"
|
||||
/>
|
||||
@if (getControlError('telefono'); as errorMessage) {
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import { startWith } from 'rxjs';
|
|||
import { CartService } from '../../../../core/services/cart/cart.service';
|
||||
import { TenantService } from '../../../../core/services/tenant.service';
|
||||
import { CheckoutService, CreatePurchasePayload } from '../../../../core/services/checkout.service';
|
||||
import { AuthService } from '../../../../core/services/auth/auth.service';
|
||||
import { BankAccount } from '../../../../core/services/tenant.interface';
|
||||
import { CartItem } from '../../../../core/services/cart/cart.interface';
|
||||
import { CartComponent, CartItemMock } from '../../../../shared/components/cart/cart.component';
|
||||
|
|
@ -35,6 +36,7 @@ export class CheckoutPageComponent {
|
|||
private readonly router = inject(Router);
|
||||
private readonly tenantService = inject(TenantService);
|
||||
private readonly checkoutService = inject(CheckoutService);
|
||||
private readonly authService = inject(AuthService);
|
||||
|
||||
@ViewChild(StepperComponent) stepper!: StepperComponent;
|
||||
|
||||
|
|
@ -84,6 +86,18 @@ export class CheckoutPageComponent {
|
|||
this.form.statusChanges
|
||||
.pipe(startWith(this.form.status))
|
||||
.subscribe(() => this.isStep1Valid.set(this.form.valid));
|
||||
|
||||
const user = this.authService.user();
|
||||
if (user) {
|
||||
this.form.patchValue({
|
||||
nombre: user.nombre_apellido,
|
||||
email: user.email,
|
||||
dni: user.dni ?? '',
|
||||
telefono: user.telefono ?? ''
|
||||
});
|
||||
this.form.controls.nombre.disable();
|
||||
this.form.controls.email.disable();
|
||||
}
|
||||
}
|
||||
|
||||
private mapCartItemToMock(item: CartItem): CartItemMock {
|
||||
|
|
|
|||
Loading…
Reference in New Issue