Fixes: None; Extra: 1) Create Pinia stores for app, user, category, and company management; 2) Add utility functions for error handling and category slug lookups; 3) Include German locale file and robots.txt for improved SEO and accessibility; 4) Add SVG assets and improve general folder structure for better maintainability.
44 lines
No EOL
833 B
TypeScript
44 lines
No EOL
833 B
TypeScript
export function useValidators() {
|
|
const { t } = useI18n()
|
|
|
|
const required = (text: string) => {
|
|
if (text) return true
|
|
return t('errors.required')
|
|
}
|
|
|
|
const isEmail = (email: string) => {
|
|
if (!email) return required(email)
|
|
if (/.+@.+\..+/.test(email)) return true
|
|
return t('errors.mail')
|
|
}
|
|
|
|
const isPasswordValid = (pass: string) => {
|
|
if (pass.length < 8) {
|
|
return t('errors.needMin')
|
|
}
|
|
|
|
if (!/[a-z]/.test(pass)) {
|
|
return t('errors.needLower')
|
|
}
|
|
|
|
if (!/[A-Z]/.test(pass)) {
|
|
return t('errors.needUpper')
|
|
}
|
|
|
|
if (!/\d/.test(pass)) {
|
|
return t('errors.needNumber')
|
|
}
|
|
|
|
if (!/[#.?!@$%^&*'()_+=:;"'/>.<,|\-]/.test(pass)) {
|
|
return t('errors.needSpecial')
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
return {
|
|
required,
|
|
isEmail,
|
|
isPasswordValid
|
|
}
|
|
} |