Uh oh!
There was an error while loading. Please reload this page.
fix(plugin-form,plugin-charts,react): resolve residual bugs from #2254 verification - #2276
Merged
Merged
Conversation
…verification (#2268) Both were confirmed still-broken via a live browser pass with real API/DOM checks after #2254 merged (framework#2620 / framework#2616), and filed as #2268. - WizardForm/ObjectForm's `thank-you`/`next-record` submitBehavior only ever toasted — the form stayed mounted, fully filled, and resubmittable once the in-flight request settled, so a second click created a duplicate record. Both now track a terminal `submitted` state and swap the form for a confirmation panel (reading `title`/`message`, previously unread) once set. - Command Center-style 3-up chart bands stayed collapsed to ~100-130px because `responsiveStyles`/`style` were declared on the page-spec component bridge input type but never mapped onto the SchemaNode in spec-bridge/bridges/page.ts — the same "declared upstream, dropped by the bridge" bug class #2254 fixed for `submitBehavior`, just never addressed for these two fields. - A dataset-bound ObjectChart's aggregate measure (e.g. task_count) leaked its raw field name in the legend/tooltip because the dataset fetch path discarded queryDataset()'s `fields` (label metadata) before it reached the already-correct, already-tested buildChartSeries(rows, dims, values, fields) resolution. Added regression tests for all three (WizardForm/ObjectForm no-resubmit + confirmation panel, page bridge style/responsiveStyles mapping, ObjectChart measure label resolution).
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-zhuang
marked this pull request as ready for review
July 5, 2026 09:14
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves#2268 — two bugs confirmed still-broken via a live browser pass (real backend + API/DOM checks) after #2254 merged claiming to fix them (framework#2620 / framework#2616).
Wizard/form
submitBehavior: 'thank-you'allowed duplicate resubmission.Fix objectui-side follow-ups from Showcase E2E audit (framework#2620) #2254 fixed the spec-bridge droppingsubmitBehaviorbefore it reached the renderer, so the configured toast message started appearing — butWizardForm's last step andObjectForm's submit handler only ever calledtoast.success(...)forthank-you/next-record; the form stayed mounted and fully filled with its submit button re-enabled once the request settled, so a second click created a second record. Both components now track a terminalsubmittedstate and, when set, replace the form with a confirmation panel (using the behavior'stitle/message, which were also never read before) — mirroring the patternapps/console/src/components/FormPage.tsxalready used for its own standalone forms.A dataset-bound chart's measure leaked its raw field name (
task_countinstead ofTasks) in the legend/tooltip.ObjectChart's dataset-bound fetch path (schema.dataset+ds.queryDataset(...)) discarded the response'sfieldsarray (which carries each measure'slabel) before it ever reachedbuildChartSeries()— whosefieldsparam already resolves this correctly and is already unit-tested (chart-series.test.ts). The fetchedfieldsare now captured and threaded through.Also fixed (found investigating the chart-width half of the same report, though it turned out not to be the actual root cause for the live Command Center repro — see framework#2631 for that):
responsiveStyles/stylewere declared on the page-specPageComponentbridge input type but never copied onto theSchemaNodeinspec-bridge/bridges/page.ts::mapComponent()— the same "declared upstream, dropped by the bridge" bug class Fix objectui-side follow-ups from Showcase E2E audit (framework#2620) #2254 fixed forsubmitBehavior, just never addressed for these two fields. Kept because it's a real, independently-verified bug (unit-tested) for whatever consumesbridgePage/SpecBridge, even though the live app's page-rendering path (PageView.tsx→RegionContent) turned out to bypass this bridge entirely.Test plan
vitest run: 5300 passed, 24 skipped, 0 failed (424/425 test files; adds 4 new regression tests)eslinton all touched files: 0 errors (149 pre-existingany/hook warnings, unrelated to this diff)--fresh --seed-adminbackend + this branch's console viapnpm --filter @object-ui/console devwithVITE_SERVER_URL/DEV_PROXY_TARGET):task_count/project_countfield name in visible (non-<style>) textAdded a changeset (
@object-ui/plugin-form,@object-ui/plugin-charts,@object-ui/react: patch).Refs framework#2620, framework#2616, framework#2631, #2268.
Generated by Claude Code