diff --git a/src/services/timeline_search.ts b/src/services/timeline_search.ts index 03ad62e..5d1535e 100644 --- a/src/services/timeline_search.ts +++ b/src/services/timeline_search.ts @@ -24,7 +24,7 @@ export class TimelineSearch { } }); - this.timelinePosts = timeline; + this.timelinePosts = this.deduplicatePosts(timeline); } calculateProgress(dataPage: json[], startTime: number) { @@ -37,6 +37,16 @@ export class TimelineSearch { return daysBack; } + deduplicatePosts(records: json[]): json[] { + let lastIndexMap: Record = {}; // reverse-chrono so last is earliest + + for (let [i, record] of records.entries()) { + lastIndexMap[record.post.uri] = i; + } + + return records.filter((record, i) => lastIndexMap[record.post.uri] === i); + } + searchPosts(query: string): Post[] { if (query.length == 0) { return [];