Nicolas Cantu 90ff8282f1 feat: Implémentation système de commissions systématique et incontournable
- 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.
2025-12-27 21:11:09 +01:00

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>
)
}