diff --git a/eslint.config.js b/eslint.config.js index 9a8bb805..c3a5e843 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,7 +1,6 @@ // For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format import js from '@eslint/js' import compat from 'eslint-plugin-compat' -import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import storybook from 'eslint-plugin-storybook' @@ -13,7 +12,7 @@ import tseslint from 'typescript-eslint' export default defineConfig( { ignores: ['dist', './.storybook/**', './storybook-static/**'] }, { - extends: [js.configs.recommended, ...tseslint.configs.recommended, eslintPluginPrettierRecommended], + extends: [js.configs.recommended, ...tseslint.configs.recommended], files: ['**/*.{ts,tsx}'], languageOptions: { ecmaVersion: 2023, @@ -38,11 +37,27 @@ export default defineConfig( ], }, }, + { + ignores: [ + './src/components/ui/*.tsx', // shadcn components + './src/**/*.stories.tsx', + './src/components/settings/CollaboratorFeesForm.tsx', // TODO: remove + ], + files: ['./src/**/*.{ts,tsx}'], + languageOptions: { + parserOptions: { + projectService: true, + }, + }, + extends: [...tseslint.configs.recommendedTypeChecked], + rules: { + '@typescript-eslint/no-redundant-type-constituents': ['off'], // shows intent + }, + }, { extends: [eslintPluginUnicorn.configs.recommended], ignores: [ './src/components/ui/*.tsx', // shadcn components - './src/components/earn/CreateFidelityBondDialog.tsx', // TODO: remove './src/components/settings/CollaboratorFeesForm.tsx', // TODO: remove ], rules: { @@ -60,11 +75,7 @@ export default defineConfig( 'unicorn/catch-error-name': [ 'error', { - ignore: [ - String.raw`^error\d*$`, - '_ignoredOnPurpose', - 'e', // TODO: remove - ], + ignore: ['_ignoredOnPurpose'], }, ], 'unicorn/numeric-separators-style': [ diff --git a/package-lock.json b/package-lock.json index 46217aa8..410f6fe7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,9 +72,7 @@ "@vitest/coverage-v8": "4.0.9", "conventional-changelog": "7.1.1", "eslint": "9.39.2", - "eslint-config-prettier": "10.1.8", "eslint-plugin-compat": "6.1.0", - "eslint-plugin-prettier": "5.5.5", "eslint-plugin-react-hooks": "7.0.1", "eslint-plugin-react-refresh": "0.5.0", "eslint-plugin-storybook": "10.2.5", @@ -1353,19 +1351,6 @@ "url": "https://paulmillr.com/funding/" } }, - "node_modules/@pkgr/core": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", - "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/pkgr" - } - }, "node_modules/@playwright/test": { "version": "1.58.1", "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.58.1.tgz", @@ -6289,23 +6274,6 @@ } } }, - "node_modules/eslint-config-prettier": { - "version": "10.1.8", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", - "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", - "dev": true, - "license": "MIT", - "peer": true, - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "funding": { - "url": "https://opencollective.com/eslint-config-prettier" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, "node_modules/eslint-plugin-compat": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-6.1.0.tgz", @@ -6355,37 +6323,6 @@ "node": ">=10" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.5.5.tgz", - "integrity": "sha512-hscXkbqUZ2sPithAuLm5MXL+Wph+U7wHngPBv9OMWwlP8iaflyxpjTYZkmdgB4/vPIhemRlBEoLrH7UC1n7aUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.1", - "synckit": "^0.11.12" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": ">= 7.0.0 <10.0.0 || >=10.1.0", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } - } - }, "node_modules/eslint-plugin-react-hooks": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-7.0.1.tgz", @@ -6644,13 +6581,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -8540,19 +8470,6 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", - "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/prettier-plugin-tailwindcss": { "version": "0.7.2", "resolved": "https://registry.npmjs.org/prettier-plugin-tailwindcss/-/prettier-plugin-tailwindcss-0.7.2.tgz", @@ -9724,22 +9641,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/synckit": { - "version": "0.11.12", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.12.tgz", - "integrity": "sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@pkgr/core": "^0.2.9" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/synckit" - } - }, "node_modules/tailwind-merge": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.4.0.tgz", diff --git a/package.json b/package.json index 9eed5d72..9674b380 100644 --- a/package.json +++ b/package.json @@ -115,9 +115,7 @@ "@vitest/coverage-v8": "4.0.9", "conventional-changelog": "7.1.1", "eslint": "9.39.2", - "eslint-config-prettier": "10.1.8", "eslint-plugin-compat": "6.1.0", - "eslint-plugin-prettier": "5.5.5", "eslint-plugin-react-hooks": "7.0.1", "eslint-plugin-react-refresh": "0.5.0", "eslint-plugin-storybook": "10.2.5", diff --git a/src/components/LogsContent.tsx b/src/components/LogsContent.tsx index 9a14abfb..c523695a 100644 --- a/src/components/LogsContent.tsx +++ b/src/components/LogsContent.tsx @@ -91,7 +91,12 @@ function LogViewer({ value, refresh }: LogViewerProps) { {t('global.download')} - - @@ -159,9 +164,10 @@ export const LogsPage = () => { .catch((error) => { if (signal.aborted) return + const reason = (error instanceof Error ? error.message : undefined) || t('global.errors.reason_unknown') const errorMessage = t('logs.error_loading_logs_failed', { /* TODO: add reason to i18n string */ - reason: error.message || t('global.errors.reason_unknown'), + reason, }) if (isDevMode()) { @@ -181,7 +187,7 @@ export const LogsPage = () => { if (!isInitialized) { const abortCtrl = new AbortController() - refresh(abortCtrl.signal).finally(() => { + void refresh(abortCtrl.signal).finally(() => { if (abortCtrl.signal.aborted) return setIsInitialized(true) }) diff --git a/src/components/MainWalletPage.tsx b/src/components/MainWalletPage.tsx index 76b61d4e..2a710747 100644 --- a/src/components/MainWalletPage.tsx +++ b/src/components/MainWalletPage.tsx @@ -93,7 +93,7 @@ export default function MainWalletPage({ walletFileName }: MainWalletPageProps) {t('global.errors.error_loading_wallet_failed', { reason: error.message || t('global.errors.reason_unknown'), })} - @@ -145,7 +145,7 @@ export default function MainWalletPage({ walletFileName }: MainWalletPageProps)
- diff --git a/src/components/SwitchWalletPage.tsx b/src/components/SwitchWalletPage.tsx index b3fb6984..93fe1f9c 100644 --- a/src/components/SwitchWalletPage.tsx +++ b/src/components/SwitchWalletPage.tsx @@ -186,7 +186,7 @@ const SwitchWalletPage = ({ walletFileName }: SwitchWalletPageProps) => {
- + diff --git a/src/components/earn/CreateFidelityBondDialog/CreateFidelityBondDialog.tsx b/src/components/earn/CreateFidelityBondDialog/CreateFidelityBondDialog.tsx index 95277723..263134c7 100644 --- a/src/components/earn/CreateFidelityBondDialog/CreateFidelityBondDialog.tsx +++ b/src/components/earn/CreateFidelityBondDialog/CreateFidelityBondDialog.tsx @@ -45,7 +45,7 @@ export function CreateFidelityBondDialog({ open, onOpenChange, walletFileName }: -