MCPcopy
hub / github.com/flet-dev/flet / TaskItemView

Function TaskItemView

sdk/python/examples/apps/declarative/todo/main.py:147–204  ·  view source on GitHub ↗
(task: TaskItem, delete_task, key=None)

Source from the content-addressed store, hash-verified

145
146@ft.component
147def TaskItemView(task: TaskItem, delete_task, key=None) -> ft.Control:
148 edit_mode, set_edit_mode = ft.use_state(False)
149 new_name, set_new_name = ft.use_state("")
150
151 def edit():
152 set_edit_mode(True)
153 set_new_name(task.name)
154
155 def complete_edit():
156 task.update_task(new_name)
157 set_edit_mode(False)
158
159 return (
160 ft.Row(
161 alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
162 vertical_alignment=ft.CrossAxisAlignment.CENTER,
163 controls=[
164 ft.Checkbox(
165 value=task.completed,
166 label=task.name,
167 on_change=lambda: task.toggle_task_status(),
168 ),
169 ft.Row(
170 spacing=0,
171 controls=[
172 ft.IconButton(
173 icon=ft.Icons.CREATE_OUTLINED,
174 tooltip="Edit To-Do",
175 on_click=edit,
176 ),
177 ft.IconButton(
178 ft.Icons.DELETE_OUTLINE,
179 tooltip="Delete To-Do",
180 on_click=lambda: delete_task(task),
181 ),
182 ],
183 ),
184 ],
185 )
186 if not edit_mode
187 else ft.Row(
188 alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
189 vertical_alignment=ft.CrossAxisAlignment.CENTER,
190 controls=[
191 ft.TextField(
192 value=new_name,
193 on_change=lambda e: set_new_name(e.control.value),
194 expand=1,
195 ),
196 ft.IconButton(
197 icon=ft.Icons.DONE_OUTLINE_OUTLINED,
198 icon_color=ft.Colors.GREEN,
199 tooltip="Update To-Do",
200 on_click=complete_edit,
201 ),
202 ],
203 )
204 )

Callers 1

TodoAppViewFunction · 0.70

Calls 2

delete_taskFunction · 0.85
toggle_task_statusMethod · 0.45

Tested by

no test coverage detected