@cuemath/leap 3.1.35 → 3.1.36
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.
|
@@ -1,77 +1,72 @@
|
|
|
1
|
-
import { useMessageBrokerChannel as
|
|
2
|
-
import {
|
|
3
|
-
const
|
|
4
|
-
userId:
|
|
5
|
-
data:
|
|
6
|
-
height:
|
|
7
|
-
responseId:
|
|
8
|
-
}),
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
1
|
+
import { useMessageBrokerChannel as W } from "@cuemath/cue-message-broker";
|
|
2
|
+
import { useMemo as m, useState as $, useRef as j, useCallback as f } from "react";
|
|
3
|
+
const C = (e) => ({
|
|
4
|
+
userId: e.userId,
|
|
5
|
+
data: e.data,
|
|
6
|
+
height: e.height,
|
|
7
|
+
responseId: e.responseId
|
|
8
|
+
}), z = (e) => {
|
|
9
|
+
var i, r;
|
|
10
|
+
const n = {};
|
|
11
|
+
if (!e) return n;
|
|
12
|
+
for (const { message: u } of e) {
|
|
13
|
+
const t = (i = u.payload) == null ? void 0 : i.eventPayload, a = t == null ? void 0 : t.responseId;
|
|
14
|
+
if (!(t != null && t.responseId)) continue;
|
|
15
|
+
const o = C(t);
|
|
16
|
+
a && n[a] ? (r = n[a]) == null || r.push(o) : n[a] = [o];
|
|
17
|
+
}
|
|
18
|
+
return n;
|
|
19
|
+
}, A = (e, n, i, r = "canvas") => {
|
|
20
|
+
const u = m(
|
|
21
|
+
() => z(i),
|
|
22
|
+
[i]
|
|
23
|
+
), [t, a] = $(void 0), o = j({}), M = m(
|
|
23
24
|
() => ({
|
|
24
|
-
channelId:
|
|
25
|
-
ttl:
|
|
26
|
-
logger:
|
|
25
|
+
channelId: e,
|
|
26
|
+
ttl: r === "canvas" ? 0 : 24,
|
|
27
|
+
logger: n
|
|
27
28
|
}),
|
|
28
|
-
[
|
|
29
|
-
), S = f((
|
|
30
|
-
|
|
31
|
-
}, []),
|
|
32
|
-
(
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
var
|
|
36
|
-
const { payload:
|
|
37
|
-
if (!
|
|
29
|
+
[e, n, r]
|
|
30
|
+
), S = f((k, l) => {
|
|
31
|
+
o.current = { ...o.current, [k]: l };
|
|
32
|
+
}, []), b = f(
|
|
33
|
+
(k, l) => {
|
|
34
|
+
const h = u;
|
|
35
|
+
k.forEach((x) => {
|
|
36
|
+
var I;
|
|
37
|
+
const { payload: F } = x.message, { eventPayload: s } = F, c = s == null ? void 0 : s.responseId, O = s == null ? void 0 : s.data, v = s == null ? void 0 : s.userId, H = s == null ? void 0 : s.height, g = o.current[c];
|
|
38
|
+
if (!l && g)
|
|
38
39
|
g({
|
|
39
|
-
data:
|
|
40
|
-
height:
|
|
41
|
-
userId:
|
|
42
|
-
responseId:
|
|
40
|
+
data: O,
|
|
41
|
+
height: H,
|
|
42
|
+
userId: v,
|
|
43
|
+
responseId: c
|
|
43
44
|
});
|
|
44
45
|
else {
|
|
45
|
-
const p =
|
|
46
|
-
|
|
46
|
+
const p = C(s);
|
|
47
|
+
c && h[c] ? (I = h[c]) == null || I.push(p) : h[c] = [p];
|
|
47
48
|
}
|
|
48
|
-
}),
|
|
49
|
-
const e = { ...a };
|
|
50
|
-
return Object.keys(n).forEach((s) => {
|
|
51
|
-
var t;
|
|
52
|
-
s && e[s] ? (t = e[s]) == null || t.push(...n[s] ?? []) : e[s] = n[s] ?? [];
|
|
53
|
-
}), e;
|
|
54
|
-
});
|
|
49
|
+
}), a(h);
|
|
55
50
|
},
|
|
56
|
-
[]
|
|
57
|
-
), { publish: D, channelStatus: R, channel:
|
|
58
|
-
channelOptions:
|
|
59
|
-
consumerFn:
|
|
60
|
-
metadataRequired:
|
|
61
|
-
}),
|
|
62
|
-
|
|
63
|
-
}, [
|
|
51
|
+
[u]
|
|
52
|
+
), { publish: D, channelStatus: R, channel: d, channelMetadata: q, setChannelMetadata: B } = W({
|
|
53
|
+
channelOptions: M,
|
|
54
|
+
consumerFn: b,
|
|
55
|
+
metadataRequired: r === "whiteboard"
|
|
56
|
+
}), w = f(() => {
|
|
57
|
+
d && d.destroyChannel();
|
|
58
|
+
}, [d]);
|
|
64
59
|
return {
|
|
65
60
|
publishStrokes: D,
|
|
66
61
|
channelStatus: R,
|
|
67
|
-
closeChannel:
|
|
68
|
-
initialStrokesData:
|
|
62
|
+
closeChannel: w,
|
|
63
|
+
initialStrokesData: t,
|
|
69
64
|
registerCallback: S,
|
|
70
|
-
setChannelMetadata:
|
|
71
|
-
channelMetadata:
|
|
65
|
+
setChannelMetadata: B,
|
|
66
|
+
channelMetadata: q
|
|
72
67
|
};
|
|
73
|
-
},
|
|
68
|
+
}, J = A;
|
|
74
69
|
export {
|
|
75
|
-
|
|
70
|
+
J as default
|
|
76
71
|
};
|
|
77
72
|
//# sourceMappingURL=use-canvas-sync-broker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst
|
|
1
|
+
{"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type {\n IActionData,\n ICanvasUpdateConfig,\n IPublishData,\n TCueCanvasChangeDataObject,\n TRenderAs,\n} from '../types/cue-canvas';\n\nimport { useMessageBrokerChannel, type IChannelMessage } from '@cuemath/cue-message-broker';\nimport { useMemo, useCallback, useState, useRef } from 'react';\n\ninterface IMessage {\n eventName: string;\n eventPayload: {\n responseId: string;\n data: TCueCanvasChangeDataObject;\n userId: string;\n height: number;\n };\n}\n\nconst extractStrokeData = (payload: IMessage['eventPayload']): IActionData => ({\n userId: payload.userId,\n data: payload.data,\n height: payload.height,\n responseId: payload.responseId,\n});\n\nconst getCanvasDataFromInitialData = (\n initialCanvasData: Array<IChannelMessage> | undefined,\n): Record<string, IActionData[]> => {\n const map: Record<string, IActionData[]> = {};\n\n if (!initialCanvasData) return map;\n\n for (const { message } of initialCanvasData) {\n const payload = (message.payload as IMessage)?.eventPayload;\n const qrId = payload?.responseId;\n\n if (!payload?.responseId) continue;\n\n const strokeData = extractStrokeData(payload);\n\n if (qrId && map[qrId]) {\n map[qrId]?.push(strokeData);\n } else {\n map[qrId] = [strokeData];\n }\n }\n\n return map;\n};\n\nconst useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const initialCanvasDataMap = useMemo(\n () => getCanvasDataFromInitialData(initialCanvasData),\n [initialCanvasData],\n );\n const [initialStrokesData, setInitialStrokesData] = useState<\n Record<string, IActionData[]> | undefined\n >(undefined);\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: type === 'canvas' ? 0 : 24,\n logger: logEvent,\n }),\n [channelId, logEvent, type],\n );\n\n const registerCallback = useCallback((qrId: string, cb: (data: IActionData) => void) => {\n callbacksMapRef.current = { ...callbacksMapRef.current, [qrId]: cb };\n }, []);\n\n const onMessageReceive = useCallback(\n (messages: Array<IChannelMessage>, initialData?: boolean) => {\n const strokesPerWidgetMap: Record<string, Array<IActionData>> = initialCanvasDataMap;\n\n messages.forEach(message => {\n const { payload } = message.message;\n const { eventPayload } = payload as IMessage;\n const qrId = eventPayload?.responseId as string;\n const strokes = eventPayload?.data;\n const userId = eventPayload?.userId;\n const canvasHeight = eventPayload?.height;\n const widgetOnReceiveCallback = callbacksMapRef.current[qrId];\n\n if (!initialData && widgetOnReceiveCallback) {\n widgetOnReceiveCallback({\n data: strokes,\n height: canvasHeight,\n userId,\n responseId: qrId,\n });\n } else {\n const strokeData = extractStrokeData(eventPayload);\n\n if (qrId && strokesPerWidgetMap[qrId]) {\n strokesPerWidgetMap[qrId]?.push(strokeData);\n } else {\n strokesPerWidgetMap[qrId] = [strokeData];\n }\n }\n });\n setInitialStrokesData(strokesPerWidgetMap);\n },\n [initialCanvasDataMap],\n );\n\n const { publish, channelStatus, channel, channelMetadata, setChannelMetadata } =\n useMessageBrokerChannel<IPublishData, ICanvasUpdateConfig>({\n channelOptions,\n consumerFn: onMessageReceive,\n metadataRequired: type === 'whiteboard',\n });\n\n const closeChannel = useCallback(() => {\n if (channel) {\n channel.destroyChannel();\n }\n }, [channel]);\n\n return {\n publishStrokes: publish,\n channelStatus,\n closeChannel,\n initialStrokesData,\n registerCallback,\n setChannelMetadata,\n channelMetadata,\n };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","getCanvasDataFromInitialData","initialCanvasData","map","message","_a","qrId","strokeData","_b","useCanvasSyncBroker","channelId","logEvent","type","initialCanvasDataMap","useMemo","initialStrokesData","setInitialStrokesData","useState","callbacksMapRef","useRef","channelOptions","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","publish","channelStatus","channel","channelMetadata","setChannelMetadata","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":";;AAqBA,MAAMA,IAAoB,CAACC,OAAoD;AAAA,EAC7E,QAAQA,EAAQ;AAAA,EAChB,MAAMA,EAAQ;AAAA,EACd,QAAQA,EAAQ;AAAA,EAChB,YAAYA,EAAQ;AACtB,IAEMC,IAA+B,CACnCC,MACkC;;AAClC,QAAMC,IAAqC,CAAA;AAEvC,MAAA,CAACD,EAA0B,QAAAC;AAEpB,aAAA,EAAE,SAAAC,EAAQ,KAAKF,GAAmB;AACrC,UAAAF,KAAWK,IAAAD,EAAQ,YAAR,gBAAAC,EAA8B,cACzCC,IAAON,KAAA,gBAAAA,EAAS;AAElB,QAAA,EAACA,KAAA,QAAAA,EAAS,YAAY;AAEpB,UAAAO,IAAaR,EAAkBC,CAAO;AAExC,IAAAM,KAAQH,EAAIG,CAAI,KACdE,IAAAL,EAAAG,CAAI,MAAJ,QAAAE,EAAO,KAAKD,KAEZJ,EAAAG,CAAI,IAAI,CAACC,CAAU;AAAA,EAE3B;AAEO,SAAAJ;AACT,GAEMM,IAAsB,CAC1BC,GACAC,GACAT,GACAU,IAAkB,aACf;AACH,QAAMC,IAAuBC;AAAA,IAC3B,MAAMb,EAA6BC,CAAiB;AAAA,IACpD,CAACA,CAAiB;AAAA,EAAA,GAEd,CAACa,GAAoBC,CAAqB,IAAIC,EAElD,MAAS,GACLC,IAAkBC,EAAoD,CAAA,CAAE,GAExEC,IAAiBN;AAAA,IACrB,OAAO;AAAA,MACL,WAAAJ;AAAA,MACA,KAAKE,MAAS,WAAW,IAAI;AAAA,MAC7B,QAAQD;AAAA,IAAA;AAAA,IAEV,CAACD,GAAWC,GAAUC,CAAI;AAAA,EAAA,GAGtBS,IAAmBC,EAAY,CAAChB,GAAciB,MAAoC;AACtE,IAAAL,EAAA,UAAU,EAAE,GAAGA,EAAgB,SAAS,CAACZ,CAAI,GAAGiB;EAClE,GAAG,CAAE,CAAA,GAECC,IAAmBF;AAAA,IACvB,CAACG,GAAkCC,MAA0B;AAC3D,YAAMC,IAA0Dd;AAEhE,MAAAY,EAAS,QAAQ,CAAWrB,MAAA;;AACpB,cAAA,EAAE,SAAAJ,EAAQ,IAAII,EAAQ,SACtB,EAAE,cAAAwB,EAAiB,IAAA5B,GACnBM,IAAOsB,KAAA,gBAAAA,EAAc,YACrBC,IAAUD,KAAA,gBAAAA,EAAc,MACxBE,IAASF,KAAA,gBAAAA,EAAc,QACvBG,IAAeH,KAAA,gBAAAA,EAAc,QAC7BI,IAA0Bd,EAAgB,QAAQZ,CAAI;AAExD,YAAA,CAACoB,KAAeM;AACM,UAAAA,EAAA;AAAA,YACtB,MAAMH;AAAA,YACN,QAAQE;AAAA,YACR,QAAAD;AAAA,YACA,YAAYxB;AAAA,UAAA,CACb;AAAA,aACI;AACC,gBAAAC,IAAaR,EAAkB6B,CAAY;AAE7C,UAAAtB,KAAQqB,EAAoBrB,CAAI,KACdD,IAAAsB,EAAArB,CAAI,MAAJ,QAAAD,EAAO,KAAKE,KAEZoB,EAAArB,CAAI,IAAI,CAACC,CAAU;AAAA,QAE3C;AAAA,MAAA,CACD,GACDS,EAAsBW,CAAmB;AAAA,IAC3C;AAAA,IACA,CAACd,CAAoB;AAAA,EAAA,GAGjB,EAAE,SAAAoB,GAAS,eAAAC,GAAe,SAAAC,GAAS,iBAAAC,GAAiB,oBAAAC,MACxDC,EAA2D;AAAA,IACzD,gBAAAlB;AAAA,IACA,YAAYI;AAAA,IACZ,kBAAkBZ,MAAS;AAAA,EAAA,CAC5B,GAEG2B,IAAejB,EAAY,MAAM;AACrC,IAAIa,KACFA,EAAQ,eAAe;AAAA,EACzB,GACC,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,gBAAgBF;AAAA,IAChB,eAAAC;AAAA,IACA,cAAAK;AAAA,IACA,oBAAAxB;AAAA,IACA,kBAAAM;AAAA,IACA,oBAAAgB;AAAA,IACA,iBAAAD;AAAA,EAAA;AAEJ,GAEAI,IAAe/B;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5784,7 +5784,7 @@ export declare const useCanvasSyncBroker: (channelId: string, logEvent: (type: s
|
|
|
5784
5784
|
publishStrokes: ((message: IPublishData) => boolean) | undefined;
|
|
5785
5785
|
channelStatus: ChannelStatus | undefined;
|
|
5786
5786
|
closeChannel: () => void;
|
|
5787
|
-
initialStrokesData: Record<string, IActionData[]
|
|
5787
|
+
initialStrokesData: Record<string, IActionData[]> | undefined;
|
|
5788
5788
|
registerCallback: (qrId: string, cb: (data: IActionData) => void) => void;
|
|
5789
5789
|
setChannelMetadata: ((metadata: ICanvasUpdateConfig, merge?: boolean) => void) | undefined;
|
|
5790
5790
|
channelMetadata: ICanvasUpdateConfig | null | undefined;
|