From a0113d0fc588b7079e991fc37bcb97db19a634bb Mon Sep 17 00:00:00 2001 From: Anton Tranelis Date: Mon, 5 Feb 2024 10:06:38 +0100 Subject: [PATCH] MapOverlay Pages and Advanced Profiles --- package-lock.json | 54 ++++ package.json | 1 + src/Components/AppShell/NavBar.tsx | 4 +- src/Components/Auth/LoginPage.tsx | 2 +- src/Components/Auth/RequestPasswordPage.tsx | 2 +- src/Components/Auth/SetNewPasswordPage.tsx | 2 +- src/Components/Auth/SignupPage.tsx | 2 +- src/Components/Input/TextAreaInput.tsx | 2 +- .../ItemPopupComponents/HeaderView.tsx | 2 +- .../ItemPopupComponents/TextView.tsx | 14 +- .../Map/Subcomponents/ItemViewPopup.tsx | 4 +- src/Components/Map/UtopiaMap.tsx | 7 +- src/Components/Profile/ColorPicker.tsx | 23 +- src/Components/Profile/OverlayProfile.tsx | 50 ++++ .../Profile/OverlayProfileSettings.tsx | 238 ++++++++++++++++++ .../Profile/OverlayUserSettings.tsx | 83 ++++++ src/Components/Profile/index.tsx | 5 +- src/Components/Templates/CardPage.tsx | 2 +- src/Components/Templates/MapOverlayPage.tsx | 29 ++- src/index.css | 4 + src/index.tsx | 2 +- tailwind.config.js | 6 + 22 files changed, 501 insertions(+), 37 deletions(-) create mode 100644 src/Components/Profile/OverlayProfile.tsx create mode 100644 src/Components/Profile/OverlayProfileSettings.tsx create mode 100644 src/Components/Profile/OverlayUserSettings.tsx diff --git a/package-lock.json b/package-lock.json index 54a33de2..6cf3e09b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,6 +25,7 @@ "react-string-replace": "^1.1.1", "react-toastify": "^9.1.3", "rehype-video": "^2.0.2", + "remark-breaks": "^4.0.0", "tributejs": "^5.1.3", "tw-elements": "^1.0.0" }, @@ -1579,6 +1580,17 @@ "node": ">=6" } }, + "node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint": { "version": "8.24.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", @@ -3037,6 +3049,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-from-markdown": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", @@ -3118,6 +3145,19 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-newline-to-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-newline-to-break/-/mdast-util-newline-to-break-2.0.0.tgz", + "integrity": "sha512-MbgeFca0hLYIEx/2zGsszCSEJJ1JSCdiY5xQxRcLDDGa8EPvlLPupJ4DSajbMPAnC0je8jfb9TiUATnxxrHUog==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-find-and-replace": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-phrasing": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.0.0.tgz", @@ -4982,6 +5022,20 @@ "url": "https://jaywcjlove.github.io/#/sponsor" } }, + "node_modules/remark-breaks": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-breaks/-/remark-breaks-4.0.0.tgz", + "integrity": "sha512-IjEjJOkH4FuJvHZVIW0QCDWxcG96kCq7An/KVH2NfJe6rKZU2AsHeB3OEjPNRxi4QC34Xdx7I2KGYn6IpT7gxQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-newline-to-break": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/remark-parse": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", diff --git a/package.json b/package.json index 2c693383..278bebd3 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "react-string-replace": "^1.1.1", "react-toastify": "^9.1.3", "rehype-video": "^2.0.2", + "remark-breaks": "^4.0.0", "tributejs": "^5.1.3", "tw-elements": "^1.0.0" } diff --git a/src/Components/AppShell/NavBar.tsx b/src/Components/AppShell/NavBar.tsx index b216a700..a52dda77 100644 --- a/src/Components/AppShell/NavBar.tsx +++ b/src/Components/AppShell/NavBar.tsx @@ -68,8 +68,8 @@ export default function NavBar({ appName, nameWidth = 200}: { appName: string, n diff --git a/src/Components/Auth/LoginPage.tsx b/src/Components/Auth/LoginPage.tsx index b2c90a85..83d499f5 100644 --- a/src/Components/Auth/LoginPage.tsx +++ b/src/Components/Auth/LoginPage.tsx @@ -38,7 +38,7 @@ export function LoginPage() { } return ( - +

Login

setEmail(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" /> setPassword(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" /> diff --git a/src/Components/Auth/RequestPasswordPage.tsx b/src/Components/Auth/RequestPasswordPage.tsx index d297f8a8..ce51d879 100644 --- a/src/Components/Auth/RequestPasswordPage.tsx +++ b/src/Components/Auth/RequestPasswordPage.tsx @@ -36,7 +36,7 @@ export function RequestPasswordPage({reset_url}) { } return ( - +

Reset Password

setEmail(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" />
diff --git a/src/Components/Auth/SetNewPasswordPage.tsx b/src/Components/Auth/SetNewPasswordPage.tsx index 676404db..66f1c330 100644 --- a/src/Components/Auth/SetNewPasswordPage.tsx +++ b/src/Components/Auth/SetNewPasswordPage.tsx @@ -38,7 +38,7 @@ export function SetNewPasswordPage() { } return ( - +

Set new Password

setPassword(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" />
diff --git a/src/Components/Auth/SignupPage.tsx b/src/Components/Auth/SignupPage.tsx index 64b54e78..5f062467 100644 --- a/src/Components/Auth/SignupPage.tsx +++ b/src/Components/Auth/SignupPage.tsx @@ -41,7 +41,7 @@ export function SignupPage() { return ( - +

Sign Up

setUserName(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" /> setEmail(e.target.value)} className="tw-input tw-input-bordered tw-w-full tw-max-w-xs" /> diff --git a/src/Components/Input/TextAreaInput.tsx b/src/Components/Input/TextAreaInput.tsx index 8f72ff4c..382b2248 100644 --- a/src/Components/Input/TextAreaInput.tsx +++ b/src/Components/Input/TextAreaInput.tsx @@ -64,7 +64,7 @@ export function TextAreaInput({ labelTitle, dataField, labelStyle, containerStyl {labelTitle ? : ""} - +
) } diff --git a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index 431bb323..cba9ef41 100644 --- a/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -89,7 +89,7 @@ export function HeaderView({ item, setItemFormPopup }: {
{(item.layer?.api?.deleteItem || item.layer?.api?.updateItem) - && ((user && owner === user.id) || owner == undefined) + && ((user && owner?.id === user.id) || owner == undefined) && (hasUserPermission(item.layer.api?.collectionName!, "delete") || hasUserPermission(item.layer.api?.collectionName!, "update")) &&