Audit short-term: currency preview, date bounds, success destination, safe-area
- H3: Live currency preview below currency inputs shows the value formatted with thousands separators (en-US, USD) using Intl.NumberFormat. Skipped inside matrix cells to keep the Y1 monthly table compact. - M1: Date inputs now apply min/max bounds. Default window is 1900-01-01 to 2100-12-31; per-field override via FieldConfig.min/max as ISO strings. - H6: On successful submit, replace the form with a SuccessDestination card (large checkmark, org name, "Submit another" + "safe to close" affordance). Prevents accidental duplicate submits from back-button / autofill replay. - M6: Sticky submit bar respects iOS safe-area-inset-bottom. FieldRenderer now takes a control prop so the currency preview can subscribe to its single field via useWatch without re-rendering the whole form.
This commit is contained in:
@@ -69,9 +69,13 @@ export interface FieldConfig {
|
||||
placeholder?: string;
|
||||
/** For select / multiselect. */
|
||||
options?: SelectOption[];
|
||||
/** For number / currency / percent — min/max/step constraints. */
|
||||
min?: number;
|
||||
max?: number;
|
||||
/**
|
||||
* Min/max bound. For numeric fields, a number; for date fields, an ISO
|
||||
* date string (YYYY-MM-DD). Date fields default to a wide sanity window
|
||||
* (1900-01-01 to 2100-12-31) when not set.
|
||||
*/
|
||||
min?: number | string;
|
||||
max?: number | string;
|
||||
step?: number;
|
||||
/** For text / textarea — max length. */
|
||||
maxLength?: number;
|
||||
|
||||
Reference in New Issue
Block a user