aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Vijay Aravamudhan <vraravam@users.noreply.github.com>2023-05-27 18:48:38 +0530
committerLibravatar GitHub <noreply@github.com>2023-05-27 18:48:38 +0530
commiteaa8e80efadc55d42462af0a5381f2552acc3c88 (patch)
treeb54868af925e2db3fc6d5444475cd14bd3255f1c /src
parentupdate react version to 18.2.0 and it related changes (diff)
downloadferdium-app-eaa8e80efadc55d42462af0a5381f2552acc3c88.tar.gz
ferdium-app-eaa8e80efadc55d42462af0a5381f2552acc3c88.tar.zst
ferdium-app-eaa8e80efadc55d42462af0a5381f2552acc3c88.zip
Expose "Clear service cache" in the service settings screen and the sidebar context menu for individual services (#1053)
Diffstat (limited to 'src')
-rw-r--r--src/components/layout/Sidebar.tsx2
-rw-r--r--src/components/services/tabs/TabBarSortableList.tsx3
-rw-r--r--src/components/services/tabs/TabItem.tsx7
-rw-r--r--src/components/services/tabs/Tabbar.tsx3
-rw-r--r--src/components/settings/services/EditServiceForm.tsx12
-rw-r--r--src/components/settings/settings/EditSettingsForm.tsx6
-rw-r--r--src/containers/layout/AppLayoutContainer.tsx2
-rw-r--r--src/containers/settings/EditServiceScreen.tsx11
-rw-r--r--src/i18n/globalMessages.ts4
-rw-r--r--src/i18n/locales/en-US.json2
10 files changed, 46 insertions, 6 deletions
diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx
index 4eb18485f..fac424477 100644
--- a/src/components/layout/Sidebar.tsx
+++ b/src/components/layout/Sidebar.tsx
@@ -98,6 +98,7 @@ interface IProps extends WrappedComponentProps {
98 toggleAudio: (args: { serviceId: string }) => void; 98 toggleAudio: (args: { serviceId: string }) => void;
99 toggleDarkMode: (args: { serviceId: string }) => void; 99 toggleDarkMode: (args: { serviceId: string }) => void;
100 deleteService: (args: { serviceId: string }) => void; 100 deleteService: (args: { serviceId: string }) => void;
101 clearCache: (args: { serviceId: string }) => void;
101 hibernateService: (args: { serviceId: string }) => void; 102 hibernateService: (args: { serviceId: string }) => void;
102 wakeUpService: (args: { serviceId: string }) => void; 103 wakeUpService: (args: { serviceId: string }) => void;
103 updateService: (args: { 104 updateService: (args: {
@@ -204,6 +205,7 @@ class Sidebar extends Component<IProps, IState> {
204 toggleDarkMode={this.props.toggleDarkMode} 205 toggleDarkMode={this.props.toggleDarkMode}
205 deleteService={this.props.deleteService} 206 deleteService={this.props.deleteService}
206 updateService={this.props.updateService} 207 updateService={this.props.updateService}
208 clearCache={this.props.clearCache}
207 hibernateService={this.props.hibernateService} 209 hibernateService={this.props.hibernateService}
208 wakeUpService={this.props.wakeUpService} 210 wakeUpService={this.props.wakeUpService}
209 /> 211 />
diff --git a/src/components/services/tabs/TabBarSortableList.tsx b/src/components/services/tabs/TabBarSortableList.tsx
index bb889ebef..5f711c30d 100644
--- a/src/components/services/tabs/TabBarSortableList.tsx
+++ b/src/components/services/tabs/TabBarSortableList.tsx
@@ -17,6 +17,7 @@ interface IProps {
17 toggleAudio: (args: { serviceId: string }) => void; 17 toggleAudio: (args: { serviceId: string }) => void;
18 toggleDarkMode: (args: { serviceId: string }) => void; 18 toggleDarkMode: (args: { serviceId: string }) => void;
19 deleteService: (args: { serviceId: string }) => void; 19 deleteService: (args: { serviceId: string }) => void;
20 clearCache: (args: { serviceId: string }) => void;
20 disableService: (args: { serviceId: string }) => void; 21 disableService: (args: { serviceId: string }) => void;
21 enableService: (args: { serviceId: string }) => void; 22 enableService: (args: { serviceId: string }) => void;
22 hibernateService: (args: { serviceId: string }) => void; 23 hibernateService: (args: { serviceId: string }) => void;
@@ -34,6 +35,7 @@ class TabBarSortableList extends Component<IProps> {
34 toggleAudio, 35 toggleAudio,
35 toggleDarkMode, 36 toggleDarkMode,
36 deleteService, 37 deleteService,
38 clearCache,
37 disableService, 39 disableService,
38 enableService, 40 enableService,
39 hibernateService, 41 hibernateService,
@@ -61,6 +63,7 @@ class TabBarSortableList extends Component<IProps> {
61 toggleAudio={() => toggleAudio({ serviceId: service.id })} 63 toggleAudio={() => toggleAudio({ serviceId: service.id })}
62 toggleDarkMode={() => toggleDarkMode({ serviceId: service.id })} 64 toggleDarkMode={() => toggleDarkMode({ serviceId: service.id })}
63 deleteService={() => deleteService({ serviceId: service.id })} 65 deleteService={() => deleteService({ serviceId: service.id })}
66 clearCache={() => clearCache({ serviceId: service.id })}
64 disableService={() => disableService({ serviceId: service.id })} 67 disableService={() => disableService({ serviceId: service.id })}
65 enableService={() => enableService({ serviceId: service.id })} 68 enableService={() => enableService({ serviceId: service.id })}
66 hibernateService={() => hibernateService({ serviceId: service.id })} 69 hibernateService={() => hibernateService({ serviceId: service.id })}
diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx
index 2ed595919..289597db9 100644
--- a/src/components/services/tabs/TabItem.tsx
+++ b/src/components/services/tabs/TabItem.tsx
@@ -129,6 +129,7 @@ interface IProps extends WrappedComponentProps, WithStylesProps<typeof styles> {
129 toggleDarkMode: () => void; 129 toggleDarkMode: () => void;
130 openSettings: (args: { path: string }) => void; 130 openSettings: (args: { path: string }) => void;
131 deleteService: () => void; 131 deleteService: () => void;
132 clearCache: () => void;
132 disableService: () => void; 133 disableService: () => void;
133 enableService: () => void; 134 enableService: () => void;
134 hibernateService: () => void; 135 hibernateService: () => void;
@@ -220,6 +221,7 @@ class TabItem extends Component<IProps, IState> {
220 toggleAudio, 221 toggleAudio,
221 toggleDarkMode, 222 toggleDarkMode,
222 deleteService, 223 deleteService,
224 clearCache,
223 disableService, 225 disableService,
224 enableService, 226 enableService,
225 hibernateService, 227 hibernateService,
@@ -298,6 +300,11 @@ class TabItem extends Component<IProps, IState> {
298 enabled: service.isEnabled && service.canHibernate, 300 enabled: service.isEnabled && service.canHibernate,
299 }, 301 },
300 { 302 {
303 label: intl.formatMessage(globalMessages.clearCache),
304 click: () => clearCache(),
305 enabled: service.isEnabled,
306 },
307 {
301 type: 'separator', 308 type: 'separator',
302 }, 309 },
303 { 310 {
diff --git a/src/components/services/tabs/Tabbar.tsx b/src/components/services/tabs/Tabbar.tsx
index e3b5a7ba9..f09877b2f 100644
--- a/src/components/services/tabs/Tabbar.tsx
+++ b/src/components/services/tabs/Tabbar.tsx
@@ -20,6 +20,7 @@ interface IProps {
20 toggleAudio: (args: { serviceId: string }) => void; 20 toggleAudio: (args: { serviceId: string }) => void;
21 toggleDarkMode: (args: { serviceId: string }) => void; 21 toggleDarkMode: (args: { serviceId: string }) => void;
22 deleteService: (args: { serviceId: string }) => void; 22 deleteService: (args: { serviceId: string }) => void;
23 clearCache: (args: { serviceId: string }) => void;
23 hibernateService: (args: { serviceId: string }) => void; 24 hibernateService: (args: { serviceId: string }) => void;
24 wakeUpService: (args: { serviceId: string }) => void; 25 wakeUpService: (args: { serviceId: string }) => void;
25 updateService: (args: { 26 updateService: (args: {
@@ -86,6 +87,7 @@ class TabBar extends Component<IProps> {
86 toggleAudio, 87 toggleAudio,
87 toggleDarkMode, 88 toggleDarkMode,
88 deleteService, 89 deleteService,
90 clearCache,
89 useHorizontalStyle, 91 useHorizontalStyle,
90 showMessageBadgeWhenMutedSetting, 92 showMessageBadgeWhenMutedSetting,
91 showServiceNameSetting, 93 showServiceNameSetting,
@@ -108,6 +110,7 @@ class TabBar extends Component<IProps> {
108 toggleAudio={toggleAudio} 110 toggleAudio={toggleAudio}
109 toggleDarkMode={toggleDarkMode} 111 toggleDarkMode={toggleDarkMode}
110 deleteService={deleteService} 112 deleteService={deleteService}
113 clearCache={clearCache}
111 disableService={args => this.disableService(args)} 114 disableService={args => this.disableService(args)}
112 enableService={args => this.enableService(args)} 115 enableService={args => this.enableService(args)}
113 hibernateService={args => this.hibernateService(args)} 116 hibernateService={args => this.hibernateService(args)}
diff --git a/src/components/settings/services/EditServiceForm.tsx b/src/components/settings/services/EditServiceForm.tsx
index c04a53b50..520cb3c46 100644
--- a/src/components/settings/services/EditServiceForm.tsx
+++ b/src/components/settings/services/EditServiceForm.tsx
@@ -156,6 +156,7 @@ interface IProps extends WrappedComponentProps {
156 form: Form; 156 form: Form;
157 onSubmit: (...args: any[]) => void; 157 onSubmit: (...args: any[]) => void;
158 onDelete: () => void; 158 onDelete: () => void;
159 onClearCache: () => void;
159 openRecipeFile: (recipeFile: string) => void; 160 openRecipeFile: (recipeFile: string) => void;
160 isSaving: boolean; 161 isSaving: boolean;
161 isDeleting: boolean; 162 isDeleting: boolean;
@@ -223,6 +224,7 @@ class EditServiceForm extends Component<IProps, IState> {
223 isSaving, 224 isSaving,
224 isDeleting, 225 isDeleting,
225 onDelete, 226 onDelete,
227 onClearCache,
226 openRecipeFile, 228 openRecipeFile,
227 isProxyFeatureEnabled, 229 isProxyFeatureEnabled,
228 intl, 230 intl,
@@ -246,6 +248,15 @@ class EditServiceForm extends Component<IProps, IState> {
246 /> 248 />
247 ); 249 );
248 250
251 const clearCacheButton = (
252 <Button
253 buttonType="secondary"
254 label={intl.formatMessage(globalMessages.clearCache)}
255 className="settings__open-settings-cache-button"
256 onClick={onClearCache}
257 />
258 );
259
249 let activeTabIndex = 0; 260 let activeTabIndex = 0;
250 if (recipe.hasHostedOption && service?.team) { 261 if (recipe.hasHostedOption && service?.team) {
251 activeTabIndex = 1; 262 activeTabIndex = 1;
@@ -502,6 +513,7 @@ class EditServiceForm extends Component<IProps, IState> {
502 <div className="settings__controls"> 513 <div className="settings__controls">
503 {/* Delete Button */} 514 {/* Delete Button */}
504 <div>{action === 'edit' && deleteButton}</div> 515 <div>{action === 'edit' && deleteButton}</div>
516 <div>{action === 'edit' && clearCacheButton}</div>
505 517
506 {/* Save Button */} 518 {/* Save Button */}
507 {isSaving || isValidatingCustomUrl ? ( 519 {isSaving || isValidatingCustomUrl ? (
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx
index 49798dd92..39c25f529 100644
--- a/src/components/settings/settings/EditSettingsForm.tsx
+++ b/src/components/settings/settings/EditSettingsForm.tsx
@@ -189,10 +189,6 @@ const messages = defineMessages({
189 id: 'settings.app.cacheNotCleared', 189 id: 'settings.app.cacheNotCleared',
190 defaultMessage: "Couldn't clear all cache", 190 defaultMessage: "Couldn't clear all cache",
191 }, 191 },
192 buttonClearAllCache: {
193 id: 'settings.app.buttonClearAllCache',
194 defaultMessage: 'Clear cache',
195 },
196 subheadlineFerdiumProfile: { 192 subheadlineFerdiumProfile: {
197 id: 'settings.app.subheadlineFerdiumProfile', 193 id: 'settings.app.subheadlineFerdiumProfile',
198 defaultMessage: 'Ferdium Profile', 194 defaultMessage: 'Ferdium Profile',
@@ -974,7 +970,7 @@ class EditSettingsForm extends Component<IProps, IState> {
974 <div className="settings__open-settings-cache-container"> 970 <div className="settings__open-settings-cache-container">
975 <Button 971 <Button
976 buttonType="secondary" 972 buttonType="secondary"
977 label={intl.formatMessage(messages.buttonClearAllCache)} 973 label={intl.formatMessage(globalMessages.clearCache)}
978 className="settings__open-settings-cache-button" 974 className="settings__open-settings-cache-button"
979 onClick={() => { 975 onClick={() => {
980 onClearAllCache(); 976 onClearAllCache();
diff --git a/src/containers/layout/AppLayoutContainer.tsx b/src/containers/layout/AppLayoutContainer.tsx
index b077cebd7..1cffc7ad1 100644
--- a/src/containers/layout/AppLayoutContainer.tsx
+++ b/src/containers/layout/AppLayoutContainer.tsx
@@ -42,6 +42,7 @@ class AppLayoutContainer extends Component<IProps> {
42 toggleDarkMode, 42 toggleDarkMode,
43 deleteService, 43 deleteService,
44 updateService, 44 updateService,
45 clearCache,
45 hibernate, 46 hibernate,
46 awake, 47 awake,
47 } = this.props.actions.service; 48 } = this.props.actions.service;
@@ -97,6 +98,7 @@ class AppLayoutContainer extends Component<IProps> {
97 toggleDarkMode={toggleDarkMode} 98 toggleDarkMode={toggleDarkMode}
98 deleteService={deleteService} 99 deleteService={deleteService}
99 updateService={updateService} 100 updateService={updateService}
101 clearCache={clearCache}
100 hibernateService={hibernate} 102 hibernateService={hibernate}
101 wakeUpService={awake} 103 wakeUpService={awake}
102 toggleMuteApp={toggleMuteApp} 104 toggleMuteApp={toggleMuteApp}
diff --git a/src/containers/settings/EditServiceScreen.tsx b/src/containers/settings/EditServiceScreen.tsx
index 0a079c608..3b9d3ee43 100644
--- a/src/containers/settings/EditServiceScreen.tsx
+++ b/src/containers/settings/EditServiceScreen.tsx
@@ -468,6 +468,16 @@ class EditServiceScreen extends Component<IProps> {
468 } 468 }
469 } 469 }
470 470
471 clearCache(): void {
472 const { action } = this.props.params;
473
474 if (action === 'edit') {
475 const { clearCache } = this.props.actions.service;
476 const { activeSettings: service } = this.props.stores.services;
477 clearCache({ serviceId: service?.id });
478 }
479 }
480
471 openRecipeFile(file: any): void { 481 openRecipeFile(file: any): void {
472 const { openRecipeFile } = this.props.actions.service; 482 const { openRecipeFile } = this.props.actions.service;
473 const { action } = this.props.params; 483 const { action } = this.props.params;
@@ -534,6 +544,7 @@ class EditServiceScreen extends Component<IProps> {
534 isDeleting={services.deleteServiceRequest.isExecuting} 544 isDeleting={services.deleteServiceRequest.isExecuting}
535 onSubmit={d => this.onSubmit(d)} 545 onSubmit={d => this.onSubmit(d)}
536 onDelete={() => this.deleteService()} 546 onDelete={() => this.deleteService()}
547 onClearCache={() => this.clearCache()}
537 openRecipeFile={file => this.openRecipeFile(file)} 548 openRecipeFile={file => this.openRecipeFile(file)}
538 isProxyFeatureEnabled={proxyFeature.isEnabled} 549 isProxyFeatureEnabled={proxyFeature.isEnabled}
539 /> 550 />
diff --git a/src/i18n/globalMessages.ts b/src/i18n/globalMessages.ts
index 690bad1de..9f55da57a 100644
--- a/src/i18n/globalMessages.ts
+++ b/src/i18n/globalMessages.ts
@@ -74,4 +74,8 @@ export default defineMessages({
74 id: 'global.edit', 74 id: 'global.edit',
75 defaultMessage: 'Edit', 75 defaultMessage: 'Edit',
76 }, 76 },
77 clearCache: {
78 id: 'global.clearCache',
79 defaultMessage: 'Clear cache',
80 },
77}); 81});
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 13fec6102..82c0f1b02 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -22,6 +22,7 @@
22 "feature.quickSwitch.title": "QuickSwitch", 22 "feature.quickSwitch.title": "QuickSwitch",
23 "global.api.unhealthy": "Can't connect to {serverNameParse} online services", 23 "global.api.unhealthy": "Can't connect to {serverNameParse} online services",
24 "global.cancel": "Cancel", 24 "global.cancel": "Cancel",
25 "global.clearCache": "Clear cache",
25 "global.edit": "Edit", 26 "global.edit": "Edit",
26 "global.no": "No", 27 "global.no": "No",
27 "global.notConnectedToTheInternet": "You are not connected to the internet.", 28 "global.notConnectedToTheInternet": "You are not connected to the internet.",
@@ -183,7 +184,6 @@
183 "settings.account.userInfoRequestFailed": "Could not load user information", 184 "settings.account.userInfoRequestFailed": "Could not load user information",
184 "settings.account.yourLicense": "Your Ferdium License:", 185 "settings.account.yourLicense": "Your Ferdium License:",
185 "settings.app.accentColorInfo": "Write your color choice in a CSS-compatible format. (Default: {defaultAccentColor} or clear the input field)", 186 "settings.app.accentColorInfo": "Write your color choice in a CSS-compatible format. (Default: {defaultAccentColor} or clear the input field)",
186 "settings.app.buttonClearAllCache": "Clear cache",
187 "settings.app.buttonInstallUpdate": "Restart & install update", 187 "settings.app.buttonInstallUpdate": "Restart & install update",
188 "settings.app.buttonOpenFerdiumProfileFolder": "Open Profile folder", 188 "settings.app.buttonOpenFerdiumProfileFolder": "Open Profile folder",
189 "settings.app.buttonOpenFerdiumServiceRecipesFolder": "Open Service Recipes folder", 189 "settings.app.buttonOpenFerdiumServiceRecipesFolder": "Open Service Recipes folder",