diff --git a/package.json b/package.json index 718f8b5a..13515ca7 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "**/*": "prettier --write --ignore-unknown" }, "dependencies": { + "@radix-ui/react-collapsible": "^1.0.2", "@radix-ui/react-dialog": "^1.0.3", "@radix-ui/react-dropdown-menu": "^2.0.4", "@radix-ui/react-icons": "^1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95f9b161..93b703dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,6 +1,7 @@ lockfileVersion: 5.4 specifiers: + '@radix-ui/react-collapsible': ^1.0.2 '@radix-ui/react-dialog': ^1.0.3 '@radix-ui/react-dropdown-menu': ^2.0.4 '@radix-ui/react-icons': ^1.2.0 @@ -52,6 +53,7 @@ specifiers: ws: ^8.13.0 dependencies: + '@radix-ui/react-collapsible': 1.0.2_biqbaboplfbrettd7655fr4n2y '@radix-ui/react-dialog': 1.0.3_zula6vjvt3wdocc4mwcxqa6nzi '@radix-ui/react-dropdown-menu': 2.0.4_zula6vjvt3wdocc4mwcxqa6nzi '@radix-ui/react-icons': 1.2.0_react@18.2.0 @@ -737,6 +739,26 @@ packages: react-dom: 18.2.0_react@18.2.0 dev: false + /@radix-ui/react-collapsible/1.0.2_biqbaboplfbrettd7655fr4n2y: + resolution: + { integrity: sha512-QNiDT6Au8jUU0K1WV+HEd4loH7C5CKQjeXxskwqyiyAkyCmW7qlQM5vSSJCIoQC+OVPyhgafSmGudRP8Qm1/gA== } + peerDependencies: + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + dependencies: + '@babel/runtime': 7.21.0 + '@radix-ui/primitive': 1.0.0 + '@radix-ui/react-compose-refs': 1.0.0_react@18.2.0 + '@radix-ui/react-context': 1.0.0_react@18.2.0 + '@radix-ui/react-id': 1.0.0_react@18.2.0 + '@radix-ui/react-presence': 1.0.0_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-primitive': 1.0.2_biqbaboplfbrettd7655fr4n2y + '@radix-ui/react-use-controllable-state': 1.0.0_react@18.2.0 + '@radix-ui/react-use-layout-effect': 1.0.0_react@18.2.0 + react: 18.2.0 + react-dom: 18.2.0_react@18.2.0 + dev: false + /@radix-ui/react-collection/1.0.2_biqbaboplfbrettd7655fr4n2y: resolution: { integrity: sha512-s8WdQQ6wNXpaxdZ308KSr8fEWGrg4un8i4r/w7fhiS4ElRNjk5rRcl0/C6TANG2LvLOGIxtzo/jAg6Qf73TEBw== } diff --git a/src/components/columns/navigator/index.tsx b/src/components/columns/navigator/index.tsx index 6d0d503b..9b54946c 100644 --- a/src/components/columns/navigator/index.tsx +++ b/src/components/columns/navigator/index.tsx @@ -1,63 +1,13 @@ -import ActiveLink from '@components/activeLink'; import Messages from '@components/columns/navigator/messages'; - -import { PlusIcon } from '@radix-ui/react-icons'; -import useLocalStorage from '@rehooks/local-storage'; +import Newsfeed from '@components/columns/navigator/newsfeed'; export default function NavigatorColumn() { - const [follows] = useLocalStorage('follows'); - return ( -
+
{/* Newsfeed */} -
-
-

Newsfeed

- -
-
- -
- -
- following -
- -
- -
- circle -
-
-
+ {/* Messages */} -
-
-

Messages

- -
-
- -
-
+
); } diff --git a/src/components/columns/navigator/messages/index.tsx b/src/components/columns/navigator/messages/index.tsx index a7c369fb..150726ca 100644 --- a/src/components/columns/navigator/messages/index.tsx +++ b/src/components/columns/navigator/messages/index.tsx @@ -1,15 +1,34 @@ -import { UserMini } from '@components/user/mini'; +import { MessageList } from '@components/columns/navigator/messages/list'; -import { Key } from 'react'; +import * as Collapsible from '@radix-ui/react-collapsible'; +import { ChevronUpIcon } from '@radix-ui/react-icons'; +import useLocalStorage from '@rehooks/local-storage'; +import { useState } from 'react'; -export default function Messages({ data }: { data: any }) { - console.log(data); +export default function Messages() { + const [open, setOpen] = useState(true); + const [follows] = useLocalStorage('follows'); return ( - <> - {data.map((item: string, index: Key) => ( - - ))} - + +
+ + +

+ Messages +

+
+ + + +
+
); } diff --git a/src/components/columns/navigator/messages/list.tsx b/src/components/columns/navigator/messages/list.tsx new file mode 100644 index 00000000..59de3e5c --- /dev/null +++ b/src/components/columns/navigator/messages/list.tsx @@ -0,0 +1,13 @@ +import { UserMini } from '@components/user/mini'; + +import { Key, memo } from 'react'; + +export const MessageList = memo(function MessageList({ data }: { data: any }) { + return ( + <> + {data.map((item: string, index: Key) => ( + + ))} + + ); +}); diff --git a/src/components/columns/navigator/newsfeed/index.tsx b/src/components/columns/navigator/newsfeed/index.tsx new file mode 100644 index 00000000..f0742cf3 --- /dev/null +++ b/src/components/columns/navigator/newsfeed/index.tsx @@ -0,0 +1,51 @@ +import ActiveLink from '@components/activeLink'; + +import * as Collapsible from '@radix-ui/react-collapsible'; +import { ChevronUpIcon } from '@radix-ui/react-icons'; +import { useState } from 'react'; + +export default function Newsfeed() { + const [open, setOpen] = useState(true); + + return ( + +
+ + +

+ Newsfeed +

+
+ + +
+ +
+ Following +
+ +
+ +
+ Circle +
+
+
+
+ ); +} diff --git a/src/components/user/mini.tsx b/src/components/user/mini.tsx index 4ebf4af5..28c8f3e5 100644 --- a/src/components/user/mini.tsx +++ b/src/components/user/mini.tsx @@ -53,7 +53,7 @@ export const UserMini = memo(function UserMini({ pubkey }: { pubkey: string }) { return (
-
+
{profile.picture ? ( ) : ( @@ -65,8 +65,8 @@ export const UserMini = memo(function UserMini({ pubkey }: { pubkey: string }) { /> )}
-
-

+

+

{profile.display_name ? profile.display_name : truncate(pubkey, 16, ' .... ')}

diff --git a/src/layouts/withSidebar.tsx b/src/layouts/withSidebar.tsx index 2b7f7e66..6640ffd7 100644 --- a/src/layouts/withSidebar.tsx +++ b/src/layouts/withSidebar.tsx @@ -11,13 +11,13 @@ export default function WithSidebarLayout({ children }: { children: React.ReactN >
-
+
-
-
+
+
diff --git a/src/pages/onboarding/login/step-2.tsx b/src/pages/onboarding/login/step-2.tsx index b87485e3..07bae67f 100644 --- a/src/pages/onboarding/login/step-2.tsx +++ b/src/pages/onboarding/login/step-2.tsx @@ -5,7 +5,6 @@ import { RelayContext } from '@components/contexts/relay'; import { useLocalStorage } from '@rehooks/local-storage'; import Image from 'next/image'; -import Link from 'next/link'; import { useRouter } from 'next/router'; import { getPublicKey, nip19 } from 'nostr-tools'; import { @@ -62,6 +61,10 @@ export default function Page() { [db, pubkey] ); + const submit = () => { + router.push('/'); + }; + useEffect(() => { relayPool.subscribe( [ @@ -122,12 +125,12 @@ export default function Page() {
- submit()} className="inline-flex w-full transform items-center justify-center rounded-lg bg-gradient-to-r from-fuchsia-300 via-orange-100 to-amber-300 px-3.5 py-2.5 font-medium text-zinc-800 active:translate-y-1 disabled:cursor-not-allowed disabled:opacity-30" > Done → - +