from __future__ import annotations from collections.abc import Sequence import streamlit as st def remembered_segmented_control( label: str, *, options: Sequence[str], key: str, remember_key: str | None = None, default: str | None = None, label_visibility: str = "visible", ) -> str: """Render a segmented control with one small, reusable memory pattern.""" fallback = default or options[0] remembered = st.session_state.get( remember_key, st.session_state.get(key, fallback), ) selected = ( st.segmented_control( label, options=options, default=remembered if remembered in options else fallback, key=key, label_visibility=label_visibility, ) or fallback ) if remember_key is not None: st.session_state[remember_key] = selected return selected