Bet Panel Fixes — Comprehensive Implementation Plan
Context
22+ issues identified across 6 PRs (#76, #79, #80, #81, #82, #83) in the bet-panel branch, plus 7 additional items from review. Critical: mobile bet panel never renders, ONE CLICK is decorative, batch endpoint unused, partial failures clear entire slip. User provided 7 reference images from 1exch.com as target UX. All work is in /Users/bhargavveepuri/forsyt/Hannibal/bet-panel/.
Workstream 1: Layout & Responsive (Critical)
1A. Fix mobile BetPanel rendering
1B. Fix CSS grid specificity
Workstream 2: ONE CLICK + Settings + Confirmation
2A. Overhaul betPanelSettingsStore.ts
2B. Redesign OneClickToggle.tsx per Image 8
2C. Wire ONE CLICK in ExchangeGrid.tsx
2D. Create BetConfirmDialog.tsx (Image 7)
2E. Create OneClickConfirmDialog.tsx (Image 4)
2F. Add Settings inside OneClickToggle bar + BetSlipSettings.tsx (Image 5)
Workstream 3: Bet Card + Limits + Validation
3A. Flatten BetSlipItem
3B. Fix odds-click → betslip panel visibility
3C. Block empty depth from bet slip
3D. Store minStake from backend limits
3E. Editable odds field in BetSlipCard.tsx
3F. Display Min/Max/Max.Mkt per Image 6
3G. Stake validation inline
3H. Unify tick logic
Workstream 4: Bet Placement + Backend
4A. Wire batch placement in BetSlipFooter.tsx
4B. Implement POST /agent/bets/batch backend endpoint
4C. Keep failed bets in slip
4D. Integrate confirmation dialog
4E. Fix countdown timer
4F. Fix sportId type conversion
4G. Add totalMatched to odds response
Workstream 5: Cricket & UI Polish
5A. TossAnalysis + SessionPanel collapsible chevrons
5B. SportSelector consistency between /live and fixture detail
Workstream 6: TODO Markers (deferred items)
See full plan in conversation transcript.