summaryrefslogtreecommitdiffhomepage
path: root/gui/src/renderer
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2019-06-27 19:43:17 +0200
committerAndrej Mihajlov <and@mullvad.net>2019-06-27 20:30:47 +0200
commita18523cc1e5a07075403370c93e11564a8d2d94b (patch)
tree78f093b22097b53c005eb16bfee5a21db739b60b /gui/src/renderer
parentbdf2b46118845c959b06e861a7a3ecec8f54788e (diff)
downloadmullvadvpn-a18523cc1e5a07075403370c93e11564a8d2d94b.tar.xz
mullvadvpn-a18523cc1e5a07075403370c93e11564a8d2d94b.zip
Add notification settings
Diffstat (limited to 'gui/src/renderer')
-rw-r--r--gui/src/renderer/app.tsx10
-rw-r--r--gui/src/renderer/components/Preferences.tsx18
-rw-r--r--gui/src/renderer/containers/PreferencesPage.tsx14
-rw-r--r--gui/src/renderer/redux/settings/reducers.ts1
4 files changed, 33 insertions, 10 deletions
diff --git a/gui/src/renderer/app.tsx b/gui/src/renderer/app.tsx
index b530121672..ec7ba833e8 100644
--- a/gui/src/renderer/app.tsx
+++ b/gui/src/renderer/app.tsx
@@ -324,11 +324,15 @@ export default class AppRenderer {
await IpcRendererEventChannel.settings.setOpenVpnMssfix(mssfix);
}
- public async setAutoConnect(autoConnect: boolean) {
- return IpcRendererEventChannel.guiSettings.setAutoConnect(autoConnect);
+ public setAutoConnect(autoConnect: boolean) {
+ IpcRendererEventChannel.guiSettings.setAutoConnect(autoConnect);
}
- public async setAutoStart(autoStart: boolean): Promise<void> {
+ public setEnableSystemNotifications(flag: boolean) {
+ IpcRendererEventChannel.guiSettings.setEnableSystemNotifications(flag);
+ }
+
+ public setAutoStart(autoStart: boolean): Promise<void> {
this.storeAutoStart(autoStart);
return IpcRendererEventChannel.autoStart.set(autoStart);
diff --git a/gui/src/renderer/components/Preferences.tsx b/gui/src/renderer/components/Preferences.tsx
index d8c8887c0d..b690a506b3 100644
--- a/gui/src/renderer/components/Preferences.tsx
+++ b/gui/src/renderer/components/Preferences.tsx
@@ -17,11 +17,13 @@ export interface IPreferencesProps {
autoStart: boolean;
autoConnect: boolean;
allowLan: boolean;
+ enableSystemNotifications: boolean;
monochromaticIcon: boolean;
startMinimized: boolean;
enableMonochromaticIconToggle: boolean;
enableStartMinimizedToggle: boolean;
setAutoStart: (autoStart: boolean) => void;
+ setEnableSystemNotifications: (flag: boolean) => void;
setAutoConnect: (autoConnect: boolean) => void;
setAllowLan: (allowLan: boolean) => void;
setStartMinimized: (startMinimized: boolean) => void;
@@ -93,6 +95,22 @@ export default class Preferences extends Component<IPreferencesProps> {
)}
</Cell.Footer>
+ <Cell.Container>
+ <Cell.Label>
+ {messages.pgettext('preferences-view', 'Notifications')}
+ </Cell.Label>
+ <Cell.Switch
+ isOn={this.props.enableSystemNotifications}
+ onChange={this.props.setEnableSystemNotifications}
+ />
+ </Cell.Container>
+ <Cell.Footer>
+ {messages.pgettext(
+ 'preferences-view',
+ 'Enable or disable system notifications. The critical notifications will always be displayed.',
+ )}
+ </Cell.Footer>
+
<MonochromaticIconToggle
enable={this.props.enableMonochromaticIconToggle}
monochromaticIcon={this.props.monochromaticIcon}
diff --git a/gui/src/renderer/containers/PreferencesPage.tsx b/gui/src/renderer/containers/PreferencesPage.tsx
index 4147b42cfc..c78daccf29 100644
--- a/gui/src/renderer/containers/PreferencesPage.tsx
+++ b/gui/src/renderer/containers/PreferencesPage.tsx
@@ -9,8 +9,9 @@ import { ISharedRouteProps } from '../routes';
const mapStateToProps = (state: IReduxState) => ({
autoStart: state.settings.autoStart,
- autoConnect: state.settings.guiSettings.autoConnect,
allowLan: state.settings.allowLan,
+ autoConnect: state.settings.guiSettings.autoConnect,
+ enableSystemNotifications: state.settings.guiSettings.enableSystemNotifications,
monochromaticIcon: state.settings.guiSettings.monochromaticIcon,
startMinimized: state.settings.guiSettings.startMinimized,
});
@@ -21,6 +22,9 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: ISharedRouteProps) =
onClose: () => {
history.goBack();
},
+ setEnableSystemNotifications: (flag: boolean) => {
+ props.app.setEnableSystemNotifications(flag);
+ },
setAutoStart: async (autoStart: boolean) => {
try {
await props.app.setAutoStart(autoStart);
@@ -28,12 +32,8 @@ const mapDispatchToProps = (dispatch: ReduxDispatch, props: ISharedRouteProps) =
log.error(`Cannot set auto-start: ${error.message}`);
}
},
- setAutoConnect: async (autoConnect: boolean) => {
- try {
- props.app.setAutoConnect(autoConnect);
- } catch (error) {
- log.error(`Cannot set auto-connect: ${error.message}`);
- }
+ setAutoConnect: (autoConnect: boolean) => {
+ props.app.setAutoConnect(autoConnect);
},
setAllowLan: (allowLan: boolean) => {
props.app.setAllowLan(allowLan);
diff --git a/gui/src/renderer/redux/settings/reducers.ts b/gui/src/renderer/redux/settings/reducers.ts
index 7933fd3384..6c652f887d 100644
--- a/gui/src/renderer/redux/settings/reducers.ts
+++ b/gui/src/renderer/redux/settings/reducers.ts
@@ -58,6 +58,7 @@ export interface ISettingsReduxState {
const initialState: ISettingsReduxState = {
autoStart: false,
guiSettings: {
+ enableSystemNotifications: true,
autoConnect: true,
monochromaticIcon: false,
startMinimized: false,