Spaces:
Runtime error
Runtime error
import gradio as gr | |
def define_gui_floating_menu(customize_btns, functional, predefined_btns, cookies, web_cookie_cache): | |
with gr.Floating(init_x="20%", init_y="50%", visible=False, width="40%", drag="top") as area_input_secondary: | |
with gr.Accordion("浮动输入区", open=True, elem_id="input-panel2"): | |
with gr.Row() as row: | |
row.style(equal_height=True) | |
with gr.Column(scale=10): | |
txt2 = gr.Textbox(show_label=False, placeholder="Input question here.", | |
elem_id='user_input_float', lines=8, label="输入区2").style(container=False) | |
txt2.submit(None, None, None, _js="""click_real_submit_btn""") | |
with gr.Column(scale=1, min_width=40): | |
submitBtn2 = gr.Button("提交", variant="primary"); submitBtn2.style(size="sm") | |
submitBtn2.click(None, None, None, _js="""click_real_submit_btn""") | |
resetBtn2 = gr.Button("重置", variant="secondary"); resetBtn2.style(size="sm") | |
stopBtn2 = gr.Button("停止", variant="secondary"); stopBtn2.style(size="sm") | |
clearBtn2 = gr.Button("清除", elem_id="elem_clear2", variant="secondary", visible=False); clearBtn2.style(size="sm") | |
with gr.Floating(init_x="20%", init_y="50%", visible=False, width="40%", drag="top") as area_customize: | |
with gr.Accordion("自定义菜单", open=True, elem_id="edit-panel"): | |
with gr.Row() as row: | |
with gr.Column(scale=10): | |
AVAIL_BTN = [btn for btn in customize_btns.keys()] + [k for k in functional] | |
basic_btn_dropdown = gr.Dropdown(AVAIL_BTN, value="自定义按钮1", label="选择一个需要自定义基础功能区按钮").style(container=False) | |
basic_fn_title = gr.Textbox(show_label=False, placeholder="输入新按钮名称", lines=1).style(container=False) | |
basic_fn_prefix = gr.Textbox(show_label=False, placeholder="输入新提示前缀", lines=4).style(container=False) | |
basic_fn_suffix = gr.Textbox(show_label=False, placeholder="输入新提示后缀", lines=4).style(container=False) | |
with gr.Column(scale=1, min_width=70): | |
basic_fn_confirm = gr.Button("确认并保存", variant="primary"); basic_fn_confirm.style(size="sm") | |
basic_fn_clean = gr.Button("恢复默认", variant="primary"); basic_fn_clean.style(size="sm") | |
from shared_utils.cookie_manager import assign_btn__fn_builder | |
assign_btn = assign_btn__fn_builder(customize_btns, predefined_btns, cookies, web_cookie_cache) | |
# update btn | |
h = basic_fn_confirm.click(assign_btn, [web_cookie_cache, cookies, basic_btn_dropdown, basic_fn_title, basic_fn_prefix, basic_fn_suffix], | |
[web_cookie_cache, cookies, *customize_btns.values(), *predefined_btns.values()]) | |
h.then(None, [web_cookie_cache], None, _js="""(web_cookie_cache)=>{setCookie("web_cookie_cache", web_cookie_cache, 365);}""") | |
# clean up btn | |
h2 = basic_fn_clean.click(assign_btn, [web_cookie_cache, cookies, basic_btn_dropdown, basic_fn_title, basic_fn_prefix, basic_fn_suffix, gr.State(True)], | |
[web_cookie_cache, cookies, *customize_btns.values(), *predefined_btns.values()]) | |
h2.then(None, [web_cookie_cache], None, _js="""(web_cookie_cache)=>{setCookie("web_cookie_cache", web_cookie_cache, 365);}""") | |
return area_input_secondary, txt2, area_customize, submitBtn2, resetBtn2, clearBtn2, stopBtn2 |