{% extends "base.html" %} {% from "_macros.html" import hand_circle, pen_underline, loose_arrow %} {% from "_inbox_macros.html" import dropcard, status_dot, priority_badge %} {% block title %}{{ title }} · Agent Drop{% endblock %} {% block head_extra %} {# HTMX powers the cursor-paginated "Load more" button. Pinned version mirrors drop_reading.html (issue #14, G2). #} {% endblock %} {% block body_class %}inbox{% endblock %} {# Build a query-string for view links. ``new_state`` overrides the state param; ``new_source`` is tri-valued (None = keep current, "" = drop, otherwise set). ``q`` is preserved unless ``drop_q`` is True. #} {% macro filter_url(new_state=None, new_source=None, drop_q=False) -%} {%- set parts = [] -%} {%- set s = new_state if new_state is not none else state -%} {%- if s and s != "all" -%}{%- set _ = parts.append("state=" ~ s) -%}{%- endif -%} {%- if new_source is none -%} {%- if source -%}{%- set _ = parts.append("source=" ~ source) -%}{%- endif -%} {%- elif new_source -%} {%- set _ = parts.append("source=" ~ new_source) -%} {%- endif -%} {%- if not drop_q and q -%}{%- set _ = parts.append("q=" ~ q) -%}{%- endif -%} {%- if parts -%}/?{{ parts|join("&") }}{%- else -%}/{%- endif -%} {%- endmacro %} {% block content %}
{# Desktop header — hidden on mobile via CSS. #}

{{ title }}

{% if new_count > 0 and state != "archived" %} {{ hand_circle() }} {{ new_count }} new {% endif %}
{# HTMX-enhanced search: typing fires a debounced GET against the same endpoint, which returns the inbox-list partial when called with the HX-Request header (see agentdrop.web.inbox.inbox). The wrapping
is preserved so no-JS users can still submit with Enter and get the full page. #} {% if state and state != "all" %} {% endif %} {% if source %} {% endif %}
Settings
{# Mobile header — hidden on desktop via CSS. #}

{{ title }}

{% if new_count > 0 and state != "archived" %} {{ hand_circle(size=26) }} {{ new_count }} new {% endif %}
{% if drops %} {% include "_inbox_list.html" %} {% else %}
No drops in this view.
When an agent posts something, it'll land here — and ping your phone.
{{ loose_arrow() }}
{% endif %}
{% endblock %}