Files
2026-08-07 21:17:17 +03:30

21 lines
798 B
Python

"""Shared HTMX full-page-vs-fragment response helper (Chapter 04).
Every blueprint serving a dashboard tab (Ch08/09/10) uses this instead of
duplicating the `if request.headers.get("HX-Request")` check, so the
convention is identical everywhere.
"""
from __future__ import annotations
from flask import Request, render_template
def is_htmx(request: Request) -> bool:
"""True if this request was triggered by an hx-* attribute."""
return request.headers.get("HX-Request", "").lower() == "true"
def render_htmx_aware(request: Request, *, full_template: str, partial_template: str, **ctx):
"""Render `full_template` on first load, `partial_template` on HTMX swaps."""
template = partial_template if is_htmx(request) else full_template
return render_template(template, **ctx)