Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| with gr.Blocks() as demo: | |
| tasks = gr.State([]) | |
| new_task = gr.Textbox(label="Task Name", autofocus=True) | |
| def add_task(tasks, new_task_name): | |
| return tasks + [{"name": new_task_name, "complete": False}], "" | |
| new_task.submit(add_task, [tasks, new_task], [tasks, new_task]) | |
| def render_todos(task_list): | |
| complete = [task for task in task_list if task["complete"]] | |
| incomplete = [task for task in task_list if not task["complete"]] | |
| gr.Markdown(f"### Incomplete Tasks ({len(incomplete)})") | |
| for task in incomplete: | |
| with gr.Row(): | |
| gr.Textbox(task['name'], show_label=False, container=False) | |
| done_btn = gr.Button("Done", scale=0) | |
| def mark_done(task=task): | |
| task["complete"] = True | |
| return task_list | |
| done_btn.click(mark_done, None, [tasks]) | |
| delete_btn = gr.Button("Delete", scale=0, variant="stop") | |
| def delete(task=task): | |
| task_list.remove(task) | |
| return task_list | |
| delete_btn.click(delete, None, [tasks]) | |
| gr.Markdown(f"### Complete Tasks ({len(complete)})") | |
| for task in complete: | |
| gr.Textbox(task['name'], show_label=False, container=False) | |
| if __name__ == "__main__": | |
| demo.launch(share=True) |