File size: 1,898 Bytes
ab8fd25
 
c162771
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import streamlit as st

# Assuming you have similar modules as in the example
# For demonstration, these functions will be defined here directly
def home_page():
    st.title("Home Page")
    st.write("Welcome to the Home Page!")

def analytics_page():
    st.title("Analytics Page")
    st.write("Analytics details go here.")

def settings_page():
    st.title("Settings Page")
    st.write("Settings details go here.")

# Mimicking the page_group utility from the example
class PageGroup:
    def __init__(self, key):
        self.key = key
        self.pages = {}
        self.default_page = None

    def item(self, title, func, default=False):
        self.pages[title] = func
        if default:
            self.default_page = title

    def show(self):
        # Use session state to remember the current page
        if 'current_page' not in st.session_state or st.session_state.current_page not in self.pages:
            st.session_state.current_page = self.default_page

        # Display the current page function
        self.pages[st.session_state.current_page]()

def main():
    page = PageGroup("p")

    with st.sidebar:
        st.title("Navigation")

        with st.expander("Pages", True):
            for title, func in [("Home", home_page), ("Analytics", analytics_page), ("Settings", settings_page)]:
                
                if st.button(title):
                    st.session_state.current_page = title

    page.item("Home", home_page, default=True)
    page.item("Analytics", analytics_page)
    page.item("Settings", settings_page)

    page.show()

if __name__ == "__main__":
    # st.set_page_config(page_title="My Streamlit App", page_icon="📊", layout="wide")
    st.set_page_config(
        layout="wide",
        page_title="MLIP Arena",
        page_icon=":shark:",
        # initial_sidebar_state="expanded",
        menu_items=None
    )
    main()