flet-mock-form / main.py
elsamueldev's picture
Upload 3 files
386e947
raw
history blame
1.46 kB
import flet as ft
from flet import TextField, ElevatedButton
from flet_core import ControlEvent
import flet_fastapi
async def main(page: ft.Page) -> None:
page.title = "Some form"
dlg = ft.AlertDialog(
title=ft.Text("This doesn't work yet!"), on_dismiss=lambda e: print("Dialog dismissed!")
)
async def open_dlg(e: ControlEvent):
page.dialog = dlg
dlg.open = True
await page.update_async()
question: TextField = TextField(label="Question", text_align=ft.TextAlign.LEFT, width=200)
answer: TextField = TextField(label="Answer", text_align=ft.TextAlign.LEFT, width=200)
button_submit: ElevatedButton = ElevatedButton(text="Send", disabled=True)
async def validate(e: ControlEvent) -> None:
if all((question.value, answer.value)):
button_submit.disabled = False
else:
button_submit.disabled = True
await page.update_async()
async def submit(e: ControlEvent) -> None:
await open_dlg(e)
question.on_change = validate
answer.on_change = validate
button_submit.on_click = submit
await page.add_async(
ft.Container(question, alignment=ft.alignment.center)
)
await page.add_async(
ft.Container(answer, alignment=ft.alignment.center)
)
await page.add_async(
ft.Container(button_submit, alignment=ft.alignment.center)
)
app = flet_fastapi.app(main) # type: ignore