Spaces:
Running
Running
File size: 2,217 Bytes
b560569 506f1ee b560569 751e28f a0b418d b560569 751e28f e1e0cc1 b560569 0f9e24f a0b418d 751e28f b560569 751e28f b560569 0f9e24f 6e2376b 734a45c 0f9e24f 6e2376b 734a45c 506f1ee b560569 6e2376b b560569 751e28f 0f9e24f 6e2376b 94fc4da 734a45c 6e2376b e3447a5 e1e0cc1 d45a226 dde01bf e1e0cc1 7ab0240 6e2376b |
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 |
import gradio as gr
from Data_Fetching_&_Rendering import fetch_org_urn
# shared state
token_received = {"status": False, "token": "", "client_id": ""}
# 1) this will be called by POST
def receive_token(accessToken: dict, client_id: str):
token_received["status"] = True
token_received["token"] = accessToken
token_received["client_id"] = client_id
return {"status": "ok"}
# 2) this just drives your UI
def check_status():
return "β
Code received" if token_received["status"] else "β Code not received"
def show_token():
return token_received["token"] if token_received["status"] else ""
def show_client_id():
return token_received["client_id"] if token_received["status"] else ""
def reset_status():
token_received["status"] = False
token_received["token"] = ""
token_received["client_id"] = ""
return "β Code not received", "", ""
urn, name = fetch_org_urn(token_received["client_id"], token_received["token"])
with gr.Blocks() as demo:
hidden_token = gr.Textbox(visible=False, elem_id="hidden_token")
hidden_client_id = gr.Textbox(visible=False, elem_id="hidden_client_id")
hidden_btn = gr.Button(visible=False, elem_id="hidden_btn")
hidden_btn.click(fn=receive_token, inputs=[hidden_token, hidden_client_id], outputs=[])
status_box = gr.Textbox(value=check_status(), label="Token Status", interactive=False)
token_display = gr.Textbox(value=show_token(), label="Received Token", interactive=False)
client_id_display = gr.Textbox(value=show_client_id(), label="Client ID", interactive=False)
with gr.Row():
refresh = gr.Button("Refresh").click(fn=check_status, outputs=status_box)
reset = gr.Button("Reset Status").click(fn=reset_status, outputs=[status_box, token_display, client_id_display])
with gr.Row():
urn_display = gr.Textbox(value=urn, interactive=False)
name_display = gr.Textbox(value=name, interactive=False)
# β
Correct usage of Timer
timer = gr.Timer(1.0)
timer.tick(fn=show_token, outputs=token_display)
timer.tick(fn=show_client_id, outputs=client_id_display)
timer.tick(outputs=urn_display)
demo.launch(server_name="0.0.0.0", server_port=7860) |