From 87645bfad3943e1110e4cb2e038124083e8ae793 Mon Sep 17 00:00:00 2001 From: vnugent Date: Sun, 28 Jan 2024 19:56:02 -0500 Subject: progress update --- extension/src/features/nostr-api.ts | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) (limited to 'extension/src/features/nostr-api.ts') diff --git a/extension/src/features/nostr-api.ts b/extension/src/features/nostr-api.ts index 4aee660..7f1bedf 100644 --- a/extension/src/features/nostr-api.ts +++ b/extension/src/features/nostr-api.ts @@ -17,8 +17,9 @@ import { cloneDeep } from "lodash"; import { Endpoints } from "./server-api"; import { type FeatureApi, type BgRuntime, type IFeatureExport, optionsOnly, exportForegroundApi } from "./framework"; import { type AppSettings } from "./settings"; -import { useTagFilter } from "./tagfilter-api"; +import { EventTagFilterApi } from "./tagfilter-api"; import type { NostrRelay, EncryptionRequest, NostrEvent } from './types'; +import { HistoryApi } from "./history"; /** @@ -36,10 +37,16 @@ export interface NostrApi extends FeatureApi { export const useNostrApi = (): IFeatureExport => { return{ - background: ({ state }: BgRuntime) =>{ + background: ({ state, openBackChannel }: BgRuntime) =>{ const { execRequest } = state.useServerApi(); - const { filterTags } = useTagFilter(state) + + let tagFilter: EventTagFilterApi | undefined; + let evHistory: HistoryApi | undefined; + + //Register for tag filter, and history back channel + openBackChannel('useEventTagFilterApi', (feature) => tagFilter = feature) + openBackChannel('useHistoryApi', (feature) => evHistory = feature) return { getRelays: async (): Promise => { @@ -50,16 +57,21 @@ export const useNostrApi = (): IFeatureExport => { signEvent: async (req: NostrEvent): Promise => { //Store copy to prevent mutation - req = cloneDeep(req) + const event = cloneDeep(req) //If tag filter is enabled, filter before continuing - if(state.currentConfig.value.tagFilter){ - await filterTags(req) + if (tagFilter){ + //Filter tags + await tagFilter.filterTags(event); } //Sign the event - const event = await execRequest(Endpoints.SignEvent, req); - return event; + const result = await execRequest(Endpoints.SignEvent, event); + + //Refresh history + evHistory?.refresh(); + + return result; }, nip04Encrypt: async (data: EncryptionRequest): Promise => { const message: EncryptionRequest = { -- cgit