From 8c131073730ec684145c2cc8ee8d6b39bbe9278d Mon Sep 17 00:00:00 2001 From: MCMXC <16797721+mcmxcdev@users.noreply.github.com> Date: Sun, 23 Jul 2023 20:08:52 -0600 Subject: chore: improve lint setup - update eslint config - merged eslint rules for JS and TS to avoid duplicates - extended stricter lint ruleset from typescript-eslint - corrected wrong setup for certain eslint rulesets - opt in to reportUnusedDisableDirectives config option - fix or disable a lot of lint issues throughout codebase - remove trailingComma: all from prettier config which is default in prettier v3 - add volta configuration to package.json to autoload correct node and pnpm versions - upgrade all eslint and prettier related dependencies to latest - remove config options from settings.json which are default anyways - remove config options from settings.json which are outdated/unknown - set up prettier as default formatter in settings.json --- src/components/AppUpdateInfoBar.tsx | 1 + src/components/auth/Login.tsx | 1 - src/components/auth/Welcome.tsx | 4 - src/components/layout/Sidebar.tsx | 248 ++++++++++----------- .../services/tabs/TabBarSortableList.tsx | 2 +- src/components/services/tabs/TabItem.tsx | 8 +- src/components/services/tabs/Tabbar.tsx | 2 +- .../settings/navigation/SettingsNavigation.tsx | 6 +- .../supportFerdium/SupportFerdiumDashboard.tsx | 2 +- src/components/ui/AppLoader/index.tsx | 23 +- src/components/ui/Link.tsx | 4 - src/components/ui/Select.tsx | 4 - src/components/ui/Tabs/Tabs.tsx | 2 + src/components/ui/WebviewLoader/index.tsx | 2 +- src/components/ui/colorPickerInput/index.tsx | 2 +- src/components/ui/headline/index.tsx | 11 +- src/components/ui/select/index.tsx | 6 +- 17 files changed, 153 insertions(+), 175 deletions(-) (limited to 'src/components') diff --git a/src/components/AppUpdateInfoBar.tsx b/src/components/AppUpdateInfoBar.tsx index b27578d10..b8e1bb61e 100644 --- a/src/components/AppUpdateInfoBar.tsx +++ b/src/components/AppUpdateInfoBar.tsx @@ -38,6 +38,7 @@ const AppUpdateInfoBar = (props: IProps) => { type="primary" ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)} onClick={event => { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions !isWinPortable && onInstallUpdate(event); }} onHide={onHide} diff --git a/src/components/auth/Login.tsx b/src/components/auth/Login.tsx index 0a95b0565..eaa04256c 100644 --- a/src/components/auth/Login.tsx +++ b/src/components/auth/Login.tsx @@ -68,7 +68,6 @@ interface IProps extends WrappedComponentProps { isTokenExpired: boolean; isServerLogout: boolean; signupRoute: string; - // eslint-disable-next-line react/no-unused-prop-types passwordRoute: string; // TODO: Uncomment this line after fixing password recovery in-app error: GlobalError; } diff --git a/src/components/auth/Welcome.tsx b/src/components/auth/Welcome.tsx index 1aa8da4d6..047512ea4 100644 --- a/src/components/auth/Welcome.tsx +++ b/src/components/auth/Welcome.tsx @@ -44,10 +44,6 @@ interface IProps extends Partial, WrappedComponentProps { @inject('actions') @observer class Welcome extends Component { - constructor(props: IProps) { - super(props); - } - useLocalServer(): void { serverlessLogin(this.props.actions); } diff --git a/src/components/layout/Sidebar.tsx b/src/components/layout/Sidebar.tsx index 2b1e87023..ceb9cfff9 100644 --- a/src/components/layout/Sidebar.tsx +++ b/src/components/layout/Sidebar.tsx @@ -205,133 +205,131 @@ class Sidebar extends Component { hibernateService={this.props.hibernateService} wakeUpService={this.props.wakeUpService} /> - <> - {numberActiveButtons <= 1 || hideCollapseButton ? null : ( - - )} - {!hideRecipesButton && !isMenuCollapsed ? ( - - ) : null} - {!hideSplitModeButton && !isMenuCollapsed ? ( - - ) : null} - {!hideWorkspacesButton && !isMenuCollapsed ? ( - - ) : null} - {!hideNotificationsButton && !isMenuCollapsed ? ( - - ) : null} - {todosStore.isFeatureEnabledByUser && !isMenuCollapsed ? ( - - ) : null} - {stores!.settings.all.app.lockingFeatureEnabled ? ( - - ) : null} - + {!isMenuCollapsed && useHorizontalStyle ? ( + + ) : null} + + )} + {!hideRecipesButton && !isMenuCollapsed ? ( + + ) : null} + {!hideSplitModeButton && !isMenuCollapsed ? ( + + ) : null} + {!hideWorkspacesButton && !isMenuCollapsed ? ( + + ) : null} + {!hideNotificationsButton && !isMenuCollapsed ? ( + + ) : null} + {todosStore.isFeatureEnabledByUser && !isMenuCollapsed ? ( + + ) : null} + {stores!.settings.all.app.lockingFeatureEnabled ? ( + + ) : null} {this.state.tooltipEnabled && ( { {services.map((service, index) => ( setActive({ serviceId: service.id })} service={service} index={index} diff --git a/src/components/services/tabs/TabItem.tsx b/src/components/services/tabs/TabItem.tsx index c25af4427..287dedfcb 100644 --- a/src/components/services/tabs/TabItem.tsx +++ b/src/components/services/tabs/TabItem.tsx @@ -234,7 +234,7 @@ class TabItem extends Component { } = this.props; const { intl } = this.props; - const menuTemplate: Array = [ + const menuTemplate: MenuItemConstructorOptions[] = [ { label: service.name || service.recipe.name, enabled: false, @@ -295,7 +295,7 @@ class TabItem extends Component { ? messages.wakeUpService : messages.hibernateService, ), - // eslint-disable-next-line no-confusing-arrow + click: () => service.isHibernating ? wakeUpService() : hibernateService(), enabled: service.isEnabled && service.canHibernate, @@ -311,7 +311,7 @@ class TabItem extends Component { { label: intl.formatMessage(messages.deleteService), click: () => { - // @ts-ignore + // @ts-expect-error Fix me const selection = dialog.showMessageBoxSync(app.mainWindow, { type: 'question', message: intl.formatMessage(messages.deleteService), @@ -417,6 +417,6 @@ class TabItem extends Component { } export default injectIntl( - // @ts-ignore + // @ts-expect-error Fix me SortableElement(injectSheet(styles, { injectTheme: true })(TabItem)), ); diff --git a/src/components/services/tabs/Tabbar.tsx b/src/components/services/tabs/Tabbar.tsx index f09877b2f..d19a4b8de 100644 --- a/src/components/services/tabs/Tabbar.tsx +++ b/src/components/services/tabs/Tabbar.tsx @@ -99,7 +99,7 @@ class TabBar extends Component { return (
, WrappedComponentProps { @inject('stores', 'actions') @observer class SettingsNavigation extends Component { - constructor(props: IProps) { - super(props); - } - handleLogout(): void { const isUsingWithoutAccount = this.props.stores!.settings.app.server === LOCAL_SERVER; @@ -186,7 +182,7 @@ class SettingsNavigation extends Component {