diff --git a/.eslintrc.json b/.eslintrc.json index e203a0b9e..72618e9bd 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -48,6 +48,7 @@ }], "@typescript-eslint/no-empty-function": ["warn", { "allow": ["arrowFunctions"] }], "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-invalid-void-type": ["warn", { "allowInGenericTypeArguments": true }], "@typescript-eslint/no-namespace": "off", "@typescript-eslint/no-unused-vars": ["warn", { "vars": "all", @@ -55,13 +56,19 @@ }], "@typescript-eslint/no-use-before-define": "off", "@typescript-eslint/prefer-interface": "off", - "react/no-unescaped-entities": ["error", {"forbid": [{ + //"react/no-access-state-in-setstate": "warn", (requires restructuring of "app.tsx") + "react/no-direct-mutation-state": "warn", + "react/no-render-return-value": "warn", + "react/no-string-refs": "warn", + "react/no-unescaped-entities": ["warn", {"forbid": [{ "char": ">", "alternatives": [">"] }, { "char": "}", "alternatives": ["}"] }]}], + "react/no-unused-prop-types": "warn", + "react/no-unused-state": "warn", "curly": ["warn", "all"], "eol-last": "warn", "for-direction": "warn", diff --git a/src/renderer/components/ConfirmElement.tsx b/src/renderer/components/ConfirmElement.tsx index 9bd3d2746..5b555e3fa 100644 --- a/src/renderer/components/ConfirmElement.tsx +++ b/src/renderer/components/ConfirmElement.tsx @@ -16,7 +16,7 @@ export type ConfirmElementArgs = { export type ConfirmElementProps = { /** Function that renders the element (render prop). */ - render?: (args: ConfirmElementArgs) => JSX.Element | void; + render?: (args: ConfirmElementArgs) => JSX.Element | undefined; /** Number of activations needed to confirm. */ activationLimit?: number; /** Called when confirmed. */ diff --git a/src/renderer/components/EditableTextElement.tsx b/src/renderer/components/EditableTextElement.tsx index 37f9cc8d3..9e2886349 100644 --- a/src/renderer/components/EditableTextElement.tsx +++ b/src/renderer/components/EditableTextElement.tsx @@ -30,7 +30,7 @@ export type EditableTextElementKeyArgs = { export type EditableTextElementProps = { /** Function that renders the text element (render prop). */ - children?: (args: EditableTextElementArgs) => JSX.Element | void; + children?: (args: EditableTextElementArgs) => JSX.Element | undefined; /** If the element is editable (if it can enter "edit mode"). */ editable?: boolean; /** Called when editing is confirmed (when the user is done editing and attempts to "lock in" the edited text). */ diff --git a/src/renderer/components/RightTagCategoriesSidebar.tsx b/src/renderer/components/RightTagCategoriesSidebar.tsx index 10301186a..b09d1165d 100644 --- a/src/renderer/components/RightTagCategoriesSidebar.tsx +++ b/src/renderer/components/RightTagCategoriesSidebar.tsx @@ -25,7 +25,6 @@ type OwnProps = { export type RightTagCategoriesSidebarProps = OwnProps & WithPreferencesProps; type RRightTagCategoriesSidebarState = { - currentTagInput: string; }; export interface RightTagCategoriesSidebar { @@ -39,9 +38,6 @@ export class RightTagCategoriesSidebar extends React.Component) => { - this.setState({ currentTagInput: event.currentTarget.value }); - } - /** When a key is pressed while an input field is selected (except for multiline fields) */ onInputKeyDown = (event: React.KeyboardEvent): void => { // if (event.key === 'Enter') { this.props.onSaveGame(); } diff --git a/src/renderer/components/pages/CuratePage.tsx b/src/renderer/components/pages/CuratePage.tsx index 4dfd60ee2..1f613ac22 100644 --- a/src/renderer/components/pages/CuratePage.tsx +++ b/src/renderer/components/pages/CuratePage.tsx @@ -334,7 +334,7 @@ export function CuratePage(props: CuratePageProps) { date: date, saveCuration: props.preferencesData.saveImportedCurations, } - ).then(res => new Promise((resolve, reject) => { + ).then(res => new Promise((resolve, reject) => { if (res.data && res.data.error) { reject(res.data.error); } else { diff --git a/src/renderer/components/pages/TagCategoriesPage.tsx b/src/renderer/components/pages/TagCategoriesPage.tsx index b354b11cb..a17db3423 100644 --- a/src/renderer/components/pages/TagCategoriesPage.tsx +++ b/src/renderer/components/pages/TagCategoriesPage.tsx @@ -29,8 +29,6 @@ export type TagCategoriesPageState = { selectedCategoryId?: number; /** Whether we're editing a tag or not */ isEditing: boolean; - /** Current total tag results */ - categoriesTotal: number; } export interface TagCategoriesPage { @@ -43,8 +41,7 @@ export class TagCategoriesPage extends React.Component