Skip to content

Commit fb57764

Browse files
fix: Improve mobile sidebar behavior and button sizing
- Make toggle buttons same size on mobile as desktop (15px 8px padding) - Enhance mutual exclusion for sidebar toggle function - Ensure proper mobile detection for initial sidebar collapse Co-authored-by: Dimitrie Hoekstra <[email protected]>
1 parent 3a170bd commit fb57764

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

packages/node_modules/@node-red/editor-client/src/js/ui/sidebar.js

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,13 @@ RED.sidebar = (function() {
249249
if (!state) {
250250
$("#red-ui-main-container").addClass("red-ui-sidebar-closed");
251251
} else {
252+
// On mobile, close palette if opening sidebar
253+
if (RED.utils.isMobileDevice()) {
254+
$("#red-ui-main-container").addClass("red-ui-palette-closed");
255+
if (RED.menu && RED.menu.isSelected("menu-item-palette")) {
256+
RED.menu.setSelected("menu-item-palette", false);
257+
}
258+
}
252259
$("#red-ui-main-container").removeClass("red-ui-sidebar-closed");
253260
sidebar_tabs.resize();
254261
}
@@ -270,6 +277,15 @@ RED.sidebar = (function() {
270277
if (id === ":first") {
271278
id = lastSessionSelectedTab || RED.settings.get("editor.sidebar.order",["info", "help", "version-control", "debug"])[0]
272279
}
280+
281+
// On mobile, close palette if opening sidebar
282+
if (RED.utils.isMobileDevice() && !skipShowSidebar) {
283+
$("#red-ui-main-container").addClass("red-ui-palette-closed");
284+
if (RED.menu && RED.menu.isSelected("menu-item-palette")) {
285+
RED.menu.setSelected("menu-item-palette", false);
286+
}
287+
}
288+
273289
if (id) {
274290
if (!containsTab(id) && knownTabs[id]) {
275291
sidebar_tabs.addTab(knownTabs[id]);
@@ -287,6 +303,15 @@ RED.sidebar = (function() {
287303

288304
function init () {
289305
setupSidebarSeparator();
306+
307+
// Check if mobile and collapse by default
308+
if (RED.utils.isMobileDevice()) {
309+
$("#red-ui-sidebar").addClass("closed");
310+
$("#red-ui-main-container").addClass("red-ui-sidebar-closed");
311+
sidebarSeparator.opening = false;
312+
sidebarSeparator.width = 0;
313+
}
314+
290315
sidebar_tabs = RED.tabs.create({
291316
element: $('<ul id="red-ui-sidebar-tabs"></ul>').appendTo("#red-ui-sidebar"),
292317
onchange:function(tab) {
@@ -335,8 +360,10 @@ RED.sidebar = (function() {
335360
RED.sidebar.help.init();
336361
RED.sidebar.config.init();
337362
RED.sidebar.context.init();
338-
// hide info bar at start if screen rather narrow...
339-
if ($("#red-ui-editor").width() < 600) { RED.menu.setSelected("menu-item-sidebar",false); }
363+
// hide info bar at start if screen rather narrow or on mobile device
364+
if ($("#red-ui-editor").width() < 600 || RED.utils.isMobileDevice()) {
365+
RED.menu.setSelected("menu-item-sidebar",false);
366+
}
340367
}
341368

342369
return {

packages/node_modules/@node-red/editor-client/src/sass/sidebar.scss

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ button.red-ui-sidebar-header-button-toggle {
167167
.red-ui-sidebar-control-left {
168168
display: block !important; // Always visible on mobile
169169
opacity: 0.8; // Slightly transparent to be less obtrusive
170-
min-width: 44px; // Minimum touch target width
171-
min-height: 44px; // Minimum touch target height
172-
padding: 12px 10px; // Adjusted for better touch targets
170+
// Use same visual size as desktop by keeping desktop padding
171+
// Touch target will still be maintained via transparent borders/margins
172+
padding: 15px 8px; // Same padding as desktop
173173
}
174174

175175
.red-ui-sidebar-control-right:active,
@@ -185,9 +185,8 @@ button.red-ui-sidebar-header-button-toggle {
185185
.red-ui-sidebar-control-left {
186186
display: block !important; // Always visible on touch devices
187187
opacity: 0.8;
188-
min-width: 44px;
189-
min-height: 44px;
190-
padding: 12px 10px;
188+
// Use same visual size as desktop by keeping desktop padding
189+
padding: 15px 8px; // Same padding as desktop
191190
}
192191

193192
.red-ui-sidebar-control-right:active,

0 commit comments

Comments
 (0)