diff --git a/package-lock.json b/package-lock.json
index 3cd440e..adbf1a0 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -40,8 +40,9 @@
"@types/uuid": "^7.0.8",
"gh-pages": "^2.2.0",
"husky": "^3.1.0",
- "prettier": "^1.19.1",
- "pretty-quick": "^2.0.2",
+ "prettier": "^3.2.5",
+ "prettier-plugin-organize-imports": "^3.2.3",
+ "pretty-quick": "^4.0.0",
"sass": "^1.71.0",
"typescript": "^3.9.10"
}
@@ -4502,12 +4503,6 @@
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
},
- "node_modules/@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==",
- "dev": true
- },
"node_modules/@types/node": {
"version": "12.20.55",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
@@ -5540,15 +5535,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/array-differ": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz",
- "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
@@ -5696,15 +5682,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/arrify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz",
- "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/asap": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
@@ -6889,6 +6866,33 @@
"node": ">=10"
}
},
+ "node_modules/css-loader/node_modules/postcss": {
+ "version": "8.4.35",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
+ "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.7",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
"node_modules/css-loader/node_modules/semver": {
"version": "7.6.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
@@ -13266,31 +13270,6 @@
"multicast-dns": "cli.js"
}
},
- "node_modules/multimatch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz",
- "integrity": "sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ==",
- "dev": true,
- "dependencies": {
- "@types/minimatch": "^3.0.3",
- "array-differ": "^3.0.0",
- "array-union": "^2.1.0",
- "arrify": "^2.0.1",
- "minimatch": "^3.0.4"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/multimatch/node_modules/array-union": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
- "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
@@ -15293,15 +15272,38 @@
}
},
"node_modules/prettier": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz",
- "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz",
+ "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==",
"dev": true,
"bin": {
- "prettier": "bin-prettier.js"
+ "prettier": "bin/prettier.cjs"
},
"engines": {
- "node": ">=4"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-plugin-organize-imports": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-3.2.4.tgz",
+ "integrity": "sha512-6m8WBhIp0dfwu0SkgfOxJqh+HpdyfqSSLfKKRZSFbDuEQXDDndb8fTpRWkUrX/uBenkex3MgnVk0J3b3Y5byog==",
+ "dev": true,
+ "peerDependencies": {
+ "@volar/vue-language-plugin-pug": "^1.0.4",
+ "@volar/vue-typescript": "^1.0.4",
+ "prettier": ">=2.0",
+ "typescript": ">=2.9"
+ },
+ "peerDependenciesMeta": {
+ "@volar/vue-language-plugin-pug": {
+ "optional": true
+ },
+ "@volar/vue-typescript": {
+ "optional": true
+ }
}
},
"node_modules/pretty-bytes": {
@@ -15349,69 +15351,29 @@
}
},
"node_modules/pretty-quick": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-2.0.2.tgz",
- "integrity": "sha512-aLb6vtOTEfJDwi1w+MBTeE20GwPVUYyn6IqNg6TtGpiOB1W3y6vKcsGFjqGeaaEtQgMLSPXTWONqh33UBuwG8A==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pretty-quick/-/pretty-quick-4.0.0.tgz",
+ "integrity": "sha512-M+2MmeufXb/M7Xw3Afh1gxcYpj+sK0AxEfnfF958ktFeAyi5MsKY5brymVURQLgPLV1QaF5P4pb2oFJ54H3yzQ==",
"dev": true,
"dependencies": {
- "chalk": "^2.4.2",
- "execa": "^2.1.0",
- "find-up": "^4.1.0",
- "ignore": "^5.1.4",
- "mri": "^1.1.4",
- "multimatch": "^4.0.0"
+ "execa": "^5.1.1",
+ "find-up": "^5.0.0",
+ "ignore": "^5.3.0",
+ "mri": "^1.2.0",
+ "picocolors": "^1.0.0",
+ "picomatch": "^3.0.1",
+ "tslib": "^2.6.2"
},
"bin": {
- "pretty-quick": "bin/pretty-quick.js"
+ "pretty-quick": "lib/cli.mjs"
},
"engines": {
- "node": ">=8"
+ "node": ">=14"
},
"peerDependencies": {
- "prettier": ">=1.8.0"
- }
- },
- "node_modules/pretty-quick/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pretty-quick/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pretty-quick/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
+ "prettier": "^3.0.0"
}
},
- "node_modules/pretty-quick/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
"node_modules/pretty-quick/node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -15426,57 +15388,55 @@
"node": ">= 8"
}
},
- "node_modules/pretty-quick/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
"node_modules/pretty-quick/node_modules/execa": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz",
- "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
"dependencies": {
- "cross-spawn": "^7.0.0",
- "get-stream": "^5.0.0",
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
- "npm-run-path": "^3.0.0",
- "onetime": "^5.1.0",
- "p-finally": "^2.0.0",
- "signal-exit": "^3.0.2",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
"strip-final-newline": "^2.0.0"
},
"engines": {
- "node": "^8.12.0 || >=9.7.0"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/pretty-quick/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "node_modules/pretty-quick/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dev": true,
"dependencies": {
- "pump": "^3.0.0"
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/pretty-quick/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "node_modules/pretty-quick/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
"engines": {
- "node": ">=4"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/pretty-quick/node_modules/is-stream": {
@@ -15491,10 +15451,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/pretty-quick/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/pretty-quick/node_modules/npm-run-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz",
- "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"dependencies": {
"path-key": "^3.0.0"
@@ -15503,13 +15478,34 @@
"node": ">=8"
}
},
- "node_modules/pretty-quick/node_modules/p-finally": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz",
- "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==",
+ "node_modules/pretty-quick/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dev": true,
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pretty-quick/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/pretty-quick/node_modules/path-key": {
@@ -15521,6 +15517,18 @@
"node": ">=8"
}
},
+ "node_modules/pretty-quick/node_modules/picomatch": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz",
+ "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/pretty-quick/node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -15542,18 +15550,6 @@
"node": ">=8"
}
},
- "node_modules/pretty-quick/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/pretty-quick/node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
diff --git a/package.json b/package.json
index 33df5f7..338329c 100644
--- a/package.json
+++ b/package.json
@@ -45,8 +45,9 @@
"@types/uuid": "^7.0.8",
"gh-pages": "^2.2.0",
"husky": "^3.1.0",
- "prettier": "^1.19.1",
- "pretty-quick": "^2.0.2",
+ "prettier": "^3.2.5",
+ "prettier-plugin-organize-imports": "^3.2.3",
+ "pretty-quick": "^4.0.0",
"sass": "^1.71.0",
"typescript": "^3.9.10"
},
@@ -64,7 +65,8 @@
"eject": "react-scripts eject",
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
- "pretty": "prettier --write \"src/**/*.js\" --write \"src/**/*.jsx\" --write \"src/**/*.ts\" --write \"src/**/*.tsx\"",
+ "prettier": "prettier --cache --write 'src/**/*.{ts,js,tsx,jsx,css,scss}'",
+ "prettier:nocache": "prettier --write 'src/**/*.{ts,js,tsx,jsx,css,scss}'",
"pretty-quick": "pretty-quick"
},
"eslintConfig": {
diff --git a/prettier.config.js b/prettier.config.js
new file mode 100644
index 0000000..2b57124
--- /dev/null
+++ b/prettier.config.js
@@ -0,0 +1,7 @@
+// prettierrc.js
+
+module.exports = {
+ // ...
+ plugins: ["prettier-plugin-organize-imports"],
+ trailingComma: "es5",
+};
diff --git a/src/App.scss b/src/App.scss
index 9a64004..403fd65 100644
--- a/src/App.scss
+++ b/src/App.scss
@@ -2,7 +2,9 @@
@import "~bootstrap/scss/bootstrap";
.text-shadow {
- text-shadow: 0 0 25px $dark, 0 0 5px $black;
+ text-shadow:
+ 0 0 25px $dark,
+ 0 0 5px $black;
}
.noselect {
diff --git a/src/App.test.tsx b/src/App.test.tsx
index 352d7b8..509bd93 100644
--- a/src/App.test.tsx
+++ b/src/App.test.tsx
@@ -1,5 +1,5 @@
-import React from "react";
import { render } from "@testing-library/react";
+import React from "react";
import App from "./App";
test("renders learn react link", () => {
diff --git a/src/App.tsx b/src/App.tsx
index fb8aabc..1e6b0d5 100644
--- a/src/App.tsx
+++ b/src/App.tsx
@@ -1,9 +1,7 @@
import React, { Component } from "react";
import { Helmet, HelmetProvider } from "react-helmet-async";
import { BrowserRouter, Route, Routes } from "react-router-dom";
-
import "./App.scss";
-
import { Home } from "./pages/home";
class App extends Component {
@@ -13,12 +11,12 @@ class App extends Component {
displayText: false,
displayImages: false,
devTools: false,
- displayGatherer: false
+ displayGatherer: false,
};
toggle = () => {
this.setState({
- isOpen: !this.state.isOpen
+ isOpen: !this.state.isOpen,
});
};
diff --git a/src/confirm/Confirm.tsx b/src/confirm/Confirm.tsx
index effd20f..3a758f7 100644
--- a/src/confirm/Confirm.tsx
+++ b/src/confirm/Confirm.tsx
@@ -1,5 +1,4 @@
import React, { useState } from "react";
-
import { Button, ButtonProps, Col, Modal } from "react-bootstrap";
export type ConfirmProps = {
@@ -19,7 +18,7 @@ export const Confirm = ({
headerText = "Confirm?",
bodyText,
confirmText = "Save",
- confirmVariant = "primary"
+ confirmVariant = "primary",
}: ConfirmProps) => {
const [open, setOpen] = useState(false);
const close = (confirmed: boolean = false) => {
diff --git a/src/index.tsx b/src/index.tsx
index 4996ab2..47dbb13 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,7 +1,7 @@
import React from "react";
import { createRoot } from "react-dom/client";
-import "./index.css";
import App from "./App";
+import "./index.css";
import * as serviceWorkerRegistration from "./serviceWorkerRegistration";
const element = document.getElementById("root")!;
diff --git a/src/pages/home/index.tsx b/src/pages/home/index.tsx
index fc3e8a9..09bdf7d 100644
--- a/src/pages/home/index.tsx
+++ b/src/pages/home/index.tsx
@@ -1,5 +1,9 @@
+import { faEdit, faTimes, faTrash } from "@fortawesome/free-solid-svg-icons";
+import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { cloneDeep, isFunction, last, orderBy, remove, some } from "lodash";
+import assign from "lodash/assign";
+import set from "lodash/set";
import React, { Component } from "react";
-import { Helmet } from "react-helmet-async";
import {
Button,
ButtonGroup,
@@ -7,24 +11,13 @@ import {
Form,
InputGroup,
Row,
- Table
+ Table,
} from "react-bootstrap";
-import {
- assign,
- set,
- isFunction,
- cloneDeep,
- remove,
- orderBy,
- some,
- last
-} from "lodash";
+import { Helmet } from "react-helmet-async";
import store from "store/dist/store.modern";
import { v4 as uuidv4 } from "uuid";
-import { Size, Brew } from "../../models/brew";
import { Confirm } from "../../confirm/Confirm";
-import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
-import { faTrash, faEdit, faTimes } from "@fortawesome/free-solid-svg-icons";
+import { Brew, Size } from "../../models/brew";
const INITIAL_SIZE: Size = {
id: uuidv4(),
@@ -33,7 +26,7 @@ const INITIAL_SIZE: Size = {
price: "",
calculation: null,
apv_calculation: null,
- ppv_calculation: null
+ ppv_calculation: null,
};
const INITIAL_BREW: Brew = {
@@ -41,7 +34,7 @@ const INITIAL_BREW: Brew = {
name: "",
alcohol: "",
alcohol_unit: "APV",
- sizes: [cloneDeep(INITIAL_SIZE)]
+ sizes: [cloneDeep(INITIAL_SIZE)],
};
const INITIAL_STATE: {
@@ -49,7 +42,7 @@ const INITIAL_STATE: {
brew: Brew;
} = {
stored: [],
- brew: cloneDeep(INITIAL_BREW)
+ brew: cloneDeep(INITIAL_BREW),
};
export class Home extends Component {
@@ -81,7 +74,7 @@ export class Home extends Component {
console.log(event, id);
const { brew } = this.state;
const { sizes } = this.state.brew;
- sizes.map(v => {
+ sizes.map((v) => {
if (v.id === id) {
set(v, event.target.name, event.target.value);
}
@@ -101,7 +94,7 @@ export class Home extends Component {
const { brew, stored } = this.state;
brew.id = uuidv4();
- brew.sizes.forEach(size => {
+ brew.sizes.forEach((size) => {
size.id = uuidv4();
stored.push(this.buildBrewSize(brew, size));
});
@@ -112,7 +105,7 @@ export class Home extends Component {
stored,
["calculation", "apv_calculation", "ppv_calculation"],
["asc", "desc", "asc"]
- )
+ ),
})
);
};
@@ -178,7 +171,7 @@ export class Home extends Component {
assign(size, {
calculation: localCalculation,
apv_calculation: localAPVCalculation,
- ppv_calculation: localPPVCalculation
+ ppv_calculation: localPPVCalculation,
});
});
@@ -187,7 +180,7 @@ export class Home extends Component {
reCalculateAll = () => {
const { stored } = this.state;
- stored.forEach(storedBrew => {
+ stored.forEach((storedBrew) => {
assign(storedBrew, this.calculateCalculations(storedBrew));
});
this.persistState({
@@ -195,25 +188,25 @@ export class Home extends Component {
stored,
["calculation", "apv_calculation", "ppv_calculation"],
["asc", "desc", "asc"]
- )
+ ),
});
};
removeActiveBrewSize = (sizeId: string) => {
const { brew } = this.state;
- remove(brew.sizes, size => size.id === sizeId);
+ remove(brew.sizes, (size) => size.id === sizeId);
this.persistState({ brew });
};
removeBrewSize = (id: string) => {
const { stored } = this.state;
- remove(stored, storedBrew => storedBrew.id === id);
+ remove(stored, (storedBrew) => storedBrew.id === id);
this.persistState({ stored });
};
removeBrew = (id: string) => {
const { stored } = this.state;
- remove(stored, storedBrew => storedBrew.brewId === id);
+ remove(stored, (storedBrew) => storedBrew.brewId === id);
this.persistState({ stored });
};
@@ -228,15 +221,15 @@ export class Home extends Component {
rebuildBrew = (brewId: string): Brew => {
const { stored } = this.state;
- const sizes = stored.filter(brewSize => brewSize.brewId === brewId);
+ const sizes = stored.filter((brewSize) => brewSize.brewId === brewId);
const brew: Brew = {
id: brewId,
name: sizes[0].name,
alcohol: sizes[0].alcohol,
alcohol_unit: sizes[0].alcohol_unit,
- sizes
+ sizes,
};
- sizes.forEach(s => {
+ sizes.forEach((s) => {
delete s.name;
delete s.alcohol;
delete s.alcohol_unit;
@@ -388,7 +381,7 @@ export class Home extends Component {
name="volume"
placeholder="Volume"
value={v.volume}
- onChange={e => this.handleVolumeChange(e, v.id)}
+ onChange={(e) => this.handleVolumeChange(e, v.id)}
min={0}
/>
@@ -398,7 +391,7 @@ export class Home extends Component {
value={v.volume_unit}
className="form-select rounded-end"
style={{ flexGrow: 0.15 }}
- onChange={e => this.handleVolumeChange(e, v.id)}
+ onChange={(e) => this.handleVolumeChange(e, v.id)}
>
@@ -413,7 +406,7 @@ export class Home extends Component {
name="price"
placeholder="Price"
value={v.price}
- onChange={e => this.handleVolumeChange(e, v.id)}
+ onChange={(e) => this.handleVolumeChange(e, v.id)}
min={0}
step={0.01}
/>
@@ -509,7 +502,7 @@ export class Home extends Component {
renderResults = () => {
const { stored } = this.state;
- const rows = stored.map(brewSize => {
+ const rows = stored.map((brewSize) => {
return (
diff --git a/src/service-worker.ts b/src/service-worker.ts
index 9ecda79..3167ab0 100644
--- a/src/service-worker.ts
+++ b/src/service-worker.ts
@@ -10,7 +10,7 @@
import { clientsClaim } from "workbox-core";
import { ExpirationPlugin } from "workbox-expiration";
-import { precacheAndRoute, createHandlerBoundToURL } from "workbox-precaching";
+import { createHandlerBoundToURL, precacheAndRoute } from "workbox-precaching";
import { registerRoute } from "workbox-routing";
import { StaleWhileRevalidate } from "workbox-strategies";
@@ -65,14 +65,14 @@ registerRoute(
plugins: [
// Ensure that once this runtime cache reaches a maximum size the
// least-recently used images are removed.
- new ExpirationPlugin({ maxEntries: 50 })
- ]
+ new ExpirationPlugin({ maxEntries: 50 }),
+ ],
})
);
// This allows the web app to trigger skipWaiting via
// registration.waiting.postMessage({type: 'SKIP_WAITING'})
-self.addEventListener("message", event => {
+self.addEventListener("message", (event) => {
if (event.data && event.data.type === "SKIP_WAITING") {
self.skipWaiting();
}
diff --git a/src/serviceWorkerRegistration.ts b/src/serviceWorkerRegistration.ts
index 0676bc1..6d59991 100644
--- a/src/serviceWorkerRegistration.ts
+++ b/src/serviceWorkerRegistration.ts
@@ -62,7 +62,7 @@ export function register(config?: Config) {
function registerValidSW(swUrl: string, config?: Config) {
navigator.serviceWorker
.register(swUrl)
- .then(registration => {
+ .then((registration) => {
registration.onupdatefound = () => {
const installingWorker = registration.installing;
if (installingWorker == null) {
@@ -98,7 +98,7 @@ function registerValidSW(swUrl: string, config?: Config) {
};
};
})
- .catch(error => {
+ .catch((error) => {
console.error("Error during service worker registration:", error);
});
}
@@ -106,9 +106,9 @@ function registerValidSW(swUrl: string, config?: Config) {
function checkValidServiceWorker(swUrl: string, config?: Config) {
// Check if the service worker can be found. If it can't reload the page.
fetch(swUrl, {
- headers: { "Service-Worker": "script" }
+ headers: { "Service-Worker": "script" },
})
- .then(response => {
+ .then((response) => {
// Ensure service worker exists, and that we really are getting a JS file.
const contentType = response.headers.get("content-type");
if (
@@ -116,7 +116,7 @@ function checkValidServiceWorker(swUrl: string, config?: Config) {
(contentType != null && contentType.indexOf("javascript") === -1)
) {
// No service worker found. Probably a different app. Reload the page.
- navigator.serviceWorker.ready.then(registration => {
+ navigator.serviceWorker.ready.then((registration) => {
registration.unregister().then(() => {
window.location.reload();
});
@@ -136,10 +136,10 @@ function checkValidServiceWorker(swUrl: string, config?: Config) {
export function unregister() {
if ("serviceWorker" in navigator) {
navigator.serviceWorker.ready
- .then(registration => {
+ .then((registration) => {
registration.unregister();
})
- .catch(error => {
+ .catch((error) => {
console.error(error.message);
});
}