npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@next-pusher-chat/core

v1.1.72

Published

A real-time chat solution for Next.js using Pusher

Downloads

343

Readme

@next-pusher-chat/core

Une solution de chat en temps réel pour Next.js utilisant Pusher.

Installation

Le package est disponible sur npm. Vous pouvez l'installer avec :

npm install @next-pusher-chat/core
# ou
yarn add @next-pusher-chat/core

Dépendances requises

  • Next.js ^14.0.0
  • Pusher ^5.2.0
  • pusher-js ^8.4.0
  • React ^18.2.0
  • React DOM ^18.2.0

Configuration

Configuration de Pusher

  1. Créez un compte sur Pusher
  2. Créez une nouvelle application Pusher
  3. Configurez les variables d'environnement dans votre fichier .env.local :
NEXT_PUBLIC_PUSHER_APP_KEY=votre_app_key
NEXT_PUBLIC_PUSHER_CLUSTER=votre_cluster
PUSHER_APP_ID=votre_app_id
PUSHER_SECRET=votre_secret

Activation des logs

Pour activer les logs de débogage, ajoutez la variable d'environnement suivante :

NEXT_PUBLIC_PUSHER_DEBUG=true

Cette variable activera les logs détaillés de Pusher dans la console du navigateur, ce qui est utile pour le débogage des connexions et des événements.

Composants disponibles

Chat

Le composant Chat est le composant principal qui offre une interface de chat complète.

import { Chat } from "@next-pusher-chat/core";

export default function Conversation({ conversationId }: { conversationId: string }) {
  return (
    <Chat
      config={{
        activeEmoji: true,        // Active le sélecteur d'emojis
        activeFile: true,         // Active l'envoi de fichiers
        activeVoice: true,        // Active l'enregistrement vocal
        activeUserColor: true,    // Active les couleurs personnalisées pour les utilisateurs
        welcomeMessage: "Bienvenue dans la conversation" // Message de bienvenue
      }}
      participants={participants}
      defaultMessages={messages}
      conversationId={conversationId}
      onReceiveMessage={async (eventId, message) => {
        // Gérer la réception des messages
        return message;
      }}
      onSendMessage={async (eventId, message) => {
        // Gérer l'envoi des messages
        return message;
      }}
      onMessageSeen={async ({ lastMessage, conversationId, userId }) => {
        // Gérer les notifications de messages lus
      }}
    />
  );
}

ChatBubble

Le composant ChatBubble offre une interface de chat plus légère et compacte.

import { ChatBubble } from "@next-pusher-chat/core";

export default function Bubble({ conversationId }: { conversationId: string }) {
  return (
    <ChatBubble
      config={{
        activeEmoji: true,    // Active le sélecteur d'emojis
        activeFile: true      // Active l'envoi de fichiers
      }}
      participants={participants}
      defaultMessages={messages}
      conversationId={conversationId}
      onReceiveMessage={async (eventId, message) => {
        // Gérer la réception des messages
        return message;
      }}
      onSendMessage={async (eventId, message) => {
        // Gérer l'envoi des messages
        return message;
      }}
    />
  );
}

Fonctionnalités

Configuration

Le paramètre config permet d'activer ou désactiver différentes fonctionnalités :

  • activeEmoji: Active/désactive le sélecteur d'emojis
  • activeFile: Active/désactive l'envoi de fichiers
  • activeVoice: Active/désactive l'enregistrement vocal
  • activeUserColor: Active/désactive les couleurs personnalisées pour les utilisateurs
  • welcomeMessage: Définit le message de bienvenue

Notifications de messages lus

Pour activer les notifications de messages lus, vous devez implémenter la fonction onMessageSeen dans le composant Chat. Cette fonction est appelée lorsqu'un utilisateur lit les messages.

onMessageSeen={async ({ lastMessage, conversationId, userId }) => {
  try {
    if (!lastMessage) return;
    // Implémentez votre logique de marquage des messages comme lus
    await markAllMessagesAsSeen(conversationId, userId);
  } catch (error) {
    console.error("Erreur lors de la lecture des messages:", error);
  }
}}

Types

La bibliothèque exporte plusieurs types utiles :

import { User, Message } from "@next-pusher-chat/core";

Support

Pour toute question ou problème, veuillez ouvrir une issue sur GitHub.