File size: 1,542 Bytes
b3d5435
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645f459
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b3d5435
 
 
 
 
 
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
import streamlit as st

# --- SHARED ON ALL PAGES ---
#st.logo(image=":material/medical_information:")
st.logo("images/medical_information_24dp_1F1F1F_FILL0_wght400_GRAD0_opsz24.png")
st.sidebar.text("Project by SPG")


# --- PAGE SETUP ---
home_page = st.Page(
    page="pages/home.py",
    title="Home",
    icon=":material/home:",
    default=True,)

type_text_page = st.Page(
    page="pages/type_text.py",
    title="type text",
    icon=":material/keyboard:",
    default=False,)

upload_file_page = st.Page(
    page="pages/upload_file.py",
    title="upload file",
    icon=":material/file_upload:",
    default=False,)

about_page = st.Page(
    page="pages/about.py",
    title="About the app",
    icon=":material/info:",
    default=False)

# This is the key trick:
# 1. Define all content first
content = [f"This is scrollable content line {i}" for i in range(100)]

# 2. Display first part of content
for i in range(len(content) - 1):
    st.write(content[i])

# 3. Add a placeholder for the last item
last_item = st.empty()

# 4. Show "Bottom Reached!" message to confirm we're at the bottom
st.success("Bottom of page reached!")

# 5. Finally, add the last content item
# This forces Streamlit to render the page up to the bottom
last_item.write(content[-1])


# --- NAVIGATION SETUP ---
#pg = st.navigation(pages=[home_page, type_text_page, upload_file_page, about_page]) # WITHOUT SECTIONS
pg = st.navigation({"Home": [home_page], "Demo": [type_text_page, upload_file_page], "About": [about_page]}) # WITH SECTIONS

pg.run()