mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-16 11:23:10 +02:00
# Description of Changes Move frontend code into `core` folder and add infrastructure for `proprietary` folder to include premium, non-OSS features
66 lines
1.8 KiB
TypeScript
66 lines
1.8 KiB
TypeScript
import { useTranslation } from 'react-i18next';
|
|
|
|
export interface SignupFieldErrors {
|
|
name?: string
|
|
email?: string
|
|
password?: string
|
|
confirmPassword?: string
|
|
}
|
|
|
|
export interface SignupValidationResult {
|
|
isValid: boolean
|
|
error: string | null
|
|
fieldErrors?: SignupFieldErrors
|
|
}
|
|
|
|
export const useSignupFormValidation = () => {
|
|
const { t } = useTranslation();
|
|
|
|
const validateSignupForm = (
|
|
email: string,
|
|
password: string,
|
|
confirmPassword: string,
|
|
name?: string
|
|
): SignupValidationResult => {
|
|
const fieldErrors: SignupFieldErrors = {};
|
|
|
|
// Validate name
|
|
if (name !== undefined && name !== null && !name.trim()) {
|
|
fieldErrors.name = t('signup.nameRequired', 'Name is required');
|
|
}
|
|
|
|
// Validate email
|
|
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
if (!email) {
|
|
fieldErrors.email = t('signup.emailRequired', 'Email is required');
|
|
} else if (!emailRegex.test(email)) {
|
|
fieldErrors.email = t('signup.invalidEmail');
|
|
}
|
|
|
|
// Validate password
|
|
if (!password) {
|
|
fieldErrors.password = t('signup.passwordRequired', 'Password is required');
|
|
} else if (password.length < 6) {
|
|
fieldErrors.password = t('signup.passwordTooShort');
|
|
}
|
|
|
|
// Validate confirm password
|
|
if (!confirmPassword) {
|
|
fieldErrors.confirmPassword = t('signup.confirmPasswordRequired', 'Please confirm your password');
|
|
} else if (password !== confirmPassword) {
|
|
fieldErrors.confirmPassword = t('signup.passwordsDoNotMatch');
|
|
}
|
|
|
|
const hasErrors = Object.keys(fieldErrors).length > 0;
|
|
|
|
return {
|
|
isValid: !hasErrors,
|
|
error: null, // Don't show generic error, field errors are more specific
|
|
fieldErrors: hasErrors ? fieldErrors : undefined
|
|
};
|
|
};
|
|
|
|
return {
|
|
validateSignupForm
|
|
};
|
|
}; |