feat(Form): prepare modern dialogs, examples, and compiler coverage - #1418
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: 771503c The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
📦 NPM canary releaseDeployed canary version 0.0.0-canary-9ab5d93. |
🏋️ Size limit report
Compared against main at 78a3a07 — run 35728724711, 2026-09-22T12:41:39Z.To see which modules changed, download the size-limit-statoscope-report artifact from this run and open report.html. |
🧪 Storybook is successfully deployed!
|
tenphi
left a comment
There was a problem hiding this comment.
Found two reproducible issues in the new modern dialog lifecycle; details are inline.
Validation: the 24 existing modern/legacy dialog tests, 21 compiled dialog tests, and 126 isolated store tests pass. Additional regression cases reproduce both findings; the premature popover dismissal also reproduces in Chromium.
tenphi
left a comment
There was a problem hiding this comment.
Re-reviewed 4f0f2a3 against the previous review. Both reported issues are fixed, and I found no new actionable issues in the follow-up changes. Verified and resolved both original review threads.
Local validation passed: 28 modern/legacy dialog tests, 25 React Compiler dialog tests, 4 Chromium dialog tests, and both original review reproductions. The new coverage includes built-in/custom popover actions, failed and pending saves, explicit cancellation, and controller replacement with different preserve policies.
At posting time, the React 18/19 CI jobs are green; the full Tests & lint job, Browser tests, and Chromatic checks are still running or pending.
Passing a modern controller to
DialogFormnow selects the modern form implementation, with inferred callbacks, automatic closing after successful saves, and cancellation when the dialog closes. Existing legacy callers keep their callback and reset contracts.The ordinary Storybook form examples now use modern controllers. The form, dialog, and input documentation recommend modern forms for new work and explain how both implementations coexist; dedicated legacy component references remain available.
DialogTriggerwhen passive dismissal is disabled.Validation: full unit suite (2,815 passed, 1 skipped), React Compiler suite (143 tests), isolated store suite (126 tests), targeted Chromium suite (26 tests), source and built-consumer type checks, package/Storybook/docs builds, lint, docs audit, compiler diagnostics ratchet, and Chromatic snapshot budget. Migrated stories were rendered in Chromium with their play functions. Bundle size remains within the existing limits. The existing CI matrix also verifies the modern form and compiled suites on React 18 and 19.
Expected visual changes: validation stories now show their error states, the DialogForm story opens its dialog before capture, and complex forms distinguish the range slider label. Chromatic baseline acceptance is left for review.