diff --git a/src/app/components/search/FilterSidebar.tsx b/src/app/components/search/FilterSidebar.tsx index c0a01f8..3258f52 100644 --- a/src/app/components/search/FilterSidebar.tsx +++ b/src/app/components/search/FilterSidebar.tsx @@ -1,7 +1,7 @@ 'use client'; import React from 'react'; -import { BarChart2, Clock, Tag, Users, Search, RotateCcw, X } from 'lucide-react'; +import { BarChart2, Clock, Tag, Users, Search, RotateCcw, X, Cpu } from 'lucide-react'; import { FilterState } from '../../hooks/useSearchFilters'; interface FilterSidebarProps { @@ -227,6 +227,56 @@ export const FilterSidebar: React.FC = ({ + {/* Node Affinity Filter */} +
+

+ Node Affinity +

+

+ Select target cluster node for query execution and data fetching. +

+
+ {[ + { id: 'auto', label: 'Auto (Optimized)', desc: 'Dynamic load balancing' }, + { id: 'primary', label: 'Primary Cluster', desc: 'Direct consistency check' }, + { id: 'replica', label: 'Replica Node', desc: 'Fast read-heavy execution' }, + { id: 'edge', label: 'Edge Cache', desc: 'Minimal latency routing' }, + ].map((node) => { + const isSelected = (filters.nodeAffinity || 'auto') === node.id; + return ( + + ); + })} +
+
+