From fc9db97e1baeba927c3e014d8678ab602acc639a Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Wed, 27 Nov 2024 10:35:20 +0300 Subject: [PATCH 01/18] feat: Add authentication forms globals configuration for web-tools --- apps/civicsignalblog/payload.config.ts | 3 +- .../globals/AuthForms/Components/LoginTab.js | 89 +++++++++++ .../AuthForms/Components/PasswordTab.js | 94 ++++++++++++ .../AuthForms/Components/RegisterTab.js | 139 ++++++++++++++++++ .../src/payload/globals/AuthForms/index.js | 14 ++ 5 files changed, 338 insertions(+), 1 deletion(-) create mode 100644 apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js create mode 100644 apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js create mode 100644 apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js create mode 100644 apps/civicsignalblog/src/payload/globals/AuthForms/index.js diff --git a/apps/civicsignalblog/payload.config.ts b/apps/civicsignalblog/payload.config.ts index 8a20c6005..0b405f636 100644 --- a/apps/civicsignalblog/payload.config.ts +++ b/apps/civicsignalblog/payload.config.ts @@ -25,6 +25,7 @@ import Actions from "./src/payload/components/actions"; import Publication from "./src/payload/globals/Publication"; import Main from "./src/payload/globals/Site/main"; import Research from "./src/payload/globals/Site/research"; +import AuthForms from "./src/payload/globals/AuthForms"; import { applicationPages } from "./src/payload/lib/data/common/applications"; import { defaultLocale, locales } from "./src/payload/utils/locales"; @@ -74,7 +75,7 @@ export default buildConfig({ MediaData, Users, ] as CollectionConfig[], - globals: [Publication, Research, Main] as GlobalConfig[], + globals: [Publication, Research, Main, AuthForms] as GlobalConfig[], ...(locales?.length ? { localization: { diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js new file mode 100644 index 000000000..646fd89eb --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js @@ -0,0 +1,89 @@ +const LoginTab = { + label: "Login", + fields: [ + { + type: "collapsible", + label: "Title & Description", + fields: [ + { + name: "title", + type: "text", + defaultValue: "Login", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Input Elements", + fields: [ + { + name: "email", + type: "text", + defaultValue: "Email", + required: true, + localized: true, + }, + { + name: "passsword", + type: "text", + defaultValue: "Password", + required: true, + localized: true, + }, + { + name: "registerButton", + type: "text", + defaultValue: "No Account? Register Now!", + required: true, + localized: true, + }, + { + name: "passwordResetLink", + label: "passwordResetButton", + type: "text", + defaultValue: "Forgot your Password?", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Form Messages", + fields: [ + { + name: "missingEmail", + type: "text", + defaultValue: "You need to enter your email address.", + required: true, + localized: true, + }, + { + name: "missingPassword", + type: "text", + defaultValue: "You need to enter your password.", + required: true, + localized: true, + }, + { + name: "loginFailed", + type: "text", + defaultValue: "Your email or password was wrong.", + required: true, + localized: true, + }, + { + name: "loginSucceeded", + type: "text", + defaultValue: "You are now logged in!", + required: true, + localized: true, + }, + ], + }, + ], +}; + +export default LoginTab; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js new file mode 100644 index 000000000..89b9a334c --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js @@ -0,0 +1,94 @@ +const PasswordTab = { + label: "Password Reset", + fields: [ + { + type: "collapsible", + label: "Title & Description", + fields: [ + { + name: "passwordResetFormTitle", + label: "Title", + type: "text", + defaultValue: "Forgot Your Password?", + required: true, + localized: true, + }, + { + name: "passwordResetIntro", + label: "Intro", + type: "text", + defaultValue: + "Enter your email address and we will send you a link to reset your password.", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Input Elements", + fields: [ + { + name: "passwordResetEmail", + label: "Email", + type: "text", + defaultValue: "Email", + required: true, + localized: true, + }, + { + name: "passwordResetButton", + type: "text", + defaultValue: "Send Password Reset Email", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Form Messages", + fields: [ + { + name: "passwordResetMissingEmail", + type: "text", + defaultValue: "Email You need to enter a valid email address.", + required: true, + localized: true, + }, + { + name: "passwordResetFailed", + type: "text", + defaultValue: "Sorry, something went wrong.", + required: true, + localized: true, + }, + { + name: "passwordResetBadToken", + type: "text", + defaultValue: + "That is an invalid reset token. Check to see if you have a newer link from us in your email", + required: true, + localized: true, + }, + { + name: "passwordResetSuccessTitle", + type: "text", + defaultValue: "We Reset Your Password", + required: true, + localized: true, + }, + { + name: "passwordResetSuccessDescription", + type: "text", + defaultValue: + "We have reset your password. We emailed you just to confirm that you did this on purpose - don't be suprised.", + required: true, + localized: true, + }, + ], + }, + ], +}; + +export default PasswordTab; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js new file mode 100644 index 000000000..79619809b --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js @@ -0,0 +1,139 @@ +import richText from "#civicsignalblog/payload/fields/richText"; + +const RegisterTab = { + label: "Register", + fields: [ + { + type: "collapsible", + label: "Title & Description", + fields: [ + { + name: "signUpFormTitle", + label: "Title", + type: "text", + defaultValue: "Sign Up", + required: true, + localized: true, + }, + { + name: "signUpIntro", + label: "Intro", + type: "text", + defaultValue: "Create an account to use all our tools for free.", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Input Elements", + fields: [ + { + name: "signUpEmail", + label: "Email", + type: "text", + defaultValue: "Email", + required: true, + localized: true, + }, + { + name: "signUpFullName", + label: "Full Name", + type: "text", + defaultValue: "Full Name", + required: true, + localized: true, + }, + { + name: "signUpPasssword", + label: "Password", + type: "text", + defaultValue: "Password", + required: true, + localized: true, + }, + { + name: "notes", + type: "text", + defaultValue: "Notes", + required: true, + localized: true, + }, + richText({ + name: "consent", + required: true, + localized: true, + }), + { + name: "signUpButton", + type: "text", + defaultValue: "Sign up", + required: true, + localized: true, + }, + ], + }, + { + type: "collapsible", + label: "Form Messages", + fields: [ + { + name: "signUpMissingEmail", + type: "text", + defaultValue: "You need to enter your email address.", + required: true, + localized: true, + }, + { + name: "signUpMissingName", + type: "text", + defaultValue: "You need to enter your full name.", + required: true, + localized: true, + }, + { + name: "signUpMissingPassword", + type: "text", + defaultValue: "You need to enter your password.", + required: true, + localized: true, + }, + { + name: "signUpMissingConsent", + type: "text", + defaultValue: "You must agree to our Terms and Policies", + required: true, + localized: true, + }, + { + name: "signUpFeedback", + type: "text", + defaultValue: "Successfully signed up.", + required: true, + localized: true, + }, + { + name: "signUpNotesHint", + type: "text", + defaultValue: + "Tell us a little about what you want to use Media Cloud for", + required: true, + localized: true, + }, + richText({ + name: "userAlreadyExists", + required: true, + localized: true, + }), + richText({ + name: "signupSuccess", + required: true, + localized: true, + }), + ], + }, + ], +}; + +export default RegisterTab; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/index.js b/apps/civicsignalblog/src/payload/globals/AuthForms/index.js new file mode 100644 index 000000000..f7a5898c5 --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/index.js @@ -0,0 +1,14 @@ +import LoginTab from "./Components/LoginTab"; +import PasswordTab from "./Components/PasswordTab"; +import RegisterTab from "./Components/RegisterTab"; + +import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; + +const Main = settings({ + slug: `settings-auth-forms`, + label: "Auth Forms", + group: "Settings", + tabs: [LoginTab, RegisterTab, PasswordTab], +}); + +export default Main; From 0f3fff1292d336b4a2df25a589838570ab262be6 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 28 Nov 2024 09:04:43 +0300 Subject: [PATCH 02/18] Update LoginTab to include need to activate message --- .../globals/AuthForms/Components/LoginTab.js | 7 + pnpm-lock.yaml | 377 +++++++++++++++++- 2 files changed, 364 insertions(+), 20 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js index 646fd89eb..08e32b836 100644 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js @@ -1,3 +1,5 @@ +import richText from "#civicsignalblog/payload/fields/richText"; + const LoginTab = { label: "Login", fields: [ @@ -81,6 +83,11 @@ const LoginTab = { required: true, localized: true, }, + richText({ + name: "needsToActivate", + required: true, + localized: true, + }), ], }, ], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3097b61e5..ba15b8a93 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -671,7 +671,7 @@ importers: version: 0.84.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@payloadcms/bundler-webpack': specifier: 'catalog:' - version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(sass@1.69.4) + version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@6.12.6)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(sass@1.69.4) '@payloadcms/db-mongodb': specifier: 'catalog:' version: 1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0))) @@ -885,10 +885,10 @@ importers: version: 14.2.16(next@14.2.16(@opentelemetry/api@1.9.0)(@playwright/test@1.48.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.69.4))(react@18.3.1) '@payloadcms/bundler-webpack': specifier: 'catalog:' - version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4) + version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4) '@payloadcms/db-mongodb': specifier: 'catalog:' - version: 1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/live-preview': specifier: 'catalog:' version: 0.2.2 @@ -897,19 +897,19 @@ importers: version: 0.2.0(react@18.3.1) '@payloadcms/plugin-cloud-storage': specifier: 'catalog:' - version: 1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/plugin-nested-docs': specifier: 'catalog:' - version: 1.0.12(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.0.12(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/plugin-sentry': specifier: 'catalog:' - version: 0.0.6(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) + version: 0.0.6(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) '@payloadcms/plugin-seo': specifier: 'catalog:' - version: 2.3.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) + version: 2.3.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) '@payloadcms/richtext-slate': specifier: 'catalog:' - version: 1.5.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.5.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: 'catalog:' version: 8.36.0(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.16(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.69.4))(react@18.3.1)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) @@ -941,8 +941,8 @@ importers: specifier: 'catalog:' version: 1.0.3 payload: - specifier: 'catalog:' - version: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + specifier: 2.30.0 + version: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) prop-types: specifier: 'catalog:' version: 15.8.1 @@ -4645,6 +4645,12 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@faceless-ui/window-info@2.1.1': + resolution: {integrity: sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@faceless-ui/window-info@2.1.2': resolution: {integrity: sha512-IvZM6mLWFRin904180115Y6BgsvAN9M5uCMJEHhiQgTgzDMiYVtUww7GlWRsvemubMRF6c9Q+j79qW7uPPuMBg==} peerDependencies: @@ -6593,9 +6599,6 @@ packages: peerDependencies: '@swc/core': ^1.0.46 - '@swc/types@0.1.12': - resolution: {integrity: sha512-wBJA+SdtkbFhHjTMYH+dEH1y4VpfGdAc2Kw/LK09i9bXd/K6j6PkDcFCEzb6iVfZMkPRrl/q0e3toqTAJdkIVA==} - '@swc/types@0.1.14': resolution: {integrity: sha512-PbSmTiYCN+GMrvfjrMo9bdY+f2COnwbdnoMw7rqU/PI5jXpKjxOGZ0qqZCImxnT81NkNsKnmEpvu+hRXLBeCJg==} @@ -7544,6 +7547,10 @@ packages: bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} + body-parser@1.20.2: + resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -8409,6 +8416,9 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} + deep-equal@2.2.2: + resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} + deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -10618,6 +10628,10 @@ packages: jsonp@0.2.1: resolution: {integrity: sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==} + jsonwebtoken@9.0.1: + resolution: {integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==} + engines: {node: '>=12', npm: '>=6'} + jsonwebtoken@9.0.2: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} @@ -11456,6 +11470,10 @@ packages: resolution: {integrity: sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==} engines: {node: '>=6.0.0'} + nodemailer@6.9.8: + resolution: {integrity: sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==} + engines: {node: '>=6.0.0'} + nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -11824,6 +11842,11 @@ packages: pause@0.0.1: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} + payload@2.30.0: + resolution: {integrity: sha512-uKYEKZZw7M4YyT2pVwDdbF1g9nJuKirB5N+l8aMp7PIOaTMK9enora4pTdmcb/+O+f696c43TxNQc2qZ24mgCA==} + engines: {node: '>=14'} + hasBin: true + payload@2.30.3: resolution: {integrity: sha512-D0kO+pcDK7zgfY1mfXjgsIxCH9fzCsZzMbIsonTAo1CWuK11R9jIwr0mn5BhUIenOjwwhXeiDSnXZflCJWhykQ==} engines: {node: '>=14'} @@ -12307,6 +12330,10 @@ packages: resolution: {integrity: sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg==} engines: {node: '>=0.10'} + qs@6.11.0: + resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} + engines: {node: '>=0.6'} + qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} @@ -12939,6 +12966,9 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} + scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -13443,6 +13473,12 @@ packages: engines: {node: '>=14.0.0'} hasBin: true + swc-loader@0.2.3: + resolution: {integrity: sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==} + peerDependencies: + '@swc/core': ^1.2.147 + webpack: '>=2' + swc-loader@0.2.6: resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} peerDependencies: @@ -13517,6 +13553,22 @@ packages: uglify-js: optional: true + terser-webpack-plugin@5.3.9: + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + terser@5.36.0: resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} @@ -16884,6 +16936,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@faceless-ui/window-info@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@faceless-ui/window-info@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 @@ -18025,9 +18082,9 @@ snapshots: '@panva/hkdf@1.2.1': {} - '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(sass@1.69.4)': + '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@6.12.6)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(sass@1.69.4)': dependencies: - ajv: 8.17.1 + ajv: 6.12.6 compression: 1.7.4 connect-history-api-fallback: 1.6.0 css-loader: 5.2.7(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)) @@ -18069,6 +18126,50 @@ snapshots: - utf-8-validate - webpack-dev-server + '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4)': + dependencies: + ajv: 8.17.1 + compression: 1.7.4 + connect-history-api-fallback: 1.6.0 + css-loader: 5.2.7(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + file-loader: 6.2.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + find-node-modules: 2.1.3 + html-webpack-plugin: 5.6.3(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + md5: 2.3.0 + mini-css-extract-plugin: 1.6.2(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + path-browserify: 1.0.1 + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + postcss: 8.4.31 + postcss-loader: 6.2.1(postcss@8.4.31)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + postcss-preset-env: 9.0.0(postcss@8.4.31) + process: 0.11.10 + sass-loader: 12.6.0(sass@1.69.4)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + style-loader: 2.0.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + swc-loader: 0.2.6(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + swc-minify-webpack-plugin: 2.1.3(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + terser-webpack-plugin: 5.3.10(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + webpack-bundle-analyzer: 4.10.2 + webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + webpack-dev-middleware: 6.1.2(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + webpack-hot-middleware: 2.26.1 + transitivePeerDependencies: + - '@rspack/core' + - '@swc/core' + - '@webpack-cli/generators' + - '@webpack-cli/migrate' + - bufferutil + - esbuild + - fibers + - node-sass + - sass + - sass-embedded + - supports-color + - uglify-js + - utf-8-validate + - webpack-dev-server + '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4)': dependencies: ajv: 8.17.1 @@ -18113,6 +18214,23 @@ snapshots: - utf-8-validate - webpack-dev-server + '@payloadcms/db-mongodb@1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': + dependencies: + bson-objectid: 2.0.4 + deepmerge: 4.3.1 + get-port: 5.1.1 + http-status: 1.6.2 + mongoose: 6.12.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0)) + mongoose-aggregate-paginate-v2: 1.0.6 + mongoose-paginate-v2: 1.7.22 + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + prompts: 2.4.2 + uuid: 9.0.0 + transitivePeerDependencies: + - '@aws-sdk/client-sso-oidc' + - aws-crt + - supports-color + '@payloadcms/db-mongodb@1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: bson-objectid: 2.0.4 @@ -18154,6 +18272,15 @@ snapshots: '@payloadcms/live-preview@0.2.2': {} + '@payloadcms/plugin-cloud-storage@1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': + dependencies: + find-node-modules: 2.1.3 + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + range-parser: 1.2.1 + optionalDependencies: + '@aws-sdk/client-s3': 3.685.0 + '@aws-sdk/lib-storage': 3.685.0(@aws-sdk/client-s3@3.685.0) + '@payloadcms/plugin-cloud-storage@1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: find-node-modules: 2.1.3 @@ -18172,6 +18299,10 @@ snapshots: '@aws-sdk/client-s3': 3.685.0 '@aws-sdk/lib-storage': 3.685.0(@aws-sdk/client-s3@3.685.0) + '@payloadcms/plugin-nested-docs@1.0.12(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': + dependencies: + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + '@payloadcms/plugin-nested-docs@1.0.12(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)) @@ -18180,6 +18311,16 @@ snapshots: dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + '@payloadcms/plugin-sentry@0.0.6(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1)': + dependencies: + '@sentry/node': 7.119.2 + '@sentry/types': 7.119.2 + express: 4.21.1 + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + react: 18.3.1 + transitivePeerDependencies: + - supports-color + '@payloadcms/plugin-sentry@0.0.6(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react@18.3.1)': dependencies: '@sentry/node': 7.119.2 @@ -18200,6 +18341,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@payloadcms/plugin-seo@2.3.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1)': + dependencies: + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + react: 18.3.1 + '@payloadcms/plugin-seo@2.3.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react@18.3.1)': dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)) @@ -18210,6 +18356,22 @@ snapshots: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) react: 18.3.1 + '@payloadcms/richtext-slate@1.5.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + i18next: 22.5.1 + is-hotkey: 0.2.0 + payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + react: 18.3.1 + react-i18next: 11.18.6(i18next@22.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + slate: 0.91.4 + slate-history: 0.86.0(slate@0.91.4) + slate-hyperscript: 0.81.3(slate@0.91.4) + slate-react: 0.92.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(slate@0.91.4) + transitivePeerDependencies: + - react-dom + - react-native + '@payloadcms/richtext-slate@1.5.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -19993,7 +20155,7 @@ snapshots: '@swc/core@1.6.1(@swc/helpers@0.5.5)': dependencies: '@swc/counter': 0.1.3 - '@swc/types': 0.1.12 + '@swc/types': 0.1.14 optionalDependencies: '@swc/core-darwin-arm64': 1.6.1 '@swc/core-darwin-x64': 1.6.1 @@ -20038,10 +20200,6 @@ snapshots: pirates: 4.0.6 source-map-support: 0.5.21 - '@swc/types@0.1.12': - dependencies: - '@swc/counter': 0.1.3 - '@swc/types@0.1.14': dependencies: '@swc/counter': 0.1.3 @@ -21219,6 +21377,23 @@ snapshots: bn.js@5.2.1: {} + body-parser@1.20.2: + dependencies: + bytes: 3.1.2 + content-type: 1.0.5 + debug: 2.6.9 + depd: 2.0.0 + destroy: 1.2.0 + http-errors: 2.0.0 + iconv-lite: 0.4.24 + on-finished: 2.4.1 + qs: 6.11.0 + raw-body: 2.5.2 + type-is: 1.6.18 + unpipe: 1.0.0 + transitivePeerDependencies: + - supports-color + body-parser@1.20.3: dependencies: bytes: 3.1.2 @@ -22194,6 +22369,27 @@ snapshots: deep-eql@5.0.2: {} + deep-equal@2.2.2: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.7 + es-get-iterator: 1.1.3 + get-intrinsic: 1.2.4 + is-arguments: 1.1.1 + is-array-buffer: 3.0.4 + is-date-object: 1.0.5 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + isarray: 2.0.5 + object-is: 1.1.6 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + side-channel: 1.0.6 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.15 + deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -25494,6 +25690,13 @@ snapshots: transitivePeerDependencies: - supports-color + jsonwebtoken@9.0.1: + dependencies: + jws: 3.2.2 + lodash: 4.17.21 + ms: 2.1.3 + semver: 7.6.3 + jsonwebtoken@9.0.2: dependencies: jws: 3.2.2 @@ -26713,6 +26916,8 @@ snapshots: nodemailer@6.9.15: {} + nodemailer@6.9.8: {} + nopt@5.0.0: dependencies: abbrev: 1.1.1 @@ -27101,6 +27306,107 @@ snapshots: pause@0.0.1: {} + payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): + dependencies: + '@date-io/date-fns': 2.16.0(date-fns@2.30.0) + '@dnd-kit/core': 6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@faceless-ui/scroll-info': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@faceless-ui/window-info': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@monaco-editor/react': 4.5.1(monaco-editor@0.38.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@swc/core': 1.6.1(@swc/helpers@0.5.5) + '@swc/register': 0.1.10(@swc/core@1.6.1(@swc/helpers@0.5.5)) + body-parser: 1.20.2 + body-scroll-lock: 4.0.0-beta.0 + bson-objectid: 2.0.4 + compression: 1.7.4 + conf: 10.2.0 + connect-history-api-fallback: 1.6.0 + console-table-printer: 2.11.2 + dataloader: 2.2.2 + date-fns: 2.30.0 + deep-equal: 2.2.2 + deepmerge: 4.3.1 + dotenv: 8.6.0 + express: 4.21.0 + express-fileupload: 1.4.0 + express-rate-limit: 5.5.1 + file-type: 16.5.4 + find-up: 4.1.0 + fs-extra: 10.1.0 + get-tsconfig: 4.6.2 + graphql: 16.8.1 + graphql-http: 1.21.0(graphql@16.8.1) + graphql-playground-middleware-express: 1.7.23(express@4.21.0) + graphql-query-complexity: 0.12.0(graphql@16.8.1) + graphql-scalars: 1.22.2(graphql@16.8.1) + graphql-type-json: 0.3.2(graphql@16.8.1) + html-webpack-plugin: 5.5.3(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + http-status: 1.6.2 + i18next: 22.5.1 + i18next-browser-languagedetector: 6.1.8 + i18next-http-middleware: 3.3.2 + is-buffer: 2.0.5 + is-hotkey: 0.2.0 + is-plain-object: 5.0.0 + isomorphic-fetch: 3.0.0(encoding@0.1.13) + joi: 17.9.2 + json-schema-to-typescript: 14.0.5 + jsonwebtoken: 9.0.1 + jwt-decode: 3.1.2 + md5: 2.3.0 + method-override: 3.0.0 + minimist: 1.2.8 + mkdirp: 1.0.4 + monaco-editor: 0.38.0 + nodemailer: 6.9.8 + object-to-formdata: 4.5.1 + passport: 0.6.0 + passport-anonymous: 1.0.1 + passport-headerapikey: 1.2.2 + passport-jwt: 4.0.1 + passport-local: 1.0.0 + pino: 8.15.0 + pino-pretty: 10.3.1 + pluralize: 8.0.0 + probe-image-size: 6.0.0 + process: 0.11.10 + qs: 6.11.2 + qs-middleware: 1.0.3 + react: 18.3.1 + react-animate-height: 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-datepicker: 4.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-diff-viewer-continued: 3.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-dom: 18.3.1(react@18.3.1) + react-helmet: 6.1.0(react@18.3.1) + react-i18next: 11.18.6(i18next@22.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-image-crop: 10.1.8(react@18.3.1) + react-router-dom: 5.3.4(react@18.3.1) + react-router-navigation-prompt: 1.9.6(react-router-dom@5.3.4(react@18.3.1))(react@18.3.1) + react-select: 5.7.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-toastify: 10.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + sanitize-filename: 1.6.3 + sass: 1.69.4 + scheduler: 0.23.0 + scmp: 2.1.0 + sharp: 0.33.5 + swc-loader: 0.2.3(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + terser-webpack-plugin: 5.3.9(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + ts-essentials: 7.0.3(typescript@5.6.3) + use-context-selector: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.0) + uuid: 9.0.1 + transitivePeerDependencies: + - '@swc/helpers' + - '@types/react' + - encoding + - esbuild + - react-native + - supports-color + - typescript + - uglify-js + - webpack + payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)): dependencies: '@date-io/date-fns': 2.16.0(date-fns@2.30.0) @@ -27898,6 +28204,10 @@ snapshots: dependencies: qs: 6.4.1 + qs@6.11.0: + dependencies: + side-channel: 1.0.6 + qs@6.11.2: dependencies: side-channel: 1.0.6 @@ -28688,6 +28998,10 @@ snapshots: dependencies: xmlchars: 2.2.0 + scheduler@0.23.0: + dependencies: + loose-envify: 1.4.0 + scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -29308,6 +29622,11 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 + swc-loader@0.2.3(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): + dependencies: + '@swc/core': 1.6.1(@swc/helpers@0.5.5) + webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + swc-loader@0.2.6(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)): dependencies: '@swc/core': 1.6.1(@swc/helpers@0.5.5) @@ -29457,6 +29776,17 @@ snapshots: terser: 5.36.0 webpack: 5.96.1 + terser-webpack-plugin@5.3.9(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): + dependencies: + '@jridgewell/trace-mapping': 0.3.25 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.2 + terser: 5.36.0 + webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + optionalDependencies: + '@swc/core': 1.6.1(@swc/helpers@0.5.5) + terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -29919,6 +30249,13 @@ snapshots: punycode: 1.4.1 qs: 6.13.0 + use-context-selector@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.0): + dependencies: + react: 18.3.1 + scheduler: 0.23.0 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) + use-context-selector@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2): dependencies: react: 18.3.1 From 93db502c121081c9a34b1f621f09fb7e14b7805e Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 28 Nov 2024 15:35:07 +0300 Subject: [PATCH 03/18] Add login button label --- .../globals/AuthForms/Components/LoginTab.js | 9 +- pnpm-lock.yaml | 363 +----------------- 2 files changed, 18 insertions(+), 354 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js index 08e32b836..3c0ea6e46 100644 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js @@ -34,6 +34,13 @@ const LoginTab = { required: true, localized: true, }, + { + name: "loginButton", + type: "text", + defaultValue: "Login", + required: true, + localized: true, + }, { name: "registerButton", type: "text", @@ -43,7 +50,7 @@ const LoginTab = { }, { name: "passwordResetLink", - label: "passwordResetButton", + label: "Password Reset Button", type: "text", defaultValue: "Forgot your Password?", required: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ba15b8a93..4092d5d33 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -885,10 +885,10 @@ importers: version: 14.2.16(next@14.2.16(@opentelemetry/api@1.9.0)(@playwright/test@1.48.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.69.4))(react@18.3.1) '@payloadcms/bundler-webpack': specifier: 'catalog:' - version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4) + version: 1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4) '@payloadcms/db-mongodb': specifier: 'catalog:' - version: 1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/live-preview': specifier: 'catalog:' version: 0.2.2 @@ -897,19 +897,19 @@ importers: version: 0.2.0(react@18.3.1) '@payloadcms/plugin-cloud-storage': specifier: 'catalog:' - version: 1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/plugin-nested-docs': specifier: 'catalog:' - version: 1.0.12(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) + version: 1.0.12(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) '@payloadcms/plugin-sentry': specifier: 'catalog:' - version: 0.0.6(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) + version: 0.0.6(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) '@payloadcms/plugin-seo': specifier: 'catalog:' - version: 2.3.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) + version: 2.3.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1) '@payloadcms/richtext-slate': specifier: 'catalog:' - version: 1.5.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 1.5.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@sentry/nextjs': specifier: 'catalog:' version: 8.36.0(@opentelemetry/core@1.27.0(@opentelemetry/api@1.9.0))(@opentelemetry/instrumentation@0.54.0(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@1.27.0(@opentelemetry/api@1.9.0))(encoding@0.1.13)(next@14.2.16(@babel/core@7.26.0)(@opentelemetry/api@1.9.0)(@playwright/test@1.48.2)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.69.4))(react@18.3.1)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) @@ -941,8 +941,8 @@ importers: specifier: 'catalog:' version: 1.0.3 payload: - specifier: 2.30.0 - version: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) + specifier: 'catalog:' + version: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) prop-types: specifier: 'catalog:' version: 15.8.1 @@ -4645,12 +4645,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@faceless-ui/window-info@2.1.1': - resolution: {integrity: sha512-gMAgda7beR4CNpBIXjgRVn97ek0LG3PAj9lxmoYdg574IEzLFZAh3eAYtTaS2XLKgb4+IHhsuBzlGmHbeOo2Aw==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - '@faceless-ui/window-info@2.1.2': resolution: {integrity: sha512-IvZM6mLWFRin904180115Y6BgsvAN9M5uCMJEHhiQgTgzDMiYVtUww7GlWRsvemubMRF6c9Q+j79qW7uPPuMBg==} peerDependencies: @@ -6595,6 +6589,7 @@ packages: '@swc/register@0.1.10': resolution: {integrity: sha512-6STwH/q4dc3pitXLVkV7sP0Hiy+zBsU2wOF1aXpXR95pnH3RYHKIsDC+gvesfyB7jxNT9OOZgcqOp9RPxVTx9A==} + deprecated: Use @swc-node/register instead hasBin: true peerDependencies: '@swc/core': ^1.0.46 @@ -7547,10 +7542,6 @@ packages: bn.js@5.2.1: resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - body-parser@1.20.2: - resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} - engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} - body-parser@1.20.3: resolution: {integrity: sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -8416,9 +8407,6 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - deep-equal@2.2.2: - resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==} - deep-equal@2.2.3: resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} engines: {node: '>= 0.4'} @@ -10628,10 +10616,6 @@ packages: jsonp@0.2.1: resolution: {integrity: sha512-pfog5gdDxPdV4eP7Kg87M8/bHgshlZ5pybl+yKxAnCZ5O7lCIn7Ixydj03wOlnDQesky2BPyA91SQ+5Y/mNwzw==} - jsonwebtoken@9.0.1: - resolution: {integrity: sha512-K8wx7eJ5TPvEjuiVSkv167EVboBDv9PZdDoF7BgeQnBLVvZWW9clr2PsQHVJDTKaEIH5JBIwHujGcHp7GgI2eg==} - engines: {node: '>=12', npm: '>=6'} - jsonwebtoken@9.0.2: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} @@ -11470,10 +11454,6 @@ packages: resolution: {integrity: sha512-AHf04ySLC6CIfuRtRiEYtGEXgRfa6INgWGluDhnxTZhHSKvrBu7lc1VVchQ0d8nPc4cFaZoPq8vkyNoZr0TpGQ==} engines: {node: '>=6.0.0'} - nodemailer@6.9.8: - resolution: {integrity: sha512-cfrYUk16e67Ks051i4CntM9kshRYei1/o/Gi8K1d+R34OIs21xdFnW7Pt7EucmVKA0LKtqUGNcjMZ7ehjl49mQ==} - engines: {node: '>=6.0.0'} - nopt@5.0.0: resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==} engines: {node: '>=6'} @@ -11842,11 +11822,6 @@ packages: pause@0.0.1: resolution: {integrity: sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==} - payload@2.30.0: - resolution: {integrity: sha512-uKYEKZZw7M4YyT2pVwDdbF1g9nJuKirB5N+l8aMp7PIOaTMK9enora4pTdmcb/+O+f696c43TxNQc2qZ24mgCA==} - engines: {node: '>=14'} - hasBin: true - payload@2.30.3: resolution: {integrity: sha512-D0kO+pcDK7zgfY1mfXjgsIxCH9fzCsZzMbIsonTAo1CWuK11R9jIwr0mn5BhUIenOjwwhXeiDSnXZflCJWhykQ==} engines: {node: '>=14'} @@ -12330,10 +12305,6 @@ packages: resolution: {integrity: sha512-ymlixxD/0Bj3BMY9x1z8ENdQdhkmsIbDNyVvfM8soHn5p/CRFlLPrmtxmE5aG//q1PzHHSGuLi+6QlHezivseg==} engines: {node: '>=0.10'} - qs@6.11.0: - resolution: {integrity: sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==} - engines: {node: '>=0.6'} - qs@6.11.2: resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} engines: {node: '>=0.6'} @@ -12966,9 +12937,6 @@ packages: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} - scheduler@0.23.0: - resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} - scheduler@0.23.2: resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} @@ -13473,12 +13441,6 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - swc-loader@0.2.3: - resolution: {integrity: sha512-D1p6XXURfSPleZZA/Lipb3A8pZ17fP4NObZvFCDjK/OKljroqDpPmsBdTraWhVBqUNpcWBQY1imWdoPScRlQ7A==} - peerDependencies: - '@swc/core': ^1.2.147 - webpack: '>=2' - swc-loader@0.2.6: resolution: {integrity: sha512-9Zi9UP2YmDpgmQVbyOPJClY0dwf58JDyDMQ7uRc4krmc72twNI2fvlBWHLqVekBpPc7h5NJkGVT1zNDxFrqhvg==} peerDependencies: @@ -13553,22 +13515,6 @@ packages: uglify-js: optional: true - terser-webpack-plugin@5.3.9: - resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser@5.36.0: resolution: {integrity: sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==} engines: {node: '>=10'} @@ -16936,11 +16882,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@faceless-ui/window-info@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - '@faceless-ui/window-info@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: react: 18.3.1 @@ -18126,50 +18067,6 @@ snapshots: - utf-8-validate - webpack-dev-server - '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4)': - dependencies: - ajv: 8.17.1 - compression: 1.7.4 - connect-history-api-fallback: 1.6.0 - css-loader: 5.2.7(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - file-loader: 6.2.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - find-node-modules: 2.1.3 - html-webpack-plugin: 5.6.3(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - md5: 2.3.0 - mini-css-extract-plugin: 1.6.2(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - path-browserify: 1.0.1 - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - postcss: 8.4.31 - postcss-loader: 6.2.1(postcss@8.4.31)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - postcss-preset-env: 9.0.0(postcss@8.4.31) - process: 0.11.10 - sass-loader: 12.6.0(sass@1.69.4)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - style-loader: 2.0.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - swc-loader: 0.2.6(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - swc-minify-webpack-plugin: 2.1.3(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - terser-webpack-plugin: 5.3.10(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) - webpack-bundle-analyzer: 4.10.2 - webpack-cli: 4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - webpack-dev-middleware: 6.1.2(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - webpack-hot-middleware: 2.26.1 - transitivePeerDependencies: - - '@rspack/core' - - '@swc/core' - - '@webpack-cli/generators' - - '@webpack-cli/migrate' - - bufferutil - - esbuild - - fibers - - node-sass - - sass - - sass-embedded - - supports-color - - uglify-js - - utf-8-validate - - webpack-dev-server - '@payloadcms/bundler-webpack@1.0.7(@swc/core@1.8.0(@swc/helpers@0.5.5))(ajv@8.17.1)(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(sass@1.69.4)': dependencies: ajv: 8.17.1 @@ -18214,23 +18111,6 @@ snapshots: - utf-8-validate - webpack-dev-server - '@payloadcms/db-mongodb@1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': - dependencies: - bson-objectid: 2.0.4 - deepmerge: 4.3.1 - get-port: 5.1.1 - http-status: 1.6.2 - mongoose: 6.12.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0)) - mongoose-aggregate-paginate-v2: 1.0.6 - mongoose-paginate-v2: 1.7.22 - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - prompts: 2.4.2 - uuid: 9.0.0 - transitivePeerDependencies: - - '@aws-sdk/client-sso-oidc' - - aws-crt - - supports-color - '@payloadcms/db-mongodb@1.7.3(@aws-sdk/client-sso-oidc@3.682.0(@aws-sdk/client-sts@3.682.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: bson-objectid: 2.0.4 @@ -18272,15 +18152,6 @@ snapshots: '@payloadcms/live-preview@0.2.2': {} - '@payloadcms/plugin-cloud-storage@1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': - dependencies: - find-node-modules: 2.1.3 - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - range-parser: 1.2.1 - optionalDependencies: - '@aws-sdk/client-s3': 3.685.0 - '@aws-sdk/lib-storage': 3.685.0(@aws-sdk/client-s3@3.685.0) - '@payloadcms/plugin-cloud-storage@1.2.0(@aws-sdk/client-s3@3.685.0)(@aws-sdk/lib-storage@3.685.0(@aws-sdk/client-s3@3.685.0))(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: find-node-modules: 2.1.3 @@ -18299,10 +18170,6 @@ snapshots: '@aws-sdk/client-s3': 3.685.0 '@aws-sdk/lib-storage': 3.685.0(@aws-sdk/client-s3@3.685.0) - '@payloadcms/plugin-nested-docs@1.0.12(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))': - dependencies: - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - '@payloadcms/plugin-nested-docs@1.0.12(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))': dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)) @@ -18311,16 +18178,6 @@ snapshots: dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - '@payloadcms/plugin-sentry@0.0.6(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1)': - dependencies: - '@sentry/node': 7.119.2 - '@sentry/types': 7.119.2 - express: 4.21.1 - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - react: 18.3.1 - transitivePeerDependencies: - - supports-color - '@payloadcms/plugin-sentry@0.0.6(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react@18.3.1)': dependencies: '@sentry/node': 7.119.2 @@ -18341,11 +18198,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@payloadcms/plugin-seo@2.3.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react@18.3.1)': - dependencies: - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - react: 18.3.1 - '@payloadcms/plugin-seo@2.3.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react@18.3.1)': dependencies: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)) @@ -18356,22 +18208,6 @@ snapshots: payload: 2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) react: 18.3.1 - '@payloadcms/richtext-slate@1.5.2(payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - i18next: 22.5.1 - is-hotkey: 0.2.0 - payload: 2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - react: 18.3.1 - react-i18next: 11.18.6(i18next@22.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - slate: 0.91.4 - slate-history: 0.86.0(slate@0.91.4) - slate-hyperscript: 0.81.3(slate@0.91.4) - slate-react: 0.92.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(slate@0.91.4) - transitivePeerDependencies: - - react-dom - - react-native - '@payloadcms/richtext-slate@1.5.2(payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -21377,23 +21213,6 @@ snapshots: bn.js@5.2.1: {} - body-parser@1.20.2: - dependencies: - bytes: 3.1.2 - content-type: 1.0.5 - debug: 2.6.9 - depd: 2.0.0 - destroy: 1.2.0 - http-errors: 2.0.0 - iconv-lite: 0.4.24 - on-finished: 2.4.1 - qs: 6.11.0 - raw-body: 2.5.2 - type-is: 1.6.18 - unpipe: 1.0.0 - transitivePeerDependencies: - - supports-color - body-parser@1.20.3: dependencies: bytes: 3.1.2 @@ -22369,27 +22188,6 @@ snapshots: deep-eql@5.0.2: {} - deep-equal@2.2.2: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.3 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 - deep-equal@2.2.3: dependencies: array-buffer-byte-length: 1.0.1 @@ -25690,13 +25488,6 @@ snapshots: transitivePeerDependencies: - supports-color - jsonwebtoken@9.0.1: - dependencies: - jws: 3.2.2 - lodash: 4.17.21 - ms: 2.1.3 - semver: 7.6.3 - jsonwebtoken@9.0.2: dependencies: jws: 3.2.2 @@ -26916,8 +26707,6 @@ snapshots: nodemailer@6.9.15: {} - nodemailer@6.9.8: {} - nopt@5.0.0: dependencies: abbrev: 1.1.1 @@ -27306,107 +27095,6 @@ snapshots: pause@0.0.1: {} - payload@2.30.0(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): - dependencies: - '@date-io/date-fns': 2.16.0(date-fns@2.30.0) - '@dnd-kit/core': 6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.0.8(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) - '@faceless-ui/modal': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@faceless-ui/scroll-info': 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@faceless-ui/window-info': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@monaco-editor/react': 4.5.1(monaco-editor@0.38.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@swc/core': 1.6.1(@swc/helpers@0.5.5) - '@swc/register': 0.1.10(@swc/core@1.6.1(@swc/helpers@0.5.5)) - body-parser: 1.20.2 - body-scroll-lock: 4.0.0-beta.0 - bson-objectid: 2.0.4 - compression: 1.7.4 - conf: 10.2.0 - connect-history-api-fallback: 1.6.0 - console-table-printer: 2.11.2 - dataloader: 2.2.2 - date-fns: 2.30.0 - deep-equal: 2.2.2 - deepmerge: 4.3.1 - dotenv: 8.6.0 - express: 4.21.0 - express-fileupload: 1.4.0 - express-rate-limit: 5.5.1 - file-type: 16.5.4 - find-up: 4.1.0 - fs-extra: 10.1.0 - get-tsconfig: 4.6.2 - graphql: 16.8.1 - graphql-http: 1.21.0(graphql@16.8.1) - graphql-playground-middleware-express: 1.7.23(express@4.21.0) - graphql-query-complexity: 0.12.0(graphql@16.8.1) - graphql-scalars: 1.22.2(graphql@16.8.1) - graphql-type-json: 0.3.2(graphql@16.8.1) - html-webpack-plugin: 5.5.3(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - http-status: 1.6.2 - i18next: 22.5.1 - i18next-browser-languagedetector: 6.1.8 - i18next-http-middleware: 3.3.2 - is-buffer: 2.0.5 - is-hotkey: 0.2.0 - is-plain-object: 5.0.0 - isomorphic-fetch: 3.0.0(encoding@0.1.13) - joi: 17.9.2 - json-schema-to-typescript: 14.0.5 - jsonwebtoken: 9.0.1 - jwt-decode: 3.1.2 - md5: 2.3.0 - method-override: 3.0.0 - minimist: 1.2.8 - mkdirp: 1.0.4 - monaco-editor: 0.38.0 - nodemailer: 6.9.8 - object-to-formdata: 4.5.1 - passport: 0.6.0 - passport-anonymous: 1.0.1 - passport-headerapikey: 1.2.2 - passport-jwt: 4.0.1 - passport-local: 1.0.0 - pino: 8.15.0 - pino-pretty: 10.3.1 - pluralize: 8.0.0 - probe-image-size: 6.0.0 - process: 0.11.10 - qs: 6.11.2 - qs-middleware: 1.0.3 - react: 18.3.1 - react-animate-height: 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-datepicker: 4.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-diff-viewer-continued: 3.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - react-helmet: 6.1.0(react@18.3.1) - react-i18next: 11.18.6(i18next@22.5.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-image-crop: 10.1.8(react@18.3.1) - react-router-dom: 5.3.4(react@18.3.1) - react-router-navigation-prompt: 1.9.6(react-router-dom@5.3.4(react@18.3.1))(react@18.3.1) - react-select: 5.7.4(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-toastify: 10.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - sanitize-filename: 1.6.3 - sass: 1.69.4 - scheduler: 0.23.0 - scmp: 2.1.0 - sharp: 0.33.5 - swc-loader: 0.2.3(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - terser-webpack-plugin: 5.3.9(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))) - ts-essentials: 7.0.3(typescript@5.6.3) - use-context-selector: 1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.0) - uuid: 9.0.1 - transitivePeerDependencies: - - '@swc/helpers' - - '@types/react' - - encoding - - esbuild - - react-native - - supports-color - - typescript - - uglify-js - - webpack - payload@2.30.3(@swc/helpers@0.5.5)(@types/react@18.3.12)(encoding@0.1.13)(typescript@5.6.3)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)): dependencies: '@date-io/date-fns': 2.16.0(date-fns@2.30.0) @@ -28204,10 +27892,6 @@ snapshots: dependencies: qs: 6.4.1 - qs@6.11.0: - dependencies: - side-channel: 1.0.6 - qs@6.11.2: dependencies: side-channel: 1.0.6 @@ -28998,10 +28682,6 @@ snapshots: dependencies: xmlchars: 2.2.0 - scheduler@0.23.0: - dependencies: - loose-envify: 1.4.0 - scheduler@0.23.2: dependencies: loose-envify: 1.4.0 @@ -29622,11 +29302,6 @@ snapshots: csso: 5.0.5 picocolors: 1.1.1 - swc-loader@0.2.3(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): - dependencies: - '@swc/core': 1.6.1(@swc/helpers@0.5.5) - webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) - swc-loader@0.2.6(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0)): dependencies: '@swc/core': 1.6.1(@swc/helpers@0.5.5) @@ -29776,17 +29451,6 @@ snapshots: terser: 5.36.0 webpack: 5.96.1 - terser-webpack-plugin@5.3.9(@swc/core@1.6.1(@swc/helpers@0.5.5))(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))): - dependencies: - '@jridgewell/trace-mapping': 0.3.25 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.2 - terser: 5.36.0 - webpack: 5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5))(webpack-cli@4.10.0(webpack-bundle-analyzer@4.10.2)(webpack@5.96.1(@swc/core@1.8.0(@swc/helpers@0.5.5)))) - optionalDependencies: - '@swc/core': 1.6.1(@swc/helpers@0.5.5) - terser@5.36.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -30249,13 +29913,6 @@ snapshots: punycode: 1.4.1 qs: 6.13.0 - use-context-selector@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.0): - dependencies: - react: 18.3.1 - scheduler: 0.23.0 - optionalDependencies: - react-dom: 18.3.1(react@18.3.1) - use-context-selector@1.4.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(scheduler@0.23.2): dependencies: react: 18.3.1 From 6a52ccb2c7d25dcaa92a5653c2e797215239b3e6 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Fri, 29 Nov 2024 15:32:47 +0300 Subject: [PATCH 04/18] chore: Separate auth form globals configuration --- apps/civicsignalblog/payload.config.ts | 6 ++++-- .../src/payload/globals/AuthForms/index.js | 14 -------------- .../Components => Forms/login}/LoginTab.js | 2 +- .../src/payload/globals/Forms/login/index.js | 15 +++++++++++++++ .../registration/RegistrationTab.js} | 2 +- .../payload/globals/Forms/registration/index.js | 15 +++++++++++++++ .../resetPassword/ResetPasswordTab.js} | 6 +++--- .../payload/globals/Forms/resetPassword/index.js | 15 +++++++++++++++ 8 files changed, 54 insertions(+), 21 deletions(-) delete mode 100644 apps/civicsignalblog/src/payload/globals/AuthForms/index.js rename apps/civicsignalblog/src/payload/globals/{AuthForms/Components => Forms/login}/LoginTab.js (99%) create mode 100644 apps/civicsignalblog/src/payload/globals/Forms/login/index.js rename apps/civicsignalblog/src/payload/globals/{AuthForms/Components/RegisterTab.js => Forms/registration/RegistrationTab.js} (99%) create mode 100644 apps/civicsignalblog/src/payload/globals/Forms/registration/index.js rename apps/civicsignalblog/src/payload/globals/{AuthForms/Components/PasswordTab.js => Forms/resetPassword/ResetPasswordTab.js} (96%) create mode 100644 apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js diff --git a/apps/civicsignalblog/payload.config.ts b/apps/civicsignalblog/payload.config.ts index 0b405f636..92e288644 100644 --- a/apps/civicsignalblog/payload.config.ts +++ b/apps/civicsignalblog/payload.config.ts @@ -25,7 +25,9 @@ import Actions from "./src/payload/components/actions"; import Publication from "./src/payload/globals/Publication"; import Main from "./src/payload/globals/Site/main"; import Research from "./src/payload/globals/Site/research"; -import AuthForms from "./src/payload/globals/AuthForms"; +import Login from "./src/payload/globals/Forms/login"; +import PasswordReset from "./src/payload/globals/Forms/resetPassword"; +import Registration from "./src/payload/globals/Forms/registration"; import { applicationPages } from "./src/payload/lib/data/common/applications"; import { defaultLocale, locales } from "./src/payload/utils/locales"; @@ -75,7 +77,7 @@ export default buildConfig({ MediaData, Users, ] as CollectionConfig[], - globals: [Publication, Research, Main, AuthForms] as GlobalConfig[], + globals: [Publication, Research, Main, Login, Registration, PasswordReset] as GlobalConfig[], ...(locales?.length ? { localization: { diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/index.js b/apps/civicsignalblog/src/payload/globals/AuthForms/index.js deleted file mode 100644 index f7a5898c5..000000000 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/index.js +++ /dev/null @@ -1,14 +0,0 @@ -import LoginTab from "./Components/LoginTab"; -import PasswordTab from "./Components/PasswordTab"; -import RegisterTab from "./Components/RegisterTab"; - -import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; - -const Main = settings({ - slug: `settings-auth-forms`, - label: "Auth Forms", - group: "Settings", - tabs: [LoginTab, RegisterTab, PasswordTab], -}); - -export default Main; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js similarity index 99% rename from apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js rename to apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index 3c0ea6e46..e8fcc2535 100644 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -1,7 +1,7 @@ import richText from "#civicsignalblog/payload/fields/richText"; const LoginTab = { - label: "Login", + label: "Login Form", fields: [ { type: "collapsible", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/index.js b/apps/civicsignalblog/src/payload/globals/Forms/login/index.js new file mode 100644 index 000000000..f8cda7638 --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/index.js @@ -0,0 +1,15 @@ +import LoginTab from "./LoginTab"; + +import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; + +const Main = settings({ + slug: `login-form`, + label: "Login", + group: "Forms", + access: { + read: () => true, + }, + tabs: [LoginTab], +}); + +export default Main; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js similarity index 99% rename from apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js rename to apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index 79619809b..6b37a571e 100644 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/RegisterTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -1,7 +1,7 @@ import richText from "#civicsignalblog/payload/fields/richText"; const RegisterTab = { - label: "Register", + label: "Registration Form", fields: [ { type: "collapsible", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/index.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/index.js new file mode 100644 index 000000000..eafd559a9 --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/index.js @@ -0,0 +1,15 @@ +import RegistrationTab from "./RegistrationTab"; + +import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; + +const Registration = settings({ + slug: `registration-form`, + label: "Registration", + group: "Forms", + access: { + read: () => true, + }, + tabs: [RegistrationTab], +}); + +export default Registration; diff --git a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js similarity index 96% rename from apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js rename to apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index 89b9a334c..d0115997c 100644 --- a/apps/civicsignalblog/src/payload/globals/AuthForms/Components/PasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -1,5 +1,5 @@ -const PasswordTab = { - label: "Password Reset", +const ResetPassword = { + label: "Reset Password Form", fields: [ { type: "collapsible", @@ -91,4 +91,4 @@ const PasswordTab = { ], }; -export default PasswordTab; +export default ResetPassword; diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js new file mode 100644 index 000000000..15b6d85fb --- /dev/null +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js @@ -0,0 +1,15 @@ +import ResetPasswordTab from "./ResetPasswordTab"; + +import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; + +const ResetPassword = settings({ + slug: `reset-password-form`, + label: "Password", + group: "Forms", + access: { + read: () => true, + }, + tabs: [ResetPasswordTab], +}); + +export default ResetPassword; From c3430f9ca3a0bcb05380c15f370eeefa8814900a Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Fri, 29 Nov 2024 15:40:30 +0300 Subject: [PATCH 05/18] feat: Add dynamic fields for Login form configurations --- .../payload/globals/Forms/login/LoginTab.js | 116 ++++++------------ .../src/payload/globals/Forms/login/index.js | 4 +- 2 files changed, 42 insertions(+), 78 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index e8fcc2535..4bbb9b29e 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -1,5 +1,3 @@ -import richText from "#civicsignalblog/payload/fields/richText"; - const LoginTab = { label: "Login Form", fields: [ @@ -18,83 +16,49 @@ const LoginTab = { }, { type: "collapsible", - label: "Input Elements", - fields: [ - { - name: "email", - type: "text", - defaultValue: "Email", - required: true, - localized: true, - }, - { - name: "passsword", - type: "text", - defaultValue: "Password", - required: true, - localized: true, - }, - { - name: "loginButton", - type: "text", - defaultValue: "Login", - required: true, - localized: true, - }, - { - name: "registerButton", - type: "text", - defaultValue: "No Account? Register Now!", - required: true, - localized: true, - }, - { - name: "passwordResetLink", - label: "Password Reset Button", - type: "text", - defaultValue: "Forgot your Password?", - required: true, - localized: true, - }, - ], - }, - { - type: "collapsible", - label: "Form Messages", + label: "Fields", fields: [ { - name: "missingEmail", - type: "text", - defaultValue: "You need to enter your email address.", - required: true, - localized: true, - }, - { - name: "missingPassword", - type: "text", - defaultValue: "You need to enter your password.", - required: true, - localized: true, - }, - { - name: "loginFailed", - type: "text", - defaultValue: "Your email or password was wrong.", - required: true, - localized: true, + name: "fields", + type: "array", + label: "Form input fields", + minRows: 2, + maxRows: 2, + labels: { + singular: "Field", + plural: "Fields", + }, + admin: { + className: "array-field-nested", + components: { + RowLabel: ({ data, index }) => { + let label = ""; + if (data.name) { + label = data.name; + } + if (!label) { + label = `Field ${String(index).padStart(2, "0")}`; + } + return label; + }, + }, + initCollapsed: true, + }, + fields: [ + { + name: "name", + type: "text", + }, + { + name: "label", + type: "text", + }, + { + name: "errorMessage", + type: "text", + }, + ], }, - { - name: "loginSucceeded", - type: "text", - defaultValue: "You are now logged in!", - required: true, - localized: true, - }, - richText({ - name: "needsToActivate", - required: true, - localized: true, - }), ], }, ], diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/index.js b/apps/civicsignalblog/src/payload/globals/Forms/login/index.js index f8cda7638..0ecdb0eda 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/index.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/index.js @@ -2,7 +2,7 @@ import LoginTab from "./LoginTab"; import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; -const Main = settings({ +const Login = settings({ slug: `login-form`, label: "Login", group: "Forms", @@ -12,4 +12,4 @@ const Main = settings({ tabs: [LoginTab], }); -export default Main; +export default Login; From 473839fff2022efe117b5ec51d2c8a1122792015 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Fri, 29 Nov 2024 16:10:30 +0300 Subject: [PATCH 06/18] feat: Add messages buttons sections for Login Form --- .../payload/globals/Forms/login/LoginTab.js | 81 ++++++++++++++++++- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index 4bbb9b29e..06686d0eb 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -1,3 +1,5 @@ +import richText from "#civicsignalblog/payload/fields/richText"; + const LoginTab = { label: "Login Form", fields: [ @@ -46,21 +48,94 @@ const LoginTab = { }, fields: [ { - name: "name", + type: "row", + fields: [ + { + name: "name", + label: "Name (lowercase, no special characters)", + type: "text", + required: true, + }, + { + name: "label", + type: "text", + required: true, + }, + ], + }, + { + type: "row", + fields: [ + { + name: "errorMessage", + type: "text", + required: true, + }, + { + name: "hint", + type: "text", + }, + ], + }, + ], + }, + ], + }, + { + type: "collapsible", + label: "Buttons", + fields: [ + { + type: "row", + fields: [ + { + name: "login", type: "text", + defaultValue: "Login", + required: true, + localized: true, }, { - name: "label", + name: "registration", type: "text", + defaultValue: "No Account ? Register Now!", + required: true, + localized: true, }, { - name: "errorMessage", + name: "password", type: "text", + defaultValue: "Forgot your password ?", + required: true, + localized: true, }, ], }, ], }, + { + type: "collapsible", + label: "Messages", + fields: [ + { + type: "row", + fields: [ + { + name: "loginFailed", + label: "Login Failed", + default: "Your email or password was wrong.", + type: "text", + required: true, + }, + ], + }, + richText({ + name: "needsToActivate", + required: true, + localized: true, + }), + ], + }, ], }; From 3e58df5ad735badcbded6e620845e87a16906d79 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Mon, 2 Dec 2024 12:49:47 +0300 Subject: [PATCH 07/18] feat: Add proper validation rules for Login form input fields --- .../payload/globals/Forms/login/LoginTab.js | 35 +++++++++++-------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index 06686d0eb..c5060c52f 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -26,6 +26,20 @@ const LoginTab = { label: "Form input fields", minRows: 2, maxRows: 2, + validate: (val, args) => { + if (val.length < args.minRows) + return `You must add ${args.minRows} form input fields`; + + if (!val.some((field) => field.name === "email")) { + return "Login form must have a field with email as name"; + } + + if (!val.some((field) => field.name === "password")) { + return "Login form must have a field with password as name"; + } + + return true; + }, labels: { singular: "Field", plural: "Fields", @@ -52,7 +66,6 @@ const LoginTab = { fields: [ { name: "name", - label: "Name (lowercase, no special characters)", type: "text", required: true, }, @@ -89,21 +102,21 @@ const LoginTab = { type: "row", fields: [ { - name: "login", + name: "loginButton", type: "text", defaultValue: "Login", required: true, localized: true, }, { - name: "registration", + name: "registrationButton", type: "text", defaultValue: "No Account ? Register Now!", required: true, localized: true, }, { - name: "password", + name: "forgotPasswordButton", type: "text", defaultValue: "Forgot your password ?", required: true, @@ -118,16 +131,10 @@ const LoginTab = { label: "Messages", fields: [ { - type: "row", - fields: [ - { - name: "loginFailed", - label: "Login Failed", - default: "Your email or password was wrong.", - type: "text", - required: true, - }, - ], + name: "loginFailed", + type: "text", + defaultValue: "Your email or password was wrong.", + required: true, }, richText({ name: "needsToActivate", From bdd585f93575c8ec1c52b2f493d4b1390f733a5e Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Mon, 2 Dec 2024 14:05:20 +0300 Subject: [PATCH 08/18] fix: Improve Password reset form configuration --- .../Forms/resetPassword/ResetPasswordTab.js | 118 +++++++++++++----- 1 file changed, 85 insertions(+), 33 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index d0115997c..db3ea24ac 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -6,16 +6,14 @@ const ResetPassword = { label: "Title & Description", fields: [ { - name: "passwordResetFormTitle", - label: "Title", + name: "title", type: "text", defaultValue: "Forgot Your Password?", required: true, localized: true, }, { - name: "passwordResetIntro", - label: "Intro", + name: "description", type: "text", defaultValue: "Enter your email address and we will send you a link to reset your password.", @@ -26,50 +24,104 @@ const ResetPassword = { }, { type: "collapsible", - label: "Input Elements", + label: "Fields", fields: [ { - name: "passwordResetEmail", - label: "Email", - type: "text", - defaultValue: "Email", - required: true, - localized: true, - }, - { - name: "passwordResetButton", - type: "text", - defaultValue: "Send Password Reset Email", - required: true, - localized: true, + name: "fields", + type: "array", + label: "Form input fields", + minRows: 1, + maxRows: 1, + validate: (val, args) => { + if (val.length < args.minRows) + return `You must add ${args.minRows} form input fields`; + + if (!val.some((field) => field.name === "email")) { + return "Login form must have a field with email as name"; + } + return true; + }, + labels: { + singular: "Field", + plural: "Fields", + }, + admin: { + className: "array-field-nested", + components: { + RowLabel: ({ data, index }) => { + let label = ""; + if (data.name) { + label = data.name; + } + if (!label) { + label = `Field ${String(index).padStart(2, "0")}`; + } + return label; + }, + }, + initCollapsed: true, + }, + fields: [ + { + type: "row", + fields: [ + { + name: "name", + type: "text", + required: true, + }, + { + name: "label", + type: "text", + required: true, + }, + ], + }, + { + type: "row", + fields: [ + { + name: "errorMessage", + type: "text", + required: true, + }, + { + name: "hint", + type: "text", + }, + ], + }, + ], }, ], }, { type: "collapsible", - label: "Form Messages", + label: "Buttons", fields: [ { - name: "passwordResetMissingEmail", - type: "text", - defaultValue: "Email You need to enter a valid email address.", - required: true, - localized: true, + type: "row", + fields: [ + { + name: "passwordResetButton", + type: "text", + defaultValue: "Send Password Reset Email", + required: true, + localized: true, + }, + ], }, + ], + }, + { + type: "collapsible", + label: "Messages", + fields: [ { name: "passwordResetFailed", type: "text", defaultValue: "Sorry, something went wrong.", required: true, - localized: true, - }, - { - name: "passwordResetBadToken", - type: "text", - defaultValue: - "That is an invalid reset token. Check to see if you have a newer link from us in your email", - required: true, - localized: true, }, { name: "passwordResetSuccessTitle", From c3030740ac075150d1025fb1bcd6b4e179462c59 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Mon, 2 Dec 2024 14:43:09 +0300 Subject: [PATCH 09/18] chore: Create formInputFields custom input --- .../src/payload/fields/formInputFields.js | 63 +++++++++++++++++++ .../payload/globals/Forms/login/LoginTab.js | 60 +----------------- .../Forms/resetPassword/ResetPasswordTab.js | 60 ++---------------- 3 files changed, 70 insertions(+), 113 deletions(-) create mode 100644 apps/civicsignalblog/src/payload/fields/formInputFields.js diff --git a/apps/civicsignalblog/src/payload/fields/formInputFields.js b/apps/civicsignalblog/src/payload/fields/formInputFields.js new file mode 100644 index 000000000..573e0e838 --- /dev/null +++ b/apps/civicsignalblog/src/payload/fields/formInputFields.js @@ -0,0 +1,63 @@ +function formInputFields({ minRows, maxRows, validate }) { + return { + name: "fields", + type: "array", + label: "Form input fields", + minRows, + maxRows, + validate, + labels: { + singular: "Field", + plural: "Fields", + }, + admin: { + className: "array-field-nested", + components: { + RowLabel: ({ data, index }) => { + let label = ""; + if (data.name) { + label = data.name; + } + if (!label) { + label = `Field ${String(index).padStart(2, "0")}`; + } + return label; + }, + }, + initCollapsed: true, + }, + fields: [ + { + type: "row", + fields: [ + { + name: "name", + type: "text", + required: true, + }, + { + name: "label", + type: "text", + required: true, + }, + ], + }, + { + type: "row", + fields: [ + { + name: "errorMessage", + type: "text", + required: true, + }, + { + name: "hint", + type: "text", + }, + ], + }, + ], + }; +} + +export default formInputFields; diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index c5060c52f..ac354a518 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -1,3 +1,4 @@ +import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; import richText from "#civicsignalblog/payload/fields/richText"; const LoginTab = { @@ -20,10 +21,7 @@ const LoginTab = { type: "collapsible", label: "Fields", fields: [ - { - name: "fields", - type: "array", - label: "Form input fields", + formInputFields({ minRows: 2, maxRows: 2, validate: (val, args) => { @@ -37,61 +35,9 @@ const LoginTab = { if (!val.some((field) => field.name === "password")) { return "Login form must have a field with password as name"; } - return true; }, - labels: { - singular: "Field", - plural: "Fields", - }, - admin: { - className: "array-field-nested", - components: { - RowLabel: ({ data, index }) => { - let label = ""; - if (data.name) { - label = data.name; - } - if (!label) { - label = `Field ${String(index).padStart(2, "0")}`; - } - return label; - }, - }, - initCollapsed: true, - }, - fields: [ - { - type: "row", - fields: [ - { - name: "name", - type: "text", - required: true, - }, - { - name: "label", - type: "text", - required: true, - }, - ], - }, - { - type: "row", - fields: [ - { - name: "errorMessage", - type: "text", - required: true, - }, - { - name: "hint", - type: "text", - }, - ], - }, - ], - }, + }), ], }, { diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index db3ea24ac..e38090f45 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -1,3 +1,5 @@ +import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; + const ResetPassword = { label: "Reset Password Form", fields: [ @@ -26,10 +28,7 @@ const ResetPassword = { type: "collapsible", label: "Fields", fields: [ - { - name: "fields", - type: "array", - label: "Form input fields", + formInputFields({ minRows: 1, maxRows: 1, validate: (val, args) => { @@ -41,58 +40,7 @@ const ResetPassword = { } return true; }, - labels: { - singular: "Field", - plural: "Fields", - }, - admin: { - className: "array-field-nested", - components: { - RowLabel: ({ data, index }) => { - let label = ""; - if (data.name) { - label = data.name; - } - if (!label) { - label = `Field ${String(index).padStart(2, "0")}`; - } - return label; - }, - }, - initCollapsed: true, - }, - fields: [ - { - type: "row", - fields: [ - { - name: "name", - type: "text", - required: true, - }, - { - name: "label", - type: "text", - required: true, - }, - ], - }, - { - type: "row", - fields: [ - { - name: "errorMessage", - type: "text", - required: true, - }, - { - name: "hint", - type: "text", - }, - ], - }, - ], - }, + }), ], }, { From a84aec81a7eee12e2a8c4a328530e9a6455df1f8 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Mon, 2 Dec 2024 16:04:44 +0300 Subject: [PATCH 10/18] feat: Implement registration form --- .../Forms/registration/RegistrationTab.js | 129 ++++++++---------- 1 file changed, 54 insertions(+), 75 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index 6b37a571e..56084a086 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -1,3 +1,4 @@ +import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; import richText from "#civicsignalblog/payload/fields/richText"; const RegisterTab = { @@ -8,16 +9,14 @@ const RegisterTab = { label: "Title & Description", fields: [ { - name: "signUpFormTitle", - label: "Title", + name: "title", type: "text", defaultValue: "Sign Up", required: true, localized: true, }, { - name: "signUpIntro", - label: "Intro", + name: "description", type: "text", defaultValue: "Create an account to use all our tools for free.", required: true, @@ -27,51 +26,35 @@ const RegisterTab = { }, { type: "collapsible", - label: "Input Elements", + label: "Fields", fields: [ - { - name: "signUpEmail", - label: "Email", - type: "text", - defaultValue: "Email", - required: true, - localized: true, - }, - { - name: "signUpFullName", - label: "Full Name", - type: "text", - defaultValue: "Full Name", - required: true, - localized: true, - }, - { - name: "signUpPasssword", - label: "Password", - type: "text", - defaultValue: "Password", - required: true, - localized: true, - }, - { - name: "notes", - type: "text", - defaultValue: "Notes", - required: true, - localized: true, - }, - richText({ - name: "consent", - required: true, - localized: true, + formInputFields({ + minRows: 5, + maxRows: 5, + validate: (val, args) => { + if (val.length < args.minRows) + return `You must add ${args.minRows} form input fields`; + + const requiredFields = [ + "email", + "fullname", + "password", + "confirm_password", + "notes", + "terms_of_use", + ]; + + const missingFields = requiredFields.filter( + (fieldName) => !val.some((field) => field.name === fieldName), + ); + + if (missingFields.length > 0) { + return `Registration form must have fields with the following names: ${missingFields.join(", ")}`; + } + + return true; + }, }), - { - name: "signUpButton", - type: "text", - defaultValue: "Sign up", - required: true, - localized: true, - }, ], }, { @@ -79,45 +62,23 @@ const RegisterTab = { label: "Form Messages", fields: [ { - name: "signUpMissingEmail", - type: "text", - defaultValue: "You need to enter your email address.", - required: true, - localized: true, - }, - { - name: "signUpMissingName", - type: "text", - defaultValue: "You need to enter your full name.", - required: true, - localized: true, - }, - { - name: "signUpMissingPassword", + name: "successFeedback", type: "text", - defaultValue: "You need to enter your password.", - required: true, - localized: true, - }, - { - name: "signUpMissingConsent", - type: "text", - defaultValue: "You must agree to our Terms and Policies", + defaultValue: "Successfully signed up.", required: true, localized: true, }, { - name: "signUpFeedback", + name: "passwordsMismatch", type: "text", - defaultValue: "Successfully signed up.", + defaultValue: "Passwords do not match.", required: true, localized: true, }, { - name: "signUpNotesHint", + name: "passwordTooShort", type: "text", - defaultValue: - "Tell us a little about what you want to use Media Cloud for", + defaultValue: "Passwords must be at least 8 characters long..", required: true, localized: true, }, @@ -133,6 +94,24 @@ const RegisterTab = { }), ], }, + { + type: "collapsible", + label: "Buttons", + fields: [ + { + type: "row", + fields: [ + { + name: "signUpButton", + type: "text", + defaultValue: "Sign Up", + required: true, + localized: true, + }, + ], + }, + ], + }, ], }; From 4676904ce61e2569473fdf3a528c7010df179f1a Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 12:07:26 +0300 Subject: [PATCH 11/18] Update apps/civicsignalblog/src/payload/fields/formInputFields.js Co-authored-by: KEVIN KOECH --- .../src/payload/fields/formInputFields.js | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/apps/civicsignalblog/src/payload/fields/formInputFields.js b/apps/civicsignalblog/src/payload/fields/formInputFields.js index 573e0e838..0409b12e4 100644 --- a/apps/civicsignalblog/src/payload/fields/formInputFields.js +++ b/apps/civicsignalblog/src/payload/fields/formInputFields.js @@ -13,16 +13,7 @@ function formInputFields({ minRows, maxRows, validate }) { admin: { className: "array-field-nested", components: { - RowLabel: ({ data, index }) => { - let label = ""; - if (data.name) { - label = data.name; - } - if (!label) { - label = `Field ${String(index).padStart(2, "0")}`; - } - return label; - }, + RowLabel: ({ data, index }) => data.name || `Field ${String(index).padStart(2, "0")}`, }, initCollapsed: true, }, From ce70f4e570eea461fee620a4f6cb63fe319979a0 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 12:09:15 +0300 Subject: [PATCH 12/18] chore: Remove dynamic form fields configuration --- .../src/payload/fields/formInputFieldGroup.js | 49 ++++++++++++ .../payload/globals/Forms/login/LoginTab.js | 53 +++++-------- .../Forms/registration/RegistrationTab.js | 74 ++++++++----------- .../Forms/resetPassword/ResetPasswordTab.js | 54 +++++--------- 4 files changed, 120 insertions(+), 110 deletions(-) create mode 100644 apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js diff --git a/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js b/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js new file mode 100644 index 000000000..f50ddaa76 --- /dev/null +++ b/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js @@ -0,0 +1,49 @@ +function formInputFieldGroup({ + label, + name, + includeErrorMessageField = true, + includeHintField = false, + additionalFields = [], +}) { + const fields = [ + { + name: `${name}Label`, + label: "Label", + type: "text", + required: true, + }, + ]; + + if (includeHintField) { + fields.push({ + name: `${name}Hint`, + label: "Hint", + type: "text", + required: true, + }); + } + + if (includeErrorMessageField) { + fields.push({ + name: `${name}ErrorMessage`, + type: "text", + label: "Error Message", + required: true, + }); + } + + fields.push(...additionalFields); + + return { + type: "collapsible", + label, + fields: [ + { + type: "row", + fields, + }, + ], + }; +} + +export default formInputFieldGroup; diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index ac354a518..aba22f3b7 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -1,4 +1,4 @@ -import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; +import formInputFieldGroup from "#civicsignalblog/payload/fields/formInputFieldGroup"; import richText from "#civicsignalblog/payload/fields/richText"; const LoginTab = { @@ -21,22 +21,24 @@ const LoginTab = { type: "collapsible", label: "Fields", fields: [ - formInputFields({ - minRows: 2, - maxRows: 2, - validate: (val, args) => { - if (val.length < args.minRows) - return `You must add ${args.minRows} form input fields`; - - if (!val.some((field) => field.name === "email")) { - return "Login form must have a field with email as name"; - } - - if (!val.some((field) => field.name === "password")) { - return "Login form must have a field with password as name"; - } - return true; - }, + formInputFieldGroup({ label: "E-mail", name: "email" }), + formInputFieldGroup({ label: "Password", name: "password" }), + ], + }, + { + type: "collapsible", + label: "Messages", + fields: [ + { + name: "loginFailed", + type: "text", + defaultValue: "Your email or password was wrong.", + required: true, + }, + richText({ + name: "needsToActivate", + required: true, + localized: true, }), ], }, @@ -72,23 +74,6 @@ const LoginTab = { }, ], }, - { - type: "collapsible", - label: "Messages", - fields: [ - { - name: "loginFailed", - type: "text", - defaultValue: "Your email or password was wrong.", - required: true, - }, - richText({ - name: "needsToActivate", - required: true, - localized: true, - }), - ], - }, ], }; diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index 56084a086..b3df3fd03 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -1,4 +1,4 @@ -import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; +import formInputFieldGroup from "#civicsignalblog/payload/fields/formInputFieldGroup"; import richText from "#civicsignalblog/payload/fields/richText"; const RegisterTab = { @@ -28,38 +28,42 @@ const RegisterTab = { type: "collapsible", label: "Fields", fields: [ - formInputFields({ - minRows: 5, - maxRows: 5, - validate: (val, args) => { - if (val.length < args.minRows) - return `You must add ${args.minRows} form input fields`; - - const requiredFields = [ - "email", - "fullname", - "password", - "confirm_password", - "notes", - "terms_of_use", - ]; - - const missingFields = requiredFields.filter( - (fieldName) => !val.some((field) => field.name === fieldName), - ); - - if (missingFields.length > 0) { - return `Registration form must have fields with the following names: ${missingFields.join(", ")}`; - } - - return true; - }, + formInputFieldGroup({ label: "E-mail", name: "email" }), + formInputFieldGroup({ label: "Full Name", name: "fullName" }), + formInputFieldGroup({ + label: "Password", + name: "password", + additionalFields: [ + { + name: "passwordsMismatch", + type: "text", + required: true, + localized: true, + }, + { + name: "passwordTooShort", + type: "text", + required: true, + localized: true, + }, + ], + }), + formInputFieldGroup({ + label: "Confirm Password", + name: "confirmPassword", + includeErrorMessageField: false, }), + formInputFieldGroup({ + label: "Notes", + name: "notes", + includeHintField: true, + }), + formInputFieldGroup({ label: "Consent", name: "consent" }), ], }, { type: "collapsible", - label: "Form Messages", + label: "Messages", fields: [ { name: "successFeedback", @@ -68,20 +72,6 @@ const RegisterTab = { required: true, localized: true, }, - { - name: "passwordsMismatch", - type: "text", - defaultValue: "Passwords do not match.", - required: true, - localized: true, - }, - { - name: "passwordTooShort", - type: "text", - defaultValue: "Passwords must be at least 8 characters long..", - required: true, - localized: true, - }, richText({ name: "userAlreadyExists", required: true, diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index e38090f45..75a0b8c4e 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -1,4 +1,4 @@ -import formInputFields from "#civicsignalblog/payload/fields/formInputFields"; +import formInputFieldGroup from "#civicsignalblog/payload/fields/formInputFieldGroup"; const ResetPassword = { label: "Reset Password Form", @@ -27,39 +27,7 @@ const ResetPassword = { { type: "collapsible", label: "Fields", - fields: [ - formInputFields({ - minRows: 1, - maxRows: 1, - validate: (val, args) => { - if (val.length < args.minRows) - return `You must add ${args.minRows} form input fields`; - - if (!val.some((field) => field.name === "email")) { - return "Login form must have a field with email as name"; - } - return true; - }, - }), - ], - }, - { - type: "collapsible", - label: "Buttons", - fields: [ - { - type: "row", - fields: [ - { - name: "passwordResetButton", - type: "text", - defaultValue: "Send Password Reset Email", - required: true, - localized: true, - }, - ], - }, - ], + fields: [formInputFieldGroup({ label: "E-mail", name: "email" })], }, { type: "collapsible", @@ -88,6 +56,24 @@ const ResetPassword = { }, ], }, + { + type: "collapsible", + label: "Buttons", + fields: [ + { + type: "row", + fields: [ + { + name: "passwordResetButton", + type: "text", + defaultValue: "Send Password Reset Email", + required: true, + localized: true, + }, + ], + }, + ], + }, ], }; From 5daa6913461a14e1f84d5016aab1f11a132518a8 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 12:10:42 +0300 Subject: [PATCH 13/18] Remove unused formInputFields --- .../src/payload/fields/formInputFields.js | 54 ------------------- 1 file changed, 54 deletions(-) delete mode 100644 apps/civicsignalblog/src/payload/fields/formInputFields.js diff --git a/apps/civicsignalblog/src/payload/fields/formInputFields.js b/apps/civicsignalblog/src/payload/fields/formInputFields.js deleted file mode 100644 index 0409b12e4..000000000 --- a/apps/civicsignalblog/src/payload/fields/formInputFields.js +++ /dev/null @@ -1,54 +0,0 @@ -function formInputFields({ minRows, maxRows, validate }) { - return { - name: "fields", - type: "array", - label: "Form input fields", - minRows, - maxRows, - validate, - labels: { - singular: "Field", - plural: "Fields", - }, - admin: { - className: "array-field-nested", - components: { - RowLabel: ({ data, index }) => data.name || `Field ${String(index).padStart(2, "0")}`, - }, - initCollapsed: true, - }, - fields: [ - { - type: "row", - fields: [ - { - name: "name", - type: "text", - required: true, - }, - { - name: "label", - type: "text", - required: true, - }, - ], - }, - { - type: "row", - fields: [ - { - name: "errorMessage", - type: "text", - required: true, - }, - { - name: "hint", - type: "text", - }, - ], - }, - ], - }; -} - -export default formInputFields; From 13fededca69ed11c790a5278c5378d27e799f760 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 12:11:40 +0300 Subject: [PATCH 14/18] chore: Fix formatting issues --- apps/civicsignalblog/payload.config.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/civicsignalblog/payload.config.ts b/apps/civicsignalblog/payload.config.ts index 92e288644..98b9cea96 100644 --- a/apps/civicsignalblog/payload.config.ts +++ b/apps/civicsignalblog/payload.config.ts @@ -77,7 +77,14 @@ export default buildConfig({ MediaData, Users, ] as CollectionConfig[], - globals: [Publication, Research, Main, Login, Registration, PasswordReset] as GlobalConfig[], + globals: [ + Publication, + Research, + Main, + Login, + Registration, + PasswordReset, + ] as GlobalConfig[], ...(locales?.length ? { localization: { From cf6deea668e61ebe9c9f99f341da8e105f22a39b Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 13:32:57 +0300 Subject: [PATCH 15/18] feat: Add default values for LoginForm configuration --- .../src/payload/fields/formInputFieldGroup.js | 8 +++++++- .../src/payload/globals/Forms/login/LoginTab.js | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js b/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js index f50ddaa76..c02670cd3 100644 --- a/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js +++ b/apps/civicsignalblog/src/payload/fields/formInputFieldGroup.js @@ -1,8 +1,11 @@ function formInputFieldGroup({ label, name, - includeErrorMessageField = true, includeHintField = false, + includeErrorMessageField = true, + defaultLabelValue = "", + defaultErrorMessage = "", + defaultHint = "", additionalFields = [], }) { const fields = [ @@ -10,6 +13,7 @@ function formInputFieldGroup({ name: `${name}Label`, label: "Label", type: "text", + defaultValue: defaultLabelValue, required: true, }, ]; @@ -19,6 +23,7 @@ function formInputFieldGroup({ name: `${name}Hint`, label: "Hint", type: "text", + defaultValue: defaultHint, required: true, }); } @@ -28,6 +33,7 @@ function formInputFieldGroup({ name: `${name}ErrorMessage`, type: "text", label: "Error Message", + defaultValue: defaultErrorMessage, required: true, }); } diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index aba22f3b7..4499fdded 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -21,8 +21,18 @@ const LoginTab = { type: "collapsible", label: "Fields", fields: [ - formInputFieldGroup({ label: "E-mail", name: "email" }), - formInputFieldGroup({ label: "Password", name: "password" }), + formInputFieldGroup({ + label: "E-mail", + name: "email", + defaultLabelValue: "Email", + defaultErrorMessage: "You need to enter your email address.", + }), + formInputFieldGroup({ + label: "Password", + name: "password", + defaultLabelValue: "Password", + defaultErrorMessage: "You need to enter your password.", + }), ], }, { From ed8517b0623dcd75c3ef8a44b6e19ca2e08bbc47 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 13:47:47 +0300 Subject: [PATCH 16/18] feat: Add default values for Registration and ResetPassword forms --- .../Forms/registration/RegistrationTab.js | 44 +++++++++++++++++-- .../Forms/resetPassword/ResetPasswordTab.js | 9 +++- .../globals/Forms/resetPassword/index.js | 2 +- 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index b3df3fd03..f0ac3cf5d 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -28,22 +28,36 @@ const RegisterTab = { type: "collapsible", label: "Fields", fields: [ - formInputFieldGroup({ label: "E-mail", name: "email" }), - formInputFieldGroup({ label: "Full Name", name: "fullName" }), + formInputFieldGroup({ + label: "E-mail", + name: "email", + defaultLabelValue: "Email", + defaultErrorMessage: "You need to enter a valid email address.", + }), + formInputFieldGroup({ + label: "Full Name", + name: "fullName", + includeErrorMessageField: false, + defaultLabelValue: "Full Name", + }), formInputFieldGroup({ label: "Password", name: "password", + defaultLabelValue: "Password", + defaultErrorMessage: "You need to enter your password.", additionalFields: [ { name: "passwordsMismatch", type: "text", required: true, + defaultValue: "You need to enter your password.", localized: true, }, { name: "passwordTooShort", type: "text", required: true, + defaultValue: "Passwords must be at least 8 characters long.", localized: true, }, ], @@ -51,14 +65,38 @@ const RegisterTab = { formInputFieldGroup({ label: "Confirm Password", name: "confirmPassword", + defaultLabelValue: "Confirm Password", includeErrorMessageField: false, }), formInputFieldGroup({ label: "Notes", name: "notes", + defaultHint: + "Tell us a little about what you want to use Media Cloud for", + defaultLabelValue: "Notes", + defaultErrorMessage: + "You have to tell us a little about why you want to use Media Cloud.", includeHintField: true, }), - formInputFieldGroup({ label: "Consent", name: "consent" }), + { + type: "collapsible", + label: "Consent", + fields: [ + richText({ + name: "consentLabel", + label: "Label", + required: true, + localized: true, + }), + { + name: "consentError", + type: "text", + defaultValue: "You must agree to our Terms and Policies", + required: true, + localized: true, + }, + ], + }, ], }, { diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index 75a0b8c4e..9941b24fc 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -27,7 +27,14 @@ const ResetPassword = { { type: "collapsible", label: "Fields", - fields: [formInputFieldGroup({ label: "E-mail", name: "email" })], + fields: [ + formInputFieldGroup({ + label: "E-mail", + name: "email", + defaultLabelValue: "Email", + defaultErrorMessage: "You need to enter a valid email address.", + }), + ], }, { type: "collapsible", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js index 15b6d85fb..35bacf457 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/index.js @@ -4,7 +4,7 @@ import settings from "#civicsignalblog/payload/utils/createGlobalSettings"; const ResetPassword = settings({ slug: `reset-password-form`, - label: "Password", + label: "Password Reset", group: "Forms", access: { read: () => true, From b7a29111061ae8a477fc65cb88372baf10078e4f Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 13:49:16 +0300 Subject: [PATCH 17/18] chore: Rename Messages tab to Form Messages --- .../civicsignalblog/src/payload/globals/Forms/login/LoginTab.js | 2 +- .../src/payload/globals/Forms/registration/RegistrationTab.js | 2 +- .../src/payload/globals/Forms/resetPassword/ResetPasswordTab.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index 4499fdded..f2336403e 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -37,7 +37,7 @@ const LoginTab = { }, { type: "collapsible", - label: "Messages", + label: "Form Messages", fields: [ { name: "loginFailed", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index f0ac3cf5d..503b5d376 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -101,7 +101,7 @@ const RegisterTab = { }, { type: "collapsible", - label: "Messages", + label: "Form Messages", fields: [ { name: "successFeedback", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index 9941b24fc..0350deda4 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -38,7 +38,7 @@ const ResetPassword = { }, { type: "collapsible", - label: "Messages", + label: "Form Messages", fields: [ { name: "passwordResetFailed", From 744f28cc2272503f68d49bf3a3263c0c9c2862d3 Mon Sep 17 00:00:00 2001 From: Michael Hudson Nkotagu Date: Thu, 5 Dec 2024 16:32:11 +0300 Subject: [PATCH 18/18] feat: Improve form Tab labels --- .../src/payload/globals/Forms/login/LoginTab.js | 4 ++-- .../src/payload/globals/Forms/registration/RegistrationTab.js | 4 ++-- .../payload/globals/Forms/resetPassword/ResetPasswordTab.js | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js index f2336403e..121254a07 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/login/LoginTab.js @@ -37,7 +37,7 @@ const LoginTab = { }, { type: "collapsible", - label: "Form Messages", + label: "Messages", fields: [ { name: "loginFailed", @@ -54,7 +54,7 @@ const LoginTab = { }, { type: "collapsible", - label: "Buttons", + label: "Actions", fields: [ { type: "row", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js index 503b5d376..d614967a9 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/registration/RegistrationTab.js @@ -101,7 +101,7 @@ const RegisterTab = { }, { type: "collapsible", - label: "Form Messages", + label: "Messages", fields: [ { name: "successFeedback", @@ -124,7 +124,7 @@ const RegisterTab = { }, { type: "collapsible", - label: "Buttons", + label: "Actions", fields: [ { type: "row", diff --git a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js index 0350deda4..dc1a0862c 100644 --- a/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js +++ b/apps/civicsignalblog/src/payload/globals/Forms/resetPassword/ResetPasswordTab.js @@ -38,7 +38,7 @@ const ResetPassword = { }, { type: "collapsible", - label: "Form Messages", + label: "Messages", fields: [ { name: "passwordResetFailed", @@ -65,7 +65,7 @@ const ResetPassword = { }, { type: "collapsible", - label: "Buttons", + label: "Actions", fields: [ { type: "row",