Files
portal/app/resources/js/composables/projectName.ts
T
Дмитрий f94552d452 WIP чекпойнт: lead-region/supplier бэкенд + фронт-редизайн + Pint + тесты
92 файла одной пачкой. Исключены чужие зоны: CLAUDE.md, .claude/settings.json, docs/observer/.pii-counters.json.
gitleaks staged: no leaks found. Не верифицировано тестами - сохранение труда в историю.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 05:17:12 +03:00

23 lines
1.1 KiB
TypeScript

/**
* Утилиты отображения имён проектов crm.bp.
*
* Поставщик crm.bp префиксует имена проектов признаком канала-провайдера
* (B1_/B2_/B3_ — три разных базы лидов). В UI Лидерры префикс — шум:
* пользователю интересен сам проект, а не канал.
*
* Трансформация — **display-only**: данные в БД (`supplier_projects.name`)
* не трогаем, фильтрация/поиск/маппинг идёт по сырому имени и `id`.
*/
const CHANNEL_PREFIX_RE = /^B[123]_/i;
/**
* Убирает префикс B1_/B2_/B3_ из начала имени проекта (case-insensitive).
* Префикс внутри строки и другие буквы (B0/B4/Bx) не трогает.
* null/undefined/'' -> ''.
*/
export function stripChannelPrefix(name: string | null | undefined): string {
if (!name) return '';
return name.replace(CHANNEL_PREFIX_RE, '');
}