Skip to content

feat: Sidebar UI #153

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 51 commits into
base: main
Choose a base branch
from
Open

Conversation

sameoldlab
Copy link
Contributor

@sameoldlab sameoldlab commented Apr 8, 2025

Initial version of sidebar UI update.

  • Splits Room sidebar into Index and Chat mode.
  • Collapses to a sidebar on mobile
  • Allows hiding Space selector when already inside a space

Displays all threads in Index Mode, leaving space for additional data to be moved here in future PRs.

image

closes #129

@sameoldlab
Copy link
Contributor Author

still wip. preview here: https://sideroom.netlify.app

@erlend-sh
Copy link
Contributor

closes #129, #23, #103

Only need to solve completely for #129 in this PR. Make one PR per issue, with #103 next and #23 completed last.

currently just a copy of threads
chat only includes threads originiating from a channel, while index has
everything. (not sure how if these... loose threads are meant to be a
feature.
copied changes to relevant files:
muni-town#158 -> UserSession.svelte
muni-town#154 -> SpaceBar.svelte
muni-town#145 -> SpaceBar.svelte
@sameoldlab
Copy link
Contributor Author

All done now. Meld is an amazing marvel of software.

@michaelwschultz
Copy link
Collaborator

@erlend-sh I saw your thoughts on this change in a few places. Mind weighing in here with your thoughts. Would be great if you could test this out on your device as well. Btw, what device are you using mainly?

@erlend-sh
Copy link
Contributor

This first iteration LGTM 👍

The big change for next iteration is that the toggle between index/chat should change the main content view, I.e. it should work the same way the toggle between chat/threads currently does.

My main device is an old iPad Pro (maybe 2019), though that might change soon since it’s pretty busted heh.

@michaelwschultz michaelwschultz moved this to Todo in Roomy Apr 15, 2025
@michaelwschultz michaelwschultz moved this from Todo to In Review in Roomy Apr 15, 2025
@michaelwschultz
Copy link
Collaborator

michaelwschultz commented Apr 16, 2025

Awesome job @sameoldlab! This is going to make the mobile experience so much better. I've got a review queued up for you with a couple of small nits around naming and a few other about things I think we can just get rid of. I'd like to get @erlend-sh to weigh in on a few design change ideas I had after playing around with it.

Mainly, my proposal is to get rid of the old Chat | Threads | Wiki toolbar altogether and simplify the sidebar back into one rather than two separate parts. This cleans up the UI quite and bit and still fixes the usability issues on mobile. Gifs below to illustrate changes.

Sidebar area proposed changes

  • Remove the ability to hide the spaces bar. It doesn't take up that much space and will be nice for seeing notifications across spaces later.
  • Wikis should appear in the "IndexMode" section (right @erlend-sh?)
  • Expand current space name to take up the full width of the sidebar
    • Remove channel name breadcrumb
  • Move the settings gear in the top right to the bottom bar with the theme color (not seen in demo, I just hid it)
  • Move the user avatar back to the spaces bar at the bottom (not seen in demo)
  • Selecting a channel, thread, or wiki, should close the sidebar (not seen in demo)

Main area proposed changes (these do not all need to be done here)

  • Remove Chat | Threads | Wiki toolbar
  • Move Create Thread icon to individual message popover (feels like more obvious ux)

I'm sure there are a few things I'm missing but we can add to this list later if we like the proposal. We can also break this up into multiple parts if need be.

Mobile Desktop
redux-sidebar-layout redux-sidebar-layout-desktop

@erlend-sh
Copy link
Contributor

Mainly, my proposal is to get rid of the old Chat | Threads | Wiki toolbar altogether and simplify the sidebar back into one rather than two separate parts.

Agreed. The plan is to follow up with #103 by having the index/chat toggle mirrored like so:

image

My UX notes are all over the place right now so I’ll try to put a cohesive doc together for a linear story.

@sameoldlab
Copy link
Contributor Author

@michaelwschultz is the demo video running with some of the changes you suggested already applied?

@sameoldlab
Copy link
Contributor Author

sameoldlab commented Apr 16, 2025

Remove the ability to hide the spaces bar. It doesn't take up that much space and will be nice for seeing notifications across spaces later.

This one was @erlend-sh's suggestion. Personally, I also prefer always having it expanded but can see a reason for the alternative. I could add some stronger persistence for whatever users choose to localStorage.

Wikis should appear in the "IndexMode" section (right @erlend-sh?)
Remove Chat | Threads | Wiki toolbar

I'm planning to do these in a follow up PR. Changing those involves refactoring TimelineView.svelte component into multiple smaller files. So if I can do the refactor first and merge that, the rest will continue with much smaller merge conflicts (ideally 0) than the ones here.

Expand current space name to take up the full width of the sidebar

Do you mean extending into where the Room Selection is currently? If so, would depend on locking the sidebar visible. I had an earlier commit (never fully designed it) with a single row across the top. Maybe something like that could work for this.

Screenshot from 2025-04-08 14-55-37

Move the settings gear in the top right to the bottom bar with the theme color (not seen in demo, I just hid it)

Assuming you mean channel settings? I think it would lose locality to what it affects placed in the bottom bar. There's also settings for groups and rooms (if admin) inside the sidebar currently. I do think the UI could take more advantage of tooltip menus to remove all of these... but that'd be separate issue from the sidebar.

Move the user avatar back to the spaces bar at the bottom (not seen in demo)

Yeah, I could see that working better. But would also mean those are hidden when the spaces collapse.

Selecting a channel, thread, or wiki, should close the sidebar (not seen in demo)
Remove channel name breadcrumb

Yes. Might need to rebuild the mobile drawer to get this working (currently using a class from Daisy UI), so not sure how long it would take.

Move Create Thread icon to individual message popover (feels like more obvious ux)

Yeah, could put this in a different issue. It sounds like you want to get rid of the far right button group in the TimelineView? I agree with most (probably all?) of it. I made a mistake splitting files and changing them together in this PR, so trying to avoid making it worse now.

Copy link
Collaborator

@michaelwschultz michaelwschultz left a comment

Choose a reason for hiding this comment

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

Here are a few bits that just need some clean up. Once these are addressed let's get this merged in!

Comment on lines 12 to 16
<!--
Pages
Threads
Links
--->
Copy link
Collaborator

Choose a reason for hiding this comment

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

@erlend-sh I'm not sure index makes sense as a tab name. The icon looks like an inbox which I kinda like. But these aren't notifications. It's just other "stuff". Maybe this is the "garden" area?

Copy link
Contributor

Choose a reason for hiding this comment

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

The icon I’ve been using in mock-ups is an ℹ️ as a hybrid of index/info. Open to suggestions though.

Copy link
Collaborator

Choose a reason for hiding this comment

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

No matter what we end up calling these sidebar sections, I think 'Mode' isn't the right word. If we're going to remove the tabs in the current header. We could just call these ChatTab and IndexTab.

import { Button, ToggleGroup } from "bits-ui";
import ThemeSelector from "$lib/components/ThemeSelector.svelte";
import { Space } from "@roomy-chat/sdk";
// import TooltipPortal from "$lib/components/TooltipPortal.svelte";
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: remove

Comment on lines 45 to 52
<!--
<TooltipPortal
text={activeTooltip}
visible={!!activeTooltip}
x={tooltipPosition.x}
y={tooltipPosition.y}
/>
-->
Copy link
Collaborator

Choose a reason for hiding this comment

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

Nit: remove commented code

@github-project-automation github-project-automation bot moved this from In Review to In Progress in Roomy Apr 16, 2025
@michaelwschultz michaelwschultz moved this from In Progress to In Review in Roomy Apr 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: In Review
Development

Successfully merging this pull request may close these issues.

feat: sidebar UI
3 participants