lamgamepro1 commited on
Commit
7aaf5c0
·
verified ·
1 Parent(s): ee85042

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -27
app.py CHANGED
@@ -176,8 +176,10 @@ def tts_engine(text):
176
  def toggle_sidebar():
177
  return gr.update(visible=True, elem_classes="sidebar-mobile open")
178
 
179
- def login_event(username):
180
- if username:
 
 
181
  user_id = get_user_id(username)
182
  user_html = f"""
183
  <div class='user-card'>
@@ -192,23 +194,17 @@ def login_event(username):
192
  def load_history_buttons(store, username):
193
  user_id = get_user_id(username)
194
  if user_id in store and "workspaces" in store[user_id]:
195
- return [
196
- gr.Button(
197
- f"💬 {data['title']} ({len(data['history'])//2} tin)",
198
- elem_classes="hist-btn"
199
- ) for sid, data in sorted(store[user_id]["workspaces"].items(),
200
- key=lambda x: x[1]["created"], reverse=True)
201
- ]
202
- return []
 
203
 
204
- def load_workspace(store, session_id, username):
205
- user_id = get_user_id(username)
206
- if user_id in store and session_id in store[user_id]["workspaces"]:
207
- history = store[user_id]["workspaces"][session_id]["history"]
208
- return history, session_id
209
- return [], session_id
210
-
211
- # 5. GIAO DIỆN CHÍNH
212
  with gr.Blocks(title="NodeAI Genesis Pro") as demo:
213
  chat_store = gr.State(load_db())
214
  session_id = gr.State(str(uuid.uuid4()))
@@ -222,7 +218,7 @@ with gr.Blocks(title="NodeAI Genesis Pro") as demo:
222
  with gr.Column(elem_classes="sidebar-mobile", visible=False) as sidebar:
223
  gr.HTML("<div class='logo-text'>NODEAI GENESIS</div>")
224
 
225
- # ĐĂNG NHẬP BUTTON Ở ĐÂY 👈
226
  login_btn = gr.LoginButton(value="🔐 ĐĂNG NHẬP HF", elem_classes="orange-btn", scale=1)
227
 
228
  # USER INFO
@@ -232,9 +228,9 @@ with gr.Blocks(title="NodeAI Genesis Pro") as demo:
232
  # TẠO WORKSPACE MỚI
233
  new_btn = gr.Button("+ TẠO KHÔNG GIAN MỚI", elem_classes="orange-btn", scale=1)
234
 
235
- # LỊCH SỬ CHAT Ở ĐÂY 👈
236
  gr.HTML("<h3 style='color: #a0aec0; margin: 25px 0 15px 0;'>📚 LỊCH SỬ</h3>")
237
- history_container = gr.Column()
238
 
239
  # MAIN CHAT
240
  with gr.Column(elem_classes="chat-container"):
@@ -252,18 +248,17 @@ with gr.Blocks(title="NodeAI Genesis Pro") as demo:
252
  container=False
253
  )
254
 
255
- # EVENTS
256
  hamburger.click(toggle_sidebar, outputs=sidebar)
257
 
258
- # ĐĂNG NHẬP → CẬP NHẬT USER + LỊCH SỬ
259
- login_btn.change(
260
- login_event,
261
- inputs=current_user,
262
  outputs=[user_card, current_user]
263
  ).then(
264
  load_history_buttons,
265
  inputs=[chat_store, current_user],
266
- outputs=history_container
267
  )
268
 
269
  # TẠO MỚI
 
176
  def toggle_sidebar():
177
  return gr.update(visible=True, elem_classes="sidebar-mobile open")
178
 
179
+ def handle_login(profile):
180
+ """Xử lý đăng nhập từ LoginButton"""
181
+ if profile and hasattr(profile, 'name') and profile.name:
182
+ username = profile.name
183
  user_id = get_user_id(username)
184
  user_html = f"""
185
  <div class='user-card'>
 
194
  def load_history_buttons(store, username):
195
  user_id = get_user_id(username)
196
  if user_id in store and "workspaces" in store[user_id]:
197
+ html_buttons = []
198
+ for sid, data in sorted(store[user_id]["workspaces"].items(), key=lambda x: x[1]["created"], reverse=True):
199
+ html_buttons.append(f"""
200
+ <div class="hist-btn" style="cursor: pointer; margin-bottom: 8px;">
201
+ 💬 {data['title']} ({len(data['history'])//2} tin)
202
+ </div>
203
+ """)
204
+ return gr.update(value="".join(html_buttons))
205
+ return gr.update(value="<div>Chưa có lịch sử chat</div>")
206
 
207
+ # 5. GIAO DIỆN CHÍNH - FIX LOGINBUTTON
 
 
 
 
 
 
 
208
  with gr.Blocks(title="NodeAI Genesis Pro") as demo:
209
  chat_store = gr.State(load_db())
210
  session_id = gr.State(str(uuid.uuid4()))
 
218
  with gr.Column(elem_classes="sidebar-mobile", visible=False) as sidebar:
219
  gr.HTML("<div class='logo-text'>NODEAI GENESIS</div>")
220
 
221
+ # ✅ FIX: LoginButton dùng .click() thay vì .change()
222
  login_btn = gr.LoginButton(value="🔐 ĐĂNG NHẬP HF", elem_classes="orange-btn", scale=1)
223
 
224
  # USER INFO
 
228
  # TẠO WORKSPACE MỚI
229
  new_btn = gr.Button("+ TẠO KHÔNG GIAN MỚI", elem_classes="orange-btn", scale=1)
230
 
231
+ # LỊCH SỬ CHAT
232
  gr.HTML("<h3 style='color: #a0aec0; margin: 25px 0 15px 0;'>📚 LỊCH SỬ</h3>")
233
+ history_display = gr.HTML(value="Chưa có lịch sử chat")
234
 
235
  # MAIN CHAT
236
  with gr.Column(elem_classes="chat-container"):
 
248
  container=False
249
  )
250
 
251
+ # ✅ EVENTS - FIX LOGINBUTTON
252
  hamburger.click(toggle_sidebar, outputs=sidebar)
253
 
254
+ # LoginButton chỉ có .click()
255
+ login_btn.click(
256
+ handle_login,
 
257
  outputs=[user_card, current_user]
258
  ).then(
259
  load_history_buttons,
260
  inputs=[chat_store, current_user],
261
+ outputs=history_display
262
  )
263
 
264
  # TẠO MỚI