From 9922ca43f9dca935cacf90f3db61659274b1c6c7 Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Tue, 15 Jun 2021 21:39:19 +0300 Subject: [PATCH 01/21] update next@11 --- next.config.js | 5 +- package-lock.json | 176 ++++++++++++++++++++++------------------------ package.json | 2 +- 3 files changed, 88 insertions(+), 95 deletions(-) diff --git a/next.config.js b/next.config.js index 45f32ab..9db006e 100644 --- a/next.config.js +++ b/next.config.js @@ -10,8 +10,5 @@ module.exports = withBundleAnalyzer({ "static.sahkoinsinoorikilta.fi", "api.dev.sahkoinsinoorikilta.fi", ], - }, - future: { - webpack5: true, - }, + } }); diff --git a/package-lock.json b/package-lock.json index 61800e3..5e01a64 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "fast-deep-equal": "^3.1.3", "js-cookie": "^2.2.1", "lodash": "^4.17.21", - "next": "^10.2.3", + "next": "^11.0.0", "normalize.css": "^8.0.1", "react": "^17.0.2", "react-beautiful-dnd": "^13.1.0", @@ -1800,19 +1800,19 @@ } }, "node_modules/@next/env": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-10.2.3.tgz", - "integrity": "sha512-uBOjRBjsWC4C8X3DfmWWP6ekwLnf2JCCwQX9KVnJtJkqfDsv1yQPakdOEwvJzXQc3JC/v5KKffYPVmV2wHXCgQ==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.0.tgz", + "integrity": "sha512-VKpmDvTYeCpEQjREg3J4pCmVs/QjEzoLmkM8shGFK6e9AmFd0G9QXOL8HGA8qKhy/XmNb7dHeMqrcMiBua4OgA==" }, "node_modules/@next/polyfill-module": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-10.2.3.tgz", - "integrity": "sha512-OkeY4cLhzfYbXxM4fd+6V4s5pTPuyfKSlavItfNRA6PpS7t1/R6YjO7S7rB8tu1pbTGuDHGIdE1ioDv15bAbDQ==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.0.tgz", + "integrity": "sha512-gydtFzRqsT549U8+sY8382I/f4HFcelD8gdUGnAofQJa/jEU1jkxmjCHC8tmEiyeMLidl7iDZgchfSCpmMzzUg==" }, "node_modules/@next/react-dev-overlay": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-10.2.3.tgz", - "integrity": "sha512-E6g2jws4YW94l0lMMopBVKIZK2mEHfSBvM0d9dmzKG9L/A/kEq6LZCB4SiwGJbNsAdlk2y3USDa0oNbpA+m5Kw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.0.tgz", + "integrity": "sha512-q+Wp+eStEMThe77zxdeJ/nbuODkHR6P+/dfUqYXZSqbLf6x5c5xwLBauwwVbkCYFZpAlDuL8Jk8QSAH1OsqC2w==", "dependencies": { "@babel/code-frame": "7.12.11", "anser": "1.4.9", @@ -1827,8 +1827,8 @@ "strip-ansi": "6.0.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17", - "react-dom": "^16.9.0 || ^17" + "react": "^17.0.2", + "react-dom": "^17.0.2" } }, "node_modules/@next/react-dev-overlay/node_modules/chalk": { @@ -1847,9 +1847,9 @@ } }, "node_modules/@next/react-refresh-utils": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-10.2.3.tgz", - "integrity": "sha512-qtBF56vPC6d6a8p7LYd0iRjW89fhY80kAIzmj+VonvIGjK/nymBjcFUhbKiMFqlhsarCksnhwX+Zmn95Dw9qvA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.0.tgz", + "integrity": "sha512-hi5eY+KBn4QGtUv7VL2OptdM33fI2hxhd7+omOFmAK+S0hDWhg1uqHqqGJk0W1IfqlWEzzL10WvTJDPRAtDugQ==", "peerDependencies": { "react-refresh": "0.8.3", "webpack": "^4 || ^5" @@ -1895,25 +1895,6 @@ "node": ">= 8" } }, - "node_modules/@opentelemetry/api": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.14.0.tgz", - "integrity": "sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==", - "dependencies": { - "@opentelemetry/context-base": "^0.14.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/@opentelemetry/context-base": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.14.0.tgz", - "integrity": "sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==", - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@polka/url": { "version": "1.0.0-next.15", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", @@ -6447,6 +6428,20 @@ "node": ">= 4" } }, + "node_modules/image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -8043,17 +8038,16 @@ "dev": true }, "node_modules/next": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/next/-/next-10.2.3.tgz", - "integrity": "sha512-dkM1mIfnORtGyzw/Yme8RdqNxlCMZyi4Lqj56F01/yHbe1ZtOaJ0cyqqRB4RGiPhjGGh0319f8ddjDyO1605Ow==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/next/-/next-11.0.0.tgz", + "integrity": "sha512-1OA0ccCTwVtdLats/1v7ReiBVx+Akya0UVhHo9IBr8ZkpDI3/SGNcaruJBp5agy8ROF97VDKkZamoUXxRB9NUA==", "dependencies": { "@babel/runtime": "7.12.5", "@hapi/accept": "5.0.2", - "@next/env": "10.2.3", - "@next/polyfill-module": "10.2.3", - "@next/react-dev-overlay": "10.2.3", - "@next/react-refresh-utils": "10.2.3", - "@opentelemetry/api": "0.14.0", + "@next/env": "11.0.0", + "@next/polyfill-module": "11.0.0", + "@next/react-dev-overlay": "11.0.0", + "@next/react-refresh-utils": "11.0.0", "assert": "2.0.0", "ast-types": "0.13.2", "browserify-zlib": "0.2.0", @@ -8071,6 +8065,7 @@ "find-cache-dir": "3.3.1", "get-orientation": "1.1.2", "https-browserify": "1.0.0", + "image-size": "1.0.0", "jest-worker": "27.0.0-next.5", "native-url": "0.3.4", "node-fetch": "2.6.1", @@ -8085,7 +8080,7 @@ "prop-types": "15.7.2", "querystring-es3": "0.2.1", "raw-body": "2.4.1", - "react-is": "16.13.1", + "react-is": "17.0.2", "react-refresh": "0.8.3", "stream-browserify": "3.0.0", "stream-http": "3.1.1", @@ -8102,13 +8097,13 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=10.13.0" + "node": ">=12.0.0" }, "peerDependencies": { "fibers": ">= 3.1.0", "node-sass": "^4.0.0 || ^5.0.0", - "react": "^16.6.0 || ^17", - "react-dom": "^16.6.0 || ^17", + "react": "^17.0.2", + "react-dom": "^17.0.2", "sass": "^1.3.0" }, "peerDependenciesMeta": { @@ -8201,11 +8196,6 @@ "node": ">=4" } }, - "node_modules/next/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "node_modules/next/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -9961,6 +9951,14 @@ "node": ">=0.4.x" } }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -15579,19 +15577,19 @@ } }, "@next/env": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/env/-/env-10.2.3.tgz", - "integrity": "sha512-uBOjRBjsWC4C8X3DfmWWP6ekwLnf2JCCwQX9KVnJtJkqfDsv1yQPakdOEwvJzXQc3JC/v5KKffYPVmV2wHXCgQ==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.0.tgz", + "integrity": "sha512-VKpmDvTYeCpEQjREg3J4pCmVs/QjEzoLmkM8shGFK6e9AmFd0G9QXOL8HGA8qKhy/XmNb7dHeMqrcMiBua4OgA==" }, "@next/polyfill-module": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-10.2.3.tgz", - "integrity": "sha512-OkeY4cLhzfYbXxM4fd+6V4s5pTPuyfKSlavItfNRA6PpS7t1/R6YjO7S7rB8tu1pbTGuDHGIdE1ioDv15bAbDQ==" + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.0.tgz", + "integrity": "sha512-gydtFzRqsT549U8+sY8382I/f4HFcelD8gdUGnAofQJa/jEU1jkxmjCHC8tmEiyeMLidl7iDZgchfSCpmMzzUg==" }, "@next/react-dev-overlay": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-10.2.3.tgz", - "integrity": "sha512-E6g2jws4YW94l0lMMopBVKIZK2mEHfSBvM0d9dmzKG9L/A/kEq6LZCB4SiwGJbNsAdlk2y3USDa0oNbpA+m5Kw==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/react-dev-overlay/-/react-dev-overlay-11.0.0.tgz", + "integrity": "sha512-q+Wp+eStEMThe77zxdeJ/nbuODkHR6P+/dfUqYXZSqbLf6x5c5xwLBauwwVbkCYFZpAlDuL8Jk8QSAH1OsqC2w==", "requires": { "@babel/code-frame": "7.12.11", "anser": "1.4.9", @@ -15618,9 +15616,9 @@ } }, "@next/react-refresh-utils": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-10.2.3.tgz", - "integrity": "sha512-qtBF56vPC6d6a8p7LYd0iRjW89fhY80kAIzmj+VonvIGjK/nymBjcFUhbKiMFqlhsarCksnhwX+Zmn95Dw9qvA==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/react-refresh-utils/-/react-refresh-utils-11.0.0.tgz", + "integrity": "sha512-hi5eY+KBn4QGtUv7VL2OptdM33fI2hxhd7+omOFmAK+S0hDWhg1uqHqqGJk0W1IfqlWEzzL10WvTJDPRAtDugQ==", "requires": {} }, "@nodelib/fs.scandir": { @@ -15649,19 +15647,6 @@ "fastq": "^1.6.0" } }, - "@opentelemetry/api": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-0.14.0.tgz", - "integrity": "sha512-L7RMuZr5LzMmZiQSQDy9O1jo0q+DaLy6XpYJfIGfYSfoJA5qzYwUP3sP1uMIQ549DvxAgM3ng85EaPTM/hUHwQ==", - "requires": { - "@opentelemetry/context-base": "^0.14.0" - } - }, - "@opentelemetry/context-base": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/context-base/-/context-base-0.14.0.tgz", - "integrity": "sha512-sDOAZcYwynHFTbLo6n8kIbLiVF3a3BLkrmehJUyEbT9F+Smbi47kLGS2gG2g0fjBLR/Lr1InPD7kXL7FaTqEkw==" - }, "@polka/url": { "version": "1.0.0-next.15", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", @@ -19218,6 +19203,14 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, + "image-size": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", + "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", + "requires": { + "queue": "6.0.2" + } + }, "import-fresh": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", @@ -20384,17 +20377,16 @@ "dev": true }, "next": { - "version": "10.2.3", - "resolved": "https://registry.npmjs.org/next/-/next-10.2.3.tgz", - "integrity": "sha512-dkM1mIfnORtGyzw/Yme8RdqNxlCMZyi4Lqj56F01/yHbe1ZtOaJ0cyqqRB4RGiPhjGGh0319f8ddjDyO1605Ow==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/next/-/next-11.0.0.tgz", + "integrity": "sha512-1OA0ccCTwVtdLats/1v7ReiBVx+Akya0UVhHo9IBr8ZkpDI3/SGNcaruJBp5agy8ROF97VDKkZamoUXxRB9NUA==", "requires": { "@babel/runtime": "7.12.5", "@hapi/accept": "5.0.2", - "@next/env": "10.2.3", - "@next/polyfill-module": "10.2.3", - "@next/react-dev-overlay": "10.2.3", - "@next/react-refresh-utils": "10.2.3", - "@opentelemetry/api": "0.14.0", + "@next/env": "11.0.0", + "@next/polyfill-module": "11.0.0", + "@next/react-dev-overlay": "11.0.0", + "@next/react-refresh-utils": "11.0.0", "assert": "2.0.0", "ast-types": "0.13.2", "browserify-zlib": "0.2.0", @@ -20412,6 +20404,7 @@ "find-cache-dir": "3.3.1", "get-orientation": "1.1.2", "https-browserify": "1.0.0", + "image-size": "1.0.0", "jest-worker": "27.0.0-next.5", "native-url": "0.3.4", "node-fetch": "2.6.1", @@ -20426,7 +20419,7 @@ "prop-types": "15.7.2", "querystring-es3": "0.2.1", "raw-body": "2.4.1", - "react-is": "16.13.1", + "react-is": "17.0.2", "react-refresh": "0.8.3", "stream-browserify": "3.0.0", "stream-http": "3.1.1", @@ -20489,11 +20482,6 @@ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -21894,6 +21882,14 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" }, + "queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "requires": { + "inherits": "~2.0.3" + } + }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", diff --git a/package.json b/package.json index 3c7034b..de078c6 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "fast-deep-equal": "^3.1.3", "js-cookie": "^2.2.1", "lodash": "^4.17.21", - "next": "^10.2.3", + "next": "^11.0.0", "normalize.css": "^8.0.1", "react": "^17.0.2", "react-beautiful-dnd": "^13.1.0", From a20dcca1d7bacc570274e5e3c3bfaf689cea04ca Mon Sep 17 00:00:00 2001 From: Aarni Halinen Date: Tue, 15 Jun 2021 22:05:41 +0300 Subject: [PATCH 02/21] setup next-eslint --- .eslintrc.json | 40 ++--------- package-lock.json | 70 ++++++++++++++++++- package.json | 8 +-- src/components/Favicons.tsx | 5 +- src/components/HTMLLogo.tsx | 5 +- .../Widgets/SectionDividerWidget.tsx | 4 +- .../SignupQuestionsWidget/OptionsWidget.tsx | 7 +- src/pages/404.tsx | 4 +- src/pages/_app.tsx | 3 +- src/pages/_document.tsx | 3 +- src/pages/admin/login.tsx | 6 +- src/pages/admin/signups/[id]/list.tsx | 5 +- src/views/ContactsPage/ContactsPageView.tsx | 7 +- 13 files changed, 108 insertions(+), 59 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 91b8abe..e2c2d75 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,42 +1,19 @@ { - "root": true, - "env": { - "browser": true, - "commonjs": true, - "es6": true, - "node": true - }, - "extends": [ - "eslint:recommended", - "plugin:react/recommended", - "plugin:import/errors", - "plugin:import/warnings", - "plugin:jsx-a11y/recommended", - "plugin:react-hooks/recommended", - "plugin:@typescript-eslint/recommended", - "airbnb-typescript" - ], - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, "parser": "@typescript-eslint/parser", "parserOptions": { "ecmaFeatures": { "jsx": true }, - "ecmaVersion": 2018, "sourceType": "module", "project": "./tsconfig.json" }, - "plugins": [], - "settings": { - "react": { - "version": "detect" - } - }, + "extends": [ + "plugin:@typescript-eslint/recommended", + "airbnb-typescript", + "next", + "next/core-web-vitals" + ], "rules": { - "@typescript-eslint/naming-convention": "off", "max-len": [ "warn", 240 @@ -49,10 +26,7 @@ "react/jsx-props-no-spreading": "off", "react/prop-types": "off", // Temp - "react/jsx-one-expression-per-line": "off", - "react/no-array-index-key": "off", - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", + "react/no-array-index-key": "warn", "jsx-a11y/label-has-associated-control": "off", "jsx-a11y/click-events-have-key-events": "off", "jsx-a11y/no-noninteractive-element-interactions": "off", diff --git a/package-lock.json b/package-lock.json index 5e01a64..45c8d15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,10 +45,8 @@ "babel-plugin-styled-components": "^1.12.0", "eslint": "^7.28.0", "eslint-config-airbnb-typescript": "^12.3.1", - "eslint-plugin-import": "^2.23.4", + "eslint-config-next": "^11.0.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", - "eslint-plugin-react-hooks": "^4.2.0", "husky": "^6.0.0", "next-sitemap": "^1.6.116", "npm-run-all": "^4.1.5", @@ -1804,6 +1802,12 @@ "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.0.tgz", "integrity": "sha512-VKpmDvTYeCpEQjREg3J4pCmVs/QjEzoLmkM8shGFK6e9AmFd0G9QXOL8HGA8qKhy/XmNb7dHeMqrcMiBua4OgA==" }, + "node_modules/@next/eslint-plugin-next": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-11.0.0.tgz", + "integrity": "sha512-fPZ0904yY1box6bRpR9rJqIkNxJdvzzxH7doXS+cdjyBAdptMR7wj3mcx1hEikBHzWduU8BOXBvRg2hWc09YDQ==", + "dev": true + }, "node_modules/@next/polyfill-module": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.0.tgz", @@ -1900,6 +1904,12 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz", + "integrity": "sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==", + "dev": true + }, "node_modules/@stylelint/postcss-css-in-js": { "version": "0.37.2", "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", @@ -4775,6 +4785,32 @@ "eslint-config-airbnb-base": "^14.2.0" } }, + "node_modules/eslint-config-next": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-11.0.0.tgz", + "integrity": "sha512-pmatg4zqb5Vygu2HrSPxbsCBudXO9OZQUMKQCyrPKRvfL8PJ3lOIOzzwsiW68eMPXOZwOc1yxTRZWKNY8OJT0w==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "11.0.0", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + }, + "peerDependencies": { + "eslint": "^7.23.0", + "next": ">=10.2.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", @@ -15581,6 +15617,12 @@ "resolved": "https://registry.npmjs.org/@next/env/-/env-11.0.0.tgz", "integrity": "sha512-VKpmDvTYeCpEQjREg3J4pCmVs/QjEzoLmkM8shGFK6e9AmFd0G9QXOL8HGA8qKhy/XmNb7dHeMqrcMiBua4OgA==" }, + "@next/eslint-plugin-next": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-11.0.0.tgz", + "integrity": "sha512-fPZ0904yY1box6bRpR9rJqIkNxJdvzzxH7doXS+cdjyBAdptMR7wj3mcx1hEikBHzWduU8BOXBvRg2hWc09YDQ==", + "dev": true + }, "@next/polyfill-module": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/@next/polyfill-module/-/polyfill-module-11.0.0.tgz", @@ -15652,6 +15694,12 @@ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.15.tgz", "integrity": "sha512-15spi3V28QdevleWBNXE4pIls3nFZmBbUGrW9IVPwiQczuSb9n76TCB4bsk8TSel+I1OkHEdPhu5QKMfY6rQHA==" }, + "@rushstack/eslint-patch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz", + "integrity": "sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==", + "dev": true + }, "@stylelint/postcss-css-in-js": { "version": "0.37.2", "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz", @@ -17942,6 +17990,22 @@ "eslint-config-airbnb-base": "^14.2.0" } }, + "eslint-config-next": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-11.0.0.tgz", + "integrity": "sha512-pmatg4zqb5Vygu2HrSPxbsCBudXO9OZQUMKQCyrPKRvfL8PJ3lOIOzzwsiW68eMPXOZwOc1yxTRZWKNY8OJT0w==", + "dev": true, + "requires": { + "@next/eslint-plugin-next": "11.0.0", + "@rushstack/eslint-patch": "^1.0.6", + "@typescript-eslint/parser": "^4.20.0", + "eslint-import-resolver-node": "^0.3.4", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-react": "^7.23.1", + "eslint-plugin-react-hooks": "^4.2.0" + } + }, "eslint-import-resolver-node": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", diff --git a/package.json b/package.json index de078c6..4b53278 100644 --- a/package.json +++ b/package.json @@ -20,8 +20,8 @@ "postbuild": "next-sitemap", "export": "next export", "lint": "npm run lint:es && npm run lint:css", - "lint:es": "eslint . --ext .ts,.tsx", - "lint:es:fix": "eslint --fix . --ext .ts,.tsx", + "lint:es": "next lint", + "lint:es:fix": "next lint -- fix", "lint:css": "stylelint \"./src/**/*.{ts,tsx}\"", "dev": "next dev", "start": "next dev", @@ -46,10 +46,8 @@ "babel-plugin-styled-components": "^1.12.0", "eslint": "^7.28.0", "eslint-config-airbnb-typescript": "^12.3.1", - "eslint-plugin-import": "^2.23.4", + "eslint-config-next": "^11.0.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.24.0", - "eslint-plugin-react-hooks": "^4.2.0", "husky": "^6.0.0", "next-sitemap": "^1.6.116", "npm-run-all": "^4.1.5", diff --git a/src/components/Favicons.tsx b/src/components/Favicons.tsx index bf4b6c8..01867d1 100644 --- a/src/components/Favicons.tsx +++ b/src/components/Favicons.tsx @@ -1,7 +1,6 @@ import React from "react"; -// eslint-disable-next-line react/display-name -export default (): JSX.Element => ( +const Icons = (): JSX.Element => ( <> @@ -54,3 +53,5 @@ export default (): JSX.Element => ( ); + +export default Icons; diff --git a/src/components/HTMLLogo.tsx b/src/components/HTMLLogo.tsx index fc14e36..598ac47 100644 --- a/src/components/HTMLLogo.tsx +++ b/src/components/HTMLLogo.tsx @@ -1,7 +1,6 @@ import React from "react"; -// eslint-disable-next-line react/display-name -export default (): JSX.Element => ( +const Logo = (): JSX.Element => ( // eslint-disable-next-line react/no-danger ( }} /> ); + +export default Logo; diff --git a/src/components/Widgets/SectionDividerWidget.tsx b/src/components/Widgets/SectionDividerWidget.tsx index 76c7165..90f3260 100644 --- a/src/components/Widgets/SectionDividerWidget.tsx +++ b/src/components/Widgets/SectionDividerWidget.tsx @@ -27,7 +27,9 @@ const Heading = styled.h3` const SectionDividerWidget: React.FC = ({ label }) => ( - {label} {getIconByLabel(label)} + {label} +   + {getIconByLabel(label)} ); diff --git a/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx b/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx index 487c05b..d8fa923 100644 --- a/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx +++ b/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx @@ -51,19 +51,20 @@ class OptionsWidget extends React.Component { onChange(questions); }; - requiredField() { + requiredField(): JSX.Element { const { inputProps } = this.props; const { questions, index } = inputProps; return ( Required? + > + Required? ); } - render() { + render(): JSX.Element { const { inputProps } = this.props; const { type, value, questions, index, diff --git a/src/pages/404.tsx b/src/pages/404.tsx index 6c47ce5..c1e7fee 100644 --- a/src/pages/404.tsx +++ b/src/pages/404.tsx @@ -26,7 +26,9 @@ const NotFoundPage: NextPage = () => (

- 404 | Ei vaan löydy + 404 + {" "} + | Ei vaan löydy

diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index e9c4bfd..1a93799 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -126,11 +126,10 @@ const AppContainer = styled.div` background-color: ${colors.white}; `; -const Web20App = ({ Component, pageProps }: AppProps) => ( +const Web20App = ({ Component, pageProps }: AppProps): JSX.Element => ( <> - Aalto-yliopiston Sähköinsinöörikilta ry diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx index 19753e2..46c66e8 100644 --- a/src/pages/_document.tsx +++ b/src/pages/_document.tsx @@ -29,12 +29,13 @@ export default class MyDocument extends Document<{ styleTags: unknown }> { } } - render() { + render(): JSX.Element { const { styleTags } = this.props; return ( + diff --git a/src/pages/admin/login.tsx b/src/pages/admin/login.tsx index a7f052b..90eb3cc 100644 --- a/src/pages/admin/login.tsx +++ b/src/pages/admin/login.tsx @@ -46,7 +46,8 @@ const AdminLoginPage: NextPage = () => {
You have to log in first.
)}
-