feat(profile): read-first редизайн страницы пользователя, per-field как в задачах

- Раскладка: шапка-профиль → Основное/Контакты → Роль и доступ/Поля+Замещение → вторичные разделы чипами
- ProfileFieldRow: двойной клик/карандаш, редактор в слоте, Esc, optimistic-кэш, все типы полей
- Замещение: надпись + ⊕ popover, список под строкой
- Удалены RHF-форма, zod-схема и кнопки «Сохранить»
- server: PATCH /api/users/:id (частичное обновление, admin-градация, аудит)
- server: history-number в REST PATCH пишет историю + пересчёт средней
This commit is contained in:
2026-09-06 18:47:05 +03:00
parent ddc2bd9491
commit a60a75eda0
6 changed files with 2041 additions and 914 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -5,7 +5,7 @@ import { Label } from '@/components/ui/label';
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Plus, Trash2 } from 'lucide-react';
const CONTACT_TAGS = ['Рабочий', 'Свой', 'Основной'];
export const CONTACT_TAGS = ['Рабочий', 'Свой', 'Основной'];
type ContactItem = { value: string; tag: string };

File diff suppressed because it is too large Load Diff