Phase 0: Add _ctx_to_env() and render_to_sx_with_env() to shared/sx/helpers.py, register_sx_layout() to shared/sx/layouts.py, and ~root-header/~root-mobile wrapper defcomps to layout.sx. Convert built-in "root" layout to .sx. Phases 1-3: Convert account (65→19 lines), federation (105→97 lines), and orders (88→21 lines) to use register_sx_layout with .sx defcomps that read ctx values as free variables from the evaluation environment. No more Python building SX strings via SxExpr(await root_header_sx(ctx)). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
20 lines
635 B
Python
20 lines
635 B
Python
"""Account defpage setup — registers layouts and loads .sx pages."""
|
|
from __future__ import annotations
|
|
|
|
|
|
def setup_account_pages() -> None:
|
|
"""Register account-specific layouts and load page definitions."""
|
|
_register_account_layouts()
|
|
_load_account_page_files()
|
|
|
|
|
|
def _load_account_page_files() -> None:
|
|
import os
|
|
from shared.sx.pages import load_page_dir
|
|
load_page_dir(os.path.dirname(__file__), "account")
|
|
|
|
|
|
def _register_account_layouts() -> None:
|
|
from shared.sx.layouts import register_sx_layout
|
|
register_sx_layout("account", "account-layout-full", "account-layout-oob", "account-layout-mobile")
|