import { Box, Chip, TextField, Typography } from '@mui/material' import { Search } from 'lucide-react' import type { MarketSignal, MarketSignalFilters } from '../../domain/marketSignal' import { MarketSignalCard } from './MarketSignalCard' import { MarketSignalFilterBar } from './MarketSignalFilterBar' import { MarketSignalSkeleton } from './MarketSignalSkeleton' import { MarketSignalEmptyState } from './MarketSignalEmptyState' interface SignalInboxProps { signals: MarketSignal[] isLoading: boolean selectedId: string | null onSelect: (id: string) => void filters: MarketSignalFilters onFiltersChange: (f: MarketSignalFilters) => void } export function SignalInbox({ signals, isLoading, selectedId, onSelect, filters, onFiltersChange, }: SignalInboxProps) { return ( {/* Inbox header */} Signal-Inbox {/* Search */} onFiltersChange({ ...filters, search: e.target.value || undefined })} slotProps={{ input: { startAdornment: , }, }} sx={{ '& .MuiOutlinedInput-root': { fontSize: '0.8rem' } }} /> {/* Filters */} {/* Signal list */} {isLoading ? ( Array.from({ length: 5 }).map((_, i) => ) ) : signals.length === 0 ? ( ) : ( signals.map((signal) => ( onSelect(signal.id)} /> )) )} ) }