@cuemath/leap 3.0.10-aa1 → 3.0.10-aa12

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.
Files changed (25) hide show
  1. package/dist/features/cue-canvas/bottombar/homework-controls.js +49 -34
  2. package/dist/features/cue-canvas/bottombar/homework-controls.js.map +1 -1
  3. package/dist/features/cue-canvas/cue-canvas-core.js +38 -40
  4. package/dist/features/cue-canvas/cue-canvas-core.js.map +1 -1
  5. package/dist/features/cue-canvas/cue-canvas-helpers.js.map +1 -1
  6. package/dist/features/cue-canvas/cue-canvas.js +53 -52
  7. package/dist/features/cue-canvas/cue-canvas.js.map +1 -1
  8. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js +43 -43
  9. package/dist/features/cue-canvas/hooks/use-canvas-sync-broker.js.map +1 -1
  10. package/dist/features/cue-canvas/hooks/use-upload-helper.js +23 -0
  11. package/dist/features/cue-canvas/hooks/use-upload-helper.js.map +1 -0
  12. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js +15 -15
  13. package/dist/features/cue-canvas/sidebar/homework/homework-menu.js.map +1 -1
  14. package/dist/features/cue-canvas/sidebar/homework/homework-request.js +7 -6
  15. package/dist/features/cue-canvas/sidebar/homework/homework-request.js.map +1 -1
  16. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js +5 -5
  17. package/dist/features/cue-canvas/sidebar/homework/homework-styled.js.map +1 -1
  18. package/dist/features/cue-canvas/sidebar/homework/homework.js +20 -20
  19. package/dist/features/cue-canvas/sidebar/homework/homework.js.map +1 -1
  20. package/dist/features/cue-canvas/sidebar/sidebar.js +16 -17
  21. package/dist/features/cue-canvas/sidebar/sidebar.js.map +1 -1
  22. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js +22 -19
  23. package/dist/features/worksheet/worksheet/hooks/use-s3-helper.js.map +1 -1
  24. package/dist/index.d.ts +10 -6
  25. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null);\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n const uploadImageToS3 = useCallback((file: File) => {\n // Todo @ayushsinghal1998: Update this once upload api is ready\n\n // eslint-disable-next-line no-console\n console.log('Uploading image to S3:', file);\n\n return 'https://wmznlejcfq.s3-ap-southeast-1.amazonaws.com/media/homework-help/testing/2076b5ac-2765-4d65-906a-71817b468d58.jpg';\n }, []);\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current) {\n const canvasConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","cueCanvasRef","onUpdateActiveTool","useCallback","tool","uploadImageToS3","file","useHeightExtender","useEffect","canvasConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;AAUA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,EAAA,MACP;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAE/EC,IAAeJ,EAA6B,IAAI,GAEhDK,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAL,EAAcK,CAAI;AAAA,MACpB;AAAA,MACA,CAACL,CAAa;AAAA,IAAA,GAGVM,IAAkBF,EAAY,CAACG,OAI3B,QAAA,IAAI,0BAA0BA,CAAI,GAEnC,4HACN,CAAE,CAAA;AAEa,WAAAC,EAAA;AAAA,MAChB,kBAAAX;AAAA,MACA,cAAAK;AAAA,MACA,aAAAR;AAAA,IAAA,CACD,GAEDe,EAAU,MAAM;AACV,MAAAf,KAAeQ,EAAa,YAC9BA,EAAa,QAAQ,iBAErBH,EAAmBG,EAAa,OAAO;AAAA,IACzC,GACC,CAACR,GAAaK,CAAkB,CAAC,GAEpCU,EAAU,MAAM;AACV,MAAApB,KAAea,EAAa,WACjBA,EAAA,QAAQ,OAAOb,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhBoB,EAAU,MAAM;AACV,MAAAvB,KAAUgB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAAChB,GAAQD,CAAK,CAAC,GAElBwB,EAAU,MAAM;AACd,UAAItB,KAAaM,KAAY,CAACS,EAAa,SAAS;AAClD,cAAMQ,IAAeC,EAAgB1B,GAAOC,GAAQU,GAAUD,CAAQ,GAChEiB,IAAgBC,EAAkBjB,GAAUD,CAAQ,GACpDmB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAAzB;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAY;AAAA,UACA,gBAAAf;AAAA,UACA,iBAAAkB;AAAA,UACA,QAAApB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMkB,EAAc,OAAO;AAAA,YACzB,kBAAAjB;AAAA,YACA,cAAAa;AAAA,YACA,eAAAE;AAAA,YACA,aAAAvB;AAAA,UAAA,CACD,GACDa,EAAa,UAAUY,GAEnBpB,KACFK,EAAmBe,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAACxB,GAAWC,GAAaQ,GAAoBZ,GAAWM,CAAQ,CAAC,GAEpEgB,EAAU,MACD,MAAM;AACX,MAAIP,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAc;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKpB;AAAA,QACL,QAAQZ;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEAsB,IAAepC;"}
1
+ {"version":3,"file":"cue-canvas.js","sources":["../../../src/features/cue-canvas/cue-canvas.tsx"],"sourcesContent":["import type { ICueCanvas, TCueCanvasTool } from './types/cue-canvas';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport { CueCanvasCore } from './cue-canvas-core';\nimport { getCanvasConfig, getCanvasSettings } from './cue-canvas-helpers';\nimport { CueCanvasWrapper } from './cue-cavas-styled';\nimport { useCueCanvasActions } from './hooks/use-cue-canvas-actions';\nimport useHeightExtender from './hooks/use-height-extender';\nimport useUploadHelper from './hooks/use-upload-helper';\n\nconst CueCanvas: React.FC<ICueCanvas> = memo(\n ({\n canvasId,\n width,\n height,\n canRender,\n onUpdateHeight,\n initialData,\n onPublish,\n onSubscribe,\n userId,\n appended,\n canScribble,\n userType,\n renderAs = 'canvas',\n }) => {\n const canvasElementRef = useRef<HTMLDivElement>(null);\n const { setActiveInstance: setActiveCueCanvas, setActiveTool } = useCueCanvasActions();\n const uploadImageToS3 = useUploadHelper({ userId, renderAs, userType });\n\n const cueCanvasRef = useRef<CueCanvasCore | null>(null);\n\n const onUpdateActiveTool = useCallback(\n (tool: TCueCanvasTool) => {\n setActiveTool(tool);\n },\n [setActiveTool],\n );\n\n useHeightExtender({\n canvasElementRef,\n cueCanvasRef,\n canScribble,\n });\n\n useEffect(() => {\n if (canScribble && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n\n setActiveCueCanvas(cueCanvasRef.current);\n }\n }, [canScribble, setActiveCueCanvas]);\n\n useEffect(() => {\n if (initialData && cueCanvasRef.current) {\n cueCanvasRef.current.update(initialData);\n }\n }, [initialData]);\n\n useEffect(() => {\n if (height && cueCanvasRef.current) {\n cueCanvasRef.current.resetViewPort();\n }\n }, [height, width]);\n\n useEffect(() => {\n if (canRender && appended && !cueCanvasRef.current) {\n const canvasConfig = getCanvasConfig(width, height, renderAs, userType);\n const canvasSetting = getCanvasSettings(renderAs, userType);\n\n const cueCanvasCore = new CueCanvasCore({\n onPublish,\n onSubscribe,\n onUpdateActiveTool,\n onUpdateHeight,\n uploadImageToS3,\n height,\n userId,\n canvasId,\n userType,\n renderAs,\n });\n\n const createCueCanvas = async () => {\n await cueCanvasCore.create({\n canvasElementRef,\n canvasConfig,\n canvasSetting,\n initialData,\n });\n cueCanvasRef.current = cueCanvasCore;\n\n if (canScribble) {\n setActiveCueCanvas(cueCanvasCore);\n }\n };\n\n createCueCanvas();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [onPublish, onSubscribe, setActiveCueCanvas, canRender, appended]);\n\n useEffect(() => {\n return () => {\n if (cueCanvasRef.current) {\n cueCanvasRef.current.destroy();\n cueCanvasRef.current = null;\n }\n };\n }, []);\n\n return (\n <CueCanvasWrapper\n ref={canvasElementRef}\n $width={width}\n $height={height}\n $canScribble={canScribble}\n $canRender={canRender}\n $renderAs={renderAs}\n />\n );\n },\n);\n\nexport default CueCanvas;\n"],"names":["CueCanvas","memo","canvasId","width","height","canRender","onUpdateHeight","initialData","onPublish","onSubscribe","userId","appended","canScribble","userType","renderAs","canvasElementRef","useRef","setActiveCueCanvas","setActiveTool","useCueCanvasActions","uploadImageToS3","useUploadHelper","cueCanvasRef","onUpdateActiveTool","useCallback","tool","useHeightExtender","useEffect","canvasConfig","getCanvasConfig","canvasSetting","getCanvasSettings","cueCanvasCore","CueCanvasCore","jsx","CueCanvasWrapper","CueCanvas$1"],"mappings":";;;;;;;;AAWA,MAAMA,IAAkCC;AAAA,EACtC,CAAC;AAAA,IACC,UAAAC;AAAA,IACA,OAAAC;AAAA,IACA,QAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,WAAAC;AAAA,IACA,aAAAC;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,EAAA,MACP;AACE,UAAAC,IAAmBC,EAAuB,IAAI,GAC9C,EAAE,mBAAmBC,GAAoB,eAAAC,MAAkBC,EAAoB,GAC/EC,IAAkBC,EAAgB,EAAE,QAAAX,GAAQ,UAAAI,GAAU,UAAAD,GAAU,GAEhES,IAAeN,EAA6B,IAAI,GAEhDO,IAAqBC;AAAA,MACzB,CAACC,MAAyB;AACxB,QAAAP,EAAcO,CAAI;AAAA,MACpB;AAAA,MACA,CAACP,CAAa;AAAA,IAAA;AAGE,WAAAQ,EAAA;AAAA,MAChB,kBAAAX;AAAA,MACA,cAAAO;AAAA,MACA,aAAAV;AAAA,IAAA,CACD,GAEDe,EAAU,MAAM;AACV,MAAAf,KAAeU,EAAa,YAC9BA,EAAa,QAAQ,iBAErBL,EAAmBK,EAAa,OAAO;AAAA,IACzC,GACC,CAACV,GAAaK,CAAkB,CAAC,GAEpCU,EAAU,MAAM;AACV,MAAApB,KAAee,EAAa,WACjBA,EAAA,QAAQ,OAAOf,CAAW;AAAA,IACzC,GACC,CAACA,CAAW,CAAC,GAEhBoB,EAAU,MAAM;AACV,MAAAvB,KAAUkB,EAAa,WACzBA,EAAa,QAAQ;IACvB,GACC,CAAClB,GAAQD,CAAK,CAAC,GAElBwB,EAAU,MAAM;AACd,UAAItB,KAAaM,KAAY,CAACW,EAAa,SAAS;AAClD,cAAMM,IAAeC,EAAgB1B,GAAOC,GAAQU,GAAUD,CAAQ,GAChEiB,IAAgBC,EAAkBjB,GAAUD,CAAQ,GAEpDmB,IAAgB,IAAIC,EAAc;AAAA,UACtC,WAAAzB;AAAA,UACA,aAAAC;AAAA,UACA,oBAAAc;AAAA,UACA,gBAAAjB;AAAA,UACA,iBAAAc;AAAA,UACA,QAAAhB;AAAA,UACA,QAAAM;AAAA,UACA,UAAAR;AAAA,UACA,UAAAW;AAAA,UACA,UAAAC;AAAA,QAAA,CACD;AAgBe,SAdQ,YAAY;AAClC,gBAAMkB,EAAc,OAAO;AAAA,YACzB,kBAAAjB;AAAA,YACA,cAAAa;AAAA,YACA,eAAAE;AAAA,YACA,aAAAvB;AAAA,UAAA,CACD,GACDe,EAAa,UAAUU,GAEnBpB,KACFK,EAAmBe,CAAa;AAAA,QAClC;MAIJ;AAAA,IAAA,GAEC,CAACxB,GAAWC,GAAaQ,GAAoBZ,GAAWM,CAAQ,CAAC,GAEpEgB,EAAU,MACD,MAAM;AACX,MAAIL,EAAa,YACfA,EAAa,QAAQ,WACrBA,EAAa,UAAU;AAAA,IACzB,GAED,CAAE,CAAA,GAGH,gBAAAY;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKpB;AAAA,QACL,QAAQZ;AAAA,QACR,SAASC;AAAA,QACT,cAAcQ;AAAA,QACd,YAAYP;AAAA,QACZ,WAAWS;AAAA,MAAA;AAAA,IAAA;AAAA,EAGjB;AACF,GAEAsB,IAAepC;"}
@@ -1,74 +1,74 @@
1
- import { useMessageBrokerChannel as q } from "@cuemath/cue-message-broker";
2
- import { useState as x, useRef as w, useMemo as E, useCallback as h } from "react";
3
- const I = (c) => ({
1
+ import { useMessageBrokerChannel as x } from "@cuemath/cue-message-broker";
2
+ import { useState as w, useRef as E, useMemo as F, useCallback as h } from "react";
3
+ const d = (c) => ({
4
4
  userId: c.userId,
5
5
  data: c.data,
6
6
  height: c.height,
7
7
  responseId: c.responseId
8
- }), F = (c, f, g) => {
9
- const [d, m] = x(
8
+ }), H = (c, f, g, l = "canvas") => {
9
+ const [m, b] = w(
10
10
  () => {
11
- var o, r;
12
- const n = {};
13
- if (!g) return n;
11
+ var o, n;
12
+ const r = {};
13
+ if (!g) return r;
14
14
  for (const { message: a } of g) {
15
15
  const e = (o = a.payload) == null ? void 0 : o.eventPayload, s = e == null ? void 0 : e.responseId;
16
16
  if (!(e != null && e.responseId)) continue;
17
- const t = I(e);
18
- s && n[s] ? (r = n[s]) == null || r.push(t) : n[s] = [t];
17
+ const t = d(e);
18
+ s && r[s] ? (n = r[s]) == null || n.push(t) : r[s] = [t];
19
19
  }
20
- return n;
20
+ return r;
21
21
  }
22
- ), u = w({}), b = E(
22
+ ), u = E({}), S = F(
23
23
  () => ({
24
24
  channelId: c,
25
- ttl: 0,
25
+ ttl: l === "canvas" ? 0 : 24,
26
26
  logger: f
27
27
  }),
28
- [c, f]
29
- ), S = h((n, o) => {
30
- u.current = { ...u.current, [n]: o };
31
- }, []), C = h(
32
- (n, o) => {
33
- const r = {};
34
- n.forEach((a) => {
35
- var p;
36
- const { payload: e } = a.message, { eventPayload: s } = e, t = s == null ? void 0 : s.responseId, R = s == null ? void 0 : s.data, B = s == null ? void 0 : s.userId, j = s == null ? void 0 : s.height, l = u.current[t];
37
- if (!o && l)
38
- l({
39
- data: R,
40
- height: j,
41
- userId: B,
28
+ [c, f, l]
29
+ ), C = h((r, o) => {
30
+ u.current = { ...u.current, [r]: o };
31
+ }, []), D = h(
32
+ (r, o) => {
33
+ const n = {};
34
+ r.forEach((a) => {
35
+ var k;
36
+ const { payload: e } = a.message, { eventPayload: s } = e, t = s == null ? void 0 : s.responseId, B = s == null ? void 0 : s.data, j = s == null ? void 0 : s.userId, q = s == null ? void 0 : s.height, p = u.current[t];
37
+ if (!o && p)
38
+ p({
39
+ data: B,
40
+ height: q,
41
+ userId: j,
42
42
  responseId: t
43
43
  });
44
44
  else {
45
- const k = I(s);
46
- t && r[t] ? (p = r[t]) == null || p.push(k) : r[t] = [k];
45
+ const I = d(s);
46
+ t && n[t] ? (k = n[t]) == null || k.push(I) : n[t] = [I];
47
47
  }
48
- }), Object.keys(r).length > 0 && m((a) => {
48
+ }), Object.keys(n).length > 0 && b((a) => {
49
49
  const e = { ...a };
50
- return Object.keys(r).forEach((s) => {
50
+ return Object.keys(n).forEach((s) => {
51
51
  var t;
52
- s && e[s] ? (t = e[s]) == null || t.push(...r[s] ?? []) : e[s] = r[s] ?? [];
52
+ s && e[s] ? (t = e[s]) == null || t.push(...n[s] ?? []) : e[s] = n[s] ?? [];
53
53
  }), e;
54
54
  });
55
55
  },
56
56
  []
57
- ), { publish: D, channelStatus: M, channel: i } = q({
58
- channelOptions: b,
59
- consumerFn: C
60
- }), O = h(() => {
57
+ ), { publish: M, channelStatus: O, channel: i } = x({
58
+ channelOptions: S,
59
+ consumerFn: D
60
+ }), R = h(() => {
61
61
  i && i.destroyChannel();
62
62
  }, [i]);
63
63
  return {
64
- publishStrokes: D,
65
- channelStatus: M,
66
- closeChannel: O,
67
- initialStrokesData: d,
68
- registerCallback: S
64
+ publishStrokes: M,
65
+ channelStatus: O,
66
+ closeChannel: R,
67
+ initialStrokesData: m,
68
+ registerCallback: C
69
69
  };
70
- }, $ = F;
70
+ }, z = H;
71
71
  export {
72
- $ as default
72
+ z as default
73
73
  };
74
74
  //# 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 { IActionData, TCueCanvasChangeDataObject } 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 useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, IActionData[]>>(\n () => {\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 );\n const callbacksMapRef = useRef<Record<string, (data: IActionData) => void>>({});\n\n const channelOptions = useMemo(\n () => ({\n channelId,\n ttl: 0,\n logger: logEvent,\n }),\n [channelId, logEvent],\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>> = {};\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\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n setInitialStrokesData(prevData => {\n const currentData = { ...prevData };\n\n Object.keys(strokesPerWidgetMap).forEach(key => {\n if (key && currentData[key]) {\n currentData[key]?.push(...(strokesPerWidgetMap[key] ?? []));\n } else {\n currentData[key] = strokesPerWidgetMap[key] ?? [];\n }\n });\n\n return currentData;\n });\n }\n },\n [],\n );\n\n const { publish, channelStatus, channel } = useMessageBrokerChannel({\n channelOptions,\n consumerFn: onMessageReceive,\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 };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","useCanvasSyncBroker","channelId","logEvent","initialCanvasData","initialStrokesData","setInitialStrokesData","useState","map","message","_a","qrId","strokeData","_b","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":";;AAeA,MAAMA,IAAoB,CAACC,OAAoD;AAAA,EAC7E,QAAQA,EAAQ;AAAA,EAChB,MAAMA,EAAQ;AAAA,EACd,QAAQA,EAAQ;AAAA,EAChB,YAAYA,EAAQ;AACtB,IAEMC,IAAsB,CAC1BC,GACAC,GACAC,MACG;AACG,QAAA,CAACC,GAAoBC,CAAqB,IAAIC;AAAA,IAClD,MAAM;;AACJ,YAAMC,IAAqC,CAAA;AAEvC,UAAA,CAACJ,EAA0B,QAAAI;AAEpB,iBAAA,EAAE,SAAAC,EAAQ,KAAKL,GAAmB;AACrC,cAAAJ,KAAWU,IAAAD,EAAQ,YAAR,gBAAAC,EAA8B,cACzCC,IAAOX,KAAA,gBAAAA,EAAS;AAElB,YAAA,EAACA,KAAA,QAAAA,EAAS,YAAY;AAEpB,cAAAY,IAAab,EAAkBC,CAAO;AAExC,QAAAW,KAAQH,EAAIG,CAAI,KACdE,IAAAL,EAAAG,CAAI,MAAJ,QAAAE,EAAO,KAAKD,KAEZJ,EAAAG,CAAI,IAAI,CAACC,CAAU;AAAA,MAE3B;AAEO,aAAAJ;AAAA,IACT;AAAA,EAAA,GAEIM,IAAkBC,EAAoD,CAAA,CAAE,GAExEC,IAAiBC;AAAA,IACrB,OAAO;AAAA,MACL,WAAAf;AAAA,MACA,KAAK;AAAA,MACL,QAAQC;AAAA,IAAA;AAAA,IAEV,CAACD,GAAWC,CAAQ;AAAA,EAAA,GAGhBe,IAAmBC,EAAY,CAACR,GAAcS,MAAoC;AACtE,IAAAN,EAAA,UAAU,EAAE,GAAGA,EAAgB,SAAS,CAACH,CAAI,GAAGS;EAClE,GAAG,CAAE,CAAA,GAECC,IAAmBF;AAAA,IACvB,CAACG,GAAkCC,MAA0B;AAC3D,YAAMC,IAA0D,CAAA;AAEhE,MAAAF,EAAS,QAAQ,CAAWb,MAAA;;AACpB,cAAA,EAAE,SAAAT,EAAQ,IAAIS,EAAQ,SACtB,EAAE,cAAAgB,EAAiB,IAAAzB,GACnBW,IAAOc,KAAA,gBAAAA,EAAc,YACrBC,IAAUD,KAAA,gBAAAA,EAAc,MACxBE,IAASF,KAAA,gBAAAA,EAAc,QACvBG,IAAeH,KAAA,gBAAAA,EAAc,QAC7BI,IAA0Bf,EAAgB,QAAQH,CAAI;AAExD,YAAA,CAACY,KAAeM;AACM,UAAAA,EAAA;AAAA,YACtB,MAAMH;AAAA,YACN,QAAQE;AAAA,YACR,QAAAD;AAAA,YACA,YAAYhB;AAAA,UAAA,CACb;AAAA,aACI;AACC,gBAAAC,IAAab,EAAkB0B,CAAY;AAE7C,UAAAd,KAAQa,EAAoBb,CAAI,KACdD,IAAAc,EAAAb,CAAI,MAAJ,QAAAD,EAAO,KAAKE,KAEZY,EAAAb,CAAI,IAAI,CAACC,CAAU;AAAA,QAE3C;AAAA,MAAA,CACD,GAEG,OAAO,KAAKY,CAAmB,EAAE,SAAS,KAC5ClB,EAAsB,CAAYwB,MAAA;AAC1B,cAAAC,IAAc,EAAE,GAAGD;AAEzB,sBAAO,KAAKN,CAAmB,EAAE,QAAQ,CAAOQ,MAAA;;AAC1C,UAAAA,KAAOD,EAAYC,CAAG,KACZtB,IAAAqB,EAAAC,CAAG,MAAH,QAAAtB,EAAM,KAAK,GAAIc,EAAoBQ,CAAG,KAAK,CAAA,KAEvDD,EAAYC,CAAG,IAAIR,EAAoBQ,CAAG,KAAK,CAAA;AAAA,QACjD,CACD,GAEMD;AAAA,MAAA,CACR;AAAA,IAEL;AAAA,IACA,CAAC;AAAA,EAAA,GAGG,EAAE,SAAAE,GAAS,eAAAC,GAAe,SAAAC,EAAA,IAAYC,EAAwB;AAAA,IAClE,gBAAApB;AAAA,IACA,YAAYK;AAAA,EAAA,CACb,GAEKgB,IAAelB,EAAY,MAAM;AACrC,IAAIgB,KACFA,EAAQ,eAAe;AAAA,EACzB,GACC,CAACA,CAAO,CAAC;AAEL,SAAA;AAAA,IACL,gBAAgBF;AAAA,IAChB,eAAAC;AAAA,IACA,cAAAG;AAAA,IACA,oBAAAhC;AAAA,IACA,kBAAAa;AAAA,EAAA;AAEJ,GAEAoB,IAAerC;"}
1
+ {"version":3,"file":"use-canvas-sync-broker.js","sources":["../../../../src/features/cue-canvas/hooks/use-canvas-sync-broker.ts"],"sourcesContent":["import type { IActionData, TCueCanvasChangeDataObject, TRenderAs } 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 useCanvasSyncBroker = (\n channelId: string,\n logEvent: (type: string, payload?: Record<string, unknown>) => void,\n initialCanvasData?: Array<IChannelMessage>,\n type: TRenderAs = 'canvas',\n) => {\n const [initialStrokesData, setInitialStrokesData] = useState<Record<string, IActionData[]>>(\n () => {\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 );\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>> = {};\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\n if (Object.keys(strokesPerWidgetMap).length > 0) {\n setInitialStrokesData(prevData => {\n const currentData = { ...prevData };\n\n Object.keys(strokesPerWidgetMap).forEach(key => {\n if (key && currentData[key]) {\n currentData[key]?.push(...(strokesPerWidgetMap[key] ?? []));\n } else {\n currentData[key] = strokesPerWidgetMap[key] ?? [];\n }\n });\n\n return currentData;\n });\n }\n },\n [],\n );\n\n const { publish, channelStatus, channel } = useMessageBrokerChannel({\n channelOptions,\n consumerFn: onMessageReceive,\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 };\n};\n\nexport default useCanvasSyncBroker;\n"],"names":["extractStrokeData","payload","useCanvasSyncBroker","channelId","logEvent","initialCanvasData","type","initialStrokesData","setInitialStrokesData","useState","map","message","_a","qrId","strokeData","_b","callbacksMapRef","useRef","channelOptions","useMemo","registerCallback","useCallback","cb","onMessageReceive","messages","initialData","strokesPerWidgetMap","eventPayload","strokes","userId","canvasHeight","widgetOnReceiveCallback","prevData","currentData","key","publish","channelStatus","channel","useMessageBrokerChannel","closeChannel","useCanvasSyncBroker$1"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { useRef as d, useCallback as c } from "react";
2
+ import m from "../../worksheet/worksheet/hooks/use-s3-helper.js";
3
+ const p = { type: "cuemath_whiteboard" }, h = (a) => {
4
+ const { userId: o, renderAs: u, userType: s } = a, l = d(), r = m({
5
+ studentId: o,
6
+ query: p,
7
+ enabled: u === "whiteboard" && s === "TEACHER"
8
+ }), t = c(
9
+ async (n) => {
10
+ const e = await r({
11
+ fileKey: "media/cuemath-whiteboard/",
12
+ images: [{ file: n, url: "" }]
13
+ });
14
+ return e && e.length > 0 ? e[0] ?? "error" : "error";
15
+ },
16
+ [r]
17
+ );
18
+ return l.current = t, t;
19
+ };
20
+ export {
21
+ h as default
22
+ };
23
+ //# sourceMappingURL=use-upload-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-upload-helper.js","sources":["../../../../src/features/cue-canvas/hooks/use-upload-helper.ts"],"sourcesContent":["import type { TUserTypes } from '../../ui/types';\nimport type { TRenderAs } from '../types/cue-canvas';\n\nimport { useCallback } from 'react';\nimport { useRef } from 'react';\n\nimport useS3ImageUploadHelper from '../../worksheet/worksheet/hooks/use-s3-helper';\n\ninterface IUseUploadHelper {\n userId: string;\n renderAs: TRenderAs;\n userType: TUserTypes;\n}\nconst QUERY = { type: 'cuemath_whiteboard' };\n\nconst useUploadHelper = (props: IUseUploadHelper) => {\n const { userId, renderAs, userType } = props;\n const uploadImageRef = useRef<(file: File) => Promise<string>>();\n const uploadImages = useS3ImageUploadHelper({\n studentId: userId,\n query: QUERY,\n enabled: renderAs === 'whiteboard' && userType === 'TEACHER',\n });\n\n const uploadImageToS3 = useCallback(\n async (file: File) => {\n const urls = await uploadImages({\n fileKey: `media/cuemath-whiteboard/`,\n images: [{ file: file, url: '' }],\n });\n\n if (urls && urls.length > 0) {\n const url = urls[0] ?? 'error';\n\n return url;\n }\n\n return 'error';\n },\n [uploadImages],\n );\n\n uploadImageRef.current = uploadImageToS3;\n\n return uploadImageToS3;\n};\n\nexport default useUploadHelper;\n"],"names":["QUERY","useUploadHelper","props","userId","renderAs","userType","uploadImageRef","useRef","uploadImages","useS3ImageUploadHelper","uploadImageToS3","useCallback","file","urls"],"mappings":";;AAaA,MAAMA,IAAQ,EAAE,MAAM,wBAEhBC,IAAkB,CAACC,MAA4B;AACnD,QAAM,EAAE,QAAAC,GAAQ,UAAAC,GAAU,UAAAC,EAAA,IAAaH,GACjCI,IAAiBC,KACjBC,IAAeC,EAAuB;AAAA,IAC1C,WAAWN;AAAA,IACX,OAAOH;AAAA,IACP,SAASI,MAAa,gBAAgBC,MAAa;AAAA,EAAA,CACpD,GAEKK,IAAkBC;AAAA,IACtB,OAAOC,MAAe;AACd,YAAAC,IAAO,MAAML,EAAa;AAAA,QAC9B,SAAS;AAAA,QACT,QAAQ,CAAC,EAAE,MAAAI,GAAY,KAAK,IAAI;AAAA,MAAA,CACjC;AAEG,aAAAC,KAAQA,EAAK,SAAS,IACZA,EAAK,CAAC,KAAK,UAKlB;AAAA,IACT;AAAA,IACA,CAACL,CAAY;AAAA,EAAA;AAGf,SAAAF,EAAe,UAAUI,GAElBA;AACT;"}
@@ -1,12 +1,12 @@
1
- import { jsx as e, jsxs as o } from "react/jsx-runtime";
2
- import { memo as m } from "react";
3
- import s from "../../../../assets/line-icons/icons/cross.js";
4
- import $ from "../../../ui/buttons/clickable/clickable.js";
1
+ import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
+ import { memo as l } from "react";
3
+ import m from "../../../../assets/line-icons/icons/cross.js";
4
+ import s from "../../../ui/buttons/clickable/clickable.js";
5
5
  import r from "../../../ui/layout/flex-view.js";
6
- import n from "../../../ui/text/text.js";
7
- import p from "./homework-request.js";
6
+ import i from "../../../ui/text/text.js";
7
+ import $ from "./homework-request.js";
8
8
  import { MenuContainer as d } from "./homework-styled.js";
9
- const a = ({ onSelect: t, hwRequests: c, studentName: l }) => /* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(r, { children: /* @__PURE__ */ o(
9
+ const a = ({ onSelect: n, hwRequests: c }) => /* @__PURE__ */ e(d, { children: /* @__PURE__ */ e(r, { children: /* @__PURE__ */ t(
10
10
  r,
11
11
  {
12
12
  $flexDirection: "row",
@@ -16,18 +16,18 @@ const a = ({ onSelect: t, hwRequests: c, studentName: l }) => /* @__PURE__ */ e(
16
16
  $gutterX: 0.5,
17
17
  $gapX: 0.5,
18
18
  children: [
19
- /* @__PURE__ */ o(r, { $flexDirection: "row", $gapX: 0.5, children: [
20
- /* @__PURE__ */ o(r, { $width: "184px", $gutterX: 1, children: [
21
- /* @__PURE__ */ e(n, { $color: "WHITE", $renderAs: "eyebrow2", children: "HOMEWORK" }),
22
- /* @__PURE__ */ e(n, { $color: "WHITE", $renderAs: "eyebrow2", children: "HELP REQUESTS" })
19
+ /* @__PURE__ */ t(r, { $flexDirection: "row", $gapX: 0.5, children: [
20
+ /* @__PURE__ */ t(r, { $width: "184px", $gutterX: 1, children: [
21
+ /* @__PURE__ */ e(i, { $color: "WHITE", $renderAs: "eyebrow2", children: "HOMEWORK" }),
22
+ /* @__PURE__ */ e(i, { $color: "WHITE", $renderAs: "eyebrow2", children: "HELP REQUESTS" })
23
23
  ] }),
24
- /* @__PURE__ */ e($, { onClick: t, label: "close activities menu", children: /* @__PURE__ */ e(s, { color: "WHITE" }) })
24
+ /* @__PURE__ */ e(s, { onClick: n, label: "close activities menu", children: /* @__PURE__ */ e(m, { color: "WHITE" }) })
25
25
  ] }),
26
- c.map((i) => /* @__PURE__ */ e(r, { $gutterX: 0.25, $gapX: 0.5, children: /* @__PURE__ */ e(p, { hwRequest: i, onSelect: t, studentName: l }) }, i.created_on_ts))
26
+ c.map((o) => /* @__PURE__ */ e(r, { $gutterX: 0.25, $gapX: 0.5, children: /* @__PURE__ */ e($, { hwRequest: o, onSelect: n, studentName: o.student_name }) }, o.created_on_ts))
27
27
  ]
28
28
  }
29
- ) }) }), E = m(a);
29
+ ) }) }), w = l(a);
30
30
  export {
31
- E as default
31
+ w as default
32
32
  };
33
33
  //# sourceMappingURL=homework-menu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-menu.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-menu.tsx"],"sourcesContent":["import type { IHomeWorkMenuProps } from './homework-types';\n\nimport { memo } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport HWRequest from './homework-request';\nimport * as Styled from './homework-styled';\n\nconst HomeWorkMenu: React.FC<IHomeWorkMenuProps> = ({ onSelect, hwRequests, studentName }) => {\n return (\n <Styled.MenuContainer>\n <FlexView>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexWrap\n $gutterX={0.5}\n $gapX={0.5}\n >\n <FlexView $flexDirection=\"row\" $gapX={0.5}>\n <FlexView $width={'184px'} $gutterX={1}>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HOMEWORK\n </Text>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HELP REQUESTS\n </Text>\n </FlexView>\n <Clickable onClick={onSelect} label=\"close activities menu\">\n <CrossIcon color=\"WHITE\" />\n </Clickable>\n </FlexView>\n\n {hwRequests.map(item => (\n <FlexView $gutterX={0.25} $gapX={0.5} key={item.created_on_ts}>\n <HWRequest hwRequest={item} onSelect={onSelect} studentName={studentName} />\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n </Styled.MenuContainer>\n );\n};\n\nexport default memo(HomeWorkMenu);\n"],"names":["HomeWorkMenu","onSelect","hwRequests","studentName","jsx","Styled.MenuContainer","FlexView","jsxs","Text","Clickable","CrossIcon","item","HWRequest","HomeWorkMenu$1","memo"],"mappings":";;;;;;;;AAWA,MAAMA,IAA6C,CAAC,EAAE,UAAAC,GAAU,YAAAC,GAAY,aAAAC,QAEvE,gBAAAC,EAAAC,GAAA,EACC,4BAACC,GACC,EAAA,UAAA,gBAAAC;AAAA,EAACD;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,WAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IAEP,UAAA;AAAA,MAAA,gBAAAC,EAACD,GAAS,EAAA,gBAAe,OAAM,OAAO,KACpC,UAAA;AAAA,QAAA,gBAAAC,EAACD,GAAS,EAAA,QAAQ,SAAS,UAAU,GACnC,UAAA;AAAA,UAAA,gBAAAF,EAACI,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,YAAA;AAAA,4BACCA,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,iBAAA;AAAA,QAAA,GACF;AAAA,QACA,gBAAAJ,EAACK,GAAU,EAAA,SAASR,GAAU,OAAM,yBAClC,UAAC,gBAAAG,EAAAM,GAAA,EAAU,OAAM,QAAA,CAAQ,EAC3B,CAAA;AAAA,MAAA,GACF;AAAA,MAECR,EAAW,IAAI,CAAAS,wBACbL,GAAS,EAAA,UAAU,MAAM,OAAO,KAC/B,UAAC,gBAAAF,EAAAQ,GAAA,EAAU,WAAWD,GAAM,UAAAV,GAAoB,aAAAE,GAA0B,EADjC,GAAAQ,EAAK,aAEhD,CACD;AAAA,IAAA;AAAA,EAAA;AAAA,EAEL,CAAA,EACF,CAAA,GAIWE,IAAAC,EAAKd,CAAY;"}
1
+ {"version":3,"file":"homework-menu.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-menu.tsx"],"sourcesContent":["import type { IHomeWorkMenuProps } from './homework-types';\n\nimport { memo } from 'react';\n\nimport CrossIcon from '../../../../assets/line-icons/icons/cross';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport HWRequest from './homework-request';\nimport * as Styled from './homework-styled';\n\nconst HomeWorkMenu: React.FC<IHomeWorkMenuProps> = ({ onSelect, hwRequests }) => {\n return (\n <Styled.MenuContainer>\n <FlexView>\n <FlexView\n $flexDirection=\"row\"\n $alignItems=\"center\"\n $justifyContent=\"center\"\n $flexWrap\n $gutterX={0.5}\n $gapX={0.5}\n >\n <FlexView $flexDirection=\"row\" $gapX={0.5}>\n <FlexView $width={'184px'} $gutterX={1}>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HOMEWORK\n </Text>\n <Text $color=\"WHITE\" $renderAs=\"eyebrow2\">\n HELP REQUESTS\n </Text>\n </FlexView>\n <Clickable onClick={onSelect} label=\"close activities menu\">\n <CrossIcon color=\"WHITE\" />\n </Clickable>\n </FlexView>\n\n {hwRequests.map(item => (\n <FlexView $gutterX={0.25} $gapX={0.5} key={item.created_on_ts}>\n <HWRequest hwRequest={item} onSelect={onSelect} studentName={item.student_name} />\n </FlexView>\n ))}\n </FlexView>\n </FlexView>\n </Styled.MenuContainer>\n );\n};\n\nexport default memo(HomeWorkMenu);\n"],"names":["HomeWorkMenu","onSelect","hwRequests","jsx","Styled.MenuContainer","FlexView","jsxs","Text","Clickable","CrossIcon","item","HWRequest","HomeWorkMenu$1","memo"],"mappings":";;;;;;;;AAWA,MAAMA,IAA6C,CAAC,EAAE,UAAAC,GAAU,YAAAC,QAE3D,gBAAAC,EAAAC,GAAA,EACC,4BAACC,GACC,EAAA,UAAA,gBAAAC;AAAA,EAACD;AAAA,EAAA;AAAA,IACC,gBAAe;AAAA,IACf,aAAY;AAAA,IACZ,iBAAgB;AAAA,IAChB,WAAS;AAAA,IACT,UAAU;AAAA,IACV,OAAO;AAAA,IAEP,UAAA;AAAA,MAAA,gBAAAC,EAACD,GAAS,EAAA,gBAAe,OAAM,OAAO,KACpC,UAAA;AAAA,QAAA,gBAAAC,EAACD,GAAS,EAAA,QAAQ,SAAS,UAAU,GACnC,UAAA;AAAA,UAAA,gBAAAF,EAACI,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,YAAA;AAAA,4BACCA,GAAK,EAAA,QAAO,SAAQ,WAAU,YAAW,UAE1C,iBAAA;AAAA,QAAA,GACF;AAAA,QACA,gBAAAJ,EAACK,GAAU,EAAA,SAASP,GAAU,OAAM,yBAClC,UAAC,gBAAAE,EAAAM,GAAA,EAAU,OAAM,QAAA,CAAQ,EAC3B,CAAA;AAAA,MAAA,GACF;AAAA,MAECP,EAAW,IAAI,CACdQ,MAAA,gBAAAP,EAACE,KAAS,UAAU,MAAM,OAAO,KAC/B,UAAA,gBAAAF,EAACQ,KAAU,WAAWD,GAAM,UAAAT,GAAoB,aAAaS,EAAK,cAAc,EADvC,GAAAA,EAAK,aAEhD,CACD;AAAA,IAAA;AAAA,EAAA;AAAA,EAEL,CAAA,EACF,CAAA,GAIWE,IAAAC,EAAKb,CAAY;"}
@@ -25,8 +25,8 @@ const D = (u) => {
25
25
  {
26
26
  name: "text",
27
27
  html: n,
28
- x: 879.323630603094,
29
- y: 75.07325572085722,
28
+ x: 500,
29
+ y: 75,
30
30
  rot: 0
31
31
  }
32
32
  ]
@@ -39,15 +39,16 @@ const D = (u) => {
39
39
  {
40
40
  name: "image",
41
41
  href: R,
42
- x: 48.30546944572333,
43
- y: 72.56813201988393,
44
- rot: 0
42
+ x: 48,
43
+ y: 72,
44
+ rot: 0,
45
+ width: 400
45
46
  }
46
47
  ];
47
48
  }), t == null || t.replaceCanvas(i);
48
49
  }
49
50
  r(), m(s);
50
- }, [t, n, s, e, r, m]), { date: I, month: w } = E(f), b = `${c.ordinal(I)} ${c.titleCase((a = T(w)) == null ? void 0 : a.toLowerCase())}`;
51
+ }, [t, n, s, e, r, m]), { date: w, month: I } = E(f), b = `${c.ordinal(w)} ${c.titleCase((a = T(I)) == null ? void 0 : a.toLowerCase())}`;
51
52
  return /* @__PURE__ */ o(W, { label: "HW Request Item", onClick: g, children: /* @__PURE__ */ q(_, { $alignItems: "center", $justifyContent: "center", $borderRadius: 8, $background: "WHITE", children: [
52
53
  /* @__PURE__ */ o(v, { src: e[0], alt: "Homework Request" }),
53
54
  /* @__PURE__ */ o(d, { $renderAs: "body3", color: "WHITE", children: p }),
@@ -1 +1 @@
1
- {"version":3,"file":"homework-request.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-request.tsx"],"sourcesContent":["import type { IReplaceCanvas } from '../../types/cue-canvas';\nimport type { IHomeWorkRequestProps } from './homework-types';\n\nimport { ordinal, titleCase } from 'humanize-plus';\nimport { memo, useCallback } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useCueCanvasActions } from '../../hooks/use-cue-canvas-actions';\nimport { getDateInInputFormat, getMonthNameforNumber } from './helper';\nimport * as Styled from './homework-styled';\n\nconst HomeWorkRequest: React.FC<IHomeWorkRequestProps> = props => {\n const { hwRequest, onSelect, studentName } = props;\n const {\n problem_description: hwRequestDesc,\n problem_image_urls: hwRequestImages,\n created_on_ts: createdOnTs,\n homework_id: hwRequestId,\n } = hwRequest;\n const { setHomeworkId, activeInstance } = useCueCanvasActions();\n\n const onSelectHwRequest = useCallback(() => {\n const textId = uuidv4();\n\n if (hwRequestImages && hwRequestImages.length > 0) {\n const actionData: IReplaceCanvas = {\n data: {\n [textId]: [\n undefined,\n {\n name: 'text',\n html: hwRequestDesc,\n x: 879.323630603094,\n y: 75.07325572085722,\n rot: 0,\n },\n ],\n },\n };\n\n hwRequestImages.forEach(image => {\n const imgId = uuidv4();\n const imageUrl = image + `?${Date.now()}`;\n\n actionData.data[imgId] = [\n undefined,\n {\n name: 'image',\n href: imageUrl,\n x: 48.30546944572333,\n y: 72.56813201988393,\n rot: 0,\n },\n ];\n });\n\n activeInstance?.replaceCanvas(actionData);\n }\n // const url = new URL(window.location.href);\n // url.searchParams.set('homeworkId', hwRequestId);\n // console.log('url', url);\n // window.history.replaceState({}, '', url.toString());\n onSelect();\n setHomeworkId(hwRequestId);\n }, [activeInstance, hwRequestDesc, hwRequestId, hwRequestImages, onSelect, setHomeworkId]);\n\n const { date, month } = getDateInInputFormat(createdOnTs);\n\n const dateString = `${ordinal(date)} ${titleCase(getMonthNameforNumber(month)?.toLowerCase())}`;\n\n return (\n <Clickable label=\"HW Request Item\" onClick={onSelectHwRequest}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" $borderRadius={8} $background=\"WHITE\">\n <Styled.HWImageContainer src={hwRequestImages[0]} alt=\"Homework Request\" />\n <Text $renderAs=\"body3\" color=\"WHITE\">\n {studentName}\n </Text>\n <Text $renderAs=\"body3\" color=\"WHITE\">\n {dateString}\n </Text>\n </FlexView>\n </Clickable>\n );\n};\n\nexport default memo(HomeWorkRequest);\n"],"names":["HomeWorkRequest","props","hwRequest","onSelect","studentName","hwRequestDesc","hwRequestImages","createdOnTs","hwRequestId","setHomeworkId","activeInstance","useCueCanvasActions","onSelectHwRequest","useCallback","textId","uuidv4","actionData","image","imgId","imageUrl","date","month","getDateInInputFormat","dateString","ordinal","titleCase","_a","getMonthNameforNumber","jsx","Clickable","jsxs","FlexView","Styled.HWImageContainer","Text","HWRequest","memo"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAAmD,CAASC,MAAA;;AAChE,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,aAAAC,EAAA,IAAgBH,GACvC;AAAA,IACJ,qBAAqBI;AAAA,IACrB,oBAAoBC;AAAA,IACpB,eAAeC;AAAA,IACf,aAAaC;AAAA,EACX,IAAAN,GACE,EAAE,eAAAO,GAAe,gBAAAC,EAAe,IAAIC,EAAoB,GAExDC,IAAoBC,EAAY,MAAM;AAC1C,UAAMC,IAASC;AAEX,QAAAT,KAAmBA,EAAgB,SAAS,GAAG;AACjD,YAAMU,IAA6B;AAAA,QACjC,MAAM;AAAA,UACJ,CAACF,CAAM,GAAG;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,MAAMT;AAAA,cACN,GAAG;AAAA,cACH,GAAG;AAAA,cACH,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAGF,MAAAC,EAAgB,QAAQ,CAASW,MAAA;AAC/B,cAAMC,IAAQH,KACRI,IAAWF,IAAQ,IAAI,KAAK,IAAK,CAAA;AAE5B,QAAAD,EAAA,KAAKE,CAAK,IAAI;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAMC;AAAA,YACN,GAAG;AAAA,YACH,GAAG;AAAA,YACH,KAAK;AAAA,UACP;AAAA,QAAA;AAAA,MACF,CACD,GAEDT,KAAA,QAAAA,EAAgB,cAAcM;AAAA,IAChC;AAKS,IAAAb,KACTM,EAAcD,CAAW;AAAA,EAAA,GACxB,CAACE,GAAgBL,GAAeG,GAAaF,GAAiBH,GAAUM,CAAa,CAAC,GAEnF,EAAE,MAAAW,GAAM,OAAAC,EAAM,IAAIC,EAAqBf,CAAW,GAElDgB,IAAa,GAAGC,UAAQJ,CAAI,CAAC,IAAIK,aAAUC,IAAAC,EAAsBN,CAAK,MAA3B,gBAAAK,EAA8B,aAAa,CAAC;AAE7F,SACG,gBAAAE,EAAAC,GAAA,EAAU,OAAM,mBAAkB,SAASjB,GAC1C,UAAA,gBAAAkB,EAACC,GAAS,EAAA,aAAY,UAAS,iBAAgB,UAAS,eAAe,GAAG,aAAY,SACpF,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAwB,KAAK1B,EAAgB,CAAC,GAAG,KAAI,oBAAmB;AAAA,sBACxE2B,GAAK,EAAA,WAAU,SAAQ,OAAM,SAC3B,UACH7B,GAAA;AAAA,sBACC6B,GAAK,EAAA,WAAU,SAAQ,OAAM,SAC3B,UACHV,GAAA;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,GAEeW,IAAAC,EAAKnC,CAAe;"}
1
+ {"version":3,"file":"homework-request.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-request.tsx"],"sourcesContent":["import type { IReplaceCanvas } from '../../types/cue-canvas';\nimport type { IHomeWorkRequestProps } from './homework-types';\n\nimport { ordinal, titleCase } from 'humanize-plus';\nimport { memo, useCallback } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport FlexView from '../../../ui/layout/flex-view';\nimport Text from '../../../ui/text/text';\nimport { useCueCanvasActions } from '../../hooks/use-cue-canvas-actions';\nimport { getDateInInputFormat, getMonthNameforNumber } from './helper';\nimport * as Styled from './homework-styled';\n\nconst HomeWorkRequest: React.FC<IHomeWorkRequestProps> = props => {\n const { hwRequest, onSelect, studentName } = props;\n const {\n problem_description: hwRequestDesc,\n problem_image_urls: hwRequestImages,\n created_on_ts: createdOnTs,\n homework_id: hwRequestId,\n } = hwRequest;\n const { setHomeworkId, activeInstance } = useCueCanvasActions();\n\n const onSelectHwRequest = useCallback(() => {\n const textId = uuidv4();\n\n if (hwRequestImages && hwRequestImages.length > 0) {\n const actionData: IReplaceCanvas = {\n data: {\n [textId]: [\n undefined,\n {\n name: 'text',\n html: hwRequestDesc,\n x: 500,\n y: 75,\n rot: 0,\n },\n ],\n },\n };\n\n hwRequestImages.forEach(image => {\n const imgId = uuidv4();\n const imageUrl = image + `?${Date.now()}`;\n\n actionData.data[imgId] = [\n undefined,\n {\n name: 'image',\n href: imageUrl,\n x: 48,\n y: 72,\n rot: 0,\n width: 400,\n },\n ];\n });\n\n activeInstance?.replaceCanvas(actionData);\n }\n // const url = new URL(window.location.href);\n // url.searchParams.set('homeworkId', hwRequestId);\n // console.log('url', url);\n // window.history.replaceState({}, '', url.toString());\n onSelect();\n setHomeworkId(hwRequestId);\n }, [activeInstance, hwRequestDesc, hwRequestId, hwRequestImages, onSelect, setHomeworkId]);\n\n const { date, month } = getDateInInputFormat(createdOnTs);\n\n const dateString = `${ordinal(date)} ${titleCase(getMonthNameforNumber(month)?.toLowerCase())}`;\n\n return (\n <Clickable label=\"HW Request Item\" onClick={onSelectHwRequest}>\n <FlexView $alignItems=\"center\" $justifyContent=\"center\" $borderRadius={8} $background=\"WHITE\">\n <Styled.HWImageContainer src={hwRequestImages[0]} alt=\"Homework Request\" />\n <Text $renderAs=\"body3\" color=\"WHITE\">\n {studentName}\n </Text>\n <Text $renderAs=\"body3\" color=\"WHITE\">\n {dateString}\n </Text>\n </FlexView>\n </Clickable>\n );\n};\n\nexport default memo(HomeWorkRequest);\n"],"names":["HomeWorkRequest","props","hwRequest","onSelect","studentName","hwRequestDesc","hwRequestImages","createdOnTs","hwRequestId","setHomeworkId","activeInstance","useCueCanvasActions","onSelectHwRequest","useCallback","textId","uuidv4","actionData","image","imgId","imageUrl","date","month","getDateInInputFormat","dateString","ordinal","titleCase","_a","getMonthNameforNumber","jsx","Clickable","jsxs","FlexView","Styled.HWImageContainer","Text","HWRequest","memo"],"mappings":";;;;;;;;;;AAcA,MAAMA,IAAmD,CAASC,MAAA;;AAChE,QAAM,EAAE,WAAAC,GAAW,UAAAC,GAAU,aAAAC,EAAA,IAAgBH,GACvC;AAAA,IACJ,qBAAqBI;AAAA,IACrB,oBAAoBC;AAAA,IACpB,eAAeC;AAAA,IACf,aAAaC;AAAA,EACX,IAAAN,GACE,EAAE,eAAAO,GAAe,gBAAAC,EAAe,IAAIC,EAAoB,GAExDC,IAAoBC,EAAY,MAAM;AAC1C,UAAMC,IAASC;AAEX,QAAAT,KAAmBA,EAAgB,SAAS,GAAG;AACjD,YAAMU,IAA6B;AAAA,QACjC,MAAM;AAAA,UACJ,CAACF,CAAM,GAAG;AAAA,YACR;AAAA,YACA;AAAA,cACE,MAAM;AAAA,cACN,MAAMT;AAAA,cACN,GAAG;AAAA,cACH,GAAG;AAAA,cACH,KAAK;AAAA,YACP;AAAA,UACF;AAAA,QACF;AAAA,MAAA;AAGF,MAAAC,EAAgB,QAAQ,CAASW,MAAA;AAC/B,cAAMC,IAAQH,KACRI,IAAWF,IAAQ,IAAI,KAAK,IAAK,CAAA;AAE5B,QAAAD,EAAA,KAAKE,CAAK,IAAI;AAAA,UACvB;AAAA,UACA;AAAA,YACE,MAAM;AAAA,YACN,MAAMC;AAAA,YACN,GAAG;AAAA,YACH,GAAG;AAAA,YACH,KAAK;AAAA,YACL,OAAO;AAAA,UACT;AAAA,QAAA;AAAA,MACF,CACD,GAEDT,KAAA,QAAAA,EAAgB,cAAcM;AAAA,IAChC;AAKS,IAAAb,KACTM,EAAcD,CAAW;AAAA,EAAA,GACxB,CAACE,GAAgBL,GAAeG,GAAaF,GAAiBH,GAAUM,CAAa,CAAC,GAEnF,EAAE,MAAAW,GAAM,OAAAC,EAAM,IAAIC,EAAqBf,CAAW,GAElDgB,IAAa,GAAGC,UAAQJ,CAAI,CAAC,IAAIK,aAAUC,IAAAC,EAAsBN,CAAK,MAA3B,gBAAAK,EAA8B,aAAa,CAAC;AAE7F,SACG,gBAAAE,EAAAC,GAAA,EAAU,OAAM,mBAAkB,SAASjB,GAC1C,UAAA,gBAAAkB,EAACC,GAAS,EAAA,aAAY,UAAS,iBAAgB,UAAS,eAAe,GAAG,aAAY,SACpF,UAAA;AAAA,IAAC,gBAAAH,EAAAI,GAAA,EAAwB,KAAK1B,EAAgB,CAAC,GAAG,KAAI,oBAAmB;AAAA,sBACxE2B,GAAK,EAAA,WAAU,SAAQ,OAAM,SAC3B,UACH7B,GAAA;AAAA,sBACC6B,GAAK,EAAA,WAAU,SAAQ,OAAM,SAC3B,UACHV,GAAA;AAAA,EAAA,EACF,CAAA,EACF,CAAA;AAEJ,GAEeW,IAAAC,EAAKnC,CAAe;"}
@@ -1,6 +1,6 @@
1
1
  import o from "styled-components";
2
- import t from "../../../ui/layout/flex-view.js";
3
- const i = o(t)`
2
+ import r from "../../../ui/layout/flex-view.js";
3
+ const e = o(r)`
4
4
  position: absolute;
5
5
  top: 38px;
6
6
  left: -79px; //32px + 32 px for icon +4 + 4 gutter + 7 padding
@@ -8,9 +8,9 @@ const i = o(t)`
8
8
  height: 438px;
9
9
  border-radius: 6px;
10
10
  background: #292734;
11
- box-shadow: 0px 4px 8px ${({ theme: r }) => r.colors.BLACK_T_20};
11
+ box-shadow: 0px 4px 8px ${({ theme: t }) => t.colors.BLACK_T_20};
12
12
  overflow-y: auto;
13
- `, d = o.img`
13
+ `, d = o.img.attrs({ loading: "lazy" })`
14
14
  width: 184px;
15
15
  height: 128px;
16
16
  border-top-left-radius: 8px;
@@ -20,6 +20,6 @@ const i = o(t)`
20
20
  `;
21
21
  export {
22
22
  d as HWImageContainer,
23
- i as MenuContainer
23
+ e as MenuContainer
24
24
  };
25
25
  //# sourceMappingURL=homework-styled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework-styled.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst MenuContainer = styled(FlexView)`\n position: absolute;\n top: 38px;\n left: -79px; //32px + 32 px for icon +4 + 4 gutter + 7 padding\n width: 248px;\n height: 438px;\n border-radius: 6px;\n background: #292734;\n box-shadow: 0px 4px 8px ${({ theme }) => theme.colors.BLACK_T_20};\n overflow-y: auto;\n`;\nconst HWImageContainer = styled.img`\n width: 184px;\n height: 128px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n`;\n\nexport { MenuContainer, HWImageContainer };\n"],"names":["MenuContainer","styled","FlexView","theme","HWImageContainer"],"mappings":";;AAIM,MAAAA,IAAgBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAQT,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA,GAG5DC,IAAmBH,EAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"homework-styled.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework-styled.ts"],"sourcesContent":["import styled from 'styled-components';\n\nimport FlexView from '../../../ui/layout/flex-view';\n\nconst MenuContainer = styled(FlexView)`\n position: absolute;\n top: 38px;\n left: -79px; //32px + 32 px for icon +4 + 4 gutter + 7 padding\n width: 248px;\n height: 438px;\n border-radius: 6px;\n background: #292734;\n box-shadow: 0px 4px 8px ${({ theme }) => theme.colors.BLACK_T_20};\n overflow-y: auto;\n`;\nconst HWImageContainer = styled.img.attrs({ loading: 'lazy' })`\n width: 184px;\n height: 128px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n`;\n\nexport { MenuContainer, HWImageContainer };\n"],"names":["MenuContainer","styled","FlexView","theme","HWImageContainer"],"mappings":";;AAIM,MAAAA,IAAgBC,EAAOC,CAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAQT,CAAC,EAAE,OAAAC,EAAA,MAAYA,EAAM,OAAO,UAAU;AAAA;AAAA,GAG5DC,IAAmBH,EAAO,IAAI,MAAM,EAAE,SAAS,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1,32 +1,32 @@
1
- import { jsxs as k, jsx as r } from "react/jsx-runtime";
2
- import { memo as d, useRef as p, useCallback as c, useEffect as C } from "react";
3
- import w from "../../../../assets/line-icons/icons/hw.js";
4
- import v from "../../../ui/buttons/clickable/clickable.js";
5
- import b from "../../../ui/hooks/use-context-menu-click-handler.js";
6
- import H from "../../../ui/layout/flex-view.js";
7
- import { StyledWrapper as W } from "../../cue-cavas-styled.js";
8
- import { useCueCanvasActions as x } from "../../hooks/use-cue-canvas-actions.js";
9
- import M from "./homework-menu.js";
10
- const R = (a) => {
11
- const { activeSidebar: e, setActiveSidebar: o, hwRequests: f, studentName: u } = a, { activeInstance: t } = x(), l = p(null), h = c(
1
+ import { jsxs as u, jsx as r } from "react/jsx-runtime";
2
+ import { memo as k, useRef as d, useCallback as c, useEffect as p } from "react";
3
+ import C from "../../../../assets/line-icons/icons/hw.js";
4
+ import w from "../../../ui/buttons/clickable/clickable.js";
5
+ import v from "../../../ui/hooks/use-context-menu-click-handler.js";
6
+ import b from "../../../ui/layout/flex-view.js";
7
+ import { StyledWrapper as H } from "../../cue-cavas-styled.js";
8
+ import { useCueCanvasActions as W } from "../../hooks/use-cue-canvas-actions.js";
9
+ import x from "./homework-menu.js";
10
+ const M = (a) => {
11
+ const { activeSidebar: e, setActiveSidebar: o, hwRequests: f } = a, { activeInstance: t } = W(), n = d(null), h = c(
12
12
  () => o((s) => s === "homework" ? void 0 : s),
13
13
  [o]
14
- ), { menuVisible: n, onMenuClick: i } = b(
15
- l,
14
+ ), { menuVisible: l, onMenuClick: i } = v(
15
+ n,
16
16
  void 0,
17
17
  !0,
18
18
  h
19
19
  ), m = c(() => {
20
20
  e === "tile" && (t == null || t.toggleTiles(!1)), o(e === "homework" ? void 0 : "homework"), i();
21
21
  }, [e, t, i, o]);
22
- return C(() => {
23
- e === "tile" && n && i();
24
- }, [e, n, i]), /* @__PURE__ */ k(H, { $position: "relative", ref: l, children: [
25
- /* @__PURE__ */ r(v, { onClick: m, label: "homework help", children: /* @__PURE__ */ r(W, { $active: e === "homework", children: /* @__PURE__ */ r(w, { width: 20, height: 20, fill: e === "homework" ? "WHITE" : "BLACK" }) }) }),
26
- n && /* @__PURE__ */ r(M, { onSelect: m, hwRequests: f, studentName: u })
22
+ return p(() => {
23
+ e === "tile" && l && i();
24
+ }, [e, l, i]), /* @__PURE__ */ u(b, { $position: "relative", ref: n, children: [
25
+ /* @__PURE__ */ r(w, { onClick: m, label: "homework help", children: /* @__PURE__ */ r(H, { $active: e === "homework", children: /* @__PURE__ */ r(C, { width: 20, height: 20, fill: e === "homework" ? "WHITE" : "BLACK" }) }) }),
26
+ l && /* @__PURE__ */ r(x, { onSelect: m, hwRequests: f })
27
27
  ] });
28
- }, $ = d(R);
28
+ }, V = k(M);
29
29
  export {
30
- $ as default
30
+ V as default
31
31
  };
32
32
  //# sourceMappingURL=homework.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"homework.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework.tsx"],"sourcesContent":["import type { IHomeWorkRequestsContainerProps } from './homework-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport HWIcon from '../../../../assets/line-icons/icons/hw';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { StyledWrapper } from '../../cue-cavas-styled';\nimport { useCueCanvasActions } from '../../hooks/use-cue-canvas-actions';\nimport HomeWorkMenu from './homework-menu';\n\nconst HomeWorkRequestsContainer: FC<IHomeWorkRequestsContainerProps> = props => {\n const { activeSidebar, setActiveSidebar, hwRequests, studentName } = props;\n const { activeInstance: cueCanvas } = useCueCanvasActions();\n const homeWorkMenuRef = useRef(null);\n\n const handleMenuClose = useCallback(\n () => setActiveSidebar(prev => (prev === 'homework' ? undefined : prev)),\n [setActiveSidebar],\n );\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(\n homeWorkMenuRef,\n undefined,\n true,\n handleMenuClose,\n );\n\n const handleClick = useCallback(() => {\n if (activeSidebar === 'tile') {\n cueCanvas?.toggleTiles(false);\n }\n setActiveSidebar(activeSidebar === 'homework' ? undefined : 'homework');\n onMenuClick();\n }, [activeSidebar, cueCanvas, onMenuClick, setActiveSidebar]);\n\n useEffect(() => {\n if (activeSidebar === 'tile' && menuVisible) {\n onMenuClick();\n }\n }, [activeSidebar, menuVisible, onMenuClick]);\n\n return (\n <FlexView $position=\"relative\" ref={homeWorkMenuRef}>\n <Clickable onClick={handleClick} label=\"homework help\">\n <StyledWrapper $active={activeSidebar === 'homework'}>\n <HWIcon width={20} height={20} fill={activeSidebar === 'homework' ? 'WHITE' : 'BLACK'} />\n </StyledWrapper>\n </Clickable>\n {menuVisible && (\n <HomeWorkMenu onSelect={handleClick} hwRequests={hwRequests} studentName={studentName} />\n )}\n </FlexView>\n );\n};\n\nexport default memo(HomeWorkRequestsContainer);\n"],"names":["HomeWorkRequestsContainer","props","activeSidebar","setActiveSidebar","hwRequests","studentName","cueCanvas","useCueCanvasActions","homeWorkMenuRef","useRef","handleMenuClose","useCallback","prev","menuVisible","onMenuClick","useContextMenuClickHandler","handleClick","useEffect","jsxs","FlexView","jsx","Clickable","StyledWrapper","HWIcon","HomeWorkMenu","Homework","memo"],"mappings":";;;;;;;;;AAaA,MAAMA,IAAiE,CAASC,MAAA;AAC9E,QAAM,EAAE,eAAAC,GAAe,kBAAAC,GAAkB,YAAAC,GAAY,aAAAC,MAAgBJ,GAC/D,EAAE,gBAAgBK,EAAU,IAAIC,EAAoB,GACpDC,IAAkBC,EAAO,IAAI,GAE7BC,IAAkBC;AAAA,IACtB,MAAMR,EAAiB,CAAAS,MAASA,MAAS,aAAa,SAAYA,CAAK;AAAA,IACvE,CAACT,CAAgB;AAAA,EAAA,GAEb,EAAE,aAAAU,GAAa,aAAAC,EAAA,IAAgBC;AAAA,IACnCP;AAAA,IACA;AAAA,IACA;AAAA,IACAE;AAAA,EAAA,GAGIM,IAAcL,EAAY,MAAM;AACpC,IAAIT,MAAkB,WACpBI,KAAA,QAAAA,EAAW,YAAY,MAERH,EAAAD,MAAkB,aAAa,SAAY,UAAU,GAC1DY;KACX,CAACZ,GAAeI,GAAWQ,GAAaX,CAAgB,CAAC;AAE5D,SAAAc,EAAU,MAAM;AACV,IAAAf,MAAkB,UAAUW,KAClBC;EAEb,GAAA,CAACZ,GAAeW,GAAaC,CAAW,CAAC,GAGzC,gBAAAI,EAAAC,GAAA,EAAS,WAAU,YAAW,KAAKX,GAClC,UAAA;AAAA,IAAC,gBAAAY,EAAAC,GAAA,EAAU,SAASL,GAAa,OAAM,iBACrC,UAAC,gBAAAI,EAAAE,GAAA,EAAc,SAASpB,MAAkB,YACxC,UAAA,gBAAAkB,EAACG,KAAO,OAAO,IAAI,QAAQ,IAAI,MAAMrB,MAAkB,aAAa,UAAU,QAAS,CAAA,EAAA,CACzF,EACF,CAAA;AAAA,IACCW,KACE,gBAAAO,EAAAI,GAAA,EAAa,UAAUR,GAAa,YAAAZ,GAAwB,aAAAC,GAA0B;AAAA,EAE3F,EAAA,CAAA;AAEJ,GAEeoB,IAAAC,EAAK1B,CAAyB;"}
1
+ {"version":3,"file":"homework.js","sources":["../../../../../src/features/cue-canvas/sidebar/homework/homework.tsx"],"sourcesContent":["import type { IHomeWorkRequestsContainerProps } from './homework-types';\nimport type { FC } from 'react';\n\nimport { memo, useCallback, useEffect, useRef } from 'react';\n\nimport HWIcon from '../../../../assets/line-icons/icons/hw';\nimport Clickable from '../../../ui/buttons/clickable/clickable';\nimport useContextMenuClickHandler from '../../../ui/hooks/use-context-menu-click-handler';\nimport FlexView from '../../../ui/layout/flex-view';\nimport { StyledWrapper } from '../../cue-cavas-styled';\nimport { useCueCanvasActions } from '../../hooks/use-cue-canvas-actions';\nimport HomeWorkMenu from './homework-menu';\n\nconst HomeWorkRequestsContainer: FC<IHomeWorkRequestsContainerProps> = props => {\n const { activeSidebar, setActiveSidebar, hwRequests } = props;\n const { activeInstance: cueCanvas } = useCueCanvasActions();\n const homeWorkMenuRef = useRef(null);\n\n const handleMenuClose = useCallback(\n () => setActiveSidebar(prev => (prev === 'homework' ? undefined : prev)),\n [setActiveSidebar],\n );\n const { menuVisible, onMenuClick } = useContextMenuClickHandler(\n homeWorkMenuRef,\n undefined,\n true,\n handleMenuClose,\n );\n\n const handleClick = useCallback(() => {\n if (activeSidebar === 'tile') {\n cueCanvas?.toggleTiles(false);\n }\n setActiveSidebar(activeSidebar === 'homework' ? undefined : 'homework');\n onMenuClick();\n }, [activeSidebar, cueCanvas, onMenuClick, setActiveSidebar]);\n\n useEffect(() => {\n if (activeSidebar === 'tile' && menuVisible) {\n onMenuClick();\n }\n }, [activeSidebar, menuVisible, onMenuClick]);\n\n return (\n <FlexView $position=\"relative\" ref={homeWorkMenuRef}>\n <Clickable onClick={handleClick} label=\"homework help\">\n <StyledWrapper $active={activeSidebar === 'homework'}>\n <HWIcon width={20} height={20} fill={activeSidebar === 'homework' ? 'WHITE' : 'BLACK'} />\n </StyledWrapper>\n </Clickable>\n {menuVisible && <HomeWorkMenu onSelect={handleClick} hwRequests={hwRequests} />}\n </FlexView>\n );\n};\n\nexport default memo(HomeWorkRequestsContainer);\n"],"names":["HomeWorkRequestsContainer","props","activeSidebar","setActiveSidebar","hwRequests","cueCanvas","useCueCanvasActions","homeWorkMenuRef","useRef","handleMenuClose","useCallback","prev","menuVisible","onMenuClick","useContextMenuClickHandler","handleClick","useEffect","jsxs","FlexView","jsx","Clickable","StyledWrapper","HWIcon","HomeWorkMenu","Homework","memo"],"mappings":";;;;;;;;;AAaA,MAAMA,IAAiE,CAASC,MAAA;AAC9E,QAAM,EAAE,eAAAC,GAAe,kBAAAC,GAAkB,YAAAC,EAAA,IAAeH,GAClD,EAAE,gBAAgBI,EAAU,IAAIC,EAAoB,GACpDC,IAAkBC,EAAO,IAAI,GAE7BC,IAAkBC;AAAA,IACtB,MAAMP,EAAiB,CAAAQ,MAASA,MAAS,aAAa,SAAYA,CAAK;AAAA,IACvE,CAACR,CAAgB;AAAA,EAAA,GAEb,EAAE,aAAAS,GAAa,aAAAC,EAAA,IAAgBC;AAAA,IACnCP;AAAA,IACA;AAAA,IACA;AAAA,IACAE;AAAA,EAAA,GAGIM,IAAcL,EAAY,MAAM;AACpC,IAAIR,MAAkB,WACpBG,KAAA,QAAAA,EAAW,YAAY,MAERF,EAAAD,MAAkB,aAAa,SAAY,UAAU,GAC1DW;KACX,CAACX,GAAeG,GAAWQ,GAAaV,CAAgB,CAAC;AAE5D,SAAAa,EAAU,MAAM;AACV,IAAAd,MAAkB,UAAUU,KAClBC;EAEb,GAAA,CAACX,GAAeU,GAAaC,CAAW,CAAC,GAGzC,gBAAAI,EAAAC,GAAA,EAAS,WAAU,YAAW,KAAKX,GAClC,UAAA;AAAA,IAAC,gBAAAY,EAAAC,GAAA,EAAU,SAASL,GAAa,OAAM,iBACrC,UAAC,gBAAAI,EAAAE,GAAA,EAAc,SAASnB,MAAkB,YACxC,UAAA,gBAAAiB,EAACG,KAAO,OAAO,IAAI,QAAQ,IAAI,MAAMpB,MAAkB,aAAa,UAAU,QAAS,CAAA,EAAA,CACzF,EACF,CAAA;AAAA,IACCU,KAAe,gBAAAO,EAACI,GAAa,EAAA,UAAUR,GAAa,YAAAX,GAAwB;AAAA,EAC/E,EAAA,CAAA;AAEJ,GAEeoB,IAAAC,EAAKzB,CAAyB;"}
@@ -1,34 +1,33 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import { memo as s, useState as f } from "react";
3
- import n from "./homework/homework.js";
4
- import c from "./puzzles/puzzles.js";
5
- import { SideBarContainer as d } from "./sidebar-styled.js";
6
- import p from "./tiles/tile.js";
7
- const l = ({ grade: i, hwRequests: o, studentName: m }) => {
8
- const [r, t] = f();
9
- return /* @__PURE__ */ a(
10
- d,
1
+ import { jsxs as m, jsx as e } from "react/jsx-runtime";
2
+ import { memo as a, useState as s } from "react";
3
+ import f from "./homework/homework.js";
4
+ import n from "./puzzles/puzzles.js";
5
+ import { SideBarContainer as c } from "./sidebar-styled.js";
6
+ import d from "./tiles/tile.js";
7
+ const p = ({ grade: i, hwRequests: o }) => {
8
+ const [r, t] = s();
9
+ return /* @__PURE__ */ m(
10
+ c,
11
11
  {
12
12
  $activeSidebar: r,
13
13
  $flexDirection: "row",
14
14
  $justifyContent: "flex-start",
15
15
  children: [
16
- /* @__PURE__ */ e(p, { activeSidebar: r, setActiveSidebar: t }),
17
- /* @__PURE__ */ e(c, { grade: i, activeSidebar: r, setActiveSidebar: t }),
16
+ /* @__PURE__ */ e(d, { activeSidebar: r, setActiveSidebar: t }),
17
+ /* @__PURE__ */ e(n, { grade: i, activeSidebar: r, setActiveSidebar: t }),
18
18
  o && /* @__PURE__ */ e(
19
- n,
19
+ f,
20
20
  {
21
21
  activeSidebar: r,
22
22
  setActiveSidebar: t,
23
- hwRequests: o,
24
- studentName: m
23
+ hwRequests: o
25
24
  }
26
25
  )
27
26
  ]
28
27
  }
29
28
  );
30
- }, $ = s(l);
29
+ }, v = a(p);
31
30
  export {
32
- $ as default
31
+ v as default
33
32
  };
34
33
  //# sourceMappingURL=sidebar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import type { IHomeWorkHelpRequestModel } from './homework/homework-types';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport Homework from './homework/homework';\nimport Puzzles from './puzzles/puzzles';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModel[];\n studentName?: string;\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests, studentName }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n return (\n <SideBarContainer\n $activeSidebar={activeSidebar}\n $flexDirection=\"row\"\n $justifyContent=\"flex-start\"\n >\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n {hwRequests && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n studentName={studentName}\n />\n )}\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","studentName","activeSidebar","setActiveSidebar","useState","jsxs","SideBarContainer","jsx","TileBar","Puzzles","Homework","sidebar","memo"],"mappings":";;;;;;AAiBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,GAAY,aAAAC,QAAkB;AACpE,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC;AAG7E,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAgBJ;AAAA,MAChB,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAC,gBAAAK,EAAAC,GAAA,EAAQ,eAAAN,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QAC1E,gBAAAI,EAAAE,GAAA,EAAQ,OAAAV,GAAc,eAAAG,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QACxFH,KACC,gBAAAO;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,eAAAR;AAAA,YACA,kBAAAC;AAAA,YACA,YAAAH;AAAA,YACA,aAAAC;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEeU,IAAAC,EAAKd,CAAO;"}
1
+ {"version":3,"file":"sidebar.js","sources":["../../../../src/features/cue-canvas/sidebar/sidebar.tsx"],"sourcesContent":["import type { IHomeWorkHelpRequestModelWithStudentName } from './homework/homework-types';\nimport type { TActiveSidebar } from './puzzles/puzzles-type';\nimport type { FC } from 'react';\n\nimport { memo, useState } from 'react';\n\nimport Homework from './homework/homework';\nimport Puzzles from './puzzles/puzzles';\nimport { SideBarContainer } from './sidebar-styled';\nimport TileBar from './tiles/tile';\n\ninterface ISidebar {\n grade?: string;\n hwRequests?: IHomeWorkHelpRequestModelWithStudentName[];\n}\n\nconst Sidebar: FC<ISidebar> = ({ grade, hwRequests }) => {\n const [activeSidebar, setActiveSidebar] = useState<TActiveSidebar | undefined>();\n\n return (\n <SideBarContainer\n $activeSidebar={activeSidebar}\n $flexDirection=\"row\"\n $justifyContent=\"flex-start\"\n >\n <TileBar activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n <Puzzles grade={grade} activeSidebar={activeSidebar} setActiveSidebar={setActiveSidebar} />\n {hwRequests && (\n <Homework\n activeSidebar={activeSidebar}\n setActiveSidebar={setActiveSidebar}\n hwRequests={hwRequests}\n />\n )}\n </SideBarContainer>\n );\n};\n\nexport default memo(Sidebar);\n"],"names":["Sidebar","grade","hwRequests","activeSidebar","setActiveSidebar","useState","jsxs","SideBarContainer","jsx","TileBar","Puzzles","Homework","sidebar","memo"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAC,EAAE,OAAAC,GAAO,YAAAC,QAAiB;AACvD,QAAM,CAACC,GAAeC,CAAgB,IAAIC,EAAqC;AAG7E,SAAA,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,gBAAgBJ;AAAA,MAChB,gBAAe;AAAA,MACf,iBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAC,gBAAAK,EAAAC,GAAA,EAAQ,eAAAN,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QAC1E,gBAAAI,EAAAE,GAAA,EAAQ,OAAAT,GAAc,eAAAE,GAA8B,kBAAAC,EAAoC,CAAA;AAAA,QACxFF,KACC,gBAAAM;AAAA,UAACG;AAAA,UAAA;AAAA,YACC,eAAAR;AAAA,YACA,kBAAAC;AAAA,YACA,YAAAF;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR,GAEeU,IAAAC,EAAKb,CAAO;"}
@@ -1,33 +1,36 @@
1
- import { useEffect as g, useCallback as w } from "react";
2
- import { useAwsSignedKey as S } from "../api/subjective-review.js";
3
- import h from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
- const A = (c) => {
5
- const { studentId: t, query: o } = c, { data: a, get: s } = S();
6
- return g(() => {
7
- s(t, o);
8
- }, [o, s, t]), w(
9
- async ({ images: d, onSuccess: i, onError: l, fileKey: u, fileName: m }) => {
1
+ import { useRef as h, useEffect as f, useCallback as k } from "react";
2
+ import { useAwsSignedKey as I } from "../api/subjective-review.js";
3
+ import S from "../../../../node_modules/uuid/dist/esm-browser/v4.js";
4
+ const C = (y) => {
5
+ const { studentId: t, query: o, enabled: r = !0 } = y, { data: s, get: d } = I(), c = h(s);
6
+ return f(() => {
7
+ c.current = s;
8
+ }, [s]), f(() => {
9
+ r && t && d(t, o);
10
+ }, [o, d, t, r]), k(
11
+ async ({ images: g, onSuccess: n, onError: p, fileKey: w, fileName: K }) => {
12
+ const a = c.current;
10
13
  if (!a) return;
11
- const r = `https://${a.bucketName}.s3.amazonaws.com/`;
14
+ const i = `https://${a.bucketName}.s3.amazonaws.com/`;
12
15
  try {
13
- const n = d.map(async (f) => {
14
- const e = new FormData(), p = `${u}${m ?? h()}`;
15
- if (e.append("key", p), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", f.file), !(await fetch(r, {
16
+ const l = g.map(async (b) => {
17
+ const e = new FormData(), m = `${w}${K ?? S()}`;
18
+ if (e.append("key", m), e.append("AWSAccessKeyId", a.awsKey), e.append("acl", "public-read"), e.append("success_action_redirect", ""), e.append("policy", a.policy), e.append("signature", a.signature), e.append("Content-Type", "image/jpeg"), e.append("file", b.file), !(await fetch(i, {
16
19
  method: "POST",
17
20
  body: e
18
21
  })).ok)
19
22
  throw new Error("Upload failed");
20
- return `${r}${p}`;
21
- }), y = await Promise.all(n);
22
- i(y);
23
+ return `${i}${m}`;
24
+ }), u = await Promise.all(l);
25
+ return n == null || n(u), u;
23
26
  } catch {
24
- l();
27
+ p == null || p();
25
28
  }
26
29
  },
27
- [a]
30
+ []
28
31
  );
29
32
  };
30
33
  export {
31
- A as default
34
+ C as default
32
35
  };
33
36
  //# sourceMappingURL=use-s3-helper.js.map