Skip to content
This repository was archived by the owner on Dec 26, 2022. It is now read-only.

Commit fe60d7a

Browse files
authored
Merge pull request #9 from Yadro/saving-config-fix
Cross platform saving data
2 parents 88615e1 + ef75d3a commit fe60d7a

File tree

5 files changed

+22
-6
lines changed

5 files changed

+22
-6
lines changed

src/base/repositories/AbstractFileRepository.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
import { EChannels } from '../../main/EChannels';
2+
13
const fs = require('fs');
24
const path = require('path');
5+
import { ipcRenderer } from 'electron';
36

47
import FsHelper from '../../helpers/FsHelper';
58
import PromiseQueue from '../../helpers/PromiseQueueHellper';
@@ -21,8 +24,8 @@ export default abstract class AbstractFileRepository<T = any> {
2124
return `FileRepository [${filePath}/${this.fileName}]:`;
2225
}
2326

24-
private static get appDataFolder() {
25-
return process.env.APPDATA || '';
27+
static get appDataFolder() {
28+
return ipcRenderer.sendSync(EChannels.GetPathUserData);
2629
}
2730

2831
private get destFolder() {

src/components/SettingsModal/SettingsModal.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import IModalProps from '../../types/IModalProps';
2121
import NewProfilePopover from './NewProfilePopover';
2222
import { timeToMs } from '../../helpers/DateTime';
2323
import { DEFAULT_SETTINGS } from '../../modules/settings/models/SettingsModel';
24+
import AbstractFileRepository from '../../base/repositories/AbstractFileRepository';
2425

2526
const { settingsStore } = rootStore;
2627

@@ -130,7 +131,7 @@ const SettingsModal: React.VFC<ISettingsModalProps> = observer(
130131
Test Sentry
131132
</Button>
132133
)}
133-
<p>{`APPDATA: ${process.env.APPDATA}`}</p>
134+
<p>{`APPDATA: ${AbstractFileRepository.appDataFolder}`}</p>
134135
<p>{`SENTRY_DSN: ${process.env.SENTRY_DSN}`}</p>
135136
<p>{`GA_UACODE: ${process.env.GA_UACODE}`}</p>
136137
</Modal>

src/main.dev.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@ import log from 'electron-log';
1212
Object.assign(console, log.functions);
1313
import 'core-js/stable';
1414
import 'regenerator-runtime/runtime';
15+
import { initSentry } from './shared/initSentry';
16+
initSentry();
17+
1518
import path from 'path';
1619
import { app, BrowserWindow, shell } from 'electron';
1720
import { autoUpdater } from 'electron-updater';
1821
import Badge from 'electron-windows-badge';
1922

23+
import './main/IpcMain';
2024
import MenuBuilder from './menu';
21-
import { initSentry } from './shared/initSentry';
22-
23-
initSentry();
2425

2526
console.log('Working path:', app.getAppPath());
2627

src/main/EChannels.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export enum EChannels {
2+
GetPathUserData = 'get-path-userdata',
3+
}

src/main/IpcMain.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// main process
2+
import { ipcMain, app } from 'electron';
3+
4+
import { EChannels } from './EChannels';
5+
6+
ipcMain.on(EChannels.GetPathUserData, (event) => {
7+
event.returnValue = app.getPath('appData');
8+
});

0 commit comments

Comments
 (0)