feat(webapp): allow the left sidebar to fully collapse

Open
#1,994 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
55/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
scss, typescript
Domain
frontend, web-dev

Research direction

Start with app-menu.component.scss lines 25 and 39, then read onMenuModeTogglerClick() and onResizeStart() in app-menu.component.ts. Trace isVisible and isCollapsed from main-menu.service.ts into main-app.component.ts and its template to understand the existing state flow. Done means the sidebar can reach width 0, the 250px and 95px states still work, and the fully collapsed state can be discovered and restored.

Written by the indexing model from the issue text.

Description

Summary
The web client sidebar has only two sizes today: 250px when expanded, and 95px after clicking the collapse toggle (the layout-menu-slim icon rail). There is no way to hide it completely, so roughly 95px of horizontal space is always reserved. It would be useful to allow the sidebar to collapse fully.

Current behavior

  • Expanded: 250px default, drag-resizable between 150px and 400px through the resize handle.
  • Collapse toggle: switches to the layout-menu-slim state, a fixed 95px icon-only rail.
  • There is no state with width 0, and no configuration option to hide the sidebar.

References

  • app-menu.component.scss:25 (width: 250px) and app-menu.component.scss:39 (&.layout-menu-slim { width: 95px; }).
  • app-menu.component.ts:129 onMenuModeTogglerClick() toggles isMenuSlim; onResizeStart() at line 168 clamps the width to 150-400px.
  • MainMenuService defines isVisible and isCollapsed (main-menu.service.ts:7-8), but MainAppComponent only stores them (main-app.component.ts:31-37) and never binds them to the template, so they currently have no visible effect.

Requested
Allow the sidebar to collapse fully so the main workspace can use the full width. Keep the current 250px and 95px states in between. A fully collapsed state should remain discoverable and recoverable, for example through a thin edge handle, a keyboard shortcut, or a small floating expand button.

Use case
On smaller screens and during session-heavy workflows, the 95px icon rail still consumes space that cannot be reclaimed.

[!NOTE]
Human-tuned, LLM-assisted content.

Dominant language
Rust
Stars
161
Forks
28
Avg merge
3d 2h
Merged PRs (30d)
28

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Devolutions/devolutions-gateway

All issues in Devolutions/devolutions-gateway

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.