@fluxy-chat/sdk 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -2
- package/dist/agent-outbound.d.ts +14 -0
- package/dist/agent-outbound.js +53 -0
- package/dist/index.d.ts +22 -51
- package/dist/index.js +59 -448
- package/dist/jwt-utils.d.ts +8 -0
- package/dist/jwt-utils.js +19 -0
- package/dist/message-history.d.ts +23 -0
- package/dist/message-history.js +21 -0
- package/dist/realtime-provider.d.ts +27 -0
- package/dist/realtime-provider.js +130 -0
- package/dist/room-rest.d.ts +4 -0
- package/dist/room-rest.js +24 -0
- package/dist/use-chat.d.ts +49 -0
- package/dist/use-chat.js +482 -0
- package/dist/use-fluxy-chat.d.ts +14 -0
- package/dist/use-fluxy-chat.js +14 -0
- package/dist/use-rooms.d.ts +9 -0
- package/dist/use-rooms.js +25 -0
- package/package.json +21 -2
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { FluxyChatClient } from "./index";
|
|
3
|
+
export interface FluxyRealtimeContextValue {
|
|
4
|
+
client: FluxyChatClient | null;
|
|
5
|
+
userId: string;
|
|
6
|
+
token: string | null;
|
|
7
|
+
workerUrl: string;
|
|
8
|
+
ready: boolean;
|
|
9
|
+
refreshSession: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const FluxyRealtimeContext: React.Context<FluxyRealtimeContextValue | null>;
|
|
12
|
+
export declare function useFluxyChat(): FluxyRealtimeContextValue;
|
|
13
|
+
/** Returns null when no provider is mounted (useChat can still take an explicit client). */
|
|
14
|
+
export declare function useFluxyChatOptional(): FluxyRealtimeContextValue | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export const FluxyRealtimeContext = React.createContext(null);
|
|
4
|
+
export function useFluxyChat() {
|
|
5
|
+
const ctx = React.useContext(FluxyRealtimeContext);
|
|
6
|
+
if (!ctx) {
|
|
7
|
+
throw new Error("useFluxyChat must be used within FluxyRealtimeProvider");
|
|
8
|
+
}
|
|
9
|
+
return ctx;
|
|
10
|
+
}
|
|
11
|
+
/** Returns null when no provider is mounted (useChat can still take an explicit client). */
|
|
12
|
+
export function useFluxyChatOptional() {
|
|
13
|
+
return React.useContext(FluxyRealtimeContext);
|
|
14
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FluxyChatClient, FluxyChatRoom } from "./index";
|
|
2
|
+
export declare function useRooms(client: FluxyChatClient): {
|
|
3
|
+
rooms: (FluxyChatRoom & {
|
|
4
|
+
unreadCount?: number;
|
|
5
|
+
})[];
|
|
6
|
+
loading: boolean;
|
|
7
|
+
error: string | null;
|
|
8
|
+
reload: () => Promise<void>;
|
|
9
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import React from "react";
|
|
3
|
+
export function useRooms(client) {
|
|
4
|
+
const [rooms, setRooms] = React.useState([]);
|
|
5
|
+
const [loading, setLoading] = React.useState(false);
|
|
6
|
+
const [error, setError] = React.useState(null);
|
|
7
|
+
const load = async () => {
|
|
8
|
+
setLoading(true);
|
|
9
|
+
setError(null);
|
|
10
|
+
try {
|
|
11
|
+
const next = await client.listRooms();
|
|
12
|
+
setRooms(next);
|
|
13
|
+
}
|
|
14
|
+
catch (e) {
|
|
15
|
+
setError(e instanceof Error ? e.message : String(e));
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
setLoading(false);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
React.useEffect(() => {
|
|
22
|
+
void load();
|
|
23
|
+
}, [client]);
|
|
24
|
+
return { rooms, loading, error, reload: load };
|
|
25
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluxy-chat/sdk",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Fluxychat JavaScript/TypeScript SDK — WebSocket rooms, REST messages, useChat
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Fluxychat JavaScript/TypeScript SDK — WebSocket rooms, REST messages, FluxyRealtimeProvider, useChat with loadMore",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Fluxychat",
|
|
7
7
|
"repository": {
|
|
@@ -32,6 +32,22 @@
|
|
|
32
32
|
"dist/errors.d.ts",
|
|
33
33
|
"dist/message-stream.js",
|
|
34
34
|
"dist/message-stream.d.ts",
|
|
35
|
+
"dist/message-history.js",
|
|
36
|
+
"dist/message-history.d.ts",
|
|
37
|
+
"dist/jwt-utils.js",
|
|
38
|
+
"dist/jwt-utils.d.ts",
|
|
39
|
+
"dist/realtime-provider.js",
|
|
40
|
+
"dist/realtime-provider.d.ts",
|
|
41
|
+
"dist/use-fluxy-chat.js",
|
|
42
|
+
"dist/use-fluxy-chat.d.ts",
|
|
43
|
+
"dist/use-chat.js",
|
|
44
|
+
"dist/use-chat.d.ts",
|
|
45
|
+
"dist/use-rooms.js",
|
|
46
|
+
"dist/use-rooms.d.ts",
|
|
47
|
+
"dist/room-rest.js",
|
|
48
|
+
"dist/room-rest.d.ts",
|
|
49
|
+
"dist/agent-outbound.js",
|
|
50
|
+
"dist/agent-outbound.d.ts",
|
|
35
51
|
"LICENSE",
|
|
36
52
|
"README.md"
|
|
37
53
|
],
|
|
@@ -51,6 +67,9 @@
|
|
|
51
67
|
"devDependencies": {
|
|
52
68
|
"@types/node": "^24.3.0",
|
|
53
69
|
"@types/react": "^19.2.14",
|
|
70
|
+
"@types/react-dom": "^19.2.3",
|
|
71
|
+
"react": "latest",
|
|
72
|
+
"react-dom": "latest",
|
|
54
73
|
"typescript": "latest",
|
|
55
74
|
"vitest": "^4.1.5"
|
|
56
75
|
}
|