26 lines
757 B
Python
26 lines
757 B
Python
# dashboard/callbacks/ui_callbacks.py
|
|
|
|
from dash import Input, Output, State, callback
|
|
from components.sidebar import Sidebar
|
|
|
|
@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,
|
|
)
|
|
def toggle_sidebar(n, data):
|
|
if n is None:
|
|
# Kein Klick, nichts ändern!
|
|
return data
|
|
collapsed = not data.get("collapsed", False)
|
|
return {"collapsed": collapsed} |