From 52d170e36c3b84c4658213ccb7ef86095ec2eb81 Mon Sep 17 00:00:00 2001 From: Zach Gollwitzer Date: Wed, 9 Apr 2025 12:42:46 -0400 Subject: [PATCH] Mobile responsive template preparation (#2071) * Mobile responsive template * Fix sidebar mobile conflict * Lint fix --- .../controllers/sidebar_controller.js | 25 ++- app/views/layouts/application.html.erb | 148 ++++++++++++------ .../layouts/shared/_breadcrumbs.html.erb | 4 +- app/views/layouts/shared/_htmldoc.html.erb | 4 +- app/views/layouts/sidebar/_nav_item.html.erb | 6 +- app/views/users/_user_menu.html.erb | 4 +- 6 files changed, 117 insertions(+), 74 deletions(-) diff --git a/app/javascript/controllers/sidebar_controller.js b/app/javascript/controllers/sidebar_controller.js index 5e51a01c..a46794e3 100644 --- a/app/javascript/controllers/sidebar_controller.js +++ b/app/javascript/controllers/sidebar_controller.js @@ -7,7 +7,7 @@ export default class extends Controller { config: Object, }; - static targets = ["leftPanel", "rightPanel", "content"]; + static targets = ["leftPanel", "leftPanelMobile", "rightPanel", "content"]; initialize() { this.leftPanelOpen = this.configValue.left_panel.is_open; @@ -20,6 +20,16 @@ export default class extends Controller { this.#persistPreference("show_sidebar", this.leftPanelOpen); } + toggleLeftPanelMobile() { + if (this.leftPanelOpen) { + this.leftPanelMobileTarget.classList.remove("hidden"); + this.leftPanelOpen = false; + } else { + this.leftPanelMobileTarget.classList.add("hidden"); + this.leftPanelOpen = true; + } + } + toggleRightPanel() { this.rightPanelOpen = !this.rightPanelOpen; this.#updatePanelWidths(); @@ -27,7 +37,6 @@ export default class extends Controller { } #updatePanelWidths() { - this.contentTarget.style.maxWidth = `${this.#contentMaxWidth()}px`; this.leftPanelTarget.style.width = `${this.#leftPanelWidth()}px`; this.rightPanelTarget.style.width = `${this.#rightPanelWidth()}px`; this.rightPanelTarget.style.overflow = this.#rightPanelOverflow(); @@ -61,18 +70,6 @@ export default class extends Controller { return "hidden"; } - #contentMaxWidth() { - if (!this.leftPanelOpen && !this.rightPanelOpen) { - return 1024; - } - - if (this.leftPanelOpen && !this.rightPanelOpen) { - return 896; - } - - return 768; - } - #persistPreference(field, value) { fetch(`/users/${this.userIdValue}`, { method: "PATCH", diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d250f1e8..356484ee 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -1,18 +1,36 @@ <%= render "layouts/shared/htmldoc" do %> <% sidebar_config = app_sidebar_config(Current.user) %> -
-