diff --git a/lib/actions/report-actions.js b/lib/actions/report-actions.js --- a/lib/actions/report-actions.js +++ b/lib/actions/report-actions.js @@ -11,33 +11,25 @@ success: 'SEND_REPORT_SUCCESS', failed: 'SEND_REPORT_FAILED', }); -const sendReport = - (): (( - request: ClientReportCreationRequest, - ) => Promise) => - async request => { - const { - reportIDs: [id], - } = await callSendReports([request]); - if (!id) { - throw new Error('Server did not return report ID'); - } - return { id }; - }; +const sendReport: ( + request: ClientReportCreationRequest, +) => Promise = async request => { + const { + reportIDs: [id], + } = await callSendReports([request]); + + if (!id) { + throw new Error('Server did not return report ID'); + } + return { id }; +}; const sendReportsActionTypes = Object.freeze({ started: 'SEND_REPORTS_STARTED', success: 'SEND_REPORTS_SUCCESS', failed: 'SEND_REPORTS_FAILED', }); -const sendReports = - (): (( - reports: $ReadOnlyArray, - ) => Promise) => - async clientReports => { - await callSendReports(clientReports); - }; const queueReportsActionType = 'QUEUE_REPORTS'; @@ -45,6 +37,5 @@ sendReportActionTypes, sendReport, sendReportsActionTypes, - sendReports, queueReportsActionType, }; diff --git a/lib/socket/report-handler.react.js b/lib/socket/report-handler.react.js --- a/lib/socket/report-handler.react.js +++ b/lib/socket/report-handler.react.js @@ -2,10 +2,7 @@ import * as React from 'react'; -import { - sendReportsActionTypes, - sendReports, -} from '../actions/report-actions.js'; +import { sendReportsActionTypes } from '../actions/report-actions.js'; import { queuedReports as queuedReportsSelector } from '../selectors/socket-selectors.js'; import { type ClientReportCreationRequest, @@ -14,9 +11,9 @@ import { type DispatchActionPromise, useDispatchActionPromise, - useServerCall, } from '../utils/action-utils.js'; import { useSelector } from '../utils/redux-utils.js'; +import { sendReports } from '../utils/reports-service.js'; type BaseProps = { +canSendReports: boolean, @@ -25,9 +22,6 @@ ...BaseProps, +queuedReports: $ReadOnlyArray, +dispatchActionPromise: DispatchActionPromise, - +sendReports: ( - reports: $ReadOnlyArray, - ) => Promise, }; class ReportHandler extends React.PureComponent { componentDidMount() { @@ -73,7 +67,7 @@ } async sendReports(reports: $ReadOnlyArray) { - await this.props.sendReports(reports); + await sendReports(reports); return ({ reports }: ClearDeliveredReportsPayload); } } @@ -81,14 +75,12 @@ const ConnectedReportHandler: React.ComponentType = React.memo(function ConnectedReportHandler(props) { const queuedReports = useSelector(queuedReportsSelector); - const callSendReports = useServerCall(sendReports); const dispatchActionPromise = useDispatchActionPromise(); return ( ); diff --git a/native/crash.react.js b/native/crash.react.js --- a/native/crash.react.js +++ b/native/crash.react.js @@ -21,12 +21,7 @@ import { logOutActionTypes, logOut } from 'lib/actions/user-actions.js'; import { preRequestUserStateSelector } from 'lib/selectors/account-selectors.js'; import type { LogOutResult } from 'lib/types/account-types.js'; -import { - type ErrorData, - type ClientReportCreationRequest, - type ReportCreationResponse, - reportTypes, -} from 'lib/types/report-types.js'; +import { type ErrorData, reportTypes } from 'lib/types/report-types.js'; import type { PreRequestUserState } from 'lib/types/session-types.js'; import { actionLogger } from 'lib/utils/action-logger.js'; import { @@ -63,9 +58,6 @@ // Redux dispatch functions +dispatchActionPromise: DispatchActionPromise, // async functions that hit server APIs - +sendReport: ( - request: ClientReportCreationRequest, - ) => Promise, +logOut: (preRequestUserState: PreRequestUserState) => Promise, +crashReportingEnabled: boolean, }; @@ -162,7 +154,7 @@ currentState: actionLogger.currentState, actions: actionLogger.actions, }); - const result = await this.props.sendReport({ + const result = await sendReport({ type: reportTypes.ERROR, platformDetails: { platform: Platform.OS, @@ -281,7 +273,6 @@ const preRequestUserState = useSelector(preRequestUserStateSelector); const dispatchActionPromise = useDispatchActionPromise(); - const callSendReport = useServerCall(sendReport); const callLogOut = useServerCall(logOut); const crashReportingEnabled = useIsReportEnabled('crashReports'); return ( @@ -289,7 +280,6 @@ {...props} preRequestUserState={preRequestUserState} dispatchActionPromise={dispatchActionPromise} - sendReport={callSendReport} logOut={callLogOut} crashReportingEnabled={crashReportingEnabled} />