streamlit-clickable-list
See demo: https://clickable-list.streamlit.app/
How to install
pip install streamlit-clickable-list
How to use
col1, col2 = st.columns([1, 1])
with col1:
def on_click(name: str) -> None:
print(f"clicked: {name}")
st.session_state['clicked'] = name
st.header("Clickable list:")
clickable_list(["aaa", "bbb", "ccc"], on_click, key="clickable_list")
with col2:
st.header("Result:")
if "clicked" in st.session_state:
st.write(f"Clicked: {st.session_state['clicked'] or 'none'}")
For the component development
Based on: https://docs.streamlit.io/develop/concepts/custom-components/intro
Set up
- Set up python environment and dependencies
- Used: v3.9
- If you use
uv, run:uv sync
- Set up Node.js environment
- Used v22.13.1
- If you use
nvm, run:nvm use
- Set up node_modules
cd frontend npm install
Run dev
- Use dev mode
- Edit
streamlit_clickable_list/__init__.py-_RELEASE = True +_RELEASE = False
- Edit
- Run dev server
cd frontend npm start- Then, a server will be run in port=3001
- Run streamlit app
streamlit run sample.py # with WSL + uv uv run streamlit run sample.py --server.fileWatcherType=poll --server.address=0.0.0.0- Then, see
localhost:8501in your browser
- Then, see
Develop demo/demo.py
- Make symbolic link
ln -s demo/demo.py ./demo/demo.pyuse streamlit-clickable-list from PyPI. The symbolic link allow it to use local component code
- Run streamlit app
streamlit run demo.py # with WSL + uv uv run streamlit run demo.py --server.fileWatcherType=poll --server.address=0.0.0.0- Then, see
localhost:8501in your browser
- Then, see
- Edit
demo/demo.py
Release to PyPI
- Use release mode
- Edit
streamlit_clickable_list/__init__.py-_RELEASE = False +_RELEASE = True
- Edit
- Build react app
cd frontend npm build - Run the app to check it in local
streamlit run sample.py # with WSL + uv uv run streamlit run sample.py --server.fileWatcherType=poll --server.address=0.0.0.0 - Update version
- Edit
pyproject.tomlto change version[project] name = "streamlit-clickable-list" -version = "X.Y.Z" +version = "X.Y.W"
- Edit
- Build python
- If you use
uv, run:rm dist/streamlit_clickable_list-* uv build
- If you use
- Push to GitHub (if you update
README.md)git push origin main - Publish to PyPI
uv publish --token <PyPI token>- Check
$HOME/.pypircfor <PyPI token>
- Check
Release to Streamlit Community Cloud
Only the first time:
- Log in Streamlit Community Cloud
- "Create app" > "Deploy a public app from GitHub"
- Input info in "Deploy an app"
To publish:
- First, publish it to PyPI
- Because the app in Streamlit Community Cloud uses the streamlit-clickable-list in PyPI
- Add new packege in
requirement.txtif needed- Do NOT use
uv pip compile pyproject.toml > requirements.txt- The demo app in Streamlit Community Cloud needs streamlit-clickable-list package from pypi, though the package from pypi is not necessary to develop the component
- Do NOT use
- Push github, then it will be deployed to Streamlit Community Cloud
git push origin main
Metadata
Release files for streamlit-clickable-list 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| streamlit_clickable_list-0.1.4.tar.gz | 405.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| streamlit_clickable_list-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 814.0 kB
Release files / streamlit_clickable_list-0.1.4.tar.gz
| Download URL | streamlit_clickable_list-0.1.4.tar.gz |
|---|---|
| Size | 405.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1050c6605f23ed3c220859cdb14de5e59dd8e737ea03a36fc81a994c9612021
|
|
BLAKE2b-256 checksum How to use checksums |
5fef591ab084b4978afa1aa0ed1b15f255476b7c7e693e3703cb9d638a208f0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.4.18
|
Release files / streamlit_clickable_list-0.1.4-py3-none-any.whl
| Download URL | streamlit_clickable_list-0.1.4-py3-none-any.whl |
|---|---|
| Size | 408.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0ac785d4cef6199084d3098a5e8390c42b0032dc484e5bd40f7c76f54f3a227
|
|
BLAKE2b-256 checksum How to use checksums |
694e1883cebc90737719ceae2459c0e504392040fa9bb7af7daf4be62ae2940f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.4.18
|