Modify loader, apply changes to app stores
This commit is contained in:
+16
-14
@@ -1,28 +1,30 @@
|
||||
import {MUTES, asDecryptedEvent, readList} from "@welshman/util"
|
||||
import {TrustedEvent, PublishedList} from "@welshman/util"
|
||||
import {deriveEventsMapped, collection} from "@welshman/store"
|
||||
import {deriveItemsByKey, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem, getter} from "@welshman/store"
|
||||
import {repository} from "./core.js"
|
||||
import {ensurePlaintext} from "./plaintext.js"
|
||||
import {makeOutboxLoader} from "./relaySelections.js"
|
||||
|
||||
export const mutes = deriveEventsMapped<PublishedList>(repository, {
|
||||
filters: [{kinds: [MUTES]}],
|
||||
itemToEvent: item => item.event,
|
||||
export const mutesByPubkey = deriveItemsByKey({
|
||||
repository,
|
||||
eventToItem: async (event: TrustedEvent) =>
|
||||
readList(
|
||||
asDecryptedEvent(event, {
|
||||
content: await ensurePlaintext(event),
|
||||
}),
|
||||
),
|
||||
filters: [{kinds: [MUTES]}],
|
||||
getKey: mute => mute.event.pubkey,
|
||||
})
|
||||
|
||||
export const {
|
||||
indexStore: mutesByPubkey,
|
||||
deriveItem: deriveMutes,
|
||||
loadItem: loadMutes,
|
||||
} = collection({
|
||||
name: "mutes",
|
||||
store: mutes,
|
||||
getKey: mute => mute.event.pubkey,
|
||||
load: makeOutboxLoader(MUTES),
|
||||
})
|
||||
export const mutes = deriveItems(mutesByPubkey)
|
||||
|
||||
export const getMutesByPubkey = getter(mutesByPubkey)
|
||||
|
||||
export const getMutes = (pubkey: string) => getMutesByPubkey().get(pubkey)
|
||||
|
||||
export const forceLoadMutes = makeForceLoadItem(makeOutboxLoader(MUTES), getMutes)
|
||||
|
||||
export const loadMutes = makeLoadItem(makeOutboxLoader(MUTES), getMutes)
|
||||
|
||||
export const deriveMutes = makeDeriveItem(mutesByPubkey, loadMutes)
|
||||
|
||||
Reference in New Issue
Block a user