Spaces:
Running
Running
import gradio as gr | |
import modelscope_studio.components.antd as antd | |
import modelscope_studio.components.antdx as antdx | |
import modelscope_studio.components.base as ms | |
items = [ | |
{ | |
"label": 'Write a report', | |
"value": 'report' | |
}, | |
{ | |
"label": 'Draw a picture', | |
"value": 'draw' | |
}, | |
{ | |
"label": 'Check some knowledge', | |
"value": 'knowledge', | |
"extra": 'Extra Info', | |
}, | |
] | |
def select_suggestion(e: gr.EventData): | |
return gr.update(value=e._data["payload"][0]) | |
with gr.Blocks() as demo: | |
with ms.Application(): | |
with antdx.XProvider(): | |
antd.Typography.Paragraph( | |
"Set `block` to display in a whole row. `extra` can be used to configure additional information." | |
) | |
with antdx.Suggestion( | |
items=items, | |
block=True, | |
# onKeyDown Handler in Javascript | |
should_trigger="""(e, { onTrigger, onKeyDown }) => { | |
switch(e.key) { | |
case '/': | |
onTrigger() | |
break | |
case 'ArrowRight': | |
case 'ArrowLeft': | |
case 'ArrowUp': | |
case 'ArrowDown': | |
break; | |
default: | |
onTrigger(false) | |
} | |
onKeyDown(e) | |
}""") as suggestion: | |
with ms.Slot("children"): | |
sender = antdx.Sender( | |
placeholder="Enter / to get suggestions") | |
suggestion.select(fn=select_suggestion, outputs=[sender]) | |
if __name__ == "__main__": | |
demo.queue().launch() | |