На этой страницеAPI transforms
Локальные трансформации
Меняйте разрешённое локальное представление профиля и списка чатов.
API transforms
Трансформация получает ограниченный снимок нативной модели и возвращает декларативную правку. Нужны профиль localPrivate и ui.transform с точным slot.
Пустые разделы профиля
await api.transforms.register({ id: "hide-empty", slot: "profile" }, input => ({
hide: input.panes.filter(pane => pane.empty).map(pane => pane.id)
}));
Хост разрешает скрывать только известные разделы, помеченные как пустые. Неизвестные данные и другие ограничения проверяются нативной стороной.
Непрочитанные чаты выше
await api.transforms.register({ id: "unread-first", slot: "chatList", priority: 0 }, input => ({
order: input.items
.filter(item => !item.pinned)
.sort((a, b) => Number(b.unread > 0) - Number(a.unread > 0))
.map(item => item.handle)
}));
Закреплённые чаты нельзя перемещать или скрывать. Не включённые в patch элементы сохраняют относительный порядок. Это локальное отображение, а не изменение серверных папок или закрепов.
Контракт chatList
Вход: { items: [{ handle, title, unread, pinned }] }. Результат: { order?: [handle], hidden?: [handle] }.
Порядок и ограничения
Приоритет — целое число от −100 до 100. На runtime допускается до восьми трансформаций. Вход и результат ограничены 32 КиБ и проверяются хостом. Ошибка приводит к безопасному нативному fallback, а не к произвольной мутации модели.
displayLinks
Тип этого slot зарезервирован, но нативный renderer не подключён: регистрация отклоняется с feature_unavailable. Не публикуйте плагин, рассчитывающий на изменение ссылок через этот slot.