Subscription billing
Component-composed plan, payment, paginated invoice, cancellation, outcome, and mobile billing states.
Subscription billing
Plans, card replacement, paginated invoice records, cancellation safeguards, outcomes, and pressure states.
Cancellation validation
Missing reason and consent plus excessive feedback produce connected errors.
Cancel Team plan
Paid access ends August 1, 2026. Eighteen active members and paid workspace history will be affected.
Confirm the cancellation details
Reason is not included in the list, Feedback is too long (maximum is 500 characters), and Confirmed must be accepted
Viewport
Ruby
test/dummy/app/components/gallery/compositions/billing_page.rbdiv(
data: {
gallery: "composition-surface",
gallery_composition: "billing",
gallery_mobile: state == "mobile" ? "true" : nil
}.compact
) do
render NitroKit::Container.new(size: :xl, id: "gallery-billing-container") do
render NitroKit::Flex.new(dir: :col, gap: 6, align: :stretch, id: "gallery-billing-stack") do
turbo_frame_tag("gallery-billing-frame") { render_screen }
end
end
end