Zmiany w modalach

This commit is contained in:
dm
2025-12-13 11:25:11 +01:00
parent 99b83b7773
commit 32d77ac5ad
7 changed files with 704 additions and 703 deletions

View File

@@ -31,10 +31,13 @@ export default function JamboxChannelsSearch() {
params.set("q", qq);
params.set("limit", "80");
const res = await fetch(`/api/jambox/channels-search?${params.toString()}`, {
signal: ac.signal,
headers: { Accept: "application/json" },
});
const res = await fetch(
`/api/jambox/channels-search?${params.toString()}`,
{
signal: ac.signal,
headers: { Accept: "application/json" },
}
);
const json = await res.json();
if (!res.ok || !json.ok) throw new Error(json?.error || "API_ERROR");
@@ -68,76 +71,81 @@ export default function JamboxChannelsSearch() {
el.scrollIntoView({ behavior: "smooth", block: "start" });
el.classList.add("is-target");
setTimeout(() => el.classList.remove("is-target"), 1200);
window.setTimeout(() => el.classList.remove("is-target"), 1200);
}
return (
<div class="fuz-chsearch">
<div class="f-chsearch">
<h1 class="f-section-title">Wyszukiwanie kanałów w pakietach telewizji</h1>
<div class="fuz-chsearch__top">
<input
class="fuz-chsearch__input"
type="search"
value={q}
onInput={(e) => setQ(e.currentTarget.value)}
placeholder="Szukaj kanału po nazwie…"
aria-label="Szukaj kanału po nazwie"
/>
<div class="fuz-chsearch__meta">
{meta}
<div class="f-chsearch__top">
<div class="f-chsearch__inputwrap">
<input
class="f-chsearch__input"
type="search"
value={q}
onInput={(e) => setQ(e.currentTarget.value)}
placeholder="Szukaj kanału po nazwie…"
aria-label="Szukaj kanału po nazwie"
/>
{q && (
<button
type="button"
class="f-chsearch__clear"
aria-label="Wyczyść wyszukiwanie"
onClick={() => setQ("")}
>
</button>
)}
</div>
<div class="f-chsearch__meta">{meta}</div>
</div>
<div class="fuz-chsearch__list" role="list">
<div class="f-chsearch__list" role="list">
{items.map((c) => (
<div class="fuz-chsearch__row" role="listitem" key={`${c.name}-${c.logo_url || ""}`}>
<div
class="f-chsearch__row"
role="listitem"
key={`${c.name}-${c.logo_url || ""}`}
>
{/* kolumna 1 */}
<div class="fuz-chsearch__left">
<div class="f-chsearch__left">
{c.logo_url && (
<img
src={c.logo_url}
alt={c.name}
class="fuz-chsearch__logo"
class="f-chsearch__logo"
loading="lazy"
/>
)}
<div class="fuz-chsearch__channel-name">
{c.name}
</div>
{/* <div class="fuz-chsearch__channel-number">
kanał {c.min_number || "—"}
</div> */}
<div class="f-chsearch__channel-name">{c.name}</div>
</div>
{/* kolumna 2 */}
<div class="fuz-chsearch__right">
<div class="f-chsearch__right">
<div
class="fuz-chsearch__desc fuz-chsearch__desc--html"
dangerouslySetInnerHTML={{ __html: c.description || "<em>—</em>" }}
class="f-chsearch__desc f-chsearch__desc--html"
dangerouslySetInnerHTML={{
__html: c.description || "<em>—</em>",
}}
/>
{Array.isArray(c.packages) && c.packages.length > 0 && (
<div class="fuz-chsearch__packages">
<div class="f-chsearch__packages">
Dostępny w:&nbsp;
{c.packages.map((p, i) => (
// <span class="fuz-chsearch__pkg" key={p.id}>
// {p.name}{" "}
// <span class="fuz-chsearch__pkgnum">(kanał {p.number})</span>
// {i < c.packages.length - 1 ? ", " : ""}
// </span>
<button
type="button"
class="fuz-chsearch__pkg"
class="f-chsearch__pkg"
key={p.id}
onClick={() => scrollToPackage(p.id)}
>
{p.name}{" "}
<span class="fuz-chsearch__pkgnum">(kanał {p.number})</span>
<span class="f-chsearch__pkgnum">(kanał {p.number})</span>
{i < c.packages.length - 1 ? ", " : ""}
</button>
))}
@@ -148,7 +156,7 @@ export default function JamboxChannelsSearch() {
))}
{q.trim().length >= 2 && !loading && items.length === 0 && (
<div class="fuz-chsearch__empty">
<div class="f-chsearch__empty">
Brak wyników dla: <strong>{q}</strong>
</div>
)}