Inline header functions from sx_components into pages/__init__.py

Move _blog_header_sx, _settings_header_sx, _settings_nav_sx, and
_sub_settings_header_sx into the layout module as local helpers.
Eliminates 14 imports from sx_components.py for the layout system.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 09:27:31 +00:00
parent d7f9afff8e
commit f0fbcef3f6
2 changed files with 83 additions and 84 deletions

View File

@@ -158,11 +158,16 @@ def register(url_prefix, title):
"""Blog listing — moved from / to /index."""
from shared.services.registry import services
from shared.sx.helpers import (
render_to_sx, root_header_sx, full_page_sx, oob_page_sx,
render_to_sx, root_header_sx, full_page_sx, oob_page_sx, oob_header_sx,
)
from sx.sx_components import _blog_header_sx, _oob_header_sx
from shared.sx.parser import SxExpr
async def _blog_hdr(ctx, oob=False):
return await render_to_sx("menu-row-sx",
id="blog-row", level=1,
link_label_content=SxExpr("(div)"),
child_id="blog-header-child", oob=oob)
data = await services.get("blog_page").index_data(g.s)
# Render content, aside, and filter via .sx defcomps
@@ -175,7 +180,7 @@ def register(url_prefix, title):
if not is_htmx_request():
root_hdr = await root_header_sx(tctx)
blog_hdr = await _blog_header_sx(tctx)
blog_hdr = await _blog_hdr(tctx)
header_rows = "(<> " + root_hdr + " " + blog_hdr + ")"
html = await full_page_sx(tctx, header_rows=header_rows,
content=content, aside=aside, filter=filter_sx)
@@ -185,9 +190,9 @@ def register(url_prefix, title):
return sx_response(content)
else:
root_hdr = await root_header_sx(tctx)
blog_hdr = await _blog_header_sx(tctx)
blog_hdr = await _blog_hdr(tctx)
rows = "(<> " + root_hdr + " " + blog_hdr + ")"
header_oob = await _oob_header_sx("root-header-child", "blog-header-child", rows)
header_oob = await oob_header_sx("root-header-child", "blog-header-child", rows)
sx_src = await oob_page_sx(oobs=header_oob, content=content,
aside=aside, filter=filter_sx)
return sx_response(sx_src)