Skip to content

Commit

Permalink
feat: #82 add CheckoutSteps enum
Browse files Browse the repository at this point in the history
  • Loading branch information
Baroshem committed Sep 14, 2021
1 parent e5a6845 commit d3c0ea3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 22 deletions.
7 changes: 7 additions & 0 deletions packages/theme/helpers/checkout.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,10 @@ export const canEnterShipping = (cart: Order): boolean => Boolean(cart?.customer
export const canEnterBilling = (cart: Order): boolean => Boolean(cart?.shippingAddress?.streetLine1 && cart?.shippingAddress?.country);

export const canEnterPayment = (cart: Order): boolean => canEnterShipping(cart) && canEnterBilling(cart) && cart?.shipping && cart?.state === ARRANGING_PAYMENT;

export enum CheckoutSteps {
Shipping = 'shipping',
Billing = 'billing',
Payment = 'payment',
ThankYou = 'thank-you'
}
35 changes: 13 additions & 22 deletions packages/theme/middleware/checkout.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { canEnterShipping, canEnterBilling, canEnterPayment, canEnterThankYou } from '../helpers';
import { canEnterShipping, canEnterBilling, canEnterPayment, canEnterThankYou, CheckoutSteps } from '../helpers';

export default async ({ app, $vsf }) => {
const currentPath = app.context.route.fullPath.split('/checkout/')[1];
Expand All @@ -10,26 +10,17 @@ export default async ({ app, $vsf }) => {

if (!cart?.data || !activeCart) return;

switch (currentPath) {
case 'shipping':
if (!canEnterShipping(activeCart)) {
app.context.redirect('/');
}
break;
case 'billing':
if (!canEnterBilling(activeCart)) {
app.context.redirect('/');
}
break;
case 'payment':
if (!canEnterPayment(activeCart)) {
app.context.redirect('/');
}
break;
case 'thank-you':
if (!canEnterThankYou(app.context)) {
app.context.redirect('/');
}
break;
if (currentPath === CheckoutSteps.Shipping && !canEnterShipping(activeCart)) {
app.context.redirect('/');

} else if (currentPath === CheckoutSteps.Billing && !canEnterBilling(activeCart)) {
app.context.redirect('/');

} else if (currentPath === CheckoutSteps.Payment && !canEnterPayment(activeCart)) {
app.context.redirect('/');

} else if (currentPath === CheckoutSteps.ThankYou && !canEnterThankYou(app.context)) {
app.context.redirect('/');

}
};

0 comments on commit d3c0ea3

Please sign in to comment.