fix(billing): mark all required fields on the New Invoice form (PMS-187) #104

Merged
longjacksonle merged 1 commit from fix/mapps-187-invoice-required-fields into main 2026-06-10 01:41:14 +02:00

What

On the New Invoice form, only the Company field showed the required asterisk - but the submit handler already requires Invoice Date, Due Date, and each line item's Description, Quantity, and Unit Price (it blocks submit with an inline error otherwise). The required affordance under-reported what was required, so users only found out on submit.

Changes

  • Add required: true to Invoice Date and Due Date (they already have labels, so the asterisk renders).
  • The line item inputs were placeholder-only (no label, so no asterisk to attach to): give them labels - Description, Quantity, Unit Price - with required: true.

Validation behaviour is unchanged; this is purely the visual required indicator.

Verification

cargo check --target wasm32-unknown-unknown and cargo fmt --check clean. (The one host clippy hit is clippy::manual_checked_ops on pre-existing projects.rs:685, a lint that only exists in host rust 1.95; CI runs rust 1.94 where it does not fire.)

🤖 Generated with Claude Code

## What On the **New Invoice** form, only the **Company** field showed the required asterisk - but the submit handler already requires **Invoice Date**, **Due Date**, and each line item's **Description**, **Quantity**, and **Unit Price** (it blocks submit with an inline error otherwise). The required affordance under-reported what was required, so users only found out on submit. ## Changes - Add `required: true` to Invoice Date and Due Date (they already have labels, so the asterisk renders). - The line item inputs were placeholder-only (no label, so no asterisk to attach to): give them labels - **Description**, **Quantity**, **Unit Price** - with `required: true`. Validation behaviour is unchanged; this is purely the visual required indicator. ## Verification `cargo check --target wasm32-unknown-unknown` and `cargo fmt --check` clean. (The one host clippy hit is `clippy::manual_checked_ops` on pre-existing `projects.rs:685`, a lint that only exists in host rust 1.95; CI runs rust 1.94 where it does not fire.) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(billing): mark all required fields on the New Invoice form (PMS-187)
All checks were successful
Create release / Create release from merged PR (pull_request) Has been skipped
Check / clippy + fmt + tests (pull_request) Successful in 1m31s
651e1b7cec
Only the Company field showed the required asterisk, but the submit handler already requires Invoice Date, Due Date, and each line item's Description, Quantity, and Unit Price (it blocks submit with an inline error otherwise). The affordance under-reported what was required, so users only found out on submit.

Add required: true to Invoice Date and Due Date, and give the placeholder-only line item inputs labels (Description / Quantity / Unit Price) with required: true so the asterisk has a label to attach to. Validation behaviour is unchanged.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch fix/mapps-187-invoice-required-fields 2026-06-10 01:41:14 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!104
No description provided.