Changeset View
Changeset View
Standalone View
Standalone View
native/input/input-state-container.react.js
Show All 31 Lines | |||||
import { | import { | ||||
createMediaMessageInfo, | createMediaMessageInfo, | ||||
localIDPrefix, | localIDPrefix, | ||||
} from 'lib/shared/message-utils'; | } from 'lib/shared/message-utils'; | ||||
import { | import { | ||||
createRealThreadFromPendingThread, | createRealThreadFromPendingThread, | ||||
threadIsPending, | threadIsPending, | ||||
} from 'lib/shared/thread-utils'; | } from 'lib/shared/thread-utils'; | ||||
import { isStaff } from 'lib/shared/user-utils'; | |||||
import type { CalendarQuery } from 'lib/types/entry-types'; | import type { CalendarQuery } from 'lib/types/entry-types'; | ||||
import type { | import type { | ||||
UploadMultimediaResult, | UploadMultimediaResult, | ||||
Media, | Media, | ||||
NativeMediaSelection, | NativeMediaSelection, | ||||
MediaMissionResult, | MediaMissionResult, | ||||
MediaMission, | MediaMission, | ||||
} from 'lib/types/media-types'; | } from 'lib/types/media-types'; | ||||
Show All 35 Lines | |||||
import { values } from 'lib/utils/objects'; | import { values } from 'lib/utils/objects'; | ||||
import { useIsReportEnabled } from 'lib/utils/report-utils'; | import { useIsReportEnabled } from 'lib/utils/report-utils'; | ||||
import { disposeTempFile } from '../media/file-utils'; | import { disposeTempFile } from '../media/file-utils'; | ||||
import { processMedia } from '../media/media-utils'; | import { processMedia } from '../media/media-utils'; | ||||
import { displayActionResultModal } from '../navigation/action-result-modal'; | import { displayActionResultModal } from '../navigation/action-result-modal'; | ||||
import { useCalendarQuery } from '../navigation/nav-selectors'; | import { useCalendarQuery } from '../navigation/nav-selectors'; | ||||
import { useSelector } from '../redux/redux-utils'; | import { useSelector } from '../redux/redux-utils'; | ||||
import { useStaffCanSee } from '../utils/staff-utils'; | |||||
import { | import { | ||||
InputStateContext, | InputStateContext, | ||||
type PendingMultimediaUploads, | type PendingMultimediaUploads, | ||||
type MultimediaProcessingStep, | type MultimediaProcessingStep, | ||||
} from './input-state'; | } from './input-state'; | ||||
type MediaIDs = | type MediaIDs = | ||||
| { +type: 'photo', +localMediaID: string } | | { +type: 'photo', +localMediaID: string } | ||||
Show All 12 Lines | type Props = { | ||||
+viewerID: ?string, | +viewerID: ?string, | ||||
+nextLocalID: number, | +nextLocalID: number, | ||||
+messageStoreMessages: { +[id: string]: RawMessageInfo }, | +messageStoreMessages: { +[id: string]: RawMessageInfo }, | ||||
+ongoingMessageCreation: boolean, | +ongoingMessageCreation: boolean, | ||||
+hasWiFi: boolean, | +hasWiFi: boolean, | ||||
+mediaReportsEnabled: boolean, | +mediaReportsEnabled: boolean, | ||||
+calendarQuery: () => CalendarQuery, | +calendarQuery: () => CalendarQuery, | ||||
+dispatch: Dispatch, | +dispatch: Dispatch, | ||||
+staffCanSee: boolean, | |||||
+dispatchActionPromise: DispatchActionPromise, | +dispatchActionPromise: DispatchActionPromise, | ||||
+uploadMultimedia: ( | +uploadMultimedia: ( | ||||
multimedia: Object, | multimedia: Object, | ||||
extras: MultimediaUploadExtras, | extras: MultimediaUploadExtras, | ||||
callbacks: MultimediaUploadCallbacks, | callbacks: MultimediaUploadCallbacks, | ||||
) => Promise<UploadMultimediaResult>, | ) => Promise<UploadMultimediaResult>, | ||||
+sendMultimediaMessage: ( | +sendMultimediaMessage: ( | ||||
threadID: string, | threadID: string, | ||||
▲ Show 20 Lines • Show All 708 Lines • ▼ Show 20 Lines | ): Promise<?string> { | ||||
} | } | ||||
await Promise.all(cleanupPromises); | await Promise.all(cleanupPromises); | ||||
return await onUploadFinished(mediaMissionResult); | return await onUploadFinished(mediaMissionResult); | ||||
} | } | ||||
mediaProcessConfig(localMessageID: string, localID: string) { | mediaProcessConfig(localMessageID: string, localID: string) { | ||||
const { hasWiFi, viewerID } = this.props; | const { hasWiFi, staffCanSee } = this.props; | ||||
const onTranscodingProgress = (percent: number) => { | const onTranscodingProgress = (percent: number) => { | ||||
this.setProgress(localMessageID, localID, 'transcoding', percent); | this.setProgress(localMessageID, localID, 'transcoding', percent); | ||||
}; | }; | ||||
if (__DEV__ || (viewerID && isStaff(viewerID))) { | if (staffCanSee) { | ||||
return { | return { | ||||
hasWiFi, | hasWiFi, | ||||
finalFileHeaderCheck: true, | finalFileHeaderCheck: true, | ||||
onTranscodingProgress, | onTranscodingProgress, | ||||
}; | }; | ||||
} | } | ||||
return { hasWiFi, onTranscodingProgress }; | return { hasWiFi, onTranscodingProgress }; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 538 Lines • ▼ Show 20 Lines | function ConnectedInputStateContainer(props: BaseProps) { | ||||
const calendarQuery = useCalendarQuery(); | const calendarQuery = useCalendarQuery(); | ||||
const callUploadMultimedia = useServerCall(uploadMultimedia); | const callUploadMultimedia = useServerCall(uploadMultimedia); | ||||
const callSendMultimediaMessage = useServerCall(sendMultimediaMessage); | const callSendMultimediaMessage = useServerCall(sendMultimediaMessage); | ||||
const callSendTextMessage = useServerCall(sendTextMessage); | const callSendTextMessage = useServerCall(sendTextMessage); | ||||
const callNewThread = useServerCall(newThread); | const callNewThread = useServerCall(newThread); | ||||
const dispatchActionPromise = useDispatchActionPromise(); | const dispatchActionPromise = useDispatchActionPromise(); | ||||
const dispatch = useDispatch(); | const dispatch = useDispatch(); | ||||
const mediaReportsEnabled = useIsReportEnabled('mediaReports'); | const mediaReportsEnabled = useIsReportEnabled('mediaReports'); | ||||
const staffCanSee = useStaffCanSee(); | |||||
return ( | return ( | ||||
<InputStateContainer | <InputStateContainer | ||||
{...props} | {...props} | ||||
viewerID={viewerID} | viewerID={viewerID} | ||||
nextLocalID={nextLocalID} | nextLocalID={nextLocalID} | ||||
messageStoreMessages={messageStoreMessages} | messageStoreMessages={messageStoreMessages} | ||||
ongoingMessageCreation={ongoingMessageCreation} | ongoingMessageCreation={ongoingMessageCreation} | ||||
hasWiFi={hasWiFi} | hasWiFi={hasWiFi} | ||||
mediaReportsEnabled={mediaReportsEnabled} | mediaReportsEnabled={mediaReportsEnabled} | ||||
calendarQuery={calendarQuery} | calendarQuery={calendarQuery} | ||||
uploadMultimedia={callUploadMultimedia} | uploadMultimedia={callUploadMultimedia} | ||||
sendMultimediaMessage={callSendMultimediaMessage} | sendMultimediaMessage={callSendMultimediaMessage} | ||||
sendTextMessage={callSendTextMessage} | sendTextMessage={callSendTextMessage} | ||||
newThread={callNewThread} | newThread={callNewThread} | ||||
dispatchActionPromise={dispatchActionPromise} | dispatchActionPromise={dispatchActionPromise} | ||||
dispatch={dispatch} | dispatch={dispatch} | ||||
staffCanSee={staffCanSee} | |||||
/> | /> | ||||
); | ); | ||||
}, | }, | ||||
); | ); | ||||
export default ConnectedInputStateContainer; | export default ConnectedInputStateContainer; |