start project
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
"""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)
|
||||
Reference in New Issue
Block a user