@magmamath/students-features 0.2.3 → 0.2.4

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 (200) hide show
  1. package/dist/commonjs/features/feedback/assets/icons/MessageBubbleIcon.js.map +1 -0
  2. package/dist/commonjs/features/feedback/assets/icons/XCloseIcon.js.map +1 -0
  3. package/dist/commonjs/features/feedback/components/{EmptyComment/EmptyComment.js → EmptyComment.js} +3 -3
  4. package/dist/commonjs/features/feedback/components/EmptyComment.js.map +1 -0
  5. package/dist/commonjs/features/feedback/components/{ListCardCommentsCount/ListCardCommentsCount.js → ListCardCommentsCount.js} +2 -2
  6. package/dist/commonjs/features/feedback/components/ListCardCommentsCount.js.map +1 -0
  7. package/dist/commonjs/features/feedback/components/TeacherFeedback.js +8 -8
  8. package/dist/commonjs/features/feedback/components/TeacherFeedback.js.map +1 -1
  9. package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +2 -2
  10. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +3 -3
  11. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  12. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +1 -1
  13. package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
  14. package/dist/commonjs/features/feedback/components/index.js +1 -1
  15. package/dist/commonjs/features/feedback/constants.js +1 -18
  16. package/dist/commonjs/features/feedback/constants.js.map +1 -1
  17. package/dist/commonjs/features/feedback/helpers.js +22 -64
  18. package/dist/commonjs/features/feedback/helpers.js.map +1 -1
  19. package/dist/commonjs/features/feedback/index.js +8 -8
  20. package/dist/commonjs/features/feedback/index.js.map +1 -1
  21. package/dist/commonjs/features/feedback/model/api.js +15 -0
  22. package/dist/commonjs/features/feedback/model/api.js.map +1 -0
  23. package/dist/commonjs/features/feedback/model/comments.js +88 -0
  24. package/dist/commonjs/features/feedback/model/comments.js.map +1 -0
  25. package/dist/commonjs/features/feedback/model/model.js +104 -0
  26. package/dist/commonjs/features/feedback/model/model.js.map +1 -0
  27. package/dist/commonjs/features/feedback/model/sockets.js +25 -0
  28. package/dist/commonjs/features/feedback/model/sockets.js.map +1 -0
  29. package/dist/commonjs/features/feedback/types.js +12 -0
  30. package/dist/commonjs/features/feedback/types.js.map +1 -0
  31. package/dist/commonjs/lib/helpers/helpers.js +24 -1
  32. package/dist/commonjs/lib/helpers/helpers.js.map +1 -1
  33. package/dist/commonjs/shared/translation/constants.js +42 -1
  34. package/dist/commonjs/shared/translation/constants.js.map +1 -1
  35. package/dist/module/features/feedback/assets/icons/MessageBubbleIcon.js.map +1 -0
  36. package/dist/module/features/feedback/assets/icons/XCloseIcon.js.map +1 -0
  37. package/dist/module/features/feedback/components/{EmptyComment/EmptyComment.js → EmptyComment.js} +3 -3
  38. package/dist/module/features/feedback/components/EmptyComment.js.map +1 -0
  39. package/dist/module/features/feedback/components/{ListCardCommentsCount/ListCardCommentsCount.js → ListCardCommentsCount.js} +2 -2
  40. package/dist/module/features/feedback/components/ListCardCommentsCount.js.map +1 -0
  41. package/dist/module/features/feedback/components/TeacherFeedback.js +8 -8
  42. package/dist/module/features/feedback/components/TeacherFeedback.js.map +1 -1
  43. package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +2 -2
  44. package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
  45. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +3 -3
  46. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
  47. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +1 -1
  48. package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
  49. package/dist/module/features/feedback/components/index.js +1 -1
  50. package/dist/module/features/feedback/components/index.js.map +1 -1
  51. package/dist/module/features/feedback/constants.js +0 -16
  52. package/dist/module/features/feedback/constants.js.map +1 -1
  53. package/dist/module/features/feedback/helpers.js +20 -62
  54. package/dist/module/features/feedback/helpers.js.map +1 -1
  55. package/dist/module/features/feedback/index.js +2 -2
  56. package/dist/module/features/feedback/index.js.map +1 -1
  57. package/dist/module/features/feedback/model/api.js +10 -0
  58. package/dist/module/features/feedback/model/api.js.map +1 -0
  59. package/dist/module/features/feedback/model/comments.js +83 -0
  60. package/dist/module/features/feedback/model/comments.js.map +1 -0
  61. package/dist/module/features/feedback/model/model.js +99 -0
  62. package/dist/module/features/feedback/model/model.js.map +1 -0
  63. package/dist/module/features/feedback/model/sockets.js +20 -0
  64. package/dist/module/features/feedback/model/sockets.js.map +1 -0
  65. package/dist/module/features/feedback/types.js +8 -0
  66. package/dist/module/features/feedback/types.js.map +1 -0
  67. package/dist/module/lib/helpers/helpers.js +22 -0
  68. package/dist/module/lib/helpers/helpers.js.map +1 -1
  69. package/dist/module/shared/translation/constants.js +41 -0
  70. package/dist/module/shared/translation/constants.js.map +1 -1
  71. package/dist/typescript/commonjs/features/feedback/assets/icons/MessageBubbleIcon.d.ts.map +1 -0
  72. package/dist/typescript/commonjs/features/feedback/assets/icons/XCloseIcon.d.ts.map +1 -0
  73. package/dist/typescript/commonjs/features/feedback/components/{EmptyComment/EmptyComment.d.ts → EmptyComment.d.ts} +1 -1
  74. package/dist/typescript/commonjs/features/feedback/components/EmptyComment.d.ts.map +1 -0
  75. package/dist/typescript/commonjs/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -0
  76. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedback.d.ts +6 -2
  77. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
  78. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +2 -2
  79. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  80. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts +3 -2
  81. package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
  82. package/dist/typescript/commonjs/features/feedback/components/index.d.ts +1 -1
  83. package/dist/typescript/commonjs/features/feedback/components/index.d.ts.map +1 -1
  84. package/dist/typescript/commonjs/features/feedback/constants.d.ts +0 -14
  85. package/dist/typescript/commonjs/features/feedback/constants.d.ts.map +1 -1
  86. package/dist/typescript/commonjs/features/feedback/helpers.d.ts +9 -2
  87. package/dist/typescript/commonjs/features/feedback/helpers.d.ts.map +1 -1
  88. package/dist/typescript/commonjs/features/feedback/index.d.ts +2 -2
  89. package/dist/typescript/commonjs/features/feedback/index.d.ts.map +1 -1
  90. package/dist/typescript/commonjs/features/feedback/model/api.d.ts +9 -0
  91. package/dist/typescript/commonjs/features/feedback/model/api.d.ts.map +1 -0
  92. package/dist/typescript/commonjs/features/feedback/model/comments.d.ts +16 -0
  93. package/dist/typescript/commonjs/features/feedback/model/comments.d.ts.map +1 -0
  94. package/dist/typescript/commonjs/features/feedback/model/model.d.ts +27 -0
  95. package/dist/typescript/commonjs/features/feedback/model/model.d.ts.map +1 -0
  96. package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts +10 -0
  97. package/dist/typescript/commonjs/features/feedback/model/sockets.d.ts.map +1 -0
  98. package/dist/typescript/commonjs/features/feedback/types.d.ts +40 -0
  99. package/dist/typescript/commonjs/features/feedback/types.d.ts.map +1 -0
  100. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts +2 -0
  101. package/dist/typescript/commonjs/lib/helpers/helpers.d.ts.map +1 -1
  102. package/dist/typescript/commonjs/shared/translation/constants.d.ts +41 -0
  103. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  104. package/dist/typescript/module/features/feedback/assets/icons/MessageBubbleIcon.d.ts.map +1 -0
  105. package/dist/typescript/module/features/feedback/assets/icons/XCloseIcon.d.ts.map +1 -0
  106. package/dist/typescript/module/features/feedback/components/{EmptyComment/EmptyComment.d.ts → EmptyComment.d.ts} +1 -1
  107. package/dist/typescript/module/features/feedback/components/EmptyComment.d.ts.map +1 -0
  108. package/dist/typescript/module/features/feedback/components/ListCardCommentsCount.d.ts.map +1 -0
  109. package/dist/typescript/module/features/feedback/components/TeacherFeedback.d.ts +6 -2
  110. package/dist/typescript/module/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
  111. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +2 -2
  112. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
  113. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts +3 -2
  114. package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
  115. package/dist/typescript/module/features/feedback/components/index.d.ts +1 -1
  116. package/dist/typescript/module/features/feedback/components/index.d.ts.map +1 -1
  117. package/dist/typescript/module/features/feedback/constants.d.ts +0 -14
  118. package/dist/typescript/module/features/feedback/constants.d.ts.map +1 -1
  119. package/dist/typescript/module/features/feedback/helpers.d.ts +9 -2
  120. package/dist/typescript/module/features/feedback/helpers.d.ts.map +1 -1
  121. package/dist/typescript/module/features/feedback/index.d.ts +2 -2
  122. package/dist/typescript/module/features/feedback/index.d.ts.map +1 -1
  123. package/dist/typescript/module/features/feedback/model/api.d.ts +9 -0
  124. package/dist/typescript/module/features/feedback/model/api.d.ts.map +1 -0
  125. package/dist/typescript/module/features/feedback/model/comments.d.ts +16 -0
  126. package/dist/typescript/module/features/feedback/model/comments.d.ts.map +1 -0
  127. package/dist/typescript/module/features/feedback/model/model.d.ts +27 -0
  128. package/dist/typescript/module/features/feedback/model/model.d.ts.map +1 -0
  129. package/dist/typescript/module/features/feedback/model/sockets.d.ts +10 -0
  130. package/dist/typescript/module/features/feedback/model/sockets.d.ts.map +1 -0
  131. package/dist/typescript/module/features/feedback/types.d.ts +40 -0
  132. package/dist/typescript/module/features/feedback/types.d.ts.map +1 -0
  133. package/dist/typescript/module/lib/helpers/helpers.d.ts +2 -0
  134. package/dist/typescript/module/lib/helpers/helpers.d.ts.map +1 -1
  135. package/dist/typescript/module/shared/translation/constants.d.ts +41 -0
  136. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  137. package/package.json +1 -1
  138. package/src/features/feedback/components/{EmptyComment/EmptyComment.tsx → EmptyComment.tsx} +3 -3
  139. package/src/features/feedback/components/{ListCardCommentsCount/ListCardCommentsCount.tsx → ListCardCommentsCount.tsx} +2 -2
  140. package/src/features/feedback/components/TeacherFeedback.tsx +21 -11
  141. package/src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx +2 -2
  142. package/src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx +10 -4
  143. package/src/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.tsx +4 -3
  144. package/src/features/feedback/components/index.ts +1 -1
  145. package/src/features/feedback/constants.ts +2 -18
  146. package/src/features/feedback/helpers.ts +27 -60
  147. package/src/features/feedback/index.ts +2 -2
  148. package/src/features/feedback/model/api.ts +13 -0
  149. package/src/features/feedback/model/comments.ts +82 -0
  150. package/src/features/feedback/model/model.ts +102 -0
  151. package/src/features/feedback/model/sockets.ts +22 -0
  152. package/src/features/feedback/types.ts +42 -0
  153. package/src/lib/helpers/helpers.ts +26 -0
  154. package/src/shared/translation/constants.ts +45 -3
  155. package/dist/commonjs/features/feedback/components/EmptyComment/EmptyComment.js.map +0 -1
  156. package/dist/commonjs/features/feedback/components/ListCardCommentsCount/ListCardCommentsCount.js.map +0 -1
  157. package/dist/commonjs/features/feedback/components/icons/MessageBubbleIcon.js.map +0 -1
  158. package/dist/commonjs/features/feedback/components/icons/XCloseIcon.js.map +0 -1
  159. package/dist/commonjs/features/feedback/model/teacherFeedback.model.js +0 -211
  160. package/dist/commonjs/features/feedback/model/teacherFeedback.model.js.map +0 -1
  161. package/dist/commonjs/features/feedback/types/teacherFeedback.types.js +0 -18
  162. package/dist/commonjs/features/feedback/types/teacherFeedback.types.js.map +0 -1
  163. package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js.map +0 -1
  164. package/dist/module/features/feedback/components/ListCardCommentsCount/ListCardCommentsCount.js.map +0 -1
  165. package/dist/module/features/feedback/components/icons/MessageBubbleIcon.js.map +0 -1
  166. package/dist/module/features/feedback/components/icons/XCloseIcon.js.map +0 -1
  167. package/dist/module/features/feedback/model/teacherFeedback.model.js +0 -206
  168. package/dist/module/features/feedback/model/teacherFeedback.model.js.map +0 -1
  169. package/dist/module/features/feedback/types/teacherFeedback.types.js +0 -14
  170. package/dist/module/features/feedback/types/teacherFeedback.types.js.map +0 -1
  171. package/dist/typescript/commonjs/features/feedback/components/EmptyComment/EmptyComment.d.ts.map +0 -1
  172. package/dist/typescript/commonjs/features/feedback/components/ListCardCommentsCount/ListCardCommentsCount.d.ts.map +0 -1
  173. package/dist/typescript/commonjs/features/feedback/components/icons/MessageBubbleIcon.d.ts.map +0 -1
  174. package/dist/typescript/commonjs/features/feedback/components/icons/XCloseIcon.d.ts.map +0 -1
  175. package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts +0 -45
  176. package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts.map +0 -1
  177. package/dist/typescript/commonjs/features/feedback/types/teacherFeedback.types.d.ts +0 -33
  178. package/dist/typescript/commonjs/features/feedback/types/teacherFeedback.types.d.ts.map +0 -1
  179. package/dist/typescript/module/features/feedback/components/EmptyComment/EmptyComment.d.ts.map +0 -1
  180. package/dist/typescript/module/features/feedback/components/ListCardCommentsCount/ListCardCommentsCount.d.ts.map +0 -1
  181. package/dist/typescript/module/features/feedback/components/icons/MessageBubbleIcon.d.ts.map +0 -1
  182. package/dist/typescript/module/features/feedback/components/icons/XCloseIcon.d.ts.map +0 -1
  183. package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts +0 -45
  184. package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts.map +0 -1
  185. package/dist/typescript/module/features/feedback/types/teacherFeedback.types.d.ts +0 -33
  186. package/dist/typescript/module/features/feedback/types/teacherFeedback.types.d.ts.map +0 -1
  187. package/src/features/feedback/model/teacherFeedback.model.ts +0 -268
  188. package/src/features/feedback/types/teacherFeedback.types.ts +0 -32
  189. /package/dist/commonjs/features/feedback/{components → assets}/icons/MessageBubbleIcon.js +0 -0
  190. /package/dist/commonjs/features/feedback/{components → assets}/icons/XCloseIcon.js +0 -0
  191. /package/dist/module/features/feedback/{components → assets}/icons/MessageBubbleIcon.js +0 -0
  192. /package/dist/module/features/feedback/{components → assets}/icons/XCloseIcon.js +0 -0
  193. /package/dist/typescript/commonjs/features/feedback/{components → assets}/icons/MessageBubbleIcon.d.ts +0 -0
  194. /package/dist/typescript/commonjs/features/feedback/{components → assets}/icons/XCloseIcon.d.ts +0 -0
  195. /package/dist/typescript/commonjs/features/feedback/components/{ListCardCommentsCount/ListCardCommentsCount.d.ts → ListCardCommentsCount.d.ts} +0 -0
  196. /package/dist/typescript/module/features/feedback/{components → assets}/icons/MessageBubbleIcon.d.ts +0 -0
  197. /package/dist/typescript/module/features/feedback/{components → assets}/icons/XCloseIcon.d.ts +0 -0
  198. /package/dist/typescript/module/features/feedback/components/{ListCardCommentsCount/ListCardCommentsCount.d.ts → ListCardCommentsCount.d.ts} +0 -0
  199. /package/src/features/feedback/{components → assets}/icons/MessageBubbleIcon.tsx +0 -0
  200. /package/src/features/feedback/{components → assets}/icons/XCloseIcon.tsx +0 -0
@@ -1,65 +1,23 @@
1
1
  "use strict";
2
2
 
3
- import { Locale } from "./types/teacherFeedback.types.js";
4
- const RELATIVE_TIME_LABELS = {
5
- [Locale.US]: {
6
- justNow: 'just now',
7
- minuteAgo: 'minute ago',
8
- minutesAgo: 'minutes ago',
9
- hourAgo: 'hour ago',
10
- hoursAgo: 'hours ago',
11
- dayAgo: 'day ago',
12
- daysAgo: 'days ago',
13
- monthAgo: 'month ago',
14
- monthsAgo: 'months ago',
15
- yearAgo: 'year ago',
16
- yearsAgo: 'years ago'
17
- },
18
- [Locale.SV]: {
19
- justNow: 'alldeles nyss',
20
- minuteAgo: 'minut sedan',
21
- minutesAgo: 'minuter sedan',
22
- hourAgo: 'timme sedan',
23
- hoursAgo: 'timmar sedan',
24
- dayAgo: 'dag sedan',
25
- daysAgo: 'dagar sedan',
26
- monthAgo: 'månad sedan',
27
- monthsAgo: 'månader sedan',
28
- yearAgo: 'år sedan',
29
- yearsAgo: 'år sedan'
30
- },
31
- [Locale.GB]: {
32
- justNow: 'just now',
33
- minuteAgo: 'minute ago',
34
- minutesAgo: 'minutes ago',
35
- hourAgo: 'hour ago',
36
- hoursAgo: 'hours ago',
37
- dayAgo: 'day ago',
38
- daysAgo: 'days ago',
39
- monthAgo: 'month ago',
40
- monthsAgo: 'months ago',
41
- yearAgo: 'year ago',
42
- yearsAgo: 'years ago'
43
- }
44
- };
45
- export const getRelativeTime = (date, lang) => {
46
- const t = RELATIVE_TIME_LABELS[lang] || RELATIVE_TIME_LABELS[Locale.US];
47
- const timeBufferMs = 2000; // adds 2 seconds time buffer because when used with sockets, it displayed -1 seconds ago, instead of 1 second ago.
48
-
49
- const now = new Date().getTime();
50
- const targetDate = new Date(date).getTime() - timeBufferMs;
51
- const diffTime = now - targetDate;
52
- const seconds = Math.floor(diffTime / 1000);
53
- const minutes = Math.floor(seconds / 60);
54
- const hours = Math.floor(minutes / 60);
55
- const days = Math.floor(hours / 24);
56
- const months = Math.floor(days / 30);
57
- const years = Math.floor(days / 365);
58
- if (seconds < 60) return t.justNow;
59
- if (minutes < 60) return `${minutes} ${minutes === 1 ? t.minuteAgo : t.minutesAgo}`;
60
- if (hours < 24) return `${hours} ${hours === 1 ? t.hourAgo : t.hoursAgo}`;
61
- if (days < 30) return `${days} ${days === 1 ? t.dayAgo : t.daysAgo}`;
62
- if (months < 12) return `${months} ${months === 1 ? t.monthAgo : t.monthsAgo}`;
63
- return `${years} ${years === 1 ? t.yearAgo : t.yearsAgo}`;
64
- };
3
+ export function generateCommentsMap(assignmentId, data) {
4
+ const problemsMap = Object.entries(data).reduce((acc, [problemId, feedback]) => {
5
+ const unreadMessages = feedback.comments.filter(({
6
+ isRead
7
+ }) => !isRead);
8
+ acc[problemId] = {
9
+ comments: feedback.comments,
10
+ unreadMessagesCount: unreadMessages.length
11
+ };
12
+ return acc;
13
+ }, {});
14
+ return new Map().set(assignmentId, problemsMap);
15
+ }
16
+ export function findCommentsByCredits({
17
+ data,
18
+ assignmentId,
19
+ problemId
20
+ }) {
21
+ return data?.get(assignmentId)?.[problemId]?.comments ?? [];
22
+ }
65
23
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Locale","RELATIVE_TIME_LABELS","US","justNow","minuteAgo","minutesAgo","hourAgo","hoursAgo","dayAgo","daysAgo","monthAgo","monthsAgo","yearAgo","yearsAgo","SV","GB","getRelativeTime","date","lang","t","timeBufferMs","now","Date","getTime","targetDate","diffTime","seconds","Math","floor","minutes","hours","days","months","years"],"sourceRoot":"../../../../src","sources":["features/feedback/helpers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["generateCommentsMap","assignmentId","data","problemsMap","Object","entries","reduce","acc","problemId","feedback","unreadMessages","comments","filter","isRead","unreadMessagesCount","length","Map","set","findCommentsByCredits","get"],"sourceRoot":"../../../../src","sources":["features/feedback/helpers.ts"],"mappings":";;AAEA,OAAO,SAASA,mBAAmBA,CAACC,YAAoB,EAAEC,IAAyB,EAAe;EAChG,MAAMC,WAAW,GAAGC,MAAM,CAACC,OAAO,CAACH,IAAI,CAAC,CAACI,MAAM,CAC7C,CAACC,GAAG,EAAE,CAACC,SAAS,EAAEC,QAAQ,CAAC,KAAK;IAC9B,MAAMC,cAAc,GAAGD,QAAQ,CAACE,QAAQ,CAACC,MAAM,CAAC,CAAC;MAAEC;IAAO,CAAC,KAAK,CAACA,MAAM,CAAC;IAExEN,GAAG,CAACC,SAAS,CAAC,GAAG;MACfG,QAAQ,EAAEF,QAAQ,CAACE,QAAQ;MAC3BG,mBAAmB,EAAEJ,cAAc,CAACK;IACtC,CAAC;IAED,OAAOR,GAAG;EACZ,CAAC,EACD,CAAC,CACH,CAAC;EAED,OAAO,IAAIS,GAAG,CAAC,CAAC,CAACC,GAAG,CAAChB,YAAY,EAAEE,WAAW,CAAC;AACjD;AAQA,OAAO,SAASe,qBAAqBA,CAAC;EACpChB,IAAI;EACJD,YAAY;EACZO;AAC0B,CAAC,EAAE;EAC7B,OAAON,IAAI,EAAEiB,GAAG,CAAClB,YAAY,CAAC,GAAGO,SAAS,CAAC,EAAEG,QAAQ,IAAI,EAAE;AAC7D","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
- export * from "./model/teacherFeedback.model.js";
4
- export * from "./types/teacherFeedback.types.js";
3
+ export * from "./model/model.js";
4
+ export * from "./types.js";
5
5
  export * from "./constants.js";
6
6
  export * from "./components/index.js";
7
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["features/feedback/index.ts"],"mappings":";;AAAA,cAAc,kCAA+B;AAC7C,cAAc,kCAA+B;AAC7C,cAAc,gBAAa;AAC3B,cAAc,uBAAc","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["features/feedback/index.ts"],"mappings":";;AAAA,cAAc,kBAAe;AAC7B,cAAc,YAAS;AACvB,cAAc,gBAAa;AAC3B,cAAc,uBAAc","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { createEffect } from 'effector';
4
+ export class TeacherFeedbackAPI {
5
+ constructor(api) {
6
+ this.getCommentsFx = createEffect(api.getComments);
7
+ this.updateCommentStatusSeenFx = createEffect(api.updateCommentStatusSeen);
8
+ }
9
+ }
10
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEffect","TeacherFeedbackAPI","constructor","api","getCommentsFx","getComments","updateCommentStatusSeenFx","updateCommentStatusSeen"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/api.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAgB,UAAU;AAI/C,OAAO,MAAMC,kBAAkB,CAAC;EAI9BC,WAAWA,CAACC,GAAqC,EAAE;IACjD,IAAI,CAACC,aAAa,GAAGJ,YAAY,CAACG,GAAG,CAACE,WAAW,CAAC;IAClD,IAAI,CAACC,yBAAyB,GAAGN,YAAY,CAACG,GAAG,CAACI,uBAAuB,CAAC;EAC5E;AACF","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ import { createEvent, restore, sample } from 'effector';
4
+ export class TeacherComments {
5
+ setAllCommentsRead = createEvent();
6
+ addComment = createEvent();
7
+ deleteComment = createEvent();
8
+ setData = createEvent();
9
+ $data = restore(this.setData, null).on(this.setAllCommentsRead, (state, {
10
+ assignmentId,
11
+ problemId
12
+ }) => this.update({
13
+ state,
14
+ assignmentId,
15
+ problemId,
16
+ fn: data => ({
17
+ comments: data.comments.map(comment => ({
18
+ ...comment,
19
+ isRead: true
20
+ })),
21
+ unreadMessagesCount: 0
22
+ })
23
+ })).on(this.addComment, (state, {
24
+ assignmentId,
25
+ problemId,
26
+ comment,
27
+ isRead
28
+ }) => this.update({
29
+ state,
30
+ assignmentId,
31
+ problemId,
32
+ fn: data => ({
33
+ comments: [...data.comments, comment],
34
+ unreadMessagesCount: isRead ? data.unreadMessagesCount : data.unreadMessagesCount + 1
35
+ })
36
+ })).on(this.deleteComment, (state, {
37
+ assignmentId,
38
+ problemId,
39
+ commentId
40
+ }) => this.update({
41
+ state,
42
+ assignmentId,
43
+ problemId,
44
+ fn: data => {
45
+ const commentToDelete = data.comments.find(({
46
+ _id
47
+ }) => _id === commentId);
48
+ if (!commentToDelete) return data;
49
+ return {
50
+ comments: data.comments.filter(({
51
+ _id
52
+ }) => _id !== commentId),
53
+ unreadMessagesCount: commentToDelete.isRead ? data.unreadMessagesCount : data.unreadMessagesCount - 1
54
+ };
55
+ }
56
+ }));
57
+ constructor() {
58
+ sample({
59
+ clock: this.deleteComment
60
+ });
61
+ }
62
+ update({
63
+ state,
64
+ assignmentId,
65
+ problemId,
66
+ fn
67
+ }) {
68
+ if (!state) return state;
69
+ const updatedState = new Map(state);
70
+ const assignmentMap = updatedState.get(assignmentId) || {};
71
+ const currentData = assignmentMap[problemId];
72
+ const updatedData = fn(currentData);
73
+ if (updatedData === undefined) {
74
+ delete assignmentMap[problemId];
75
+ if (Object.keys(assignmentMap).length === 0) updatedState.delete(assignmentId);
76
+ return updatedState;
77
+ }
78
+ assignmentMap[problemId] = updatedData;
79
+ updatedState.set(assignmentId, assignmentMap);
80
+ return updatedState;
81
+ }
82
+ }
83
+ //# sourceMappingURL=comments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEvent","restore","sample","TeacherComments","setAllCommentsRead","addComment","deleteComment","setData","$data","on","state","assignmentId","problemId","update","fn","data","comments","map","comment","isRead","unreadMessagesCount","commentId","commentToDelete","find","_id","filter","constructor","clock","updatedState","Map","assignmentMap","get","currentData","updatedData","undefined","Object","keys","length","delete","set"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/comments.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import { createEvent, restore, sample } from 'effector';
4
+ import { TeacherFeedbackAPI } from "./api.js";
5
+ import { TeacherFeedbackSockets } from "./sockets.js";
6
+ import { TeacherComments } from "./comments.js";
7
+ import { findCommentsByCredits, generateCommentsMap } from "../helpers.js";
8
+ export class TeacherFeedbackModel {
9
+ setIsOpen = createEvent();
10
+ $isOpen = restore(this.setIsOpen, false);
11
+ constructor({
12
+ api,
13
+ socket,
14
+ credits
15
+ }) {
16
+ this.api = new TeacherFeedbackAPI(api);
17
+ this.sockets = new TeacherFeedbackSockets(socket);
18
+ this.comments = new TeacherComments();
19
+ sample({
20
+ clock: credits.$problemId,
21
+ fn: () => false,
22
+ target: this.setIsOpen
23
+ });
24
+ sample({
25
+ clock: this.setIsOpen,
26
+ source: {
27
+ data: this.comments.$data,
28
+ assignmentId: credits.$assignmentId,
29
+ problemId: credits.$problemId
30
+ },
31
+ filter: (source, isOpen) => {
32
+ const comments = findCommentsByCredits(source);
33
+ const hasUnreadComments = comments.some(({
34
+ isRead
35
+ }) => !isRead);
36
+ return isOpen && hasUnreadComments;
37
+ },
38
+ fn: source => {
39
+ const comments = findCommentsByCredits(source);
40
+ return {
41
+ ids: comments.map(({
42
+ _id
43
+ }) => _id)
44
+ };
45
+ },
46
+ target: this.api.updateCommentStatusSeenFx
47
+ });
48
+ sample({
49
+ clock: this.api.updateCommentStatusSeenFx.pending,
50
+ source: {
51
+ assignmentId: credits.$assignmentId,
52
+ problemId: credits.$problemId
53
+ },
54
+ target: this.comments.setAllCommentsRead
55
+ });
56
+ sample({
57
+ clock: this.api.getCommentsFx.done,
58
+ fn: ({
59
+ params,
60
+ result
61
+ }) => generateCommentsMap(params.id, result),
62
+ target: this.comments.setData
63
+ });
64
+ sample({
65
+ clock: this.sockets.commentDeleted,
66
+ source: {
67
+ assignmentId: credits.$assignmentId
68
+ },
69
+ fn: ({
70
+ assignmentId
71
+ }, comment) => ({
72
+ assignmentId,
73
+ problemId: comment.problemId,
74
+ commentId: comment._id
75
+ }),
76
+ target: this.comments.deleteComment
77
+ });
78
+ sample({
79
+ clock: this.sockets.commentAdded,
80
+ source: {
81
+ assignmentId: credits.$assignmentId,
82
+ problemId: credits.$problemId,
83
+ isOpen: this.$isOpen
84
+ },
85
+ fn: ({
86
+ assignmentId,
87
+ problemId,
88
+ isOpen
89
+ }, comment) => ({
90
+ assignmentId,
91
+ problemId,
92
+ comment,
93
+ isRead: isOpen && comment.problemId === problemId
94
+ }),
95
+ target: this.comments.addComment
96
+ });
97
+ }
98
+ }
99
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEvent","restore","sample","TeacherFeedbackAPI","TeacherFeedbackSockets","TeacherComments","findCommentsByCredits","generateCommentsMap","TeacherFeedbackModel","setIsOpen","$isOpen","constructor","api","socket","credits","sockets","comments","clock","$problemId","fn","target","source","data","$data","assignmentId","$assignmentId","problemId","filter","isOpen","hasUnreadComments","some","isRead","ids","map","_id","updateCommentStatusSeenFx","pending","setAllCommentsRead","getCommentsFx","done","params","result","id","setData","commentDeleted","comment","commentId","deleteComment","commentAdded","addComment"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/model.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ import { createEvent } from 'effector';
4
+ import { FeedbackSocketEvents } from "../types.js";
5
+ export class TeacherFeedbackSockets {
6
+ commentAdded = createEvent();
7
+ commentDeleted = createEvent();
8
+ constructor(socket) {
9
+ this.socket = socket;
10
+ }
11
+ connect() {
12
+ this.socket.on(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded);
13
+ this.socket.on(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted);
14
+ }
15
+ off() {
16
+ this.socket.off(FeedbackSocketEvents.COMMENT_ADDED, this.commentAdded);
17
+ this.socket.off(FeedbackSocketEvents.COMMENT_DELETED, this.commentDeleted);
18
+ }
19
+ }
20
+ //# sourceMappingURL=sockets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createEvent","FeedbackSocketEvents","TeacherFeedbackSockets","commentAdded","commentDeleted","constructor","socket","connect","on","COMMENT_ADDED","COMMENT_DELETED","off"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/sockets.ts"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,UAAU;AACtC,SAAyBC,oBAAoB,QAAQ,aAAU;AAE/D,OAAO,MAAMC,sBAAsB,CAAC;EAElBC,YAAY,GAAGH,WAAW,CAAiB,CAAC;EAC5CI,cAAc,GAAGJ,WAAW,CAAiB,CAAC;EAE9DK,WAAWA,CAACC,MAAW,EAAE;IACvB,IAAI,CAACA,MAAM,GAAGA,MAAM;EACtB;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACD,MAAM,CAACE,EAAE,CAACP,oBAAoB,CAACQ,aAAa,EAAE,IAAI,CAACN,YAAY,CAAC;IACrE,IAAI,CAACG,MAAM,CAACE,EAAE,CAACP,oBAAoB,CAACS,eAAe,EAAE,IAAI,CAACN,cAAc,CAAC;EAC3E;EAEAO,GAAGA,CAAA,EAAG;IACJ,IAAI,CAACL,MAAM,CAACK,GAAG,CAACV,oBAAoB,CAACQ,aAAa,EAAE,IAAI,CAACN,YAAY,CAAC;IACtE,IAAI,CAACG,MAAM,CAACK,GAAG,CAACV,oBAAoB,CAACS,eAAe,EAAE,IAAI,CAACN,cAAc,CAAC;EAC5E;AACF","ignoreList":[]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ export let FeedbackSocketEvents = /*#__PURE__*/function (FeedbackSocketEvents) {
4
+ FeedbackSocketEvents["COMMENT_ADDED"] = "exerciseCommentCreated";
5
+ FeedbackSocketEvents["COMMENT_DELETED"] = "exerciseCommentDeleted";
6
+ return FeedbackSocketEvents;
7
+ }({});
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FeedbackSocketEvents"],"sourceRoot":"../../../../src","sources":["features/feedback/types.ts"],"mappings":";;AAsCA,WAAYA,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA","ignoreList":[]}
@@ -1,4 +1,26 @@
1
1
  "use strict";
2
2
 
3
+ import { RELATIVE_TIME_LABELS } from "../../shared/translation/constants.js";
4
+ import { Locale } from '@magmamath/students-features';
3
5
  export const generateRandomId = () => Date.now().toString(36) + Math.random().toString(36).substring(2);
6
+ export const getRelativeTimeText = (date, lang) => {
7
+ const t = RELATIVE_TIME_LABELS[lang] || RELATIVE_TIME_LABELS[Locale.EN];
8
+ const timeBufferMs = 2000; // adds 2 seconds time buffer because when used with sockets, it displayed -1 seconds ago, instead of 1 second ago.
9
+
10
+ const now = new Date().getTime();
11
+ const targetDate = new Date(date).getTime() - timeBufferMs;
12
+ const diffTime = now - targetDate;
13
+ const seconds = Math.floor(diffTime / 1000);
14
+ const minutes = Math.floor(seconds / 60);
15
+ const hours = Math.floor(minutes / 60);
16
+ const days = Math.floor(hours / 24);
17
+ const months = Math.floor(days / 30);
18
+ const years = Math.floor(days / 365);
19
+ if (seconds < 60) return t.justNow;
20
+ if (minutes < 60) return `${minutes} ${minutes === 1 ? t.minuteAgo : t.minutesAgo}`;
21
+ if (hours < 24) return `${hours} ${hours === 1 ? t.hourAgo : t.hoursAgo}`;
22
+ if (days < 30) return `${days} ${days === 1 ? t.dayAgo : t.daysAgo}`;
23
+ if (months < 12) return `${months} ${months === 1 ? t.monthAgo : t.monthsAgo}`;
24
+ return `${years} ${years === 1 ? t.yearAgo : t.yearsAgo}`;
25
+ };
4
26
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateRandomId","Date","now","toString","Math","random","substring"],"sourceRoot":"../../../../src","sources":["lib/helpers/helpers.ts"],"mappings":";;AAAA,OAAO,MAAMA,gBAAgB,GAAGA,CAAA,KAC9BC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACF,QAAQ,CAAC,EAAE,CAAC,CAACG,SAAS,CAAC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["RELATIVE_TIME_LABELS","Locale","generateRandomId","Date","now","toString","Math","random","substring","getRelativeTimeText","date","lang","t","EN","timeBufferMs","getTime","targetDate","diffTime","seconds","floor","minutes","hours","days","months","years","justNow","minuteAgo","minutesAgo","hourAgo","hoursAgo","dayAgo","daysAgo","monthAgo","monthsAgo","yearAgo","yearsAgo"],"sourceRoot":"../../../../src","sources":["lib/helpers/helpers.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,uCAAoC;AACzE,SAASC,MAAM,QAAQ,8BAA8B;AAErD,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAC9BC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAC,CAACF,QAAQ,CAAC,EAAE,CAAC,CAACG,SAAS,CAAC,CAAC,CAAC;AAEnE,OAAO,MAAMC,mBAAmB,GAAGA,CAACC,IAAU,EAAEC,IAAY,KAAK;EAC/D,MAAMC,CAAC,GAAGZ,oBAAoB,CAACW,IAAI,CAAC,IAAIX,oBAAoB,CAACC,MAAM,CAACY,EAAE,CAAC;EACvE,MAAMC,YAAY,GAAG,IAAI,EAAC;;EAE1B,MAAMV,GAAG,GAAG,IAAID,IAAI,CAAC,CAAC,CAACY,OAAO,CAAC,CAAC;EAChC,MAAMC,UAAU,GAAG,IAAIb,IAAI,CAACO,IAAI,CAAC,CAACK,OAAO,CAAC,CAAC,GAAGD,YAAY;EAC1D,MAAMG,QAAQ,GAAGb,GAAG,GAAGY,UAAU;EAEjC,MAAME,OAAO,GAAGZ,IAAI,CAACa,KAAK,CAACF,QAAQ,GAAG,IAAI,CAAC;EAC3C,MAAMG,OAAO,GAAGd,IAAI,CAACa,KAAK,CAACD,OAAO,GAAG,EAAE,CAAC;EACxC,MAAMG,KAAK,GAAGf,IAAI,CAACa,KAAK,CAACC,OAAO,GAAG,EAAE,CAAC;EACtC,MAAME,IAAI,GAAGhB,IAAI,CAACa,KAAK,CAACE,KAAK,GAAG,EAAE,CAAC;EACnC,MAAME,MAAM,GAAGjB,IAAI,CAACa,KAAK,CAACG,IAAI,GAAG,EAAE,CAAC;EACpC,MAAME,KAAK,GAAGlB,IAAI,CAACa,KAAK,CAACG,IAAI,GAAG,GAAG,CAAC;EAEpC,IAAIJ,OAAO,GAAG,EAAE,EAAE,OAAON,CAAC,CAACa,OAAO;EAClC,IAAIL,OAAO,GAAG,EAAE,EAAE,OAAO,GAAGA,OAAO,IAAIA,OAAO,KAAK,CAAC,GAAGR,CAAC,CAACc,SAAS,GAAGd,CAAC,CAACe,UAAU,EAAE;EACnF,IAAIN,KAAK,GAAG,EAAE,EAAE,OAAO,GAAGA,KAAK,IAAIA,KAAK,KAAK,CAAC,GAAGT,CAAC,CAACgB,OAAO,GAAGhB,CAAC,CAACiB,QAAQ,EAAE;EACzE,IAAIP,IAAI,GAAG,EAAE,EAAE,OAAO,GAAGA,IAAI,IAAIA,IAAI,KAAK,CAAC,GAAGV,CAAC,CAACkB,MAAM,GAAGlB,CAAC,CAACmB,OAAO,EAAE;EACpE,IAAIR,MAAM,GAAG,EAAE,EAAE,OAAO,GAAGA,MAAM,IAAIA,MAAM,KAAK,CAAC,GAAGX,CAAC,CAACoB,QAAQ,GAAGpB,CAAC,CAACqB,SAAS,EAAE;EAC9E,OAAO,GAAGT,KAAK,IAAIA,KAAK,KAAK,CAAC,GAAGZ,CAAC,CAACsB,OAAO,GAAGtB,CAAC,CAACuB,QAAQ,EAAE;AAC3D,CAAC","ignoreList":[]}
@@ -9,4 +9,45 @@ export const LOCALIZATION_CONFIGS = {
9
9
  [Locale.GB]: GB,
10
10
  [Locale.SW]: SW
11
11
  };
12
+ export const RELATIVE_TIME_LABELS = {
13
+ [Locale.EN]: {
14
+ justNow: 'just now',
15
+ minuteAgo: 'minute ago',
16
+ minutesAgo: 'minutes ago',
17
+ hourAgo: 'hour ago',
18
+ hoursAgo: 'hours ago',
19
+ dayAgo: 'day ago',
20
+ daysAgo: 'days ago',
21
+ monthAgo: 'month ago',
22
+ monthsAgo: 'months ago',
23
+ yearAgo: 'year ago',
24
+ yearsAgo: 'years ago'
25
+ },
26
+ [Locale.SW]: {
27
+ justNow: 'alldeles nyss',
28
+ minuteAgo: 'minut sedan',
29
+ minutesAgo: 'minuter sedan',
30
+ hourAgo: 'timme sedan',
31
+ hoursAgo: 'timmar sedan',
32
+ dayAgo: 'dag sedan',
33
+ daysAgo: 'dagar sedan',
34
+ monthAgo: 'månad sedan',
35
+ monthsAgo: 'månader sedan',
36
+ yearAgo: 'år sedan',
37
+ yearsAgo: 'år sedan'
38
+ },
39
+ [Locale.GB]: {
40
+ justNow: 'just now',
41
+ minuteAgo: 'minute ago',
42
+ minutesAgo: 'minutes ago',
43
+ hourAgo: 'hour ago',
44
+ hoursAgo: 'hours ago',
45
+ dayAgo: 'day ago',
46
+ daysAgo: 'days ago',
47
+ monthAgo: 'month ago',
48
+ monthsAgo: 'months ago',
49
+ yearAgo: 'year ago',
50
+ yearsAgo: 'years ago'
51
+ }
52
+ };
12
53
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Locale","EN","GB","SW","LOCALIZATION_CONFIGS"],"sourceRoot":"../../../../src","sources":["shared/translation/constants.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,YAAS;AAChC,OAAOC,EAAE,MAAM,gCAAgC;AAC/C,OAAOC,EAAE,MAAM,gCAAgC;AAC/C,OAAOC,EAAE,MAAM,gCAAgC;AAE/C,OAAO,MAAMC,oBAAoB,GAAG;EAChC,CAACJ,MAAM,CAACC,EAAE,GAAGA,EAAE;EACf,CAACD,MAAM,CAACE,EAAE,GAAGA,EAAE;EACf,CAACF,MAAM,CAACG,EAAE,GAAGA;AACjB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["Locale","EN","GB","SW","LOCALIZATION_CONFIGS","RELATIVE_TIME_LABELS","justNow","minuteAgo","minutesAgo","hourAgo","hoursAgo","dayAgo","daysAgo","monthAgo","monthsAgo","yearAgo","yearsAgo"],"sourceRoot":"../../../../src","sources":["shared/translation/constants.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,YAAS;AAChC,OAAOC,EAAE,MAAM,gCAAgC;AAC/C,OAAOC,EAAE,MAAM,gCAAgC;AAC/C,OAAOC,EAAE,MAAM,gCAAgC;AAE/C,OAAO,MAAMC,oBAAoB,GAAG;EAClC,CAACJ,MAAM,CAACC,EAAE,GAAGA,EAAE;EACf,CAACD,MAAM,CAACE,EAAE,GAAGA,EAAE;EACf,CAACF,MAAM,CAACG,EAAE,GAAGA;AACf,CAAC;AAED,OAAO,MAAME,oBAAoB,GAAG;EAClC,CAACL,MAAM,CAACC,EAAE,GAAG;IACXK,OAAO,EAAE,UAAU;IACnBC,SAAS,EAAE,YAAY;IACvBC,UAAU,EAAE,aAAa;IACzBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE,WAAW;IACrBC,MAAM,EAAE,SAAS;IACjBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE,WAAW;IACrBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE;EACZ,CAAC;EACD,CAAChB,MAAM,CAACG,EAAE,GAAG;IACXG,OAAO,EAAE,eAAe;IACxBC,SAAS,EAAE,aAAa;IACxBC,UAAU,EAAE,eAAe;IAC3BC,OAAO,EAAE,aAAa;IACtBC,QAAQ,EAAE,cAAc;IACxBC,MAAM,EAAE,WAAW;IACnBC,OAAO,EAAE,aAAa;IACtBC,QAAQ,EAAE,aAAa;IACvBC,SAAS,EAAE,eAAe;IAC1BC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE;EACZ,CAAC;EACD,CAAChB,MAAM,CAACE,EAAE,GAAG;IACXI,OAAO,EAAE,UAAU;IACnBC,SAAS,EAAE,YAAY;IACvBC,UAAU,EAAE,aAAa;IACzBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE,WAAW;IACrBC,MAAM,EAAE,SAAS;IACjBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE,WAAW;IACrBC,SAAS,EAAE,YAAY;IACvBC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAE;EACZ;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageBubbleIcon.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/assets/icons/MessageBubbleIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAU,MAAM,4BAA4B,CAAA;AAE9D,eAAO,MAAM,iBAAiB,oBAA6C,SAAS,sBAWnF,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XCloseIcon.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/assets/icons/XCloseIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,SAAS,EAAU,MAAM,4BAA4B,CAAA;AAE9D,eAAO,MAAM,UAAU,oBAA6C,SAAS,sBAS5E,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Locale } from '../../types/teacherFeedback.types';
2
+ import { Locale } from '../../../shared/translation/types';
3
3
  type EmptyCommentProps = {
4
4
  locale: Locale | null;
5
5
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyComment.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/EmptyComment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAE1D,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,YAAY,eAAgB,iBAAiB,sBAMzD,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListCardCommentsCount.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/ListCardCommentsCount.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,KAAK,0BAA0B,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,qBAAqB,cAAe,0BAA0B,sBAO1E,CAAA"}
@@ -1,11 +1,15 @@
1
1
  import React from 'react';
2
- import { TeacherFeedbackModel } from '../model/teacherFeedback.model';
3
2
  import { FeedbackMode } from '../constants';
3
+ import { TeacherFeedbackModel } from '../model/model';
4
+ import { Locale } from '../../../shared/translation';
4
5
  type TeacherFeedbackProps = {
5
6
  model: TeacherFeedbackModel;
6
7
  mode: FeedbackMode;
8
+ locale: Locale;
9
+ assignmentId: string;
10
+ problemId: string;
7
11
  isExam: boolean;
8
12
  };
9
- export declare const TeacherFeedback: ({ model, mode, isExam }: TeacherFeedbackProps) => React.JSX.Element | null;
13
+ export declare const TeacherFeedback: ({ model, mode, assignmentId, problemId, locale, isExam, }: TeacherFeedbackProps) => React.JSX.Element | null;
10
14
  export {};
11
15
  //# sourceMappingURL=TeacherFeedback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeacherFeedback.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/TeacherFeedback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAA4C,YAAY,EAAE,MAAM,cAAc,CAAA;AAErF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,eAAe,4BAAqC,oBAAoB,6BA2BpF,CAAA"}
1
+ {"version":3,"file":"TeacherFeedback.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/TeacherFeedback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAA4C,YAAY,EAAE,MAAM,cAAc,CAAA;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAA;AAEpD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,eAAe,8DAOzB,oBAAoB,6BA0BtB,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { Locale } from '../../types/teacherFeedback.types';
2
+ import { Locale } from '@magmamath/students-features';
3
3
  type TeacherCommentProps = {
4
4
  content: string;
5
5
  teacherName: string;
@@ -7,6 +7,6 @@ type TeacherCommentProps = {
7
7
  locale: Locale | null;
8
8
  isLastComment: boolean;
9
9
  };
10
- export declare const TeacherComment: ({ content, teacherName, createdAt, locale, isLastComment }: TeacherCommentProps) => React.JSX.Element;
10
+ export declare const TeacherComment: ({ content, teacherName, createdAt, locale, isLastComment, }: TeacherCommentProps) => React.JSX.Element;
11
11
  export {};
12
12
  //# sourceMappingURL=TeacherComment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TeacherComment.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,cAAc,+DAAgE,mBAAmB,sBAkB7G,CAAA"}
1
+ {"version":3,"file":"TeacherComment.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAErD,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,cAAc,gEAMxB,mBAAmB,sBAkBrB,CAAA"}
@@ -1,8 +1,9 @@
1
1
  import React from 'react';
2
- import { Locale, TeacherComment as FeedbackComment } from '../../types/teacherFeedback.types';
3
2
  import { FeedbackMode } from '../../constants';
3
+ import { Locale } from '../../../../shared/translation';
4
+ import { TeacherComment as TeacherCommentEntity } from '../../types';
4
5
  type TeacherFeedbackCommentsProps = {
5
- comments: FeedbackComment[] | null;
6
+ comments: TeacherCommentEntity[] | null;
6
7
  locale: Locale | null;
7
8
  mode: FeedbackMode;
8
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"TeacherFeedbackComments.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,MAAM,EAAE,cAAc,IAAI,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAG7F,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAOhE,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,uBAAuB,gCAIjC,4BAA4B,6BAyC9B,CAAA"}
1
+ {"version":3,"file":"TeacherFeedbackComments.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAA;AAIhD,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAEhE,OAAO,EAAE,MAAM,EAAE,MAAM,gCAAgC,CAAA;AACvD,OAAO,EAAE,cAAc,IAAI,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAMpE,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAA;IACvC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,uBAAuB,gCAIjC,4BAA4B,6BAyC9B,CAAA"}
@@ -2,5 +2,5 @@ export { TeacherFeedbackComments } from './TeacherFeedbackComments/TeacherFeedba
2
2
  export { TeacherFeedbackButton } from './TeacherFeedbackButton/TeacherFeedbackButton';
3
3
  export { TeacherFeedback } from './TeacherFeedback';
4
4
  export { UnreadMessagesBadge } from './UnreadMessagesBadge';
5
- export { ListCardCommentsCount } from './ListCardCommentsCount/ListCardCommentsCount';
5
+ export { ListCardCommentsCount } from './ListCardCommentsCount';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1,21 +1,7 @@
1
- import { Locale } from './types/teacherFeedback.types';
2
1
  export declare const BUENOS_AIRES_FONT: string;
3
2
  export declare const NO_COMMENTS_ENG = "No comments yet";
4
3
  export declare const NO_COMMENTS_SWE = "Inga kommentarer \u00E4n";
5
4
  export declare const EMPTY_COMMENT_ID = "empty-comment";
6
- export declare const getEmptyComment: (problemId: string, locale: Locale | null) => {
7
- __v: number;
8
- _id: string;
9
- content: string;
10
- createdAt: Date;
11
- exerciseId: string;
12
- isRead: boolean;
13
- problemId: string;
14
- studentId: string;
15
- teacherId: string;
16
- teacherName: string;
17
- updatedAt: Date;
18
- };
19
5
  export declare const TEACHER_FEEDBACK_BUTTON_ID = "teacherFeedbackButton";
20
6
  export declare enum FeedbackButtonColors {
21
7
  BLUE = "BLUE",
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AAEtD,eAAO,MAAM,iBAAiB,QAA6E,CAAA;AAE3G,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAChD,eAAO,MAAM,eAAe,6BAAwB,CAAA;AACpD,eAAO,MAAM,gBAAgB,kBAAkB,CAAA;AAE/C,eAAO,MAAM,eAAe,cAAe,MAAM,UAAU,MAAM,GAAG,IAAI;;;;;;;;;;;;CAcvE,CAAA;AAED,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,QAC8C,CAAA;AAE5E,eAAO,MAAM,eAAe,oBAAoB,CAAA;AAChD,eAAO,MAAM,eAAe,6BAAwB,CAAA;AACpD,eAAO,MAAM,gBAAgB,kBAAkB,CAAA;AAE/C,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
@@ -1,3 +1,10 @@
1
- import { Locale } from './types/teacherFeedback.types';
2
- export declare const getRelativeTime: (date: Date, lang: Locale) => string;
1
+ import { CommentsMap, GetCommentsResponse } from './types';
2
+ export declare function generateCommentsMap(assignmentId: string, data: GetCommentsResponse): CommentsMap;
3
+ type FindCommentsByCreditsProps = {
4
+ data: CommentsMap | null;
5
+ assignmentId: string;
6
+ problemId: string;
7
+ };
8
+ export declare function findCommentsByCredits({ data, assignmentId, problemId, }: FindCommentsByCreditsProps): import("./types").TeacherComment[];
9
+ export {};
3
10
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA4CtD,eAAO,MAAM,eAAe,SAAU,IAAI,QAAQ,MAAM,WAqBvD,CAAA"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAE1E,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,WAAW,CAgBhG;AAED,KAAK,0BAA0B,GAAG;IAChC,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;IACxB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,YAAY,EACZ,SAAS,GACV,EAAE,0BAA0B,sCAE5B"}