aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/auth/Invite.tsx2
-rw-r--r--src/components/auth/SetupAssistant.tsx2
-rw-r--r--src/components/layout/AppLayout.tsx11
-rw-r--r--src/components/services/content/ConnectionLostBanner.tsx9
-rw-r--r--src/components/services/content/ServiceView.tsx10
-rw-r--r--src/components/services/content/ServiceWebview.tsx6
-rw-r--r--src/components/services/content/Services.tsx12
-rw-r--r--src/components/settings/navigation/SettingsNavigation.tsx2
-rw-r--r--src/components/settings/services/ServiceItem.tsx2
-rw-r--r--src/components/settings/services/ServicesDashboard.tsx6
-rw-r--r--src/components/settings/settings/EditSettingsForm.tsx9
-rw-r--r--src/components/settings/team/TeamDashboard.tsx2
-rw-r--r--src/components/ui/AppLoader/styles.ts9
-rw-r--r--src/components/ui/Infobox.tsx2
-rw-r--r--src/components/ui/Loader.tsx2
-rw-r--r--src/components/ui/Radio.tsx2
-rw-r--r--src/components/ui/Select.tsx4
-rw-r--r--src/components/ui/ServiceIcon.tsx2
-rw-r--r--src/components/ui/Slider.tsx2
-rw-r--r--src/components/ui/StatusBarTargetUrl.tsx2
-rw-r--r--src/components/ui/infobox/index.tsx2
-rw-r--r--src/components/ui/input/index.tsx2
-rw-r--r--src/components/ui/select/index.tsx17
-rw-r--r--src/components/ui/textarea/index.tsx2
-rw-r--r--src/components/ui/toggle/index.tsx9
-rw-r--r--src/containers/auth/SetupAssistantScreen.tsx2
-rw-r--r--src/containers/layout/AppLayoutContainer.tsx4
-rw-r--r--src/containers/settings/EditServiceScreen.tsx6
-rw-r--r--src/containers/settings/ServicesScreen.tsx8
-rw-r--r--src/features/appearance/index.ts6
-rw-r--r--src/features/todos/components/TodosWebview.tsx2
-rw-r--r--src/features/todos/containers/TodosScreen.tsx2
-rw-r--r--src/features/todos/store.ts2
-rw-r--r--src/features/webControls/components/WebControls.tsx13
-rw-r--r--src/features/workspaces/components/WorkspaceDrawerItem.tsx9
-rw-r--r--src/features/workspaces/components/WorkspaceItem.tsx2
-rw-r--r--src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx9
-rw-r--r--src/features/workspaces/components/WorkspacesDashboard.tsx2
-rw-r--r--src/features/workspaces/store.ts4
-rw-r--r--src/helpers/userAgent-helpers.ts2
-rw-r--r--src/index.ts1
-rw-r--r--src/jsUtils.ts2
-rw-r--r--src/models/Recipe.ts4
-rw-r--r--src/stores/AppStore.ts4
-rw-r--r--src/stores/GlobalErrorStore.ts2
-rw-r--r--src/stores/ServicesStore.ts4
-rw-r--r--src/stores/UserStore.ts2
-rw-r--r--src/stores/index.ts2
48 files changed, 112 insertions, 112 deletions
diff --git a/src/components/auth/Invite.tsx b/src/components/auth/Invite.tsx
index cebef9365..4f2cb19fe 100644
--- a/src/components/auth/Invite.tsx
+++ b/src/components/auth/Invite.tsx
@@ -86,7 +86,7 @@ class Invite extends Component<IProps, IState> {
86 }, 86 },
87 }, 87 },
88 }), 88 }),
89 // TODO - [TS DEBT] need to fix this type once mobx-react-form is updated to next version 89 // TODO: [TS DEBT] need to fix this type once mobx-react-form is updated to next version
90 ] as any, 90 ] as any,
91 }, 91 },
92 }); 92 });
diff --git a/src/components/auth/SetupAssistant.tsx b/src/components/auth/SetupAssistant.tsx
index c5fb79919..fdcbba45e 100644
--- a/src/components/auth/SetupAssistant.tsx
+++ b/src/components/auth/SetupAssistant.tsx
@@ -135,7 +135,7 @@ const styles = theme => ({
135interface IProps extends WithStylesProps<typeof styles>, WrappedComponentProps { 135interface IProps extends WithStylesProps<typeof styles>, WrappedComponentProps {
136 onSubmit: (...args: any[]) => void; 136 onSubmit: (...args: any[]) => void;
137 isInviteSuccessful?: boolean; 137 isInviteSuccessful?: boolean;
138 services: any; // TODO - [TS DEBT] check legacy services type 138 services: any; // TODO: [TS DEBT] check legacy services type
139 isSettingUpServices: boolean; 139 isSettingUpServices: boolean;
140} 140}
141 141
diff --git a/src/components/layout/AppLayout.tsx b/src/components/layout/AppLayout.tsx
index 86b4e787e..97795212a 100644
--- a/src/components/layout/AppLayout.tsx
+++ b/src/components/layout/AppLayout.tsx
@@ -14,7 +14,6 @@ import { Component as PublishDebugInfo } from '../../features/publishDebugInfo';
14import ErrorBoundary from '../util/ErrorBoundary'; 14import ErrorBoundary from '../util/ErrorBoundary';
15import { updateVersionParse } from '../../helpers/update-helpers'; 15import { updateVersionParse } from '../../helpers/update-helpers';
16 16
17// import globalMessages from '../../i18n/globalMessages';
18import { isMac, isWindows } from '../../environment'; 17import { isMac, isWindows } from '../../environment';
19import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; 18import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator';
20import { workspaceStore } from '../../features/workspaces'; 19import { workspaceStore } from '../../features/workspaces';
@@ -45,13 +44,11 @@ const messages = defineMessages({
45 }, 44 },
46}); 45});
47 46
48let transition = 'none'; 47const transition = window?.matchMedia('(prefers-reduced-motion: no-preference)')
48 ? 'transform 0.5s ease'
49 : 'none';
49 50
50if (window && window.matchMedia('(prefers-reduced-motion: no-preference)')) { 51const styles = (theme: { workspaces: { drawer: { width: any } } }) => ({
51 transition = 'transform 0.5s ease';
52}
53
54const styles = theme => ({
55 appContent: { 52 appContent: {
56 // width: `calc(100% + ${theme.workspaces.drawer.width}px)`, 53 // width: `calc(100% + ${theme.workspaces.drawer.width}px)`,
57 width: '100%', 54 width: '100%',
diff --git a/src/components/services/content/ConnectionLostBanner.tsx b/src/components/services/content/ConnectionLostBanner.tsx
index 88731f3b9..7040337f0 100644
--- a/src/components/services/content/ConnectionLostBanner.tsx
+++ b/src/components/services/content/ConnectionLostBanner.tsx
@@ -21,10 +21,11 @@ const messages = defineMessages({
21 }, 21 },
22}); 22});
23 23
24const buttonTransition = 24const buttonTransition = window?.matchMedia(
25 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 25 '(prefers-reduced-motion: no-preference)',
26 ? 'opacity 0.25s' 26)
27 : 'none'; 27 ? 'opacity 0.25s'
28 : 'none';
28 29
29const styles = theme => ({ 30const styles = theme => ({
30 root: { 31 root: {
diff --git a/src/components/services/content/ServiceView.tsx b/src/components/services/content/ServiceView.tsx
index 0754bccc5..19dcdd07a 100644
--- a/src/components/services/content/ServiceView.tsx
+++ b/src/components/services/content/ServiceView.tsx
@@ -21,7 +21,7 @@ interface IProps {
21 reload: () => void; 21 reload: () => void;
22 edit: () => void; 22 edit: () => void;
23 enable: () => void; 23 enable: () => void;
24 // isActive?: boolean; // TODO - [TECH DEBT][PROP NOT USED IN COMPONENT] check it 24 // isActive?: boolean; // TODO: [TECH DEBT][PROP NOT USED IN COMPONENT] check it
25 stores?: RealStores; 25 stores?: RealStores;
26 isSpellcheckerEnabled: boolean; 26 isSpellcheckerEnabled: boolean;
27} 27}
@@ -35,7 +35,7 @@ interface IState {
35@inject('stores', 'actions') 35@inject('stores', 'actions')
36@observer 36@observer
37class ServiceView extends Component<IProps, IState> { 37class ServiceView extends Component<IProps, IState> {
38 // hibernationTimer = null; // TODO - [TS DEBT] class property not reassigned, need to find its purpose 38 // hibernationTimer = null; // TODO: [TS DEBT] class property not reassigned, need to find its purpose
39 39
40 autorunDisposer: IReactionDisposer | undefined; 40 autorunDisposer: IReactionDisposer | undefined;
41 41
@@ -65,7 +65,7 @@ class ServiceView extends Component<IProps, IState> {
65 componentWillUnmount() { 65 componentWillUnmount() {
66 this.autorunDisposer!(); 66 this.autorunDisposer!();
67 clearTimeout(this.forceRepaintTimeout!); 67 clearTimeout(this.forceRepaintTimeout!);
68 // clearTimeout(this.hibernationTimer); // TODO - [TS DEBT] class property not reassigned, need to find its purpose 68 // clearTimeout(this.hibernationTimer); // TODO: [TS DEBT] class property not reassigned, need to find its purpose
69 } 69 }
70 70
71 render() { 71 render() {
@@ -111,7 +111,7 @@ class ServiceView extends Component<IProps, IState> {
111 {service.hasCrashed && ( 111 {service.hasCrashed && (
112 <WebviewCrashHandler 112 <WebviewCrashHandler
113 name={service.recipe.name} 113 name={service.recipe.name}
114 // webview={service.webview} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it 114 // webview={service.webview} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it
115 reload={reload} 115 reload={reload}
116 /> 116 />
117 )} 117 )}
@@ -177,7 +177,7 @@ class ServiceView extends Component<IProps, IState> {
177 {service.isActive && ( 177 {service.isActive && (
178 <ServiceDisabled 178 <ServiceDisabled
179 name={service.name === '' ? service.recipe.name : service.name} 179 name={service.name === '' ? service.recipe.name : service.name}
180 // webview={service.webview} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it 180 // webview={service.webview} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it
181 enable={enable} 181 enable={enable}
182 /> 182 />
183 )} 183 )}
diff --git a/src/components/services/content/ServiceWebview.tsx b/src/components/services/content/ServiceWebview.tsx
index ac8d1ea66..008e1b227 100644
--- a/src/components/services/content/ServiceWebview.tsx
+++ b/src/components/services/content/ServiceWebview.tsx
@@ -32,7 +32,7 @@ class ServiceWebview extends Component<IProps> {
32 reaction( 32 reaction(
33 () => this.webview, 33 () => this.webview,
34 () => { 34 () => {
35 if (this.webview && this.webview.view) { 35 if (this.webview?.view) {
36 this.webview.view.addEventListener('console-message', e => { 36 this.webview.view.addEventListener('console-message', e => {
37 debug('Service logged a message:', e.message); 37 debug('Service logged a message:', e.message);
38 }); 38 });
@@ -97,7 +97,7 @@ class ServiceWebview extends Component<IProps> {
97 <ElectronWebView 97 <ElectronWebView
98 ref={webview => { 98 ref={webview => {
99 this._setWebview(webview); 99 this._setWebview(webview);
100 if (webview && webview.view) { 100 if (webview?.view) {
101 webview.view.addEventListener( 101 webview.view.addEventListener(
102 'did-stop-loading', 102 'did-stop-loading',
103 this.refocusWebview, 103 this.refocusWebview,
@@ -122,7 +122,7 @@ class ServiceWebview extends Component<IProps> {
122 }); 122 });
123 }, 0); 123 }, 0);
124 }} 124 }}
125 // onUpdateTargetUrl={this.updateTargetUrl} // TODO - [TS DEBT] need to check where its from 125 // onUpdateTargetUrl={this.updateTargetUrl} // TODO: [TS DEBT] need to check where its from
126 useragent={service.userAgent} 126 useragent={service.userAgent}
127 disablewebsecurity={ 127 disablewebsecurity={
128 service.recipe.disablewebsecurity ? true : undefined 128 service.recipe.disablewebsecurity ? true : undefined
diff --git a/src/components/services/content/Services.tsx b/src/components/services/content/Services.tsx
index fa26edaa6..5766e0d75 100644
--- a/src/components/services/content/Services.tsx
+++ b/src/components/services/content/Services.tsx
@@ -42,8 +42,8 @@ interface IProps extends WrappedComponentProps, WithStylesProps<typeof styles> {
42 services?: Service[]; 42 services?: Service[];
43 setWebviewReference: () => void; 43 setWebviewReference: () => void;
44 detachService: () => void; 44 detachService: () => void;
45 // handleIPCMessage: () => void; // TODO - [TECH DEBT] later check it 45 // handleIPCMessage: () => void; // TODO: [TECH DEBT] later check it
46 // openWindow: () => void; // TODO - [TECH DEBT] later check it 46 // openWindow: () => void; // TODO: [TECH DEBT] later check it
47 reload: (options: { serviceId: string }) => void; 47 reload: (options: { serviceId: string }) => void;
48 openSettings: (options: { path: string }) => void; 48 openSettings: (options: { path: string }) => void;
49 update: (options: { 49 update: (options: {
@@ -88,10 +88,10 @@ class Services extends Component<IProps, IState> {
88 render(): ReactElement { 88 render(): ReactElement {
89 const { 89 const {
90 services = [], 90 services = [],
91 // handleIPCMessage, // TODO - [TECH DEBT] later check it 91 // handleIPCMessage, // TODO: [TECH DEBT] later check it
92 setWebviewReference, 92 setWebviewReference,
93 detachService, 93 detachService,
94 // openWindow, // TODO - [TECH DEBT] later check it 94 // openWindow, // TODO: [TECH DEBT] later check it
95 reload, 95 reload,
96 openSettings, 96 openSettings,
97 update, 97 update,
@@ -136,10 +136,10 @@ class Services extends Component<IProps, IState> {
136 <ServiceView 136 <ServiceView
137 key={service.id} 137 key={service.id}
138 service={service} 138 service={service}
139 // handleIPCMessage={handleIPCMessage} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] later check it 139 // handleIPCMessage={handleIPCMessage} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] later check it
140 setWebviewRef={setWebviewReference} 140 setWebviewRef={setWebviewReference}
141 detachService={detachService} 141 detachService={detachService}
142 // openWindow={openWindow} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] later check it 142 // openWindow={openWindow} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] later check it
143 reload={() => reload({ serviceId: service.id })} 143 reload={() => reload({ serviceId: service.id })}
144 edit={() => openSettings({ path: `services/edit/${service.id}` })} 144 edit={() => openSettings({ path: `services/edit/${service.id}` })}
145 enable={() => 145 enable={() =>
diff --git a/src/components/settings/navigation/SettingsNavigation.tsx b/src/components/settings/navigation/SettingsNavigation.tsx
index 4e2c7f410..6ffaa411f 100644
--- a/src/components/settings/navigation/SettingsNavigation.tsx
+++ b/src/components/settings/navigation/SettingsNavigation.tsx
@@ -187,7 +187,7 @@ class SettingsNavigation extends Component<IProps> {
187 <button 187 <button
188 type="button" 188 type="button"
189 // @ts-ignore 189 // @ts-ignore
190 to="/auth/logout" // TODO - [TS DEBT] Need to check if button take this prop 190 to="/auth/logout" // TODO: [TS DEBT] Need to check if button take this prop
191 className="settings-navigation__link" 191 className="settings-navigation__link"
192 onClick={this.handleLogout.bind(this)} 192 onClick={this.handleLogout.bind(this)}
193 > 193 >
diff --git a/src/components/settings/services/ServiceItem.tsx b/src/components/settings/services/ServiceItem.tsx
index 0737a680c..bf2dfa9da 100644
--- a/src/components/settings/services/ServiceItem.tsx
+++ b/src/components/settings/services/ServiceItem.tsx
@@ -32,7 +32,7 @@ class ServiceItem extends Component<IProps> {
32 render(): ReactElement { 32 render(): ReactElement {
33 const { 33 const {
34 service, 34 service,
35 // toggleAction, // TODO - [TECH DEBT][PROP NOT USED IN COMPONENT] check it later 35 // toggleAction, // TODO: [TECH DEBT][PROP NOT USED IN COMPONENT] check it later
36 goToServiceForm, 36 goToServiceForm,
37 } = this.props; 37 } = this.props;
38 const { intl } = this.props; 38 const { intl } = this.props;
diff --git a/src/components/settings/services/ServicesDashboard.tsx b/src/components/settings/services/ServicesDashboard.tsx
index 36057902f..d64779a36 100644
--- a/src/components/settings/services/ServicesDashboard.tsx
+++ b/src/components/settings/services/ServicesDashboard.tsx
@@ -54,7 +54,7 @@ const messages = defineMessages({
54interface IProps extends WrappedComponentProps { 54interface IProps extends WrappedComponentProps {
55 services: Service[]; 55 services: Service[];
56 isLoading: boolean; 56 isLoading: boolean;
57 // toggleService: any; // TODO - - [TECH DEBT] check it later 57 // toggleService: any; // TODO: [TECH DEBT] check it later
58 filterServices: any; 58 filterServices: any;
59 resetFilter: () => void; 59 resetFilter: () => void;
60 goTo: (to: To, state?: any) => void; 60 goTo: (to: To, state?: any) => void;
@@ -70,7 +70,7 @@ class ServicesDashboard extends Component<IProps> {
70 const { 70 const {
71 services, 71 services,
72 isLoading, 72 isLoading,
73 // toggleService, // TODO - - [TECH DEBT] check it later 73 // toggleService, // TODO: [TECH DEBT] check it later
74 filterServices, 74 filterServices,
75 resetFilter, 75 resetFilter,
76 goTo, 76 goTo,
@@ -163,7 +163,7 @@ class ServicesDashboard extends Component<IProps> {
163 <ServiceItem 163 <ServiceItem
164 key={service.id} 164 key={service.id}
165 service={service} 165 service={service}
166 // TODO - - [TECH DEBT][PROPS NOT USED IN COMPONENT] check it later 166 // TODO: [TECH DEBT][PROPS NOT USED IN COMPONENT] check it later
167 // toggleAction={() => 167 // toggleAction={() =>
168 // toggleService({ serviceId: service.id }) 168 // toggleService({ serviceId: service.id })
169 // } 169 // }
diff --git a/src/components/settings/settings/EditSettingsForm.tsx b/src/components/settings/settings/EditSettingsForm.tsx
index 6ece340ba..11ae63737 100644
--- a/src/components/settings/settings/EditSettingsForm.tsx
+++ b/src/components/settings/settings/EditSettingsForm.tsx
@@ -28,7 +28,12 @@ import {
28 SPLIT_COLUMNS_MAX, 28 SPLIT_COLUMNS_MAX,
29 SPLIT_COLUMNS_MIN, 29 SPLIT_COLUMNS_MIN,
30} from '../../../config'; 30} from '../../../config';
31import { isMac, isWinPortable, isWindows, lockFerdiumShortcutKey } from '../../../environment'; 31import {
32 isMac,
33 isWinPortable,
34 isWindows,
35 lockFerdiumShortcutKey,
36} from '../../../environment';
32import { openExternalUrl, openPath } from '../../../helpers/url-helpers'; 37import { openExternalUrl, openPath } from '../../../helpers/url-helpers';
33import globalMessages from '../../../i18n/globalMessages'; 38import globalMessages from '../../../i18n/globalMessages';
34import Icon from '../../ui/icon'; 39import Icon from '../../ui/icon';
@@ -376,8 +381,6 @@ class EditSettingsForm extends Component<IProps, IState> {
376 updateButtonLabelMessage = messages.updateStatusSearching; 381 updateButtonLabelMessage = messages.updateStatusSearching;
377 } else if (isUpdateAvailable) { 382 } else if (isUpdateAvailable) {
378 updateButtonLabelMessage = messages.updateStatusAvailable; 383 updateButtonLabelMessage = messages.updateStatusAvailable;
379 } else {
380 updateButtonLabelMessage = messages.buttonSearchForUpdate;
381 } 384 }
382 385
383 const { lockingFeatureEnabled, scheduledDNDEnabled, reloadAfterResume } = 386 const { lockingFeatureEnabled, scheduledDNDEnabled, reloadAfterResume } =
diff --git a/src/components/settings/team/TeamDashboard.tsx b/src/components/settings/team/TeamDashboard.tsx
index 3ef55fac6..6fd2d4426 100644
--- a/src/components/settings/team/TeamDashboard.tsx
+++ b/src/components/settings/team/TeamDashboard.tsx
@@ -1,3 +1,5 @@
1// TODO: Is this feature even being used? If not, then we can cleanup this code
2
1import { Component, ReactElement } from 'react'; 3import { Component, ReactElement } from 'react';
2import { observer } from 'mobx-react'; 4import { observer } from 'mobx-react';
3import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl'; 5import { defineMessages, injectIntl, WrappedComponentProps } from 'react-intl';
diff --git a/src/components/ui/AppLoader/styles.ts b/src/components/ui/AppLoader/styles.ts
index 6bf3b4f3c..5ad41913a 100644
--- a/src/components/ui/AppLoader/styles.ts
+++ b/src/components/ui/AppLoader/styles.ts
@@ -1,7 +1,8 @@
1const sloganTransition = 1const sloganTransition = window?.matchMedia(
2 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 2 '(prefers-reduced-motion: no-preference)',
3 ? 'opacity 1s ease' 3)
4 : 'none'; 4 ? 'opacity 1s ease'
5 : 'none';
5 6
6export default { 7export default {
7 component: { 8 component: {
diff --git a/src/components/ui/Infobox.tsx b/src/components/ui/Infobox.tsx
index 1fc24816a..9782db151 100644
--- a/src/components/ui/Infobox.tsx
+++ b/src/components/ui/Infobox.tsx
@@ -35,7 +35,7 @@ interface IState {
35 dismissed: boolean; 35 dismissed: boolean;
36} 36}
37 37
38// Can this file be merged into the './infobox/index.tsx' file? 38// TODO: Can this file be merged into the './infobox/index.tsx' file?
39@observer 39@observer
40class Infobox extends Component<IProps, IState> { 40class Infobox extends Component<IProps, IState> {
41 constructor(props: IProps) { 41 constructor(props: IProps) {
diff --git a/src/components/ui/Loader.tsx b/src/components/ui/Loader.tsx
index 17cb35f41..37555df16 100644
--- a/src/components/ui/Loader.tsx
+++ b/src/components/ui/Loader.tsx
@@ -12,7 +12,7 @@ interface IProps {
12 children?: ReactNode; 12 children?: ReactNode;
13} 13}
14 14
15// Can this file be merged into the './loader/index.tsx' file? 15// TODO: Can this file be merged into the './loader/index.tsx' file?
16@inject('stores') 16@inject('stores')
17@observer 17@observer
18class LoaderComponent extends Component<IProps> { 18class LoaderComponent extends Component<IProps> {
diff --git a/src/components/ui/Radio.tsx b/src/components/ui/Radio.tsx
index e6cb5d5a5..b5be64c5d 100644
--- a/src/components/ui/Radio.tsx
+++ b/src/components/ui/Radio.tsx
@@ -10,7 +10,7 @@ type Props = {
10 showLabel: boolean; 10 showLabel: boolean;
11}; 11};
12 12
13// Should this file be converted into the coding style similar to './toggle/index.tsx'? 13// TODO: Should this file be converted into the coding style similar to './toggle/index.tsx'?
14class Radio extends Component<Props> { 14class Radio extends Component<Props> {
15 static defaultProps = { 15 static defaultProps = {
16 focus: false, 16 focus: false,
diff --git a/src/components/ui/Select.tsx b/src/components/ui/Select.tsx
index e8e305fdd..8ae2945ce 100644
--- a/src/components/ui/Select.tsx
+++ b/src/components/ui/Select.tsx
@@ -18,7 +18,7 @@ interface IProps {
18 multiple?: boolean; 18 multiple?: boolean;
19} 19}
20 20
21// Can this file be merged into the './select/index.tsx' file? 21// TODO: Can this file be merged into the './select/index.tsx' file?
22@observer 22@observer
23class Select extends Component<IProps> { 23class Select extends Component<IProps> {
24 private element: RefObject<HTMLSelectElement> = 24 private element: RefObject<HTMLSelectElement> =
@@ -57,7 +57,7 @@ class Select extends Component<IProps> {
57 let selected = field.value; 57 let selected = field.value;
58 58
59 if (multiple) { 59 if (multiple) {
60 if (typeof field.value === 'string' && field.value.slice(0, 1) === '[') { 60 if (typeof field.value === 'string' && field.value.startsWith('[')) {
61 // Value is JSON encoded 61 // Value is JSON encoded
62 selected = JSON.parse(field.value); 62 selected = JSON.parse(field.value);
63 } else if (typeof field.value === 'object') { 63 } else if (typeof field.value === 'object') {
diff --git a/src/components/ui/ServiceIcon.tsx b/src/components/ui/ServiceIcon.tsx
index 39a32e44d..6920611d0 100644
--- a/src/components/ui/ServiceIcon.tsx
+++ b/src/components/ui/ServiceIcon.tsx
@@ -27,7 +27,7 @@ interface IProps extends WithStylesProps<typeof styles> {
27 className?: string; 27 className?: string;
28} 28}
29 29
30// TODO - [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'? 30// TODO: [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'?
31@observer 31@observer
32class ServiceIcon extends Component<IProps> { 32class ServiceIcon extends Component<IProps> {
33 render(): ReactNode { 33 render(): ReactNode {
diff --git a/src/components/ui/Slider.tsx b/src/components/ui/Slider.tsx
index be0846513..aa351ccd2 100644
--- a/src/components/ui/Slider.tsx
+++ b/src/components/ui/Slider.tsx
@@ -12,7 +12,7 @@ interface IProps {
12 onSliderChange?: (e: ChangeEvent) => void; 12 onSliderChange?: (e: ChangeEvent) => void;
13} 13}
14 14
15// TODO - [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'? 15// TODO: [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'?
16@observer 16@observer
17class Slider extends Component<IProps> { 17class Slider extends Component<IProps> {
18 onChange(e: ChangeEvent<HTMLInputElement>): void { 18 onChange(e: ChangeEvent<HTMLInputElement>): void {
diff --git a/src/components/ui/StatusBarTargetUrl.tsx b/src/components/ui/StatusBarTargetUrl.tsx
index 7b053f410..d969267eb 100644
--- a/src/components/ui/StatusBarTargetUrl.tsx
+++ b/src/components/ui/StatusBarTargetUrl.tsx
@@ -8,7 +8,7 @@ interface IProps {
8 text?: string; 8 text?: string;
9} 9}
10 10
11// TODO - [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'? 11// TODO: [TS DEBT] Should this file be converted into the coding style similar to './toggle/index.tsx'?
12@observer 12@observer
13class StatusBarTargetUrl extends Component<IProps> { 13class StatusBarTargetUrl extends Component<IProps> {
14 render() { 14 render() {
diff --git a/src/components/ui/infobox/index.tsx b/src/components/ui/infobox/index.tsx
index 3b878a9de..28ec2ff90 100644
--- a/src/components/ui/infobox/index.tsx
+++ b/src/components/ui/infobox/index.tsx
@@ -28,7 +28,7 @@ const buttonStyles = (theme: Theme) => {
28const infoBoxTransition: string = 'none'; 28const infoBoxTransition: string = 'none';
29const ctaTransition: string = 'none'; 29const ctaTransition: string = 'none';
30 30
31// TODO: Not sure why, but this location alone, the `dinwo` is not defined - and it throws an error thus aborting the startup sequence of ferdium 31// TODO: Not sure why, but this location alone, the `window` is not defined - and it throws an error thus aborting the startup sequence of ferdium
32// if (window && window.matchMedia('(prefers-reduced-motion: no-preference)')) { 32// if (window && window.matchMedia('(prefers-reduced-motion: no-preference)')) {
33// infoBoxTransition = 'all 0.5s'; 33// infoBoxTransition = 'all 0.5s';
34// ctaTransition = 'opacity 0.3s'; 34// ctaTransition = 'opacity 0.3s';
diff --git a/src/components/ui/input/index.tsx b/src/components/ui/input/index.tsx
index fe8f35607..064c1807f 100644
--- a/src/components/ui/input/index.tsx
+++ b/src/components/ui/input/index.tsx
@@ -67,7 +67,7 @@ class Input extends Component<IProps, IState> {
67 componentDidMount(): void { 67 componentDidMount(): void {
68 const { focus = false, data = {} } = this.props; 68 const { focus = false, data = {} } = this.props;
69 69
70 if (this.inputElement && this.inputElement.current) { 70 if (this.inputElement?.current) {
71 if (focus) { 71 if (focus) {
72 this.inputElement.current.focus(); 72 this.inputElement.current.focus();
73 } 73 }
diff --git a/src/components/ui/select/index.tsx b/src/components/ui/select/index.tsx
index 695e70e28..017de5423 100644
--- a/src/components/ui/select/index.tsx
+++ b/src/components/ui/select/index.tsx
@@ -17,7 +17,7 @@ import Wrapper from '../wrapper';
17let popupTransition: string = 'none'; 17let popupTransition: string = 'none';
18let toggleTransition: string = 'none'; 18let toggleTransition: string = 'none';
19 19
20if (window && window.matchMedia('(prefers-reduced-motion: no-preference)')) { 20if (window?.matchMedia('(prefers-reduced-motion: no-preference)')) {
21 popupTransition = 'all 0.3s'; 21 popupTransition = 'all 0.3s';
22 toggleTransition = 'transform 0.3s'; 22 toggleTransition = 'transform 0.3s';
23} 23}
@@ -194,13 +194,13 @@ class SelectComponent extends Component<IProps, IState> {
194 componentDidUpdate(): void { 194 componentDidUpdate(): void {
195 const { open } = this.state; 195 const { open } = this.state;
196 196
197 if (this.searchInputRef && this.searchInputRef.current && open) { 197 if (this.searchInputRef?.current && open) {
198 this.searchInputRef.current.focus(); 198 this.searchInputRef.current.focus();
199 } 199 }
200 } 200 }
201 201
202 componentDidMount(): void { 202 componentDidMount(): void {
203 if (this.inputRef && this.inputRef.current) { 203 if (this.inputRef?.current) {
204 const { data } = this.props; 204 const { data } = this.props;
205 205
206 if (data) { 206 if (data) {
@@ -215,7 +215,7 @@ class SelectComponent extends Component<IProps, IState> {
215 UNSAFE_componentWillMount(): void { 215 UNSAFE_componentWillMount(): void {
216 const { value } = this.props; 216 const { value } = this.props;
217 217
218 if (this.componentRef && this.componentRef.current) { 218 if (this.componentRef?.current) {
219 this.componentRef.current.removeEventListener( 219 this.componentRef.current.removeEventListener(
220 'keydown', 220 'keydown',
221 this.keyListener, 221 this.keyListener,
@@ -285,7 +285,7 @@ class SelectComponent extends Component<IProps, IState> {
285 e.preventDefault(); 285 e.preventDefault();
286 } 286 }
287 287
288 if (this.componentRef && this.componentRef.current) { 288 if (this.componentRef?.current) {
289 if (e.keyCode === 38 && selected > 0) { 289 if (e.keyCode === 38 && selected > 0) {
290 this.setState((state: IState) => ({ 290 this.setState((state: IState) => ({
291 selected: state.selected - 1, 291 selected: state.selected - 1,
@@ -302,8 +302,7 @@ class SelectComponent extends Component<IProps, IState> {
302 } 302 }
303 303
304 if ( 304 if (
305 this.activeOptionRef && 305 this.activeOptionRef?.current &&
306 this.activeOptionRef.current &&
307 this.scrollContainerRef && 306 this.scrollContainerRef &&
308 this.scrollContainerRef.current 307 this.scrollContainerRef.current
309 ) { 308 ) {
@@ -350,13 +349,11 @@ class SelectComponent extends Component<IProps, IState> {
350 349
351 const { open, needle, value, selected, options } = this.state; 350 const { open, needle, value, selected, options } = this.state;
352 351
353 let selection = ''; 352 let selection = actionText;
354 if (!value && defaultValue && options![defaultValue]) { 353 if (!value && defaultValue && options![defaultValue]) {
355 selection = options![defaultValue]; 354 selection = options![defaultValue];
356 } else if (value && options![value]) { 355 } else if (value && options![value]) {
357 selection = options![value]; 356 selection = options![value];
358 } else {
359 selection = actionText;
360 } 357 }
361 358
362 return ( 359 return (
diff --git a/src/components/ui/textarea/index.tsx b/src/components/ui/textarea/index.tsx
index 89e85ac11..fbdef7fc6 100644
--- a/src/components/ui/textarea/index.tsx
+++ b/src/components/ui/textarea/index.tsx
@@ -38,7 +38,7 @@ class TextareaComponent extends Component<IProps> {
38 componentDidMount() { 38 componentDidMount() {
39 const { data } = this.props; 39 const { data } = this.props;
40 40
41 if (this.textareaRef && this.textareaRef.current && data) { 41 if (this.textareaRef?.current && data) {
42 Object.keys(data).map( 42 Object.keys(data).map(
43 key => (this.textareaRef.current!.dataset[key] = data[key]), 43 key => (this.textareaRef.current!.dataset[key] = data[key]),
44 ); 44 );
diff --git a/src/components/ui/toggle/index.tsx b/src/components/ui/toggle/index.tsx
index 828941886..48f68943b 100644
--- a/src/components/ui/toggle/index.tsx
+++ b/src/components/ui/toggle/index.tsx
@@ -16,10 +16,11 @@ interface IProps
16 className?: string; 16 className?: string;
17} 17}
18 18
19const buttonTransition: string = 19const buttonTransition: string = window?.matchMedia(
20 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 20 '(prefers-reduced-motion: no-preference)',
21 ? 'all .5s' 21)
22 : 'none'; 22 ? 'all .5s'
23 : 'none';
23 24
24const styles = (theme: Theme) => ({ 25const styles = (theme: Theme) => ({
25 toggle: { 26 toggle: {
diff --git a/src/containers/auth/SetupAssistantScreen.tsx b/src/containers/auth/SetupAssistantScreen.tsx
index 0d4c3feec..1a20ab002 100644
--- a/src/containers/auth/SetupAssistantScreen.tsx
+++ b/src/containers/auth/SetupAssistantScreen.tsx
@@ -96,7 +96,7 @@ class SetupAssistantScreen extends Component<IProps, IState> {
96 <SetupAssistant 96 <SetupAssistant
97 onSubmit={config => this.setupServices(config)} 97 onSubmit={config => this.setupServices(config)}
98 services={this.services} 98 services={this.services}
99 // embed={false} // TODO - [TS DEBT][PROP NOT USED IN COMPONENT] check legacy services type 99 // embed={false} // TODO: [TS DEBT][PROP NOT USED IN COMPONENT] check legacy services type
100 isSettingUpServices={this.state.isSettingUpServices} 100 isSettingUpServices={this.state.isSettingUpServices}
101 /> 101 />
102 ); 102 );
diff --git a/src/containers/layout/AppLayoutContainer.tsx b/src/containers/layout/AppLayoutContainer.tsx
index 1cffc7ad1..1929492ff 100644
--- a/src/containers/layout/AppLayoutContainer.tsx
+++ b/src/containers/layout/AppLayoutContainer.tsx
@@ -120,10 +120,10 @@ class AppLayoutContainer extends Component<IProps> {
120 const servicesContainer = ( 120 const servicesContainer = (
121 <Services 121 <Services
122 services={services.allDisplayedUnordered} 122 services={services.allDisplayedUnordered}
123 // handleIPCMessage={handleIPCMessage} // TODO - - [TECH DEBT] check it later 123 // handleIPCMessage={handleIPCMessage} // TODO: [TECH DEBT] check it later
124 setWebviewReference={setWebviewReference} 124 setWebviewReference={setWebviewReference}
125 detachService={detachService} 125 detachService={detachService}
126 // openWindow={openWindow} // TODO - - [TECH DEBT] check it later 126 // openWindow={openWindow} // TODO: [TECH DEBT] check it later
127 reload={reload} 127 reload={reload}
128 openSettings={openSettings} 128 openSettings={openSettings}
129 update={updateService} 129 update={updateService}
diff --git a/src/containers/settings/EditServiceScreen.tsx b/src/containers/settings/EditServiceScreen.tsx
index 3b9d3ee43..ff2076fed 100644
--- a/src/containers/settings/EditServiceScreen.tsx
+++ b/src/containers/settings/EditServiceScreen.tsx
@@ -391,7 +391,7 @@ class EditServiceScreen extends Component<IProps> {
391 if (proxy.isEnabled) { 391 if (proxy.isEnabled) {
392 const serviceProxyConfig: IProxyConfig = service 392 const serviceProxyConfig: IProxyConfig = service
393 ? /* 393 ? /*
394 TODO - [TS DEBT] find out why sometimes proxy[service.id] gives undefined 394 TODO: [TS DEBT] find out why sometimes proxy[service.id] gives undefined
395 Note in proxy service id exist as key but value is undefined rather that proxy empty object 395 Note in proxy service id exist as key but value is undefined rather that proxy empty object
396 396
397 Temp fix - or-ed {} (to stores.settings.proxy[service.id] ) to avoid undefined proxy in settingStore throw error 397 Temp fix - or-ed {} (to stores.settings.proxy[service.id] ) to avoid undefined proxy in settingStore throw error
@@ -534,9 +534,9 @@ class EditServiceScreen extends Component<IProps> {
534 action={action} 534 action={action}
535 recipe={recipe} 535 recipe={recipe}
536 service={service} 536 service={service}
537 // user={user.data} // TODO - [TS DEBT] Need to check why its passed as its not used inside EditServiceForm 537 // user={user.data} // TODO: [TS DEBT] Need to check why its passed as its not used inside EditServiceForm
538 form={form} 538 form={form}
539 // status={services.actionStatus} // TODO - [TS DEBT] Need to check why its passed as its not used inside EditServiceForm 539 // status={services.actionStatus} // TODO: [TS DEBT] Need to check why its passed as its not used inside EditServiceForm
540 isSaving={ 540 isSaving={
541 services.updateServiceRequest.isExecuting || 541 services.updateServiceRequest.isExecuting ||
542 services.createServiceRequest.isExecuting 542 services.createServiceRequest.isExecuting
diff --git a/src/containers/settings/ServicesScreen.tsx b/src/containers/settings/ServicesScreen.tsx
index 70eeffed4..6b648f038 100644
--- a/src/containers/settings/ServicesScreen.tsx
+++ b/src/containers/settings/ServicesScreen.tsx
@@ -14,7 +14,7 @@ class ServicesScreen extends Component<IProps> {
14 this.props.actions.service.resetStatus(); 14 this.props.actions.service.resetStatus();
15 } 15 }
16 16
17 // TODO - [TECH DEBT] need to check it 17 // TODO: [TECH DEBT] need to check it
18 // deleteService(): void { 18 // deleteService(): void {
19 // this.props.actions.service.deleteService(); 19 // this.props.actions.service.deleteService();
20 // this.props.actions.service.resetFilter(); 20 // this.props.actions.service.resetFilter();
@@ -38,11 +38,11 @@ class ServicesScreen extends Component<IProps> {
38 return ( 38 return (
39 <ErrorBoundary> 39 <ErrorBoundary>
40 <ServicesDashboard 40 <ServicesDashboard
41 // user={user.data} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it later 41 // user={user.data} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it later
42 services={allServices} 42 services={allServices}
43 status={services.actionStatus} 43 status={services.actionStatus}
44 // deleteService={() => this.deleteService()} // TODO - [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it later 44 // deleteService={() => this.deleteService()} // TODO: [TECH DEBT][PROPS NOT EXIST IN COMPONENT] check it later
45 // toggleService={toggleService} // TODO - [TECH DEBT][PROPS NOT USED IN COMPONENT] check it later 45 // toggleService={toggleService} // TODO: [TECH DEBT][PROPS NOT USED IN COMPONENT] check it later
46 isLoading={isLoading} 46 isLoading={isLoading}
47 filterServices={filter} 47 filterServices={filter}
48 resetFilter={resetFilter} 48 resetFilter={resetFilter}
diff --git a/src/features/appearance/index.ts b/src/features/appearance/index.ts
index b6e944724..da75bf57b 100644
--- a/src/features/appearance/index.ts
+++ b/src/features/appearance/index.ts
@@ -165,12 +165,6 @@ function generateServiceRibbonWidthStyle(
165 sidebarSizeBias = 44; 165 sidebarSizeBias = 44;
166 break; 166 break;
167 } 167 }
168 case 55: {
169 fontSize = 11;
170 tabItemHeightBias = 13;
171 sidebarSizeBias = 37;
172 break;
173 }
174 case 80: { 168 case 80: {
175 fontSize = 11; 169 fontSize = 11;
176 tabItemHeightBias = 3; 170 tabItemHeightBias = 3;
diff --git a/src/features/todos/components/TodosWebview.tsx b/src/features/todos/components/TodosWebview.tsx
index 4b53df956..7b1b17e64 100644
--- a/src/features/todos/components/TodosWebview.tsx
+++ b/src/features/todos/components/TodosWebview.tsx
@@ -196,7 +196,7 @@ class TodosWebview extends Component<IProps, IState> {
196 )} 196 )}
197 {isTodoUrlValid && ( 197 {isTodoUrlValid && (
198 <Webview 198 <Webview
199 // className={classes.webview} // TODO - [TS DEBT] style not found 199 // className={classes.webview} // TODO: [TS DEBT] style not found
200 onDidAttach={() => { 200 onDidAttach={() => {
201 const { setTodosWebview } = this.props; 201 const { setTodosWebview } = this.props;
202 setTodosWebview(this.webview); 202 setTodosWebview(this.webview);
diff --git a/src/features/todos/containers/TodosScreen.tsx b/src/features/todos/containers/TodosScreen.tsx
index 17f61bd95..8941a4b39 100644
--- a/src/features/todos/containers/TodosScreen.tsx
+++ b/src/features/todos/containers/TodosScreen.tsx
@@ -31,7 +31,7 @@ class TodosScreen extends Component<IProps> {
31 this.props.stores!.services.isTodosServiceActive || false 31 this.props.stores!.services.isTodosServiceActive || false
32 } 32 }
33 isVisible={todosStore.isTodosPanelVisible} 33 isVisible={todosStore.isTodosPanelVisible}
34 // togglePanel={todoActions.toggleTodosPanel} // TODO - [TECH DEBT][PROP NOT USED IN COMPONENT] check it later 34 // togglePanel={todoActions.toggleTodosPanel} // TODO: [TECH DEBT][PROP NOT USED IN COMPONENT] check it later
35 handleClientMessage={todoActions.handleClientMessage} 35 handleClientMessage={todoActions.handleClientMessage}
36 setTodosWebview={webview => todoActions.setTodosWebview(webview)} 36 setTodosWebview={webview => todoActions.setTodosWebview(webview)}
37 width={todosStore.width} 37 width={todosStore.width}
diff --git a/src/features/todos/store.ts b/src/features/todos/store.ts
index 94be4db6a..882fa6a1e 100644
--- a/src/features/todos/store.ts
+++ b/src/features/todos/store.ts
@@ -149,7 +149,7 @@ export default class TodoStore extends FeatureStore {
149 @action stop() { 149 @action stop() {
150 super.stop(); 150 super.stop();
151 debug('TodoStore::stop'); 151 debug('TodoStore::stop');
152 // this.reset(); // TODO - [TECH DEBT][PROP NOT IN CLASS] check it later 152 // this.reset(); // TODO: [TECH DEBT][PROP NOT IN CLASS] check it later
153 this.isFeatureActive = false; 153 this.isFeatureActive = false;
154 } 154 }
155 155
diff --git a/src/features/webControls/components/WebControls.tsx b/src/features/webControls/components/WebControls.tsx
index 74b343948..e76fca6a2 100644
--- a/src/features/webControls/components/WebControls.tsx
+++ b/src/features/webControls/components/WebControls.tsx
@@ -34,10 +34,11 @@ const messages = defineMessages({
34 }, 34 },
35}); 35});
36 36
37const buttonTransition = 37const buttonTransition = window?.matchMedia(
38 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 38 '(prefers-reduced-motion: no-preference)',
39 ? 'opacity 0.25s' 39)
40 : 'none'; 40 ? 'opacity 0.25s'
41 : 'none';
41 42
42const styles = theme => ({ 43const styles = theme => ({
43 root: { 44 root: {
@@ -211,7 +212,7 @@ class WebControls extends Component<IProps, IState> {
211 }); 212 });
212 navigate(inputUrl); 213 navigate(inputUrl);
213 214
214 if (this.inputRef && this.inputRef.current) { 215 if (this.inputRef?.current) {
215 this.inputRef.current.blur(); 216 this.inputRef.current.blur();
216 } 217 }
217 } else if (event.key === 'Escape') { 218 } else if (event.key === 'Escape') {
@@ -220,7 +221,7 @@ class WebControls extends Component<IProps, IState> {
220 inputUrl: url, 221 inputUrl: url,
221 }); 222 });
222 223
223 if (this.inputRef && this.inputRef.current) { 224 if (this.inputRef?.current) {
224 this.inputRef.current.blur(); 225 this.inputRef.current.blur();
225 } 226 }
226 } 227 }
diff --git a/src/features/workspaces/components/WorkspaceDrawerItem.tsx b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
index 0ad56d1ae..74ca2797d 100644
--- a/src/features/workspaces/components/WorkspaceDrawerItem.tsx
+++ b/src/features/workspaces/components/WorkspaceDrawerItem.tsx
@@ -19,10 +19,11 @@ const messages = defineMessages({
19 }, 19 },
20}); 20});
21 21
22const itemTransition = 22const itemTransition = window?.matchMedia(
23 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 23 '(prefers-reduced-motion: no-preference)',
24 ? 'background-color 300ms ease-out' 24)
25 : 'none'; 25 ? 'background-color 300ms ease-out'
26 : 'none';
26 27
27const styles = theme => ({ 28const styles = theme => ({
28 item: { 29 item: {
diff --git a/src/features/workspaces/components/WorkspaceItem.tsx b/src/features/workspaces/components/WorkspaceItem.tsx
index b097a8298..6c4dd649b 100644
--- a/src/features/workspaces/components/WorkspaceItem.tsx
+++ b/src/features/workspaces/components/WorkspaceItem.tsx
@@ -1,4 +1,4 @@
1/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ // TODO - [TS DEBT] Need to check and remove it 1/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
2import { Component, ReactElement } from 'react'; 2import { Component, ReactElement } from 'react';
3import { observer } from 'mobx-react'; 3import { observer } from 'mobx-react';
4import withStyles, { WithStylesProps } from 'react-jss'; 4import withStyles, { WithStylesProps } from 'react-jss';
diff --git a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
index c9af22c96..e1cc0f785 100644
--- a/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
+++ b/src/features/workspaces/components/WorkspaceSwitchingIndicator.tsx
@@ -14,10 +14,11 @@ const messages = defineMessages({
14 }, 14 },
15}); 15});
16 16
17const wrapperTransition = 17const wrapperTransition = window?.matchMedia(
18 window && window.matchMedia('(prefers-reduced-motion: no-preference)') 18 '(prefers-reduced-motion: no-preference)',
19 ? 'width 0.5s ease' 19)
20 : 'none'; 20 ? 'width 0.5s ease'
21 : 'none';
21 22
22const styles = theme => ({ 23const styles = theme => ({
23 wrapper: { 24 wrapper: {
diff --git a/src/features/workspaces/components/WorkspacesDashboard.tsx b/src/features/workspaces/components/WorkspacesDashboard.tsx
index 06738b38c..c5f8909c1 100644
--- a/src/features/workspaces/components/WorkspacesDashboard.tsx
+++ b/src/features/workspaces/components/WorkspacesDashboard.tsx
@@ -147,7 +147,7 @@ class WorkspacesDashboard extends Component<IProps> {
147 icon="alert" 147 icon="alert"
148 type="danger" 148 type="danger"
149 ctaLabel={intl.formatMessage(messages.tryReloadWorkspaces)} 149 ctaLabel={intl.formatMessage(messages.tryReloadWorkspaces)}
150 // ctaLoading={getUserWorkspacesRequest.isExecuting} // TODO - [TECH DEBT][PROP NOT USED IN COMPONENT] need to check and update 150 // ctaLoading={getUserWorkspacesRequest.isExecuting} // TODO: [TECH DEBT][PROP NOT USED IN COMPONENT] need to check and update
151 ctaOnClick={getUserWorkspacesRequest.retry} 151 ctaOnClick={getUserWorkspacesRequest.retry}
152 > 152 >
153 {intl.formatMessage(messages.workspacesRequestFailed)} 153 {intl.formatMessage(messages.workspacesRequestFailed)}
diff --git a/src/features/workspaces/store.ts b/src/features/workspaces/store.ts
index d63feb1f8..53e3b62ed 100644
--- a/src/features/workspaces/store.ts
+++ b/src/features/workspaces/store.ts
@@ -28,7 +28,7 @@ export default class WorkspacesStore extends FeatureStore {
28 28
29 @observable nextWorkspace: Workspace | undefined; 29 @observable nextWorkspace: Workspace | undefined;
30 30
31 @observable workspaceBeingEdited: any = null; // TODO - [TS DEBT] fix type later 31 @observable workspaceBeingEdited: any = null; // TODO: [TS DEBT] fix type later
32 32
33 @observable isSwitchingWorkspace = false; 33 @observable isSwitchingWorkspace = false;
34 34
@@ -36,7 +36,7 @@ export default class WorkspacesStore extends FeatureStore {
36 36
37 @observable isSettingsRouteActive = false; 37 @observable isSettingsRouteActive = false;
38 38
39 stores: any; // TODO - [TS DEBT] fix type later 39 stores: any; // TODO: [TS DEBT] fix type later
40 40
41 actions: Actions | undefined; 41 actions: Actions | undefined;
42 42
diff --git a/src/helpers/userAgent-helpers.ts b/src/helpers/userAgent-helpers.ts
index c811b34c9..a89207326 100644
--- a/src/helpers/userAgent-helpers.ts
+++ b/src/helpers/userAgent-helpers.ts
@@ -11,7 +11,7 @@ import {
11} from '../environment'; 11} from '../environment';
12 12
13function macOS() { 13function macOS() {
14 const version = macosVersion() || ''; 14 const version = macosVersion() ?? '';
15 let cpuName = cpus()[0].model.split(' ')[0]; 15 let cpuName = cpus()[0].model.split(' ')[0];
16 if (cpuName && /\(/.test(cpuName)) { 16 if (cpuName && /\(/.test(cpuName)) {
17 cpuName = cpuName.split('(')[0]; 17 cpuName = cpuName.split('(')[0];
diff --git a/src/index.ts b/src/index.ts
index 182a281fa..7ef23415b 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -32,6 +32,7 @@ import {
32import { ifUndefined } from './jsUtils'; 32import { ifUndefined } from './jsUtils';
33 33
34import { mainIpcHandler as basicAuthHandler } from './features/basicAuth'; 34import { mainIpcHandler as basicAuthHandler } from './features/basicAuth';
35// eslint-disable-next-line import/no-cycle
35import ipcApi from './electron/ipc-api'; 36import ipcApi from './electron/ipc-api';
36import TrayIcon from './lib/Tray'; 37import TrayIcon from './lib/Tray';
37import DBus from './lib/DBus'; 38import DBus from './lib/DBus';
diff --git a/src/jsUtils.ts b/src/jsUtils.ts
index 0cc83bb91..47473a538 100644
--- a/src/jsUtils.ts
+++ b/src/jsUtils.ts
@@ -1,7 +1,7 @@
1export const ifUndefined = <T>( 1export const ifUndefined = <T>(
2 source: undefined | null | T, 2 source: undefined | null | T,
3 defaultValue: T, 3 defaultValue: T,
4): T => (source !== undefined && source !== null ? source : defaultValue); 4): T => source ?? defaultValue;
5 5
6export const convertToJSON = (data: string | any | undefined | null) => 6export const convertToJSON = (data: string | any | undefined | null) =>
7 data && typeof data === 'string' && data.length > 0 ? JSON.parse(data) : data; 7 data && typeof data === 'string' && data.length > 0 ? JSON.parse(data) : data;
diff --git a/src/models/Recipe.ts b/src/models/Recipe.ts
index 9a28a59ac..a03d3447f 100644
--- a/src/models/Recipe.ts
+++ b/src/models/Recipe.ts
@@ -56,7 +56,7 @@ export interface IRecipe {
56 readonly knownCertificateHosts?: null | Function; 56 readonly knownCertificateHosts?: null | Function;
57 readonly events?: null | { (key: string): string }; 57 readonly events?: null | { (key: string): string };
58 58
59 // TODO - [TS DEBT] Need to check if below properties are needed and where is inherited / implemented from 59 // TODO: [TS DEBT] Need to check if below properties are needed and where is inherited / implemented from
60 author?: string[]; 60 author?: string[];
61 hasDarkMode?: boolean; 61 hasDarkMode?: boolean;
62 validateUrl?: (url: string) => boolean; 62 validateUrl?: (url: string) => boolean;
@@ -108,7 +108,7 @@ export default class Recipe implements IRecipe {
108 // TODO: Is this being used? 108 // TODO: Is this being used?
109 local = false; 109 local = false;
110 110
111 // TODO - [TS DEBT] introduced to address missing function but need to check how validateUrl is inherited / implemented in recipe 111 // TODO: [TS DEBT] introduced to address missing function but need to check how validateUrl is inherited / implemented in recipe
112 validateUrl?: (url: string) => boolean; 112 validateUrl?: (url: string) => boolean;
113 113
114 // TODO: Need to reconcile which of these are optional/mandatory 114 // TODO: Need to reconcile which of these are optional/mandatory
diff --git a/src/stores/AppStore.ts b/src/stores/AppStore.ts
index 18b38799e..82591a2a4 100644
--- a/src/stores/AppStore.ts
+++ b/src/stores/AppStore.ts
@@ -212,7 +212,7 @@ export default class AppStore extends TypedStore {
212 } 212 }
213 213
214 if (data.error) { 214 if (data.error) {
215 if (data.error.message && data.error.message.startsWith('404')) { 215 if (data.error.message?.startsWith('404')) {
216 this.updateStatus = this.updateStatusTypes.NOT_AVAILABLE; 216 this.updateStatus = this.updateStatusTypes.NOT_AVAILABLE;
217 console.warn( 217 console.warn(
218 'Updater warning: there seems to be unpublished pre-release(s) available on GitHub', 218 'Updater warning: there seems to be unpublished pre-release(s) available on GitHub',
@@ -350,7 +350,7 @@ export default class AppStore extends TypedStore {
350 if (this.stores.settings.all.app.isAppMuted) return; 350 if (this.stores.settings.all.app.isAppMuted) return;
351 351
352 // TODO: is there a simple way to use blobs for notifications without storing them on disk? 352 // TODO: is there a simple way to use blobs for notifications without storing them on disk?
353 if (options.icon && options.icon.startsWith('blob:')) { 353 if (options.icon?.startsWith('blob:')) {
354 delete options.icon; 354 delete options.icon;
355 } 355 }
356 356
diff --git a/src/stores/GlobalErrorStore.ts b/src/stores/GlobalErrorStore.ts
index be86563d0..8547fec72 100644
--- a/src/stores/GlobalErrorStore.ts
+++ b/src/stores/GlobalErrorStore.ts
@@ -86,7 +86,7 @@ export default class GlobalErrorStore extends TypedStore {
86 if (request.isError) { 86 if (request.isError) {
87 this.error = request.error; 87 this.error = request.error;
88 88
89 if (request.error && request.error.json) { 89 if (request.error?.json) {
90 try { 90 try {
91 this.response = await request.error.json(); 91 this.response = await request.error.json();
92 } catch { 92 } catch {
diff --git a/src/stores/ServicesStore.ts b/src/stores/ServicesStore.ts
index 9c15d3a07..44f8b277c 100644
--- a/src/stores/ServicesStore.ts
+++ b/src/stores/ServicesStore.ts
@@ -425,12 +425,12 @@ export default class ServicesStore extends TypedStore {
425 return ( 425 return (
426 this.allDisplayed.find( 426 this.allDisplayed.find(
427 service => service.isTodosService && service.isEnabled, 427 service => service.isTodosService && service.isEnabled,
428 ) || false 428 ) ?? false
429 ); 429 );
430 } 430 }
431 431
432 @computed get isTodosServiceActive() { 432 @computed get isTodosServiceActive() {
433 return this.active && this.active.isTodosService; 433 return this.active?.isTodosService;
434 } 434 }
435 435
436 // TODO: This can actually return undefined as well 436 // TODO: This can actually return undefined as well
diff --git a/src/stores/UserStore.ts b/src/stores/UserStore.ts
index 6c8f8f20b..7ba8f4222 100644
--- a/src/stores/UserStore.ts
+++ b/src/stores/UserStore.ts
@@ -209,7 +209,7 @@ export default class UserStore extends TypedStore {
209 plan, 209 plan,
210 currency, 210 currency,
211 }): Promise<void> { 211 }): Promise<void> {
212 // TODO - [TS DEBT] Need to find a way proper to implement promise's then and catch in request class 212 // TODO: [TS DEBT] Need to find a way proper to implement promise's then and catch in request class
213 // @ts-ignore 213 // @ts-ignore
214 const authToken = await this.signupRequest.execute({ 214 const authToken = await this.signupRequest.execute({
215 firstname, 215 firstname,
diff --git a/src/stores/index.ts b/src/stores/index.ts
index 8836f2892..f9927d9a3 100644
--- a/src/stores/index.ts
+++ b/src/stores/index.ts
@@ -57,7 +57,7 @@ export default (
57 57
58 // Initialize all stores 58 // Initialize all stores
59 for (const name of Object.keys(stores)) { 59 for (const name of Object.keys(stores)) {
60 if (stores[name] && stores[name].initialize) { 60 if (stores[name]?.initialize) {
61 stores[name].initialize(); 61 stores[name].initialize();
62 } 62 }
63 } 63 }