Size: a a a

React Native — русскоговорящее сообщество

2021 June 14

МВ

Максим Васин... in React Native — русскоговорящее сообщество
Что конкретно интересует?)

Взял его как ui либу для уже готового чата react-native-webim

У них модели сообщений разные и пришлось мапить сообщения сервиса чата в тип gifted-chat

Были проблемы с локализацией дат в нем. Плюс какие-то вареники сыпятся об анимации от него. Хотя затащил стандартный UI
источник

А

Артем in React Native — русскоговорящее сообщество
Ну понял, да у меня тоже модель сообщения не сходится также смапил, вообще решение вместо id написать _id странное)) но у меня никаких ошибок нет, но сообщения не выводятся, тупо белый экран
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
Блин было что-то подобное
источник

А

Артем in React Native — русскоговорящее сообщество
Я уже из пропс оставил только сообщения масиив и все вывожу он есть в консоли, а гифт не работает, может Экспо надо ставить обязательно?
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
Причём если логировать то они были

Нет я писал на bare RN

Проблема была как раз в мапинге вроде бы
источник

А

Артем in React Native — русскоговорящее сообщество
Тоесть если какое-то поле забыл грубо говоря, то он не выведет да?
источник

А

Артем in React Native — русскоговорящее сообщество
А можешь скинуть свою модель котора выводится?
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
У меня проблема была кажется в рендере аватара
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
Да пара минут
источник

А

Артем in React Native — русскоговорящее сообщество
Да я даже Аватарки убрал, тупо думаю пока текст выведу)
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
@eurodoo вот это мапинг
protected mapWebimToChatMessage = (msg: WebimMessage): IMessage => {
   const userId =
     // @ts-ignore
     msg.name === this.user?.name && (msg.type === 'VISITOR' || msg.type === 'FILE_FROM_VISITOR')
       ? this.user.id
       : msg.name;

   const mappedUser: User = {
     // @ts-ignore
     _id: msg.status === 'SENDING' ? this.user.id : userId,
     name: msg.name,
     // @ts-ignore
     avatar:
       // @ts-ignore
       msg.type === 'VISITOR' || msg.type === 'FILE_FROM_VISITOR'
         ? msg?.avatar || this.userAvatar
         : msg.avatar,
   };

   return {
     _id: msg.id,
     text: msg.attachment?.url ? '' : msg.text,
     createdAt: msg.time,
     sent: msg.status === 'SENT',
     received: msg.read,
     user: mappedUser,
     image: msg.attachment?.contentType.includes('image') ? msg.attachment?.url : '',
     system:
       msg.type !== 'OPERATOR' &&
       msg.type !== 'VISITOR' &&
       // @ts-ignore
       msg.type !== 'FILE_FROM_OPERATOR' &&
       // @ts-ignore
       msg.type !== 'FILE_FROM_VISITOR',
     // @ts-ignore
     pending: msg.status === 'SENDING',
   };
 };
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
источник

А

Артем in React Native — русскоговорящее сообщество
Спасибо, гляну, много полей не использовал может в этом дело
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
вот это рендеринг (там пара кастомных контроллов для текста и аватаров, но посомтришь)
источник

МВ

Максим Васин... in React Native — русскоговорящее сообщество
еще посмотри может нужно обернуть вьюхой и с flexGrow поиграться
источник

А

Артем in React Native — русскоговорящее сообщество
кароче понял, он в csrollView не работает)
источник

HT

Hermes Trismegistus in React Native — русскоговорящее сообщество
Парни, привет как с этим фреймом работать ? Я работал с expo до этого.
Часа два копался в интернете не нашел ничего
источник

HT

Hermes Trismegistus in React Native — русскоговорящее сообщество
источник

FI

Filipp Ivanov in React Native — русскоговорящее сообщество
источник

HT

Hermes Trismegistus in React Native — русскоговорящее сообщество
чот не работает то что ты скинул
источник