{filteredItems.map((item) => (
{
const detail = ReadingItemDetail({ item });
return navigateTo(detail);
}}
>
{lift((t: ItemType) => typeEmoji[t] || "📄")(item.type)}
{item.title || "(untitled)"}
{item.author && (
by {item.author}
)}
{item.status}
{item.rating && (
{renderStars(item.rating)}
)}
{
const current = items.get();
const idx = current.findIndex((i) =>
Cell.equals(item, i)
);
if (idx >= 0) {
items.set(current.toSpliced(idx, 1));
}
}}
>
×
))}
{ifElse(
lift((count: number) => count === 0)(filteredCount),
No items yet. Add something to read!
,
null,
)}