stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
53 lines (43 loc) • 1.18 kB
text/typescript
import { FormatMessageResponse, MessageResponse, ReactionResponse } from 'stream-chat';
import { createDeleteQuery } from '../sqlite-utils/createDeleteQuery';
import { createUpdateQuery } from '../sqlite-utils/createUpdateQuery';
import { SqliteClient } from '../SqliteClient';
import { PreparedQueries } from '../types';
export const deleteReaction = async ({
execute = true,
message,
reaction,
}: {
reaction: ReactionResponse;
message?: MessageResponse | FormatMessageResponse;
execute?: boolean;
}) => {
const queries: PreparedQueries[] = [];
if (!message) {
return [];
}
queries.push(
createDeleteQuery('reactions', {
messageId: reaction.message_id,
type: reaction.type,
userId: reaction.user_id,
}),
);
const stringifiedNewReactionGroups = JSON.stringify(message.reaction_groups);
queries.push(
createUpdateQuery(
'messages',
{
reactionGroups: stringifiedNewReactionGroups,
},
{ id: message.id },
),
);
SqliteClient.logger?.('info', 'deleteReaction', {
reaction,
});
if (execute) {
await SqliteClient.executeSqlBatch(queries);
}
return queries;
};