Channel Sidebar (UI): Difference between revisions

From Revolt Wiki
No edit summary
 
(One intermediate revision by the same user not shown)
Line 18: Line 18:
== Server Sidebar ==
== Server Sidebar ==
[[File:Server Sidebar.png|thumb|Server Sidebar in Revolt Frontend]]
[[File:Server Sidebar.png|thumb|Server Sidebar in Revolt Frontend]]
text goes here
The server sidebar is composed of the server banner with the title on top, and a list of categories and channels below.
 
Categories may be collapsed, and continue to show the active channels when collapsed.
 
=== Ordered Channels Algorithm ===
 
# Initialise a set U of uncategorised channel IDs from server channels the client may access.
# Initialise an empty list of categories C
# If server.categories are defined, for each category:
## Remove all the channels defined in the category from set U
## Add category to list C
# If the set U is not empty:
## Find the "default" category if it exists in C
## Merge the "default" category channels if they exist with and preceding the set U
## Create a category with id="default" and add it to the start of the list C if it does not exist
# Return the list C

Latest revision as of 13:54, 15 January 2023

The channel sidebar currently has two different states, "conversations" and "viewing server".

Conversations Sidebar

Conversations in Revite

The conversations sidebar shows a short navigation menu to:

With a list of direct messages below (descending order by last message ID with a fallback to channel ID).





Server Sidebar

Server Sidebar in Revolt Frontend

The server sidebar is composed of the server banner with the title on top, and a list of categories and channels below.

Categories may be collapsed, and continue to show the active channels when collapsed.

Ordered Channels Algorithm

  1. Initialise a set U of uncategorised channel IDs from server channels the client may access.
  2. Initialise an empty list of categories C
  3. If server.categories are defined, for each category:
    1. Remove all the channels defined in the category from set U
    2. Add category to list C
  4. If the set U is not empty:
    1. Find the "default" category if it exists in C
    2. Merge the "default" category channels if they exist with and preceding the set U
    3. Create a category with id="default" and add it to the start of the list C if it does not exist
  5. Return the list C