# Исправление закрытия диалога выбора реакции

## Проблема
После добавления реакции на сообщение диалог выбора эмодзи не закрывался, что создавало плохой пользовательский опыт.

## Решение
Были внесены следующие изменения:

### 1. Исправление в MessageAdapter.kt
- Добавлен вызов `dialog.dismiss()` в обработчик клика по эмодзи
- Добавлен новый callback `onReactionAdded` для принудительного обновления сообщений

### 2. Исправление в ChatViewModel.kt
- Добавлена проверка реакций в методе `hasMessagesChanged()`
- Добавлено принудительное обновление сообщений после добавления/удаления реакции

### 3. Исправление в ChatActivity.kt
- Добавлен callback `onReactionAdded` для принудительного обновления сообщений
- Реализована логика принудительного обновления сообщений после добавления реакции

## Технические детали

### MessageAdapter.kt
```kotlin
// В обработчике клика по эмодзи добавлено:
setOnItemClickListener {
    onAddReaction?.invoke(message, emoji)
    // Dismiss the dialog
    dialog.dismiss()
}
```

### ChatViewModel.kt
```kotlin
// В методе hasMessagesChanged() добавлена проверка реакций:
// Compare reactions (this affects message display)
val currentReactions = current.reactions ?: emptyList()
val newReactions = new.reactions ?: emptyList()

if (currentReactions.size != newReactions.size) {
    return true
}

// Compare reaction content (emoji and who reacted)
val currentReactionsSorted = currentReactions.sortedBy { it.id }
val newReactionsSorted = newReactions.sortedBy { it.id }

for (k in currentReactionsSorted.indices) {
    val currentReaction = currentReactionsSorted[k]
    val newReaction = newReactionsSorted.getOrNull(k) ?: return true
    if (currentReaction.id != newReaction.id ||
        currentReaction.reaction != newReaction.reaction ||
        currentReaction.chatUserId != newReaction.chatUserId) {
        return true
    }
}
```

### ChatActivity.kt
```kotlin
// Добавлен callback для принудительного обновления:
onReactionAdded = { 
    // Force refresh messages after reaction is added
    shouldScrollAfterRefresh = true
    viewModel.refreshMessages()
}
```

## Результат
- Диалог выбора эмодзи теперь закрывается сразу после выбора
- Сообщения обновляются в реальном времени после добавления реакции
- Улучшен пользовательский опыт при работе с реакциями

## Тестирование
1. Открыть чат
2. Долгое нажатие на сообщение → "Добавить реакцию"
3. Выбрать эмодзи
4. Убедиться, что диалог закрывается
5. Проверить, что реакция отображается на сообщении
