Skip to content

refactor(mcp): adopt shared primitives in Add/Edit source forms#189

Closed
mrzmyr wants to merge 3 commits intoRhysSullivan:mainfrom
mrzmyr:mrzmyr/source-forms-03-mcp-forms
Closed

refactor(mcp): adopt shared primitives in Add/Edit source forms#189
mrzmyr wants to merge 3 commits intoRhysSullivan:mainfrom
mrzmyr:mrzmyr/source-forms-03-mcp-forms

Conversation

@mrzmyr
Copy link
Copy Markdown
Contributor

@mrzmyr mrzmyr commented Apr 11, 2026

3 of 5 — source-forms refactor split from #169. Stacks on #188.

Replaces the hand-rolled auth/URL/headers UI in the MCP Add/Edit forms with <AuthenticationSection>, wraps the save/cancel row in <FloatActions>, and uses <IOSSpinner> + <Textarea maxRows> for probe status and previews.

The biggest single form in the source-form suite (~820 LOC touched) — isolated here so reviewers can focus on it without context-switching between plugins.

Stack

  1. feat(react): add UI primitives for source forms #187 feat(react): add UI primitives for source forms
  2. feat(react): add <AuthenticationSection> primitive #188 feat(react): add <AuthenticationSection> primitive
  3. (this PR) refactor(mcp): adopt shared primitives in Add/Edit source forms
  4. refactor(sources): standardize openapi, graphql, google-discovery, onepassword forms
  5. refactor(react): restructure sources list and sources-add container

Until #187 and #188 merge, this PR's diff includes the primitives from those PRs.

mrzmyr added 3 commits April 11, 2026 12:24
Introduces four shared UI primitives that the upcoming source-form refactor
relies on, keeping the refactor PR focused on wiring rather than new atoms:

- <FilterTabs> — compact tab selector used by the shared auth section.
- <FloatActions> — sticky bottom action bar for save/cancel on long forms
  (Claude / ElevenLabs-style editing UX).
- <IOSSpinner> — iOS-style blade spinner for subtle inline loading states,
  paired with a new keyframe in globals.css.
- <Textarea> — adds an optional maxRows prop so source-form preview/error
  panels can cap their height without bespoke wrappers.

No consumers updated in this PR; follow-up PRs adopt them.
Introduces a shared auth block that every source plugin's Add/Edit form can
reuse instead of rolling its own None / Bearer / Header / Basic UI. The
section handles field-level validation via <FieldLabel> / <FieldError> and
exposes a <FilterTabs>-based picker for the auth method.

Also refreshes secret-header-auth.tsx to render errors inline on the field
through <FieldGroup> / <FieldLabel> / <FieldError>, matching the new
primitive's error style.

No plugin consumers updated in this PR; follow-up PRs adopt it.
Replaces the hand-rolled auth/URL/headers UI with <AuthenticationSection>, wraps the save/cancel row in <FloatActions>, and uses <IOSSpinner> + <Textarea maxRows> for probe status and previews. The biggest single form in the source-form suite — isolated here so reviewers can focus on it without context-switching between plugins.
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
🔵 In progress
View logs
executor-marketing 2fbf7a5 Apr 13 2026, 05:38 AM

@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages bot commented Apr 13, 2026

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud 2fbf7a5 Apr 13 2026, 05:39 AM

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