Fixes getStoryView selector
This commit is contained in:
parent
4a15df5904
commit
664181cf9c
2 changed files with 41 additions and 36 deletions
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
&__title {
|
&__title {
|
||||||
@include font-body-1-bold;
|
@include font-body-1-bold;
|
||||||
|
color: $color-gray-05;
|
||||||
margin: 24px 0 8px 0;
|
margin: 24px 0 8px 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +19,7 @@
|
||||||
|
|
||||||
&__details {
|
&__details {
|
||||||
@include font-body-1-bold;
|
@include font-body-1-bold;
|
||||||
|
color: $color-gray-05;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
|
@ -113,13 +113,51 @@ export function getStoryView(
|
||||||
|
|
||||||
const { attachment, timestamp } = pick(story, ['attachment', 'timestamp']);
|
const { attachment, timestamp } = pick(story, ['attachment', 'timestamp']);
|
||||||
|
|
||||||
|
const { sendStateByConversationId } = story;
|
||||||
|
let sendState: Array<StorySendStateType> | undefined;
|
||||||
|
let views: number | undefined;
|
||||||
|
|
||||||
|
if (sendStateByConversationId) {
|
||||||
|
const innerSendState: Array<StorySendStateType> = [];
|
||||||
|
let innerViews = 0;
|
||||||
|
|
||||||
|
Object.keys(sendStateByConversationId).forEach(recipientId => {
|
||||||
|
const recipient = conversationSelector(recipientId);
|
||||||
|
|
||||||
|
const recipientSendState = sendStateByConversationId[recipient.id];
|
||||||
|
if (recipientSendState.status === SendStatus.Viewed) {
|
||||||
|
innerViews += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
innerSendState.push({
|
||||||
|
...recipientSendState,
|
||||||
|
recipient: pick(recipient, [
|
||||||
|
'acceptedMessageRequest',
|
||||||
|
'avatarPath',
|
||||||
|
'color',
|
||||||
|
'id',
|
||||||
|
'isMe',
|
||||||
|
'name',
|
||||||
|
'profileName',
|
||||||
|
'sharedGroupNames',
|
||||||
|
'title',
|
||||||
|
]),
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
sendState = innerSendState;
|
||||||
|
views = innerViews;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
attachment,
|
attachment,
|
||||||
canReply: canReply(story, undefined, conversationSelector),
|
canReply: canReply(story, undefined, conversationSelector),
|
||||||
isUnread: story.readStatus === ReadStatus.Unread,
|
isUnread: story.readStatus === ReadStatus.Unread,
|
||||||
messageId: story.messageId,
|
messageId: story.messageId,
|
||||||
sender,
|
sender,
|
||||||
|
sendState,
|
||||||
timestamp,
|
timestamp,
|
||||||
|
views,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,47 +298,12 @@ export const getStories = createSelector(
|
||||||
|
|
||||||
const storyView = getStoryView(conversationSelector, story);
|
const storyView = getStoryView(conversationSelector, story);
|
||||||
|
|
||||||
const sendState: Array<StorySendStateType> = [];
|
|
||||||
const { sendStateByConversationId } = story;
|
|
||||||
|
|
||||||
let views = 0;
|
|
||||||
Object.keys(story.sendStateByConversationId).forEach(recipientId => {
|
|
||||||
const recipient = conversationSelector(recipientId);
|
|
||||||
|
|
||||||
const recipientSendState = sendStateByConversationId[recipient.id];
|
|
||||||
if (recipientSendState.status === SendStatus.Viewed) {
|
|
||||||
views += 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
sendState.push({
|
|
||||||
...recipientSendState,
|
|
||||||
recipient: pick(recipient, [
|
|
||||||
'acceptedMessageRequest',
|
|
||||||
'avatarPath',
|
|
||||||
'color',
|
|
||||||
'id',
|
|
||||||
'isMe',
|
|
||||||
'name',
|
|
||||||
'profileName',
|
|
||||||
'sharedGroupNames',
|
|
||||||
'title',
|
|
||||||
]),
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const existingMyStory = myStoriesById.get(list.id) || { stories: [] };
|
const existingMyStory = myStoriesById.get(list.id) || { stories: [] };
|
||||||
|
|
||||||
myStoriesById.set(list.id, {
|
myStoriesById.set(list.id, {
|
||||||
distributionId: list.id,
|
distributionId: list.id,
|
||||||
distributionName: list.name,
|
distributionName: list.name,
|
||||||
stories: [
|
stories: [...existingMyStory.stories, storyView],
|
||||||
...existingMyStory.stories,
|
|
||||||
{
|
|
||||||
...storyView,
|
|
||||||
sendState,
|
|
||||||
views,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue