| """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, | |
| ) | |