Mobile Plan 5 — Squad Tab

docs/superpowers/plans/2026-05-03-mobile-plan-5-squad.md

← Zurück zu Knowledge

Mobile Plan 5 — Squad Tab

docs/superpowers/plans/2026-05-03-mobile-plan-5-squad.md · 2.8K

# Mobile Plan 5 — Squad Tab

**Goal:** Full Squad UI with mock data — overview, challenges, bets, duels, pacts. UI polished, ready to wire to Supabase later.

## File map

```
apps/mobile/
  app/
    (tabs)/squad.tsx              → MODIFY: segmented control + sections
    challenge/
      create.tsx                  → modal: create squad challenge
      [id].tsx                    → modal: challenge detail w/ progress grid
    bet/
      create.tsx                  → modal: create bet
      [id].tsx                    → modal: bet detail w/ supporters
    duel/
      create.tsx                  → modal: pick opponent + metric + stake
      [id].tsx                    → modal: live VS screen
  components/
    SegmentedControl.tsx          → reusable 3-segment switch
    SquadHeader.tsx               → name + emoji + level + member count
    SquadStreakBanner.tsx         → "alle haben heute eingecheckt" banner
    LeaderboardRow.tsx            → ranked member row
    ChallengeCard.tsx             → squad challenge with progress bars per member
    BetCard.tsx                   → bet with progress + stakes summary
    DuelCard.tsx                  → VS card with two avatars, scores, deadline
    PactCard.tsx                  → linked-avatars + shared streak
    SquadVsCard.tsx               → squad vs squad battle
    InviteSheet.tsx               → share invite code (mock)
  providers/
    SquadProvider.tsx             → wraps squad mock data + actions
  hooks/
    useSquad.ts                   → activeSquad + helpers
  lib/
    squad-mock.ts                 → 4 squads, 20 members, 5 challenges, 8 bets, 3 duels, 2 pacts
```

## Tasks

- [ ] `lib/squad-mock.ts` — generate 4 mock squads with realistic German names, completion patterns, XP histories
- [ ] `SegmentedControl` — reusable, animated indicator
- [ ] `(tabs)/squad.tsx` — Übersicht | Challenges | Wetten + animated transitions between segments
- [ ] **Übersicht:** SquadHeader → SquadStreakBanner (if streak active) → Weekly Leaderboard (5 rows) → Active Pact (if any) → "Einladen" button
- [ ] **Challenges:** list of ChallengeCard with progress grid (member rows × day columns), "Neue Challenge" CTA, 1v1 Duels listed below
- [ ] **Wetten:** active bets list, completed bets history collapsed, "Neue Wette" CTA
- [ ] All "create" modals wired to SquadProvider mock state (persist to AsyncStorage)
- [ ] Detail screens reachable via tap from cards
- [ ] InviteSheet shows mock invite code with QR placeholder + Copy button
- [ ] Squad vs Squad opponent auto-generated from mock data — shown as separate card section

## Verification

- All four sections render with realistic data on first load
- Creating a bet/challenge/duel persists; reload preserves state
- Switching segments has smooth animation
- `npm run check` passes