purityselect/resources/js/plugins/custom.js
2024-10-25 01:05:27 +05:00

73 lines
2.4 KiB
JavaScript

import { ref } from 'vue'
export default function myPlugin() {
return {
apply: 'RadiogroupElement',
setup(props, context, component) {
const myRef = ref(null)
console.log('component',component.form$.value,context)
const disqualifyValues = context?.attrs?.disqualify?.split(',').map(val => val.trim()) || []
console.log('Disqualify Values:', disqualifyValues)
const radioValue = ref(component.value)
// Watch the value of the radio group
watch(radioValue, (newValue) => {
if (!disqualifyValues.includes(newValue)) {
console.log('Selected value is not disqualified:', newValue)
myRef.value = `Selected value: ${newValue}`
} else {
console.log('Selected value is disqualified:', newValue)
myRef.value = 'This option is disqualified'
console.log('component element',component.form$.value.$el)
component.form$.value.$el.setAttribute('disqualify',true)
// context.emit('handleDisqualifyStep')
}
})
watch(() => component.value, (newValue) => {
radioValue.value = newValue
})
// const checkDisqualification = () => {
// if (disqualifyValues.includes(radioValue.value)) {
// console.log('Selected value is disqualified:', radioValue.value)
// myRef.value = 'This option is disqualified'
// // Navigate to the disqualification step
// if (context.$emit) {
// context.$emit('go-to-step', 'disqualification')
// }
// } else {
// console.log('Selected value is not disqualified:', radioValue.value)
// myRef.value = `Selected value: ${radioValue.value}`
// }
// }
// const handleNextStep = () => {
// checkDisqualification()
// }
// // Watch the form submission or next button click event
// onMounted(() => {
// component.on('next-step', handleNextStep)
// })
// onBeforeUnmount(() => {
// component.off('next-step', handleNextStep)
// })
// // Update the radioValue when component.value changes
// watch(() => component.value, (newValue) => {
// radioValue.value = newValue
// })
return {
...component,
myRef,
}
},
}
}