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, | ||||
SendEditMessageResult, | |||||
SendReactionMessageRequest, | SendReactionMessageRequest, | ||||
SimpleMessagesPayload, | SimpleMessagesPayload, | ||||
SendEditMessageRequest, | |||||
} from '../types/message-types.js'; | } from '../types/message-types.js'; | ||||
import type { MediaMessageServerDBContent } from '../types/messages/media.js'; | import type { MediaMessageServerDBContent } from '../types/messages/media.js'; | ||||
import type { | import type { | ||||
CallServerEndpoint, | CallServerEndpoint, | ||||
CallServerEndpointResultInfo, | CallServerEndpointResultInfo, | ||||
} from '../utils/call-server-endpoint.js'; | } from '../utils/call-server-endpoint.js'; | ||||
const fetchMessagesBeforeCursorActionTypes = Object.freeze({ | const fetchMessagesBeforeCursorActionTypes = Object.freeze({ | ||||
▲ Show 20 Lines • Show All 221 Lines • ▼ Show 20 Lines | async request => { | ||||
}; | }; | ||||
}; | }; | ||||
const sendEditMessageActionTypes = Object.freeze({ | const sendEditMessageActionTypes = Object.freeze({ | ||||
started: 'SEND_EDIT_MESSAGE_STARTED', | started: 'SEND_EDIT_MESSAGE_STARTED', | ||||
success: 'SEND_EDIT_MESSAGE_SUCCESS', | success: 'SEND_EDIT_MESSAGE_SUCCESS', | ||||
failed: 'SEND_EDIT_MESSAGE_FAILED', | failed: 'SEND_EDIT_MESSAGE_FAILED', | ||||
}); | }); | ||||
const sendEditMessage = | |||||
( | |||||
callServerEndpoint: CallServerEndpoint, | |||||
): ((request: SendEditMessageRequest) => Promise<SendEditMessageResult>) => | |||||
async request => { | |||||
let resultInfo; | |||||
const getResultInfo = (passedResultInfo: CallServerEndpointResultInfo) => { | |||||
resultInfo = passedResultInfo; | |||||
}; | |||||
ashoat: Why are you doing all of this with `getResultInfo`? What does it achieve?
In the future… | |||||
const response = await callServerEndpoint( | |||||
'edit_message', | |||||
{ | |||||
targetMessageID: request.targetMessageID, | |||||
text: request.text, | |||||
}, | |||||
{ getResultInfo }, | |||||
); | |||||
const resultInterface = resultInfo?.interface; | |||||
invariant( | |||||
resultInterface, | |||||
'getResultInfo not called before callServerEndpoint resolves', | |||||
); | |||||
return { | |||||
newMessageInfos: response.newMessageInfos, | |||||
}; | |||||
}; | |||||
const saveMessagesActionType = 'SAVE_MESSAGES'; | const saveMessagesActionType = 'SAVE_MESSAGES'; | ||||
const processMessagesActionType = 'PROCESS_MESSAGES'; | const processMessagesActionType = 'PROCESS_MESSAGES'; | ||||
const messageStorePruneActionType = 'MESSAGE_STORE_PRUNE'; | const messageStorePruneActionType = 'MESSAGE_STORE_PRUNE'; | ||||
export { | export { | ||||
fetchMessagesBeforeCursorActionTypes, | fetchMessagesBeforeCursorActionTypes, | ||||
fetchMessagesBeforeCursor, | fetchMessagesBeforeCursor, | ||||
fetchMostRecentMessagesActionTypes, | fetchMostRecentMessagesActionTypes, | ||||
fetchMostRecentMessages, | fetchMostRecentMessages, | ||||
fetchSingleMostRecentMessagesFromThreadsActionTypes, | fetchSingleMostRecentMessagesFromThreadsActionTypes, | ||||
fetchSingleMostRecentMessagesFromThreads, | fetchSingleMostRecentMessagesFromThreads, | ||||
sendTextMessageActionTypes, | sendTextMessageActionTypes, | ||||
sendTextMessage, | sendTextMessage, | ||||
createLocalMessageActionType, | createLocalMessageActionType, | ||||
sendMultimediaMessageActionTypes, | sendMultimediaMessageActionTypes, | ||||
sendMultimediaMessage, | sendMultimediaMessage, | ||||
legacySendMultimediaMessage, | legacySendMultimediaMessage, | ||||
sendReactionMessageActionTypes, | sendReactionMessageActionTypes, | ||||
sendReactionMessage, | sendReactionMessage, | ||||
saveMessagesActionType, | saveMessagesActionType, | ||||
processMessagesActionType, | processMessagesActionType, | ||||
messageStorePruneActionType, | messageStorePruneActionType, | ||||
sendEditMessageActionTypes, | sendEditMessageActionTypes, | ||||
sendEditMessage, | |||||
}; | }; |
Why are you doing all of this with getResultInfo? What does it achieve?
In the future, please explain strange things like this by annotating the diff before sending it for review. You should expect that your reviewer will always request changes when they see unexpected stuff like this, and it will significantly reduce diff churn if you take the time to review your own diff / explain this sort of thing