MCPcopy Create free account
hub / github.com/AmazingAng/PolyWorld / SettingsPanel

Function SettingsPanel

src/components/SettingsPanel.tsx:28–124  ·  view source on GitHub ↗
({
  activeCategories,
  onToggleCategory,
  timeRange,
  onTimeRangeChange,
  autoRefresh,
  onToggleAutoRefresh,
}: SettingsPanelProps)

Source from the content-addressed store, hash-verified

26}
27
28export default function SettingsPanel({
29 activeCategories,
30 onToggleCategory,
31 timeRange,
32 onTimeRangeChange,
33 autoRefresh,
34 onToggleAutoRefresh,
35}: SettingsPanelProps) {
36 return (
37 <div className="font-mono">
38 {/* Categories */}
39 <div className="mb-4">
40 <div className="text-[13px] uppercase tracking-[0.15em] text-[#777] mb-2">
41 categories
42 </div>
43 <div className="space-y-0.5">
44 {CATEGORIES.map((cat) => {
45 const active = activeCategories.has(cat);
46 return (
47 <label
48 key={cat}
49 className="flex items-center gap-2 py-1 px-1.5 cursor-pointer hover:bg-[#fff]/5 transition-colors text-[12px]"
50 onClick={() => onToggleCategory(cat)}
51 >
52 <span
53 className="w-2 h-2 rounded-sm shrink-0 border"
54 style={{
55 background: active ? CATEGORY_COLORS[cat] : "transparent",
56 borderColor: active ? CATEGORY_COLORS[cat] : "#444",
57 }}
58 />
59 <span className={active ? "text-[#ccc]" : "text-[#777]"}>
60 {cat.toLowerCase()}
61 </span>
62 </label>
63 );
64 })}
65 </div>
66 </div>
67
68 {/* Time Range */}
69 <div className="mb-4">
70 <div className="text-[13px] uppercase tracking-[0.15em] text-[#777] mb-2">
71 time range
72 </div>
73 <div className="flex flex-wrap gap-1">
74 {TIME_OPTIONS.map((opt) => (
75 <button
76 key={opt}
77 onClick={() => onTimeRangeChange(opt)}
78 className={`px-2 py-1 text-[12px] border transition-colors ${
79 timeRange === opt
80 ? "bg-[#fff]/10 text-[#e8e8e8] border-[#444]"
81 : "text-[#777] border-[#1e1e1e] hover:text-[#a0a0a0] hover:border-[#333]"
82 }`}
83 >
84 {opt}
85 </button>

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected