aboutsummaryrefslogtreecommitdiff
path: root/extension/src/features/nostr-api.ts
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-01-28 19:56:02 -0500
committerLibravatar vnugent <public@vaughnnugent.com>2024-01-28 19:56:02 -0500
commit87645bfad3943e1110e4cb2e038124083e8ae793 (patch)
treec327a4437c98d973f45c313cf8259ad75515c4fe /extension/src/features/nostr-api.ts
parentc438ee90e3be4e5e01ae3d045d6b841a03bd46eb (diff)
progress update
Diffstat (limited to 'extension/src/features/nostr-api.ts')
-rw-r--r--extension/src/features/nostr-api.ts28
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 = {