Source code for next.components.facade

"""Thin top-level helpers that delegate to `components_manager`."""

from __future__ import annotations

from typing import TYPE_CHECKING, Any

from .manager import components_manager
from .signals import component_rendered


if TYPE_CHECKING:
    from collections.abc import Mapping
    from pathlib import Path

    from django.http import HttpRequest

    from .info import ComponentInfo


[docs] def get_component(name: str, template_path: Path) -> ComponentInfo | None: """Delegate to `components_manager.get_component`.""" return components_manager.get_component(name, template_path)
[docs] def load_component_template(info: ComponentInfo) -> str | None: """Return raw template text for `info`.""" return components_manager.template_loader.load(info)
[docs] def render_component( info: ComponentInfo, context_data: Mapping[str, Any], request: HttpRequest | None = None, ) -> str: """Render `info` to HTML using template context and an optional request.""" html = components_manager.component_renderer.render(info, context_data, request) component_rendered.send( sender=components_manager.__class__, info=info, template_path=getattr(info, "template_path", None), ) return html
__all__ = ["get_component", "load_component_template", "render_component"]