mirror of
https://github.com/openfoodfacts/smooth-app.git
synced 2025-08-06 18:25:11 +08:00

Impacted files: * `knowledge_panel_world_map_card.dart`: handled the "multi geo" case; fixed the geo marker alignment * `permission_helper.dart`: removed comment * `pubspec.lock`: wtf * `pubspec.yaml`: added package `email_validator` * `svg_safe_network.dart`: minor refactoring * `user_management_helper.dart`: now using package `email_validator` * `user_preferences.dart`: replaced hard-coded string with const * `user_preferences_attribute_group.dart`: removed dead code
30 lines
937 B
Dart
30 lines
937 B
Dart
import 'package:email_validator/email_validator.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:openfoodfacts/openfoodfacts.dart';
|
|
|
|
class UserManagementHelper {
|
|
UserManagementHelper._();
|
|
|
|
static const String _userPattern = r'^[a-z0-9]+$';
|
|
static final RegExp _userRegex = RegExp(_userPattern);
|
|
|
|
static bool isEmailValid(final String email) =>
|
|
EmailValidator.validate(email);
|
|
|
|
static bool isUsernameValid(final String username) =>
|
|
username.isNotEmpty && _userRegex.hasMatch(username);
|
|
|
|
static bool isUsernameLengthValid(final String username) =>
|
|
username.length <= OpenFoodAPIClient.USER_NAME_MAX_LENGTH;
|
|
|
|
static bool isPasswordValid(final String password) => password.length >= 6;
|
|
}
|
|
|
|
extension UserManagementTextController on TextEditingController {
|
|
String get trimmedText => text.trim();
|
|
}
|
|
|
|
extension UserManagementEmail on String {
|
|
bool get isEmail => EmailValidator.validate(this);
|
|
}
|