sidebar working as expected
modalbox working as expected
This commit is contained in:
@@ -3,29 +3,24 @@
|
||||
from dash import Input, Output, State, callback
|
||||
from components.sidebar import Sidebar
|
||||
|
||||
# 1) Toggle-Callback: Umschalten von collapsed = False ↔ True
|
||||
@callback(
|
||||
Output("sidebar", "children"),
|
||||
Output("sidebar", "className"),
|
||||
Input("sidebar-state", "data"),
|
||||
)
|
||||
def render_sidebar(data):
|
||||
collapsed = data.get("collapsed", False)
|
||||
return Sidebar(collapsed=collapsed), f"sidebar{' collapsed' if collapsed else ''}"
|
||||
|
||||
@callback(
|
||||
Output("sidebar-state", "data"),
|
||||
Input("btn-toggle-sidebar", "n_clicks"),
|
||||
State("sidebar-state", "data"),
|
||||
prevent_initial_call=True
|
||||
prevent_initial_call=True,
|
||||
)
|
||||
def toggle_sidebar(n_clicks, state):
|
||||
# Wenn der Button geklickt wurde, invertiere den collapsed-Wert
|
||||
collapsed = state.get("collapsed", False)
|
||||
return {"collapsed": not collapsed}
|
||||
|
||||
|
||||
# 2) Render-Callback: Zeichnet die Sidebar neu und setzt die CSS-Klasse
|
||||
@callback(
|
||||
[Output("sidebar", "children"), Output("sidebar", "className")],
|
||||
Input("sidebar-state", "data")
|
||||
)
|
||||
def render_sidebar(state):
|
||||
collapsed = state.get("collapsed", False)
|
||||
sidebar_class = "sidebar collapsed" if collapsed else "sidebar"
|
||||
|
||||
# Sidebar() gibt jetzt nur den Inhalt zurück
|
||||
sidebar_content = Sidebar(collapsed=collapsed)
|
||||
|
||||
return sidebar_content, sidebar_class
|
||||
def toggle_sidebar(n, data):
|
||||
if n is None:
|
||||
# Kein Klick, nichts ändern!
|
||||
return data
|
||||
collapsed = not data.get("collapsed", False)
|
||||
return {"collapsed": collapsed}
|
||||
Reference in New Issue
Block a user