UNPKG

naim-firebase-auth-wrapper

Version:

React components and hooks for Firebase Authentication and Firestore with Mantine UI

50 lines 1.9 kB
export const validateEmail = (email) => { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return { isValid: emailRegex.test(email), error: emailRegex.test(email) ? '' : 'Please enter a valid email address' }; }; export const validatePassword = (password) => { if (!password) { return { isValid: false, error: 'Password is required' }; } if (password.length < 8) { return { isValid: false, error: 'Password must be at least 8 characters' }; } if (!/(?=.*[a-z])/.test(password)) { return { isValid: false, error: 'Password must contain at least one lowercase letter' }; } if (!/(?=.*[A-Z])/.test(password)) { return { isValid: false, error: 'Password must contain at least one uppercase letter' }; } if (!/(?=.*\d)/.test(password)) { return { isValid: false, error: 'Password must contain at least one number' }; } if (!/(?=.*[!@#$%^&*])/.test(password)) { return { isValid: false, error: 'Password must contain at least one special character (!@#$%^&*)' }; } return { isValid: true, error: '' }; }; export const validateName = (name) => { if (!name.trim()) { return { isValid: false, error: 'Name is required' }; } if (name.trim().length < 2) { return { isValid: false, error: 'Name must be at least 2 characters' }; } if (!/^[a-zA-Z\s]*$/.test(name)) { return { isValid: false, error: 'Name can only contain letters and spaces' }; } return { isValid: true, error: '' }; }; export const validatePhone = (phone) => { if (!phone) return { isValid: true, error: '' }; // Optional field const phoneRegex = /^\+?[\d\s-]{10,}$/; return { isValid: phoneRegex.test(phone), error: phoneRegex.test(phone) ? '' : 'Please enter a valid phone number' }; }; //# sourceMappingURL=validation.js.map