diff --git a/src/components/accountBar/account.tsx b/src/components/columns/account/account.tsx similarity index 100% rename from src/components/accountBar/account.tsx rename to src/components/columns/account/account.tsx diff --git a/src/components/accountBar/index.tsx b/src/components/columns/account/index.tsx similarity index 93% rename from src/components/accountBar/index.tsx rename to src/components/columns/account/index.tsx index d5e83459..d57acd44 100644 --- a/src/components/accountBar/index.tsx +++ b/src/components/columns/account/index.tsx @@ -1,4 +1,4 @@ -import { Account } from '@components/accountBar/account'; +import { Account } from '@components/columns/account/account'; import LumeSymbol from '@assets/icons/Lume'; import { PlusIcon } from '@radix-ui/react-icons'; @@ -7,7 +7,7 @@ import Link from 'next/link'; import { useCallback, useEffect, useState } from 'react'; import Database from 'tauri-plugin-sql-api'; -export default function AccountBar() { +export default function AccountColumn() { const [users, setUsers] = useState([]); const [currentUser]: any = useLocalStorage('current-user'); diff --git a/src/components/navigatorBar/createPost.tsx b/src/components/columns/navigator/createPost.tsx similarity index 100% rename from src/components/navigatorBar/createPost.tsx rename to src/components/columns/navigator/createPost.tsx diff --git a/src/components/navigatorBar/index.tsx b/src/components/columns/navigator/index.tsx similarity index 89% rename from src/components/navigatorBar/index.tsx rename to src/components/columns/navigator/index.tsx index 58785b2b..d07176e4 100644 --- a/src/components/navigatorBar/index.tsx +++ b/src/components/columns/navigator/index.tsx @@ -1,11 +1,11 @@ import ActiveLink from '@components/activeLink'; -import CreatePost from '@components/navigatorBar/createPost'; -import { ProfileMenu } from '@components/navigatorBar/profileMenu'; +import CreatePost from '@components/columns/navigator/createPost'; +import { UserDropdownMenu } from '@components/columns/navigator/userDropdownMenu'; import { PlusIcon } from '@radix-ui/react-icons'; import { useLocalStorage } from '@rehooks/local-storage'; -export default function NavigatorBar() { +export default function NavigatorColumn() { const [currentUser]: any = useLocalStorage('current-user'); const profile = JSON.parse(currentUser.metadata); @@ -17,7 +17,7 @@ export default function NavigatorBar() {
{profile.display_name || ''}
- +
@{profile.username || ''}
@@ -38,7 +38,7 @@ export default function NavigatorBar() {
@@ -46,7 +46,7 @@ export default function NavigatorBar() { following diff --git a/src/components/navigatorBar/profileMenu.tsx b/src/components/columns/navigator/userDropdownMenu.tsx similarity index 96% rename from src/components/navigatorBar/profileMenu.tsx rename to src/components/columns/navigator/userDropdownMenu.tsx index 5ce53a8b..c377d7f0 100644 --- a/src/components/navigatorBar/profileMenu.tsx +++ b/src/components/columns/navigator/userDropdownMenu.tsx @@ -5,7 +5,7 @@ import { useRouter } from 'next/router'; import { nip19 } from 'nostr-tools'; import { memo } from 'react'; -export const ProfileMenu = memo(function ProfileMenu({ pubkey }: { pubkey: string }) { +export const UserDropdownMenu = memo(function ProfileMenu({ pubkey }: { pubkey: string }) { const router = useRouter(); const viewProfile = () => { diff --git a/src/components/empty.tsx b/src/components/empty.tsx deleted file mode 100644 index 41fb1633..00000000 --- a/src/components/empty.tsx +++ /dev/null @@ -1,96 +0,0 @@ -import { EnvelopeClosedIcon, PlusIcon, UpdateIcon } from '@radix-ui/react-icons'; -import Image from 'next/image'; - -const sampleData = [ - { - name: 'Dick Whitman (🌎/21M)', - role: 'dickwhitman@nostrplebs.com', - imageUrl: 'https://pbs.twimg.com/profile_images/1594930968325984256/TjMXaXBE_400x400.jpg', - }, - { - name: 'Jack', - role: 'npub1sg6plzptd64u62a878hep2kev88swjh3tw00gjsfl8f237lmu63q0uf63m', - imageUrl: 'https://pbs.twimg.com/profile_images/1115644092329758721/AFjOr-K8_400x400.jpg', - }, - { - name: 'Sats Symbol', - role: 'npub1mqngkfwfyv2ckv7hshck9pqucpz08tktde2jukr3hheatup2y2tqnzc32w', - imageUrl: 'https://pbs.twimg.com/profile_images/1563388888860594177/7evrI1uB_400x400.jpg', - }, -]; - -export default function Empty() { - return ( -
-
-
- -

You haven't followed anyone yet

-

- You can send invite via email to your friend and lume will onboard them into nostr or follow some people in - suggested below -

-
-
- - -
-
-
-
-

Suggestions

- -
-
    - {sampleData.map((person, index) => ( -
  • -
    -
    - {person.name} -
    -
    -

    {person.name}

    -

    {person.role}

    -
    -
    -
    - -
    -
  • - ))} -
- -
-
- ); -} diff --git a/src/components/imageWithFallback.tsx b/src/components/imageWithFallback.tsx index b7b5d4b4..255eb790 100644 --- a/src/components/imageWithFallback.tsx +++ b/src/components/imageWithFallback.tsx @@ -8,7 +8,7 @@ export const ImageWithFallback = memo(function ImageWithFallback({ fill, className, }: { - src: any; + src: string; alt: string; fill: boolean; className: string; diff --git a/src/components/navigatorBar/incomingList.tsx b/src/components/navigatorBar/incomingList.tsx deleted file mode 100644 index 1dd00b97..00000000 --- a/src/components/navigatorBar/incomingList.tsx +++ /dev/null @@ -1,17 +0,0 @@ -export function IncomingList({ data }: { data: any }) { - const list: any = Array.from(new Set(data.map((item: any) => item.pubkey))); - - if (list.length > 0) { - return ( - <> - {list.map((item, index) => ( -
-

{item}

-
- ))} - - ); - } else { - return <>; - } -} diff --git a/src/components/note/modal/index.tsx b/src/components/note/modal/index.tsx deleted file mode 100644 index 25710af2..00000000 --- a/src/components/note/modal/index.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import { RelayContext } from '@components/contexts/relay'; -import { Content } from '@components/note/content'; -import NoteReply from '@components/note/modal/noteReply'; - -import useLocalStorage from '@rehooks/local-storage'; -import { memo, useContext, useState } from 'react'; - -const Modal = ({ event }: { event: any }) => { - const relayPool: any = useContext(RelayContext); - const [relays]: any = useLocalStorage('relays'); - const [events, setEvents] = useState([]); - - relayPool.subscribe( - [ - { - '#e': [event.id], - since: event.created_at, - kinds: [1], - }, - ], - relays, - (event: any) => { - setEvents((events) => [event, ...events]); - }, - undefined, - (events: any, relayURL: any) => { - console.log(events, relayURL); - } - ); - - return ( -
-
-
-
-
-
- -
-
- {events.map((item) => ( - - ))} -
-
-
-
-
- ); -}; - -export default memo(Modal); diff --git a/src/components/note/modal/noteReply.tsx b/src/components/note/modal/noteReply.tsx deleted file mode 100644 index 0666ff3a..00000000 --- a/src/components/note/modal/noteReply.tsx +++ /dev/null @@ -1,9 +0,0 @@ -import { Content } from '@components/note/content'; - -export default function NoteReply({ event }: { event: any }) { - return ( -
- -
- ); -} diff --git a/src/layouts/baseLayout.tsx b/src/layouts/base.tsx similarity index 100% rename from src/layouts/baseLayout.tsx rename to src/layouts/base.tsx diff --git a/src/layouts/fullLayout.tsx b/src/layouts/fullscreen.tsx similarity index 81% rename from src/layouts/fullLayout.tsx rename to src/layouts/fullscreen.tsx index c3dae8cc..58bbdcb9 100644 --- a/src/layouts/fullLayout.tsx +++ b/src/layouts/fullscreen.tsx @@ -1,4 +1,4 @@ -export default function FullLayout({ children }: { children: React.ReactNode }) { +export default function FullscreenLayout({ children }: { children: React.ReactNode }) { return (
{/* dragging area */} diff --git a/src/layouts/newsfeedLayout.tsx b/src/layouts/newsfeed.tsx similarity index 79% rename from src/layouts/newsfeedLayout.tsx rename to src/layouts/newsfeed.tsx index 54246b21..c49447f5 100644 --- a/src/layouts/newsfeedLayout.tsx +++ b/src/layouts/newsfeed.tsx @@ -1,16 +1,16 @@ -import AccountBar from '@components/accountBar'; -import NavigatorBar from '@components/navigatorBar'; +import AccountColumn from '@components/columns/account'; +import NavigatorColumn from '@components/columns/navigator'; export default function NewsFeedLayout({ children }: { children: React.ReactNode }) { return (
- +
- +
{children}
diff --git a/src/layouts/onboardingLayout.tsx b/src/layouts/onboarding.tsx similarity index 100% rename from src/layouts/onboardingLayout.tsx rename to src/layouts/onboarding.tsx diff --git a/src/layouts/userLayout.tsx b/src/layouts/user.tsx similarity index 96% rename from src/layouts/userLayout.tsx rename to src/layouts/user.tsx index 534ae71a..a488b282 100644 --- a/src/layouts/userLayout.tsx +++ b/src/layouts/user.tsx @@ -1,5 +1,5 @@ -import AccountBar from '@components/accountBar'; import ActiveLink from '@components/activeLink'; +import AccountColumn from '@components/columns/account'; import { useLocalStorage } from '@rehooks/local-storage'; @@ -10,7 +10,7 @@ export default function UserLayout({ children }: { children: React.ReactNode })
- +
diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 431c88e5..8149acd3 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import FullLayout from '@layouts/fullLayout'; +import BaseLayout from '@layouts/base'; +import FullscreenLayout from '@layouts/fullscreen'; import LumeSymbol from '@assets/icons/Lume'; import { useLocalStorage } from '@rehooks/local-storage'; @@ -22,7 +22,7 @@ export default function Page() { } else { setTimeout(() => { setLoading(false); - router.push('/feed/following'); + router.push('/newsfeed/following'); }, 1500); } }, [currentUser, router]); @@ -106,7 +106,7 @@ Page.getLayout = function getLayout( ) { return ( - {page} + {page} ); }; diff --git a/src/pages/newsfeed/circle.tsx b/src/pages/newsfeed/circle.tsx new file mode 100644 index 00000000..d6749316 --- /dev/null +++ b/src/pages/newsfeed/circle.tsx @@ -0,0 +1,28 @@ +import BaseLayout from '@layouts/base'; +import NewsFeedLayout from '@layouts/newsfeed'; + +import { JSXElementConstructor, ReactElement, ReactFragment, ReactPortal } from 'react'; + +export default function Page() { + return ( +
+

Global

+
+ ); +} + +Page.getLayout = function getLayout( + page: + | string + | number + | boolean + | ReactElement> + | ReactFragment + | ReactPortal +) { + return ( + + {page} + + ); +}; diff --git a/src/pages/feed/following.tsx b/src/pages/newsfeed/following.tsx similarity index 97% rename from src/pages/feed/following.tsx rename to src/pages/newsfeed/following.tsx index f4dd1dd7..71b5bddc 100644 --- a/src/pages/feed/following.tsx +++ b/src/pages/newsfeed/following.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import NewsFeedLayout from '@layouts/newsfeedLayout'; +import BaseLayout from '@layouts/base'; +import NewsFeedLayout from '@layouts/newsfeed'; import { DatabaseContext } from '@components/contexts/database'; import { NoteConnector } from '@components/note/connector'; diff --git a/src/pages/feed/global.tsx b/src/pages/newsfeed/global.tsx similarity index 83% rename from src/pages/feed/global.tsx rename to src/pages/newsfeed/global.tsx index 6155bef1..d6749316 100644 --- a/src/pages/feed/global.tsx +++ b/src/pages/newsfeed/global.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import NewsFeedLayout from '@layouts/newsfeedLayout'; +import BaseLayout from '@layouts/base'; +import NewsFeedLayout from '@layouts/newsfeed'; import { JSXElementConstructor, ReactElement, ReactFragment, ReactPortal } from 'react'; diff --git a/src/pages/onboarding/create/index.tsx b/src/pages/onboarding/create/index.tsx index 770bad0b..90f8189f 100644 --- a/src/pages/onboarding/create/index.tsx +++ b/src/pages/onboarding/create/index.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import OnboardingLayout from '@layouts/onboardingLayout'; +import BaseLayout from '@layouts/base'; +import OnboardingLayout from '@layouts/onboarding'; import { DatabaseContext } from '@components/contexts/database'; import { RelayContext } from '@components/contexts/relay'; diff --git a/src/pages/onboarding/create/pre-follows.tsx b/src/pages/onboarding/create/pre-follows.tsx index e034eaa3..af097746 100644 --- a/src/pages/onboarding/create/pre-follows.tsx +++ b/src/pages/onboarding/create/pre-follows.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import OnboardingLayout from '@layouts/onboardingLayout'; +import BaseLayout from '@layouts/base'; +import OnboardingLayout from '@layouts/onboarding'; import { DatabaseContext } from '@components/contexts/database'; diff --git a/src/pages/onboarding/index.tsx b/src/pages/onboarding/index.tsx index fd7f5b29..521d78fa 100644 --- a/src/pages/onboarding/index.tsx +++ b/src/pages/onboarding/index.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import OnboardingLayout from '@layouts/onboardingLayout'; +import BaseLayout from '@layouts/base'; +import OnboardingLayout from '@layouts/onboarding'; import { motion } from 'framer-motion'; import Link from 'next/link'; diff --git a/src/pages/onboarding/login/fetch.tsx b/src/pages/onboarding/login/fetch.tsx index 2943b4fc..9b1bca29 100644 --- a/src/pages/onboarding/login/fetch.tsx +++ b/src/pages/onboarding/login/fetch.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import OnboardingLayout from '@layouts/onboardingLayout'; +import BaseLayout from '@layouts/base'; +import OnboardingLayout from '@layouts/onboarding'; import { DatabaseContext } from '@components/contexts/database'; import { RelayContext } from '@components/contexts/relay'; diff --git a/src/pages/onboarding/login/index.tsx b/src/pages/onboarding/login/index.tsx index b6c68e65..47ca3354 100644 --- a/src/pages/onboarding/login/index.tsx +++ b/src/pages/onboarding/login/index.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import OnboardingLayout from '@layouts/onboardingLayout'; +import BaseLayout from '@layouts/base'; +import OnboardingLayout from '@layouts/onboarding'; import { motion } from 'framer-motion'; import { useRouter } from 'next/router'; diff --git a/src/pages/profile/personal.tsx b/src/pages/profile/personal.tsx index a9d517ba..d97e5c03 100644 --- a/src/pages/profile/personal.tsx +++ b/src/pages/profile/personal.tsx @@ -1,4 +1,4 @@ -import BaseLayout from '@layouts/baseLayout'; +import BaseLayout from '@layouts/base'; import { JSXElementConstructor, ReactElement, ReactFragment, ReactPortal } from 'react'; diff --git a/src/pages/profile/update.tsx b/src/pages/profile/update.tsx index 6ae6a609..9cb99915 100644 --- a/src/pages/profile/update.tsx +++ b/src/pages/profile/update.tsx @@ -1,5 +1,5 @@ -import BaseLayout from '@layouts/baseLayout'; -import UserLayout from '@layouts/userLayout'; +import BaseLayout from '@layouts/base'; +import UserLayout from '@layouts/user'; import { RelayContext } from '@components/contexts/relay'; diff --git a/src/utils/getDate.tsx b/src/utils/getDate.tsx index 66a165e9..2915fbcc 100644 --- a/src/utils/getDate.tsx +++ b/src/utils/getDate.tsx @@ -1,3 +1,4 @@ +// get X days ago with user provided date export const daysAgo = (numOfDays, date = new Date()) => { const daysAgo = new Date(date.getTime()); daysAgo.setDate(date.getDate() - numOfDays); @@ -5,6 +6,7 @@ export const daysAgo = (numOfDays, date = new Date()) => { return daysAgo; }; +// get X hours ago with user provided date export const hoursAgo = (numOfHours, date = new Date()) => { const hoursAgo = new Date(date.getTime()); hoursAgo.setHours(date.getHours() - numOfHours); @@ -12,6 +14,7 @@ export const hoursAgo = (numOfHours, date = new Date()) => { return hoursAgo; }; +// convert date to unix timestamp export const dateToUnix = (_date?: Date) => { const date = _date || new Date();