opnform-host-nginx/client/composables/useCheckoutUrl.js

42 lines
1.3 KiB
JavaScript
Raw Normal View History

import { computed, unref } from 'vue'
export const useCheckoutUrl = (name, email, plan, yearly, currency) => {
return computed(() => {
// Unwrap refs if they are passed
const nameValue = unref(name)
const emailValue = unref(email)
const planValue = unref(plan)
const yearlyValue = unref(yearly)
const currencyValue = unref(currency)
const params = {
plan: planValue,
yearly: yearlyValue.toString(),
currency: currencyValue,
name: nameValue,
email: emailValue
}
// Get trial duration if exists - only in client side
if (import.meta.client) {
const urlParams = new URLSearchParams(window.location.search)
const trialDuration = urlParams.get('trial_duration')
if (trialDuration) {
params.trial_duration = trialDuration
// Keep the amplitude event
useAmplitude().logEvent('extended_trial_used', { duration: trialDuration })
}
}
// Filter out empty params
const filteredParams = Object.fromEntries(
// eslint-disable-next-line no-unused-vars
Object.entries(params).filter(([_, value]) => value !== null && value !== undefined && value !== '')
)
return {
name: 'redirect-checkout',
query: filteredParams
}
})
}