Компоненты
Компоненты являются основными элементами настройки дизайн системы. В случае совпадения типа компонента (внешнего вида), могут переиспользоваться на пользовательских сценариях (экранах). Например, кнопка с иконкой.
Позволяют быстро устанавливать и менять стиль оформления чата.
Пример настройки:
// Создание компонентов дизайн системы
let components = ChatComponents()
// Переопределение параметров общих для СДК компонентов
components.navigationBarStyle.titleStyle.color = .white
components.searchBarStyle.cancelButtonStyle.tintColor = .white
// Создание темы из компонентов
let theme = ChatTheme(components: components)
или через конструктор build:
// Создание компонентов дизайн системы
let components = ChatComponents.build { components in
components.searchBarStyle.cancelButtonStyle.tintColor = .black
components.loadingChatStyle.indicatorStyle.backgroundColor = .systemGray3
components.loadingChatStyle.indicatorStyle.cornerRadius = 20.0
components.audioPlayerStyle.playButtonStyle.image = ChatImage(system: "play.fill", tintColor: .red)
components.audioPlayerStyle.pauseButtonStyle.image = ChatImage(system: "pause.fill", tintColor: .green)
components.audioPlayerStyle.progressViewStyle.color = .black
components.audioPlayerStyle.progressViewStyle.backgroundColor = .yellow
}
note
В случае необходимости поменять стиль общего компонента, но только в одном месте, необходимо переопределить его в нужном пользовательском сценарии
Доступны следующие компоненты для переопределения параметров:
(в дальнейшем список будет расширяться при необходимости)
Стили компонентов чата
| Название | Описание |
|---|---|
navigationBarStyle | Стиль панели навигации (заголовок, кнопки назад/вперед, цвет фона и т.д.). |
searchBarStyle | Стиль панели поиска в панели навигации |
loadingIndicatorStyle | Стиль индикатора загрузки (прогресс-бар, спиннер). Используется везде, где требуется отобразить процесс ожидания. |
loadingChatStyle | Стиль загрузки чата (экран при открытии чата). |
chatPlaceholderStyle | Стиль заглушки для пустого чата (например, когда нет сообщений). |
errorPlaceholderStyle | Стиль ошибки в чате (сетевая ошибка, сбой загрузки). Показывает информативное сообщение и действия (например, «Повторить»). |
inputTextStyle | Стиль текстового поля ввода сообщения. Настройка шрифта, цвета текста, placeholder’а, отступов и других параметров ввода. |
audioPlayerStyle | Стиль аудиоплеера для воспроизведения голосовых сообщений. Включает внешний вид и поведение элементов управления. |
inputViewStyle | Стиль панели ввода сообщений (нижняя часть чата). Включает поле ввода, кнопки отправки и прикрепления. |
photoPickerStyle | Стиль компонента выбора фото из галереи или камеры. |
fileViewerStyle | Стиль просмотра файлов (изображений, документов, видео). Управляет полноэкранным просмотром и интерактивностью. |