diff options
| author | Andrej Mihajlov <and@mullvad.net> | 2019-06-27 19:43:17 +0200 |
|---|---|---|
| committer | Andrej Mihajlov <and@mullvad.net> | 2019-06-27 20:30:47 +0200 |
| commit | a18523cc1e5a07075403370c93e11564a8d2d94b (patch) | |
| tree | 78f093b22097b53c005eb16bfee5a21db739b60b /gui/src/renderer | |
| parent | bdf2b46118845c959b06e861a7a3ecec8f54788e (diff) | |
| download | mullvadvpn-a18523cc1e5a07075403370c93e11564a8d2d94b.tar.xz mullvadvpn-a18523cc1e5a07075403370c93e11564a8d2d94b.zip | |
Add notification settings
Diffstat (limited to 'gui/src/renderer')
| -rw-r--r-- | gui/src/renderer/app.tsx | 10 | ||||
| -rw-r--r-- | gui/src/renderer/components/Preferences.tsx | 18 | ||||
| -rw-r--r-- | gui/src/renderer/containers/PreferencesPage.tsx | 14 | ||||
| -rw-r--r-- | gui/src/renderer/redux/settings/reducers.ts | 1 |
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, |
