feat: enhance checkout process with purchase editing and status handling
- Implemented purchase editing functionality in CheckoutPageComponent, allowing users to modify items in their purchase. - Added a new guard (checkoutPendingPurchaseGuard) to prevent navigation away from the checkout page while a purchase is in progress. - Updated the login page to handle return URLs after authentication. - Enhanced product detail page to support direct purchases with a new buyNow method. - Introduced new UI elements and logic to handle purchase status, including expired and rejected states in PurchaseStatusPageComponent. - Improved cart component to allow editing of item quantities with a toggle button. - Added quantity selector enhancements to disable controls when necessary. - Updated tests to cover new functionalities and ensure proper behavior of components.
This commit is contained in:
@@ -57,6 +57,20 @@
|
||||
Actualizar estado
|
||||
</app-button>
|
||||
</div>
|
||||
} @else if (status() === 'expired') {
|
||||
<div class="status-content__section status-content__section--primary">
|
||||
<div class="status-content__icon status-content__icon--warning">
|
||||
<i class="fa-solid fa-clock"></i>
|
||||
</div>
|
||||
<h2 class="status-content__title">LA COMPRA VENCIÓ</h2>
|
||||
<p class="status-content__subtitle">El plazo de pago terminó y liberamos el stock reservado.</p>
|
||||
</div>
|
||||
|
||||
<hr class="status-content__divider" />
|
||||
|
||||
<div class="status-content__section status-content__section--secondary">
|
||||
<p class="status-content__message">Podés volver a la tienda e iniciar una nueva compra.</p>
|
||||
</div>
|
||||
} @else if (status() === 'rejected') {
|
||||
<div class="status-content__section status-content__section--primary">
|
||||
<div class="status-content__icon status-content__icon--error">
|
||||
|
||||
@@ -5,7 +5,7 @@ import { CheckoutService, PurchaseStatusResponse } from '../../../../core/servic
|
||||
import { TenantService } from '../../../../core/services/tenant.service';
|
||||
import { ButtonComponent } from '../../../../shared/components/button/button.component';
|
||||
|
||||
type PurchaseStatusView = 'approved' | 'pending' | 'rejected' | 'error';
|
||||
type PurchaseStatusView = 'approved' | 'pending' | 'rejected' | 'expired' | 'error';
|
||||
|
||||
@Component({
|
||||
selector: 'app-purchase-status-page',
|
||||
@@ -93,6 +93,10 @@ export class PurchaseStatusPageComponent implements OnInit, OnDestroy {
|
||||
return 'rejected';
|
||||
}
|
||||
|
||||
if (purchase.status === 'expired') {
|
||||
return 'expired';
|
||||
}
|
||||
|
||||
return 'pending';
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user