Added a global `notify` method via Nuxt plugin to replace `useNotification`. Improved messaging structure by embedding progress bars and handled dynamic durations. Updated usage across composables and components for consistency. - Replaced `useNotification` with `$notify` in all applicable files. - Updated `app.config.ts` to support customizable notification positions. - Refactored affected composables for simplified notification calls. - Enhanced progress indicator display within notifications. Breaking Changes: `useNotification` is removed, requiring migration to the new `$notify` API.
46 lines
828 B
TypeScript
46 lines
828 B
TypeScript
export function useValidators() {
|
|
const { t } = useI18n();
|
|
|
|
const required = (text: string) => {
|
|
if (text?.trim()) return true;
|
|
return t('errors.required');
|
|
};
|
|
|
|
const isEmail = (email: string) => {
|
|
const value = email?.trim();
|
|
|
|
if (!value) return required(value);
|
|
if (/.+@.+\..+/.test(value)) 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,
|
|
};
|
|
}
|