2024-06-17 07:42:51 +00:00
|
|
|
/* @jsx h */
|
2024-07-03 07:46:31 +00:00
|
|
|
import { h, render } from "preact";
|
2024-03-19 15:29:59 +00:00
|
|
|
import { PublicMessageContainer } from "./public-message-container.tsx";
|
2024-03-15 13:44:17 +00:00
|
|
|
import { Database_View } from "../database.ts";
|
2024-06-17 07:42:51 +00:00
|
|
|
import { DirectedMessageController } from "../features/dm.ts";
|
2024-07-03 07:46:31 +00:00
|
|
|
import { testEventBus } from "./_setup.test.ts";
|
|
|
|
import { DM_List } from "./conversation-list.ts";
|
|
|
|
import { NewIndexedDB } from "./dexie-db.ts";
|
|
|
|
import {
|
|
|
|
InMemoryAccountContext,
|
|
|
|
NostrEvent,
|
|
|
|
NostrKind,
|
|
|
|
prepareEncryptedNostrEvent,
|
|
|
|
} from "@blowater/nostr-sdk";
|
|
|
|
import { fail } from "@std/assert";
|
2024-03-15 13:44:17 +00:00
|
|
|
|
|
|
|
const ctx = InMemoryAccountContext.Generate();
|
|
|
|
|
|
|
|
const indexedDB = NewIndexedDB();
|
|
|
|
if (indexedDB instanceof Error) {
|
|
|
|
fail(indexedDB.message);
|
|
|
|
}
|
|
|
|
const database = await Database_View.New(indexedDB, indexedDB, indexedDB);
|
|
|
|
|
|
|
|
const e = await database.addEvent(
|
|
|
|
await prepareEncryptedNostrEvent(ctx, {
|
|
|
|
encryptKey: ctx.publicKey,
|
|
|
|
kind: NostrKind.DIRECT_MESSAGE,
|
|
|
|
tags: [["p", InMemoryAccountContext.Generate().publicKey.hex]],
|
|
|
|
content: "hi",
|
|
|
|
}) as NostrEvent,
|
|
|
|
);
|
|
|
|
if (!e || e instanceof Error) {
|
|
|
|
fail();
|
|
|
|
}
|
|
|
|
|
|
|
|
const dm_list = new DM_List(ctx);
|
|
|
|
dm_list.addEvents([e], true);
|
|
|
|
dm_list.addEvents(Array.from(database.getAllEvents()), true);
|
|
|
|
|
|
|
|
render(
|
2024-03-19 15:29:59 +00:00
|
|
|
<PublicMessageContainer
|
2024-07-03 07:46:31 +00:00
|
|
|
relay_url={"ws://localhost:8000"}
|
2024-03-15 13:44:17 +00:00
|
|
|
ctx={ctx}
|
|
|
|
bus={testEventBus}
|
|
|
|
getters={{
|
|
|
|
convoListRetriever: dm_list,
|
|
|
|
newMessageChecker: dm_list,
|
|
|
|
relayRecordGetter: database,
|
|
|
|
isUserBlocked: dm_list.isUserBlocked,
|
|
|
|
getEventByID: database.getEventByID,
|
2024-06-17 07:42:51 +00:00
|
|
|
getProfileByPublicKey: database.getProfileByPublicKey,
|
|
|
|
getProfilesByText: database.getProfilesByText,
|
|
|
|
getReactionsByEventID: database.getReactionEvents,
|
|
|
|
isAdmin: () => true,
|
|
|
|
messageGetter: new DirectedMessageController(ctx),
|
2024-03-15 13:44:17 +00:00
|
|
|
}}
|
|
|
|
messages={[]}
|
|
|
|
relaySelectedChannel={new Map()}
|
|
|
|
/>,
|
|
|
|
document.body,
|
|
|
|
);
|