-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp1.py
More file actions
126 lines (104 loc) · 2.75 KB
/
app1.py
File metadata and controls
126 lines (104 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
import dash_mantine_components as dmc
from dash import Dash, _dash_renderer, dcc
from dash_iconify import DashIconify
_dash_renderer._set_react_version("18.2.0") # for mantine
print("------- Loading app ------ ")
# Simplified to just one list
sample_list_data = {
"title": "My Tasks",
"tasks_list": [
{
"content": "Task A",
"checked": True,
},
{
"content": "Task B",
"checked": False,
},
{
"content": "Task C",
"checked": False,
},
],
}
def get_task(task_dict):
""" Returns a single task layout """
text = task_dict["content"]
checked = task_dict["checked"]
content = dmc.Grid(
[
dmc.GridCol(
dmc.Checkbox(
checked=checked,
mt=2
),
span="content"
),
dmc.GridCol(
dmc.Text(
dcc.Input(
text,
className="shadow-input",
debounce=True
)
),
span="auto"
),
dmc.GridCol(
dmc.ActionIcon(
DashIconify(icon="tabler:x", width=20),
variant="transparent",
color="gray",
className="task-del-button"
),
span="content"
),
],
className="task-container"
)
return content
def get_tasks_layout(tasks_list):
""" Returns the list of tasks """
tasks = []
for task_dict in tasks_list:
task_layout = get_task(task_dict)
tasks.append(task_layout)
return tasks
def get_list_layout(list_data):
""" Returns the list of checkboxes """
tasks_layout = get_tasks_layout(list_data["tasks_list"])
content = dmc.Paper(
[
dmc.Title(list_data["title"], order=2),
dmc.Container(
tasks_layout,
id="main_task_container",
px=0,
mt="md",
mb="md",
),
dmc.Button(
"Add a new task",
id="new_task_button",
style={"width": "100%"},
variant="outline",
color="gray",
)
],
shadow="sm",
p="md",
mt="md",
radius="sm",
)
return content
app = Dash(__name__)
# Simplified app layout
app.layout = dmc.MantineProvider(
dmc.Container(
get_list_layout(sample_list_data),
size=400,
mt="md"
)
)
if __name__ == '__main__':
app.run_server(debug=True)