mirror of
https://github.com/oxen-io/session-desktop.git
synced 2023-12-14 02:12:57 +01:00
cf44896a03
* show missed-call,started-call and answered call notification in chat * fix types for createLastMessageUpdate * show incoming dialog if we have a pending call when enable call receptio * simplify a bit the avatar component * move disableDrag to a custom hook * speed up hash colors of avatarPlaceHolders * fixup text selection and double click reply on message * keep avatar decoded items longer before releasing memory * add incoming/outgoing/missed call notification also, merge that notification with the timer and group notification component * hangup call if no answer after 30sec * refactor SessionInput using hook + add testid field for recovery * disable message request feature flag for now * fix merge issue * force loading screen to be black instead of white for our dark theme user's eyes safety
42 lines
1.2 KiB
TypeScript
42 lines
1.2 KiB
TypeScript
import { LastMessageStatusType } from '../state/ducks/conversations';
|
|
import { Message } from './Message';
|
|
|
|
interface ConversationLastMessageUpdate {
|
|
lastMessage: string;
|
|
lastMessageStatus: LastMessageStatusType;
|
|
timestamp: number | undefined;
|
|
}
|
|
|
|
export const createLastMessageUpdate = ({
|
|
currentTimestamp,
|
|
lastMessage,
|
|
lastMessageStatus,
|
|
lastMessageNotificationText,
|
|
}: {
|
|
currentTimestamp?: number;
|
|
lastMessage?: Message;
|
|
lastMessageStatus?: LastMessageStatusType;
|
|
lastMessageNotificationText?: string;
|
|
}): ConversationLastMessageUpdate => {
|
|
if (!lastMessage) {
|
|
return {
|
|
lastMessage: '',
|
|
lastMessageStatus: undefined,
|
|
timestamp: undefined,
|
|
};
|
|
}
|
|
|
|
const { expirationTimerUpdate } = lastMessage;
|
|
const isExpireTimerUpdateFromSync = Boolean(
|
|
expirationTimerUpdate && expirationTimerUpdate.fromSync
|
|
);
|
|
|
|
const shouldUpdateTimestamp = Boolean(!isExpireTimerUpdateFromSync);
|
|
const newTimestamp = shouldUpdateTimestamp ? lastMessage.sent_at : currentTimestamp;
|
|
|
|
return {
|
|
lastMessage: lastMessageNotificationText || '',
|
|
lastMessageStatus: lastMessageStatus || undefined,
|
|
timestamp: newTimestamp || undefined,
|
|
};
|
|
};
|