diff --git a/bp/fragments/routes.py b/bp/fragments/routes.py index 5ae8373..b21a601 100644 --- a/bp/fragments/routes.py +++ b/bp/fragments/routes.py @@ -2,11 +2,14 @@ Exposes HTML fragments at ``/internal/fragments/`` for consumption by other coop apps via the fragment client. + +Fragments: + auth-menu Desktop + mobile auth menu (sign-in or user link) """ from __future__ import annotations -from quart import Blueprint, Response, request +from quart import Blueprint, Response, request, render_template from shared.infrastructure.fragments import FRAGMENT_HEADER @@ -14,7 +17,24 @@ from shared.infrastructure.fragments import FRAGMENT_HEADER def register(): bp = Blueprint("fragments", __name__, url_prefix="/internal/fragments") - _handlers: dict[str, object] = {} + # --------------------------------------------------------------- + # Fragment handlers + # --------------------------------------------------------------- + + async def _auth_menu(): + user_email = request.args.get("email", "") + return await render_template( + "fragments/auth_menu.html", + user_email=user_email, + ) + + _handlers = { + "auth-menu": _auth_menu, + } + + # --------------------------------------------------------------- + # Routing + # --------------------------------------------------------------- @bp.before_request async def _require_fragment_header(): @@ -29,6 +49,4 @@ def register(): html = await handler() return Response(html, status=200, content_type="text/html") - bp._fragment_handlers = _handlers - return bp diff --git a/shared b/shared index b882770..2a9dfaa 160000 --- a/shared +++ b/shared @@ -1 +1 @@ -Subproject commit b882770828be7c62bbd047146e03b83511a2397d +Subproject commit 2a9dfaa749be414903b5edf834fbb201e6466498 diff --git a/templates/fragments/auth_menu.html b/templates/fragments/auth_menu.html new file mode 100644 index 0000000..fec15a8 --- /dev/null +++ b/templates/fragments/auth_menu.html @@ -0,0 +1,36 @@ +{# Desktop auth menu #} + +{% if user_email %} + + + {{ user_email }} + +{% else %} + + + sign in or register + +{% endif %} + +{# Mobile auth menu #} + +{% if user_email %} + + + {{ user_email }} + +{% else %} + + + sign in or register + +{% endif %} +