|
import gradio as gr |
|
|
|
|
|
ingredients_list = [] |
|
|
|
|
|
|
|
def add_ingredient(ingredient, quantity): |
|
if ingredient and quantity > 0: |
|
ingredients_list.append(f"{ingredient}: {quantity} grams") |
|
return ( |
|
"\n".join(ingredients_list), |
|
gr.update(value="", interactive=True), |
|
gr.update(value=None, interactive=True), |
|
) |
|
|
|
|
|
|
|
def validate_inputs(ingredient, quantity): |
|
if ingredient and quantity > 0: |
|
return gr.update(interactive=True) |
|
return gr.update(interactive=False) |
|
|
|
|
|
|
|
def app(): |
|
with gr.Blocks() as demo: |
|
with gr.Row(): |
|
ingredient_input = gr.Textbox( |
|
label="Ingredient", placeholder="Enter ingredient name" |
|
) |
|
quantity_input = gr.Number(label="Quantity (grams)", value=None) |
|
|
|
add_button = gr.Button("Add Ingredient", interactive=False) |
|
output = gr.Textbox(label="Ingredients List", lines=10, interactive=False) |
|
|
|
|
|
ingredient_input.change( |
|
validate_inputs, [ingredient_input, quantity_input], add_button |
|
) |
|
quantity_input.change( |
|
validate_inputs, [ingredient_input, quantity_input], add_button |
|
) |
|
|
|
|
|
add_button.click( |
|
add_ingredient, |
|
[ingredient_input, quantity_input], |
|
[output, ingredient_input, quantity_input], |
|
) |
|
|
|
return demo |
|
|
|
|
|
demo = app() |
|
demo.launch() |
|
|