summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-12-10 13:28:22 +0100
committerOskar Nyberg <oskar@mullvad.net>2020-12-10 13:28:22 +0100
commita832f6f3628272166d7232e839b4fc5091ecdafd (patch)
tree408d279f13563c86ef3b1bee505329eddb829ee5 /gui/src/renderer
parentae3cae40c16b01683b2a562ac48799699c711ca2 (diff)
parent8f4698a13622d6e34e47c5c2a2d043ffd1276e95 (diff)
downloadmullvadvpn-a832f6f3628272166d7232e839b4fc5091ecdafd.tar.xz
mullvadvpn-a832f6f3628272166d7232e839b4fc5091ecdafd.zip
Merge branch 'remove-use-of-legacy-ipc-calls'
Diffstat (limited to 'gui/src/renderer')
-rw-r--r--gui/src/renderer/app.tsx17
-rw-r--r--gui/src/renderer/containers/SupportPage.tsx10
-rw-r--r--gui/src/renderer/lib/problem-report.ts53
3 files changed, 18 insertions, 62 deletions
diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx
index a16718945c..76679427f4 100644
--- a/gui/src/renderer/app.tsx
+++ b/gui/src/renderer/app.tsx
@@ -1,4 +1,4 @@
-import { ipcRenderer, shell, webFrame } from 'electron';
+import { shell, webFrame } from 'electron';
import log from 'electron-log';
import * as React from 'react';
import { Provider } from 'react-redux';
@@ -424,6 +424,18 @@ export default class AppRenderer {
consumePromise(IpcRendererEventChannel.splitTunneling.launchApplication(application));
}
+ public collectProblemReport(toRedact: string[]): Promise<string> {
+ return IpcRendererEventChannel.problemReport.collectLogs(toRedact);
+ }
+
+ public async sendProblemReport(
+ email: string,
+ message: string,
+ savedReport: string,
+ ): Promise<void> {
+ await IpcRendererEventChannel.problemReport.sendReport({ email, message, savedReport });
+ }
+
public getPreferredLocaleList(): IPreferredLocaleDescriptor[] {
return [
{
@@ -534,9 +546,6 @@ export default class AppRenderer {
await this.autoConnect();
} else {
this.history.resetWith('/login');
-
- // show window when account is not set
- ipcRenderer.send('show-window');
}
}
diff --git a/gui/src/renderer/containers/SupportPage.tsx b/gui/src/renderer/containers/SupportPage.tsx
index d77ec3e421..e3e5ee7d4f 100644
--- a/gui/src/renderer/containers/SupportPage.tsx
+++ b/gui/src/renderer/containers/SupportPage.tsx
@@ -4,7 +4,7 @@ import { RouteComponentProps, withRouter } from 'react-router';
import { bindActionCreators } from 'redux';
import consumePromise from '../../shared/promise';
import Support from '../components/Support';
-import { collectProblemReport, sendProblemReport } from '../lib/problem-report';
+import withAppContext, { IAppContext } from '../context';
import { IReduxState, ReduxDispatch } from '../redux/store';
import supportActions from '../redux/support/actions';
@@ -16,7 +16,7 @@ const mapStateToProps = (state: IReduxState) => ({
outdatedVersion: state.version.suggestedUpgrade ? true : false,
});
-const mapDispatchToProps = (dispatch: ReduxDispatch, props: RouteComponentProps) => {
+const mapDispatchToProps = (dispatch: ReduxDispatch, props: IAppContext & RouteComponentProps) => {
const { saveReportForm, clearReportForm } = bindActionCreators(supportActions, dispatch);
return {
@@ -28,10 +28,10 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: RouteComponentProps)
},
saveReportForm,
clearReportForm,
- collectProblemReport,
- sendProblemReport,
+ collectProblemReport: props.app.collectProblemReport,
+ sendProblemReport: props.app.sendProblemReport,
onExternalLink: (url: string) => shell.openExternal(url),
};
};
-export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Support));
+export default withAppContext(withRouter(connect(mapStateToProps, mapDispatchToProps)(Support)));
diff --git a/gui/src/renderer/lib/problem-report.ts b/gui/src/renderer/lib/problem-report.ts
deleted file mode 100644
index 7213ed8d07..0000000000
--- a/gui/src/renderer/lib/problem-report.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { ipcRenderer } from 'electron';
-import * as uuid from 'uuid';
-
-interface IErrorResult {
- success: false;
- error: string;
-}
-type CollectResult = { success: true; reportPath: string } | IErrorResult;
-type SendResult = { success: true } | IErrorResult;
-
-const collectProblemReport = (toRedact: string[]): Promise<string> => {
- return new Promise((resolve, reject) => {
- const requestId = uuid.v4();
- const responseListener = (
- _event: Electron.Event,
- responseId: string,
- result: CollectResult,
- ) => {
- if (responseId === requestId) {
- ipcRenderer.removeListener('collect-logs-reply', responseListener);
- if (result.success) {
- resolve(result.reportPath);
- } else {
- reject(new Error(result.error));
- }
- }
- };
-
- ipcRenderer.on('collect-logs-reply', responseListener);
- ipcRenderer.send('collect-logs', requestId, toRedact);
- });
-};
-
-const sendProblemReport = (email: string, message: string, savedReport: string): Promise<void> => {
- return new Promise((resolve, reject) => {
- const requestId = uuid.v4();
- const responseListener = (_event: Electron.Event, responseId: string, result: SendResult) => {
- if (requestId === responseId) {
- ipcRenderer.removeListener('send-problem-report-reply', responseListener);
- if (result.success) {
- resolve();
- } else {
- reject(new Error(result.error));
- }
- }
- };
-
- ipcRenderer.on('send-problem-report-reply', responseListener);
- ipcRenderer.send('send-problem-report', requestId, email, message, savedReport);
- });
-};
-
-export { collectProblemReport, sendProblemReport };