fix(layout): persist sidebar collapse preference across reloads (#2764)

The app-layout Stimulus controller read this.userIdValue when saving
sidebar state but never declared a static values block, so Stimulus
did not bind data-app-layout-user-id-value. this.userIdValue was
undefined, and every toggle PATCHed /users/undefined, which could not
update show_sidebar or show_ai_sidebar. The preference was never
stored, so the layout reset on the next load.

Declare static values = { userId: String }. String is correct for
both UUID and integer ids since the value is only interpolated into
the request URL. The layout already renders the attribute and
UsersController#user_params already permits both fields, so the
update now completes.

Fixes #2473

Co-authored-by: agentloop <agentloop@localhost>
This commit is contained in:
pro3958
2026-07-29 22:20:32 -07:00
committed by GitHub
parent 150e659846
commit 8a441582f9

View File

@@ -3,6 +3,7 @@ import { Controller } from "@hotwired/stimulus";
// Connects to data-controller="dialog"
export default class extends Controller {
static targets = ["leftSidebar", "rightSidebar", "mobileSidebar"];
static values = { userId: String };
static classes = [
"expandedSidebar",
"collapsedSidebar",