Changeset View
Changeset View
Standalone View
Standalone View
lib/actions/thread-actions.js
// @flow | // @flow | ||||
import invariant from 'invariant'; | import invariant from 'invariant'; | ||||
import type { | import type { | ||||
ChangeThreadSettingsPayload, | ChangeThreadSettingsPayload, | ||||
LeaveThreadPayload, | LeaveThreadPayload, | ||||
UpdateThreadRequest, | UpdateThreadRequest, | ||||
ClientNewThreadRequest, | ClientNewThreadRequest, | ||||
NewThreadResult, | NewThreadResult, | ||||
ClientThreadJoinRequest, | ClientThreadJoinRequest, | ||||
ThreadJoinPayload, | ThreadJoinPayload, | ||||
ThreadFetchMediaRequest, | ThreadFetchMediaRequest, | ||||
ThreadFetchMediaResult, | ThreadFetchMediaResult, | ||||
ToggleMessagePinRequest, | ToggleMessagePinRequest, | ||||
ToggleMessagePinResult, | |||||
} from '../types/thread-types.js'; | } from '../types/thread-types.js'; | ||||
import type { CallServerEndpoint } from '../utils/call-server-endpoint.js'; | import type { CallServerEndpoint } from '../utils/call-server-endpoint.js'; | ||||
import { values } from '../utils/objects.js'; | import { values } from '../utils/objects.js'; | ||||
const deleteThreadActionTypes = Object.freeze({ | const deleteThreadActionTypes = Object.freeze({ | ||||
started: 'DELETE_THREAD_STARTED', | started: 'DELETE_THREAD_STARTED', | ||||
success: 'DELETE_THREAD_SUCCESS', | success: 'DELETE_THREAD_SUCCESS', | ||||
failed: 'DELETE_THREAD_FAILED', | failed: 'DELETE_THREAD_FAILED', | ||||
▲ Show 20 Lines • Show All 146 Lines • ▼ Show 20 Lines | const fetchThreadMedia = | ||||
( | ( | ||||
callServerEndpoint: CallServerEndpoint, | callServerEndpoint: CallServerEndpoint, | ||||
): ((request: ThreadFetchMediaRequest) => Promise<ThreadFetchMediaResult>) => | ): ((request: ThreadFetchMediaRequest) => Promise<ThreadFetchMediaResult>) => | ||||
async request => { | async request => { | ||||
const response = await callServerEndpoint('fetch_thread_media', request); | const response = await callServerEndpoint('fetch_thread_media', request); | ||||
return response; | return response; | ||||
}; | }; | ||||
const toggleMessagePinActionTypes = Object.freeze({ | |||||
started: 'TOGGLE_MESSAGE_PIN_STARTED', | |||||
success: 'TOGGLE_MESSAGE_PIN_SUCCESS', | |||||
failed: 'TOGGLE_MESSAGE_PIN_FAILED', | |||||
}); | |||||
const toggleMessagePin = | const toggleMessagePin = | ||||
( | ( | ||||
callServerEndpoint: CallServerEndpoint, | callServerEndpoint: CallServerEndpoint, | ||||
): ((request: ToggleMessagePinRequest) => Promise<void>) => | ): ((request: ToggleMessagePinRequest) => Promise<ToggleMessagePinResult>) => | ||||
async request => { | async request => { | ||||
await callServerEndpoint('toggle_message_pin', request); | const response = await callServerEndpoint('toggle_message_pin', request); | ||||
return { | |||||
newMessageInfos: response.newMessageInfos, | |||||
threadID: response.threadID, | |||||
}; | |||||
}; | }; | ||||
export { | export { | ||||
deleteThreadActionTypes, | deleteThreadActionTypes, | ||||
deleteThread, | deleteThread, | ||||
changeThreadSettingsActionTypes, | changeThreadSettingsActionTypes, | ||||
changeThreadSettings, | changeThreadSettings, | ||||
removeUsersFromThreadActionTypes, | removeUsersFromThreadActionTypes, | ||||
removeUsersFromThread, | removeUsersFromThread, | ||||
changeThreadMemberRolesActionTypes, | changeThreadMemberRolesActionTypes, | ||||
changeThreadMemberRoles, | changeThreadMemberRoles, | ||||
newThreadActionTypes, | newThreadActionTypes, | ||||
newThread, | newThread, | ||||
joinThreadActionTypes, | joinThreadActionTypes, | ||||
joinThread, | joinThread, | ||||
leaveThreadActionTypes, | leaveThreadActionTypes, | ||||
leaveThread, | leaveThread, | ||||
fetchThreadMedia, | fetchThreadMedia, | ||||
toggleMessagePinActionTypes, | |||||
toggleMessagePin, | toggleMessagePin, | ||||
}; | }; |