aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/settings/settings/EditSettingsForm.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/settings/settings/EditSettingsForm.tsx')
-rw-r--r--src/components/settings/settings/EditSettingsForm.tsx125
1 files changed, 88 insertions, 37 deletions
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx
index c3e8d46a0..2900aa2af 100644
--- a/src/components/settings/settings/EditSettingsForm.tsx
+++ b/src/components/settings/settings/EditSettingsForm.tsx
@@ -1,5 +1,6 @@
1import { systemPreferences } from '@electron/remote'; 1import { systemPreferences } from '@electron/remote';
2import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js'; 2import { mdiGithub, mdiOpenInNew, mdiPowerPlug } from '@mdi/js';
3import { ipcRenderer } from 'electron';
3import { noop } from 'lodash'; 4import { noop } from 'lodash';
4import { observer } from 'mobx-react'; 5import { observer } from 'mobx-react';
5import prettyBytes from 'pretty-bytes'; 6import prettyBytes from 'pretty-bytes';
@@ -191,6 +192,14 @@ const messages = defineMessages({
191 id: 'settings.app.subheadlineCache', 192 id: 'settings.app.subheadlineCache',
192 defaultMessage: 'Cache', 193 defaultMessage: 'Cache',
193 }, 194 },
195 subheadlineUserAgent: {
196 id: 'settings.app.subheadlineUserAgent',
197 defaultMessage: 'User Agent',
198 },
199 subheadlineDownloads: {
200 id: 'settings.app.subheadlineDownloads',
201 defaultMessage: 'Downloads',
202 },
194 cacheInfo: { 203 cacheInfo: {
195 id: 'settings.app.cacheInfo', 204 id: 'settings.app.cacheInfo',
196 defaultMessage: 'Ferdium cache is currently using {size} of disk space.', 205 defaultMessage: 'Ferdium cache is currently using {size} of disk space.',
@@ -281,6 +290,10 @@ const messages = defineMessages({
281 id: 'settings.app.buttonOpenFerdiumCertsFolder', 290 id: 'settings.app.buttonOpenFerdiumCertsFolder',
282 defaultMessage: 'Open certificates folder', 291 defaultMessage: 'Open certificates folder',
283 }, 292 },
293 buttonOpenFolderSelector: {
294 id: 'settings.app.buttonOpenFolderSelector',
295 defaultMessage: 'Open folder selector',
296 },
284}); 297});
285 298
286const Hr = (): ReactElement => ( 299const Hr = (): ReactElement => (
@@ -1034,49 +1047,87 @@ class EditSettingsForm extends Component<IProps, IState> {
1034 1047
1035 <Hr /> 1048 <Hr />
1036 1049
1037 <Input 1050 <div className="settings__settings-group">
1038 placeholder="User Agent" 1051 <H3>{intl.formatMessage(messages.subheadlineDownloads)}</H3>
1039 onChange={e => this.submit(e)} 1052
1040 {...form.$('userAgentPref').bind()} 1053 <Input
1041 /> 1054 placeholder="Default download folder"
1042 <p className="settings__help"> 1055 onChange={e => {
1043 {intl.formatMessage(globalMessages.userAgentHelp)} 1056 this.submit(e);
1044 </p> 1057 }}
1045 <p className="settings__help"> 1058 {...form.$('downloadFolderPath').bind()}
1046 {intl.formatMessage(messages.appRestartRequired)} 1059 />
1047 </p> 1060
1061 <Button
1062 buttonType="secondary"
1063 label={intl.formatMessage(
1064 messages.buttonOpenFolderSelector,
1065 )}
1066 className="settings__open-settings-cache-button"
1067 onClick={e => {
1068 ipcRenderer
1069 .invoke('download-folder-select')
1070 .then(path => {
1071 if (path) {
1072 form.$('downloadFolderPath').set(path);
1073 this.submit(e);
1074 }
1075 })
1076 .catch(console.error);
1077 }}
1078 disabled={isClearingAllCache}
1079 loaded={!isClearingAllCache}
1080 />
1081 </div>
1048 1082
1049 <Hr /> 1083 <Hr />
1050 1084
1051 <div className="settings__settings-group"> 1085 <div className="settings__settings-group">
1052 <H3>{intl.formatMessage(messages.subheadlineCache)}</H3> 1086 <Input
1053 <p> 1087 placeholder="User Agent"
1054 {intl.formatMessage(messages.cacheInfo, { 1088 onChange={e => this.submit(e)}
1055 size: cacheSize, 1089 {...form.$('userAgentPref').bind()}
1056 })} 1090 />
1091
1092 <p className="settings__help">
1093 {intl.formatMessage(globalMessages.userAgentHelp)}
1057 </p> 1094 </p>
1058 {notCleared && ( 1095 <p className="settings__help">
1059 <p>{intl.formatMessage(messages.cacheNotCleared)}</p> 1096 {intl.formatMessage(messages.appRestartRequired)}
1060 )} 1097 </p>
1098
1099 <Hr />
1100
1061 <div className="settings__settings-group"> 1101 <div className="settings__settings-group">
1062 <div className="settings__open-settings-cache-container"> 1102 <H3>{intl.formatMessage(messages.subheadlineCache)}</H3>
1063 <Button 1103 <p>
1064 buttonType="secondary" 1104 {intl.formatMessage(messages.cacheInfo, {
1065 label={intl.formatMessage(globalMessages.clearCache)} 1105 size: cacheSize,
1066 className="settings__open-settings-cache-button" 1106 })}
1067 onClick={() => { 1107 </p>
1068 onClearAllCache(); 1108 {notCleared && (
1069 this.onClearCacheClicked(); 1109 <p>{intl.formatMessage(messages.cacheNotCleared)}</p>
1070 }} 1110 )}
1071 disabled={isClearingAllCache} 1111 <div className="settings__settings-group">
1072 loaded={!isClearingAllCache} 1112 <div className="settings__open-settings-cache-container">
1073 /> 1113 <Button
1074 <Button 1114 buttonType="secondary"
1075 buttonType="secondary" 1115 label={intl.formatMessage(globalMessages.clearCache)}
1076 label="Open Process Manager" 1116 className="settings__open-settings-cache-button"
1077 className="settings__open-settings-cache-button" 1117 onClick={() => {
1078 onClick={openProcessManager} 1118 onClearAllCache();
1079 /> 1119 this.onClearCacheClicked();
1120 }}
1121 disabled={isClearingAllCache}
1122 loaded={!isClearingAllCache}
1123 />
1124 <Button
1125 buttonType="secondary"
1126 label="Open Process Manager"
1127 className="settings__open-settings-cache-button"
1128 onClick={openProcessManager}
1129 />
1130 </div>
1080 </div> 1131 </div>
1081 </div> 1132 </div>
1082 </div> 1133 </div>