experiments/arena/main.py (48 lines of code) (raw):
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import mesop as me
from state.state import AppState
from components.page_scaffold import page_scaffold
from pages.arena import arena_page_content
from pages.leaderboard import leaderboard_page_content
from pages.history import history_page_content
from pages.settings import settings_page_content
# from pages.gemini2 import gemini_page_content
def on_load(e: me.LoadEvent): # pylint: disable=unused-argument
"""On load event"""
#print("load event", e) # this event looks like: LoadEvent(path='/') or LoadEvent(path='/leaderboard')
s = me.state(AppState)
print("theme", s.theme_mode)
if s.theme_mode: # recall state theme mode
me.set_theme_mode(s.theme_mode)
else:
me.set_theme_mode("system")
@me.page(
path="/",
title="Arena - Home",
on_load=on_load,
security_policy=me.SecurityPolicy(dangerously_disable_trusted_types=True),
)
def home_page():
"""Main Page"""
state = me.state(AppState)
with page_scaffold(): # pylint: disable=not-context-manager
arena_page_content(state)
@me.page(
path="/leaderboard",
title="Arena - Leaderboard",
on_load=on_load,
security_policy=me.SecurityPolicy(dangerously_disable_trusted_types=True),
)
def leaderboard_page():
"""Leaderboard Page"""
leaderboard_page_content(me.state(AppState))
@me.page(
path="/history",
title="Arena - History",
on_load=on_load,
security_policy=me.SecurityPolicy(dangerously_disable_trusted_types=True),
)
def history_page():
"""History Page"""
history_page_content(me.state(AppState))
@me.page(
path="/settings",
title="Arena - Settings",
on_load=on_load,
security_policy=me.SecurityPolicy(dangerously_disable_trusted_types=True),
)
def settings_page():
"""Another Page"""
settings_page_content(me.state(AppState))
# @me.page(
# path="/gemini",
# title="Scaffold - Gemini",
# on_load=on_load,
# )
# def gemini_page():
# """Gemini 2.0 Flash Page"""
# state = me.state(AppState)
# with page_scaffold(): # pylint: disable=not-context-manager
# gemini_page_content(state)