import Head from 'next/head' import type { Article } from '@/types/nostr' import { ArticleFiltersComponent, type ArticleFilters } from '@/components/ArticleFilters' import { CategoryTabs } from '@/components/CategoryTabs' import { SearchBar } from '@/components/SearchBar' import { ArticlesList } from '@/components/ArticlesList' import { PageHeader } from '@/components/PageHeader' import { Footer } from '@/components/Footer' import { FundingGauge } from '@/components/FundingGauge' import type { Dispatch, SetStateAction } from 'react' interface HomeViewProps { searchQuery: string setSearchQuery: Dispatch> selectedCategory: ArticleFilters['category'] setSelectedCategory: Dispatch> filters: ArticleFilters setFilters: Dispatch> articles: Article[] allArticles: Article[] loading: boolean error: string | null onUnlock: (article: Article) => void unlockedArticles: Set } function HomeHead() { return ( zapwall.fr ) } function ArticlesHero({ searchQuery, setSearchQuery, selectedCategory, setSelectedCategory, }: Pick) { return (

Consultez les auteurs et aperçus, achetez les parutions au fil de l'eau par 800 sats (moins 100 sats et frais de transaction).

Sponsorisez l'auteur pour 0.046 BTC (moins 0.004 BTC et frais de transaction).

Les avis sont remerciables pour 70 sats (moins 21 sats et frais de transaction).

Les fonds de la plateforme servent à son développement.

) } function HomeContent({ searchQuery, setSearchQuery, selectedCategory, setSelectedCategory, filters, setFilters, articles, allArticles, loading, error, onUnlock, unlockedArticles, }: HomeViewProps) { const shouldShowFilters = !loading && allArticles.length > 0 const articlesListProps = { articles, allArticles, loading, error, onUnlock, unlockedArticles } return (
{shouldShowFilters && ( )}
) } export function HomeView(props: HomeViewProps) { return ( <>
) }