2025-03-22 12:41:56 -06:00

74 lines
3.1 KiB
JavaScript

import '@vuexy-admin/notifications/LivewireNotification.js';
import FormCustomListener from '@vuexy-admin/forms/formCustomListener';
import registerLivewireHookOnce from '@vuexy-admin/livewire/registerLivewireHookOnce';
// Inicializar formularios de ajustes de chat
window.ChatSettingsForm = new FormCustomListener({
formSelector: '#website-chat-settings-card',
buttonSelectors: ['.btn-save', '.btn-cancel'],
callbacks: [() => {}],
dispatchOnSubmit: 'save',
validationConfig: {
fields: {
chat_whatsapp_number: {
validators: {
callback: {
message: 'Por favor, introduce un número de teléfono válido para México.',
callback: function (input) {
// Obtener el proveedor directamente dentro de la validación
const provider = document.querySelector('#chat_provider')?.value;
// Validar solo si el proveedor es WhatsApp
if (provider !== 'whatsapp') return true;
const cleanValue = input.value.replace(/\D/g, '');
const regex = /^[1-9]\d{9}$/; // Exactamente 10 dígitos
return regex.test(cleanValue);
}
},
notEmpty: {
message: 'El número de teléfono es obligatorio.',
enabled: () => {
// Obtener el proveedor directamente dentro de la validación
const provider = document.querySelector('#chat_provider')?.value;
return provider === 'whatsapp'; // Habilita solo si es WhatsApp
}
}
}
},
chat_whatsapp_message: {
validators: {
stringLength: {
max: 500,
message: 'El mensaje no puede exceder los 500 caracteres.'
},
notEmpty: {
message: 'El mensaje es obligatorio.',
enabled: () => {
// Obtener el proveedor directamente dentro de la validación
const provider = document.querySelector('#chat_provider')?.value;
return provider === 'whatsapp'; // Habilita solo si es WhatsApp
}
}
}
}
},
plugins: {
trigger: new FormValidation.plugins.Trigger(),
bootstrap5: new FormValidation.plugins.Bootstrap5({
eleValidClass: '',
rowSelector: '.fv-row'
}),
submitButton: new FormValidation.plugins.SubmitButton(),
autoFocus: new FormValidation.plugins.AutoFocus()
}
}
});
registerLivewireHookOnce('morphed', 'vuexy-website-admin::chat-settings', (component) => {
ChatSettingsForm.reloadValidation();
});