import BookmarksList from '@/components/BookmarksList' import NoteList from '@/components/NoteList' import PostEditor from '@/components/PostEditor' import SaveRelayDropdownMenu from '@/components/SaveRelayDropdownMenu' import { Button } from '@/components/ui/button' import PrimaryPageLayout from '@/layouts/PrimaryPageLayout' import { useFeed } from '@/providers/FeedProvider' import { useNostr } from '@/providers/NostrProvider' import { useScreenSize } from '@/providers/ScreenSizeProvider' import { TPageRef } from '@/types' import { PencilLine } from 'lucide-react' import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' import FeedButton from './FeedButton' import SearchButton from './SearchButton' const NoteListPage = forwardRef((_, ref) => { const { t } = useTranslation() const layoutRef = useRef(null) const { pubkey, checkLogin } = useNostr() const { feedInfo, relayUrls, isReady, filter } = useFeed() useImperativeHandle(ref, () => layoutRef.current) useEffect(() => { if (layoutRef.current) { layoutRef.current.scrollToTop() } }, [JSON.stringify(relayUrls), feedInfo]) let content =
{t('loading...')}
if (feedInfo.feedType === 'following' && !pubkey) { content = (
) } else if (feedInfo.feedType === 'bookmarks') { if (!pubkey) { content = (
) } else { content = } } else if (isReady) { content = ( ) } return ( } displayScrollToTopButton > {content} ) }) NoteListPage.displayName = 'NoteListPage' export default NoteListPage function NoteListPageTitlebar({ temporaryRelayUrls = [] }: { temporaryRelayUrls?: string[] }) { const { isSmallScreen } = useScreenSize() return (
{temporaryRelayUrls.length > 0 && ( )} {isSmallScreen && }
) } function PostButton() { const { checkLogin } = useNostr() const [open, setOpen] = useState(false) return ( <> ) }