From 1ee77c28fe5ad5624add9f73e90b99498ac52e73 Mon Sep 17 00:00:00 2001 From: Ren Amamiya <123083837+reyamir@users.noreply.github.com> Date: Fri, 21 Apr 2023 11:00:45 +0700 Subject: [PATCH] Revert "fixed nextjs build with super cringe solution (will be revert in next commit)" This reverts commit a2aad487abf806a50a7d07550937663b593cb05f. --- src/app/nostr/channels/{ => [id]}/page.tsx | 12 ++++-------- src/app/nostr/chats/{ => [pubkey]}/page.tsx | 14 +++++--------- .../create/{step-2 => [...slug]}/page.tsx | 11 +++++------ src/app/onboarding/create/page.tsx | 4 +--- .../login/{step-2 => [privkey]}/page.tsx | 12 ++++-------- src/app/onboarding/login/page.tsx | 2 +- src/app/page.tsx | 7 ++----- src/components/appHeader/actions.tsx | 2 +- src/components/channels/channelListItem.tsx | 2 +- src/components/chats/chatList.tsx | 2 +- src/components/chats/chatListItem.tsx | 2 +- 11 files changed, 26 insertions(+), 44 deletions(-) rename src/app/nostr/channels/{ => [id]}/page.tsx (87%) rename src/app/nostr/chats/{ => [pubkey]}/page.tsx (83%) rename src/app/onboarding/create/{step-2 => [...slug]}/page.tsx (96%) rename src/app/onboarding/login/{step-2 => [privkey]}/page.tsx (93%) diff --git a/src/app/nostr/channels/page.tsx b/src/app/nostr/channels/[id]/page.tsx similarity index 87% rename from src/app/nostr/channels/page.tsx rename to src/app/nostr/channels/[id]/page.tsx index 9517bcf1..a25aec1e 100644 --- a/src/app/nostr/channels/page.tsx +++ b/src/app/nostr/channels/[id]/page.tsx @@ -12,13 +12,9 @@ import { dateToUnix, hoursAgo } from '@utils/getDate'; import useLocalStorage from '@rehooks/local-storage'; import { useSetAtom } from 'jotai'; import { useResetAtom } from 'jotai/utils'; -import { useSearchParams } from 'next/navigation'; import { useContext, useEffect, useRef } from 'react'; -export default function Page() { - const searchParams = useSearchParams(); - const channelID = searchParams.get('id'); - +export default function Page({ params }: { params: { id: string } }) { const [pool]: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); @@ -44,7 +40,7 @@ export default function Page() { since: dateToUnix(hoursAgo(24, now.current)), }, { - '#e': [channelID], + '#e': [params.id], kinds: [42], since: dateToUnix(hoursAgo(24, now.current)), }, @@ -70,13 +66,13 @@ export default function Page() { return () => { unsubscribe(); }; - }, [pool, activeAccount.pubkey, channelID, setChannelMessages, resetChannelReply, resetChannelMessages]); + }, [pool, activeAccount.pubkey, params.id, setChannelMessages, resetChannelReply, resetChannelMessages]); return (
- +
); diff --git a/src/app/nostr/chats/page.tsx b/src/app/nostr/chats/[pubkey]/page.tsx similarity index 83% rename from src/app/nostr/chats/page.tsx rename to src/app/nostr/chats/[pubkey]/page.tsx index bfcf8619..aba3eaa8 100644 --- a/src/app/nostr/chats/page.tsx +++ b/src/app/nostr/chats/[pubkey]/page.tsx @@ -10,13 +10,9 @@ import { FULL_RELAYS } from '@stores/constants'; import useLocalStorage from '@rehooks/local-storage'; import { useSetAtom } from 'jotai'; import { useResetAtom } from 'jotai/utils'; -import { useSearchParams } from 'next/navigation'; import { Suspense, useCallback, useContext, useEffect, useRef } from 'react'; -export default function Page() { - const searchParams = useSearchParams(); - const pubkey = searchParams.get('pubkey'); - +export default function Page({ params }: { params: { pubkey: string } }) { const [pool]: any = useContext(RelayContext); const [activeAccount]: any = useLocalStorage('account', {}); @@ -30,13 +26,13 @@ export default function Page() { [ { kinds: [4], - authors: [pubkey], + authors: [params.pubkey], '#p': [activeAccount.pubkey], }, { kinds: [4], authors: [activeAccount.pubkey], - '#p': [pubkey], + '#p': [params.pubkey], }, ], FULL_RELAYS, @@ -44,7 +40,7 @@ export default function Page() { setChatMessages((data) => [...data, event]); } ); - }, [activeAccount.pubkey, pubkey, pool, setChatMessages]); + }, [activeAccount.pubkey, params.pubkey, pool, setChatMessages]); useEffect(() => { // reset stored messages @@ -65,7 +61,7 @@ export default function Page() {
- +
); diff --git a/src/app/onboarding/create/step-2/page.tsx b/src/app/onboarding/create/[...slug]/page.tsx similarity index 96% rename from src/app/onboarding/create/step-2/page.tsx rename to src/app/onboarding/create/[...slug]/page.tsx index af97bc31..60f84f2a 100644 --- a/src/app/onboarding/create/step-2/page.tsx +++ b/src/app/onboarding/create/[...slug]/page.tsx @@ -9,7 +9,7 @@ import { arrayToNIP02 } from '@utils/transform'; import { createClient } from '@supabase/supabase-js'; import { CheckCircle } from 'iconoir-react'; -import { useRouter, useSearchParams } from 'next/navigation'; +import { useRouter } from 'next/navigation'; import { getEventHash, signEvent } from 'nostr-tools'; import { Key, useCallback, useContext, useEffect, useState } from 'react'; @@ -53,12 +53,11 @@ const initialList = [ { pubkey: 'ff04a0e6cd80c141b0b55825fed127d4532a6eecdb7e743a38a3c28bf9f44609' }, ]; -export default function Page() { +export default function Page({ params }: { params: { slug: string } }) { const router = useRouter(); - const searchParams = useSearchParams(); - const pubkey = searchParams.get('pubkey'); - const privkey = searchParams.get('privkey'); + const pubkey = params.slug[0]; + const privkey = params.slug[1]; const [pool, relays]: any = useContext(RelayContext); const [loading, setLoading] = useState(false); @@ -100,7 +99,7 @@ export default function Page() { // broadcast pool.publish(event, relays); // redirect to splashscreen - router.replace('/', { forceOptimisticNavigation: true }); + router.replace('/'); }, [pubkey, privkey, follows, pool, relays, router]); useEffect(() => { diff --git a/src/app/onboarding/create/page.tsx b/src/app/onboarding/create/page.tsx index efce96fa..d38e5882 100644 --- a/src/app/onboarding/create/page.tsx +++ b/src/app/onboarding/create/page.tsx @@ -68,9 +68,7 @@ export default function Page() { // broadcast pool.publish(event, relays); // redirect to next step - router.replace(`/onboarding/create/step-2?pubkey=${pubkey}&privkey=${privkey}`, { - forceOptimisticNavigation: true, - }); + router.push(`/onboarding/create/${pubkey}/${privkey}`); }, [pool, pubkey, privkey, metadata, relays, router]); return ( diff --git a/src/app/onboarding/login/step-2/page.tsx b/src/app/onboarding/login/[privkey]/page.tsx similarity index 93% rename from src/app/onboarding/login/step-2/page.tsx rename to src/app/onboarding/login/[privkey]/page.tsx index 1a178d17..430bfd13 100644 --- a/src/app/onboarding/login/step-2/page.tsx +++ b/src/app/onboarding/login/[privkey]/page.tsx @@ -11,16 +11,12 @@ import { nip02ToArray } from '@utils/transform'; import Image from 'next/image'; import Link from 'next/link'; -import { useSearchParams } from 'next/navigation'; import { getPublicKey } from 'nostr-tools'; import { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react'; -export default function Page() { - const searchParams = useSearchParams(); - const privkey = searchParams.get('privkey'); - +export default function Page({ params }: { params: { privkey: string } }) { const [pool, relays]: any = useContext(RelayContext); - const pubkey = useMemo(() => (privkey ? getPublicKey(privkey) : null), [privkey]); + const pubkey = useMemo(() => (params.privkey ? getPublicKey(params.privkey) : null), [params.privkey]); const timeout = useRef(null); const [profile, setProfile] = useState({ metadata: null }); @@ -46,7 +42,7 @@ export default function Page() { (event: any) => { if (event.kind === 0) { // create account - createAccount(pubkey, privkey, event.content); + createAccount(pubkey, params.privkey, event.content); // update state setProfile({ metadata: JSON.parse(event.content), @@ -74,7 +70,7 @@ export default function Page() { unsubscribe; clearTimeout(timeout.current); }; - }, [pool, relays, pubkey, privkey, createPlebs]); + }, [pool, relays, pubkey, params.privkey, createPlebs]); return (
diff --git a/src/app/onboarding/login/page.tsx b/src/app/onboarding/login/page.tsx index a0eeccfa..dc2adca1 100644 --- a/src/app/onboarding/login/page.tsx +++ b/src/app/onboarding/login/page.tsx @@ -40,7 +40,7 @@ export default function Page() { privkey = nip19.decode(privkey).data; } if (typeof getPublicKey(privkey) === 'string') { - router.push(`/onboarding/login/step-2?privkey=${privkey}`, { forceOptimisticNavigation: true }); + router.push(`/onboarding/login/${privkey}`); } } catch (error) { setError('key', { diff --git a/src/app/page.tsx b/src/app/page.tsx index 5d365624..52aa4101 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -125,10 +125,7 @@ export default function Page() { undefined, () => { updateLastLogin(dateToUnix(now.current)); - timeout.current = setTimeout( - () => router.replace('/nostr/newsfeed/following', { forceOptimisticNavigation: true }), - 5000 - ); + timeout.current = setTimeout(() => router.replace('/nostr/newsfeed/following'), 5000); }, { unsubscribeOnEose: true, @@ -157,7 +154,7 @@ export default function Page() { // fetch data fetchData(account, account.follows); } else { - router.replace('/onboarding', { forceOptimisticNavigation: true }); + router.replace('/onboarding'); } }) .catch(console.error); diff --git a/src/components/appHeader/actions.tsx b/src/components/appHeader/actions.tsx index 2a9c5007..b8c13ada 100644 --- a/src/components/appHeader/actions.tsx +++ b/src/components/appHeader/actions.tsx @@ -18,7 +18,7 @@ export default function AppActions() { }; const reload = () => { - window.location.reload(); + router.refresh(); }; useLayoutEffect(() => { diff --git a/src/components/channels/channelListItem.tsx b/src/components/channels/channelListItem.tsx index 28be73e6..c687c811 100644 --- a/src/components/channels/channelListItem.tsx +++ b/src/components/channels/channelListItem.tsx @@ -10,7 +10,7 @@ export const ChannelListItem = ({ data }: { data: any }) => { return ( diff --git a/src/components/chats/chatList.tsx b/src/components/chats/chatList.tsx index ddd4573e..5fc443f7 100644 --- a/src/components/chats/chatList.tsx +++ b/src/components/chats/chatList.tsx @@ -18,7 +18,7 @@ export default function ChatList() { const profile = JSON.parse(activeAccount.metadata); const openSelfChat = () => { - router.push(`/nostr/chats?pubkey=${activeAccount.pubkey}`); + router.push(`/nostr/chats/${activeAccount.pubkey}`); }; useEffect(() => { diff --git a/src/components/chats/chatListItem.tsx b/src/components/chats/chatListItem.tsx index d9da48ec..c5f29ad7 100644 --- a/src/components/chats/chatListItem.tsx +++ b/src/components/chats/chatListItem.tsx @@ -11,7 +11,7 @@ export const ChatListItem = ({ pubkey }: { pubkey: string }) => { return (