store events in SortedMap to avoid sort on render

This commit is contained in:
Martti Malmi
2024-01-04 18:11:38 +02:00
parent 47d92fe171
commit 5d259cee95
6 changed files with 239 additions and 5 deletions

View File

@ -1,4 +1,4 @@
import { appendDedupe } from "@snort/shared";
import { appendDedupe, SortedMap } from "@snort/shared";
import { EventExt, EventType, TaggedNostrEvent, u256 } from ".";
import { findTag } from "./utils";
@ -196,7 +196,7 @@ export class FlatNoteStore extends HookedNoteStore<Array<TaggedNostrEvent>> {
*/
export class KeyedReplaceableNoteStore extends HookedNoteStore<Array<TaggedNostrEvent>> {
#keyFn: (ev: TaggedNostrEvent) => string;
#events: Map<string, TaggedNostrEvent> = new Map();
#events: SortedMap<string, TaggedNostrEvent> = new SortedMap([], (a, b) => b[1].created_at - a[1].created_at);
constructor(fn: (ev: TaggedNostrEvent) => string) {
super();