import { ExternalLink } from 'lucide-react';
import type { Item } from '@shared/models/item';
import { ItemPricesPanel } from './item-prices-panel';
import { formatAttributeValue, getPriceSummaryDisplay } from './project-items-utils';
import { ItemThumbnail } from './item-thumbnail';
interface ProjectItemsMobileListProps {
items: Item[];
visibleAttributes: string[];
expandedItemId: string | null;
onTogglePrices: (itemId: string) => void;
onEditItem: (item: Item) => void;
projectId: string | undefined;
}
export function ProjectItemsMobileList({
items,
visibleAttributes,
expandedItemId,
onTogglePrices,
onEditItem,
projectId
}: ProjectItemsMobileListProps) {
return (
{items.map((item) => {
const attributes = (item.attributes ?? {}) as Record
;
const priceDisplay = getPriceSummaryDisplay(item.priceSummary);
const isExpanded = expandedItemId === item.id;
const panelId = `item-${item.id}-prices-mobile`;
const displayName = item.manufacturer ? `${item.manufacturer} ${item.model}` : item.model;
return (
{item.sourceUrl ? (
Open source link
) : null}
{item.note ?
Note: {item.note}
: null}
{visibleAttributes.map((attribute) => (
{attribute}
{formatAttributeValue(attributes[attribute])}
))}
{priceDisplay.secondary ? (
{priceDisplay.secondary}
) : null}
{isExpanded ? (
) : null}
);
})}
);
}