Spaces:
Running
Running
File size: 1,226 Bytes
45df88a 80014f2 45df88a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
from dataclasses import field
from datetime import date
import mesop as me
@me.stateclass
class State:
picked_date: date | None = field(default_factory=lambda: date(2024, 10, 1))
def on_load(e: me.LoadEvent):
me.set_theme_mode("system")
@me.page(
path="/date_picker",
security_policy=me.SecurityPolicy(
allowed_iframe_parents=["https://google.github.io", "https://huggingface.co."]
),
on_load=on_load,
)
def app():
state = me.state(State)
with me.box(
style=me.Style(
display="flex",
flex_direction="column",
gap=15,
padding=me.Padding.all(15),
)
):
me.date_picker(
label="Date",
disabled=False,
placeholder="9/1/2024",
required=True,
value=state.picked_date,
readonly=False,
hide_required_marker=False,
color="accent",
float_label="always",
appearance="outline",
on_change=on_date_change,
)
me.text("Selected date: " + _render_date(state.picked_date))
def on_date_change(e: me.DatePickerChangeEvent):
state = me.state(State)
state.picked_date = e.date
def _render_date(maybe_date: date | None) -> str:
if maybe_date:
return maybe_date.strftime("%Y-%m-%d")
return "None"
|