@melony/react 0.1.10 → 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 +33 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -10
- package/dist/index.d.ts +13 -10
- package/dist/index.js +33 -17
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@ var React9 = require('react');
|
|
|
4
4
|
var clsx = require('clsx');
|
|
5
5
|
var tailwindMerge = require('tailwind-merge');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
|
-
var client = require('melony/client');
|
|
7
|
+
var client = require('@melony/core/client');
|
|
8
8
|
var separator = require('@base-ui/react/separator');
|
|
9
9
|
var ICONS = require('@tabler/icons-react');
|
|
10
10
|
var mergeProps = require('@base-ui/react/merge-props');
|
|
@@ -64,16 +64,25 @@ function groupEventsToMessages(events) {
|
|
|
64
64
|
}
|
|
65
65
|
return messages;
|
|
66
66
|
}
|
|
67
|
-
var MelonyContext = React9.createContext(
|
|
68
|
-
|
|
67
|
+
var MelonyContext = React9.createContext(
|
|
68
|
+
void 0
|
|
69
|
+
);
|
|
70
|
+
var MelonyClientProvider = ({
|
|
69
71
|
children,
|
|
70
|
-
client
|
|
72
|
+
client,
|
|
73
|
+
initialEvents
|
|
71
74
|
}) => {
|
|
72
75
|
const [state, setState] = React9.useState(client.getState());
|
|
76
|
+
React9.useEffect(() => {
|
|
77
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
78
|
+
client.reset(initialEvents);
|
|
79
|
+
}
|
|
80
|
+
}, [client, initialEvents]);
|
|
73
81
|
React9.useEffect(() => {
|
|
74
82
|
setState(client.getState());
|
|
83
|
+
const unsubscribe = client.subscribe(setState);
|
|
75
84
|
return () => {
|
|
76
|
-
|
|
85
|
+
unsubscribe();
|
|
77
86
|
};
|
|
78
87
|
}, [client]);
|
|
79
88
|
const sendEvent = React9.useCallback(
|
|
@@ -84,16 +93,19 @@ var MelonyProvider = ({
|
|
|
84
93
|
},
|
|
85
94
|
[client]
|
|
86
95
|
);
|
|
87
|
-
const
|
|
96
|
+
const reset = React9.useCallback(
|
|
97
|
+
(events) => client.reset(events),
|
|
98
|
+
[client]
|
|
99
|
+
);
|
|
88
100
|
const value = React9.useMemo(
|
|
89
101
|
() => ({
|
|
90
102
|
...state,
|
|
91
103
|
messages: groupEventsToMessages(state.events),
|
|
92
104
|
sendEvent,
|
|
93
|
-
|
|
105
|
+
reset,
|
|
94
106
|
client
|
|
95
107
|
}),
|
|
96
|
-
[state, sendEvent,
|
|
108
|
+
[state, sendEvent, reset, client]
|
|
97
109
|
);
|
|
98
110
|
return /* @__PURE__ */ jsxRuntime.jsx(MelonyContext.Provider, { value, children });
|
|
99
111
|
};
|
|
@@ -160,7 +172,9 @@ var AuthProvider = ({
|
|
|
160
172
|
}
|
|
161
173
|
return /* @__PURE__ */ jsxRuntime.jsx(AuthContext.Provider, { value, children });
|
|
162
174
|
};
|
|
163
|
-
var ThreadContext = React9.createContext(
|
|
175
|
+
var ThreadContext = React9.createContext(
|
|
176
|
+
void 0
|
|
177
|
+
);
|
|
164
178
|
var ThreadProvider = ({
|
|
165
179
|
children,
|
|
166
180
|
service,
|
|
@@ -231,9 +245,6 @@ var ThreadProvider = ({
|
|
|
231
245
|
const refreshThreads = React9.useCallback(async () => {
|
|
232
246
|
await fetchThreads();
|
|
233
247
|
}, [fetchThreads]);
|
|
234
|
-
const threadMessages = React9.useMemo(() => {
|
|
235
|
-
return groupEventsToMessages(threadEvents);
|
|
236
|
-
}, [threadEvents]);
|
|
237
248
|
React9.useEffect(() => {
|
|
238
249
|
if (!activeThreadId) {
|
|
239
250
|
setThreadEvents([]);
|
|
@@ -275,7 +286,6 @@ var ThreadProvider = ({
|
|
|
275
286
|
deleteThread,
|
|
276
287
|
refreshThreads,
|
|
277
288
|
threadEvents,
|
|
278
|
-
threadMessages,
|
|
279
289
|
isLoadingEvents
|
|
280
290
|
}),
|
|
281
291
|
[
|
|
@@ -288,17 +298,23 @@ var ThreadProvider = ({
|
|
|
288
298
|
deleteThread,
|
|
289
299
|
refreshThreads,
|
|
290
300
|
threadEvents,
|
|
291
|
-
threadMessages,
|
|
292
301
|
isLoadingEvents
|
|
293
302
|
]
|
|
294
303
|
);
|
|
295
304
|
return /* @__PURE__ */ jsxRuntime.jsx(ThreadContext.Provider, { value, children });
|
|
296
305
|
};
|
|
297
|
-
var useMelony = () => {
|
|
306
|
+
var useMelony = (options) => {
|
|
298
307
|
const context = React9.useContext(MelonyContext);
|
|
299
308
|
if (context === void 0) {
|
|
300
|
-
throw new Error("useMelony must be used within a
|
|
309
|
+
throw new Error("useMelony must be used within a MelonyClientProvider");
|
|
301
310
|
}
|
|
311
|
+
const { client, reset } = context;
|
|
312
|
+
const { initialEvents } = options || {};
|
|
313
|
+
React9.useEffect(() => {
|
|
314
|
+
if (initialEvents && initialEvents.length > 0 && client.getState().events.length === 0) {
|
|
315
|
+
reset(initialEvents);
|
|
316
|
+
}
|
|
317
|
+
}, [client, initialEvents, reset]);
|
|
302
318
|
return context;
|
|
303
319
|
};
|
|
304
320
|
var useAuth = () => {
|
|
@@ -2357,8 +2373,8 @@ exports.ChatFull = ChatFull;
|
|
|
2357
2373
|
exports.ChatPopup = ChatPopup;
|
|
2358
2374
|
exports.ChatSidebar = ChatSidebar;
|
|
2359
2375
|
exports.Composer = Composer;
|
|
2376
|
+
exports.MelonyClientProvider = MelonyClientProvider;
|
|
2360
2377
|
exports.MelonyContext = MelonyContext;
|
|
2361
|
-
exports.MelonyProvider = MelonyProvider;
|
|
2362
2378
|
exports.Thread = Thread;
|
|
2363
2379
|
exports.ThreadContext = ThreadContext;
|
|
2364
2380
|
exports.ThreadList = ThreadList;
|