Files
bedolaga-cabinet/src/components/subscription
c0mrade a89ab96953 refactor(purchase): extract TariffPurchaseForm from god page
The single biggest extraction in the SubscriptionPurchase decomp.
Moves the per-tariff purchase form into a self-contained component
at src/components/subscription/purchase/TariffPurchaseForm.tsx.

The form self-owns:
- the purchaseTariff mutation (mode-aware: daily-tariff activate vs
  period-based + custom-days / custom-traffic toggles + summary)
- the auto-scroll-into-view ref + effect on mount
- selectedTariffPeriod / customDays / customTrafficGb / useCustomDays /
  useCustomTraffic — five pieces of state that were parent-level but
  only ever read inside this form. Form remounts with fresh state
  when the parent passes a new tariff (key={selectedTariff.id}).

Parent only owns selectedTariff + showTariffPurchase (the two pieces
the orchestrator needs to decide what to render) and threads them
into <TariffPurchaseForm>. Tariff card click handlers drop their
period-seeding line (the form seeds itself from tariff.periods[0]
on mount). The subscription_expired fallback callback simplifies
for the same reason.

SubscriptionPurchase.tsx: 1838 → 1222 lines (-616). Drops useRef,
TariffPeriod, and getInsufficientBalanceError from parent imports.
2026-05-26 23:52:42 +03:00
..