Une bibliothèque React moderne pour créer des fils de discussion (threads) élégants et interactifs, construite avec Next.js 14 et Material-UI.
- Interface utilisateur moderne et responsive
- Support complet des avatars utilisateurs
- Affichage intelligent des dates (format relatif pour les messages récents)
- Support des réponses imbriquées
- Thème personnalisable via Material-UI
- Support TypeScript complet
- Optimisé pour les performances
# Installation des dépendances
pnpm install
# Développement
pnpm dev
# Build
pnpm buildimport { Thread } from 'next-threads';
const MyThread = () => {
const thread = {
author: {
name: "John Doe",
avatar: "https://example.com/avatar.jpg"
},
content: "Contenu du message",
createdAt: new Date(),
replies: []
};
return <Thread data={thread} />;
};next-threads/
├── packages/
│ └── next-threads/ # Bibliothèque principale
│ ├── src/
│ │ ├── components/ # Composants React
│ │ ├── hooks/ # Hooks personnalisés
│ │ └── types/ # Types TypeScript
│ └── package.json
└── apps/
└── demo/ # Application de démonstration
# Dans le dossier packages/next-threads
pnpm dev# Dans le dossier apps/demo
pnpm devLa bibliothèque utilise Material-UI pour le style, vous pouvez donc personnaliser l'apparence en utilisant le système de thème de MUI :
import { ThemeProvider, createTheme } from '@mui/material';
const theme = createTheme({
// Votre configuration de thème personnalisée
});
const App = () => (
<ThemeProvider theme={theme}>
<Thread data={threadData} />
</ThemeProvider>
);# Exécuter les tests
pnpm test
# Exécuter les tests en mode watch
pnpm test:watch- Next.js 14 - Framework React
- Material-UI - Bibliothèque de composants UI
- TypeScript - Typage statique
- tsup - Build de la bibliothèque
- pnpm - Gestionnaire de paquets
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre fonctionnalité (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Pour toute question ou suggestion, n'hésitez pas à ouvrir une issue sur GitHub.