Files
prism/BUG_FIXES_SUMMARY.md

3.0 KiB
Raw Blame History

Сводка исправленных ошибок

1. SQL ошибка "column 'conversationid' does not exist"

Проблема: PostgreSQL чувствителен к регистру имен колонок. В SQL запросе использовались имена колонок без кавычек.

Решение: Добавил кавычки вокруг имен колонок в методе findOrCreatePrivate:

// Было:
.leftJoin('conversation_participants', 'cp1', 'cp1.conversationId = c.id')
// Стало:
.leftJoin('conversation_participants', 'cp1', 'cp1."conversationId" = c.id')

2. Навигация на несуществующий экран 'NewChat'

Проблема: FAB кнопка в экране чатов пыталась перейти на экран 'NewChat', который не существует.

Решение: Изменил навигацию на вкладку 'Contacts' для выбора пользователя:

// Было:
onPress={() => navigation.navigate('NewChat')}
// Стало:
onPress={() => navigation.navigate('Contacts')}

3. Проблема с подключением к API на iOS

Проблема: Фронтенд показывал ошибки "Network request failed".

Решение: Конфигурация API URL уже была правильной:

  • Для iOS симулятора: http://localhost:3000/graphql
  • Для Android эмулятора: http://10.0.2.2:3000/graphql

Проблема была связана с SQL ошибкой на бэкенде, которая теперь исправлена.

4. Предупреждения Surface overflow

Проблема: React Native Paper Surface компонент выдавал предупреждения при использовании overflow: hidden.

Решение: Заменил Surface на View с кастомными стилями для теней:

// Было:
<Surface style={styles.userCard} elevation={1}>
// Стало:
<View style={[styles.userCard, styles.userCardShadow]}>

Добавил кастомные стили для теней:

userCardShadow: {
  shadowColor: '#000',
  shadowOffset: { width: 0, height: 1 },
  shadowOpacity: 0.1,
  shadowRadius: 2,
  elevation: 2,
}

Статус исправлений:

  • SQL запросы теперь корректно работают с PostgreSQL
  • Навигация работает правильно
  • Нет предупреждений о Surface overflow
  • Бэкенд перезапущен с исправлениями

Следующие шаги:

  1. Проверить создание приватных чатов через экран контактов
  2. Убедиться, что все функции работают корректно
  3. Протестировать на разных платформах (iOS/Android)