common: do not render undefined items

This commit is contained in:
Abdullah Atta
2024-03-21 12:06:56 +05:00
parent 76e766583c
commit feaa207f68
2 changed files with 6 additions and 4 deletions

View File

@@ -39,7 +39,8 @@ export function useResolvedItem<TItemType extends ItemType>(
[index, items]
);
if (result.status === "rejected" || !result.value) return null;
if (result.status === "rejected" || !result.value || !result.value.item)
return null;
if (type && result.value.item.type !== type) return null;
return result.value;
}
@@ -53,7 +54,8 @@ export function useUnresolvedItem<TItemType extends ItemType>(
const { index, items, type } = options;
const result = usePromise(() => items.item(index), [index, items]);
if (result.status === "rejected" || !result.value) return null;
if (result.status === "rejected" || !result.value || !result.value.item)
return null;
if (type && result.value.item.type !== type) return null;
return result.value;
}

View File

@@ -81,11 +81,11 @@ export class VirtualizedGrouping<T> {
};
}
item(index: number): Promise<{ item: T; group?: GroupHeader }>;
item(index: number): Promise<{ item?: T; group?: GroupHeader }>;
item(
index: number,
operate: BatchOperator<T>
): Promise<{ item: T; group?: GroupHeader; data: unknown }>;
): Promise<{ item?: T; group?: GroupHeader; data: unknown }>;
async item(index: number, operate?: BatchOperator<T>) {
const batchIndex = Math.floor(index / this.batchSize);
const { items, groups, data } =