| import reflex as rx | |
| from .dark_mode import dark_mode_toggle | |
| from .sidebar import sidebar | |
| from .pages import index, overview, results | |
| def add_components(rest_of_app): | |
| """ | |
| Adds sidebar and dark_mode components | |
| :param rest_of_app: | |
| :return: | |
| """ | |
| return rx.box( | |
| rx.hstack( | |
| sidebar(), | |
| rest_of_app(), | |
| ), | |
| rx.box( | |
| dark_mode_toggle(), | |
| position="absolute", # Enables absolute positioning | |
| top="10px", # Position 10px from the top | |
| right="10px", # Position 10px from the right | |
| z_index=1000, # Ensures it appears above other elements | |
| ), | |
| position="relative", # Sets the container as a relative position reference | |
| width="100vw", # Full width of the viewport | |
| height="100vh", # Full height of the viewport | |
| ) | |
| # Initialize the Reflex app with polished layout | |
| app = rx.App() | |
| app.add_page(add_components(overview), title='Overview', route='/overview') # Overview page | |
| app.add_page(add_components(results), title='Results', route='/results') # Results page | |
| app.add_page(add_components(index), title='Index', route='/') # Index page | |