diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 25a6bd92..07418696 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1322,7 +1322,7 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.7
- caniuse-lite: 1.0.30001498
+ caniuse-lite: 1.0.30001500
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
@@ -1364,7 +1364,7 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001498
+ caniuse-lite: 1.0.30001500
electron-to-chromium: 1.4.427
node-releases: 2.0.12
update-browserslist-db: 1.0.11(browserslist@4.21.7)
@@ -1414,8 +1414,8 @@ packages:
engines: {node: '>=6'}
dev: false
- /caniuse-lite@1.0.30001498:
- resolution: {integrity: sha512-LFInN2zAwx3ANrGCDZ5AKKJroHqNKyjXitdV5zRIVIaQlXKj3GmxUKagoKsjqUfckpAObPCEWnk5EeMlyMWcgw==}
+ /caniuse-lite@1.0.30001500:
+ resolution: {integrity: sha512-wSpY0RQnEwFwVZ063ggl3M4ALRP9OSknL0enldDEydIGzuShbtuWwaedB/RfkxsGF3P0kf1Tnv/nTtJEbjzc4Q==}
dev: true
/ccount@2.0.1:
@@ -4022,8 +4022,8 @@ packages:
glob: 7.2.3
dev: false
- /rollup@3.24.1:
- resolution: {integrity: sha512-REHe5dx30ERBRFS0iENPHy+t6wtSEYkjrhwNsLyh3qpRaZ1+aylvMUdMBUHWUD/RjjLmLzEvY8Z9XRlpcdIkHA==}
+ /rollup@3.25.1:
+ resolution: {integrity: sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -4852,7 +4852,7 @@ packages:
'@types/node': 18.16.17
esbuild: 0.17.19
postcss: 8.4.24
- rollup: 3.24.1
+ rollup: 3.25.1
optionalDependencies:
fsevents: 2.3.2
dev: true
diff --git a/src/app/channel/components/item.tsx b/src/app/channel/components/item.tsx
index e2419fa9..053ffc81 100644
--- a/src/app/channel/components/item.tsx
+++ b/src/app/channel/components/item.tsx
@@ -21,13 +21,13 @@ export function ChannelsListItem({ data }: { data: any }) {
>
{channel?.name}
diff --git a/src/app/channel/components/messages/item.tsx b/src/app/channel/components/messages/item.tsx
index 905f3da9..195df236 100644
--- a/src/app/channel/components/messages/item.tsx
+++ b/src/app/channel/components/messages/item.tsx
@@ -3,9 +3,9 @@ import { MessageMuteButton } from "@app/channel/components/messages/muteButton";
import { MessageReplyButton } from "@app/channel/components/messages/replyButton";
import { ChannelMessageUser } from "@app/channel/components/messages/user";
import { ChannelMessageUserMute } from "@app/channel/components/messages/userMute";
-import { MentionNote } from "@app/note/components/mentions/note";
-import { ImagePreview } from "@app/note/components/preview/image";
-import { VideoPreview } from "@app/note/components/preview/video";
+import { MentionNote } from "@app/space/components/notes/mentions/note";
+import { ImagePreview } from "@app/space/components/notes/preview/image";
+import { VideoPreview } from "@app/space/components/notes/preview/video";
import { noteParser } from "@utils/parser";
import { useMemo, useState } from "react";
diff --git a/src/app/chat/components/messages/item.tsx b/src/app/chat/components/messages/item.tsx
index 73456eec..921c4176 100644
--- a/src/app/chat/components/messages/item.tsx
+++ b/src/app/chat/components/messages/item.tsx
@@ -1,8 +1,8 @@
import { ChatMessageUser } from "@app/chat/components/messages/user";
import { useDecryptMessage } from "@app/chat/hooks/useDecryptMessage";
-import { MentionNote } from "@app/note/components/mentions/note";
-import { ImagePreview } from "@app/note/components/preview/image";
-import { VideoPreview } from "@app/note/components/preview/video";
+import { MentionNote } from "@app/space/components/notes/mentions/note";
+import { ImagePreview } from "@app/space/components/notes/preview/image";
+import { VideoPreview } from "@app/space/components/notes/preview/video";
import { noteParser } from "@utils/parser";
import { memo } from "react";
diff --git a/src/app/note/_default.page.tsx b/src/app/note/_default.page.tsx
deleted file mode 100644
index a2814770..00000000
--- a/src/app/note/_default.page.tsx
+++ /dev/null
@@ -1 +0,0 @@
-export { LayoutNewsfeed as Layout } from "./layout";
diff --git a/src/app/note/components/metadata.tsx b/src/app/note/components/metadata.tsx
deleted file mode 100644
index 0c0a2b1c..00000000
--- a/src/app/note/components/metadata.tsx
+++ /dev/null
@@ -1,82 +0,0 @@
-import { NoteReply } from "@app/note/components/metadata/reply";
-import { NoteRepost } from "@app/note/components/metadata/repost";
-import { NoteZap } from "@app/note/components/metadata/zap";
-import { createReplyNote } from "@libs/storage";
-import { NDKEvent } from "@nostr-dev-kit/ndk";
-import { NDKSubscription } from "@nostr-dev-kit/ndk";
-import { RelayContext } from "@shared/relayProvider";
-import { decode } from "light-bolt11-decoder";
-import { useContext, useState } from "react";
-import useSWRSubscription from "swr/subscription";
-
-export function NoteMetadata({
- id,
- eventPubkey,
-}: {
- id: string;
- eventPubkey: string;
-}) {
- const ndk = useContext(RelayContext);
-
- const [replies, setReplies] = useState(0);
- const [reposts, setReposts] = useState(0);
- const [zaps, setZaps] = useState(0);
-
- useSWRSubscription(id ? ["note-metadata", id] : null, () => {
- const sub: NDKSubscription = ndk.subscribe(
- {
- "#e": [id],
- kinds: [1, 6, 9735],
- limit: 20,
- },
- { closeOnEose: false },
- );
-
- sub.addListener("event", (event: NDKEvent) => {
- switch (event.kind) {
- case 1:
- setReplies((replies) => replies + 1);
- createReplyNote(
- event.id,
- event.pubkey,
- event.kind,
- event.tags,
- event.content,
- event.created_at,
- id,
- );
- break;
- case 6:
- setReposts((reposts) => reposts + 1);
- break;
- case 9735: {
- const bolt11 = event.tags.find((tag) => tag[0] === "bolt11")[1];
- if (bolt11) {
- const decoded = decode(bolt11);
- const amount = decoded.sections.find(
- (item) => item.name === "amount",
- );
- setZaps(amount.value / 1000);
- }
- break;
- }
- default:
- break;
- }
- });
-
- return () => {
- sub.stop();
- };
- });
-
- return (
-
- );
-}
diff --git a/src/app/note/components/replies/list.tsx b/src/app/note/components/replies/list.tsx
deleted file mode 100644
index 3bc931d1..00000000
--- a/src/app/note/components/replies/list.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { NoteReplyForm } from "@app/note/components/replies/form";
-import { Reply } from "@app/note/components/replies/item";
-import { NostrEvent } from "@nostr-dev-kit/ndk";
-import { RelayContext } from "@shared/relayProvider";
-import { sortEvents } from "@utils/transform";
-import { useContext } from "react";
-import useSWRSubscription from "swr/subscription";
-
-export function RepliesList({ id }: { id: string }) {
- const ndk = useContext(RelayContext);
-
- const { data, error } = useSWRSubscription(
- id ? ["note-replies", id] : null,
- ([, key], { next }) => {
- // subscribe to note
- const sub = ndk.subscribe(
- {
- "#e": [key],
- kinds: [1],
- limit: 20,
- },
- {
- closeOnEose: true,
- },
- );
-
- sub.addListener("event", (event: NostrEvent) => {
- next(null, (prev: any) => (prev ? [...prev, event] : [event]));
- });
-
- return () => {
- sub.stop();
- };
- },
- );
-
- return (
-
-
-
Replies
-
-
-
- {error &&
failed to load
}
- {!data ? (
-
- ) : (
- sortEvents(data).map((event: any) => {
- return
;
- })
- )}
-
-
- );
-}
diff --git a/src/app/note/components/wrapper.tsx b/src/app/note/components/wrapper.tsx
deleted file mode 100644
index bf364fec..00000000
--- a/src/app/note/components/wrapper.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { navigate } from "vite-plugin-ssr/client/router";
-
-export function NoteWrapper({
- children,
- href,
- className,
-}: {
- children: React.ReactNode;
- href: string;
- className: string;
-}) {
- const openThread = (event: any, href: string) => {
- const selection = window.getSelection();
- if (selection.toString().length === 0) {
- navigate(href, { keepScrollPosition: true });
- } else {
- event.stopPropagation();
- }
- };
-
- return
{children}
;
-}
diff --git a/src/app/note/layout.tsx b/src/app/note/layout.tsx
deleted file mode 100644
index cc18e057..00000000
--- a/src/app/note/layout.tsx
+++ /dev/null
@@ -1,14 +0,0 @@
-import { MultiAccounts } from "@shared/multiAccounts";
-import { Navigation } from "@shared/navigation";
-
-export function LayoutNewsfeed({ children }: { children: React.ReactNode }) {
- return (
-
- );
-}
diff --git a/src/app/note/pages/index.page.tsx b/src/app/note/pages/index.page.tsx
deleted file mode 100644
index 63ab27f3..00000000
--- a/src/app/note/pages/index.page.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import { Kind1 } from "@app/note/components/kind1";
-import { NoteMetadata } from "@app/note/components/metadata";
-import { RepliesList } from "@app/note/components/replies/list";
-import { NoteDefaultUser } from "@app/note/components/user/default";
-import { getNoteByID } from "@libs/storage";
-import { usePageContext } from "@utils/hooks/usePageContext";
-import { noteParser } from "@utils/parser";
-import useSWR from "swr";
-
-const fetcher = ([, id]) => getNoteByID(id);
-
-export function Page() {
- const pageContext = usePageContext();
- const searchParams: any = pageContext.urlParsed.search;
- const noteID = searchParams.id;
-
- const { data, error } = useSWR(["note", noteID], fetcher);
-
- const content = !error && data ? noteParser(data) : null;
-
- return (
-
-
-
- {!data || error ? (
-
- ) : (
-
- )}
-
-
-
-
- );
-}
diff --git a/src/app/space/components/add.tsx b/src/app/space/components/add.tsx
index 33d3909c..21e0e82c 100644
--- a/src/app/space/components/add.tsx
+++ b/src/app/space/components/add.tsx
@@ -59,7 +59,6 @@ export function AddBlock() {
-
{imageModal &&
}
{feedModal &&
}
>
diff --git a/src/app/space/components/blocks/feed.tsx b/src/app/space/components/blocks/feed.tsx
index 361ba637..be10c6f5 100644
--- a/src/app/space/components/blocks/feed.tsx
+++ b/src/app/space/components/blocks/feed.tsx
@@ -1,6 +1,6 @@
-import { NoteBase } from "@app/note/components/base";
-import { NoteQuoteRepost } from "@app/note/components/quoteRepost";
-import { NoteSkeleton } from "@app/note/components/skeleton";
+import { NoteBase } from "@app/space/components/notes/base";
+import { NoteQuoteRepost } from "@app/space/components/notes/quoteRepost";
+import { NoteSkeleton } from "@app/space/components/notes/skeleton";
import { getNotesByAuthor } from "@libs/storage";
import { CancelIcon } from "@shared/icons";
import { useActiveAccount } from "@stores/accounts";
@@ -73,7 +73,7 @@ export function FeedBlock({ params }: { params: any }) {
{!data || isLoading ? (
@@ -108,7 +108,11 @@ export function FeedBlock({ params }: { params: any }) {
data-index={virtualRow.index}
ref={rowVirtualizer.measureElement}
>
-
+
);
} else {
@@ -118,7 +122,11 @@ export function FeedBlock({ params }: { params: any }) {
data-index={virtualRow.index}
ref={rowVirtualizer.measureElement}
>
-
{!data || isLoading ? (
@@ -91,7 +91,11 @@ export function FollowingBlock() {
data-index={virtualRow.index}
ref={rowVirtualizer.measureElement}
>
-
+
);
} else {
@@ -101,7 +105,11 @@ export function FollowingBlock() {
data-index={virtualRow.index}
ref={rowVirtualizer.measureElement}
>
-