Skip to content

feat(web): carry cohesive request aggregates across server functions - #954

Open
mdorman wants to merge 13 commits into
mainfrom
issue-417-request-aggregate-types
Open

feat(web): carry cohesive request aggregates across server functions#954
mdorman wants to merge 13 commits into
mainfrom
issue-417-request-aggregate-types

Conversation

@mdorman

@mdorman mdorman commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • adopt typed cohesive request aggregates for login, registration, invite creation, password-reset confirmation, audience rename/membership, and media deletion
  • assemble validated requests client-side through native forms and shared submit gates
  • record and project the convention in ADR-0128; archive the approved spec and plan

Verification

  • cargo xtask validate
  • targeted dual-backend server integration suites for auth, account, password reset, audiences, and media
  • targeted Playwright specs for auth, invites, password reset, audiences, and media
  • final Standards, Spec, and full conformance reviews: PASS

Closes #417

subscription_id,
};
let remove_request = request.clone();
let submit_remove = move |event: leptos::ev::SubmitEvent| {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Can these helpers be extracted and unit tested? I know we've done that with some things that strike me as similar.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes. Updated in 299a657: both membership forms now delegate pending/dedup and payload dispatch to the existing host-tested forms::request_submit_gate; MemberToggle retains only the SubmitEvent adapter and operation-specific request construction.

source: item.source,
force: Some(true),
};
let submit = move |event: leptos::ev::SubmitEvent| {

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Similarly, can this become a host-tested helper?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yes. Updated in 299a657: ordinary and forced delete now use the same host-tested forms::request_submit_gate. The component closures only prevent native submission and invoke the tested callback; the ordinary-delete callback also atomically records its target with dispatch.

@mdorman
mdorman force-pushed the issue-417-request-aggregate-types branch from 299a657 to b6fa5d7 Compare August 13, 2026 20:30
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.

types: explore shipping request-aggregate domain types across the #[server] boundary

1 participant