fabagent / components /progress.py
hee_!J
feat: Streamlit ๋Œ€์‹œ๋ณด๋“œ UI ๊ตฌํ˜„
61f3789
Raw
History Blame Contribute Delete
1.01 kB
"""4๋‹จ๊ณ„ ์ง„ํ–‰ ์ŠคํŠธ๋ฆฝ (๊ฐœ๋ฐœ ๊ฐ€์ด๋“œ ๋ถ€๋ก C)
st.session_state.stage ๊ธฐ์ค€์œผ๋กœ ๊ฐ ๋‹จ๊ณ„๋ฅผ idle / active / done์œผ๋กœ ๋ Œ๋”
- stage > num: done (โœ“)
- stage == num: active (ํ˜„์žฌ ๋ถ„์„ ์ค‘)
- stage < num: idle
"""
import streamlit as st
STEPS = [(1, "์ด์ƒ ํƒ์ง€"), (2, "์›์ธ ๋ถ„์„"), (3, "์˜ํ–ฅ ํ‰๊ฐ€"), (4, "๊ถŒ๊ณ ์„œ")]
def render_progress_strip():
stage = st.session_state.stage
pieces = []
for i, (num, label) in enumerate(STEPS):
if stage > num:
state, mark = "done", "โœ“"
elif stage == num:
state, mark = "active", str(num)
else:
state, mark = "idle", str(num)
pieces.append(
f'<div class="fab-progress-step {state}"><span class="num">{mark}</span>{label}</div>'
)
if i < len(STEPS) - 1:
pieces.append('<span class="conn"></span>')
st.markdown(
f'<div class="fab-progress">{"".join(pieces)}</div>',
unsafe_allow_html=True,
)