import { useSearchImageContext } from "@contexts/SearchImageContext"; import { Component, For } from "solid-js"; import { createVirtualizer } from "@tanstack/solid-virtual"; import { ImageComponent } from "@components/image"; import { chunkRows } from "./chunk"; type ImageOrDate = | { type: "image"; ID: string[] } | { type: "date"; date: Date }; export const AllImages: Component = () => { let scrollRef: HTMLDivElement | undefined; const { imagesByDate } = useSearchImageContext(); const items = () => { const items: Array = []; for (const { date, images } of imagesByDate()) { items.push({ type: "date", date }); const chunkedRows = chunkRows(3, images); for (const chunk of chunkedRows) { items.push({ type: "image", ID: chunk.map((c) => c.ImageID) }); } } return items; }; const rowVirtualizer = createVirtualizer({ count: items().length, estimateSize: () => 400, getScrollElement: () => scrollRef!, overscan: 3, }); return (
{(i) => { const item = items()[i.index]; if (item.type === "image") { return ( {(id) => } ); } else { return (

{item.date.toDateString()}

); } }}
); };