App.tsx
Root state and orchestration
Owns all state: BookmarkStore via useReducer, categories, correctionHistory, trustScore. Handles all bookmark mutations. Passes data and callbacks down as props. Manages screen navigation.
FeedScreen.tsx
Feed display and interaction
Renders the tweet feed and handles all feed interactions: bookmark tap, like, retweet, context menu. Manages toast state. Shows profile drawer. Does not own any bookmark state.
LibraryScreen.tsx
Library display and management
Renders the bookmark library. Manages all bottom sheets via ActiveSheet union. Handles folder rename, delete, tweet move, AI explanation. Passes actions up to App via callbacks.
TweetComponent.tsx
Single tweet renderer
Context-aware: feed vs library mode. Stateful like and retweet with optional callbacks. Deterministic view count. Custom play button overlay for video tweets. No forwardRef.
ProfileDrawer.tsx
Profile navigation drawer
Spring-animated left drawer. Verified badge, follower stats, nav items. Bookmarks item navigates to Library. Created from scratch — was missing from the original codebase.
FeedTweetsData.tsx
Static feed data
25 tweets with unique Unsplash avatars per author. No two authors share the same photo ID. Verified across both FeedTweetsData and SEED_DATA to prevent the duplicate avatar bug.