feat(agents, validation): enhance agent profile and player management with input validation

Added input validation for admin login and player creation forms, ensuring usernames and passwords meet specified criteria. Introduced new components for numeric input handling in agent profile fields, improving user experience. Updated agent line detail and provision wizard to reflect these changes, enhancing overall data integrity and user interaction.
This commit is contained in:
2026-06-14 21:13:21 +08:00
parent 6ea0a6feec
commit 4fe206cb10
14 changed files with 1299 additions and 504 deletions

View File

@@ -0,0 +1,42 @@
/** 后台/彩票端登录账号:字母、数字、点、下划线、连字符。 */
export const ADMIN_ACCOUNT_PATTERN = /^[a-zA-Z0-9._-]+$/;
export const ADMIN_PASSWORD_MIN_LENGTH = 8;
export const NATIVE_PLAYER_PASSWORD_MIN_LENGTH = 6;
export type AccountValidationIssue = "empty" | "invalid_charset";
export type PasswordValidationIssue = "empty" | "too_short";
export function validateAdminLoginAccount(value: string): AccountValidationIssue | null {
const trimmed = value.trim();
if (trimmed === "") {
return "empty";
}
if (!ADMIN_ACCOUNT_PATTERN.test(trimmed)) {
return "invalid_charset";
}
return null;
}
export function validateAdminPassword(
value: string,
minLength: number = ADMIN_PASSWORD_MIN_LENGTH,
): PasswordValidationIssue | null {
if (value === "") {
return "empty";
}
if (value.length < minLength) {
return "too_short";
}
return null;
}
export function validateNativePlayerUsername(value: string): AccountValidationIssue | null {
return validateAdminLoginAccount(value);
}
export function validateNativePlayerPassword(value: string): PasswordValidationIssue | null {
return validateAdminPassword(value, NATIVE_PLAYER_PASSWORD_MIN_LENGTH);
}