openfree commited on
Commit
bd3350d
·
verified ·
1 Parent(s): f719a34

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -6
app.py CHANGED
@@ -547,6 +547,40 @@ def execute_code(query: str):
547
  # ------------------------
548
  # 6) 데모 클래스
549
  # ------------------------
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
550
 
551
  class Demo:
552
  def __init__(self):
@@ -880,11 +914,8 @@ with gr.Blocks(css_paths=["app.css"], theme=theme) as demo:
880
  )
881
  gr.HTML('<div class="help-text">💡 원하는 게임의 설명을 입력하세요. 예: "테트리스 게임 제작해줘."</div>')
882
 
883
-
884
- deploy_result_container = gr.Markdown(
885
- value="", # 첫 화면은 비워 두기
886
- visible=False
887
- )
888
 
889
 
890
  # Code Drawer 열기/닫기
@@ -934,7 +965,11 @@ with gr.Blocks(css_paths=["app.css"], theme=theme) as demo:
934
  outputs=[deploy_result_container]
935
  )
936
 
937
-
 
 
 
 
938
 
939
  # ------------------------
940
  # 9) 실행
 
547
  # ------------------------
548
  # 6) 데모 클래스
549
  # ------------------------
550
+ # ── deploy 버튼용 함수 새로 작성 ─────────────────────────────
551
+ def deploy_and_show(code_md: str):
552
+ # 1) 코드 정리 & 배포
553
+ clean = remove_code_block(code_md)
554
+ result = deploy_to_vercel(clean)
555
+
556
+ url_match = re.search(r"https?://[\\w-]+\\.vercel\\.app", result)
557
+ if url_match: # ── 성공 ──
558
+ url = url_match.group(0)
559
+
560
+ # ① 오른쪽 메시지(마크다운)
561
+ md = f"✅ **배포 완료!**\n\n➡️ [열기]({url})"
562
+
563
+ # ② 왼쪽 iframe
564
+ iframe = (
565
+ f"<iframe src='{url}' width='100%' height='920px' "
566
+ "style='border:none;'></iframe>"
567
+ )
568
+
569
+ # state_tab : 'render' 로 전환
570
+ return (
571
+ gr.update(value=md, visible=True), # deploy_result_container
572
+ iframe, # sandbox
573
+ gr.update(active_key='render') # state_tab
574
+ )
575
+ # ── 실패 ──
576
+ md = f"❌ **배포 실패**\n\n```\n{result}\n```"
577
+ return (
578
+ gr.update(value=md, visible=True),
579
+ None,
580
+ gr.update(active_key='empty')
581
+ )
582
+
583
+
584
 
585
  class Demo:
586
  def __init__(self):
 
914
  )
915
  gr.HTML('<div class="help-text">💡 원하는 게임의 설명을 입력하세요. 예: "테트리스 게임 제작해줘."</div>')
916
 
917
+ deploy_result_container = gr.Markdown(value="", visible=False)
918
+
 
 
 
919
 
920
 
921
  # Code Drawer 열기/닫기
 
965
  outputs=[deploy_result_container]
966
  )
967
 
968
+ deploy_btn.click(
969
+ fn=deploy_and_show,
970
+ inputs=[code_output],
971
+ outputs=[deploy_result_container, sandbox, state_tab]
972
+ )
973
 
974
  # ------------------------
975
  # 9) 실행