From e07fb3a72ae574ce9b9964300bf70419e1cfb101 Mon Sep 17 00:00:00 2001 From: Mischa Date: Mon, 22 Jun 2026 01:12:52 +0200 Subject: [PATCH] feat(map): exit fullscreen on marker click, then scroll to entry When fullscreen is active, clicking a marker now triggers fsBtn.click() to exit cleanly (handles class, body overflow, tripMap.resize + icon), then waits 450ms for the exit animation before scrolling to the entry and firing the highlight. Also fixes missing icon-swap CSS for .home-map-col.is-fullscreen (was only targeting .feed-map-wrap). Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01Vgmzx8VTTTmCskSpQtsLTr --- themes/intotheeast/css/style.css | 6 ++++-- themes/intotheeast/templates/trip.html.twig | 21 ++++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/themes/intotheeast/css/style.css b/themes/intotheeast/css/style.css index 8610f21..4695e0d 100644 --- a/themes/intotheeast/css/style.css +++ b/themes/intotheeast/css/style.css @@ -705,8 +705,10 @@ body::after { .feed-map-wrap.is-fullscreen .feed-map-link { display: none; } -.feed-map-wrap.is-fullscreen .feed-map-fs-open { display: none; } -.feed-map-wrap.is-fullscreen .feed-map-fs-close { display: block; } +.feed-map-wrap.is-fullscreen .feed-map-fs-open, +.home-map-col.is-fullscreen .feed-map-fs-open { display: none; } +.feed-map-wrap.is-fullscreen .feed-map-fs-close, +.home-map-col.is-fullscreen .feed-map-fs-close { display: block; } .feed-map-link { display: block; diff --git a/themes/intotheeast/templates/trip.html.twig b/themes/intotheeast/templates/trip.html.twig index 9879cde..72eb354 100644 --- a/themes/intotheeast/templates/trip.html.twig +++ b/themes/intotheeast/templates/trip.html.twig @@ -287,11 +287,22 @@ tripMap.on('load', function () { el.addEventListener('click', function () { var card = document.getElementById('entry-' + entry.slug); if (!card) return; - window.location.hash = 'entry-' + entry.slug; - setTimeout(function () { - card.classList.add('is-highlighted'); - setTimeout(function () { card.classList.remove('is-highlighted'); }, 700); - }, 350); + var mapCol = document.querySelector('.home-map-col'); + var isFs = mapCol && mapCol.classList.contains('is-fullscreen'); + function scrollAndHighlight() { + window.location.hash = 'entry-' + entry.slug; + setTimeout(function () { + card.classList.add('is-highlighted'); + setTimeout(function () { card.classList.remove('is-highlighted'); }, 700); + }, 350); + } + if (isFs) { + var fsBtn = document.getElementById('trip-map-fullscreen'); + if (fsBtn) fsBtn.click(); + setTimeout(scrollAndHighlight, 450); + } else { + scrollAndHighlight(); + } }); new maplibregl.Marker({ element: el }).setLngLat(lngLat).addTo(tripMap);