From 6e316e4750ec9f40d7e4a7c6b1c43cab6f823571 Mon Sep 17 00:00:00 2001 From: Judith Owens Date: Tue, 10 Oct 2023 21:47:26 +0000 Subject: [PATCH 1/7] feat(signin): starts building out auth api and pages --- package-lock.json | 61 ++++++++++++++++++- package.json | 5 +- .../icon/icon.stories.tsx | 0 .../{display => _display}/icon/icon.tsx | 0 .../{display => _display}/icon/icon.types.ts | 0 .../icon/icons/Account.tsx | 0 .../icon/icons/Attendance.tsx | 0 .../icon/icons/Attending.tsx | 0 .../icon/icons/CharacterRef.tsx | 0 .../icon/icons/Committee.tsx | 0 .../{display => _display}/icon/icons/Edit.tsx | 0 .../icon/icons/Facebook.tsx | 0 .../icon/icons/FirstAider.tsx | 0 .../{display => _display}/icon/icons/Game.tsx | 0 .../{display => _display}/icon/icons/Gm.tsx | 0 .../icon/icons/IcMeal.tsx | 0 .../icon/icons/Insurance.tsx | 0 .../icon/icons/Location.tsx | 0 .../icon/icons/Meeting.tsx | 0 .../icon/icons/Monster.tsx | 0 .../icon/icons/MultidayGame.tsx | 0 .../icon/icons/NotAttending.tsx | 0 .../icon/icons/Player.tsx | 0 .../{display => _display}/icon/icons/Rank.tsx | 0 .../icon/icons/Search.tsx | 0 .../icon/icons/SignIn.tsx | 0 .../{ => _display}/loader/loader.module.css | 0 .../{ => _display}/loader/loader.stories.tsx | 0 .../{ => _display}/loader/loader.tsx | 2 +- src/_components/_form/input/input.tsx | 56 +++++++++++++++++ .../_layout/header/BathLarpLogo.tsx | 6 +- .../_layout/header/BathLarpSword.tsx | 42 ++++++------- src/_components/_layout/header/header.tsx | 8 ++- src/app/auth/new-user/page.tsx | 31 ++++++++++ src/app/auth/sign-in/page.tsx | 31 ++++++++++ src/app/auth/sign-up/page.tsx | 37 +++++++++++ src/app/auth/verify-email/page.tsx | 13 ++++ src/app/error.tsx | 22 +++++++ src/app/global-error.tsx | 17 ++++++ src/app/not-found.tsx | 11 ++++ src/app/page.tsx | 1 + src/middleware.ts | 12 ++++ tsconfig.eslint.json | 1 + 43 files changed, 327 insertions(+), 29 deletions(-) rename src/_components/{display => _display}/icon/icon.stories.tsx (100%) rename src/_components/{display => _display}/icon/icon.tsx (100%) rename src/_components/{display => _display}/icon/icon.types.ts (100%) rename src/_components/{display => _display}/icon/icons/Account.tsx (100%) rename src/_components/{display => _display}/icon/icons/Attendance.tsx (100%) rename src/_components/{display => _display}/icon/icons/Attending.tsx (100%) rename src/_components/{display => _display}/icon/icons/CharacterRef.tsx (100%) rename src/_components/{display => _display}/icon/icons/Committee.tsx (100%) rename src/_components/{display => _display}/icon/icons/Edit.tsx (100%) rename src/_components/{display => _display}/icon/icons/Facebook.tsx (100%) rename src/_components/{display => _display}/icon/icons/FirstAider.tsx (100%) rename src/_components/{display => _display}/icon/icons/Game.tsx (100%) rename src/_components/{display => _display}/icon/icons/Gm.tsx (100%) rename src/_components/{display => _display}/icon/icons/IcMeal.tsx (100%) rename src/_components/{display => _display}/icon/icons/Insurance.tsx (100%) rename src/_components/{display => _display}/icon/icons/Location.tsx (100%) rename src/_components/{display => _display}/icon/icons/Meeting.tsx (100%) rename src/_components/{display => _display}/icon/icons/Monster.tsx (100%) rename src/_components/{display => _display}/icon/icons/MultidayGame.tsx (100%) rename src/_components/{display => _display}/icon/icons/NotAttending.tsx (100%) rename src/_components/{display => _display}/icon/icons/Player.tsx (100%) rename src/_components/{display => _display}/icon/icons/Rank.tsx (100%) rename src/_components/{display => _display}/icon/icons/Search.tsx (100%) rename src/_components/{display => _display}/icon/icons/SignIn.tsx (100%) rename src/_components/{ => _display}/loader/loader.module.css (100%) rename src/_components/{ => _display}/loader/loader.stories.tsx (100%) rename src/_components/{ => _display}/loader/loader.tsx (95%) create mode 100644 src/_components/_form/input/input.tsx create mode 100644 src/app/auth/new-user/page.tsx create mode 100644 src/app/auth/sign-in/page.tsx create mode 100644 src/app/auth/sign-up/page.tsx create mode 100644 src/app/auth/verify-email/page.tsx create mode 100644 src/app/error.tsx create mode 100644 src/app/global-error.tsx create mode 100644 src/app/not-found.tsx create mode 100644 src/middleware.ts diff --git a/package-lock.json b/package-lock.json index 3f39d9f..0395bd7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,9 @@ "@material-tailwind/react": "^2.1.2", "next": "latest", "react": "latest", - "react-dom": "latest" + "react-dom": "latest", + "react-google-recaptcha": "^3.1.0", + "react-hook-form": "^7.47.0" }, "devDependencies": { "@babel/preset-env": "^7.22.20", @@ -37,6 +39,7 @@ "@types/node": "latest", "@types/react": "latest", "@types/react-dom": "latest", + "@types/react-google-recaptcha": "^2.1.6", "@typescript-eslint/eslint-plugin": "latest", "@typescript-eslint/parser": "^6.7.4", "autoprefixer": "latest", @@ -8228,6 +8231,15 @@ "@types/react": "*" } }, + "node_modules/@types/react-google-recaptcha": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@types/react-google-recaptcha/-/react-google-recaptcha-2.1.6.tgz", + "integrity": "sha512-U+dLY6lGoa9sDfArZAmAItk9MpOaNV7TJtRqEox74zkXL4Qx6FnakIeM9e3HQaWYwfBgoOa7SMhWBgpnyycdvQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/scheduler": { "version": "0.16.4", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.4.tgz", @@ -15475,6 +15487,14 @@ "minimalistic-crypto-utils": "^1.0.1" } }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -23478,6 +23498,18 @@ "node": ">=0.10.0" } }, + "node_modules/react-async-script": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz", + "integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==", + "dependencies": { + "hoist-non-react-statics": "^3.3.0", + "prop-types": "^15.5.0" + }, + "peerDependencies": { + "react": ">=16.4.1" + } + }, "node_modules/react-colorful": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.6.1.tgz", @@ -23560,6 +23592,33 @@ "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", "dev": true }, + "node_modules/react-google-recaptcha": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-3.1.0.tgz", + "integrity": "sha512-cYW2/DWas8nEKZGD7SCu9BSuVz8iOcOLHChHyi7upUuVhkpkhYG/6N3KDiTQ3XAiZ2UAZkfvYKMfAHOzBOcGEg==", + "dependencies": { + "prop-types": "^15.5.0", + "react-async-script": "^1.2.0" + }, + "peerDependencies": { + "react": ">=16.4.1" + } + }, + "node_modules/react-hook-form": { + "version": "7.47.0", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.47.0.tgz", + "integrity": "sha512-F/TroLjTICipmHeFlMrLtNLceO2xr1jU3CyiNla5zdwsGUGu2UOxxR4UyJgLlhMwLW/Wzp4cpJ7CPfgJIeKdSg==", + "engines": { + "node": ">=12.22.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/react-hook-form" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18" + } + }, "node_modules/react-inspector": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/react-inspector/-/react-inspector-6.0.2.tgz", diff --git a/package.json b/package.json index 4fe42e9..308bd66 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,9 @@ "@material-tailwind/react": "^2.1.2", "next": "latest", "react": "latest", - "react-dom": "latest" + "react-dom": "latest", + "react-google-recaptcha": "^3.1.0", + "react-hook-form": "^7.47.0" }, "devDependencies": { "@babel/preset-env": "^7.22.20", @@ -45,6 +47,7 @@ "@types/node": "latest", "@types/react": "latest", "@types/react-dom": "latest", + "@types/react-google-recaptcha": "^2.1.6", "@typescript-eslint/eslint-plugin": "latest", "@typescript-eslint/parser": "^6.7.4", "autoprefixer": "latest", diff --git a/src/_components/display/icon/icon.stories.tsx b/src/_components/_display/icon/icon.stories.tsx similarity index 100% rename from src/_components/display/icon/icon.stories.tsx rename to src/_components/_display/icon/icon.stories.tsx diff --git a/src/_components/display/icon/icon.tsx b/src/_components/_display/icon/icon.tsx similarity index 100% rename from src/_components/display/icon/icon.tsx rename to src/_components/_display/icon/icon.tsx diff --git a/src/_components/display/icon/icon.types.ts b/src/_components/_display/icon/icon.types.ts similarity index 100% rename from src/_components/display/icon/icon.types.ts rename to src/_components/_display/icon/icon.types.ts diff --git a/src/_components/display/icon/icons/Account.tsx b/src/_components/_display/icon/icons/Account.tsx similarity index 100% rename from src/_components/display/icon/icons/Account.tsx rename to src/_components/_display/icon/icons/Account.tsx diff --git a/src/_components/display/icon/icons/Attendance.tsx b/src/_components/_display/icon/icons/Attendance.tsx similarity index 100% rename from src/_components/display/icon/icons/Attendance.tsx rename to src/_components/_display/icon/icons/Attendance.tsx diff --git a/src/_components/display/icon/icons/Attending.tsx b/src/_components/_display/icon/icons/Attending.tsx similarity index 100% rename from src/_components/display/icon/icons/Attending.tsx rename to src/_components/_display/icon/icons/Attending.tsx diff --git a/src/_components/display/icon/icons/CharacterRef.tsx b/src/_components/_display/icon/icons/CharacterRef.tsx similarity index 100% rename from src/_components/display/icon/icons/CharacterRef.tsx rename to src/_components/_display/icon/icons/CharacterRef.tsx diff --git a/src/_components/display/icon/icons/Committee.tsx b/src/_components/_display/icon/icons/Committee.tsx similarity index 100% rename from src/_components/display/icon/icons/Committee.tsx rename to src/_components/_display/icon/icons/Committee.tsx diff --git a/src/_components/display/icon/icons/Edit.tsx b/src/_components/_display/icon/icons/Edit.tsx similarity index 100% rename from src/_components/display/icon/icons/Edit.tsx rename to src/_components/_display/icon/icons/Edit.tsx diff --git a/src/_components/display/icon/icons/Facebook.tsx b/src/_components/_display/icon/icons/Facebook.tsx similarity index 100% rename from src/_components/display/icon/icons/Facebook.tsx rename to src/_components/_display/icon/icons/Facebook.tsx diff --git a/src/_components/display/icon/icons/FirstAider.tsx b/src/_components/_display/icon/icons/FirstAider.tsx similarity index 100% rename from src/_components/display/icon/icons/FirstAider.tsx rename to src/_components/_display/icon/icons/FirstAider.tsx diff --git a/src/_components/display/icon/icons/Game.tsx b/src/_components/_display/icon/icons/Game.tsx similarity index 100% rename from src/_components/display/icon/icons/Game.tsx rename to src/_components/_display/icon/icons/Game.tsx diff --git a/src/_components/display/icon/icons/Gm.tsx b/src/_components/_display/icon/icons/Gm.tsx similarity index 100% rename from src/_components/display/icon/icons/Gm.tsx rename to src/_components/_display/icon/icons/Gm.tsx diff --git a/src/_components/display/icon/icons/IcMeal.tsx b/src/_components/_display/icon/icons/IcMeal.tsx similarity index 100% rename from src/_components/display/icon/icons/IcMeal.tsx rename to src/_components/_display/icon/icons/IcMeal.tsx diff --git a/src/_components/display/icon/icons/Insurance.tsx b/src/_components/_display/icon/icons/Insurance.tsx similarity index 100% rename from src/_components/display/icon/icons/Insurance.tsx rename to src/_components/_display/icon/icons/Insurance.tsx diff --git a/src/_components/display/icon/icons/Location.tsx b/src/_components/_display/icon/icons/Location.tsx similarity index 100% rename from src/_components/display/icon/icons/Location.tsx rename to src/_components/_display/icon/icons/Location.tsx diff --git a/src/_components/display/icon/icons/Meeting.tsx b/src/_components/_display/icon/icons/Meeting.tsx similarity index 100% rename from src/_components/display/icon/icons/Meeting.tsx rename to src/_components/_display/icon/icons/Meeting.tsx diff --git a/src/_components/display/icon/icons/Monster.tsx b/src/_components/_display/icon/icons/Monster.tsx similarity index 100% rename from src/_components/display/icon/icons/Monster.tsx rename to src/_components/_display/icon/icons/Monster.tsx diff --git a/src/_components/display/icon/icons/MultidayGame.tsx b/src/_components/_display/icon/icons/MultidayGame.tsx similarity index 100% rename from src/_components/display/icon/icons/MultidayGame.tsx rename to src/_components/_display/icon/icons/MultidayGame.tsx diff --git a/src/_components/display/icon/icons/NotAttending.tsx b/src/_components/_display/icon/icons/NotAttending.tsx similarity index 100% rename from src/_components/display/icon/icons/NotAttending.tsx rename to src/_components/_display/icon/icons/NotAttending.tsx diff --git a/src/_components/display/icon/icons/Player.tsx b/src/_components/_display/icon/icons/Player.tsx similarity index 100% rename from src/_components/display/icon/icons/Player.tsx rename to src/_components/_display/icon/icons/Player.tsx diff --git a/src/_components/display/icon/icons/Rank.tsx b/src/_components/_display/icon/icons/Rank.tsx similarity index 100% rename from src/_components/display/icon/icons/Rank.tsx rename to src/_components/_display/icon/icons/Rank.tsx diff --git a/src/_components/display/icon/icons/Search.tsx b/src/_components/_display/icon/icons/Search.tsx similarity index 100% rename from src/_components/display/icon/icons/Search.tsx rename to src/_components/_display/icon/icons/Search.tsx diff --git a/src/_components/display/icon/icons/SignIn.tsx b/src/_components/_display/icon/icons/SignIn.tsx similarity index 100% rename from src/_components/display/icon/icons/SignIn.tsx rename to src/_components/_display/icon/icons/SignIn.tsx diff --git a/src/_components/loader/loader.module.css b/src/_components/_display/loader/loader.module.css similarity index 100% rename from src/_components/loader/loader.module.css rename to src/_components/_display/loader/loader.module.css diff --git a/src/_components/loader/loader.stories.tsx b/src/_components/_display/loader/loader.stories.tsx similarity index 100% rename from src/_components/loader/loader.stories.tsx rename to src/_components/_display/loader/loader.stories.tsx diff --git a/src/_components/loader/loader.tsx b/src/_components/_display/loader/loader.tsx similarity index 95% rename from src/_components/loader/loader.tsx rename to src/_components/_display/loader/loader.tsx index 1ccfba2..d76c61c 100644 --- a/src/_components/loader/loader.tsx +++ b/src/_components/_display/loader/loader.tsx @@ -1,6 +1,6 @@ import { FunctionComponent, useEffect, useState } from 'react'; -import { backgroundColorMap, ColorTypes } from '../../_themes/theme.types'; +import { backgroundColorMap, ColorTypes } from '../../../_themes/theme.types'; interface LoaderProps { fillColour?: ColorTypes; diff --git a/src/_components/_form/input/input.tsx b/src/_components/_form/input/input.tsx new file mode 100644 index 0000000..6381a7f --- /dev/null +++ b/src/_components/_form/input/input.tsx @@ -0,0 +1,56 @@ +import { + FieldError, + FieldValues, + Path, + UseFormRegister, +} from 'react-hook-form'; + +type InputProps = { + field: Path; + register: UseFormRegister; + required: boolean; + label: string; + helpText?: string; + errors?: FieldError; + type: + | 'color' + | 'date' + | 'datetime-local' + | 'email' + | 'month' + | 'number' + | 'password' + | 'search' + | 'tel' + | 'text' + | 'time' + | 'url' + | 'week' + | 'hidden'; +}; + +export const Input = ({ + field, + label, + helpText, + register, + required, + type, + errors, +}: InputProps) => ( + <> + + {errors?.type === 'required' &&

{label} is required

} + {errors && errors.type !== 'required' && ( +

{errors.message}

+ )} + +); diff --git a/src/_components/_layout/header/BathLarpLogo.tsx b/src/_components/_layout/header/BathLarpLogo.tsx index 4bc6bdf..e2f770d 100644 --- a/src/_components/_layout/header/BathLarpLogo.tsx +++ b/src/_components/_layout/header/BathLarpLogo.tsx @@ -15,7 +15,7 @@ const BathLarpLogo = () => { d="M571.721 62.1106L571.271 22.2213L567.107 20.1466L562.942 18.0718L570.92 10.4288C579.912 1.81411 583.355 0.932261 584.843 6.86245L585.866 10.9392L593.327 6.97273C617.577 -5.91991 643.318 -0.372962 649.075 18.9859C654.921 38.6465 653.067 49.5355 641.827 61.5508C630.702 73.4429 619.281 79.0325 605.807 79.1789C599.762 79.2444 592.734 78.7162 590.191 78.0052C585.568 76.7127 585.566 76.7171 585.545 85.5724C585.525 93.8291 585.126 94.6906 579.682 98.2164C576.469 100.297 573.465 102 573.006 102C572.548 102 571.969 84.0497 571.721 62.1106H571.721ZM629.241 69.5799C641.125 63.5669 644.689 45.0155 637.066 28.8505C634.885 24.2261 631.287 18.776 629.071 16.7392C619.626 8.05908 604.781 5.5527 592.327 10.5355L585.565 13.2405V39.0635C585.565 67.5043 585.179 66.4776 597.24 70.1367C604.136 72.2292 624.712 71.8713 629.241 69.5799V69.5799ZM469.523 59.2146C469.523 19.4372 469.41 18.0314 466.011 15.651C462.595 13.2583 462.715 13.0648 470.418 8.55101C476.665 4.89035 478.956 4.29765 481.271 5.74342C483.492 7.12996 486.931 6.74443 495.4 4.15967C509.477 -0.136635 516.842 0.996987 524.482 8.63576C529.489 13.6431 530.067 15.2029 530.067 23.721C530.067 28.9463 528.959 35.364 527.605 37.9825C524.798 43.41 516.571 50.805 511.577 52.39C509.722 52.9786 508.204 54.0707 508.204 54.8167C508.204 55.5628 514.641 59.4366 522.508 63.4251C533.319 68.9063 539.282 70.8558 546.929 71.4089C558.784 72.2663 558.392 75.0007 545.914 78.4939C535.653 81.3665 524.816 78.8567 504.514 68.9067L488.864 61.2367L494.967 59.0752C504.021 55.8687 514.189 48.6321 516.372 43.8416C517.429 41.5211 518.295 36.9721 518.295 33.7326C518.295 18.0265 500.965 4.27231 487.585 9.3589L482.977 11.1105V52.2141V93.3177L477.313 96.818C474.198 98.7432 471.171 100.318 470.586 100.318C470.002 100.318 469.523 81.8216 469.523 59.2146V59.2146ZM345.072 81.1734C345.072 78.8004 342.048 78.4579 321.107 78.4596L297.142 78.4616L297.634 48.3828C298.142 17.3763 297.651 14.7265 290.988 12.5058C287.896 11.4752 290.684 8.30707 298.943 3.46757C311.092 -3.65121 311.437 -2.73496 311.437 36.6236V70.0496H336.663C350.538 70.0496 361.89 70.7193 361.89 71.5378C361.89 72.3563 359.998 74.2481 357.686 75.7418C355.373 77.2355 351.589 79.6797 349.277 81.1734C345.406 83.6734 345.072 83.6734 345.072 81.1734V81.1734ZM5.7873 69.8713C5.66399 65.7301 5.35475 59.3211 5.35475 45.6868C5.35475 22.8677 5.79632 22.7828 1.88182 19.5431C0.90612 18.7356 0.614604 18.3572 0 17.872C0 17.872 2.01066 15.1058 7.63876 11.076C12.7152 7.44121 17.3052 4.46729 17.8388 4.46729C18.3723 4.46729 18.8089 5.94683 18.8089 7.75515C18.8089 10.9152 19.2502 10.8747 30.1609 6.71533C37.0993 4.07024 45.3234 2.30164 51.3139 2.16631C59.7495 2.58127 60.5208 3.32543 65.9941 7.39713C73.2438 15.4985 71.9248 22.1249 68.5909 28.0548C65.257 33.9846 64.2121 34.4642 60.8532 36.4177C65.0182 39.0651 76.393 41.6562 78.6571 49.0101C79.9831 54.2926 77.0523 61.7382 71.6494 66.8134L65.0426 72.1106C66.3057 68.3833 67.3125 65.425 67.5802 64.684C71.9378 52.6195 53.199 42.8229 32.2631 42.4986L18.9741 42.3031C18.8763 50.1628 18.675 57.6707 18.6525 65.1247L26.0659 68.4036C30.1432 70.207 39.3916 73.1011 46.7457 73.9234C53.3274 74.6593 58.9857 73.2621 65.0426 72.1105C60.9235 74.4257 58.8818 76.1588 50.7386 78.1216C42.8814 80.0155 31.1323 79.1021 26.4977 78.2125C21.863 77.323 12.8871 75.3777 5.7873 69.8712L5.7873 69.8713ZM54.6425 33.5731C58.7106 31.5172 59.292 30.3355 58.847 25.0281C58.4447 20.2306 57.1035 18.0451 52.7799 15.1418C45.7422 10.4159 30.6821 8.36579 23.8352 11.2016C18.8938 13.2482 18.8089 13.4938 18.8089 25.7517V38.2201L34.3653 37.0896C42.9213 36.4678 52.0461 34.8854 54.6425 33.5731V33.5731ZM89.0854 76.8752C86.4836 74.8176 84.0708 70.857 83.4708 67.6586C80.3749 51.1578 102.366 39.3821 127.704 43.9733C133.948 45.1049 134.856 45.8246 134.888 49.6715C134.941 55.924 140.673 67.7655 144.688 69.9139C146.556 70.9134 150.215 71.7542 152.82 71.7823C157.117 71.8288 157.256 72.0067 154.328 73.7065C148.789 76.921 138.625 78.5302 134.284 76.8799C131.258 75.7298 128.999 72.2135 125.643 63.4319C120.717 50.5421 118.912 49.246 105.756 49.1518C98.4346 49.0995 96.2338 51.5086 96.1961 59.6161C96.1465 70.2304 106.132 75.9359 117.316 71.6842C121.677 70.0264 128.403 66.5608 127.331 67.7644C126.603 68.5825 119.484 73.4963 116.4 75.0699C105.601 80.5782 94.6803 81.3 89.0854 76.8752V76.8752ZM175.214 79.0405C161.959 73.672 162.816 58.2812 176.913 48.5353C180.533 46.0325 183.523 43.4519 183.559 42.8005C183.594 42.1491 178.514 41.3819 172.27 41.0956L160.918 40.5752L167.646 37.3859C174.652 34.0641 182.937 33.5095 205.835 34.8296L218.797 35.5769L212.562 38.797C209.132 40.568 201.813 42.4598 196.296 43.001C187.245 43.8889 185.891 44.5422 182.422 49.6988C172.99 63.7153 184.825 78.3132 196.964 74.5083C209.104 70.7034 210.442 70.2574 210.442 70.2574C210.442 70.2574 210.293 71.1492 200.039 76.7012C189.785 82.2533 179.283 80.6889 175.214 79.0406V79.0405ZM365.254 79.28C365.254 78.8078 369.169 72.1862 373.955 64.566C385.009 46.9671 387.894 34.1948 388.61 18.8376C388.869 13.2952 389.39 9.72648 387.499 7.81929C389.73 5.83984 390.774 5.25008 392.695 3.81585C395.146 1.98583 397.452 0.816224 397.819 1.21673C398.185 1.61726 403.376 9.51212 409.354 18.7609C430.171 50.969 450.01 71.6213 460.288 71.7844C463.275 71.832 463.126 72.2867 458.918 75.9884C450.942 83.0048 442.39 80.7774 431.416 68.8247L424.284 61.0579C424.284 61.0579 410.024 63.232 403.57 64.845C397.116 66.4579 391.165 68.6353 380.702 73.2242C370.238 77.8133 365.254 81.5052 365.254 79.28V79.28ZM403.745 60.5887C411.504 58.4467 418.221 56.3253 418.672 55.8743C419.123 55.4233 415.521 49.6991 410.669 43.1539L401.846 31.2534L397.776 40.0362C395.538 44.8668 391.088 52.4626 387.889 56.9158C381.04 66.4486 380.84 67.3083 385.855 65.6981C387.936 65.0298 395.987 62.7306 403.745 60.5887V60.5887ZM227.039 50.001C226.522 22.3466 226.39 21.4194 222.325 17.0976L218.142 12.6504L222.325 9.32158C232.366 1.32986 233.964 0.599624 236.607 2.79265C238.616 4.46044 239.121 9.55404 239.121 28.1785V51.4779L246.87 46.5639C257.795 39.6363 262.744 38.9141 271.81 42.924C277.283 45.345 280.248 47.997 282.306 52.3128C285.071 58.1101 285.044 58.5966 281.557 65.7744C279.567 69.8702 276.291 74.1025 274.279 75.1797C270.885 76.9956 270.697 76.8275 271.69 72.8697C273.929 63.9516 264.722 50.724 255.007 48.9017C251.564 48.2559 247.725 48.8705 244.37 50.6056C239.741 52.9993 239.121 54.1645 239.121 60.4698C239.121 67.9707 236.063 73.9124 230.736 76.7629C227.703 78.3864 227.548 77.2649 227.039 50.001V50.001Z" fill="#AD0606" stroke="#680404" - stroke-width="2" + strokeWidth="2" mask="url(#path-1-inside-1_2_3)" /> @@ -27,9 +27,9 @@ const BathLarpLogo = () => { width="660.317" height="110" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { className="absolute mx-2 mt-2 h-20 md:mx-6 md:mt-4 md:h-40" > BathLARP sword logo. - + @@ -79,9 +79,9 @@ const BathLarpSwordLogo = () => { width="154" height="216" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { width="25.4233" height="68.7676" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { width="41.3168" height="41.7274" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { width="32.6441" height="32.9726" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { width="15.3162" height="15.7035" filterUnits="userSpaceOnUse" - color-interpolation-filters="sRGB" + colorInterpolationFilters="sRGB" > - + { gradientUnits="userSpaceOnUse" gradientTransform="translate(64.1114 75.0615) rotate(166.169) scale(22.6846 50.7464)" > - - + + { gradientUnits="userSpaceOnUse" gradientTransform="translate(61.0566 106.045) rotate(-0.170073) scale(66.5182 61.845)" > - - + + { y2="115.289" gradientUnits="userSpaceOnUse" > - - + + { y2="99.5926" gradientUnits="userSpaceOnUse" > - - + + diff --git a/src/_components/_layout/header/header.tsx b/src/_components/_layout/header/header.tsx index 2aa7672..3ef0207 100644 --- a/src/_components/_layout/header/header.tsx +++ b/src/_components/_layout/header/header.tsx @@ -1,7 +1,9 @@ +'use client'; + import { FunctionComponent } from 'react'; import Link from 'next/link'; -import { Icon } from '../../../_components/display/icon/icon'; +import { Icon } from '../../_display/icon/icon'; import BathLarpLogo from './BathLarpLogo'; import BathLarpSwordLogo from './BathLarpSword'; @@ -15,7 +17,9 @@ export const Header: FunctionComponent = ({ navElements }) => (
- + + +