schon/storefront/app/composables/rules/useFormValidation.ts
Alexandr SaVBaD Waltz 8d7685ef67 feat(notification): integrate global notification plugin using ElNotification
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.
2026-03-01 15:30:47 +03:00

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,
};
}