@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.cjs
CHANGED
|
@@ -67,15 +67,22 @@ function groupEventsToMessages(events) {
|
|
|
67
67
|
var MelonyContext = React9.createContext(
|
|
68
68
|
void 0
|
|
69
69
|
);
|
|
70
|
-
var
|
|
70
|
+
var MelonyClientProvider = ({
|
|
71
71
|
children,
|
|
72
|
-
client
|
|
72
|
+
client,
|
|
73
|
+
initialEvents
|
|
73
74
|
}) => {
|
|
74
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]);
|
|
75
81
|
React9.useEffect(() => {
|
|
76
82
|
setState(client.getState());
|
|
83
|
+
const unsubscribe = client.subscribe(setState);
|
|
77
84
|
return () => {
|
|
78
|
-
|
|
85
|
+
unsubscribe();
|
|
79
86
|
};
|
|
80
87
|
}, [client]);
|
|
81
88
|
const sendEvent = React9.useCallback(
|
|
@@ -86,16 +93,19 @@ var MelonyProvider = ({
|
|
|
86
93
|
},
|
|
87
94
|
[client]
|
|
88
95
|
);
|
|
89
|
-
const
|
|
96
|
+
const reset = React9.useCallback(
|
|
97
|
+
(events) => client.reset(events),
|
|
98
|
+
[client]
|
|
99
|
+
);
|
|
90
100
|
const value = React9.useMemo(
|
|
91
101
|
() => ({
|
|
92
102
|
...state,
|
|
93
103
|
messages: groupEventsToMessages(state.events),
|
|
94
104
|
sendEvent,
|
|
95
|
-
|
|
105
|
+
reset,
|
|
96
106
|
client
|
|
97
107
|
}),
|
|
98
|
-
[state, sendEvent,
|
|
108
|
+
[state, sendEvent, reset, client]
|
|
99
109
|
);
|
|
100
110
|
return /* @__PURE__ */ jsxRuntime.jsx(MelonyContext.Provider, { value, children });
|
|
101
111
|
};
|
|
@@ -162,7 +172,9 @@ var AuthProvider = ({
|
|
|
162
172
|
}
|
|
163
173
|
return /* @__PURE__ */ jsxRuntime.jsx(AuthContext.Provider, { value, children });
|
|
164
174
|
};
|
|
165
|
-
var ThreadContext = React9.createContext(
|
|
175
|
+
var ThreadContext = React9.createContext(
|
|
176
|
+
void 0
|
|
177
|
+
);
|
|
166
178
|
var ThreadProvider = ({
|
|
167
179
|
children,
|
|
168
180
|
service,
|
|
@@ -233,9 +245,6 @@ var ThreadProvider = ({
|
|
|
233
245
|
const refreshThreads = React9.useCallback(async () => {
|
|
234
246
|
await fetchThreads();
|
|
235
247
|
}, [fetchThreads]);
|
|
236
|
-
const threadMessages = React9.useMemo(() => {
|
|
237
|
-
return groupEventsToMessages(threadEvents);
|
|
238
|
-
}, [threadEvents]);
|
|
239
248
|
React9.useEffect(() => {
|
|
240
249
|
if (!activeThreadId) {
|
|
241
250
|
setThreadEvents([]);
|
|
@@ -277,7 +286,6 @@ var ThreadProvider = ({
|
|
|
277
286
|
deleteThread,
|
|
278
287
|
refreshThreads,
|
|
279
288
|
threadEvents,
|
|
280
|
-
threadMessages,
|
|
281
289
|
isLoadingEvents
|
|
282
290
|
}),
|
|
283
291
|
[
|
|
@@ -290,17 +298,23 @@ var ThreadProvider = ({
|
|
|
290
298
|
deleteThread,
|
|
291
299
|
refreshThreads,
|
|
292
300
|
threadEvents,
|
|
293
|
-
threadMessages,
|
|
294
301
|
isLoadingEvents
|
|
295
302
|
]
|
|
296
303
|
);
|
|
297
304
|
return /* @__PURE__ */ jsxRuntime.jsx(ThreadContext.Provider, { value, children });
|
|
298
305
|
};
|
|
299
|
-
var useMelony = () => {
|
|
306
|
+
var useMelony = (options) => {
|
|
300
307
|
const context = React9.useContext(MelonyContext);
|
|
301
308
|
if (context === void 0) {
|
|
302
|
-
throw new Error("useMelony must be used within a
|
|
309
|
+
throw new Error("useMelony must be used within a MelonyClientProvider");
|
|
303
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]);
|
|
304
318
|
return context;
|
|
305
319
|
};
|
|
306
320
|
var useAuth = () => {
|
|
@@ -2359,8 +2373,8 @@ exports.ChatFull = ChatFull;
|
|
|
2359
2373
|
exports.ChatPopup = ChatPopup;
|
|
2360
2374
|
exports.ChatSidebar = ChatSidebar;
|
|
2361
2375
|
exports.Composer = Composer;
|
|
2376
|
+
exports.MelonyClientProvider = MelonyClientProvider;
|
|
2362
2377
|
exports.MelonyContext = MelonyContext;
|
|
2363
|
-
exports.MelonyProvider = MelonyProvider;
|
|
2364
2378
|
exports.Thread = Thread;
|
|
2365
2379
|
exports.ThreadContext = ThreadContext;
|
|
2366
2380
|
exports.ThreadList = ThreadList;
|