8686from reflex .utils import codespaces , console , exceptions , format , prerequisites , types
8787from reflex .utils .exec import is_prod_mode , is_testing_env , should_skip_compile
8888from reflex .utils .imports import ImportVar
89- from sitemap import serve_sitemap
89+ from . sitemap import serve_sitemap
9090
9191# Define custom types.
9292ComponentCallable = Callable [[], Component ]
@@ -271,7 +271,6 @@ def __init__(self, **kwargs):
271271 )
272272 super ().__init__ (** kwargs )
273273 base_state_subclasses = BaseState .__subclasses__ ()
274- self .add_sitemap ()
275274
276275 # Special case to allow test cases have multiple subclasses of rx.BaseState.
277276 if not is_testing_env () and len (base_state_subclasses ) > 1 :
@@ -288,6 +287,9 @@ def __init__(self, **kwargs):
288287 self ._add_cors ()
289288 self ._add_default_endpoints ()
290289
290+ # Add sitemap
291+ self .add_sitemap ()
292+
291293 for clz in App .__mro__ :
292294 if clz == App :
293295 continue
@@ -304,7 +306,7 @@ def __init__(self, **kwargs):
304306 from reflex .utils .compat import windows_hot_reload_lifespan_hack
305307
306308 self .register_lifespan_task (windows_hot_reload_lifespan_hack )
307-
309+
308310 def add_sitemap (self ):
309311 @self .api .get ("/sitemap.xml" )
310312 async def sitemap ():
@@ -540,12 +542,13 @@ def add_page(
540542 component .sitemap_changefreq = sitemap_changefreq
541543
542544 # Auto-detect priority if not explicitly set
543- if not hasattr (component , ' sitemap_priority' ):
545+ if not hasattr (component , " sitemap_priority" ):
544546 component .sitemap_priority = self ._auto_detect_priority (route )
545-
547+
546548 # Set default changefreq if not explicitly set
547- if not hasattr (component , ' sitemap_changefreq' ):
549+ if not hasattr (component , " sitemap_changefreq" ):
548550 component .sitemap_changefreq = "weekly"
551+
549552 # Ensure state is enabled if this page uses state.
550553 if self .state is None :
551554 if on_load or component ._has_stateful_event_triggers ():
@@ -591,14 +594,13 @@ def add_page(
591594 on_load = [on_load ]
592595 self .load_events [route ] = on_load
593596
594-
595597 def _auto_detect_priority (self , route : Optional [str ]) -> float :
596598 """Auto detect sitemap priority"""
597599 if route is None or route == "/" or route == "index" :
598600 return 1.0
599601 depth = route .count ("/" )
600602 return max (0.1 , 1.0 - (depth * 0.2 ))
601-
603+
602604 def get_load_events (self , route : str ) -> list [EventHandler | EventSpec ]:
603605 """Get the load events for a route.
604606
0 commit comments