SHA256
Сервер: уточнить правила имён каналов и поиск треда
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
const MIN_LEN = 1;
|
||||
const MIN_LEN = 3;
|
||||
const MAX_LEN = 32;
|
||||
const ALLOWED_CHARS_RE = /^[A-Za-z0-9_-]+$/;
|
||||
const DIGITS_ONLY_RE = /^[0-9]+$/;
|
||||
|
||||
export function normalizeChannelDisplayName(value) {
|
||||
if (value == null) return '';
|
||||
@@ -37,8 +38,8 @@ export function validateChannelDisplayName(value) {
|
||||
if (!ALLOWED_CHARS_RE.test(normalized)) {
|
||||
return { ok: false, code: 'bad_chars', normalized, slug: '' };
|
||||
}
|
||||
if (normalized === '0') {
|
||||
return { ok: false, code: 'reserved', normalized, slug: '' };
|
||||
if (DIGITS_ONLY_RE.test(normalized)) {
|
||||
return { ok: false, code: 'digits_only', normalized, slug: '' };
|
||||
}
|
||||
|
||||
const slug = toCanonicalChannelSlug(normalized);
|
||||
@@ -54,13 +55,13 @@ export function channelNameErrorText(code) {
|
||||
case 'blank':
|
||||
return 'Введите название канала.';
|
||||
case 'too_short':
|
||||
return 'Название слишком короткое: минимум 1 символ.';
|
||||
return 'Название слишком короткое: минимум 3 символа.';
|
||||
case 'too_long':
|
||||
return 'Название слишком длинное: максимум 32 символа.';
|
||||
case 'bad_chars':
|
||||
return 'Разрешены только латиница, цифры, _ и -.';
|
||||
case 'reserved':
|
||||
return 'Название "0" зарезервировано.';
|
||||
case 'digits_only':
|
||||
return 'Название канала не должно состоять только из цифр.';
|
||||
default:
|
||||
return 'Некорректное название канала.';
|
||||
}
|
||||
|
||||
@@ -86,11 +86,12 @@ export function toUserMessage(error, fallback = 'Действие не выпо
|
||||
code === 'BAD_CHANNEL_NAME' ||
|
||||
text.includes('channel name must match') ||
|
||||
text.includes('channelname contains unsupported') ||
|
||||
text.includes('channelname must not contain only digits') ||
|
||||
text.includes('channelname length must be 3..32') ||
|
||||
text.includes('channelname length must be 1..32') ||
|
||||
text.includes('bad_channel_name')
|
||||
) {
|
||||
return 'Некорректное название канала. Разрешены кириллица, латиница, цифры, пробел, _ и - (1..32 символа).';
|
||||
return 'Некорректное название канала. Разрешены только латинские буквы, цифры, _ и -. Длина: 3..32. Название не должно состоять только из цифр.';
|
||||
}
|
||||
|
||||
if (text.includes('channel name is required') || text.includes('введите имя канала')) {
|
||||
|
||||
Reference in New Issue
Block a user