diff --git a/src/components/columns/account/list.tsx b/src/components/columns/account/list.tsx deleted file mode 100644 index a92141bc..00000000 --- a/src/components/columns/account/list.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import { ActiveAccount } from '@components/columns/account/active'; -import { InactiveAccount } from '@components/columns/account/inactive'; - -import { activeAccountAtom } from '@stores/account'; - -import { getAccounts } from '@utils/storage'; - -import { useAtomValue } from 'jotai'; -import { useCallback, useEffect, useState } from 'react'; - -export default function AccountList() { - const activeAccount: any = useAtomValue(activeAccountAtom); - const [users, setUsers] = useState([]); - - const renderAccount = useCallback( - (user: { id: string }) => { - if (user.id === activeAccount.id) { - return ; - } else { - return ; - } - }, - [activeAccount.id] - ); - - useEffect(() => { - const fetchAccount = async () => { - const result: any = await getAccounts(); - setUsers(result); - }; - - fetchAccount().catch(console.error); - }, []); - - return <>{users.map((user) => renderAccount(user))}; -} diff --git a/src/components/columns/account/active.tsx b/src/components/multiAccounts/activeAccount.tsx similarity index 90% rename from src/components/columns/account/active.tsx rename to src/components/multiAccounts/activeAccount.tsx index a2f28c86..3b7fb1de 100644 --- a/src/components/columns/account/active.tsx +++ b/src/components/multiAccounts/activeAccount.tsx @@ -1,25 +1,23 @@ import { RelayContext } from '@components/relaysProvider'; -import { dateToUnix } from '@utils/getDate'; +import { DEFAULT_AVATAR } from '@stores/constants'; + import { createFollows } from '@utils/storage'; import { tagsToArray } from '@utils/transform'; import * as DropdownMenu from '@radix-ui/react-dropdown-menu'; import { AvatarIcon, ExitIcon, GearIcon } from '@radix-ui/react-icons'; import { writeText } from '@tauri-apps/api/clipboard'; -import destr from 'destr'; import Image from 'next/image'; import { useRouter } from 'next/router'; import { nip19 } from 'nostr-tools'; -import { memo, useContext, useEffect, useRef } from 'react'; +import { memo, useContext, useEffect } from 'react'; export const ActiveAccount = memo(function ActiveAccount({ user }: { user: any }) { const [pool, relays]: any = useContext(RelayContext); const router = useRouter(); - const userData = destr(user.metadata); - - const now = useRef(new Date()); + const userData = JSON.parse(user.metadata); const openProfilePage = () => { router.push(`/users/${user.id}`); @@ -35,7 +33,6 @@ export const ActiveAccount = memo(function ActiveAccount({ user }: { user: any } { kinds: [3], authors: [user.id], - since: dateToUnix(now.current), }, ], relays, @@ -61,12 +58,10 @@ export const ActiveAccount = memo(function ActiveAccount({ user }: { user: any } diff --git a/src/components/columns/account/inactive.tsx b/src/components/multiAccounts/inactiveAccount.tsx similarity index 55% rename from src/components/columns/account/inactive.tsx rename to src/components/multiAccounts/inactiveAccount.tsx index b9bd5060..1aa710b3 100644 --- a/src/components/columns/account/inactive.tsx +++ b/src/components/multiAccounts/inactiveAccount.tsx @@ -1,9 +1,10 @@ -import destr from 'destr'; +import { DEFAULT_AVATAR } from '@stores/constants'; + import Image from 'next/image'; import { memo } from 'react'; export const InactiveAccount = memo(function InactiveAccount({ user }: { user: any }) { - const userData = destr(user.metadata); + const userData = JSON.parse(user.metadata); const setCurrentUser = () => { console.log('clicked'); @@ -11,7 +12,13 @@ export const InactiveAccount = memo(function InactiveAccount({ user }: { user: a return ( ); }); diff --git a/src/components/columns/account/index.tsx b/src/components/multiAccounts/index.tsx similarity index 55% rename from src/components/columns/account/index.tsx rename to src/components/multiAccounts/index.tsx index 79856a62..fa66b1f1 100644 --- a/src/components/columns/account/index.tsx +++ b/src/components/multiAccounts/index.tsx @@ -1,23 +1,41 @@ -import AccountList from '@components/columns/account/list'; +import { ActiveAccount } from '@components/multiAccounts/activeAccount'; +import { InactiveAccount } from '@components/multiAccounts/inactiveAccount'; + +import { activeAccountAtom } from '@stores/account'; +import { APP_VERSION } from '@stores/constants'; + +import { getAccounts } from '@utils/storage'; import LumeSymbol from '@assets/icons/Lume'; import { PlusIcon } from '@radix-ui/react-icons'; -import { getVersion } from '@tauri-apps/api/app'; +import { useAtomValue } from 'jotai'; import Link from 'next/link'; import { useCallback, useEffect, useState } from 'react'; -export default function AccountColumn() { - const [version, setVersion] = useState(null); +export default function MultiAccounts() { + const activeAccount: any = useAtomValue(activeAccountAtom); + const [users, setUsers] = useState([]); - const getAppVersion = useCallback(async () => { - const appVersion = await getVersion(); - setVersion(appVersion); - }, []); + const renderAccount = useCallback( + (user: { id: string }) => { + if (user.id === activeAccount.id) { + return ; + } else { + return ; + } + }, + [activeAccount.id] + ); useEffect(() => { - getAppVersion().catch(console.error); - }, [getAppVersion]); + const fetchAccount = async () => { + const result: any = await getAccounts(); + setUsers(result); + }; + + fetchAccount().catch(console.error); + }, []); return (
@@ -28,7 +46,7 @@ export default function AccountColumn() { > - +
{users.map((user) => renderAccount(user))}
Lume - v{version} + v{APP_VERSION}
); diff --git a/src/layouts/withSidebar.tsx b/src/layouts/withSidebar.tsx index b474448f..77ccef46 100644 --- a/src/layouts/withSidebar.tsx +++ b/src/layouts/withSidebar.tsx @@ -1,6 +1,6 @@ import AppHeader from '@components/appHeader'; -import AccountColumn from '@components/columns/account'; import NavigatorColumn from '@components/columns/navigator'; +import MultiAccounts from '@components/multiAccounts'; export default function WithSidebarLayout({ children }: { children: React.ReactNode }) { return ( @@ -13,7 +13,7 @@ export default function WithSidebarLayout({ children }: { children: React.ReactN
- +
diff --git a/src/stores/constants.tsx b/src/stores/constants.tsx index 85705f9a..892b0f43 100644 --- a/src/stores/constants.tsx +++ b/src/stores/constants.tsx @@ -1 +1,2 @@ +export const APP_VERSION = '0.2.1'; export const DEFAULT_AVATAR = 'https://void.cat/d/KmypFh2fBdYCEvyJrPiN89.webp';