Skip to content

Commit b8c8a64

Browse files
committed
fix: fixes #446 Blank screen after setup
Signed-off-by: Pawel Psztyc <[email protected]>
1 parent 99fd06e commit b8c8a64

File tree

7 files changed

+34
-38
lines changed

7 files changed

+34
-38
lines changed

src/app/bindings/GoogleAnalyticsBindings.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ export class GoogleAnalyticsBindings extends PlatformBindings {
101101
window.addEventListener(EventTypes.Telemetry.exception, this.exceptionHandler.bind(this));
102102
window.addEventListener(EventTypes.Telemetry.view, this.viewHandler.bind(this));
103103
window.addEventListener(EventTypes.Telemetry.timing, this.timingHandler.bind(this));
104+
window.addEventListener(EventTypes.Telemetry.State.set, this.stateSetHandler.bind(this));
104105
ArcEnvironment.ipc.on('preferences-value-updated', this.preferenceHandler.bind(this));
105106
}
106107

@@ -271,4 +272,12 @@ export class GoogleAnalyticsBindings extends PlatformBindings {
271272
default:
272273
}
273274
}
275+
276+
/**
277+
* This is a handler for the event dispatched by the GA consent screen.
278+
* It dispatches a message to the IO so it knows to continue with the application flow.
279+
*/
280+
stateSetHandler() {
281+
ArcEnvironment.ipc.send('telemetry-set');
282+
}
274283
}

src/app/data-migration.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { ApplicationScreen, html } from '../../web_modules/index.js';
2-
import { ArcBindings } from './bindings/ArcBindings.js';
32

43
export class DataMigrationScreen extends ApplicationScreen {
54
constructor() {
@@ -62,9 +61,6 @@ export class DataMigrationScreen extends ApplicationScreen {
6261
}
6362

6463
(async () => {
65-
const bindings = new ArcBindings();
66-
await bindings.initialize();
67-
6864
const page = new DataMigrationScreen();
6965
await page.initialize();
7066
})();

src/app/styles/data-migration.css

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.app-loader.error {
2+
background-color: #F44336;
3+
color: #fff;
4+
}
5+
6+
.error-stack {
7+
white-space: pre;
8+
}
9+
10+
.error-message,
11+
.error-stack,
12+
.selectable {
13+
user-select: text;
14+
}

src/io/TelemetryConsent.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export class TelemetryConsent {
2222
constructor(wm) {
2323
this.wm = wm;
2424
this.lockFile = path.join(process.env.ARC_HOME, '.telemetry-consent.lock');
25+
this.pageHandler = this.pageHandler.bind(this);
2526
}
2627

2728
/**
@@ -34,7 +35,7 @@ export class TelemetryConsent {
3435
return undefined;
3536
}
3637
await this.renderDialog();
37-
ipcMain.on('telemetry-set', this.pageHandler.bind(this));
38+
ipcMain.on('telemetry-set', this.pageHandler);
3839
return new Promise((resolve) => {
3940
this.resolve = resolve;
4041
});
@@ -62,6 +63,7 @@ export class TelemetryConsent {
6263
async pageHandler() {
6364
await fs.writeFile(this.lockFile, 'Do not remove this file. It prohibits showing the analytics dialog.');
6465
this.resolve();
66+
ipcMain.removeListener('telemetry-set', this.pageHandler);
6567
if (this.loader && !this.loader.isDestroyed()) {
6668
this.loader.close();
6769
}

src/io/defaults/db-server.html

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -3,43 +3,15 @@
33
<head>
44
</head>
55
<body>
6-
<project-model></project-model>
7-
<url-history-model></url-history-model>
8-
<websocket-url-history-model></websocket-url-history-model>
9-
<history-data-model></history-data-model>
10-
<client-certificate-model></client-certificate-model>
11-
<variables-model></variables-model>
12-
<auth-data-model></auth-data-model>
13-
<request-model></request-model>
14-
<host-rules-model></host-rules-model>
15-
<rest-api-model></rest-api-model>
16-
<url-indexer></url-indexer>
176
<script type="module">
18-
/* eslint-disable import/no-extraneous-dependencies */
19-
/* eslint-disable no-await-in-loop */
20-
/* eslint-disable import/no-unresolved */
21-
227
/**
238
* This import the entire data export logic for ARC and dumps all the user data
249
* into a temporary folder (in the system's TMP path).
2510
*
2611
* Then it reports the operation finished to the IO process so it can run the import window
2712
* and import the data into the application.
2813
*/
29-
30-
import PouchDB from 'web-module:../web_modules/pouchdb/dist/pouchdb.js';
31-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/project-model.js';
32-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/url-history-model.js';
33-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/websocket-url-history-model.js';
34-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/history-data-model.js';
35-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/client-certificate-model.js';
36-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/variables-model.js';
37-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/auth-data-model.js';
38-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/request-model.js';
39-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/host-rules-model.js';
40-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/rest-api-model.js';
41-
import 'web-module:../web_modules/@advanced-rest-client/arc-models/url-indexer.js';
42-
import { ExportProcessor, ExportFactory } from 'web-module:../web_modules/@advanced-rest-client/arc-models/index.js';
14+
import { PouchDB, ExportProcessor, ExportFactory } from 'web-module:../web_modules/index.js';
4315

4416
window.PouchDB = PouchDB;
4517
const { ipcRenderer } = require('electron');
@@ -53,6 +25,7 @@
5325
* @return Promise<void>
5426
*/
5527
async function start(e, storeLocation) {
28+
console.info('Starting data migration');
5629
try {
5730
const factory = new ExportFactory();
5831
const data = /** @type any[] */ (await factory.getExportData({
@@ -85,10 +58,10 @@
8558
await fs.outputJson(storeLocation, exportObject);
8659
ipcRenderer.send('server-db-finished');
8760
} catch (e) {
61+
console.error(e);
8862
ipcRenderer.send('db-error', e.message, e.stack);
8963
}
9064
}
91-
9265
ipcRenderer.once('server-start', start);
9366
</script>
9467
</body>

src/io/start.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { app, protocol } from 'electron';
2+
import path from 'path';
23
import { logger, setLevel } from './Logger.js';
34
import { ApplicationPaths } from './ApplicationPaths.js';
45
import { ApplicationOptions } from './ApplicationOptions.js';
@@ -110,17 +111,17 @@ export default async function start(startTime) {
110111
initOptions = startupOptions.getOptions();
111112
if (initOptions.dev) {
112113
setLevel(initOptions.debugLevel || 'silly');
113-
// logger.level = initOptions.debugLevel || 'warn';
114114
} else if (initOptions.debugLevel) {
115-
// logger.level = initOptions.debugLevel;
116115
setLevel(initOptions.debugLevel);
117116
} else {
118-
// logger.level = 'error';
119117
setLevel('error');
120118
}
121119

122120
if (initOptions.userDataDir) {
123121
app.setPath('userData', initOptions.userDataDir);
122+
} else if (initOptions.dev) {
123+
const appData = app.getPath('appData');
124+
app.setPath('userData', path.join(appData, 'advanced-rest-client-dev'));
124125
}
125126

126127
// Standard scheme must be registered before the app is ready

tasks/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import '@advanced-rest-client/base/define/variables-suggestions.js';
66
export { RequestAuthorization, ResponseAuthorization, ModulesRegistry } from '@advanced-rest-client/base'
77
export * from '@advanced-rest-client/app';
88
export * from '@advanced-rest-client/events';
9+
export { ExportProcessor, ExportFactory, ProjectModel, RequestModel, RestApiModel, AuthDataModel, HostRulesModel, VariablesModel, UrlHistoryModel, HistoryDataModel, ClientCertificateModel, WebsocketUrlHistoryModel, UrlIndexer } from '@advanced-rest-client/idb-store';
910
export * as IdbKeyVal from 'idb-keyval';
1011
export { default as Jexl } from 'jexl';
1112
export { default as PouchDB } from 'pouchdb/dist/pouchdb.js';

0 commit comments

Comments
 (0)