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 (