diff options
author | Vijay Aravamudhan <vraravam@users.noreply.github.com> | 2023-05-27 18:48:38 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-27 18:48:38 +0530 |
commit | eaa8e80efadc55d42462af0a5381f2552acc3c88 (patch) | |
tree | b54868af925e2db3fc6d5444475cd14bd3255f1c /src | |
parent | update react version to 18.2.0 and it related changes (diff) | |
download | ferdium-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.tsx | 2 | ||||
-rw-r--r-- | src/components/services/tabs/TabBarSortableList.tsx | 3 | ||||
-rw-r--r-- | src/components/services/tabs/TabItem.tsx | 7 | ||||
-rw-r--r-- | src/components/services/tabs/Tabbar.tsx | 3 | ||||
-rw-r--r-- | src/components/settings/services/EditServiceForm.tsx | 12 | ||||
-rw-r--r-- | src/components/settings/settings/EditSettingsForm.tsx | 6 | ||||
-rw-r--r-- | src/containers/layout/AppLayoutContainer.tsx | 2 | ||||
-rw-r--r-- | src/containers/settings/EditServiceScreen.tsx | 11 | ||||
-rw-r--r-- | src/i18n/globalMessages.ts | 4 | ||||
-rw-r--r-- | src/i18n/locales/en-US.json | 2 |
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", |