mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 14:04:04 +00:00
Mini App Home Screen: - Add 'Record Payment' button to utilities and rent period cards - Pre-fill payment amount with member's share (rentShare/utilityShare) - Modal dialog with amount input and currency display - Toast notifications for copy and payment success/failure feedback Copy Button Improvements: - Increase spacing between icon and text (4px → 8px) - Add hover background and padding for better touch target - Green background highlight when copied (in addition to icon color change) - Toast notification appears when copying any value Backend: - Add /api/miniapp/payments/add endpoint for quick payments - Payment notifications sent to 'reminders' topic in Telegram - Include member name, payment type, amount, and period in notification Files: - New: apps/miniapp/src/components/ui/toast.tsx - Modified: apps/miniapp/src/routes/home.tsx, apps/miniapp/src/index.css, apps/miniapp/src/theme.css, apps/miniapp/src/i18n.ts, apps/bot/src/miniapp-billing.ts, apps/bot/src/server.ts Quality Gates: ✅ format, lint, typecheck, build, test Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
3.7 KiB
3.7 KiB
Plan: Fix Home “No Payment” + Add QA Period Overrides
Goals
- Remove the “Due” chip from the No payment period card.
- In No payment period, don’t show rent/utilities balances; show only purchase-related balance and household info (FX if available).
- Fix “Upcoming” dates so they never show negative days (e.g., “-11d left”); if the reminder/warning already passed in the current period, show the next period’s start date instead.
- Add period/date overrides to the hidden QA “Testing view” so you can reliably test all Home variants.
Changes
1) Home: remove “Due” chip from No-payment card
- In home.tsx, stop rendering the
focusBadge()inside themode() === 'none'card. - Keep the existing Due/Settled chip behavior for utilities/rent modes unchanged.
2) Home: No-payment mode shows purchases-only balance
- In home.tsx:
- When
homeMode() === 'none', hide the current “Your balance” card (which includes rent + utilities). - Replace it with a purchases-focused card that shows:
- Member purchase offset (from
currentMemberLine().purchaseOffsetMajor) as the primary amount. - Household purchase totals (count + sum) computed from the existing dashboard ledger entries where
kind === 'purchase'. - Household member count (from dashboard member lines length).
- Member purchase offset (from
- Keep household informational cards that are not “due/balance for rent/utilities” (e.g., the FX card if present/available).
- When
3) Home: Upcoming utilities/rent start date never goes negative
- Update upcoming calculations in No-payment mode:
- If
daysUntilPeriodDay(period, reminderDay, timezone)is>= 0, show as-is. - If it is
< 0, compute the next period (BillingPeriod.fromString(period).next().toString()) and compute:formatPeriodDay(nextPeriod, reminderDay, locale)daysUntilPeriodDay(nextPeriod, reminderDay, timezone)
- Apply the same logic for rent warning day and utilities reminder day.
- If
- This ensures “Utilities starts …” always points to a future date and shows a non-negative countdown.
4) QA Testing View: add period/date overrides
- Extend the existing hidden “Testing view” (opened by 5 taps on the role badge) in:
- Add two optional overrides stored in
DashboardContext:testingPeriodOverride?: string | null(formatYYYY-MM)testingTodayOverride?: string | null(formatYYYY-MM-DD)
- Home uses
effectivePeriod = testingPeriodOverride ?? dashboard.period. - Date helpers used by Home (
daysUntilPeriodDay,compareTodayToPeriodDay) accept an optional “today override” so Home can behave as if it’s a different day without changing system time.
5) Copy updates
- Add/adjust i18n strings needed for the purchases-only card and QA fields in:
Verification
- Run:
bun run format:check,bun run lint,bun run typecheck,bun run test,bun run build - Manual checks in miniapp:
- Set QA overrides to land inside utilities window / rent window / no-payment window and confirm Home variant changes.
- Confirm no-payment “Upcoming” countdown never shows negative values.
- Confirm no-payment mode hides rent/utilities balance and no longer shows “Due” chip on that card.
- Confirm no-payment mode shows purchase offset + household purchase stats + member count.