UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

47 lines (37 loc) 1.21 kB
import type { LocalMessage, MessageResponse, ReactionResponse } from 'stream-chat'; import { mapReactionToStorable } from '../mappers/mapReactionToStorable'; import { createUpdateQuery } from '../sqlite-utils/createUpdateQuery'; import { createUpsertQuery } from '../sqlite-utils/createUpsertQuery'; import { SqliteClient } from '../SqliteClient'; import type { PreparedQueries } from '../types'; export const insertReaction = async ({ execute = true, message, reaction, }: { message: MessageResponse | LocalMessage; reaction: ReactionResponse; execute?: boolean; }) => { const queries: PreparedQueries[] = []; const storableReaction = mapReactionToStorable(reaction); queries.push(createUpsertQuery('reactions', storableReaction)); const stringifiedNewReactionGroups = JSON.stringify(message.reaction_groups); queries.push( createUpdateQuery( 'messages', { reactionGroups: stringifiedNewReactionGroups, }, { id: reaction.message_id }, ), ); SqliteClient.logger?.('info', 'insertReaction', { execute, reaction: storableReaction, }); if (execute) { await SqliteClient.executeSqlBatch(queries); } return queries; };