Skip to content

New form system#453

Merged
jthrilly merged 338 commits intonextfrom
new-form-system
Feb 9, 2026
Merged

New form system#453
jthrilly merged 338 commits intonextfrom
new-form-system

Conversation

@jthrilly
Copy link
Member

@jthrilly jthrilly commented Aug 12, 2025

This PR is a second attempt at a new form system to replace the old, redux-form, based approach.

  • <Form> component, supporting async onSubmit handler
  • <Field> component, which connects any standard or custom input to the form system. When rendered within <Form /> automatically handles registering/unregistering.
  • Supports nested field names
  • <FieldSet /> component, designed for grouping <Field /> components, and conditionally rendering them.
  • useForm, useField, and useFormValue hooks to enable clean composition patterns, and features such as conditional rendering
  • Validation using zod functions
  • Accessibility support with appropriate aria properties being added by custom hooks
  • useProtocolForm custom hook, which translates a protocol form definition to a renderable list of Field components.
  • Implementation of form field variants via cva beta 1.0.0
  • Make a plan for validation functions. Zod schemas are great, but what about localisation and compatibility with existing validation?

@vercel
Copy link

vercel bot commented Aug 12, 2025

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

Project Deployment Actions Updated (UTC)
fresco-sandbox Ready Ready Preview, Comment Feb 9, 2026 7:08pm
fresco-storybook Ready Ready Preview, Comment Feb 9, 2026 7:08pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
barf Ignored Ignored Feb 9, 2026 7:08pm

Request Review

jthrilly and others added 5 commits February 2, 2026 15:13
…ering as label; add negative margin back to scroll area
- Update ActivityFeed and SummaryStatistics to accept promises as props
- Add dashboard loading.tsx for improved loading states
- Improve data table components and stories
- Update SettingsCard and Heading components
- Update visual snapshots for e2e tests
- Update DataTable header to stack on small screens with flex-col/tablet:flex-row
- Make search input expand/shrink with tablet:flex-1 and tablet:min-w-0
- Add responsive width classes to participant and interview buttons
- Update ImportExportSection control area to be full width on mobile
@github-actions
Copy link

github-actions bot commented Feb 2, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

- Skip GitHub API call in CI for VersionSection to ensure consistent
  visual snapshots (server-side fetch can't be mocked by Playwright)
- Use networkidle instead of load for navigation in db-fixture to
  ensure React hydration completes before tests interact with page
- Move page navigation before releasing exclusive lock in cleanup to
  prevent race condition with other workers attempting TRUNCATE
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

Ensure activity table ordering is deterministic by using explicit,
sequential IDs for events (event-001, event-002, event-003). When
the ActivityFeed query sorts by "timestamp DESC, id DESC", the IDs
now reinforce the timestamp ordering as a secondary sort key.

This prevents visual snapshot flakiness if timestamps were ever equal
or if there's any edge case in the database ordering.
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

The baseline snapshot had incorrect activity table ordering. The events
should display in timestamp DESC order (newest first):
1. Participant Added
2. User Login
3. Protocol Installed

Updated baseline to match the corrected ordering.
@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

@github-actions
Copy link

github-actions bot commented Feb 3, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

Incorporates v4 fixes:
- Interface styling fixes
- Side panel encrypted fixes
- Preview protocol import data fix
- API key assets in preview mode, geospatial interface
- Dyad/tie strength census runtime errors fix
- Node styling fixes
- Allow external data attributes when adding nodes from panels
- Narrative interface fix
- Click handler and drag working together
@github-actions
Copy link

github-actions bot commented Feb 5, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

@jthrilly jthrilly mentioned this pull request Feb 9, 2026
9 tasks
@github-actions
Copy link

github-actions bot commented Feb 9, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

@github-actions
Copy link

github-actions bot commented Feb 9, 2026

🎭 Playwright E2E Test Report

Tests failed. View the full report here:

👉 https://complexdatacollective.github.io/Fresco/pr-453/

Report details

# Conflicts:
#	.github/workflows/e2e.yml
#	.storybook/main.ts
#	actions/appSettings.ts
#	app/(blobs)/(setup)/_components/OnboardSteps/Documentation.tsx
#	app/layout.tsx
#	components/DataTable/ColumnHeader.tsx
#	components/DynamicLucideIcon.tsx
#	lib/form/components/fields/Checkbox.js
#	lib/form/utils/scrollToFirstError.ts
#	scripts/update-e2e-snapshots.sh
#	tests/e2e/suites/dashboard/participants.spec.ts
#	tests/e2e/suites/dashboard/participants.spec.ts-snapshots/participants-empty-state-dashboard-darwin.png
#	tests/e2e/suites/dashboard/participants.spec.ts-snapshots/participants-empty-state-dashboard-linux.png
#	tests/e2e/suites/dashboard/participants.spec.ts-snapshots/participants-page-dashboard-darwin.png
#	tests/e2e/suites/dashboard/participants.spec.ts-snapshots/participants-page-dashboard-linux.png
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