From 5c2f3291747953d19356d50101c8dd5374de0952 Mon Sep 17 00:00:00 2001 From: dm Date: Wed, 17 Dec 2025 08:28:25 +0100 Subject: [PATCH] =?UTF-8?q?Dostosowanie=20pakiet=C3=B3w=20tematycznych?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/content/internet-telewizja/addons.yaml | 2 +- src/content/internet-telewizja/tv-addons.yaml | 2 + src/islands/jambox/JamboxAddonsModal.jsx | 28 +++-- src/islands/jambox/JamboxChannelsSearch.jsx | 31 ++--- .../pakiety-tematyczne.astro | 106 ++++++++++++------ src/styles/addons.css | 5 +- src/styles/jambox-tematyczne.css | 25 +++-- 7 files changed, 129 insertions(+), 70 deletions(-) diff --git a/src/content/internet-telewizja/addons.yaml b/src/content/internet-telewizja/addons.yaml index 468d27a..8008df5 100644 --- a/src/content/internet-telewizja/addons.yaml +++ b/src/content/internet-telewizja/addons.yaml @@ -1,4 +1,4 @@ -tytul: "Dodatkowe usługi" +tytul: "Dodatkowe usługi 2" opis: "Wybierz usługi dodatkowe do internetu z telewizją." cena_opis: "zł/mies." diff --git a/src/content/internet-telewizja/tv-addons.yaml b/src/content/internet-telewizja/tv-addons.yaml index 00e5fb2..daf9b81 100644 --- a/src/content/internet-telewizja/tv-addons.yaml +++ b/src/content/internet-telewizja/tv-addons.yaml @@ -155,6 +155,7 @@ dodatki: - id: disney_standard nazwa: Disney+ Standard typ: checkbox + tid: 10001 opis: | Historie na całe życie czekają. Odkryj hity filmowe, nowe seriale i produkcje oryginalne ze świata Disneya, Pixara, Gwiezdnych wojen, Marvela, a także produkcje Hulu, National Geographic i FX. Oglądaj, kiedy chcesz. @@ -180,6 +181,7 @@ dodatki: - id: disney_premium nazwa: Disney+ Premium typ: checkbox + tid: 10002 opis: | Historie na całe życie czekają. Odkryj hity filmowe, nowe seriale i produkcje oryginalne ze świata Disneya, Pixara, Gwiezdnych wojen, Marvela, a także produkcje Hulu, National Geographic i FX. Oglądaj, kiedy chcesz. diff --git a/src/islands/jambox/JamboxAddonsModal.jsx b/src/islands/jambox/JamboxAddonsModal.jsx index bb3a1cf..2b225bf 100644 --- a/src/islands/jambox/JamboxAddonsModal.jsx +++ b/src/islands/jambox/JamboxAddonsModal.jsx @@ -335,17 +335,23 @@ export default function JamboxAddonsModal({
-
{a.nazwa}
- {/* {a.opis &&
{a.opis}
} */} - - Przejdź do szczegółowch informacji o pakiecie tematycznnym - +
{a.nazwa}
+ +{isTv && a.tid ? ( + e.stopPropagation()} + > + Przejdź do szczegółowych informacji pakietu {a.nazwa ?? ""} + +) : ( + a.opis ?
{a.opis}
: null +)} {termPricing && (
e.stopPropagation()}> diff --git a/src/islands/jambox/JamboxChannelsSearch.jsx b/src/islands/jambox/JamboxChannelsSearch.jsx index c976d7a..7038764 100644 --- a/src/islands/jambox/JamboxChannelsSearch.jsx +++ b/src/islands/jambox/JamboxChannelsSearch.jsx @@ -292,18 +292,18 @@ export default function JamboxChannelsSearch() {
@@ -420,17 +420,18 @@ export default function JamboxChannelsSearch() { Dostępny w pakietach tematycznych:  {c.thematic_packages.map((p) => ( - window.open( + `/internet-telewizja/pakiety-tematyczne#tid-${encodeURIComponent(p.tid)}`, + "_blank", + "noopener,noreferrer" + )} title="Otwórz w nowej karcie" > {p.name} - + ))}
diff --git a/src/pages/internet-telewizja/pakiety-tematyczne.astro b/src/pages/internet-telewizja/pakiety-tematyczne.astro index be1d642..5f6a7b6 100644 --- a/src/pages/internet-telewizja/pakiety-tematyczne.astro +++ b/src/pages/internet-telewizja/pakiety-tematyczne.astro @@ -47,44 +47,80 @@ const addons: TvAddon[] = Array.isArray(doc?.dodatki) ? doc.dodatki : []; - {addons.map((addon: TvAddon, index: number) => { - const isAboveFold = index === 0; + { + addons.map((addon: TvAddon, index: number) => { + const isAboveFold = index === 0; - const hasYamlImage = !!String(addon?.image ?? "").trim(); - const pkgName = String(addon?.nazwa ?? "").trim(); + const hasYamlImage = !!String(addon?.image ?? "").trim(); + const pkgName = String(addon?.nazwa ?? "").trim(); - const assumeHasMedia = pkgName ? true : hasYamlImage; - const anchorId = addon?.tid != null ? String(addon.tid) : undefined; + const assumeHasMedia = pkgName ? true : hasYamlImage; + const anchorId = addon?.tid != null ? `tid-${addon.tid}` : undefined; - return ( -
-
- {/* TEKST — lewa, od góry */} -
- {pkgName &&

{pkgName}

} - {addon?.opis && } + return ( +
+
+
+ {pkgName &&

{pkgName}

} + {addon?.opis && } +
+ +
+ {pkgName ? ( + + ) : null} +
+
+ ); + }) + } + + - {/* MEDIA — prawa */} -
- {pkgName ? ( - - ) : null} -
-
-
- ); - })} diff --git a/src/styles/addons.css b/src/styles/addons.css index 67fbd2c..19df908 100644 --- a/src/styles/addons.css +++ b/src/styles/addons.css @@ -460,4 +460,7 @@ .f-radio-details { @apply pl-10 pr-3 pb-3 -mt-1 text-sm; /* pl-10 = przesunięcie w prawo (radio + gap) */ - } \ No newline at end of file + } + + + \ No newline at end of file diff --git a/src/styles/jambox-tematyczne.css b/src/styles/jambox-tematyczne.css index 9e7c662..cc99834 100644 --- a/src/styles/jambox-tematyczne.css +++ b/src/styles/jambox-tematyczne.css @@ -1,13 +1,24 @@ -/* =========================== - TV ADDONS — LAYOUT FIXES - =========================== */ +/* addon grid do góry */ +.f-addon-section { align-items: start; } -/* f-section-grid ma u Ciebie items-center (centrowanie w pionie), - więc dla addonów wymuszamy start (od góry). */ -.f-addon-section { - align-items: start; /* override dla grid items */ +/* (opcjonalnie) jeśli navbar na desktop ma inną wysokość */ +@media (min-width: 768px){ + section.f-section[id^="tid-"]{ + scroll-margin-top: calc(var(--f-navbar-height, 72px) + 8px); + } } + +/* 1 kolumna + ukryj media gdy brak */ +[data-addon-section][data-has-media="0"] { + grid-template-columns: 1fr !important; +} + +[data-addon-section][data-has-media="0"] .f-addon-media { + display: none; +} + + /* Gdy island stwierdzi brak ikon i brak fallback image: - 1 kolumna - ukryj pusty blok mediów