feat(charges): current-period due date + overdue badge + paid toggle carry (THI-329)#224
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Sorry @thierryvm, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…carry (THI-329)
Charges page now reflects the CURRENT month per bill instead of rolling past it.
DOMAIN: new pure currentPeriodDueDate(charge, period, todayIso, isPaid) anchors
to the current month (paid/overdue/dueThisMonth) and only rolls to the real next
occurrence (upcoming) when the month is not a payment month — fixes the page
showing 'juillet' for a June bill ('juillet avant juin'). 13 tests.
UI (carry of #221, trim dropped): Payé toggle (useOptimistic + togglePaymentAction),
paid line-through, 'Payées ce mois' summary, group redesign (Repeat + count,
rounded list, brand subtotal). New: per-row 'En retard' badge driven by
currentPeriodDueDate. nextDueLabel (nextDueDateForCharge, rolled forward) removed.
a11y (dashboard-ux C1/H1): overdue badge = white on solid danger (4.84:1 both
themes); date stays neutral (no color-only signal); group subtotal text-brand-700
-> text-brand-text (dark-overridden, AA both themes).
i18n: app.charges.{toastMarkedPaid,toastMarkedUnpaid,markPaidAria,unmarkPaidAria,
paidSummary,paidHint,statusOverdue} x5 locales. moreCount NOT carried.
plan-reviewer 🟡→integrated (CR-1..4) · financial-formula-validator GO ·
i18n-auditor GO · dashboard-ux C1/H1 fixed · mobile-ios PASS_WITH_NOTES.
Branched from main, independent of PR-A #223 (index.ts export = trivial merge).
e038499 to
8102a44
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR-B — Page charges : période courante + carry #221 (THI-329)
Epic « Factures cohérentes ». La page
/app/chargesreflète enfin la réalité du mois courant par facture, au lieu de rouler prématurément vers l'occurrence suivante. Branchée depuismain, indépendante de PR-A #223 (seul overlap au merge = bloc d'exportsindex.ts, trivial).Le fix « juillet avant juin »
Domaine pur nouveau
currentPeriodDueDate(charge, period, todayIso, isPaid): ancre au mois courant (paid/overdue/dueThisMonth) et ne roule vers la vraie prochaine occurrence (upcoming) que si le mois courant n'est pas un mois de paiement. RemplacenextDueLabel(qui utilisaitnextDueDateForCharge, lequel roulait en avant → affichait « juillet » pour une facture de juin). 13 tests.Carry de #221 (trim rejeté retiré)
Toggle Payé (
useOptimistic+togglePaymentActionexistant), style payé (line-through), résumé « Payées ce mois : x/y · reste {montant} », redesign groupes (header Repeat + compteur,<ul>arrondi bordé, sous-total bas). Le trim dashboard (moreCount) n'est PAS carrié (rejeté @Thierry — un marqueur « à surveiller » viendra). Nouveau : badge par-ligne « En retard ».a11y (dashboard-ux C1/H1 corrigés)
dangerplein → 4.84:1 dans les 2 thèmes (--color-dangern'a pas d'override dark, donctext-dangery échouait).text-brand-700→text-brand-text(overridé dark → AA les 2 thèmes).Gouvernance
plan-reviewer 🟡→intégré (CR-1..4 + faits git vérifiés) · financial-formula-validator GO · i18n-auditor GO (parité 5 locales) · dashboard-ux C1/H1 corrigés · mobile-ios PASS_WITH_NOTES · 47 tests charges + suite complète (1444) + build verts.
ProchainesFacturesCard.tsx(dashboard, sur main, non touché ici) a le même patternbg-danger/10 text-danger(chip danger) +text-brand-700(tone info) → même fail dark. À corriger dans une passe a11y dédiée.Smoke @Thierry (preview, desktop + mobile)
/app/chargesen juin : facture mensuelle payée → affiche juin payé (plus juillet) ; facture jour passé non payée → badge « En retard » ; toggle bascule l'état ; trimestriel hors-mois → prochaine date réelle. Vérifier badge lisible en dark mode + pas de chevauchement date/badge/montant sur iPhone SE.🤖 Generated with Claude Code