Skip to content

Commit 4f3aa6d

Browse files
committed
feat: add sidebar collapse/expand toggle button in titlebar
Adds a « / » button before the File menu that toggles sidebar visibility. Shows context-aware tooltip (Hide/Show Sidebar) and updates icon direction on panelCollapsed/panelExpanded events.
1 parent ca975f4 commit 4f3aa6d

File tree

2 files changed

+51
-0
lines changed

2 files changed

+51
-0
lines changed

src/command/Menus.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,6 +1778,35 @@ define(function (require, exports, module) {
17781778
const $hamburgerToggle = $hamburger.find(".hamburger-toggle");
17791779
let _activeSubmenuId = null;
17801780

1781+
// Sidebar collapse/expand toggle button before the File menu
1782+
const $sidebarToggle = $(`<li class="sidebar-toggle-btn" id="sidebar-toggle-btn">
1783+
<a href="#">
1784+
<i class="fa-solid fa-angles-left"></i>
1785+
</a>
1786+
</li>`);
1787+
$menubar.prepend($sidebarToggle);
1788+
const $sidebarIcon = $sidebarToggle.find("a");
1789+
1790+
function _updateSidebarToggleIcon() {
1791+
const isVisible = $("#sidebar").is(":visible");
1792+
if (isVisible) {
1793+
$sidebarIcon.html('<i class="fa-solid fa-angles-left"></i>');
1794+
$sidebarIcon.attr("title", Strings.CMD_HIDE_SIDEBAR);
1795+
} else {
1796+
$sidebarIcon.html('<i class="fa-solid fa-angles-right"></i>');
1797+
$sidebarIcon.attr("title", Strings.CMD_SHOW_SIDEBAR);
1798+
}
1799+
}
1800+
1801+
$sidebarIcon.on("click", function (e) {
1802+
e.preventDefault();
1803+
e.stopPropagation();
1804+
CommandManager.execute(Commands.VIEW_HIDE_SIDEBAR);
1805+
});
1806+
1807+
$("#sidebar").on("panelCollapsed panelExpanded", _updateSidebarToggleIcon);
1808+
_updateSidebarToggleIcon();
1809+
17811810
function _resetMenuItemStyles($menuItem) {
17821811
const menu = menuMap[$menuItem.attr("id")];
17831812
if (menu) {

src/styles/brackets_patterns_override.less

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,28 @@ a:focus {
211211
animation: none;
212212
}
213213
}
214+
.nav .sidebar-toggle-btn {
215+
float: left;
216+
a {
217+
display: inline-block;
218+
padding: @menubar-top-padding 6px @menubar-bottom-padding;
219+
border: 1px solid transparent;
220+
font-size: @menu-item-font-size;
221+
color: fadeout(@bc-menu-text, 50%);
222+
cursor: default;
223+
outline: none;
224+
.dark & {
225+
color: fadeout(@dark-bc-menu-text, 50%);
226+
}
227+
&:hover {
228+
color: @bc-menu-text;
229+
.dark & {
230+
color: @dark-bc-menu-text;
231+
}
232+
}
233+
}
234+
}
235+
214236
.nav .hamburger-menu {
215237
float: left;
216238
.hamburger-toggle, .hamburger-toggle:hover, .hamburger-toggle:focus {

0 commit comments

Comments
 (0)