duongthienz commited on
Commit
11dc1ed
·
verified ·
1 Parent(s): dc68e56

Update ui.py

Browse files
Files changed (1) hide show
  1. ui.py +8 -33
ui.py CHANGED
@@ -174,7 +174,6 @@ def render_speaker_samples_tab(speakerNames, raw_to_display, currFile):
174
 
175
  # --- Speaker cell ---
176
  if is_editing:
177
- input_key = f"inline_rename_input_{currFile}_{sp}"
178
  select_key = f"inline_rename_select_{currFile}_{sp}"
179
  confirm_key = f"inline_rename_confirm_{currFile}_{sp}"
180
  cancel_key = f"inline_rename_cancel_{currFile}_{sp}"
@@ -182,55 +181,31 @@ def render_speaker_samples_tab(speakerNames, raw_to_display, currFile):
182
  history = st.session_state.inline_rename_history
183
  current_val = display_name if display_name != sp else ""
184
 
185
- # Seed initial text input value when first opening
186
- if input_key not in st.session_state:
187
- st.session_state[input_key] = current_val
188
-
189
- _NEW_NAME_SENTINEL = "✏️ Type a new name…"
190
-
191
  with row_cols[0]:
192
- if history:
193
- # Selectbox: existing history names + sentinel for "new"
194
- dropdown_options = history + [_NEW_NAME_SENTINEL]
195
- # Pre-select current value if it's already in history, else sentinel
196
- default_idx = (
197
- history.index(current_val)
198
- if current_val in history
199
- else len(dropdown_options) - 1
200
- )
201
- selected = st.selectbox(
202
- "Pick or type",
203
- options=dropdown_options,
204
- index=default_idx,
205
- key=select_key,
206
- label_visibility="collapsed",
207
- )
208
- # If user picked an existing name, mirror it into the text input
209
- if selected != _NEW_NAME_SENTINEL:
210
- st.session_state[input_key] = selected
211
-
212
- # Always show the text input so the user can freely edit/type
213
- new_name = st.text_input(
214
  "Rename",
215
- key=input_key,
 
 
216
  label_visibility="collapsed",
217
  placeholder=f"Rename {sp}…",
 
218
  )
219
 
220
  btn_col1, btn_col2 = st.columns(2)
221
  if btn_col1.button("✓", key=confirm_key, help="Confirm rename"):
222
- confirmed = new_name.strip()
223
  if confirmed:
224
  apply_inline_rename(currFile, sp, confirmed)
225
  if confirmed not in st.session_state.inline_rename_history:
226
  st.session_state.inline_rename_history.append(confirmed)
227
  st.session_state.inline_rename_active[edit_key] = False
228
- st.session_state.pop(input_key, None)
229
  st.session_state.pop(select_key, None)
230
  st.rerun()
231
  if btn_col2.button("✕", key=cancel_key, help="Cancel"):
232
  st.session_state.inline_rename_active[edit_key] = False
233
- st.session_state.pop(input_key, None)
234
  st.session_state.pop(select_key, None)
235
  st.rerun()
236
  else:
 
174
 
175
  # --- Speaker cell ---
176
  if is_editing:
 
177
  select_key = f"inline_rename_select_{currFile}_{sp}"
178
  confirm_key = f"inline_rename_confirm_{currFile}_{sp}"
179
  cancel_key = f"inline_rename_cancel_{currFile}_{sp}"
 
181
  history = st.session_state.inline_rename_history
182
  current_val = display_name if display_name != sp else ""
183
 
 
 
 
 
 
 
184
  with row_cols[0]:
185
+ # Single editable selectbox acts as a combobox:
186
+ # user can pick a past name or type a brand-new one freely.
187
+ new_name = st.selectbox(
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  "Rename",
189
+ options=history,
190
+ index=history.index(current_val) if current_val in history else None,
191
+ key=select_key,
192
  label_visibility="collapsed",
193
  placeholder=f"Rename {sp}…",
194
+ editable=True,
195
  )
196
 
197
  btn_col1, btn_col2 = st.columns(2)
198
  if btn_col1.button("✓", key=confirm_key, help="Confirm rename"):
199
+ confirmed = (new_name or "").strip()
200
  if confirmed:
201
  apply_inline_rename(currFile, sp, confirmed)
202
  if confirmed not in st.session_state.inline_rename_history:
203
  st.session_state.inline_rename_history.append(confirmed)
204
  st.session_state.inline_rename_active[edit_key] = False
 
205
  st.session_state.pop(select_key, None)
206
  st.rerun()
207
  if btn_col2.button("✕", key=cancel_key, help="Cancel"):
208
  st.session_state.inline_rename_active[edit_key] = False
 
209
  st.session_state.pop(select_key, None)
210
  st.rerun()
211
  else: