File size: 2,584 Bytes
4401c98
f87e859
73dad90
fc7d0e7
73dad90
af8cdac
0a6970e
bf51904
be58b51
8908a87
06b9c8f
2167a2b
d2bad2c
2ca1e86
 
 
be3d365
 
06b9c8f
 
 
 
be3d365
2167a2b
 
 
 
 
 
 
 
 
be3d365
6e83e2f
fc7d0e7
be3d365
fc7d0e7
 
6e83e2f
73dad90
c4704e3
44725d4
73dad90
 
af8cdac
73dad90
0a6970e
 
bf51904
 
8908a87
 
6e9e750
06b9c8f
 
 
be3d365
2167a2b
 
be3d365
73dad90
 
085999b
fc7d0e7
2167a2b
44725d4
 
73dad90
085999b
73dad90
 
0a6970e
 
bf51904
 
8908a87
 
fc430b7
e668363
 
fc430b7
4db6a4b
2167a2b
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import streamlit as st
import page_home
import page_attitudes
import page_demographics
import page_shopping
import page_investing
import page_environment
import page_ai
import page_personas
import page_tests
from urllib.parse import quote, unquote
from datasets import load_dataset

# Default to wide mode
st.set_page_config(layout="wide")

# Initialize a session state variable for page navigation
if 'page' not in st.session_state:
    # Check if a page is specified in the query parameters
    query_params = st.experimental_get_query_params()
    initial_page = unquote(query_params.get("page", ["Home"])[0])
    st.session_state['page'] = initial_page


@st.cache_data
def load_data():
    # Load data from Huggingface
    dataset = load_dataset(
        "krishaamer/taiwanese-college-students", data_files={'train': 'clean.csv'})
    return dataset['train'].to_pandas()


# Sidebar navigation using buttons
st.sidebar.title("Taiwanese College Students")
if st.sidebar.button("Introduction"):
    st.session_state['page'] = 'Home'
if st.sidebar.button("Demographics"):
    st.session_state['page'] = 'Demographics'
if st.sidebar.button("Attitudes"):
    st.session_state['page'] = 'Attitudes'
if st.sidebar.button("Personas ⭐"):
    st.session_state['page'] = 'Personas'
if st.sidebar.button("Shopping"):
    st.session_state['page'] = 'Shopping'
if st.sidebar.button("Investing"):
    st.session_state['page'] = 'Investing'
if st.sidebar.button("Environment"):
    st.session_state['page'] = 'Environment'
if st.sidebar.button("AI Companion"):
    st.session_state['page'] = 'AI'
if st.sidebar.button("Tests"):
    st.session_state['page'] = 'Tests'

# Update the query parameters based on the session state
st.experimental_set_query_params(page=quote(st.session_state['page']))

# Page contents based on session state
df = load_data()

if st.session_state['page'] == 'Home':
    page_home.show()
elif st.session_state['page'] == 'Attitudes':
    page_attitudes.show(df)
elif st.session_state['page'] == 'Demographics':
    page_demographics.show(df)
elif st.session_state['page'] == 'Personas':
    page_personas.show(df)
elif st.session_state['page'] == 'Shopping':
    page_shopping.show(df)
elif st.session_state['page'] == 'Investing':
    page_investing.show(df)
elif st.session_state['page'] == 'Environment':
    page_environment.show(df)
elif st.session_state['page'] == 'AI':
    page_ai.show(df)
elif st.session_state['page'] == 'Tests':
    page_tests.show(df)

st.sidebar.divider()

# Rerun Calculations
if st.sidebar.button("Rerun Calculations"):
    st.rerun()