feat(mapa): strip persistent de fonts + línia 'Font:' al popup
Acaba d'arribar a 0 la manca de transparència que l'usuaria va senyalar: el mapa mostra Mallorca groc i Eivissa blau sense explicar per què, i això podia semblar una tria editorial. 1. Strip de fonts persistent sota el mapa a /mapa: 'Per què cada illa té una capa diferent?' — targetes per a Mallorca/Menorca (Airbnb Inside), Eivissa (HUT Consell) i Formentera (IBESTAT 2019 única font pública). 2. Línia 'Font:' al popup que canvia segons el context: - Capa Possibles vacants / Habitatges totals → INE 59531 - Capa Pressio turística + click M/Mn → Inside Airbnb - Capa Pressio turística + click Eivissa → HUT - Capa Pressio turística + click Formentera → IBESTAT 2019 Texts dins T (no pas t(): el client-side script ja té T com a única font d'estrings del navegador). astro-check: 0 errors.
This commit is contained in:
@@ -148,6 +148,10 @@ const popupTitleTmpl = t(lang, "map.popup_title");
|
||||
legend_islands_ef: lang === "es" ? "Ibiza / Formentera (municipio)" : "Eivissa / Formentera (municipi)",
|
||||
legend_islands_all_mun: lang === "es" ? "Todas (municipio)" : "Totes (municipi)",
|
||||
legend_islands_tourism: lang === "es" ? "Airbnb + HUT simultáneos" : "Airbnb + HUT simultanis",
|
||||
popup_source_ine: lang === "es" ? "Fuente: INE, Censo 2021, tabla 59531" : "Font: INE, Cens 2021, taula 59531",
|
||||
popup_source_airbnb: lang === "es" ? "Fuente: Inside Airbnb (Mallorca y Menorca, junio 2026)" : "Font: Inside Airbnb (Mallorca i Menorca, juny 2026)",
|
||||
popup_source_hut_eivissa: lang === "es" ? "Fuente: Registro HUT, Consell d'Eivissa (julio 2026)" : "Font: Registre HUT, Consell d'Eivissa (juliol 2026)",
|
||||
popup_source_ibestat_formentera: lang === "es" ? "Fuente: IBESTAT 2019 (agregado isla, Formentera)" : "Font: IBESTAT 2019 (agregat illa, Formentera)",
|
||||
};
|
||||
|
||||
const DESC: Record<string, string> = {
|
||||
@@ -681,7 +685,18 @@ const popupTitleTmpl = t(lang, "map.popup_title");
|
||||
lines.push(sectionTitle("Més dades HUT (juliol 2026)"));
|
||||
for (const f of remaining) lines.push(row(f, Number(p[f] ?? 0)));
|
||||
}
|
||||
lines.push(`<div class="text-[10px] text-stone-500 mt-2 italic">${T.granularitat}: ${granLabel}</div>`);
|
||||
|
||||
let sourceKey = "popup_source_ine";
|
||||
if (activeVariable === "pressio_turistica") {
|
||||
if (kind === "airbnb") sourceKey = "popup_source_airbnb";
|
||||
else if (kind === "hut") {
|
||||
sourceKey = String(p.isla) === "Formentera"
|
||||
? "popup_source_ibestat_formentera"
|
||||
: "popup_source_hut_eivissa";
|
||||
}
|
||||
}
|
||||
lines.push(`<div class="text-[10px] text-stone-500 mt-1.5 leading-snug">${escape(T[sourceKey] ?? "")}</div>`);
|
||||
lines.push(`<div class="text-[10px] text-stone-400 italic">${T.granularitat}: ${granLabel}</div>`);
|
||||
new Popup({ closeButton: true })
|
||||
.setLngLat(e.lngLat)
|
||||
.setHTML(lines.join(""))
|
||||
|
||||
@@ -3,7 +3,7 @@ export const prerender = false;
|
||||
import Base from "../layouts/Base.astro";
|
||||
import Mapa from "../components/Mapa.astro";
|
||||
import ConsumoDistribucion from "../components/ConsumoDistribucion.astro";
|
||||
import { getLangFromAstroCookies, type Lang } from "../i18n";
|
||||
import { getLangFromAstroCookies, t, type Lang } from "../i18n";
|
||||
|
||||
const lang: Lang = getLangFromAstroCookies(Astro.cookies);
|
||||
---
|
||||
@@ -11,4 +11,29 @@ const lang: Lang = getLangFromAstroCookies(Astro.cookies);
|
||||
<Base lang={lang} active="map" title={undefined} description={undefined}>
|
||||
<Mapa />
|
||||
<ConsumoDistribucion lang={lang} />
|
||||
|
||||
<section class="max-w-6xl mx-auto px-4 py-8">
|
||||
<div class="bg-stone-50 border border-stone-200 rounded-lg p-4 sm:p-5">
|
||||
<h3 class="text-sm font-bold text-stone-900 mb-1">
|
||||
{t(lang, "map.sources_strip_title")}
|
||||
</h3>
|
||||
<p class="text-xs text-stone-600 mb-3 leading-snug max-w-3xl">
|
||||
{t(lang, "map.sources_strip_intro")}
|
||||
</p>
|
||||
<dl class="grid grid-cols-1 sm:grid-cols-3 gap-3 text-xs">
|
||||
<div class="bg-white rounded p-2.5 border border-stone-200">
|
||||
<dt class="font-semibold text-stone-900 mb-0.5">{t(lang, "map.sources_strip_pm")}</dt>
|
||||
<dd class="text-stone-600 leading-snug">{t(lang, "map.sources_strip_pm_desc")}</dd>
|
||||
</div>
|
||||
<div class="bg-white rounded p-2.5 border border-stone-200">
|
||||
<dt class="font-semibold text-stone-900 mb-0.5">{t(lang, "map.sources_strip_eivissa")}</dt>
|
||||
<dd class="text-stone-600 leading-snug">{t(lang, "map.sources_strip_eivissa_desc")}</dd>
|
||||
</div>
|
||||
<div class="bg-white rounded p-2.5 border border-stone-200">
|
||||
<dt class="font-semibold text-stone-900 mb-0.5">{t(lang, "map.sources_strip_formentera")}</dt>
|
||||
<dd class="text-stone-600 leading-snug">{t(lang, "map.sources_strip_formentera_desc")}</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</div>
|
||||
</section>
|
||||
</Base>
|
||||
|
||||
Reference in New Issue
Block a user