paxton-front/composables/useCheckout.ts
alsaze 887ea75e8b
Some checks failed
Deploy / build (push) Failing after 24s
карта ПВЗ
2025-10-17 03:32:57 +03:00

51 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}`)
}
else {
router.push(`/cart`)
}
}
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,
}
})