Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
✅ Deploy Preview for discordactivitydrop canceled.
|
|
Caution Review failedPull request was closed or merged during review WalkthroughThe changes convert badge visibility management from direct DOM manipulation to an event-driven architecture. A new Changes
Sequence DiagramsequenceDiagram
participant Main as Main Component
participant Events as Events System
participant DiscoveryBadgeState as DiscoveryBadgeState
participant Dialog as Dialog<br/>(PairDevice/PublicRoom)
participant Storage as SessionStorage<br/>& WebSocket
participant UI as Badge UI Elements
Main->>DiscoveryBadgeState: Initialize discoveryBadgeState
Dialog->>Events: fire('room-secrets', secretsData)
Events->>DiscoveryBadgeState: Enqueue event in pipeline
DiscoveryBadgeState->>DiscoveryBadgeState: Debounce & dedup events
DiscoveryBadgeState->>Storage: Hydrate state from sessionStorage
DiscoveryBadgeState->>DiscoveryBadgeState: patchState() with validation
DiscoveryBadgeState->>DiscoveryBadgeState: scheduleRender() (debounced)
DiscoveryBadgeState->>DiscoveryBadgeState: renderBadges() with timers
DiscoveryBadgeState->>UI: Update badge visibility [data-badge=...]
DiscoveryBadgeState->>Events: fire('evaluate-footer-badges')
alt WebSocket Connected
Storage->>DiscoveryBadgeState: ws-connected event
DiscoveryBadgeState->>Storage: Sync handshake & recovery
else WebSocket Disconnected
Storage->>DiscoveryBadgeState: ws-disconnected event
DiscoveryBadgeState->>DiscoveryBadgeState: Increment recoveryToken, clear timers
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Motivation
data-badgeattributes so multiple badge instances (header/footer/chat) render consistently from one source of truth.Description
DiscoveryBadgeStateclass inpublic/scripts/ui-main.jsthat maintains badge state (lan,ip,paired,publicRoom/publicRoomId), hydrates from storage, queues and deduplicates events, handles sync handshakes and graceful hide animations, and renders all badges bydata-badgeattribute.public/index.htmlto adddata-badgeattributes (lan,ip,paired,public) to the discovery badge elements and adjusted some initialhidden/text content so the new renderer controls visibility and text.Events.fire('room-secrets')/room-secrets-deleted,discovery-public-room-id,evaluate-footer-badges,join-public-room, and WebSocket/peers events are enqueued byDiscoveryBadgeState.data-badgeselectors acrosspublic/scripts/main.js,public/scripts/ui.jsandpublic/scripts/ui-main.js(Chat UI and dialogs now bind click handlers to all badge instances via[data-badge=...]).DiscoveryBadgeState(including a public badge text update showing room id).Testing
Codex Task
Summary by CodeRabbit