- Création lib/platformCommissions.ts : configuration centralisée des commissions - Articles : 800 sats (700 auteur, 100 plateforme) - Avis : 70 sats (49 lecteur, 21 plateforme) - Sponsoring : 0.046 BTC (0.042 auteur, 0.004 plateforme) - Validation des montants à chaque étape : - Publication : vérification du montant avant publication - Paiement : vérification du montant avant acceptation - Erreurs explicites si montant incorrect - Tracking des commissions sur Nostr : - Tags author_amount et platform_commission dans événements - Interface ContentDeliveryTracking étendue - Traçabilité complète pour audit - Logs structurés avec informations de commission - Documentation complète du système Les commissions sont maintenant systématiques, validées et traçables.
39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import React from 'react'
|
|
type CategoryFilter = 'science-fiction' | 'scientific-research' | 'all' | null
|
|
|
|
interface CategoryTabsProps {
|
|
selectedCategory: CategoryFilter
|
|
onCategoryChange: (category: CategoryFilter) => void
|
|
}
|
|
|
|
export function CategoryTabs({ selectedCategory, onCategoryChange }: CategoryTabsProps) {
|
|
return (
|
|
<div className="mb-6">
|
|
<div className="border-b border-neon-cyan/30">
|
|
<nav className="-mb-px flex space-x-8">
|
|
<button
|
|
onClick={() => onCategoryChange('science-fiction')}
|
|
className={`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${
|
|
selectedCategory === 'science-fiction'
|
|
? 'border-neon-cyan text-neon-cyan'
|
|
: 'border-transparent text-cyber-accent/70 hover:text-neon-cyan hover:border-neon-cyan/50'
|
|
}`}
|
|
>
|
|
Science-fiction
|
|
</button>
|
|
<button
|
|
onClick={() => onCategoryChange('scientific-research')}
|
|
className={`py-4 px-1 border-b-2 font-medium text-sm transition-colors ${
|
|
selectedCategory === 'scientific-research'
|
|
? 'border-neon-cyan text-neon-cyan'
|
|
: 'border-transparent text-cyber-accent/70 hover:text-neon-cyan hover:border-neon-cyan/50'
|
|
}`}
|
|
>
|
|
Recherche scientifique
|
|
</button>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|