UNPKG

799 BPlain TextView Raw
1import { InfiniteGridItem } from "../InfiniteGridItem";
2import { convertHTMLtoElement } from "../utils";
3import { RendererItem } from "./Renderer";
4import { VanillaRenderer } from "./VanillaRenderer";
5
6export interface GridRendererItem extends RendererItem {
7 orgItem: InfiniteGridItem;
8}
9
10export class VanillaGridRenderer extends VanillaRenderer<GridRendererItem> {
11 public syncItems(nextItems: GridRendererItem[]) {
12 const result = super.syncItems(nextItems);
13 const {
14 added,
15 list,
16 } = result;
17 added.forEach((index) => {
18 const orgItem = nextItems[index].orgItem;
19
20 if (orgItem.html && !orgItem.element) {
21 orgItem.element = convertHTMLtoElement(orgItem.html)[0];
22 }
23 list[index].element = orgItem.element!;
24 });
25
26 return result;
27 }
28}