Изменения в версиях библиотеки
Некоторые ключевые изменения компонентов библиотеки необходимо учитывать при обновлении версии в своём проекте: вполне вероятен исход, при котором реализация, работавшая ранее, с новой версией перестаёт корректно функционировать. Во избежание подобных ситуаций рекомендуется отслеживать изменения - для облегчения данного процесса организован этот раздел документации.
0.111
Компонент ChatList
- Новое свойство в props: titleEnabled: Boolean. titleEnabled включает демонстрацию титула "Чаты", по умолчанию true.
- Новое свойство в props: filterQuery: String. filterQuery замещает внутреннюю переменную для фильтра чатов по строке, если filterEnabled = false и есть необходимость в размещении ChatFilter отдельно.
- Вырезана кнопка действий рядом с титулом "Чаты" (кнопка в виде плюса, открывающая контекстное меню) - вместо этой кнопки предусмотрен слот #actions, в который можно внедрить, например, более актуальный компонент ButtonContextMenu.
0.117
Компонент ButtonContextMenu
- Удалено свойство в props: ButtonClass - применялся для задания иконки триггера контекстного меню.
- Удалено свойство в props: ButtonTitle - применялся для задания произвольного текста триггера контекстного меню.
- Добавлен слот #default - через этот слот задаётся внешний вид триггера контекстного меню.
0.121
Компонент ChatInput
- Добавлен слот #inline-buttons - для размещения кнопок действия в один ряд с полем ввода текста сообщения.
- Удалён функционал ввода команд из компонента, выделен в отдельный компонент ButtonCommandsSelector.
Компонент ChatFilter
- Добавлена иконка лупы в поле ввода.
0.122
- Добавлен компонент ReplyCallMessage - новый вид ответного сообщения
- Изменён объект ответного сообщения, добавлены поля:
- header : string (заголовок, например, имя отправителя сообщения, для всех видов сообщений-ответов)
- callDuration : string (длительность звонка, для ReplyCallMessage)
- isMissedCall : boolean (пропущен ли звонок, для ReplyCallMessage)
0.125
- Добавлен функционал изменения оформления некоторых компонентов в зависимости от условия - подробнее описано здесь
0.126
Компонент ChatInfo
- Добавлен слот #img-description - предполагается размещение там иконок и иных изображений, описывающих содержимое, как правило, диалога
- Новое свойство в props: additionalTitle : String. При его наличии на уровне с заголовком отображается дополнительная информация, выделенная цветной границей.
0.129
Добавлен компонент SplashScreen - информационная интерактивная заглушка в случае отсутствия необходимой информации в некоторых компонентах.
- Интегрированы три слота: #title, #text, #picture - предполагается размещение в этих слотах заголовка, основной информации и некоторого графического и не только объекта соответственно.
- Представлен emit action - реакция на клик по содержимому слота #picture для реализации интерактивного взаимодействия с заглушкой.
Компонент ChatWrapper
- Вырезана заглушка с текстом "Выберите контакт для начала общения".
- Добавлен слот #placeholder для реализации пользовательской заглушки (например, посредством SplashScreen).
Компонент Feed
- Добавлен слот #empty-feed для реализации пользовательской заглушки (например, посредством SplashScreen) в случае отсутствия объектов для визуализации.
0.131
Изменения в работе компонента ChatItem, вложенного в контейнер ChatList.
Для диалогового чата:
- клик по карточке чата - убран дополнительный эффект, связанный с открытием/закрытием панели с диалогами, происходит только emit select с аргументом {chat: Object, dialog: null}.
- клик по иконке открытия/закрытия дополнительной информации о диалогах - предусмотрен emit expand с аргументом типа Object, содержащим поля сущности чата.
- клик по диалогу - оставлен emit select с аргументом {chat: Object, dialog: Object}.
Для стандартного чата схематика работы оставлена прежняя.
0.3.10
Storybook структура
- Исправлена структура отображения компонентов в Storybook
- Добавлены правильные title для всех категорий (Atoms, Blocks, Compounds, etc.)
Перемещение компонентов
PlaceholderComponentперемещен из5_containersв2_chatinput_elementsSplashScreenперемещен из5_containersв2_feed_elements
Создание Stories
- Добавлены stories для всех компонентов в
5_containers(BaseContainer, FloatContainer) - Добавлены stories для всех компонентов в
4_layouts(BaseLayout, ChatWrapper, FeedLayout, ExtendedLayout, AdaptiveExtendedLayout) - Добавлены stories для SplashScreen
Исправления импортов
- Исправлены неправильные пути к компоненту ThemeMode
- Исправлены импорты в FileUploader.stories.ts
- Исправлены типы Story в ContactInfo.stories.ts
Линтер
- Закомментированы неиспользуемые переменные в MobilonExtendedChatApp.vue
- Исправлены ошибки парсинга в story файлах
Архитектура
- Обновлена структура тем (добавлен global.scss)
- Реорганизованы валидаторы тем в scripts/validators/
0.3.11
Реорганизация хуков
- Перенесены
playNotificationAudioиinsertDaySeparatorsизapps/helpersвhooks - Обновлены импорты во всех приложениях:
- BaseAdaptiveExtendedChatApp
- BaseBaseChatApp
- BaseExtendedChatApp
- BaseFeedChatApp
- FloatExtendedChatApp
- MobilonExtendedChatApp
Унификация импортов
- Введен единообразный стиль импорта через алиасы
@/components,@/types,@/hooks - Затронуты все уровни компонентов:
- Атомы (1_atoms)
- Блоки (2_blocks)
- Элементы (2_elements, 2_chatinput_elements, 2_feed_elements)
- Составные компоненты (3_compounds)
Централизация типов
- Типы перемещены ближе к компонентам, где они используются
- Создан единый индексный файл для экспорта типов из
src/types/index.ts - Типы компонентов организованы в:
2_feed_elements/types/3_compounds/ChatInput/types/
Централизация экспорта компонентов
- Удалены отдельные
index.tsфайлы из каждой категории компонентов - Создан единый
components/index.tsдля экспорта всех компонентов
0.3.12
Рефакторинг и улучшения
Организация кода:
- Перенесены модальные диалоги в hooks (useCreateChat, useCreateChat2, useCreateDialog, useModalSelectUser2)
- Простые функции вынесены из hooks в /functions (sortByTimestamp, formatTimestamp, getStatusMessage, etc)
- Список тем вынесен в data
- Удалена папка /apps/helpers (функционал перенесен в hooks и functions)
Валидация:
- Добавлен реактивный валидатор чатов (выводит отчет о проблемах в консоль)
- Добавлен валидатор сообщений
- Добавлен валидатор sidebar items
Документация:
- Добавлен JSDoc для функций
- Добавлена документация для useMessage hook
Оптимизация сборки (текущие изменения):
- Убраны статические экспорты для динамически загружаемых компонентов (SelectUser2, CreateChat, CreateChat2, CreateDialog)
- Исправлены предупреждения Vite о конфликте статических и динамических импортов
- Компоненты модалов теперь загружаются только по требованию (code splitting работает корректно)
0.3.13
Удален extChatAppId
- Удалён избыточный prop extChatAppId из контейнеров
Уплотнили хуки модальных диалогов
- Перемещены useModal.ts и useVideoRecorder.ts в /hooks/modals/
- Очистка экспортов, создан TODO.md
Перенес валидаторы в hooks, экспортируем
- Validators: /apps/validators/ → /hooks/validators/
- Исправлен конфликт типов ChatList → ChatsArray
Изменены импорты
- Все импорты через @/components (единообразие)
0.3.15
Зависимости: Обновлены package.json и package-lock.json
Компоненты модальных окон (2_modals):
- CreateChat2: значительное расширение функционала, полная система тем для всех 4 тем, новые типы стилей
- Modal: рефакторинг стилей (168 строк изменено), обновление системы тем для всех вариантов SelectUser/SelectUser2: перемещены из 2_blocks в 2_modals
Приложения:
- MobilonExtendedChatApp: добавлен новый функционал (+48 строк)
Темы:
- Обновлены импорты компонентов во всех 4 темах (dark, default, green, mobilon1)
- Изменения в green/vars.scss
Списки чатов:
- ChatList: новые возможности, обновлен README (+10 строк документации)
Хуки:
- Оптимизация useModal.ts (+21 строка) Обновление useModalSelectUser2.ts
Сборка:
- components/index.ts: удалены статические импорты 5 модальных окон для code-splitting оптимизации
0.3.17
Новые функции в ChatList:
- Фильтр поиска (ChatFilter) - добавлен компонент фильтрации чатов
- Фильтрация по табам (ChatTabs) - добавлена возможность фильтрации по вкладкам
- Обновлены стили и темы для новых компонентов
Улучшения ChatList:
- Обновлена логика компонента ChatList.vue
- Добавлены новые стили и темы (dark, default, green, mobilon1)
- Обновлена документация README
Обновления данных:
- Изменения в src/apps/data/chats.ts
- Обновлен MobilonExtendedChatApp.vue
0.3.18
Убрано лишнее логирование
- Удалены все console.log из компонента ChatList.vue
- Убраны watchers для отслеживания изменений props
- Очищен код от отладочной информации
Изменены условия валидации:
- chatId теперь должен быть строкой (было числом)
- lastActivity.timestamp теперь должен быть числом (было строкой)
- Добавлена проверка на существование contact.attributes перед валидацией
- chatId теперь необязательное поле, но если есть - должно быть строкой
- Добавлены исключения для системных сообщений типа "system.date"
- Для системных сообщений messageId и timestamp стали необязательными
0.3.19
- ButtonEmojiPicker - добавлена поддержка режимов клика и наведения
- Исправлена проблема с импортом фонового изображения по умолчанию
0.3.20
Новые функции:
- useValidation - добавлен новый хук с выбором валидаторов
- ChatList - добавлена возможность задавать заголовок списка чатов через пропс
Исправления:
- Удален неиспользуемый storybook для Tooltip
Рефакторинг Feed компонента:
- Вынесена логика в 9 новых composables:
- useFeedScrollTo - прокрутка к сообщению
- useFeedLoadMore - подгрузка сообщений
- useFeedKeyboard - обработка клавиатуры
- useFeedReply - обработка ответов
- useFeedComponents - маппинг компонентов
- useFeedMessageVisibility - отслеживание видимости
- useFeedGrouping - группировка сообщений
- useFeedButton - логика кнопок
- useStickyDate - sticky даты
0.3.21
Новая функциональность:
- Добавлены статусы pending и error для сообщений (#13725)
- Добавлены хуки: useMessageActions, useMessageLinks для работы с сообщениями (#13556)
- Добавлена функция getMessageClass для компонентов сообщений
Рефакторинг:
- useMessage переименован в useMessageDraft
- useMessageActions и useMessageLinks перемещены в hooks\messages
Storybook:
- Обновлены stories для 13 компонентов (SystemMessage, SplashScreen, Reply, DateMessageSticky, ContactInfo, ChannelSelector, ButtonEmojiPicker, FeedKeyboard, TextMessage)
- Добавлена поддержка тем в Tooltip с новыми примерами позиционирования
- Исправлена типизация в SplashScreen.stories.ts
0.3.22
Новая функциональность:
- Добавлены статусы pending и error для сообщений
- Добавлены хуки useMessageActions и useMessageLinks для работы с сообщениями
- Добавлена функция getMessageClass для компонентов сообщений
Рефакторинг:
- useMessage переименован в useMessageDraft
- useMessageActions и useMessageLinks перемещены в hooks\messages
Storybook:
- Обновлены stories для 13 компонентов (SystemMessage, SplashScreen, Reply*, DateMessageSticky, ContactInfo, ChannelSelector, ButtonEmojiPicker, FeedKeyboard, TextMessage)
- Добавлена поддержка тем в Tooltip с новыми примерами позиционирования
- Исправлена типизация в SplashScreen.stories.ts
0.3.23
- MessageReactions: добавлен компонент для реакций на сообщения
- storybook: добавлен компонент MessageReactions в storybook
- StickerMessage: устранено предупреждение, добавлены недостающие source map-файлы
0.3.24
- MessageReactions, Feed: добавлен prop для управления видимостью реакций в сообщениях
- storybook: добавлен пример чата BasicChatExample
- stories: добавлены примеры реакций для разных типов сообщений в MessageReactions
- stories: оптимизация Feed и TextMessage