aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/components/ParksTable.astro
diff options
context:
space:
mode:
authorYasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com>2026-11-07 14:15:45 +0900
committerYasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com>2026-11-07 14:15:45 +0900
commit93236c250c5b074d50418aefe8205d1e090b015d (patch)
treeffe987bed715a7f0ea72f181619db34ec183d09a /src/components/ParksTable.astro
parentb18815afc33a88a63e8be71cc2945db6a4e6b4d2 (diff)
park-icons.ts: 幼児用遊具と草地広場のアイコンを追加し、フィルタ時に地図をフォーカス
- 幼児用ブランコのアイコンを追加し、通常のブランコと区別 - 草地広場を地図上にも表示 - 「幼児用遊具」フィルタを追加 - フィルタ適用・解除時に該当範囲へフォーカス - フキダシの「GMap」を「Google」に変更
Diffstat (limited to 'src/components/ParksTable.astro')
-rw-r--r--src/components/ParksTable.astro17
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);
});
// 地図のポリゴンクリック時は、キーワードを変えずに一覧の行を強調する。