The Result row re-parsed the ledger's own display strings, which fmtNum grouped with toLocaleString. parseFloat stops at the first separator, so "3,456,789" came back as 3 -- a plausible small number rather than an error, which is why it read as a formatting quirk instead of a wrong answer. A 3% change on sales_usd previewed as 3. It showed only where the new value was derived rather than typed: the field you type into keeps your raw text, so entering a target directly looked right while the % and Change rows did not. derive now returns the three figures as numbers alongside the strings, and outcome reads those. Nothing has to know how the display is grouped. The write was never affected -- buildPayload reads scaleInputs[*].raw, which LedgerInput has always kept comma-free -- so this was a wrong preview of a correct write. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| vendor | ||
| .gitignore | ||
| eslint.config.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| vite.config.js | ||
React + Vite
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Oxc
- @vitejs/plugin-react-swc uses SWC
React Compiler
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
Expanding the ESLint configuration
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.