Files
dash-api/src/components/layout.py

48 lines
1.7 KiB
Python
Raw Normal View History

2023-12-31 07:36:28 +01:00
import pandas as pd
from dash import Dash, dcc, html
2023-12-31 07:36:28 +01:00
from src.components import (
bar_chart,
2025-09-05 05:46:52 +02:00
data_table,
2023-12-31 07:36:28 +01:00
year_dropdown,
week_dropdown,
2025-09-06 07:27:08 +02:00
category_dropdown,
feedback_tab,
explanation_tab,
2023-12-31 07:36:28 +01:00
)
def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
tab_content_style = {'height': 'calc(100vh - 220px)', 'overflowY': 'auto', 'padding': '15px'}
2023-12-31 07:36:28 +01:00
return html.Div(
className="app-div",
children=[
html.H1(app.title),
html.Hr(),
dcc.Tabs(id="tabs", value='tab-dashboard', children=[
dcc.Tab(label='Dashboard', value='tab-dashboard', children=[
html.Div(style=tab_content_style, children=[
html.Div(
className="dropdown-container",
children=[
year_dropdown.render(app, data),
week_dropdown.render(app, data),
category_dropdown.render(app, data),
],
),
bar_chart.render(app, data),
data_table.render(app, data),
])
]),
dcc.Tab(label='Feedback', value='tab-feedback', children=[
html.Div(style=tab_content_style, children=[
feedback_tab.render(app)
])
]),
dcc.Tab(label='Explanation', value='tab-explanation', children=[
html.Div(style=tab_content_style, children=[
explanation_tab.render(app)
])
]),
]),
2023-12-31 07:36:28 +01:00
],
)