Skip to content

Commit

Permalink
chore: configure ESLint to ensure deterministic order of imports
Browse files Browse the repository at this point in the history
  • Loading branch information
yanascz committed Jan 30, 2025
1 parent aa88966 commit 70e6c68
Show file tree
Hide file tree
Showing 26 changed files with 70 additions and 52 deletions.
10 changes: 5 additions & 5 deletions packages/components/src/components/Dropdown/Dropdown.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {
forwardRef,
cloneElement,
ReactElement,
MouseEvent,
ReactElement,
cloneElement,
forwardRef,
useEffect,
useImperativeHandle,
useRef,
Expand All @@ -13,11 +13,11 @@ import styled from 'styled-components';

import { useOnClickOutside } from '@trezor/react-utils';

import { Menu, MenuProps, DropdownMenuItemProps } from '../Menu/Menu';
import { IconButton } from '../buttons/IconButton/IconButton';
import { FrameProps, FramePropsKeys } from '../../utils/frameProps';
import { DropdownMenuItemProps, Menu, MenuProps } from '../Menu/Menu';
import { Popover } from '../Popover/Popover';
import { PopoverPlacement } from '../Popover/utils';
import { IconButton } from '../buttons/IconButton/IconButton';

export const allowedDropdownFrameProps = ['width'] as const satisfies FramePropsKeys[];
type AllowedFrameProps = Pick<FrameProps, (typeof allowedDropdownFrameProps)[number]>;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
import { useArgs } from '@storybook/client-api';
import { Meta, StoryObj } from '@storybook/react';
import styled from 'styled-components';
import { useArgs } from '@storybook/client-api';

import { spacingsPx } from '@trezor/theme';

import { Popover as PopoverComponent, PopoverProps } from './Popover';
import { Button } from '../buttons/Button/Button';
import { Card } from '../Card/Card';
import {
POPOVER_PLACEMENT_ALIGNMENT,
POPOVER_PLACEMENT_POSITION,
PopoverPlacement,
PopoverPlacementAlignment,
PopoverPlacementPosition,
} from './utils';
import { Card } from '../Card/Card';
import { Button } from '../buttons/Button/Button';

const Container = styled.div`
width: 100%;
Expand Down
14 changes: 7 additions & 7 deletions packages/components/src/components/Popover/Popover.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
import * as React from 'react';
import { CSSProperties, forwardRef, HTMLProps } from 'react';
import { CSSProperties, HTMLProps, forwardRef } from 'react';

import {
useFloating,
FloatingFocusManager,
FloatingPortal,
autoUpdate,
offset,
flip,
offset,
shift,
useClick,
useDismiss,
useRole,
useFloating,
useInteractions,
useMergeRefs,
FloatingPortal,
FloatingFocusManager,
useRole,
} from '@floating-ui/react';
import { useTheme } from 'styled-components';

import { zIndices } from '@trezor/theme';

import { intermediaryTheme } from '../../config/colors';
import { PopoverPlacement, convertPopoverPlacement } from './utils';
import { intermediaryTheme } from '../../config/colors';

const DEFAULT_POPOVER_PLACEMENT: PopoverPlacement = {
position: 'bottom',
Expand Down
8 changes: 4 additions & 4 deletions packages/components/src/components/form/Select/Select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import ReactSelect, { Props as ReactSelectProps, SelectInstance, StylesConfig }
import styled, { DefaultTheme, css, useTheme } from 'styled-components';

import {
borders,
Elevation,
borders,
spacings,
spacingsPx,
typography,
Expand All @@ -30,11 +30,11 @@ import {
} from './customComponents';
import { useDetectPortalTarget } from './useDetectPortalTarget';
import { useOnKeyDown } from './useOnKeyDown';
import { DROPDOWN_MENU, menuStyle } from '../../Menu/menuStyle';
import { FrameProps } from '../../../utils/frameProps';
import { TransientProps } from '../../../utils/transientProps';
import { useElevation } from '../../ElevationContext/ElevationContext';
import { DROPDOWN_MENU, menuStyle } from '../../Menu/menuStyle';
import { Spinner } from '../../loaders/Spinner/Spinner';
import { TransientProps } from '../../../utils/transientProps';
import { FrameProps } from '../../../utils/frameProps';

const reactSelectClassNamePrefix = 'react-select';

Expand Down
13 changes: 12 additions & 1 deletion packages/eslint/src/importConfig.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import pluginImport from 'eslint-plugin-import';
import path from 'path';
import { fileURLToPath } from 'url';
import pluginImport from 'eslint-plugin-import';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
Expand Down Expand Up @@ -39,6 +39,16 @@ export const importConfig = [
allowObject: true,
},
],
'sort-imports': [
1,
{
ignoreCase: false,
ignoreDeclarationSort: true, // don't want to sort import lines, use eslint-plugin-import instead
ignoreMemberSort: false,
memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
allowSeparatedGroups: true,
},
],
'import/order': [
'warn',
{
Expand All @@ -56,6 +66,7 @@ export const importConfig = [
],
pathGroupsExcludedImportTypes: ['internal', 'react'],
'newlines-between': 'always',
alphabetize: { order: 'asc' },
},
],
'import/no-extraneous-dependencies': [
Expand Down
12 changes: 6 additions & 6 deletions packages/eslint/src/index.mjs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import globals from 'globals';
import jsxA11y from 'eslint-plugin-jsx-a11y';
import globals from 'globals';

import { reactConfig } from './reactConfig.mjs';
import { chaiFriendlyConfig } from './chaiFriendlyConfig.mjs';
import { globalNoExtraneousDependenciesDevDependencies, importConfig } from './importConfig.mjs';
import { javascriptConfig } from './javascriptConfig.mjs';
import { typescriptConfig } from './typescriptConfig.mjs';
import { importConfig, globalNoExtraneousDependenciesDevDependencies } from './importConfig.mjs';
import { jestConfig } from './jestConfig.mjs';
import { javascriptNodejsConfig } from './javascriptNodejsConfig.mjs';
import { jestConfig } from './jestConfig.mjs';
import { localRulesConfig } from './localRulesConfig.mjs';
import { chaiFriendlyConfig } from './chaiFriendlyConfig.mjs';
import { reactConfig } from './reactConfig.mjs';
import { typescriptConfig } from './typescriptConfig.mjs';

export { globalNoExtraneousDependenciesDevDependencies };

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { step } from '../../common';
import { MetadataBaseActions } from './metadataBaseActions';
import { step } from '../../common';

export class AccountMetadataActions extends MetadataBaseActions {
readonly addLabelButton = (accountId: string) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ import { Locator, Page, expect } from '@playwright/test';

import { TrezorUserEnvLink } from '@trezor/trezor-user-env-link';

import { step } from '../../common';
import { MetadataProvider } from '../../mocks/metadataProviderMock';
import { DevicePromptActions } from '../devicePromptActions';
import { step } from '../../common';
import { AccountMetadataActions } from './accountMetadataActions';
import { AddressMetadataActions } from './addressMetadataActions';
import { OutputMetadataActions } from './outputMetadataActions';
import { WalletMetadataActions } from './walletMetadataActions';
import { AddressMetadataActions } from './addressMetadataActions';

export class MetadataActions {
readonly metadataModal: Locator;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { step } from '../../common';
import { MetadataBaseActions } from './metadataBaseActions';
import { step } from '../../common';

export class OutputMetadataActions extends MetadataBaseActions {
readonly outputLabel = (outputId: string, txNumber: number) =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { step } from '../../common';
import { MetadataBaseActions } from './metadataBaseActions';
import { step } from '../../common';

export class WalletMetadataActions extends MetadataBaseActions {
private readonly walletSelectorBeginPart = '[data-testid^="@metadata/walletLabel/"]';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { METADATA_LABELING } from '@trezor/suite/src/actions/suite/constants';

import { AccountLabelId } from '../../support/enums/accountLabelId';
import { test, expect } from '../../support/fixtures';
import { expect, test } from '../../support/fixtures';
import { MetadataProvider } from '../../support/mocks/metadataProviderMock';

const providers = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { test, expect } from '../../support/fixtures';
import { expect, test } from '../../support/fixtures';
import { MetadataProvider } from '../../support/mocks/metadataProviderMock';

const standardWalletIndex = 0;
Expand Down
1 change: 1 addition & 0 deletions packages/suite-desktop-ui/src/Main.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable import/order */
import { Provider as ReduxProvider } from 'react-redux';
import { Router as RouterProvider } from 'react-router-dom';
import { HelmetProvider } from 'react-helmet-async';
Expand Down
1 change: 1 addition & 0 deletions packages/suite-web/src/Main.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable import/order */
import { Provider as ReduxProvider } from 'react-redux';
import { Router as RouterProvider } from 'react-router-dom';
import { HelmetProvider } from 'react-helmet-async';
Expand Down
3 changes: 2 additions & 1 deletion packages/suite/src/components/suite/index.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable import/order */
import { AccountLabel } from './AccountLabel';
import { DeviceConfirmImage } from './DeviceConfirmImage';
import { CheckItem } from './CheckItem';
Expand All @@ -17,8 +18,8 @@ import { Translation } from './Translation';
import {
AccountLabeling,
AddressLabeling,
WalletLabeling,
MetadataLabeling,
WalletLabeling,
useGetWalletLabel,
} from './labeling';
import { FormattedCryptoAmount } from './FormattedCryptoAmount';
Expand Down
7 changes: 4 additions & 3 deletions packages/suite/src/hooks/wallet/__tests__/useRbfForm.test.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { screen } from '@testing-library/react';

import TrezorConnect from '@trezor/connect';
import { configureMockStore, initPreloadedState } from '@suite-common/test-utils';
import { ServerInfo } from '@trezor/blockchain-link-types';
import TrezorConnect from '@trezor/connect';

// eslint-disable-next-line import/order
import {
renderWithProviders,
waitForLoader,
actionSequence,
findByTestId,
renderWithProviders,
waitForLoader,
} from 'src/support/tests/hooksHelper';
import { ChangeFee } from 'src/components/suite/modals/ReduxModal/UserContextModal/TxDetailModal/ChangeFee/ChangeFee';
import { ReplaceTxButton } from 'src/components/suite/modals/ReduxModal/UserContextModal/TxDetailModal/ChangeFee/ReplaceTxButton';
Expand Down
1 change: 1 addition & 0 deletions packages/suite/src/middlewares/suite/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/* eslint-disable import/order */
import { logsMiddleware } from '@suite-common/logger';

import log from './logsMiddleware';
Expand Down
5 changes: 3 additions & 2 deletions packages/suite/src/middlewares/wallet/index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/* eslint-disable import/order */
import {
prepareFiatRatesMiddleware,
prepareAccountsMiddleware,
prepareBlockchainMiddleware,
prepareFiatRatesMiddleware,
prepareStakeMiddleware,
prepareAccountsMiddleware,
} from '@suite-common/wallet-core';
import { prepareTokenDefinitionsMiddleware } from '@suite-common/token-definitions';

Expand Down
3 changes: 2 additions & 1 deletion packages/suite/src/reducers/store.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* eslint-disable import/order */
// fixes bindActionCreators() https://github.com/reduxjs/redux-thunk/blob/e3d452948d5562b9ce871cc9391403219f83b4ff/extend-redux.d.ts#L11
/// <reference types="redux-thunk/extend-redux" />
import { configureStore, combineReducers } from '@reduxjs/toolkit';
import { combineReducers, configureStore } from '@reduxjs/toolkit';
import thunkMiddleware from 'redux-thunk';
import { createLogger } from 'redux-logger';

Expand Down
2 changes: 1 addition & 1 deletion scripts/check-workspace-resolutions.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import chalk from 'chalk';
import fs from 'fs';
import path from 'path';
import chalk from 'chalk';

import { getWorkspacesList } from './utils/getWorkspacesList';

Expand Down
6 changes: 3 additions & 3 deletions scripts/generatePackage.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import fsExtra from 'fs-extra';
import chalk from 'chalk';
import fs from 'fs';
import sortPackageJson from 'sort-package-json';
import fsExtra from 'fs-extra';
import prettier from 'prettier';
import chalk from 'chalk';
import sortPackageJson from 'sort-package-json';

import templatePackageJson from './package-template/package.json';
// todo: calling yarn generate-package failed on not resolving destructuring imports. default imports seem to work.
Expand Down
2 changes: 1 addition & 1 deletion scripts/githubAnalytics.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import 'dotenv/config';
import { Octokit } from 'octokit';
import chalk from 'chalk';
import { Octokit } from 'octokit';

if (!process.env.GH_TOKEN) {
console.log(chalk.red.bold('Missing GH_TOKEN env variable.'));
Expand Down
6 changes: 3 additions & 3 deletions scripts/updateProjectReferences.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import chalk from 'chalk';
import fs from 'fs';
import { minimatch } from 'minimatch';
import path from 'path';
import prettier from 'prettier';
import { minimatch } from 'minimatch';
import yargs from 'yargs';
import { hideBin } from 'yargs/helpers';
import chalk from 'chalk';

import { getWorkspacesList } from './utils/getWorkspacesList';
import { getPrettierConfig } from './utils/getPrettierConfig';
import { getWorkspacesList } from './utils/getWorkspacesList';

(async () => {
const { argv } = yargs(hideBin(process.argv))
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useMemo } from 'react';
import { useSelector } from 'react-redux';

import { BottomSheet, Button, Text } from '@suite-native/atoms';
import { selectFirmwareChangelog } from '@suite-common/wallet-core';
import { BottomSheet, Button, Text } from '@suite-native/atoms';
import { Translation } from '@suite-native/intl';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { TouchableOpacity } from 'react-native';
import { useState } from 'react';
import { TouchableOpacity } from 'react-native';

import { Text } from '@suite-native/atoms';
import { Translation } from '@suite-native/intl';
import { Icon } from '@suite-native/icons';
import { Translation } from '@suite-native/intl';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

import { FirmwareChangelog } from './FirmwareChangelog';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import {
} from '@suite-native/navigation';
import { prepareNativeStyle, useNativeStyles } from '@trezor/styles';

import { FirmwareUpdateVersionCard } from './FirmwareVersionCard';
import { FirmwareChangelogButton } from './FirmwareChangelogButton';
import { FirmwareUpdateVersionCard } from './FirmwareVersionCard';

const firmwareUpdateButtonStyle = prepareNativeStyle(utils => ({
marginHorizontal: utils.spacings.sp16,
Expand Down

0 comments on commit 70e6c68

Please sign in to comment.