summaryrefslogtreecommitdiff
path: root/app/components/FilterBar.tsx
diff options
context:
space:
mode:
authoryyamashita <yyamashita@mosquit.one>2026-05-08 03:50:45 +0900
committeryyamashita <yyamashita@mosquit.one>2026-05-08 03:50:45 +0900
commitae6f6f7f74fd4df7704f963d2f1fdd1f3100668f (patch)
tree11eaf19d5880cbfed32cd41fd2f1a565af50503b /app/components/FilterBar.tsx
parentd116d4cee456f7d8f5fea535742e90a75b05d814 (diff)
Add capacity filter for live houses (~100 / 100~300 / 300~)
- Add capacity field to VenueMeta and all 17 scrapers (researched values) - Add capacity column to venues table with auto-migration for existing DBs - Add capacity_range filter to queryEvents (small/medium/large) - Add capacity selector to FilterBar UI Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'app/components/FilterBar.tsx')
-rw-r--r--app/components/FilterBar.tsx17
1 files changed, 16 insertions, 1 deletions
diff --git a/app/components/FilterBar.tsx b/app/components/FilterBar.tsx
index fd7be72..7b8ca0c 100644
--- a/app/components/FilterBar.tsx
+++ b/app/components/FilterBar.tsx
@@ -63,6 +63,21 @@ export default function FilterBar({ venues, defaultDateFrom, defaultDateTo }: Pr
/>
</div>
+ {/* Capacity */}
+ <div className="flex flex-col gap-1">
+ <label className="text-xs text-gray-400">キャパシティ</label>
+ <select
+ name="capacity_range"
+ defaultValue={searchParams.get("capacity_range") ?? ""}
+ className="rounded-md bg-gray-800 border border-gray-700 px-3 py-1.5 text-sm focus:outline-none focus:ring-1 focus:ring-indigo-500"
+ >
+ <option value="">すべて</option>
+ <option value="small">〜100人(小箱)</option>
+ <option value="medium">100〜300人(中箱)</option>
+ <option value="large">300人〜(大箱)</option>
+ </select>
+ </div>
+
<button
type="submit"
className="rounded-md bg-gray-700 px-4 py-1.5 text-sm font-medium hover:bg-gray-600 transition-colors"
@@ -83,5 +98,5 @@ export default function FilterBar({ venues, defaultDateFrom, defaultDateTo }: Pr
}
function hasFilters(params: URLSearchParams): boolean {
- return ["keyword", "venue_id", "date_from", "date_to"].some((k) => params.get(k));
+ return ["keyword", "venue_id", "date_from", "date_to", "capacity_range"].some((k) => params.get(k));
}