paxton-front/composables/useCheckout.ts
alsaze c38b6ba6a9
All checks were successful
Deploy / build (push) Successful in 2m24s
карта ПВЗ
2025-10-17 02:44:33 +03:00

48 lines
1.2 KiB
TypeScript

import { createSharedComposable } from '@vueuse/core'
export const useCheckout = createSharedComposable(() => {
const router = useRouter()
const route = useRoute()
const checkoutSteps = [
{
step: 1,
title: 'delivery',
},
{
step: 2,
title: 'contacts',
},
{
step: 3,
title: 'summary',
},
]
const currentCheckoutStep = ref(checkoutSteps.find(value => value.title === route.path.split('/').pop()))
function previewStep() {
const findIndex = checkoutSteps.findIndex(value => value.step === currentCheckoutStep?.value.step)
if (findIndex !== 0) {
currentCheckoutStep.value = checkoutSteps[findIndex - 1]
router.push(`/checkout/${currentCheckoutStep?.value.title}`)
}
}
function nextStep() {
const findIndex = checkoutSteps.findIndex(value => value.step === currentCheckoutStep?.value.step)
if (findIndex + 1 !== checkoutSteps.length) {
currentCheckoutStep.value = checkoutSteps[findIndex + 1]
router.push(`/checkout/${currentCheckoutStep?.value.title}`)
}
}
return {
checkoutSteps,
currentCheckoutStep,
previewStep,
nextStep,
}
})