FluxyChat

Packages

@fluxy-chat/react

React hooks and providers for [FluxyChat](https://github.com/AlessandroFare/fluxychat).

Install

pnpm add @fluxy-chat/react @fluxy-chat/sdk

Requires react 18+ as a peer dependency.

Usage

import { FluxyChatClient } from "@fluxy-chat/sdk";
import { FluxyRealtimeProvider, useChat, useInbox } from "@fluxy-chat/react";

const client = new FluxyChatClient({
  baseUrl: process.env.NEXT_PUBLIC_FLUXYCHAT_WORKER_URL!,
  userId: "alice",
  token: memberJwt,
});

function App() {
  return (
    <FluxyRealtimeProvider workerUrl={process.env.NEXT_PUBLIC_FLUXYCHAT_WORKER_URL!} connectUrl="/api/fluxy/connect">
      <Room roomId="general" />
      <InboxPanel />
    </FluxyRealtimeProvider>
  );
}

function Room({ roomId }: { roomId: string }) {
  const { messages, sendMessage, connectionState } = useChat({ roomId, client });
  // connectionState: connected | degraded | degraded-http | blocked | …
}

function InboxPanel() {
  const { items, unseen, onItem } = useInbox({ client, onItem: (item) => console.log(item) });
}

Exports

Hook / componentPurpose
useChatRoom messages, send, pagination, connection state
useInboxInbox items feed, unseen count, live onItem
useNotificationsIn-app notification list
useLocationRealtime location sharing
useWebPushWeb push subscription helpers
useUserChannelUser-scoped WebSocket events
FluxyRealtimeProviderShared client + JWT refresh
useFluxyChat / useFluxyChatOptionalAccess provider client

Note on the transitional split

During the transitional split, this package re-exports React APIs implemented in @fluxy-chat/sdk. New apps should import hooks from here; the monolithic SDK export remains for backward compatibility.

Legacy imports via @fluxy-chat/sdk/react continue to work during the split.

License

MIT

On this page