import React, { useState } from "react"; import { Squares2X2Icon, Bars3Icon } from "@heroicons/react/24/solid"; export type ListViewProps = { items: T[]; layout: "square" | "horizontal"; renderItem: (item: T, layout: "square" | "horizontal") => React.ReactNode; onLoadMore: () => void; hasMore: boolean; loadingMore: boolean; }; export function ListView({ items, layout, renderItem, onLoadMore, hasMore, loadingMore }: ListViewProps) { return (
{/* Items */}
{items.map(item => renderItem(item, layout))}
{/* Load More */} {hasMore && (
)}
); }