diff options
| author | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-11-07 14:15:45 +0900 |
|---|---|---|
| committer | Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> | 2026-11-07 14:15:45 +0900 |
| commit | 93236c250c5b074d50418aefe8205d1e090b015d (patch) | |
| tree | ffe987bed715a7f0ea72f181619db34ec183d09a /src/components/ParksTable.astro | |
| parent | b18815afc33a88a63e8be71cc2945db6a4e6b4d2 (diff) | |
park-icons.ts: 幼児用遊具と草地広場のアイコンを追加し、フィルタ時に地図をフォーカス
- 幼児用ブランコのアイコンを追加し、通常のブランコと区別
- 草地広場を地図上にも表示
- 「幼児用遊具」フィルタを追加
- フィルタ適用・解除時に該当範囲へフォーカス
- フキダシの「GMap」を「Google」に変更
Diffstat (limited to 'src/components/ParksTable.astro')
| -rw-r--r-- | src/components/ParksTable.astro | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/components/ParksTable.astro b/src/components/ParksTable.astro index 4de8515..5b7f5ac 100644 --- a/src/components/ParksTable.astro +++ b/src/components/ParksTable.astro @@ -159,6 +159,7 @@ function facTokens(p: Park): string { if ((p["シェルター等"] || "").trim()) tokens.push("shelter"); if (HEALTH_TOKENS.some((token) => play.includes(token))) tokens.push("health"); if (hasSpecialToy(play)) tokens.push("special"); + if (play.includes("幼児")) tokens.push("toddler"); const clock = (p["時計"] || "").trim(); if (clock === "○" || clock === "あり" || clock === "有" || clock === "1") tokens.push("clock"); if (p["南西部指定管理"]) tokens.push("cm"); @@ -845,7 +846,7 @@ function isUnconfirmed(p: Park): boolean { let sortDir = 1; let selectedName = ""; - const applyFilter = () => { + const applyFilter = (focus: boolean | "later" = false) => { const kind = kindSelect ? kindSelect.value : ""; const town = select ? select.value : ""; const query = search ? search.value.trim().toLowerCase() : ""; @@ -880,6 +881,7 @@ function isUnconfirmed(p: Park): boolean { kind || town || query || wanted.length || selectedName || onlyUnconfirmed, ), fromMap, + focus, }, }), ); @@ -913,15 +915,15 @@ function isUnconfirmed(p: Park): boolean { }; select?.addEventListener("change", () => { clearSelected(); - applyFilter(); + applyFilter(true); }); kindSelect?.addEventListener("change", () => { clearSelected(); - applyFilter(); + applyFilter(true); }); search?.addEventListener("input", () => { clearSelected(); - applyFilter(); + applyFilter("later"); updateSearchClear(); }); const updateSearchClear = () => { @@ -931,18 +933,19 @@ function isUnconfirmed(p: Park): boolean { if (!search) return; search.value = ""; updateSearchClear(); - search.dispatchEvent(new Event("input", { bubbles: true })); + clearSelected(); + applyFilter(true); search.focus(); }); checks.forEach((c) => c.addEventListener("change", () => { clearSelected(); - applyFilter(); + applyFilter(true); }), ); unconfirmedBox?.addEventListener("change", () => { clearSelected(); - applyFilter(); + applyFilter(true); }); // 地図のポリゴンクリック時は、キーワードを変えずに一覧の行を強調する。 |
