diff --git a/packages/app/.eslintrc.cjs b/packages/app/.eslintrc.cjs index 393729b6..46f61f4c 100644 --- a/packages/app/.eslintrc.cjs +++ b/packages/app/.eslintrc.cjs @@ -1,7 +1,12 @@ module.exports = { - extends: ["eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react/recommended"], + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:react-hooks/recommended", + ], parser: "@typescript-eslint/parser", - plugins: ["@typescript-eslint", "formatjs"], + plugins: ["@typescript-eslint", "formatjs", "react-refresh"], rules: { "formatjs/enforce-id": [ "error", @@ -10,6 +15,8 @@ module.exports = { }, ], "react/react-in-jsx-scope": "off", + "react-hooks/exhaustive-deps": "off", + "react-refresh/only-export-components": "warn", }, root: true, ignorePatterns: ["build/", "*.test.ts", "*.js"], diff --git a/packages/app/package.json b/packages/app/package.json index a3b92b9f..493e94c8 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -100,6 +100,8 @@ "eslint": "^8.48.0", "eslint-plugin-formatjs": "^4.11.3", "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-refresh": "^0.4.5", "postcss": "^8.4.31", "postcss-preset-env": "^9.2.0", "prettier": "2.8.3", diff --git a/packages/app/src/Element/Button/AsyncButton.tsx b/packages/app/src/Element/Button/AsyncButton.tsx index 1876b10b..3365b8c0 100644 --- a/packages/app/src/Element/Button/AsyncButton.tsx +++ b/packages/app/src/Element/Button/AsyncButton.tsx @@ -29,4 +29,6 @@ const AsyncButton = React.forwardRef((props ); }); +AsyncButton.displayName = "AsyncButton"; + export default AsyncButton; diff --git a/packages/app/src/Element/Embed/ZapstrEmbed.tsx b/packages/app/src/Element/Embed/ZapstrEmbed.tsx index 648f31b2..a213c93f 100644 --- a/packages/app/src/Element/Embed/ZapstrEmbed.tsx +++ b/packages/app/src/Element/Embed/ZapstrEmbed.tsx @@ -24,7 +24,7 @@ export default function ZapstrEmbed({ ev }: { ev: NostrEvent }) {