1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
import { connect } from 'react-redux';
import { IDnsOptions } from '../../shared/daemon-rpc-types';
import log from '../../shared/logging';
import Preferences from '../components/Preferences';
import withAppContext, { IAppContext } from '../context';
import { IHistoryProps, withHistory } from '../lib/history';
import { IReduxState, ReduxDispatch } from '../redux/store';
const mapStateToProps = (state: IReduxState) => ({
autoStart: state.settings.autoStart,
allowLan: state.settings.allowLan,
showBetaReleases: state.settings.showBetaReleases,
isBeta: state.version.isBeta,
autoConnect: state.settings.guiSettings.autoConnect,
enableSystemNotifications: state.settings.guiSettings.enableSystemNotifications,
monochromaticIcon: state.settings.guiSettings.monochromaticIcon,
startMinimized: state.settings.guiSettings.startMinimized,
unpinnedWindow: state.settings.guiSettings.unpinnedWindow,
dns: state.settings.dns,
});
const mapDispatchToProps = (_dispatch: ReduxDispatch, props: IHistoryProps & IAppContext) => {
return {
onClose: () => {
props.history.pop();
},
setEnableSystemNotifications: (flag: boolean) => {
props.app.setEnableSystemNotifications(flag);
},
setAutoStart: async (autoStart: boolean) => {
try {
await props.app.setAutoStart(autoStart);
} catch (e) {
const error = e as Error;
log.error(`Cannot set auto-start: ${error.message}`);
}
},
setAutoConnect: (autoConnect: boolean) => {
props.app.setAutoConnect(autoConnect);
},
setAllowLan: (allowLan: boolean) => {
void props.app.setAllowLan(allowLan);
},
setShowBetaReleases: (showBetaReleases: boolean) => {
void props.app.setShowBetaReleases(showBetaReleases);
},
setStartMinimized: (startMinimized: boolean) => {
props.app.setStartMinimized(startMinimized);
},
setMonochromaticIcon: (monochromaticIcon: boolean) => {
props.app.setMonochromaticIcon(monochromaticIcon);
},
setUnpinnedWindow: (unpinnedWindow: boolean) => {
props.app.setUnpinnedWindow(unpinnedWindow);
},
setDnsOptions: (dns: IDnsOptions) => {
return props.app.setDnsOptions(dns);
},
};
};
export default withAppContext(
withHistory(connect(mapStateToProps, mapDispatchToProps)(Preferences)),
);
|