From 2e2ce144ad9786fa5c24f676f4e766631226e486 Mon Sep 17 00:00:00 2001 From: Cameron Chrobocinski Date: Mon, 7 Apr 2025 14:55:42 -0500 Subject: [PATCH 1/3] added login via auth0 --- CHANGELOG.md | 13 +- README.md | 4 + package-lock.json | 125 +++++++++++++-- package.json | 3 +- public/fonts/Mantinia Regular.otf | Bin 0 -> 51720 bytes .../customSortBy/CustomizeSortBy.tsx | 143 ++++++++++++++--- src/app/globals.css | 7 + src/app/layout.tsx | 111 +++++++------ src/app/util/components/NavLinks.tsx | 148 +++++++++++++----- src/pages/api/auth/[...auth0].tsx | 3 + 10 files changed, 442 insertions(+), 115 deletions(-) create mode 100644 public/fonts/Mantinia Regular.otf create mode 100644 src/pages/api/auth/[...auth0].tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index 058c05d..1bf5bf1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [2.11.5] - Current +## [2.12.0] - Current + +### Added + +- Login via Auth0 (currently useless, but this enables future features) +- App title in header + +### Fixed + +- Fixed display of Custom Sort instructions on mobile devices + +## [2.11.5] - 2025-04-03 ### Added diff --git a/README.md b/README.md index d35ad79..ddee4e2 100644 --- a/README.md +++ b/README.md @@ -50,3 +50,7 @@ Data and images from Elden Ring which are used in this project are the property Based on [erdtree](https://github.com/vodofrede/erdtree) by [@vodofrede](https://github.com/vodofrede) Weapon attack rating calculations feature some cannibalization of [Elden Ring Weapon Calculator](https://github.com/ThomasJClark/elden-ring-weapon-calculator) by [Thomas J Clark](https://github.com/ThomasJClark). + +Authentication provided by [Auth0](https://auth0.com). + +Mantinia Regular font provided by [fontsgeek.com](https://fontsgeek.com). diff --git a/package-lock.json b/package-lock.json index d3eb61e..d01c63e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,13 +1,14 @@ { "name": "haligtree", - "version": "2.11.2", + "version": "2.12.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "haligtree", - "version": "2.11.2", + "version": "2.12.0", "dependencies": { + "@auth0/nextjs-auth0": "^3.7.0", "@tailwindcss/postcss": "^4.1.0", "@vercel/analytics": "^1", "@vercel/speed-insights": "^1", @@ -71,6 +72,35 @@ "node": ">=6.0.0" } }, + "node_modules/@auth0/nextjs-auth0": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@auth0/nextjs-auth0/-/nextjs-auth0-3.7.0.tgz", + "integrity": "sha512-MxJl2rf3j09bwugggVBmrzOhO8H4yv7lZbXe7xPuQSYTuk1jJjjofHEQrZiOJnYV9dZbjYvNhEunFRFJM1PyVw==", + "license": "MIT", + "dependencies": { + "@panva/hkdf": "^1.0.2", + "cookie": "^0.7.1", + "debug": "^4.3.4", + "joi": "^17.6.0", + "jose": "^4.9.2", + "oauth4webapi": "^2.3.0", + "openid-client": "^5.2.1", + "tslib": "^2.4.0", + "url-join": "^4.0.1" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "next": "^10.0.0 || ^11.0.0 || ^12.3.5 || ^13.5.9 || ^14.2.25 || ^15.2.3" + } + }, + "node_modules/@auth0/nextjs-auth0/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, "node_modules/@babel/code-frame": { "version": "7.26.2", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", @@ -922,14 +952,12 @@ "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", "integrity": "sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@hapi/topo": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-5.1.0.tgz", "integrity": "sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" @@ -2136,6 +2164,15 @@ "node": ">=12.4.0" } }, + "node_modules/@panva/hkdf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz", + "integrity": "sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/@paulirish/trace_engine": { "version": "0.0.23", "resolved": "https://registry.npmjs.org/@paulirish/trace_engine/-/trace_engine-0.0.23.tgz", @@ -2402,7 +2439,6 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.5.tgz", "integrity": "sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.0.0" @@ -2412,14 +2448,12 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.1.tgz", "integrity": "sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@sideway/pinpoint": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz", "integrity": "sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==", - "dev": true, "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { @@ -5053,7 +5087,6 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" @@ -9391,7 +9424,6 @@ "version": "17.13.3", "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", - "dev": true, "license": "BSD-3-Clause", "dependencies": { "@hapi/hoek": "^9.3.0", @@ -9401,6 +9433,15 @@ "@sideway/pinpoint": "^2.0.0" } }, + "node_modules/jose": { + "version": "4.15.9", + "resolved": "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz", + "integrity": "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/jpeg-js": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.4.tgz", @@ -11255,6 +11296,15 @@ "dev": true, "license": "MIT" }, + "node_modules/oauth4webapi": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/oauth4webapi/-/oauth4webapi-2.17.0.tgz", + "integrity": "sha512-lbC0Z7uzAFNFyzEYRIC+pkSVvDHJTbEW+dYlSBAlCYDe6RxUkJ26bClhk8ocBZip1wfI9uKTe0fm4Ib4RHn6uQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -11265,6 +11315,15 @@ "node": ">=0.10.0" } }, + "node_modules/object-hash": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { "version": "1.13.4", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", @@ -11378,6 +11437,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/oidc-token-hash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.1.0.tgz", + "integrity": "sha512-y0W+X7Ppo7oZX6eovsRkuzcSM40Bicg2JEJkDJ4irIt1wsYAP5MLSNv+QAogO8xivMffw/9OvV3um1pxXgt1uA==", + "license": "MIT", + "engines": { + "node": "^10.13.0 || >=12.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -11444,6 +11512,39 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openid-client": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz", + "integrity": "sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew==", + "license": "MIT", + "dependencies": { + "jose": "^4.15.9", + "lru-cache": "^6.0.0", + "object-hash": "^2.2.0", + "oidc-token-hash": "^5.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/openid-client/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/openid-client/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -14215,6 +14316,12 @@ "punycode": "^2.1.0" } }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "license": "MIT" + }, "node_modules/url-parse": { "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", diff --git a/package.json b/package.json index 31e459a..620cb40 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "haligtree", - "version": "2.11.4", + "version": "2.12.0", "private": true, "scripts": { "dev": "next dev", @@ -13,6 +13,7 @@ "lighthouse": "next build && next start -p 3000 & npx wait-on http://localhost:3000 && npx lhci autorun" }, "dependencies": { + "@auth0/nextjs-auth0": "^3.7.0", "@tailwindcss/postcss": "^4.1.0", "@vercel/analytics": "^1", "@vercel/speed-insights": "^1", diff --git a/public/fonts/Mantinia Regular.otf b/public/fonts/Mantinia Regular.otf new file mode 100644 index 0000000000000000000000000000000000000000..e68802db1b81bdcd629ce0e0cfbd04e7cf5f2dc6 GIT binary patch literal 51720 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�|Gc2>54*WpeEsp;_(Xu@X)Bzp?>H?1gPXJE> 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 jwaW=Ze;;8e|1=Mc2aE^gJE2Q8I|1ZB`*i&JU- void; setCustomSortBy: (newSortBy: SortByArmor) => void; sortBy: SortByArmor; -}) { +}): JSX.Element { const [descriptionIsExpanded, setDescriptionIsExpanded] = useState(true); @@ -83,7 +84,12 @@ export function CustomizeSortBy(props: {
  • ( X )
      -
    • +
    • The parentheses will group things into one value. This is useful for separating values when trying to ensure an order of @@ -94,7 +100,12 @@ export function CustomizeSortBy(props: {
    • AVG( X X ... )
        -
      • +
      • This will average all space-separated values inside the parentheses. Note that more than one value is required. @@ -104,7 +115,12 @@ export function CustomizeSortBy(props: {
      • SUM( X X ... )
          -
        • +
        • This will sum all space-separated values inside the parentheses. Note that more than one value is required. @@ -114,7 +130,12 @@ export function CustomizeSortBy(props: {
        • MULT( X X ... )
            -
          • +
          • This will multiply all space-separated values inside the parentheses. Note that more than one value is required. @@ -124,7 +145,12 @@ export function CustomizeSortBy(props: {
          • PHYSICAL
              -
            • +
            • This will use the value of an armor piece's Physical Absorption.
            • @@ -133,7 +159,12 @@ export function CustomizeSortBy(props: {
            • STRIKE
                -
              • +
              • This will use the value of an armor piece's Strike Absorption.
              • @@ -142,7 +173,12 @@ export function CustomizeSortBy(props: {
              • SLASH
                  -
                • +
                • This will use the value of an armor piece's Slash Absorption.
                • @@ -151,7 +187,12 @@ export function CustomizeSortBy(props: {
                • PIERCE
                    -
                  • +
                  • This will use the value of an armor piece's Pierce Absorption.
                  • @@ -160,7 +201,12 @@ export function CustomizeSortBy(props: {
                  • MAGIC
                      -
                    • +
                    • This will use the value of an armor piece's Magic Absorption.
                    • @@ -169,7 +215,12 @@ export function CustomizeSortBy(props: {
                    • FIRE
                        -
                      • +
                      • This will use the value of an armor piece's Fire Absorption.
                      • @@ -178,7 +229,12 @@ export function CustomizeSortBy(props: {
                      • LIGHTNING
                          -
                        • +
                        • This will use the value of an armor piece's Lightning Absorption.
                        • @@ -187,7 +243,12 @@ export function CustomizeSortBy(props: {
                        • HOLY
                            -
                          • +
                          • This will use the value of an armor piece's Holy Absorption.
                          • @@ -196,7 +257,12 @@ export function CustomizeSortBy(props: {
                          • POISON
                              -
                            • +
                            • This will use the value of the armor piece's Poison Resistance.
                            • @@ -205,7 +271,12 @@ export function CustomizeSortBy(props: {
                            • SCARLETROT
                                -
                              • +
                              • This will use the value of the armor piece's Scarlet Rot Resistance.
                              • @@ -214,7 +285,12 @@ export function CustomizeSortBy(props: {
                              • HEMORRHAGE
                                  -
                                • +
                                • This will use the value of the armor piece's Hemorrhage Resistance.
                                • @@ -223,7 +299,12 @@ export function CustomizeSortBy(props: {
                                • FROSTBITE
                                    -
                                  • +
                                  • This will use the value of the armor piece's Frostbite Resistance.
                                  • @@ -232,7 +313,12 @@ export function CustomizeSortBy(props: {
                                  • SLEEP
                                      -
                                    • +
                                    • This will use the value of the armor piece's Sleep Resistance.
                                    • @@ -241,7 +327,12 @@ export function CustomizeSortBy(props: {
                                    • MADNESS
                                        -
                                      • +
                                      • This will use the value of the armor piece's Madness Resistance.
                                      • @@ -250,7 +341,12 @@ export function CustomizeSortBy(props: {
                                      • DEATHBLIGHT
                                          -
                                        • +
                                        • This will use the value of the armor piece's Death Blight Resistance.
                                        • @@ -259,7 +355,12 @@ export function CustomizeSortBy(props: {
                                        • POISE
                                            -
                                          • +
                                          • This will use the value of the armor piece's Poise.
                                          • diff --git a/src/app/globals.css b/src/app/globals.css index b10b19e..f00d4f2 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -34,6 +34,13 @@ html { } } +@font-face { + font-family: "Mantinia"; + src: url("/fonts/Mantinia.otf") format("truetype"); + font-weight: normal; + font-style: normal; +} + /* fix sizing and remove margins and padding */ html { box-sizing: border-box; diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 2466777..ef51886 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -1,3 +1,4 @@ +import { UserProvider } from "@auth0/nextjs-auth0/client"; import { Analytics } from "@vercel/analytics/react"; import { SpeedInsights } from "@vercel/speed-insights/next"; import type { Metadata, Viewport } from "next"; @@ -19,7 +20,7 @@ export const viewport: Viewport = { initialScale: 1, }; -export default function RootLayout({ +export default async function RootLayout({ children, }: { children: React.ReactNode; @@ -31,51 +32,69 @@ export default function RootLayout({ }) || ""; return ( - - - {children} - - - -