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

Function TaskItemView

sdk/python/examples/apps/studio_gallery/todo.py:81–138  ·  view source on GitHub ↗
(task: TaskItem, delete_task, key=None)

Source from the content-addressed store, hash-verified

79
80@ft.component
81def TaskItemView(task: TaskItem, delete_task, key=None) -> ft.Control:
82 edit_mode, set_edit_mode = ft.use_state(False)
83 new_name, set_new_name = ft.use_state("")
84
85 def edit():
86 set_edit_mode(True)
87 set_new_name(task.name)
88
89 def complete_edit():
90 task.update_task(new_name)
91 set_edit_mode(False)
92
93 return (
94 ft.Row(
95 alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
96 vertical_alignment=ft.CrossAxisAlignment.CENTER,
97 controls=[
98 ft.Checkbox(
99 value=task.completed,
100 label=task.name,
101 on_change=lambda: task.toggle_task_status(),
102 ),
103 ft.Row(
104 spacing=0,
105 controls=[
106 ft.IconButton(
107 icon=ft.Icons.CREATE_OUTLINED,
108 tooltip="Edit To-Do",
109 on_click=edit,
110 ),
111 ft.IconButton(
112 ft.Icons.DELETE_OUTLINE,
113 tooltip="Delete To-Do",
114 on_click=lambda: delete_task(task),
115 ),
116 ],
117 ),
118 ],
119 )
120 if not edit_mode
121 else ft.Row(
122 alignment=ft.MainAxisAlignment.SPACE_BETWEEN,
123 vertical_alignment=ft.CrossAxisAlignment.CENTER,
124 controls=[
125 ft.TextField(
126 value=new_name,
127 on_change=lambda e: set_new_name(e.control.value),
128 expand=1,
129 ),
130 ft.IconButton(
131 icon=ft.Icons.DONE_OUTLINE_OUTLINED,
132 icon_color=ft.Colors.GREEN,
133 tooltip="Update To-Do",
134 on_click=complete_edit,
135 ),
136 ],
137 )
138 )

Callers 1

AppFunction · 0.70

Calls 2

delete_taskFunction · 0.85
toggle_task_statusMethod · 0.45

Tested by

no test coverage detected