Skip to content

Sync recent changes from canary into integrations/makeswift#2657

Closed
jorgemoya wants to merge 1 commit into
integrations/makeswiftfrom
sync-integrations-makeswift
Closed

Sync recent changes from canary into integrations/makeswift#2657
jorgemoya wants to merge 1 commit into
integrations/makeswiftfrom
sync-integrations-makeswift

Conversation

@jorgemoya

Copy link
Copy Markdown
Contributor

What/Why?

Sync changes for 1.3 release.

Testing

Manual review.

Migration

N/A

@jorgemoya
jorgemoya requested a review from a team October 29, 2025 17:29
@changeset-bot

changeset-bot Bot commented Oct 29, 2025

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: b214224

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@vercel

vercel Bot commented Oct 29, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
catalyst-b2b Ready Ready Preview Comment Oct 30, 2025 1:15am
catalyst-canary Ready Ready Preview Comment Oct 30, 2025 1:15am
1 Skipped Deployment
Project Deployment Preview Comments Updated (UTC)
catalyst Ignored Ignored Oct 30, 2025 1:15am

Comment on lines 31 to 37
import { Input } from '@/vibes/soul/form/input';
import { NumberInput } from '@/vibes/soul/form/number-input';
import { RadioGroup } from '@/vibes/soul/form/radio-group';
import { SelectField } from '@/vibes/soul/form/select-field';
import { Select } from '@/vibes/soul/form/select';
import { SwatchRadioGroup } from '@/vibes/soul/form/swatch-radio-group';
import { Textarea } from '@/vibes/soul/form/textarea';
import { Button, ButtonProps } from '@/vibes/soul/primitives/button';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: DynamicForm now uses Select directly, omitting a hidden input workaround for Radix UI, which will prevent select field values from being submitted.
Severity: CRITICAL | Confidence: 0.98

🔍 Detailed Analysis

The DynamicForm component was modified to use Select directly instead of SelectField. The SelectField component includes a hidden input that serves as a workaround for a known Radix UI issue (radix-ui/primitives#3198) where the Select primitive does not correctly handle form submission. Without this hidden input, the selected value from a Select field will not be included in the FormData when the form is submitted via a server action. This will lead to validation failures and data loss for select field values, specifically impacting forms like the gift-certificate-purchase-section that utilize DynamicForm with select inputs.

💡 Suggested Fix

Revert the change in dynamic-form/index.tsx to use SelectField instead of Select to reintroduce the necessary hidden input workaround. Alternatively, implement an equivalent hidden input mechanism for Select to ensure correct form value capture.

🤖 Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: core/vibes/soul/form/dynamic-form/index.tsx#L31-L37

Potential issue: The `DynamicForm` component was modified to use `Select` directly
instead of `SelectField`. The `SelectField` component includes a hidden input that
serves as a workaround for a known Radix UI issue
(https://github.com/radix-ui/primitives/issues/3198) where the `Select` primitive does
not correctly handle form submission. Without this hidden input, the selected value from
a `Select` field will not be included in the `FormData` when the form is submitted via a
server action. This will lead to validation failures and data loss for select field
values, specifically impacting forms like the `gift-certificate-purchase-section` that
utilize `DynamicForm` with select inputs.

Did we get this right? 👍 / 👎 to inform future reviews.

@matthewvolk matthewvolk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Make sure to delete non-@bigcommerce/catalyst-makeswift changeset files

Comment thread .changeset/cruel-wings-shout.md Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing to note when merging canary into integrations/makeswift: Changesets for @bigcommerce/catalyst-core should be deleted before merging into integrations/makeswift. Actually, all changesets that aren't targeting @bigcommerce/catalyst-makeswift should just be deleted (I usually just delete them in the merge commit). This is because Changesets isn't able to find that package on integrations/makeswift branch and will throw an error when this PR is merged.

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.

2 participants