From c4a7ef8867b945764404d168afa199bcbe380dfc Mon Sep 17 00:00:00 2001 From: Ren Amamiya <123083837+reyamir@users.noreply.github.com> Date: Sun, 20 Aug 2023 15:55:31 +0700 Subject: [PATCH] update space screen --- src/app/space/components/widgets/network.tsx | 26 +++++++++++++++++--- src/app/space/components/widgets/user.tsx | 2 +- src/app/space/index.tsx | 23 +++++++++-------- src/index.css | 2 +- src/shared/notes/mentions/note.tsx | 3 +-- 5 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/app/space/components/widgets/network.tsx b/src/app/space/components/widgets/network.tsx index 1e0303c4..6fbc9de6 100644 --- a/src/app/space/components/widgets/network.tsx +++ b/src/app/space/components/widgets/network.tsx @@ -121,15 +121,35 @@ export function NetworkWidget() { const filter: NDKFilter = { kinds: [1, 6], authors: db.account.network, - since: Math.floor(Date.now() / 1000), + since: db.account.last_login_at ?? Math.floor(Date.now() / 1000), }; - sub(filter, (event) => console.log('[network] event received: ', event.content)); + sub(filter, async (event) => { + console.log('[network] new event', event.id); + + let root: string; + let reply: string; + if (event.tags?.[0]?.[0] === 'e' && !event.tags?.[0]?.[3]) { + root = event.tags[0][1]; + } else { + root = event.tags.find((el) => el[3] === 'root')?.[1]; + reply = event.tags.find((el) => el[3] === 'reply')?.[1]; + } + await db.createEvent( + event.id, + JSON.stringify(event), + event.pubkey, + event.kind, + root, + reply, + event.created_at + ); + }); } }, []); return ( -
+
{status === 'loading' ? ( diff --git a/src/app/space/components/widgets/user.tsx b/src/app/space/components/widgets/user.tsx index 45e8cd07..35bfb723 100644 --- a/src/app/space/components/widgets/user.tsx +++ b/src/app/space/components/widgets/user.tsx @@ -81,7 +81,7 @@ export function UserWidget({ params }: { params: Widget }) { ); return ( -
+
diff --git a/src/app/space/index.tsx b/src/app/space/index.tsx index 2648d95f..0a74f8a6 100644 --- a/src/app/space/index.tsx +++ b/src/app/space/index.tsx @@ -1,8 +1,5 @@ import { useCallback, useEffect } from 'react'; -import { FeedModal } from '@app/space/components/modals/feed'; -import { HashtagModal } from '@app/space/components/modals/hashtag'; -import { ImageModal } from '@app/space/components/modals/image'; import { FeedWidget } from '@app/space/components/widgets/feed'; import { HashtagWidget } from '@app/space/components/widgets/hashtag'; import { NetworkWidget } from '@app/space/components/widgets/network'; @@ -11,7 +8,7 @@ import { UserWidget } from '@app/space/components/widgets/user'; import { useStorage } from '@libs/storage/provider'; -import { LoaderIcon } from '@shared/icons'; +import { LoaderIcon, PlusIcon } from '@shared/icons'; import { useWidgets } from '@stores/widgets'; @@ -51,9 +48,9 @@ export function SpaceScreen() { }, [fetchWidgets]); return ( -
+
{!widgets ? ( -
+
@@ -61,14 +58,16 @@ export function SpaceScreen() { ) : ( widgets.map((widget) => renderItem(widget)) )} -
-
- - - +
+
+
-
); } diff --git a/src/index.css b/src/index.css index 0ae505fb..bfcfa85e 100644 --- a/src/index.css +++ b/src/index.css @@ -15,7 +15,7 @@ button { } .markdown { - @apply prose prose-white max-w-none select-text hyphens-auto text-white prose-p:mb-2 prose-p:mt-0 prose-p:break-words prose-p:[word-break:break-word] prose-p:last:mb-0 prose-a:break-words prose-a:break-all prose-a:font-normal prose-a:leading-tight prose-a:after:content-['_↗'] hover:prose-a:text-fuchsia-500 prose-blockquote:m-0 prose-pre:whitespace-pre-wrap prose-pre:break-words prose-pre:break-all prose-ol:m-0 prose-ol:mb-1 prose-ul:mb-1 prose-ul:mt-1 prose-li:leading-tight prose-img:mb-2 prose-img:mt-3 prose-hr:mx-0 prose-hr:my-2; + @apply prose prose-white max-w-none select-text hyphens-auto text-white prose-p:mb-2 prose-p:mt-0 prose-p:break-words prose-p:[word-break:break-word] prose-p:last:mb-0 prose-a:break-words prose-a:break-all prose-a:font-normal prose-a:leading-tight prose-a:after:content-['_↗'] hover:prose-a:text-fuchsia-500 prose-blockquote:mb-1 prose-blockquote:mt-1 prose-blockquote:border-l-[2px] prose-blockquote:border-fuchsia-500 prose-blockquote:pl-2 prose-pre:whitespace-pre-wrap prose-pre:break-words prose-pre:break-all prose-ol:m-0 prose-ol:mb-1 prose-ul:mb-1 prose-ul:mt-1 prose-li:leading-tight prose-img:mb-2 prose-img:mt-3 prose-hr:mx-0 prose-hr:my-2; } .ProseMirror p.is-empty::before { diff --git a/src/shared/notes/mentions/note.tsx b/src/shared/notes/mentions/note.tsx index eb4c72b6..cbc2b78a 100644 --- a/src/shared/notes/mentions/note.tsx +++ b/src/shared/notes/mentions/note.tsx @@ -65,7 +65,6 @@ export const MentionNote = memo(function MentionNote({ id }: { id: string }) { {isImage(url) && ( image @@ -94,7 +93,7 @@ export const MentionNote = memo(function MentionNote({ id }: { id: string }) { tabIndex={0} className="mb-2 mt-3 cursor-default rounded-lg bg-white/10 px-3 py-3" > - +
{renderItem()}
);