Spaces:
Running
Running
| import mesop as me | |
| class FeedbackState: | |
| feedback: str = "" | |
| reason: str = "" | |
| ask_reason: bool = False | |
| def on_feedback(isup: bool): | |
| state = me.state(FeedbackState) | |
| state.feedback = "Thumbs up!" if isup else "Thumbs down!" | |
| state.ask_reason = not isup | |
| def on_reason_input(e: me.InputEvent): | |
| state = me.state(FeedbackState) | |
| state.reason = e.value | |
| def load(e: me.LoadEvent): | |
| me.set_theme_mode("system") | |
| def feedback_page(): | |
| state = me.state(FeedbackState) | |
| with me.box(style=me.Style(margin=me.Margin.all(15))): | |
| me.text("Provide your feedback:", type="headline-5") | |
| with me.box(style=me.Style(display="flex", flex_direction="row", gap=20)): | |
| with me.content_button(type="icon", on_click=lambda _: on_feedback(True)): | |
| me.icon("thumb_up") | |
| with me.content_button( | |
| type="icon", on_click=lambda _: on_feedback(False) | |
| ): | |
| me.icon("thumb_down") | |
| if state.ask_reason: | |
| with me.box(style=me.Style(margin=me.Margin(top=15))): | |
| me.textarea(label="Tell us why", on_input=on_reason_input) | |
| if state.feedback: | |
| with me.box(style=me.Style(margin=me.Margin(top=15))): | |
| me.text(f"\n\nFeedback : {state.feedback}") | |
| if state.reason: | |
| me.text(f"Reason : {state.reason}") | |