Skip to content

Conversation

@olivermrose
Copy link
Collaborator

  • Pinned channels stay at the top and can be ordered however you want
  • Ephemeral channels are not allowed to be pinned

Because you're able to reorder pins, I'm closing #71 with this since the goal of that issue was to essentially pin channels.

Closes #71

Copilot AI review requested due to automatic review settings December 8, 2025 02:54
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a pinned channels feature that allows users to pin channels to the top of the sidebar and reorder them via drag-and-drop. Ephemeral channels cannot be pinned, and the feature integrates cleanly with the existing channel grouping system.

Key Changes

  • Added pinned state to the Channel model and settings store
  • Implemented drag-and-drop reordering for pinned channels using @dnd-kit libraries
  • Refactored sidebar components to use Svelte context for shared state (collapsed sidebar)
  • Extracted channel rendering logic into reusable ChannelListItem component

Reviewed changes

Copilot reviewed 10 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/lib/settings.ts Added pinned array to track pinned channel IDs in settings
src/lib/models/channel.svelte.ts Added pinned state property and initialization from settings
src/lib/menus/channel-menu.ts Added pin/unpin toggle menu item with state management
src/lib/components/StreamTooltip.svelte Refactored to use sidebar context and ChannelListItem component
src/lib/components/Sidebar.svelte Added Svelte context for sharing sidebar collapsed state
src/lib/components/ChannelListItem.svelte New component for rendering channel avatar and info consistently
src/lib/components/Draggable.svelte New wrapper component for draggable pinned channels
src/lib/components/Droppable.svelte New wrapper component for droppable pinned channels container
src/lib/components/ChannelList.svelte Updated to support pinned channels group with drag-and-drop reordering
package.json Added @dnd-kit dependencies for drag-and-drop functionality
pnpm-lock.yaml Updated lock file with new dependencies
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@olivermrose olivermrose merged commit 74238e1 into main Dec 8, 2025
2 checks passed
@olivermrose olivermrose deleted the feat/pinned-channels branch December 8, 2025 03:22
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.

Reorderable channels

2 participants