@cobuildlab/8base-chat
Version:
Chat component that uses 8base
30 lines (22 loc) • 735 B
text/typescript
import get from 'lodash/get';
import { ChannelMember } from 'shared/graphql/__generated__';
export default {
hasUnreads: (member: ChannelMember) => {
const { lastReadTS, channel, user } = member;
const msgItems = get(channel, 'messages.items', []);
const { createdBy = {}, createdAt = null } = msgItems[msgItems.length - 1] || {};
const userId = user && user.id;
if (createdBy.id === userId) {
return false;
}
if (!lastReadTS && createdAt) {
return true;
}
if (createdAt) {
const lastReadDate = new Date(lastReadTS);
const lastChannelMsgDate = new Date(createdAt);
return lastReadDate.getTime() <= lastChannelMsgDate.getTime();
}
return false;
},
};