Changeset View
Changeset View
Standalone View
Standalone View
lib/actions/message-actions.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import type { | import type { | ||||
FetchMessageInfosPayload, | FetchMessageInfosPayload, | ||||
SendMessageResult, | SendMessageResult, | ||||
SimpleMessagesPayload, | SimpleMessagesPayload, | ||||
} from '../types/message-types'; | } from '../types/message-types'; | ||||
import type { MediaMessageServerDBContent } from '../types/messages/media.js'; | |||||
import type { FetchJSON, FetchResultInfo } from '../utils/fetch-json'; | import type { FetchJSON, FetchResultInfo } from '../utils/fetch-json'; | ||||
const fetchMessagesBeforeCursorActionTypes = Object.freeze({ | const fetchMessagesBeforeCursorActionTypes = Object.freeze({ | ||||
started: 'FETCH_MESSAGES_BEFORE_CURSOR_STARTED', | started: 'FETCH_MESSAGES_BEFORE_CURSOR_STARTED', | ||||
success: 'FETCH_MESSAGES_BEFORE_CURSOR_SUCCESS', | success: 'FETCH_MESSAGES_BEFORE_CURSOR_SUCCESS', | ||||
failed: 'FETCH_MESSAGES_BEFORE_CURSOR_FAILED', | failed: 'FETCH_MESSAGES_BEFORE_CURSOR_FAILED', | ||||
}); | }); | ||||
const fetchMessagesBeforeCursor = ( | const fetchMessagesBeforeCursor = ( | ||||
▲ Show 20 Lines • Show All 101 Lines • ▼ Show 20 Lines | |||||
const createLocalMessageActionType = 'CREATE_LOCAL_MESSAGE'; | const createLocalMessageActionType = 'CREATE_LOCAL_MESSAGE'; | ||||
const sendMultimediaMessageActionTypes = Object.freeze({ | const sendMultimediaMessageActionTypes = Object.freeze({ | ||||
started: 'SEND_MULTIMEDIA_MESSAGE_STARTED', | started: 'SEND_MULTIMEDIA_MESSAGE_STARTED', | ||||
success: 'SEND_MULTIMEDIA_MESSAGE_SUCCESS', | success: 'SEND_MULTIMEDIA_MESSAGE_SUCCESS', | ||||
failed: 'SEND_MULTIMEDIA_MESSAGE_FAILED', | failed: 'SEND_MULTIMEDIA_MESSAGE_FAILED', | ||||
}); | }); | ||||
const sendMultimediaMessage = ( | |||||
fetchJSON: FetchJSON, | |||||
): (( | |||||
threadID: string, | |||||
localID: string, | |||||
mediaMessageContents: $ReadOnlyArray<MediaMessageServerDBContent>, | |||||
) => Promise<SendMessageResult>) => async ( | |||||
threadID, | |||||
localID, | |||||
mediaMessageContents, | |||||
) => { | |||||
let resultInfo; | |||||
const getResultInfo = (passedResultInfo: FetchResultInfo) => { | |||||
resultInfo = passedResultInfo; | |||||
}; | |||||
const response = await fetchJSON( | |||||
'create_multimedia_message', | |||||
{ | |||||
threadID, | |||||
localID, | |||||
mediaMessageContents, | |||||
}, | |||||
{ getResultInfo }, | |||||
); | |||||
const resultInterface = resultInfo?.interface; | |||||
invariant( | |||||
resultInterface, | |||||
'getResultInfo not called before fetchJSON resolves', | |||||
); | |||||
return { | |||||
id: response.newMessageInfo.id, | |||||
time: response.newMessageInfo.time, | |||||
interface: resultInterface, | |||||
}; | |||||
}; | |||||
const legacySendMultimediaMessage = ( | const legacySendMultimediaMessage = ( | ||||
fetchJSON: FetchJSON, | fetchJSON: FetchJSON, | ||||
): (( | ): (( | ||||
threadID: string, | threadID: string, | ||||
localID: string, | localID: string, | ||||
mediaIDs: $ReadOnlyArray<string>, | mediaIDs: $ReadOnlyArray<string>, | ||||
) => Promise<SendMessageResult>) => async (threadID, localID, mediaIDs) => { | ) => Promise<SendMessageResult>) => async (threadID, localID, mediaIDs) => { | ||||
let resultInfo; | let resultInfo; | ||||
Show All 32 Lines | export { | ||||
fetchMostRecentMessagesActionTypes, | fetchMostRecentMessagesActionTypes, | ||||
fetchMostRecentMessages, | fetchMostRecentMessages, | ||||
fetchSingleMostRecentMessagesFromThreadsActionTypes, | fetchSingleMostRecentMessagesFromThreadsActionTypes, | ||||
fetchSingleMostRecentMessagesFromThreads, | fetchSingleMostRecentMessagesFromThreads, | ||||
sendTextMessageActionTypes, | sendTextMessageActionTypes, | ||||
sendTextMessage, | sendTextMessage, | ||||
createLocalMessageActionType, | createLocalMessageActionType, | ||||
sendMultimediaMessageActionTypes, | sendMultimediaMessageActionTypes, | ||||
sendMultimediaMessage, | |||||
legacySendMultimediaMessage, | legacySendMultimediaMessage, | ||||
saveMessagesActionType, | saveMessagesActionType, | ||||
processMessagesActionType, | processMessagesActionType, | ||||
messageStorePruneActionType, | messageStorePruneActionType, | ||||
setMessageStoreMessages, | setMessageStoreMessages, | ||||
}; | }; |