Update timers whenever we mark messages read
This commit is contained in:
parent
cd35a29638
commit
7761d83055
16 changed files with 70 additions and 150 deletions
|
@ -1068,25 +1068,27 @@ async function hasUserInitiatedMessages(conversationId: string) {
|
|||
|
||||
async function saveMessage(
|
||||
data: MessageType,
|
||||
{ forceSave, Message }: { forceSave?: boolean; Message: typeof MessageModel }
|
||||
options?: { forceSave?: boolean }
|
||||
) {
|
||||
const id = await channels.saveMessage(_cleanMessageData(data), {
|
||||
forceSave,
|
||||
});
|
||||
Message.updateTimers();
|
||||
const id = await channels.saveMessage(_cleanMessageData(data), options);
|
||||
|
||||
window.Whisper.ExpiringMessagesListener.update();
|
||||
window.Whisper.TapToViewMessagesListener.update();
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
async function saveMessages(
|
||||
arrayOfMessages: Array<MessageType>,
|
||||
{ forceSave, Message }: { forceSave?: boolean; Message: typeof MessageModel }
|
||||
options?: { forceSave?: boolean }
|
||||
) {
|
||||
await channels.saveMessages(
|
||||
arrayOfMessages.map(message => _cleanMessageData(message)),
|
||||
{ forceSave }
|
||||
options
|
||||
);
|
||||
Message.updateTimers();
|
||||
|
||||
window.Whisper.ExpiringMessagesListener.update();
|
||||
window.Whisper.TapToViewMessagesListener.update();
|
||||
}
|
||||
|
||||
async function removeMessage(
|
||||
|
|
|
@ -293,6 +293,14 @@ export type DataInterface = {
|
|||
options?: { limit?: number }
|
||||
) => Promise<Array<ConversationType>>;
|
||||
|
||||
saveMessage: (
|
||||
data: MessageType,
|
||||
options?: { forceSave?: boolean }
|
||||
) => Promise<string>;
|
||||
saveMessages: (
|
||||
arrayOfMessages: Array<MessageType>,
|
||||
options?: { forceSave?: boolean }
|
||||
) => Promise<void>;
|
||||
getMessageCount: (conversationId?: string) => Promise<number>;
|
||||
hasUserInitiatedMessages: (conversationId: string) => Promise<boolean>;
|
||||
getAllMessageIds: () => Promise<Array<string>>;
|
||||
|
@ -487,14 +495,6 @@ export type ServerInterface = DataInterface & {
|
|||
conversationId: string,
|
||||
options?: { limit?: number }
|
||||
) => Promise<Array<SearchResultMessageType>>;
|
||||
saveMessage: (
|
||||
data: MessageType,
|
||||
options: { forceSave?: boolean }
|
||||
) => Promise<string>;
|
||||
saveMessages: (
|
||||
arrayOfMessages: Array<MessageType>,
|
||||
options: { forceSave?: boolean }
|
||||
) => Promise<void>;
|
||||
updateConversation: (data: ConversationType) => Promise<void>;
|
||||
|
||||
// For testing only
|
||||
|
@ -599,14 +599,6 @@ export type ClientInterface = DataInterface & {
|
|||
ids: Array<string>,
|
||||
options: { Message: typeof MessageModel }
|
||||
) => Promise<void>;
|
||||
saveMessage: (
|
||||
data: MessageType,
|
||||
options: { forceSave?: boolean; Message: typeof MessageModel }
|
||||
) => Promise<string>;
|
||||
saveMessages: (
|
||||
arrayOfMessages: Array<MessageType>,
|
||||
options: { forceSave?: boolean; Message: typeof MessageModel }
|
||||
) => Promise<void>;
|
||||
searchMessages: (
|
||||
query: string,
|
||||
options?: { limit?: number }
|
||||
|
|
|
@ -3496,11 +3496,11 @@ async function hasUserInitiatedMessages(
|
|||
|
||||
function saveMessageSync(
|
||||
data: MessageType,
|
||||
options: { forceSave?: boolean; alreadyInTransaction?: boolean } = {}
|
||||
options?: { forceSave?: boolean; alreadyInTransaction?: boolean }
|
||||
): string {
|
||||
const db = getInstance();
|
||||
|
||||
const { forceSave, alreadyInTransaction } = options;
|
||||
const { forceSave, alreadyInTransaction } = options || {};
|
||||
|
||||
if (!alreadyInTransaction) {
|
||||
return db.transaction(() => {
|
||||
|
@ -3657,16 +3657,17 @@ function saveMessageSync(
|
|||
|
||||
async function saveMessage(
|
||||
data: MessageType,
|
||||
options: { forceSave?: boolean; alreadyInTransaction?: boolean }
|
||||
options?: { forceSave?: boolean; alreadyInTransaction?: boolean }
|
||||
): Promise<string> {
|
||||
return saveMessageSync(data, options);
|
||||
}
|
||||
|
||||
async function saveMessages(
|
||||
arrayOfMessages: Array<MessageType>,
|
||||
{ forceSave }: { forceSave?: boolean } = {}
|
||||
options?: { forceSave?: boolean }
|
||||
): Promise<void> {
|
||||
const db = getInstance();
|
||||
const { forceSave } = options || {};
|
||||
|
||||
db.transaction(() => {
|
||||
for (const message of arrayOfMessages) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue