import Head from 'next/head' import type { Article } from '@/types/nostr' import type { ArticleFilters } from '@/components/ArticleFilters' import type { NostrProfile } from '@/types/nostr' import { ProfileHeader } from '@/components/ProfileHeader' import { BackButton } from '@/components/ProfileBackButton' import { UserProfile } from '@/components/UserProfile' import { SearchBar } from '@/components/SearchBar' import { ArticleFiltersComponent } from '@/components/ArticleFilters' import { ArticlesSummary } from '@/components/ProfileArticlesSummary' import { UserArticles } from '@/components/UserArticles' interface ProfileViewProps { currentPubkey: string profile: NostrProfile | null loadingProfile: boolean searchQuery: string setSearchQuery: (value: string) => void filters: ArticleFilters setFilters: (value: ArticleFilters) => void articles: Article[] allArticles: Article[] loading: boolean error: string | null loadArticleContent: (id: string, pubkey: string) => Promise
} function ProfileLoading() { return (

Loading profile...

) } function ProfileArticlesSection({ searchQuery, setSearchQuery, filters, setFilters, articles, allArticles, loading, error, loadArticleContent, articleFiltersVisible, }: Pick< ProfileViewProps, 'searchQuery' | 'setSearchQuery' | 'filters' | 'setFilters' | 'articles' | 'allArticles' | 'loading' | 'error' | 'loadArticleContent' > & { articleFiltersVisible: boolean }) { return ( <>

My Articles

{articleFiltersVisible && ( )}
) } function ProfileLayout({ currentPubkey, profile, loadingProfile, searchQuery, setSearchQuery, filters, setFilters, articles, allArticles, loading, error, loadArticleContent, }: ProfileViewProps) { const articleFiltersVisible = !loading && allArticles.length > 0 return ( <> {loadingProfile ? ( ) : profile ? ( ) : null} ) } export function ProfileView(props: ProfileViewProps) { return ( <> My Profile - zapwall4Science
) }