Sync stories sent to a group
This commit is contained in:
parent
808118d1e4
commit
dca848389c
5 changed files with 54 additions and 25 deletions
|
@ -68,12 +68,12 @@ export const MyStories = ({
|
||||||
</div>
|
</div>
|
||||||
<div className="Stories__pane__list">
|
<div className="Stories__pane__list">
|
||||||
{myStories.map(list => (
|
{myStories.map(list => (
|
||||||
<div className="MyStories__distribution" key={list.distributionId}>
|
<div className="MyStories__distribution" key={list.id}>
|
||||||
<div className="MyStories__distribution__title">
|
<div className="MyStories__distribution__title">
|
||||||
<StoryDistributionListName
|
<StoryDistributionListName
|
||||||
i18n={i18n}
|
i18n={i18n}
|
||||||
id={list.distributionId}
|
id={list.id}
|
||||||
name={list.distributionName}
|
name={list.name}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
{list.stories.map(story => (
|
{list.stories.map(story => (
|
||||||
|
|
|
@ -283,36 +283,48 @@ export const getStories = createSelector(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (story.sendStateByConversationId && story.storyDistributionListId) {
|
const conversationStory = getConversationStory(
|
||||||
const list =
|
conversationSelector,
|
||||||
story.storyDistributionListId === MY_STORIES_ID
|
story
|
||||||
? { id: MY_STORIES_ID, name: MY_STORIES_ID }
|
);
|
||||||
: distributionListSelector(
|
|
||||||
story.storyDistributionListId.toLowerCase()
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!list) {
|
if (story.sendStateByConversationId) {
|
||||||
|
let sentId = story.conversationId;
|
||||||
|
let sentName = conversationStory.group?.title;
|
||||||
|
|
||||||
|
if (story.storyDistributionListId) {
|
||||||
|
const list =
|
||||||
|
story.storyDistributionListId === MY_STORIES_ID
|
||||||
|
? { id: MY_STORIES_ID, name: MY_STORIES_ID }
|
||||||
|
: distributionListSelector(
|
||||||
|
story.storyDistributionListId.toLowerCase()
|
||||||
|
);
|
||||||
|
|
||||||
|
if (!list) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sentId = list.id;
|
||||||
|
sentName = list.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!sentName) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const storyView = getStoryView(conversationSelector, story);
|
const storyView = getStoryView(conversationSelector, story);
|
||||||
|
|
||||||
const existingMyStory = myStoriesById.get(list.id) || { stories: [] };
|
const existingMyStory = myStoriesById.get(sentId) || { stories: [] };
|
||||||
|
|
||||||
myStoriesById.set(list.id, {
|
myStoriesById.set(sentId, {
|
||||||
distributionId: list.id,
|
id: sentId,
|
||||||
distributionName: list.name,
|
name: sentName,
|
||||||
stories: [...existingMyStory.stories, storyView],
|
stories: [...existingMyStory.stories, storyView],
|
||||||
});
|
});
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const conversationStory = getConversationStory(
|
|
||||||
conversationSelector,
|
|
||||||
story
|
|
||||||
);
|
|
||||||
|
|
||||||
let storiesMap: Map<string, ConversationStoryType>;
|
let storiesMap: Map<string, ConversationStoryType>;
|
||||||
|
|
||||||
if (conversationStory.isHidden) {
|
if (conversationStory.isHidden) {
|
||||||
|
|
|
@ -27,9 +27,8 @@ export function getFakeMyStory(id?: string, name?: string): MyStoryType {
|
||||||
const storyCount = casual.integer(2, 6);
|
const storyCount = casual.integer(2, 6);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
distributionId: id || UUID.generate().toString(),
|
id: id || UUID.generate().toString(),
|
||||||
distributionName:
|
name: name || id === MY_STORIES_ID ? 'My Stories' : casual.catch_phrase,
|
||||||
name || id === MY_STORIES_ID ? 'My Stories' : casual.catch_phrase,
|
|
||||||
stories: Array.from(Array(storyCount), () => ({
|
stories: Array.from(Array(storyCount), () => ({
|
||||||
...getFakeStoryView(),
|
...getFakeStoryView(),
|
||||||
sendState: [],
|
sendState: [],
|
||||||
|
|
|
@ -1932,6 +1932,24 @@ export default class MessageReceiver
|
||||||
timestamp: envelope.timestamp,
|
timestamp: envelope.timestamp,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (sentMessage && message.groupV2) {
|
||||||
|
const ev = new SentEvent(
|
||||||
|
{
|
||||||
|
destinationUuid: envelope.destinationUuid.toString(),
|
||||||
|
isRecipientUpdate: Boolean(sentMessage.isRecipientUpdate),
|
||||||
|
message,
|
||||||
|
receivedAtCounter: envelope.receivedAtCounter,
|
||||||
|
receivedAtDate: envelope.receivedAtDate,
|
||||||
|
serverTimestamp: envelope.serverTimestamp,
|
||||||
|
timestamp: envelope.timestamp,
|
||||||
|
unidentifiedStatus: sentMessage.unidentifiedStatus,
|
||||||
|
},
|
||||||
|
this.removeFromCache.bind(this, envelope)
|
||||||
|
);
|
||||||
|
this.dispatchAndWait(ev);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (sentMessage) {
|
if (sentMessage) {
|
||||||
const { storyMessageRecipients } = sentMessage;
|
const { storyMessageRecipients } = sentMessage;
|
||||||
const recipients = storyMessageRecipients ?? [];
|
const recipients = storyMessageRecipients ?? [];
|
||||||
|
|
|
@ -85,8 +85,8 @@ export type StoryViewType = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export type MyStoryType = {
|
export type MyStoryType = {
|
||||||
distributionId: string;
|
id: string;
|
||||||
distributionName: string;
|
name: string;
|
||||||
stories: Array<StoryViewType>;
|
stories: Array<StoryViewType>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue