awacke1 commited on
Commit
8b19313
Β·
verified Β·
1 Parent(s): e146603

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -8
app.py CHANGED
@@ -115,6 +115,8 @@ if 'last_chat_update' not in st.session_state:
115
  st.session_state.last_chat_update = 0
116
  if 'displayed_chat_lines' not in st.session_state:
117
  st.session_state.displayed_chat_lines = []
 
 
118
 
119
  # Timestamp wizardry - clock ticks with flair! ⏰🎩
120
  def format_timestamp_prefix():
@@ -477,7 +479,7 @@ def create_streamlit_interface():
477
  st.session_state.message_text = ''
478
  st.rerun()
479
 
480
- # Image paste component with a key to capture value
481
  components.html(
482
  """
483
  <div id="paste-target">Paste an image here (Ctrl+V)</div>
@@ -495,6 +497,11 @@ def create_streamlit_interface():
495
  value: e.target.result
496
  }, '*');
497
  pasteTarget.innerHTML = '<p>Image pasted! Processing...</p>';
 
 
 
 
 
498
  };
499
  reader.readAsDataURL(blob);
500
  }
@@ -503,20 +510,19 @@ def create_streamlit_interface():
503
  });
504
  </script>
505
  """,
506
- height=100,
507
- key="image_paste_component"
508
  )
509
 
510
- # Check for pasted image data in session state
511
- if "image_paste_component" in st.session_state and st.session_state.image_paste_component:
512
- pasted_image_data = st.session_state.image_paste_component
513
- if isinstance(pasted_image_data, str) and st.session_state.pasted_image_data != pasted_image_data:
514
  st.session_state.pasted_image_data = pasted_image_data
515
  filename = await save_pasted_image(st.session_state.pasted_image_data, st.session_state.username)
516
  if filename:
517
  await save_chat_entry(st.session_state.username, f"Pasted image: {filename}")
518
  st.session_state.pasted_image_data = None
519
- del st.session_state.image_paste_component # Clear the component value after processing
520
  st.rerun()
521
 
522
  st.subheader("Media Gallery 🎨🎢πŸŽ₯")
 
115
  st.session_state.last_chat_update = 0
116
  if 'displayed_chat_lines' not in st.session_state:
117
  st.session_state.displayed_chat_lines = []
118
+ if 'pasted_image_data_temp' not in st.session_state:
119
+ st.session_state.pasted_image_data_temp = None
120
 
121
  # Timestamp wizardry - clock ticks with flair! ⏰🎩
122
  def format_timestamp_prefix():
 
479
  st.session_state.message_text = ''
480
  st.rerun()
481
 
482
+ # Image paste component without key
483
  components.html(
484
  """
485
  <div id="paste-target">Paste an image here (Ctrl+V)</div>
 
497
  value: e.target.result
498
  }, '*');
499
  pasteTarget.innerHTML = '<p>Image pasted! Processing...</p>';
500
+ // Trigger a custom event to notify Python
501
+ window.parent.postMessage({
502
+ type: 'streamlit:imagePasted',
503
+ value: e.target.result
504
+ }, '*');
505
  };
506
  reader.readAsDataURL(blob);
507
  }
 
510
  });
511
  </script>
512
  """,
513
+ height=100
 
514
  )
515
 
516
+ # Custom JavaScript listener for pasted image (simulated via session state)
517
+ if 'pasted_image_data_temp' in st.session_state and st.session_state.pasted_image_data_temp and st.session_state.pasted_image_data != st.session_state.pasted_image_data_temp:
518
+ pasted_image_data = st.session_state.pasted_image_data_temp
519
+ if isinstance(pasted_image_data, str):
520
  st.session_state.pasted_image_data = pasted_image_data
521
  filename = await save_pasted_image(st.session_state.pasted_image_data, st.session_state.username)
522
  if filename:
523
  await save_chat_entry(st.session_state.username, f"Pasted image: {filename}")
524
  st.session_state.pasted_image_data = None
525
+ st.session_state.pasted_image_data_temp = None # Clear after processing
526
  st.rerun()
527
 
528
  st.subheader("Media Gallery 🎨🎢πŸŽ₯")