Skip to content

Feature/migrate forms list form builder to react#1827

Open
arifulhoque7 wants to merge 4 commits intoweDevsOfficial:developfrom
arifulhoque7:feature/migrate-forms-list-form-builder-to-react
Open

Feature/migrate forms list form builder to react#1827
arifulhoque7 wants to merge 4 commits intoweDevsOfficial:developfrom
arifulhoque7:feature/migrate-forms-list-form-builder-to-react

Conversation

@arifulhoque7
Copy link
Contributor

@arifulhoque7 arifulhoque7 commented Mar 9, 2026

Migrate Forms List & Form Builder to React

Branch: feature/migrate-forms-list-form-builder-to-react
Affects: wp-user-frontend (free) + wpuf-pro (pro)
Related PRO PR

Summary

This PR migrates the Forms List and Form Builder admin UIs from the legacy Vue 2 + jQuery architecture to a modern React + WordPress Data Store architecture. The old Vue-based components, Less stylesheets, and bundled JS files have been removed and replaced with a clean React implementation using webpack, Tailwind CSS, and the WordPress @wordpress/data and @wordpress/hooks APIs.


Detailed Changes

🆕 New: React Form Builder (admin/form-builder/src/)

A complete React rewrite of the form builder with the following modules:

Core Components

  • FormBuilder.jsx — Root component wiring canvas, sidebar, header, and settings
  • Header/Header.jsx — Top bar with form name editing, save, and navigation actions
  • Canvas/BuilderCanvas.jsx — Drag-and-drop field canvas (using @dnd-kit)
  • Canvas/SortableField.jsx — Individual sortable field wrapper
  • Canvas/FieldActions.jsx — Per-field clone/delete/move actions
  • Canvas/ColumnField.jsx — Column layout field support
  • Canvas/RepeatField.jsx — Repeatable field group support
  • Canvas/EmptyState.jsx — Empty canvas placeholder

Sidebar

  • Sidebar/Sidebar.jsx — Field panel + search
  • Sidebar/FieldPanel.jsx — Grouped field listing (Basic, Advanced, etc.)
  • Sidebar/FieldItem.jsx — Draggable field item with Pro badge support
  • Sidebar/FieldSearch.jsx — Real-time field search/filter

Field Previews (all free fields)

CheckboxPreview, RadioPreview, DropdownPreview, TextFieldPreview, TextareaPreview, EmailPreview, PasswordPreview, PostTitlePreview, PostContentPreview, PostExcerptPreview, PostTagsPreview, TaxonomyPreview, ImageUploadPreview, FeaturedImagePreview, MultiSelectPreview, SectionBreakPreview, TurnstilePreview, RecaptchaPreview, TextEditorPreview, HiddenFieldPreview, CustomHtmlPreview, WebsiteUrlPreview, ColumnFieldPreview, HelpText

Field Settings Panel

  • FieldSettings/FieldOptionsPanel.jsx — Dynamic settings panel driven by field config
  • FieldSettings/SettingInput.jsx — Routes each setting to the appropriate input component
  • Input types: TextInput, TextareaInput, CheckboxInput, RadioInput, SelectInput, MultiSelectInput, RangeInput, IconSelectorInput, OptionDataInput, VisibilityInput, TextMetaInput, HtmlHelpText, SettingHelpText

Form Settings

  • Settings/FormSettings.jsx — Multi-tab settings panel (General, Notifications, Integrations, etc.)
  • Settings/SettingsSection.jsx — Section renderer driven by PHP-registered config
  • Settings/SettingsField.jsx — Individual setting field renderer
  • Settings/SettingsNav.jsx — Tab navigation
  • Settings/NotificationSection.jsx — Email notification settings
  • Settings/ProPreviewWrapper.jsx — Pro feature lock overlay
  • Settings/ModulesEmptyState.jsx — Empty state when modules are inactive
  • Settings/useFieldDependencies.js — Hook for conditional field visibility
  • Settings field types: TextField, TextareaField, CheckboxField, SelectField, MultiSelectField, ToggleField, NumberField, DateField, ColorPickerField, PicRadioField, InlineFieldsGroup, TrailingTextField, HelpTextIcon

Conditional Logic

  • ConditionalLogic/FieldConditionalLogic.jsx — Per-field conditional rules
  • ConditionalLogic/SubmitConditionalLogic.jsx — Submit button conditional rules
  • ConditionalLogic/IntegrationConditionalLogic.jsx — Integration-level conditions
  • ConditionalLogic/ConditionRow.jsx — Single condition rule row
  • ConditionalLogic/conditionalUtils.js — Shared condition evaluation helpers

Integrations Tab

  • Integrations/IntegrationsTab.jsx — Lists and renders active integration settings

State Management (WordPress Data Store)

  • store/index.js — Store registration
  • store/actions.js — Action creators (add/remove/reorder fields, update settings, etc.)
  • store/selectors.js — Memoised selectors
  • store/reducer.js — Pure reducer for all builder state
  • store/serialization.js — Form data serialization/deserialization
  • store/selectors.test.js, store/serialization.test.js — Unit tests (Jest)

Extension API

  • extensions/hooks.js — WordPress hook integration (addFilter, applyFilters, addAction, doAction)
  • extensions/registry.js — Field and settings section registry for extensibility

Common Utilities

  • common/SwalModal.js — SweetAlert2-based confirmation modal
  • common/ProFeatureAlert.jsx — Pro upgrade prompt component
  • common/TextEditor.jsx — TinyMCE-based rich text wrapper
  • common/Toast.jsx — Toast notification helper
  • common/Tooltip.jsx — Tooltip wrapper
  • utils/canvasHelpers.js — Drag-and-drop canvas utility functions
  • utils/fieldUtils.js — Field config helpers
  • utils/globalHelpers.js — General-purpose helpers
  • utils/i18n.js__() wrapper

🆕 New: React Forms List (admin/forms-list/src/)

A full React replacement for the Vue-based forms list page:

  • FormsListApp.jsx — Root component
  • components/FormsList.jsx — Main list with search, filter, sort, bulk actions
  • components/FormsTable.jsx — Table rows renderer
  • components/Header.jsx — Page header with "Add New" button and AI config trigger
  • components/StatusTabs.jsx — All / Published / Draft / Trash tabs
  • components/SearchBar.jsx — Live search input
  • components/Pagination.jsx — Page controls
  • components/ActionMenu.jsx — Per-row action dropdown (Edit, Duplicate, Trash, etc.)
  • components/BulkActions.jsx — Select-all + bulk action toolbar
  • components/EmptyState.jsx — Empty list illustration + CTA
  • components/ShortcodeCopy.jsx — One-click shortcode copy with clipboard feedback
  • components/AIConfigModal.jsx — AI form builder configuration modal trigger
  • hooks/useFormsFetch.js — Data fetching hook with caching
  • hooks/useClipboard.js — Clipboard copy hook
  • utils/constants.js — Shared constants (statuses, per-page options, etc.)

🆕 New: Pro Extensions (wpuf-pro)

Pro Field Previews

New React components for all Pro-only field previews in admin/form-builder/src/components/FieldPreview/:
AddressPreview, CountryListPreview, DatePreview, DateOfBirthPreview, FileUploadPreview, GoogleMapPreview, MathCaptchaPreview, NumericPreview, PhonePreview, RepeatPreview, SignaturePreview, StepStartPreview, AvatarPreview, CoverPhotoPreview, DisplayNamePreview, FirstNamePreview, LastNamePreview, NicknamePreview, PasswordPreview, EmbedPreview, FacebookUrlPreview, InstagramUrlPreview, LinkedinUrlPreview, GenderPreview, PriceFieldPreview, PricingCheckboxPreview, PricingDropdownPreview, PricingMultiselectPreview, CartTotalPreview, ActionHookPreview, SecondaryEmailPreview

Pro Field Setting Inputs

New React input components for Pro-specific settings options:
AddressInput, BulkAddOptionsInput, CanvasHeightInput, CanvasWidthInput, ConditionalLogicInput, CountryListInput, DropdownInput, GmapSetPositionInput, MathCaptchaInput, OptionDataPriceInput, RepeaterColumnsInput, StepStartInput

Pro Forms List Extensions

  • admin/forms-list/src/filters.jsx — Pro-specific filters (e.g. User Role Badge column)
  • admin/forms-list/src/components/UserRoleBadge.jsx — Displays assigned user role on registration forms
  • admin/forms-list/src/index.jsx — Pro entrypoint that registers filters

Pro Form Builder Entry

  • admin/form-builder/src/index.jsx — Pro entrypoint that registers Pro fields, settings tabs, and hooks into the free builder via the extension API

Validation

  • admin/form-builder/src/hooks/useProfileFormValidation.js — Profile form-specific client-side validation hook

🗑️ Removed: Legacy Vue/Less Files

Free plugin removed:

  • assets/js/forms-list.js / forms-list.min.js / forms-list.min.js.map
  • assets/js/components/FormsList.vue
  • assets/js/wpuf-form-builder.js, wpuf-form-builder-components.js, wpuf-form-builder-mixins.js, wpuf-form-builder-wpuf-forms.js
  • assets/js-templates/form-components.php
  • All admin/form-builder/assets/js/components/ Vue component directories
  • All admin/form-builder/assets/less/ Less stylesheets and mixins
  • admin/form-builder/assets/js/mixins/ Vue mixin files
  • admin/form-builder/assets/js/form-builder.js, form-builder-assets.js, jquery-siaf-*.js

Pro plugin removed:

  • assets/js/forms-list.js / forms-list.min.js / forms-list.min.js.map
  • assets/js/components/FormsList.vue
  • assets/js/wpuf-form-builder-components-pro.js, wpuf-form-builder-mixins-pro.js, wpuf-form-builder-wpuf-forms-pro.js, wpuf-form-builder-wpuf-profile.js, wpuf-form-builder-field-option-data-pro.js
  • assets/js-templates/form-components.php
  • All admin/form-builder/assets/js/components/ Pro Vue component directories

⚙️ Build System Updates

Free plugin:

  • admin/form-builder/webpack.config.js — New webpack config for React form builder bundle
  • admin/forms-list/webpack.config.js — New webpack config for React forms list bundle
  • admin/form-builder/jest.config.js — Jest setup for unit tests
  • admin/form-builder/src/__mocks__/ — WordPress package mocks for Jest
  • package.json — Added React, @dnd-kit, @wordpress/data, @wordpress/hooks, sweetalert2, Jest, and webpack dependencies; removed Vue-related packages
  • Gruntfile.js — Updated build tasks to use new webpack bundles
  • tailwind.config.js — Updated content paths for React source files
  • vite.config.mjs — Updated to exclude new React build targets
  • postcss.config.js — Minor update

Pro plugin:

  • admin/form-builder/webpack.config.js — Pro webpack config extending the free builder
  • admin/forms-list/webpack.config.js — Pro forms list webpack config
  • package.json — Updated dependencies
  • tailwind.config.js — Updated content paths

🐛 Bug Fixes Included

  • Settings save button not responding after initial load — fixed in the new React store action wiring
  • Multistep form settings conditional visibility — fields now correctly show/hide based on the multistep toggle state (enableMultiStep)
  • Store action dispatch on settings change — previously some settings updates were not persisted correctly

🔧 PHP Side Changes

Free plugin:

  • includes/Admin/Forms/Admin_Form_Builder.php — Updated to enqueue React form builder assets and pass correct localized data (wpuf_form_builder)
  • includes/Admin/Menu.php — Minor update to asset handles
  • includes/Ajax/Admin_Form_Builder_Ajax.php — Minor adjustment for new asset handle references
  • includes/Assets.php — Registers React forms list and form builder asset bundles
  • admin/form-builder/views/form-builder-v4.1.php — Updated mount point and data attributes for React app
  • src/css/admin/form-builder.css / src/css/forms-list.css — CSS updates for React components
  • assets/images/warning-circle.svg — New icon asset

Pro plugin:

  • includes/Admin/Menu.php — Updated Pro menu asset registration
  • includes/Admin/Profile_Form.php — Updated to pass Pro field definitions to the React builder
  • includes/Admin/Posting_Profile.php — Minor hook adjustment
  • includes/Admin/FormBuilder/Render_Form.php — Pass additional data for Pro fields
  • includes/Post_Form.php — Pass Pro post form field config
  • includes/Assets.php — Registers Pro React bundles
  • admin/form-builder/views/profile-form-settings.php — Minor update for React mounting

Stats

Files Changed Insertions Deletions
wp-user-frontend 259 +15,956 −16,491
wpuf-pro 202 +7,011 −13,512

Testing Checklist

  • Post form builder loads correctly and fields can be dragged/dropped
  • Registration form builder loads and saves
  • Profile form builder (Pro) loads with Pro-only fields
  • Field settings panel opens and saves per-field settings
  • Conditional logic (field, submit, integration) works
  • Multistep toggle shows/hides related settings correctly
  • Form settings tabs (General, Notifications, Integrations) save correctly
  • Forms list page (post, registration, profile) loads with correct data
  • Search, filter, pagination, and bulk actions work on forms list
  • Shortcode copy button works
  • AI form builder modal triggers correctly
  • Pro fields render with Pro badge in sidebar for free users
  • Pro feature lock overlay displays for locked settings
  • Build commands (npm run build, webpack) produce correct output
  • Jest unit tests pass (npm test)

Introduce a React-based admin Form Builder and Forms List UI. Adds a large set of React components (canvas, column/repeat fields, sortable fields, previews, settings, sidebar, common utilities like Tooltip/Toast/TextEditor/ProFeatureAlert), hooks, store (actions/reducer/selectors), utils, extension registry, and tests configuration (jest + mocks). Adds webpack configs, forms-list app, new CSS, and integrates with PHP by updating admin views and assets. Updates Gruntfile to watch/build the React sources and add npm build tasks. These changes prepare the new React UI and test setup for the form builder and forms list.
Remove Vue 2.x components, mixins, LESS stylesheets, JS templates,
and forms list Vue SPA that have been replaced by the React migration.
Update Gruntfile.js to remove references to deleted assets.
- Fix Save Form button on settings page by using useFormSave hook
  instead of clicking non-existent #wpuf-form-builder-save-form element
- Enable wp.hooks filter for field dependencies so Pro can register
  conditional visibility rules for multistep sub-settings
Introduce a SweetAlert2 wrapper (common/SwalModal.js) providing showAlert and showConfirm helpers. Add client-side validation to useFormSave: import showAlert, fetch formType from store, and validate required fields and payment settings (new helpers isOn, hasFieldTemplate, validateRequiredFields, validatePaymentSettings) to block invalid saves with user-friendly modals. Update SettingsSection to fallback to PHP-defined default (fieldDef.value) when a setting is undefined. Enhance PicRadioField to use asset_url and render a green checked icon overlay for the selected option.
@coderabbitai
Copy link

coderabbitai bot commented Mar 9, 2026

Important

Review skipped

Too many files!

This PR contains 255 files, which is 105 over the limit of 150.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 4bbc06cb-57b4-4406-802b-f1ba7b88ca78

📥 Commits

Reviewing files that changed from the base of the PR and between 5f313fa and 7dc922e.

⛔ Files ignored due to path filters (4)
  • assets/images/warning-circle.svg is excluded by !**/*.svg
  • assets/js/forms-list.min.js is excluded by !**/*.min.js
  • assets/js/forms-list.min.js.map is excluded by !**/*.map, !**/*.min.js.map
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (255)
  • Gruntfile.js
  • admin/form-builder/assets/js/components/builder-stage-v4-1/index.js
  • admin/form-builder/assets/js/components/builder-stage-v4-1/template.php
  • admin/form-builder/assets/js/components/builder-stage/index.js
  • admin/form-builder/assets/js/components/builder-stage/template.php
  • admin/form-builder/assets/js/components/field-checkbox/index.js
  • admin/form-builder/assets/js/components/field-checkbox/template.php
  • admin/form-builder/assets/js/components/field-html_help_text/index.js
  • admin/form-builder/assets/js/components/field-html_help_text/template.php
  • admin/form-builder/assets/js/components/field-icon_selector/index.js
  • admin/form-builder/assets/js/components/field-icon_selector/template.php
  • admin/form-builder/assets/js/components/field-multiselect/index.js
  • admin/form-builder/assets/js/components/field-multiselect/template.php
  • admin/form-builder/assets/js/components/field-option-data/index.js
  • admin/form-builder/assets/js/components/field-option-data/template.php
  • admin/form-builder/assets/js/components/field-option-pro-feature-alert/index.js
  • admin/form-builder/assets/js/components/field-option-pro-feature-alert/template.php
  • admin/form-builder/assets/js/components/field-options/index.js
  • admin/form-builder/assets/js/components/field-options/template.php
  • admin/form-builder/assets/js/components/field-radio/index.js
  • admin/form-builder/assets/js/components/field-radio/template.php
  • admin/form-builder/assets/js/components/field-range/index.js
  • admin/form-builder/assets/js/components/field-range/template.php
  • admin/form-builder/assets/js/components/field-select/index.js
  • admin/form-builder/assets/js/components/field-select/template.php
  • admin/form-builder/assets/js/components/field-text-meta/index.js
  • admin/form-builder/assets/js/components/field-text-meta/template.php
  • admin/form-builder/assets/js/components/field-text/index.js
  • admin/form-builder/assets/js/components/field-text/template.php
  • admin/form-builder/assets/js/components/field-textarea/index.js
  • admin/form-builder/assets/js/components/field-textarea/template.php
  • admin/form-builder/assets/js/components/field-visibility/index.js
  • admin/form-builder/assets/js/components/field-visibility/template.php
  • admin/form-builder/assets/js/components/form-checkbox_field/index.js
  • admin/form-builder/assets/js/components/form-checkbox_field/template.php
  • admin/form-builder/assets/js/components/form-cloudflare_turnstile/index.js
  • admin/form-builder/assets/js/components/form-cloudflare_turnstile/template.php
  • admin/form-builder/assets/js/components/form-column_field/index.js
  • admin/form-builder/assets/js/components/form-column_field/template.php
  • admin/form-builder/assets/js/components/form-custom_hidden_field/index.js
  • admin/form-builder/assets/js/components/form-custom_hidden_field/template.php
  • admin/form-builder/assets/js/components/form-custom_html/index.js
  • admin/form-builder/assets/js/components/form-custom_html/template.php
  • admin/form-builder/assets/js/components/form-dropdown_field/index.js
  • admin/form-builder/assets/js/components/form-dropdown_field/template.php
  • admin/form-builder/assets/js/components/form-email_address/index.js
  • admin/form-builder/assets/js/components/form-email_address/template.php
  • admin/form-builder/assets/js/components/form-featured_image/index.js
  • admin/form-builder/assets/js/components/form-featured_image/template.php
  • admin/form-builder/assets/js/components/form-fields-v4-1/index.js
  • admin/form-builder/assets/js/components/form-fields-v4-1/template.php
  • admin/form-builder/assets/js/components/form-fields/index.js
  • admin/form-builder/assets/js/components/form-fields/template.php
  • admin/form-builder/assets/js/components/form-image_upload/index.js
  • admin/form-builder/assets/js/components/form-image_upload/template.php
  • admin/form-builder/assets/js/components/form-multiple_select/index.js
  • admin/form-builder/assets/js/components/form-multiple_select/template.php
  • admin/form-builder/assets/js/components/form-post_content/index.js
  • admin/form-builder/assets/js/components/form-post_content/template.php
  • admin/form-builder/assets/js/components/form-post_excerpt/index.js
  • admin/form-builder/assets/js/components/form-post_excerpt/template.php
  • admin/form-builder/assets/js/components/form-post_tags/index.js
  • admin/form-builder/assets/js/components/form-post_tags/template.php
  • admin/form-builder/assets/js/components/form-post_title/index.js
  • admin/form-builder/assets/js/components/form-post_title/template.php
  • admin/form-builder/assets/js/components/form-radio_field/index.js
  • admin/form-builder/assets/js/components/form-radio_field/template.php
  • admin/form-builder/assets/js/components/form-recaptcha/index.js
  • admin/form-builder/assets/js/components/form-recaptcha/template.php
  • admin/form-builder/assets/js/components/form-section_break/index.js
  • admin/form-builder/assets/js/components/form-section_break/template.php
  • admin/form-builder/assets/js/components/form-taxonomy/index.js
  • admin/form-builder/assets/js/components/form-taxonomy/template.php
  • admin/form-builder/assets/js/components/form-text_field/index.js
  • admin/form-builder/assets/js/components/form-text_field/template.php
  • admin/form-builder/assets/js/components/form-textarea_field/index.js
  • admin/form-builder/assets/js/components/form-textarea_field/template.php
  • admin/form-builder/assets/js/components/form-website_url/index.js
  • admin/form-builder/assets/js/components/form-website_url/template.php
  • admin/form-builder/assets/js/components/help-text/index.js
  • admin/form-builder/assets/js/components/help-text/template.php
  • admin/form-builder/assets/js/components/text-editor/editor.less
  • admin/form-builder/assets/js/components/text-editor/index.js
  • admin/form-builder/assets/js/components/text-editor/style.less
  • admin/form-builder/assets/js/components/text-editor/template.php
  • admin/form-builder/assets/js/form-builder-assets.js
  • admin/form-builder/assets/js/form-builder.js
  • admin/form-builder/assets/js/jquery-siaf-end.js
  • admin/form-builder/assets/js/jquery-siaf-start.js
  • admin/form-builder/assets/js/mixins/add-form-field.js
  • admin/form-builder/assets/js/mixins/form-field.js
  • admin/form-builder/assets/js/mixins/global.js
  • admin/form-builder/assets/js/mixins/integration.js
  • admin/form-builder/assets/js/mixins/option-field.js
  • admin/form-builder/assets/less/builder-responsive.less
  • admin/form-builder/assets/less/form-builder.less
  • admin/form-builder/assets/less/mixins/center-block.less
  • admin/form-builder/assets/less/mixins/clearfix.less
  • admin/form-builder/assets/less/mixins/custom-mixins.less
  • admin/form-builder/assets/less/mixins/hide-text.less
  • admin/form-builder/assets/less/mixins/opacity.less
  • admin/form-builder/assets/less/mixins/reset-text.less
  • admin/form-builder/assets/less/mixins/size.less
  • admin/form-builder/assets/less/mixins/text-overflow.less
  • admin/form-builder/assets/less/mixins/vendor-prefixes.less
  • admin/form-builder/assets/less/variables.less
  • admin/form-builder/jest.config.js
  • admin/form-builder/src/__mocks__/@wordpress/data.js
  • admin/form-builder/src/__mocks__/@wordpress/hooks.js
  • admin/form-builder/src/common/ProFeatureAlert.jsx
  • admin/form-builder/src/common/SwalModal.js
  • admin/form-builder/src/common/TextEditor.jsx
  • admin/form-builder/src/common/Toast.jsx
  • admin/form-builder/src/common/Tooltip.jsx
  • admin/form-builder/src/components/Canvas/BuilderCanvas.jsx
  • admin/form-builder/src/components/Canvas/ColumnField.jsx
  • admin/form-builder/src/components/Canvas/EmptyState.jsx
  • admin/form-builder/src/components/Canvas/FieldActions.jsx
  • admin/form-builder/src/components/Canvas/FieldPreview.jsx
  • admin/form-builder/src/components/Canvas/RepeatField.jsx
  • admin/form-builder/src/components/Canvas/SortableField.jsx
  • admin/form-builder/src/components/ConditionalLogic/ConditionRow.jsx
  • admin/form-builder/src/components/ConditionalLogic/FieldConditionalLogic.jsx
  • admin/form-builder/src/components/ConditionalLogic/IntegrationConditionalLogic.jsx
  • admin/form-builder/src/components/ConditionalLogic/SubmitConditionalLogic.jsx
  • admin/form-builder/src/components/ConditionalLogic/conditionalUtils.js
  • admin/form-builder/src/components/FieldPreview/CheckboxPreview.jsx
  • admin/form-builder/src/components/FieldPreview/ColumnFieldPreview.jsx
  • admin/form-builder/src/components/FieldPreview/CustomHtmlPreview.jsx
  • admin/form-builder/src/components/FieldPreview/DropdownPreview.jsx
  • admin/form-builder/src/components/FieldPreview/EmailPreview.jsx
  • admin/form-builder/src/components/FieldPreview/FeaturedImagePreview.jsx
  • admin/form-builder/src/components/FieldPreview/HelpText.jsx
  • admin/form-builder/src/components/FieldPreview/HiddenFieldPreview.jsx
  • admin/form-builder/src/components/FieldPreview/ImageUploadPreview.jsx
  • admin/form-builder/src/components/FieldPreview/MultiSelectPreview.jsx
  • admin/form-builder/src/components/FieldPreview/PasswordPreview.jsx
  • admin/form-builder/src/components/FieldPreview/PostContentPreview.jsx
  • admin/form-builder/src/components/FieldPreview/PostExcerptPreview.jsx
  • admin/form-builder/src/components/FieldPreview/PostTagsPreview.jsx
  • admin/form-builder/src/components/FieldPreview/PostTitlePreview.jsx
  • admin/form-builder/src/components/FieldPreview/RadioPreview.jsx
  • admin/form-builder/src/components/FieldPreview/RecaptchaPreview.jsx
  • admin/form-builder/src/components/FieldPreview/SectionBreakPreview.jsx
  • admin/form-builder/src/components/FieldPreview/TaxonomyPreview.jsx
  • admin/form-builder/src/components/FieldPreview/TextEditorPreview.jsx
  • admin/form-builder/src/components/FieldPreview/TextFieldPreview.jsx
  • admin/form-builder/src/components/FieldPreview/TextareaPreview.jsx
  • admin/form-builder/src/components/FieldPreview/TurnstilePreview.jsx
  • admin/form-builder/src/components/FieldPreview/WebsiteUrlPreview.jsx
  • admin/form-builder/src/components/FieldPreview/index.js
  • admin/form-builder/src/components/FieldSettings/FieldOptionsPanel.jsx
  • admin/form-builder/src/components/FieldSettings/SettingInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/CheckboxInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/HtmlHelpText.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/IconSelectorInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/MultiSelectInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/OptionDataInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/RadioInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/RangeInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/SelectInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/SettingHelpText.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/TextInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/TextMetaInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/TextareaInput.jsx
  • admin/form-builder/src/components/FieldSettings/inputs/VisibilityInput.jsx
  • admin/form-builder/src/components/FormBuilder.jsx
  • admin/form-builder/src/components/Header/Header.jsx
  • admin/form-builder/src/components/Integrations/IntegrationsTab.jsx
  • admin/form-builder/src/components/Settings/FormSettings.jsx
  • admin/form-builder/src/components/Settings/ModulesEmptyState.jsx
  • admin/form-builder/src/components/Settings/NotificationSection.jsx
  • admin/form-builder/src/components/Settings/ProPreviewWrapper.jsx
  • admin/form-builder/src/components/Settings/SettingsField.jsx
  • admin/form-builder/src/components/Settings/SettingsNav.jsx
  • admin/form-builder/src/components/Settings/SettingsSection.jsx
  • admin/form-builder/src/components/Settings/fields/CheckboxField.jsx
  • admin/form-builder/src/components/Settings/fields/ColorPickerField.jsx
  • admin/form-builder/src/components/Settings/fields/DateField.jsx
  • admin/form-builder/src/components/Settings/fields/HelpTextIcon.jsx
  • admin/form-builder/src/components/Settings/fields/InlineFieldsGroup.jsx
  • admin/form-builder/src/components/Settings/fields/MultiSelectField.jsx
  • admin/form-builder/src/components/Settings/fields/NumberField.jsx
  • admin/form-builder/src/components/Settings/fields/PicRadioField.jsx
  • admin/form-builder/src/components/Settings/fields/SelectField.jsx
  • admin/form-builder/src/components/Settings/fields/TextField.jsx
  • admin/form-builder/src/components/Settings/fields/TextareaField.jsx
  • admin/form-builder/src/components/Settings/fields/ToggleField.jsx
  • admin/form-builder/src/components/Settings/fields/TrailingTextField.jsx
  • admin/form-builder/src/components/Settings/useFieldDependencies.js
  • admin/form-builder/src/components/Sidebar/FieldGroup.jsx
  • admin/form-builder/src/components/Sidebar/FieldItem.jsx
  • admin/form-builder/src/components/Sidebar/FieldPanel.jsx
  • admin/form-builder/src/components/Sidebar/FieldSearch.jsx
  • admin/form-builder/src/components/Sidebar/Sidebar.jsx
  • admin/form-builder/src/extensions/hooks.js
  • admin/form-builder/src/extensions/registry.js
  • admin/form-builder/src/hooks/useDirtyState.js
  • admin/form-builder/src/hooks/useFieldClasses.js
  • admin/form-builder/src/hooks/useFormBuilder.js
  • admin/form-builder/src/hooks/useFormSave.js
  • admin/form-builder/src/hooks/useIntegrations.js
  • admin/form-builder/src/hooks/useSettingDependency.js
  • admin/form-builder/src/index.jsx
  • admin/form-builder/src/store/actions.js
  • admin/form-builder/src/store/constants.js
  • admin/form-builder/src/store/index.js
  • admin/form-builder/src/store/reducer.js
  • admin/form-builder/src/store/reducer.test.js
  • admin/form-builder/src/store/selectors.js
  • admin/form-builder/src/store/selectors.test.js
  • admin/form-builder/src/store/serialization.test.js
  • admin/form-builder/src/utils/canvasHelpers.js
  • admin/form-builder/src/utils/fieldUtils.js
  • admin/form-builder/src/utils/globalHelpers.js
  • admin/form-builder/src/utils/i18n.js
  • admin/form-builder/views/form-builder-v4.1.php
  • admin/form-builder/webpack.config.js
  • admin/forms-list/src/FormsListApp.jsx
  • admin/forms-list/src/components/.gitkeep
  • admin/forms-list/src/components/AIConfigModal.jsx
  • admin/forms-list/src/components/ActionMenu.jsx
  • admin/forms-list/src/components/BulkActions.jsx
  • admin/forms-list/src/components/EmptyState.jsx
  • admin/forms-list/src/components/FormsList.jsx
  • admin/forms-list/src/components/FormsTable.jsx
  • admin/forms-list/src/components/Header.jsx
  • admin/forms-list/src/components/Pagination.jsx
  • admin/forms-list/src/components/SearchBar.jsx
  • admin/forms-list/src/components/ShortcodeCopy.jsx
  • admin/forms-list/src/components/StatusTabs.jsx
  • admin/forms-list/src/hooks/.gitkeep
  • admin/forms-list/src/hooks/useClipboard.js
  • admin/forms-list/src/hooks/useFormsFetch.js
  • admin/forms-list/src/index.jsx
  • admin/forms-list/src/utils/.gitkeep
  • admin/forms-list/src/utils/constants.js
  • admin/forms-list/webpack.config.js
  • assets/js-templates/form-components.php
  • assets/js/components/FormsList.vue
  • assets/js/forms-list.js
  • assets/js/wpuf-form-builder-components.js
  • assets/js/wpuf-form-builder-mixins.js
  • assets/js/wpuf-form-builder-wpuf-forms.js
  • assets/js/wpuf-form-builder.js
  • includes/Admin/Forms/Admin_Form_Builder.php
  • includes/Admin/Menu.php
  • includes/Ajax/Admin_Form_Builder_Ajax.php
  • includes/Assets.php
  • package.json
  • postcss.config.js
  • src/css/admin/form-builder.css
  • src/css/forms-list.css
  • tailwind.config.js
  • vite.config.mjs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant