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