From bd247991bc8052af5231f4b5fc5be9eb3b44eea0 Mon Sep 17 00:00:00 2001 From: Kieran Date: Sun, 15 Jan 2023 22:59:05 +0000 Subject: [PATCH] Rebase fixup --- src/element/Textarea.tsx | 1 - src/feed/EventPublisher.ts | 8 +++++--- src/feed/LoginFeed.ts | 10 +++------- src/pages/ChatPage.tsx | 14 ++++++++------ src/pages/ProfilePage.js | 2 +- src/state/Users.ts | 9 +-------- 6 files changed, 18 insertions(+), 26 deletions(-) diff --git a/src/element/Textarea.tsx b/src/element/Textarea.tsx index c73d22d1..1916efd8 100644 --- a/src/element/Textarea.tsx +++ b/src/element/Textarea.tsx @@ -10,7 +10,6 @@ import "@webscopeio/react-textarea-autocomplete/style.css"; import "./Textarea.css"; // @ts-expect-error import Nostrich from "../nostrich.jpg"; -// @ts-expect-error import { hexToBech32 } from "../Util"; import type { User } from "../nostr/types"; import { db } from "../db"; diff --git a/src/feed/EventPublisher.ts b/src/feed/EventPublisher.ts index 9109a441..d63f2cfe 100644 --- a/src/feed/EventPublisher.ts +++ b/src/feed/EventPublisher.ts @@ -58,9 +58,11 @@ export default function useEventPublisher() { } return { - broadcast: (ev: NEvent) => { - console.debug("Sending event: ", ev); - System.BroadcastEvent(ev); + broadcast: (ev: NEvent | undefined) => { + if (ev) { + console.debug("Sending event: ", ev); + System.BroadcastEvent(ev); + } }, metadata: async (obj: UserMetadata) => { if (pubKey) { diff --git a/src/feed/LoginFeed.ts b/src/feed/LoginFeed.ts index 5ae059c8..6081b9d0 100644 --- a/src/feed/LoginFeed.ts +++ b/src/feed/LoginFeed.ts @@ -41,11 +41,10 @@ export default function useLoginFeed() { useEffect(() => { let contactList = main.notes.filter(a => a.kind === EventKind.ContactList); let notifications = main.notes.filter(a => a.kind === EventKind.TextNote); - let metadata = main.notes.filter(a => a.kind === EventKind.SetMetadata) - .map(a => mapEventToProfile(a)) + let metadata = main.notes.filter(a => a.kind === EventKind.SetMetadata); + let profiles = metadata.map(a => mapEventToProfile(a)) .filter(a => a !== undefined) .map(a => a!); - let profiles = metadata.map(a => mapEventToProfile(a)); let dms = main.notes.filter(a => a.kind === EventKind.DirectMessage); for (let cl of contactList) { @@ -65,10 +64,7 @@ export default function useLoginFeed() { } dispatch(addNotifications(notifications)); dispatch(setUserData(profiles)); - const userMetadata = metadata.map(ev => { - return {...JSON.parse(ev.content), pubkey: ev.pubkey } - }) - db.users.bulkPut(metadata); + db.users.bulkPut(profiles); dispatch(addDirectMessage(dms)); }, [main]); } \ No newline at end of file diff --git a/src/pages/ChatPage.tsx b/src/pages/ChatPage.tsx index 11067bda..402e373e 100644 --- a/src/pages/ChatPage.tsx +++ b/src/pages/ChatPage.tsx @@ -21,7 +21,7 @@ type RouterParams = { export default function ChatPage() { const params = useParams(); const publisher = useEventPublisher(); - const id = bech32ToHex(params.id); + const id = bech32ToHex(params.id ?? ""); const dms = useSelector(s => filterDms(s.login.dms, s.login.publicKey)); const [content, setContent] = useState(); const { ref, inView, entry } = useInView(); @@ -49,15 +49,17 @@ export default function ChatPage() { }, [inView, dmListRef, sortedDms]); async function sendDm() { - let ev = await publisher.sendDm(content, id); - console.debug(ev); - publisher.broadcast(ev); - setContent(""); + if (content) { + let ev = await publisher.sendDm(content, id); + console.debug(ev); + publisher.broadcast(ev); + setContent(undefined); + } } async function onEnter(e: KeyboardEvent) { let isEnter = e.code === "Enter"; - if(isEnter && !e.shiftKey) { + if (isEnter && !e.shiftKey) { await sendDm(); } } diff --git a/src/pages/ProfilePage.js b/src/pages/ProfilePage.js index ed2eada9..966cbc34 100644 --- a/src/pages/ProfilePage.js +++ b/src/pages/ProfilePage.js @@ -107,7 +107,7 @@ export default function ProfilePage() { function avatar() { return (
-
+
) diff --git a/src/state/Users.ts b/src/state/Users.ts index 32aafe48..382acdb0 100644 --- a/src/state/Users.ts +++ b/src/state/Users.ts @@ -84,14 +84,7 @@ const UsersSlice = createSlice({ }; } state.users[x.pubkey] = x; - db.users.put({ - pubkey: x.pubkey, - name: x.name, - display_name: x.display_name, - nip05: x.nip05, - picture: x.picture, - }) - window.localStorage.setItem(`user:${x.pubkey}`, JSON.stringify(x)); + db.users.put(x) state.users = { ...state.users