import { NDKFilter, NDKKind } from '@nostr-dev-kit/ndk'; import { useEffect } from 'react'; import { Link } from 'react-router-dom'; import { useStorage } from '@libs/storage/provider'; import { SettingsIcon } from '@shared/icons'; import { Image } from '@shared/image'; import { Logout } from '@shared/logout'; import { useActivities } from '@stores/activities'; import { useNostr } from '@utils/hooks/useNostr'; import { useProfile } from '@utils/hooks/useProfile'; import { sendNativeNotification } from '@utils/notification'; import { displayNpub } from '@utils/shortenKey'; export function ActiveAccount() { const { db } = useStorage(); const { status, user } = useProfile(db.account.pubkey); const { sub } = useNostr(); const addActivity = useActivities((state) => state.addActivity); useEffect(() => { const filter: NDKFilter = { '#p': [db.account.pubkey], kinds: [NDKKind.Text, NDKKind.Repost, NDKKind.Reaction, NDKKind.Zap], since: Math.floor(Date.now() / 1000), }; sub( filter, async (event) => { addActivity(event); switch (event.kind) { case NDKKind.Text: return await sendNativeNotification('Mention'); case NDKKind.Repost: return await sendNativeNotification('Repost'); case NDKKind.Reaction: return await sendNativeNotification('Reaction'); case NDKKind.Zap: return await sendNativeNotification('Zap'); default: break; } }, false ); }, []); if (status === 'loading') { return (
{user?.name || user?.display_name || user?.displayName}
{user?.nip05 || displayNpub(db.account.pubkey, 12)}