lab2 / app.py
jedeland's picture
test app
bee75d0
raw
history blame
1.47 kB
import gradio as gr
# Function to dynamically add new text fields
def add_text_field(inputs):
inputs.append("")
return gr.update(visible=True), inputs
# Function to aggregate all inputs into a list
def process_ingredients(*ingredients):
return [ingredient for ingredient in ingredients if ingredient]
def app():
with gr.Blocks() as demo:
inputs = [] # Shared list to store ingredients
# Container to hold text fields
ingredient_fields = gr.Row(visible=True)
# Buttons for adding and submitting
with gr.Row():
add_button = gr.Button("+ Add Ingredient")
submit_button = gr.Button("Submit")
# Output field for displaying the list
output = gr.Textbox(label="Ingredients List", interactive=False)
# Function to add a new ingredient field
def add_field():
inputs.append("") # Add a new placeholder for the new input
with ingredient_fields:
for i, ingredient in enumerate(inputs):
inputs[i] = gr.Textbox(
value=inputs[i], label=f"Ingredient {i + 1}"
).value
# Function to submit
def submit_list():
return process_ingredients(*inputs)
# Click logic for the buttons
add_button.click(fn=add_field)
submit_button.click(fn=submit_list, outputs=output)
return demo
demo = app()
demo.launch()