Skip to content

Sidebar channels: visibility by activity - #302

Open
7PH wants to merge 12 commits into
masterfrom
dev/7ph/various-improvements
Open

Sidebar channels: visibility by activity#302
7PH wants to merge 12 commits into
masterfrom
dev/7ph/various-improvements

Conversation

@7PH

@7PH 7PH commented Jun 14, 2026

Copy link
Copy Markdown
Member

Sidebar channels

Icons reflect activity: playing media channels get a colored icon with glow and equalizer, occupied voice channels turn emerald, empty ones stay gray. Server exposes paused and queueLength on player channels.

Player

  • "Watching" count includes guests
  • "Synchronize" button forces a resync at the room cursor

Highlighted words (new)

Admins map words to stickers (/highlight, "Highlighted words" modal). Configured words render with an animated rainbow highlight; hover or click bursts the sticker across the message panel. Wrapping happens client-side on text nodes only, so old messages get it and stickers, links and buttons are unaffected. Management gated by minRightForHighlightManagement (optional, defaults to op).

Misc

7PH added 4 commits June 14, 2026 17:59
…less of drift threshold (automatic syncs still respect it)
…verflowing (fixes hidden delete button on long queue titles)
@sonarqubecloud

Copy link
Copy Markdown

const img = document.createElement('img');
img.src = stickerUrl;
img.alt = '';
img.style.left = 5 + Math.random() * 85 + '%';
img.src = stickerUrl;
img.alt = '';
img.style.left = 5 + Math.random() * 85 + '%';
img.style.animationDelay = Math.random() * 600 + 'ms';
img.alt = '';
img.style.left = 5 + Math.random() * 85 + '%';
img.style.animationDelay = Math.random() * 600 + 'ms';
img.style.animationDuration = 1400 + Math.random() * 600 + 'ms';
7PH and others added 3 commits August 23, 2026 16:27
… rainbow highlight and sticker burst on hover/click
Radix Vue's ContextMenu restores focus to the trigger element after the
menu closes (via requestAnimationFrame). This ran after the app.newMessage
watcher in NewMessageForm fired its .focus() call, stealing focus back.

Fix: schedule a setTimeout(0) focus via useMessageComposer in quoteMessage
and editMessage. setTimeout(0) runs after requestAnimationFrame, so our
focus call wins regardless of which path triggered the action (context menu
or hover toolbar).
…ys, so deploys survive slow postgres startup
@7PH
7PH force-pushed the dev/7ph/various-improvements branch from fbc80a9 to b4fa09f Compare August 23, 2026 14:27
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants