DivYonko commited on
Commit
9004cb2
·
1 Parent(s): 003e073

Fix session state widget key conflict - use explicit widget keys

Browse files
Files changed (1) hide show
  1. app.py +10 -21
app.py CHANGED
@@ -938,17 +938,17 @@ with st.sidebar:
938
  horizontal=True,
939
  key="refresh_rate",
940
  )
941
- msg_limit = st.slider("Message window", 10, 400, 50, step=10)
942
- auto_refresh = st.toggle("Live auto-refresh", value=True)
943
  st.divider()
944
 
945
  # -- Alert Settings --
946
  st.markdown('<p style="font-size:0.68rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:8px;">Alert Settings</p>', unsafe_allow_html=True)
947
- alert_enabled = st.toggle("Negative spike alerts", value=True)
948
- alert_threshold = st.slider("Neg alert threshold (%)", 20, 80, 40) / 100
949
- alert_window = st.slider("Alert window (msgs)", 5, 30, 15)
950
- spam_alert_on = st.toggle("Spam rate alerts", value=True)
951
- spam_threshold = st.slider("Spam alert threshold (%)", 10, 60, 30) / 100
952
  st.divider()
953
 
954
  # -- Multi-Stream Scraper Control --
@@ -1178,21 +1178,10 @@ else:
1178
 
1179
 
1180
  # -- DATA LOAD -----------------------------------------------
1181
- # Store _primary_key so pages can read it from session state.
1182
- # Pages do their own data loading; this block just ensures the key is available.
1183
-
1184
-
1185
-
1186
- # -- STORE SIDEBAR VALUES INTO SESSION STATE ------------------
1187
- st.session_state["msg_limit"] = msg_limit
1188
- st.session_state["auto_refresh"] = auto_refresh
1189
- st.session_state["refresh_rate"] = refresh_rate
1190
- st.session_state["alert_enabled"] = alert_enabled
1191
- st.session_state["alert_threshold"] = alert_threshold
1192
- st.session_state["alert_window"] = alert_window
1193
- st.session_state["spam_alert_on"] = spam_alert_on
1194
- st.session_state["spam_threshold"] = spam_threshold
1195
  st.session_state["_primary_key"] = _primary_key
 
 
1196
 
1197
  # -- MULTI-PAGE NAVIGATION ------------------------------------
1198
  comments_page = st.Page("pages/comments.py", title="\U0001f4ac Comments", icon="\U0001f4ac", default=True)
 
938
  horizontal=True,
939
  key="refresh_rate",
940
  )
941
+ msg_limit = st.slider("Message window", 10, 400, 50, step=10, key="msg_limit")
942
+ auto_refresh = st.toggle("Live auto-refresh", value=True, key="auto_refresh")
943
  st.divider()
944
 
945
  # -- Alert Settings --
946
  st.markdown('<p style="font-size:0.68rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:8px;">Alert Settings</p>', unsafe_allow_html=True)
947
+ alert_enabled = st.toggle("Negative spike alerts", value=True, key="alert_enabled")
948
+ alert_threshold = st.slider("Neg alert threshold (%)", 20, 80, 40, key="alert_threshold_pct") / 100
949
+ alert_window = st.slider("Alert window (msgs)", 5, 30, 15, key="alert_window")
950
+ spam_alert_on = st.toggle("Spam rate alerts", value=True, key="spam_alert_on")
951
+ spam_threshold = st.slider("Spam alert threshold (%)", 10, 60, 30, key="spam_threshold_pct") / 100
952
  st.divider()
953
 
954
  # -- Multi-Stream Scraper Control --
 
1178
 
1179
 
1180
  # -- DATA LOAD -----------------------------------------------
1181
+ # Store computed values that pages need but can't read directly from widget keys
 
 
 
 
 
 
 
 
 
 
 
 
 
1182
  st.session_state["_primary_key"] = _primary_key
1183
+ st.session_state["alert_threshold"] = alert_threshold # computed: slider_pct / 100
1184
+ st.session_state["spam_threshold"] = spam_threshold # computed: slider_pct / 100
1185
 
1186
  # -- MULTI-PAGE NAVIGATION ------------------------------------
1187
  comments_page = st.Page("pages/comments.py", title="\U0001f4ac Comments", icon="\U0001f4ac", default=True)