1 | import { InfiniteGridItem } from "../InfiniteGridItem";
|
2 | import { convertHTMLtoElement } from "../utils";
|
3 | import { RendererItem } from "./Renderer";
|
4 | import { VanillaRenderer } from "./VanillaRenderer";
|
5 |
|
6 | export interface GridRendererItem extends RendererItem {
|
7 | orgItem: InfiniteGridItem;
|
8 | }
|
9 |
|
10 | export 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 | }
|