@melony/react 0.1.11 → 0.1.12
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/dist/index.cjs +29 -15
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -9
- package/dist/index.d.ts +12 -9
- package/dist/index.js +29 -15
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default, { ReactNode } from 'react';
|
|
3
|
-
import { ClientState,
|
|
3
|
+
import { ClientState, MelonyClient } from '@melony/core/client';
|
|
4
4
|
import { Role, Event, UINode } from '@melony/core';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -45,15 +45,16 @@ interface MelonyContextValue extends ClientState {
|
|
|
45
45
|
runId?: string;
|
|
46
46
|
state?: Record<string, any>;
|
|
47
47
|
}) => Promise<void>;
|
|
48
|
-
|
|
49
|
-
client:
|
|
48
|
+
reset: (events?: Event[]) => void;
|
|
49
|
+
client: MelonyClient;
|
|
50
50
|
}
|
|
51
51
|
declare const MelonyContext: React__default.Context<MelonyContextValue | undefined>;
|
|
52
|
-
interface
|
|
52
|
+
interface MelonyClientProviderProps {
|
|
53
53
|
children: ReactNode;
|
|
54
|
-
client:
|
|
54
|
+
client: MelonyClient;
|
|
55
|
+
initialEvents?: Event[];
|
|
55
56
|
}
|
|
56
|
-
declare const
|
|
57
|
+
declare const MelonyClientProvider: React__default.FC<MelonyClientProviderProps>;
|
|
57
58
|
|
|
58
59
|
interface AuthContextValue {
|
|
59
60
|
user: User | null;
|
|
@@ -80,7 +81,6 @@ interface ThreadContextValue {
|
|
|
80
81
|
deleteThread: (threadId: string) => Promise<void>;
|
|
81
82
|
refreshThreads: () => Promise<void>;
|
|
82
83
|
threadEvents: Event[];
|
|
83
|
-
threadMessages: Message[];
|
|
84
84
|
isLoadingEvents: boolean;
|
|
85
85
|
}
|
|
86
86
|
declare const ThreadContext: React__default.Context<ThreadContextValue | undefined>;
|
|
@@ -91,7 +91,10 @@ interface ThreadProviderProps {
|
|
|
91
91
|
}
|
|
92
92
|
declare const ThreadProvider: React__default.FC<ThreadProviderProps>;
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
interface UseMelonyOptions {
|
|
95
|
+
initialEvents?: Event[];
|
|
96
|
+
}
|
|
97
|
+
declare const useMelony: (options?: UseMelonyOptions) => MelonyContextValue;
|
|
95
98
|
|
|
96
99
|
declare const useAuth: () => AuthContextValue;
|
|
97
100
|
|
|
@@ -162,4 +165,4 @@ interface UIRendererProps {
|
|
|
162
165
|
*/
|
|
163
166
|
declare function UIRenderer({ node }: UIRendererProps): react_jsx_runtime.JSX.Element;
|
|
164
167
|
|
|
165
|
-
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer,
|
|
168
|
+
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer, MelonyClientProvider, type MelonyClientProviderProps, MelonyContext, type MelonyContextValue, type Message, type StarterPrompt, Thread, ThreadContext, type ThreadContextValue, type ThreadData, ThreadList, type ThreadListProps, ThreadProvider, type ThreadProviderProps, type ThreadService, UIRenderer, type UIRendererProps, type UseMelonyOptions, type User, useAuth, useMelony, useThreads };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React$1 from 'react';
|
|
2
2
|
import React__default, { ReactNode } from 'react';
|
|
3
|
-
import { ClientState,
|
|
3
|
+
import { ClientState, MelonyClient } from '@melony/core/client';
|
|
4
4
|
import { Role, Event, UINode } from '@melony/core';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -45,15 +45,16 @@ interface MelonyContextValue extends ClientState {
|
|
|
45
45
|
runId?: string;
|
|
46
46
|
state?: Record<string, any>;
|
|
47
47
|
}) => Promise<void>;
|
|
48
|
-
|
|
49
|
-
client:
|
|
48
|
+
reset: (events?: Event[]) => void;
|
|
49
|
+
client: MelonyClient;
|
|
50
50
|
}
|
|
51
51
|
declare const MelonyContext: React__default.Context<MelonyContextValue | undefined>;
|
|
52
|
-
interface
|
|
52
|
+
interface MelonyClientProviderProps {
|
|
53
53
|
children: ReactNode;
|
|
54
|
-
client:
|
|
54
|
+
client: MelonyClient;
|
|
55
|
+
initialEvents?: Event[];
|
|
55
56
|
}
|
|
56
|
-
declare const
|
|
57
|
+
declare const MelonyClientProvider: React__default.FC<MelonyClientProviderProps>;
|
|
57
58
|
|
|
58
59
|
interface AuthContextValue {
|
|
59
60
|
user: User | null;
|
|
@@ -80,7 +81,6 @@ interface ThreadContextValue {
|
|
|
80
81
|
deleteThread: (threadId: string) => Promise<void>;
|
|
81
82
|
refreshThreads: () => Promise<void>;
|
|
82
83
|
threadEvents: Event[];
|
|
83
|
-
threadMessages: Message[];
|
|
84
84
|
isLoadingEvents: boolean;
|
|
85
85
|
}
|
|
86
86
|
declare const ThreadContext: React__default.Context<ThreadContextValue | undefined>;
|
|
@@ -91,7 +91,10 @@ interface ThreadProviderProps {
|
|
|
91
91
|
}
|
|
92
92
|
declare const ThreadProvider: React__default.FC<ThreadProviderProps>;
|
|
93
93
|
|
|
94
|
-
|
|
94
|
+
interface UseMelonyOptions {
|
|
95
|
+
initialEvents?: Event[];
|
|
96
|
+
}
|
|
97
|
+
declare const useMelony: (options?: UseMelonyOptions) => MelonyContextValue;
|
|
95
98
|
|
|
96
99
|
declare const useAuth: () => AuthContextValue;
|
|
97
100
|
|
|
@@ -162,4 +165,4 @@ interface UIRendererProps {
|
|
|
162
165
|
*/
|
|
163
166
|
declare function UIRenderer({ node }: UIRendererProps): react_jsx_runtime.JSX.Element;
|
|
164
167
|
|
|
165
|
-
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer,
|
|
168
|
+
export { AccountDialog, type AccountDialogProps, AuthContext, type AuthContextValue, AuthProvider, type AuthProviderProps, type AuthService, ChatFull, type ChatFullProps, ChatPopup, type ChatPopupProps, ChatSidebar, type ChatSidebarProps, Composer, MelonyClientProvider, type MelonyClientProviderProps, MelonyContext, type MelonyContextValue, type Message, type StarterPrompt, Thread, ThreadContext, type ThreadContextValue, type ThreadData, ThreadList, type ThreadListProps, ThreadProvider, type ThreadProviderProps, type ThreadService, UIRenderer, type UIRendererProps, type UseMelonyOptions, type User, useAuth, useMelony, useThreads };
|
package/dist/index.js
CHANGED
|
@@ -46,15 +46,22 @@ function groupEventsToMessages(events) {
|
|
|
46
46
|
var MelonyContext = createContext(
|
|
47
47
|
void 0
|
|
48
48
|
);
|
|
49
|
-
var
|
|
49
|
+
var MelonyClientProvider = ({
|
|
50
50
|
children,
|
|
51
|
-
client
|
|
51
|
+
client,
|
|
52
|
+
initialEvents
|
|
52
53
|
}) => {
|
|
53
54
|
const [state, setState] = useState(client.getState());
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
57
|
+
client.reset(initialEvents);
|
|
58
|
+
}
|
|
59
|
+
}, [client, initialEvents]);
|
|
54
60
|
useEffect(() => {
|
|
55
61
|
setState(client.getState());
|
|
62
|
+
const unsubscribe = client.subscribe(setState);
|
|
56
63
|
return () => {
|
|
57
|
-
|
|
64
|
+
unsubscribe();
|
|
58
65
|
};
|
|
59
66
|
}, [client]);
|
|
60
67
|
const sendEvent = useCallback(
|
|
@@ -65,16 +72,19 @@ var MelonyProvider = ({
|
|
|
65
72
|
},
|
|
66
73
|
[client]
|
|
67
74
|
);
|
|
68
|
-
const
|
|
75
|
+
const reset = useCallback(
|
|
76
|
+
(events) => client.reset(events),
|
|
77
|
+
[client]
|
|
78
|
+
);
|
|
69
79
|
const value = useMemo(
|
|
70
80
|
() => ({
|
|
71
81
|
...state,
|
|
72
82
|
messages: groupEventsToMessages(state.events),
|
|
73
83
|
sendEvent,
|
|
74
|
-
|
|
84
|
+
reset,
|
|
75
85
|
client
|
|
76
86
|
}),
|
|
77
|
-
[state, sendEvent,
|
|
87
|
+
[state, sendEvent, reset, client]
|
|
78
88
|
);
|
|
79
89
|
return /* @__PURE__ */ jsx(MelonyContext.Provider, { value, children });
|
|
80
90
|
};
|
|
@@ -141,7 +151,9 @@ var AuthProvider = ({
|
|
|
141
151
|
}
|
|
142
152
|
return /* @__PURE__ */ jsx(AuthContext.Provider, { value, children });
|
|
143
153
|
};
|
|
144
|
-
var ThreadContext = createContext(
|
|
154
|
+
var ThreadContext = createContext(
|
|
155
|
+
void 0
|
|
156
|
+
);
|
|
145
157
|
var ThreadProvider = ({
|
|
146
158
|
children,
|
|
147
159
|
service,
|
|
@@ -212,9 +224,6 @@ var ThreadProvider = ({
|
|
|
212
224
|
const refreshThreads = useCallback(async () => {
|
|
213
225
|
await fetchThreads();
|
|
214
226
|
}, [fetchThreads]);
|
|
215
|
-
const threadMessages = useMemo(() => {
|
|
216
|
-
return groupEventsToMessages(threadEvents);
|
|
217
|
-
}, [threadEvents]);
|
|
218
227
|
useEffect(() => {
|
|
219
228
|
if (!activeThreadId) {
|
|
220
229
|
setThreadEvents([]);
|
|
@@ -256,7 +265,6 @@ var ThreadProvider = ({
|
|
|
256
265
|
deleteThread,
|
|
257
266
|
refreshThreads,
|
|
258
267
|
threadEvents,
|
|
259
|
-
threadMessages,
|
|
260
268
|
isLoadingEvents
|
|
261
269
|
}),
|
|
262
270
|
[
|
|
@@ -269,17 +277,23 @@ var ThreadProvider = ({
|
|
|
269
277
|
deleteThread,
|
|
270
278
|
refreshThreads,
|
|
271
279
|
threadEvents,
|
|
272
|
-
threadMessages,
|
|
273
280
|
isLoadingEvents
|
|
274
281
|
]
|
|
275
282
|
);
|
|
276
283
|
return /* @__PURE__ */ jsx(ThreadContext.Provider, { value, children });
|
|
277
284
|
};
|
|
278
|
-
var useMelony = () => {
|
|
285
|
+
var useMelony = (options) => {
|
|
279
286
|
const context = useContext(MelonyContext);
|
|
280
287
|
if (context === void 0) {
|
|
281
|
-
throw new Error("useMelony must be used within a
|
|
288
|
+
throw new Error("useMelony must be used within a MelonyClientProvider");
|
|
282
289
|
}
|
|
290
|
+
const { client, reset } = context;
|
|
291
|
+
const { initialEvents } = options || {};
|
|
292
|
+
useEffect(() => {
|
|
293
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
294
|
+
reset(initialEvents);
|
|
295
|
+
}
|
|
296
|
+
}, [client, initialEvents, reset]);
|
|
283
297
|
return context;
|
|
284
298
|
};
|
|
285
299
|
var useAuth = () => {
|
|
@@ -2331,6 +2345,6 @@ var AccountDialog = ({
|
|
|
2331
2345
|
] });
|
|
2332
2346
|
};
|
|
2333
2347
|
|
|
2334
|
-
export { AccountDialog, AuthContext, AuthProvider, ChatFull, ChatPopup, ChatSidebar, Composer,
|
|
2348
|
+
export { AccountDialog, AuthContext, AuthProvider, ChatFull, ChatPopup, ChatSidebar, Composer, MelonyClientProvider, MelonyContext, Thread, ThreadContext, ThreadList, ThreadProvider, UIRenderer, useAuth, useMelony, useThreads };
|
|
2335
2349
|
//# sourceMappingURL=index.js.map
|
|
2336
2350
|
//# sourceMappingURL=index.js.map
|