Handle entries not existing in providers during flattening op

merge-requests/67/merge
Hank Grabowski 2024-12-18 23:50:25 -05:00
rodzic 5d1967bb3b
commit 1df885117b
1 zmienionych plików z 25 dodań i 9 usunięć

Wyświetl plik

@ -18,10 +18,15 @@ extension FlatteningExtensions on EntryTreeItem {
final items = <FlattenedTreeItem>[];
// TODO handle if entries aren't in manager
final entryForItem =
ref.read(timelineEntryManagerProvider(profile, id)).value;
final entryForItemResult =
ref.read(timelineEntryManagerProvider(profile, id));
final entryForItem = entryForItemResult.value;
if (entryForItemResult.isFailure) {
return [];
}
final myEntry = FlattenedTreeItem(
timelineEntry: entryForItem,
timelineEntry: entryForItemResult.value,
isMine: isMine,
level: level,
);
@ -31,14 +36,25 @@ extension FlatteningExtensions on EntryTreeItem {
return items;
}
final sortedChildren = children.map((id) {
final tree = ref.read(entryTreeManagerProvider(profile, id)).value;
final entry = ref.read(timelineEntryManagerProvider(profile, id)).value;
return _EntryTreeItemWithEntity(entry, tree);
}).toList();
final sortedChildren = children
.map((id) {
final treeResult = ref.read(entryTreeManagerProvider(profile, id));
final entryResult =
ref.read(timelineEntryManagerProvider(profile, id));
if (treeResult.isFailure || entryResult.isFailure) {
return null;
}
final tree = ref.read(entryTreeManagerProvider(profile, id)).value;
final entry =
ref.read(timelineEntryManagerProvider(profile, id)).value;
return _EntryTreeItemWithEntity(entry, tree);
})
.where((e) => e != null)
.toList();
for (final child in sortedChildren) {
int childLevel = level + 1;
if (child.entry.authorId == entryForItem.authorId && level != baseLevel) {
if (child!.entry.authorId == entryForItem.authorId &&
level != baseLevel) {
childLevel = level;
}