Release v4928.1.4.2 stable
This commit is contained in:
35
app/admin_ui/htmx.py
Normal file
35
app/admin_ui/htmx.py
Normal file
@@ -0,0 +1,35 @@
|
||||
"""Small HTMX helpers shared by admin pages."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from fastapi import Request
|
||||
|
||||
from app.admin_ui.components import esc
|
||||
|
||||
|
||||
def is_htmx_request(request: Request | None) -> bool:
|
||||
if request is None:
|
||||
return False
|
||||
return str(request.headers.get("HX-Request") or "").lower() == "true"
|
||||
|
||||
|
||||
def htmx_attrs(
|
||||
url: str,
|
||||
*,
|
||||
target: str,
|
||||
swap: str = "innerHTML",
|
||||
push_url: str | bool | None = None,
|
||||
indicator: str | None = None,
|
||||
) -> str:
|
||||
attrs = [
|
||||
f'hx-get="{esc(url)}"',
|
||||
f'hx-target="{esc(target)}"',
|
||||
f'hx-swap="{esc(swap)}"',
|
||||
]
|
||||
if push_url is not None:
|
||||
value = "true" if push_url is True else "false" if push_url is False else str(push_url)
|
||||
attrs.append(f'hx-push-url="{esc(value)}"')
|
||||
if indicator:
|
||||
attrs.append(f'hx-indicator="{esc(indicator)}"')
|
||||
return " ".join(attrs)
|
||||
Reference in New Issue
Block a user