Esvanth commited on
Commit
31837a5
·
1 Parent(s): cf9af78

Fix StreamlitAPIException: use value= on sliders instead of key= to allow auto-play writes

Browse files
Files changed (1) hide show
  1. app.py +15 -7
app.py CHANGED
@@ -388,10 +388,14 @@ with T1:
388
  ag_speed = cb5.slider("Speed", 1, 8, 3, format="%dx",
389
  label_visibility="collapsed", key="ag_speed")
390
 
391
- # step slider — key="ag_stp" binds directly to session state
392
- st.slider("Step", 0, mx, key="ag_stp",
393
- format="Stop %d",
394
- help="Drag to jump to any stop in the route")
 
 
 
 
395
 
396
  stp = st.session_state["ag_stp"]
397
  path_sf = route[:stp+1]
@@ -710,9 +714,13 @@ with T3:
710
  if st.session_state["rp"] >= max_rp: st.session_state["rp"]=0
711
  st.session_state["rp_pl"] = not st.session_state["rp_pl"]; st.rerun()
712
 
713
- # slider — key="rp" binds directly to session state
714
- st.slider("Nodes explored", 0, max_rp, key="rp",
715
- help="Drag to replay how the algorithm searches node by node")
 
 
 
 
716
 
717
  rp = st.session_state["rp"]
718
  done = (rp == max_rp)
 
388
  ag_speed = cb5.slider("Speed", 1, 8, 3, format="%dx",
389
  label_visibility="collapsed", key="ag_speed")
390
 
391
+ # step slider — use value= so auto-play can write to ag_stp freely
392
+ new_stp = st.slider("Step", 0, mx,
393
+ value=st.session_state["ag_stp"],
394
+ format="Stop %d",
395
+ help="Drag to jump to any stop in the route")
396
+ if new_stp != st.session_state["ag_stp"]:
397
+ st.session_state["ag_stp"] = new_stp
398
+ st.session_state["ag_play"] = False
399
 
400
  stp = st.session_state["ag_stp"]
401
  path_sf = route[:stp+1]
 
714
  if st.session_state["rp"] >= max_rp: st.session_state["rp"]=0
715
  st.session_state["rp_pl"] = not st.session_state["rp_pl"]; st.rerun()
716
 
717
+ # slider — use value= so auto-play can write to rp freely
718
+ new_rp = st.slider("Nodes explored", 0, max_rp,
719
+ value=st.session_state["rp"],
720
+ help="Drag to replay how the algorithm searches node by node")
721
+ if new_rp != st.session_state["rp"]:
722
+ st.session_state["rp"] = new_rp
723
+ st.session_state["rp_pl"] = False
724
 
725
  rp = st.session_state["rp"]
726
  done = (rp == max_rp)