Remove cross-domain template dependencies from shared infrastructure

- macros/search.html: shared search input macros (mobile + desktop)
- macros/cart_icon.html: shared cart icon/badge macro (count param, no DB)
- macros/layout.html: inline hamburger icon, use shared search macro
- _oob.html: use cart_mini_html fragment slot instead of cart template import
- db/session.py: guard teardown rollback against committed/dead sessions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
giles
2026-02-24 17:28:09 +00:00
parent 5518c95237
commit cf2e2ba1db
5 changed files with 140 additions and 9 deletions

View File

@@ -26,7 +26,17 @@
<summary class="bg-white/90">
<div class="flex flex-row items-start">
<div>
{% include '_types/blog/mobile/_filter/_hamburger.html' %}
<div class="md:hidden mx-2 bg-stone-200 rounded">
<span class="flex items-center justify-center text-stone-600 text-lg h-12 w-12 transition-transform group-open/filter:hidden self-start">
<i class="fa-solid fa-filter"></i>
</span>
<span>
<svg aria-hidden="true" viewBox="0 0 24 24"
class="w-12 h-12 rotate-180 transition-transform group-open/filter:block hidden self-start">
<path d="M6 9l6 6 6-6" fill="currentColor"/>
</svg>
</span>
</div>
</div>
<div
id="{{id}}"
@@ -37,8 +47,8 @@
</div>
</div>
{% import '_types/browse/mobile/_filter/search.html' as s %}
{{ s.search(current_local_href, search, search_count, hx_select) }}
{% from 'macros/search.html' import search_mobile %}
{{ search_mobile(current_local_href, search, search_count, hx_select) }}
</div>
</summary>
{%- endmacro %}