diff options
author | vnugent <public@vaughnnugent.com> | 2024-01-28 19:56:02 -0500 |
---|---|---|
committer | vnugent <public@vaughnnugent.com> | 2024-01-28 19:56:02 -0500 |
commit | 87645bfad3943e1110e4cb2e038124083e8ae793 (patch) | |
tree | c327a4437c98d973f45c313cf8259ad75515c4fe /extension/src/features/nostr-api.ts | |
parent | c438ee90e3be4e5e01ae3d045d6b841a03bd46eb (diff) |
progress update
Diffstat (limited to 'extension/src/features/nostr-api.ts')
-rw-r--r-- | extension/src/features/nostr-api.ts | 28 |
1 files changed, 20 insertions, 8 deletions
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<AppSettings, NostrApi> => { return{ - background: ({ state }: BgRuntime<AppSettings>) =>{ + background: ({ state, openBackChannel }: BgRuntime<AppSettings>) =>{ 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<EventTagFilterApi>('useEventTagFilterApi', (feature) => tagFilter = feature) + openBackChannel<HistoryApi>('useHistoryApi', (feature) => evHistory = feature) return { getRelays: async (): Promise<NostrRelay[]> => { @@ -50,16 +57,21 @@ export const useNostrApi = (): IFeatureExport<AppSettings, NostrApi> => { signEvent: async (req: NostrEvent): Promise<NostrEvent | undefined> => { //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<string> => { const message: EncryptionRequest = { |