agent-ecosystem/test/renderer/components/team/activity
Mike d4f518e8c5 refactor(team): viewport contract + observer root for ActivityTimeline
Second step of the virtualization plan. No virtualization yet. This PR
makes IntersectionObserver-based visibility tracking correct inside
scroll containers (sidebar, bottom-sheet), which is a prerequisite for
virtualizing the timeline.

- Introduces `TimelineViewport` — a grouped contract passed as a single
  `viewport` prop on `ActivityTimeline`. Holds `scrollElementRef`,
  `observerRoot`, `scrollMargin`, and `virtualizationEnabled`.
- `MessageRowWithObserver` and `LeadThoughtsGroupRow` now create their
  `IntersectionObserver` with `root = observerRoot?.current ?? null`
  instead of defaulting to the document viewport. Unread marking now
  fires when rows enter their real scroll parent.
- `MessagesPanel` resolves the active scroll owner from `position`
  (inline from parent ref, sidebar from `sidebarScrollRef`, bottom-sheet
  from `bottomSheetScrollRef`) and passes it into ActivityTimeline.
- Tests: stubs `IntersectionObserver` to capture `options.root` and
  asserts null when no viewport is passed, and the provided element when
  `viewport.observerRoot` is set.

`scrollMargin` and `virtualizationEnabled` are included in the contract
but not consumed yet — they land in follow-up PRs (#4/#5).
2026-04-20 00:17:04 +05:00
..
ActivityItem.test.ts refactor(activity): reuse markdown rendering in compact previews 2026-04-18 21:57:59 +03:00
ActivityTimeline.test.ts refactor(team): viewport contract + observer root for ActivityTimeline 2026-04-20 00:17:04 +05:00
collapseState.test.ts feat: enhance UI and functionality in team dialogs and components 2026-03-06 23:21:56 +02:00
LeadThoughtsGroup.test.ts refactor(activity): reuse markdown rendering in compact previews 2026-04-18 21:57:59 +03:00
PendingRepliesBlock.test.ts feat(team-ui): clarify launch and retry member states 2026-04-09 21:16:24 +03:00