@amityco/ts-sdk-react-native
Version:
Amity Social Cloud Typescript SDK
44 lines (38 loc) • 1.14 kB
text/typescript
import { ingestInCache } from '~/cache/api/ingestInCache';
export const updateChannelMessagePreviewCache = (rawPayload: Amity.ChannelPayload) => {
const withMessageFeedInfo = (messagePreview: Amity.MessagePreviewPayload) => {
const messageFeedInfo = rawPayload.messageFeedsInfo?.find(messageFeed => {
return messageFeed.messageFeedId === messagePreview.messageFeedId;
});
const {
channelPublicId: channelId,
messageFeedId: subChannelId,
data,
dataType,
isDeleted,
segment,
creatorPublicId: creatorId,
createdAt,
updatedAt,
} = messagePreview;
return {
channelId,
subChannelId,
data,
dataType,
isDeleted,
segment,
creatorId,
createdAt,
updatedAt,
subChannelName: messageFeedInfo?.name!,
messagePreviewId: messageFeedInfo?.messagePreviewId!,
subChannelUpdatedAt: messageFeedInfo?.updatedAt!,
};
};
const newData = {
messagePreviewChannel:
rawPayload.messagePreviews?.map(messagePreview => withMessageFeedInfo(messagePreview)) ?? [],
};
ingestInCache(newData);
};