Merge PR #478: stagger-анимация скрывала контент, пришедший из API после mount

framer-motion stagger раздаёт детям команду показаться один раз при монтировании
родителя; дети, смонтированные позже (когда resolve-ится react-query), оставались
в initial (opacity:0) — пустые страницы после F5/прямого захода.

- ConnectedAccounts, SavedCards: key={isLoading?...} перемонтирует контейнер
  после загрузки → stagger проигрывается со всеми детьми;
- Balance (2), Profile, Support: явные initial/animate на условных staggerItem —
  элемент самоанимируется при mount, вне оркестрации родителя;
- Wheel: исправлены несуществующие варианты hidden/show → initial/animate
  (stagger истории спинов молча не работал).

Валидация на смердженном дереве: tsc, biome lint/format, build — чисто.
Правки #477 и #478 в общих файлах (ConnectedAccounts/Profile) сосуществуют.
This commit is contained in:
Fringg
2026-07-12 23:45:08 +03:00
6 changed files with 28 additions and 10 deletions

View File

@@ -774,10 +774,13 @@ export default function Wheel() {
>
<div className="border-t border-dark-700/30 px-4 pb-4 pt-2">
{history && history.items.length > 0 ? (
// "hidden"/"show" don't exist in staggerContainer/staggerItem
// (their keys are initial/animate/exit), so the stagger here
// was silently a no-op
<motion.div
variants={staggerContainer}
initial="hidden"
animate="show"
initial="initial"
animate="animate"
className="space-y-2"
>
{history.items.map((item: SpinHistoryItem) => (