From 68ee22c1245dcfda4e608ebedd5b4a8cac2e0336 Mon Sep 17 00:00:00 2001
From: Koncept Kit <63216427+konceptkit@users.noreply.github.com>
Date: Sun, 1 Feb 2026 19:53:45 +0700
Subject: [PATCH] Changes
---
src/App.js | 2 +
src/components/SettingsSidebar.js | 3 +-
.../registration/DynamicFormField.js | 411 ++++++
.../registration/DynamicRegistrationForm.js | 482 +++++++
src/pages/Register.js | 383 +++---
src/pages/admin/AdminRegistrationBuilder.js | 1156 +++++++++++++++++
6 files changed, 2260 insertions(+), 177 deletions(-)
create mode 100644 src/components/registration/DynamicFormField.js
create mode 100644 src/components/registration/DynamicRegistrationForm.js
create mode 100644 src/pages/admin/AdminRegistrationBuilder.js
diff --git a/src/App.js b/src/App.js
index f7219db..e8ffa65 100644
--- a/src/App.js
+++ b/src/App.js
@@ -47,6 +47,7 @@ import AdminGallery from './pages/admin/AdminGallery';
import AdminNewsletters from './pages/admin/AdminNewsletters';
import AdminFinancials from './pages/admin/AdminFinancials';
import AdminBylaws from './pages/admin/AdminBylaws';
+import AdminRegistrationBuilder from './pages/admin/AdminRegistrationBuilder';
import History from './pages/History';
import MissionValues from './pages/MissionValues';
import BoardOfDirectors from './pages/BoardOfDirectors';
@@ -304,6 +305,7 @@ function App() {
{errorMessage}
+ ); + }; + + // Render label + const renderLabel = () => ( + + ); + + // Render based on field type + switch (type) { + case 'text': + case 'email': + case 'phone': + return ( ++ Max file size: {field.max_size_mb}MB +
+ )} + {renderError()} ++ {stepData.description} +
+ )} + + {/* Sections */} + {stepData.sections + ?.sort((a, b) => a.order - b.order) + .map((section) => { + const visibleFields = section.fields?.filter((f) => + isFieldVisible(f.id) + ); + + // Skip empty sections + if (!visibleFields || visibleFields.length === 0) { + return null; + } + + const fieldRows = groupFieldsByRow( + section.fields?.sort((a, b) => a.order - b.order) || [] + ); + + return ( +{section.description}
+ )} + + {/* Fields */} +Loading registration form...
++
Fill out the form below to start your membership journey.