PaymentSetting.js
2.33 KB
-
🚀 feat(frontend): add robust boolean handling across settings pages · 0480d43bSummary ------- 1. Introduced a reusable `toBoolean` utility (`web/src/helpers/boolean.js`) that converts strings (`'true'/'false'`, `'1'/'0'`), numbers, and native booleans to a proper boolean. 2. Re-exported `toBoolean` via `web/src/helpers/index.js` for simple one-line imports. Refactors --------- • Systematically replaced all legacy `item.value === 'true'` checks with `toBoolean(item.value)` in the following components: – `SystemSetting.js` – `OperationSetting.js` – `PaymentSetting.js` – `RatioSetting.js` – `RateLimitSetting.js` – `ModelSetting.js` – `DrawingSetting.js` – `DashboardSetting.js` – `ChatsSetting.js` • Unified import statements to `import { …, toBoolean } from '../../helpers';` removing redundant `../../helpers/boolean` paths. Why --- SQLite sometimes returns `1/0` or boolean literals instead of the string `'true'/'false'`, causing checkbox states to reset on page reload. The new utility guarantees consistent boolean parsing, fixing the issue across all environments (SQLite, MySQL, etc.) while improving code clarity.t0ng7u committed