@magmamath/students-features 0.5.0 → 0.5.1-rc-0

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 (414) hide show
  1. package/dist/commonjs/features/celebrations/config.js +4 -4
  2. package/dist/commonjs/features/celebrations/config.js.map +1 -1
  3. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js +1 -2
  4. package/dist/commonjs/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  5. package/dist/commonjs/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  6. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +47 -30
  7. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  8. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +42 -22
  9. package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  10. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js +14 -11
  11. package/dist/commonjs/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  12. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js +32 -17
  13. package/dist/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  14. package/dist/commonjs/features/chatbot/components/Chatbot.js +7 -5
  15. package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
  16. package/dist/commonjs/features/chatbot/index.js +7 -0
  17. package/dist/commonjs/features/chatbot/index.js.map +1 -1
  18. package/dist/commonjs/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +22 -44
  19. package/dist/commonjs/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  20. package/dist/commonjs/features/chatbot/model/ChatBotModel.js +125 -146
  21. package/dist/commonjs/features/chatbot/model/ChatBotModel.js.map +1 -1
  22. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js +12 -12
  23. package/dist/commonjs/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  24. package/dist/commonjs/features/chatbot/model/ThreadItem.js +8 -16
  25. package/dist/commonjs/features/chatbot/model/ThreadItem.js.map +1 -1
  26. package/dist/commonjs/features/chatbot/model/{ChatbotApi.js → api.js} +1 -2
  27. package/dist/commonjs/features/chatbot/model/api.js.map +1 -0
  28. package/dist/commonjs/features/chatbot/model/constants.js.map +1 -1
  29. package/dist/commonjs/features/chatbot/model/messagesHelper.js +7 -7
  30. package/dist/commonjs/features/chatbot/model/messagesHelper.js.map +1 -1
  31. package/dist/commonjs/features/chatbot/model/t2s.js +13 -18
  32. package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
  33. package/dist/commonjs/features/chatbot/model/translation.helpers.js.map +1 -1
  34. package/dist/commonjs/features/chatbot/model/translation.js +19 -28
  35. package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
  36. package/dist/commonjs/features/chatbot/types/api.types.js +0 -4
  37. package/dist/commonjs/features/chatbot/types/model.types.js.map +1 -1
  38. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +2 -4
  39. package/dist/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -1
  40. package/dist/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  41. package/dist/commonjs/index.js.map +1 -1
  42. package/dist/commonjs/lib/effector/createEntityFieldStore.js +0 -4
  43. package/dist/commonjs/lib/effector/createEntityFieldStore.js.map +1 -1
  44. package/{src/shared/translation → dist/commonjs/lib}/localization/en.json +1 -8
  45. package/dist/{module/shared/translation → commonjs/lib}/localization/gb.json +1 -8
  46. package/dist/commonjs/{shared/translation → lib}/localization/sw.json +1 -8
  47. package/dist/commonjs/shared/icons/icon.types.js +0 -4
  48. package/dist/commonjs/shared/translation/constants.js +3 -3
  49. package/dist/commonjs/shared/translation/constants.js.map +1 -1
  50. package/dist/commonjs/shared/translation/helpers.js +6 -22
  51. package/dist/commonjs/shared/translation/helpers.js.map +1 -1
  52. package/dist/commonjs/shared/translation/hooks.js +5 -3
  53. package/dist/commonjs/shared/translation/hooks.js.map +1 -1
  54. package/dist/commonjs/shared/translation/model.js +1 -1
  55. package/dist/commonjs/shared/translation/model.js.map +1 -1
  56. package/dist/commonjs/shared/translation/types.js +1 -1
  57. package/dist/commonjs/shared/translation/types.js.map +1 -1
  58. package/dist/module/features/celebrations/config.js +4 -4
  59. package/dist/module/features/celebrations/config.js.map +1 -1
  60. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js +1 -2
  61. package/dist/module/features/chatbot/components/Alternatives/Alternatives.js.map +1 -1
  62. package/dist/module/features/chatbot/components/ChatMessage/ChatMessage.js.map +1 -1
  63. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js +48 -31
  64. package/dist/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.js.map +1 -1
  65. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +43 -23
  66. package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
  67. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js +13 -11
  68. package/dist/module/features/chatbot/components/ChatMessage/SentMessage.js.map +1 -1
  69. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js +32 -17
  70. package/dist/module/features/chatbot/components/ChatMessages/ChatbotMessages.js.map +1 -1
  71. package/dist/module/features/chatbot/components/Chatbot.js +8 -6
  72. package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
  73. package/dist/module/features/chatbot/index.js +1 -0
  74. package/dist/module/features/chatbot/index.js.map +1 -1
  75. package/dist/module/features/chatbot/model/{ChatBotThreadManager.js → ChatBotMessageHandler.js} +20 -42
  76. package/dist/module/features/chatbot/model/ChatBotMessageHandler.js.map +1 -0
  77. package/dist/module/features/chatbot/model/ChatBotModel.js +126 -147
  78. package/dist/module/features/chatbot/model/ChatBotModel.js.map +1 -1
  79. package/dist/module/features/chatbot/model/DefaultMessageCreator.js +12 -12
  80. package/dist/module/features/chatbot/model/DefaultMessageCreator.js.map +1 -1
  81. package/dist/module/features/chatbot/model/ThreadItem.js +8 -16
  82. package/dist/module/features/chatbot/model/ThreadItem.js.map +1 -1
  83. package/dist/module/features/chatbot/model/{ChatbotApi.js → api.js} +1 -2
  84. package/dist/module/features/chatbot/model/api.js.map +1 -0
  85. package/dist/module/features/chatbot/model/constants.js.map +1 -1
  86. package/dist/module/features/chatbot/model/messagesHelper.js +7 -7
  87. package/dist/module/features/chatbot/model/messagesHelper.js.map +1 -1
  88. package/dist/module/features/chatbot/model/t2s.js +14 -19
  89. package/dist/module/features/chatbot/model/t2s.js.map +1 -1
  90. package/dist/module/features/chatbot/model/translation.helpers.js.map +1 -1
  91. package/dist/module/features/chatbot/model/translation.js +19 -28
  92. package/dist/module/features/chatbot/model/translation.js.map +1 -1
  93. package/dist/module/features/chatbot/types/api.types.js +0 -2
  94. package/dist/module/features/chatbot/types/model.types.js.map +1 -1
  95. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js +2 -4
  96. package/dist/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.js.map +1 -1
  97. package/dist/module/features/endOfAssignment/ui/PracticeButtonGroup.js.map +1 -1
  98. package/dist/module/index.js.map +1 -1
  99. package/dist/module/lib/effector/createEntityFieldStore.js +0 -4
  100. package/dist/module/lib/effector/createEntityFieldStore.js.map +1 -1
  101. package/dist/module/{shared/translation → lib}/localization/en.json +1 -8
  102. package/dist/{commonjs/shared/translation → module/lib}/localization/gb.json +1 -8
  103. package/dist/module/{shared/translation → lib}/localization/sw.json +1 -8
  104. package/dist/module/shared/icons/icon.types.js +0 -2
  105. package/dist/module/shared/translation/constants.js +3 -3
  106. package/dist/module/shared/translation/constants.js.map +1 -1
  107. package/dist/module/shared/translation/helpers.js +5 -19
  108. package/dist/module/shared/translation/helpers.js.map +1 -1
  109. package/dist/module/shared/translation/hooks.js +6 -4
  110. package/dist/module/shared/translation/hooks.js.map +1 -1
  111. package/dist/module/shared/translation/model.js +1 -1
  112. package/dist/module/shared/translation/model.js.map +1 -1
  113. package/dist/module/shared/translation/types.js +0 -2
  114. package/dist/module/shared/translation/types.js.map +1 -1
  115. package/dist/typescript/commonjs/features/chatbot/components/Alternatives/Alternatives.d.ts +3 -1
  116. package/dist/typescript/commonjs/features/chatbot/components/Alternatives/Alternatives.d.ts.map +1 -1
  117. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts +10 -7
  118. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  119. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts +7 -5
  120. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  121. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  122. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  123. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts +1 -1
  124. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  125. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts +10 -2
  126. package/dist/typescript/commonjs/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  127. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts +5 -2
  128. package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
  129. package/dist/typescript/commonjs/features/chatbot/index.d.ts +3 -4
  130. package/dist/typescript/commonjs/features/chatbot/index.d.ts.map +1 -1
  131. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts +31 -0
  132. package/dist/typescript/commonjs/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  133. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts +18 -24
  134. package/dist/typescript/commonjs/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  135. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts +3 -5
  136. package/dist/typescript/commonjs/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  137. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts +7 -13
  138. package/dist/typescript/commonjs/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  139. package/dist/typescript/commonjs/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  140. package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -0
  141. package/dist/typescript/commonjs/features/chatbot/model/constants.d.ts.map +1 -1
  142. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts +5 -7
  143. package/dist/typescript/commonjs/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  144. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +6 -16
  145. package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
  146. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +9 -8
  147. package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
  148. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts +1 -2
  149. package/dist/typescript/commonjs/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  150. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts +11 -12
  151. package/dist/typescript/commonjs/features/chatbot/types/api.types.d.ts.map +1 -1
  152. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts +24 -19
  153. package/dist/typescript/commonjs/features/chatbot/types/model.types.d.ts.map +1 -1
  154. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts +7 -9
  155. package/dist/typescript/commonjs/features/chatbot/types/t2s.types.d.ts.map +1 -1
  156. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts +2 -3
  157. package/dist/typescript/commonjs/features/chatbot/types/translation.types.d.ts.map +1 -1
  158. package/dist/typescript/commonjs/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -1
  159. package/dist/typescript/commonjs/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  160. package/dist/typescript/commonjs/index.d.ts +1 -0
  161. package/dist/typescript/commonjs/index.d.ts.map +1 -1
  162. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts +0 -2
  163. package/dist/typescript/commonjs/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  164. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts +0 -2
  165. package/dist/typescript/commonjs/shared/icons/icon.types.d.ts.map +1 -1
  166. package/dist/typescript/commonjs/shared/translation/constants.d.ts +0 -21
  167. package/dist/typescript/commonjs/shared/translation/constants.d.ts.map +1 -1
  168. package/dist/typescript/commonjs/shared/translation/helpers.d.ts +2 -3
  169. package/dist/typescript/commonjs/shared/translation/helpers.d.ts.map +1 -1
  170. package/dist/typescript/commonjs/shared/translation/hooks.d.ts +2 -2
  171. package/dist/typescript/commonjs/shared/translation/hooks.d.ts.map +1 -1
  172. package/dist/typescript/commonjs/shared/translation/index.d.ts +1 -0
  173. package/dist/typescript/commonjs/shared/translation/index.d.ts.map +1 -1
  174. package/dist/typescript/commonjs/shared/translation/model.d.ts +3 -43
  175. package/dist/typescript/commonjs/shared/translation/model.d.ts.map +1 -1
  176. package/dist/typescript/commonjs/shared/translation/types.d.ts +4 -4
  177. package/dist/typescript/commonjs/shared/translation/types.d.ts.map +1 -1
  178. package/dist/typescript/module/features/chatbot/components/Alternatives/Alternatives.d.ts +3 -1
  179. package/dist/typescript/module/features/chatbot/components/Alternatives/Alternatives.d.ts.map +1 -1
  180. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts +10 -7
  181. package/dist/typescript/module/features/chatbot/components/ChatMessage/ChatMessage.d.ts.map +1 -1
  182. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts +7 -5
  183. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageTextToSpeech.d.ts.map +1 -1
  184. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts +1 -1
  185. package/dist/typescript/module/features/chatbot/components/ChatMessage/ReceivedMessage.d.ts.map +1 -1
  186. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts +1 -1
  187. package/dist/typescript/module/features/chatbot/components/ChatMessage/SentMessage.d.ts.map +1 -1
  188. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts +10 -2
  189. package/dist/typescript/module/features/chatbot/components/ChatMessages/ChatbotMessages.d.ts.map +1 -1
  190. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts +5 -2
  191. package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
  192. package/dist/typescript/module/features/chatbot/index.d.ts +3 -4
  193. package/dist/typescript/module/features/chatbot/index.d.ts.map +1 -1
  194. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts +31 -0
  195. package/dist/typescript/module/features/chatbot/model/ChatBotMessageHandler.d.ts.map +1 -0
  196. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts +18 -24
  197. package/dist/typescript/module/features/chatbot/model/ChatBotModel.d.ts.map +1 -1
  198. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts +3 -5
  199. package/dist/typescript/module/features/chatbot/model/DefaultMessageCreator.d.ts.map +1 -1
  200. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts +7 -13
  201. package/dist/typescript/module/features/chatbot/model/ThreadItem.d.ts.map +1 -1
  202. package/dist/typescript/module/features/chatbot/model/{ChatbotApi.d.ts → api.d.ts} +3 -4
  203. package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -0
  204. package/dist/typescript/module/features/chatbot/model/constants.d.ts.map +1 -1
  205. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts +5 -7
  206. package/dist/typescript/module/features/chatbot/model/messagesHelper.d.ts.map +1 -1
  207. package/dist/typescript/module/features/chatbot/model/t2s.d.ts +6 -16
  208. package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
  209. package/dist/typescript/module/features/chatbot/model/translation.d.ts +9 -8
  210. package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
  211. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts +1 -2
  212. package/dist/typescript/module/features/chatbot/model/translation.helpers.d.ts.map +1 -1
  213. package/dist/typescript/module/features/chatbot/types/api.types.d.ts +11 -12
  214. package/dist/typescript/module/features/chatbot/types/api.types.d.ts.map +1 -1
  215. package/dist/typescript/module/features/chatbot/types/model.types.d.ts +24 -19
  216. package/dist/typescript/module/features/chatbot/types/model.types.d.ts.map +1 -1
  217. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts +7 -9
  218. package/dist/typescript/module/features/chatbot/types/t2s.types.d.ts.map +1 -1
  219. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts +2 -3
  220. package/dist/typescript/module/features/chatbot/types/translation.types.d.ts.map +1 -1
  221. package/dist/typescript/module/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.d.ts.map +1 -1
  222. package/dist/typescript/module/features/endOfAssignment/ui/PracticeButtonGroup.d.ts.map +1 -1
  223. package/dist/typescript/module/index.d.ts +1 -0
  224. package/dist/typescript/module/index.d.ts.map +1 -1
  225. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts +0 -2
  226. package/dist/typescript/module/lib/effector/createEntityFieldStore.d.ts.map +1 -1
  227. package/dist/typescript/module/shared/icons/icon.types.d.ts +0 -2
  228. package/dist/typescript/module/shared/icons/icon.types.d.ts.map +1 -1
  229. package/dist/typescript/module/shared/translation/constants.d.ts +0 -21
  230. package/dist/typescript/module/shared/translation/constants.d.ts.map +1 -1
  231. package/dist/typescript/module/shared/translation/helpers.d.ts +2 -3
  232. package/dist/typescript/module/shared/translation/helpers.d.ts.map +1 -1
  233. package/dist/typescript/module/shared/translation/hooks.d.ts +2 -2
  234. package/dist/typescript/module/shared/translation/hooks.d.ts.map +1 -1
  235. package/dist/typescript/module/shared/translation/index.d.ts +1 -0
  236. package/dist/typescript/module/shared/translation/index.d.ts.map +1 -1
  237. package/dist/typescript/module/shared/translation/model.d.ts +3 -43
  238. package/dist/typescript/module/shared/translation/model.d.ts.map +1 -1
  239. package/dist/typescript/module/shared/translation/types.d.ts +4 -4
  240. package/dist/typescript/module/shared/translation/types.d.ts.map +1 -1
  241. package/package.json +2 -2
  242. package/src/features/celebrations/config.ts +4 -4
  243. package/src/features/chatbot/components/Alternatives/Alternatives.tsx +4 -2
  244. package/src/features/chatbot/components/ChatMessage/ChatMessage.tsx +10 -7
  245. package/src/features/chatbot/components/ChatMessage/MessageTextToSpeech.tsx +51 -34
  246. package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +40 -15
  247. package/src/features/chatbot/components/ChatMessage/SentMessage.tsx +10 -9
  248. package/src/features/chatbot/components/ChatMessages/ChatbotMessages.tsx +34 -17
  249. package/src/features/chatbot/components/Chatbot.tsx +11 -5
  250. package/src/features/chatbot/index.ts +4 -3
  251. package/src/features/chatbot/model/{ChatBotThreadManager.ts → ChatBotMessageHandler.ts} +27 -53
  252. package/src/features/chatbot/model/ChatBotModel.ts +149 -151
  253. package/src/features/chatbot/model/DefaultMessageCreator.ts +16 -17
  254. package/src/features/chatbot/model/ThreadItem.ts +10 -15
  255. package/src/features/chatbot/model/{ChatbotApi.ts → api.ts} +2 -5
  256. package/src/features/chatbot/model/constants.ts +0 -2
  257. package/src/features/chatbot/model/messagesHelper.ts +7 -12
  258. package/src/features/chatbot/model/t2s.ts +13 -28
  259. package/src/features/chatbot/model/translation.helpers.ts +1 -2
  260. package/src/features/chatbot/model/translation.ts +24 -34
  261. package/src/features/chatbot/types/api.types.ts +12 -12
  262. package/src/features/chatbot/types/model.types.ts +32 -31
  263. package/src/features/chatbot/types/t2s.types.ts +15 -18
  264. package/src/features/chatbot/types/translation.types.ts +2 -3
  265. package/src/features/endOfAssignment/components/CorrectAnswer/AnimatedCard.tsx +2 -3
  266. package/src/features/endOfAssignment/ui/PracticeButtonGroup.tsx +1 -0
  267. package/src/index.ts +1 -0
  268. package/src/lib/effector/createEntityFieldStore.ts +1 -9
  269. package/{dist/commonjs/shared/translation → src/lib}/localization/en.json +1 -8
  270. package/src/{shared/translation → lib}/localization/gb.json +1 -8
  271. package/src/{shared/translation → lib}/localization/sw.json +1 -8
  272. package/src/shared/icons/icon.types.ts +6 -9
  273. package/src/shared/translation/constants.ts +3 -3
  274. package/src/shared/translation/helpers.ts +9 -22
  275. package/src/shared/translation/hooks.ts +16 -12
  276. package/src/shared/translation/index.ts +1 -0
  277. package/src/shared/translation/model.ts +8 -8
  278. package/src/shared/translation/types.ts +8 -11
  279. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.js +0 -44
  280. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.js.map +0 -1
  281. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js +0 -62
  282. package/dist/commonjs/features/chatbot/components/ChatMessage/MessageContent.js.map +0 -1
  283. package/dist/commonjs/features/chatbot/components/ChatMessage/helpers.js +0 -13
  284. package/dist/commonjs/features/chatbot/components/ChatMessage/helpers.js.map +0 -1
  285. package/dist/commonjs/features/chatbot/context/ChatBotModelContext.js +0 -17
  286. package/dist/commonjs/features/chatbot/context/ChatBotModelContext.js.map +0 -1
  287. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -57
  288. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  289. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -130
  290. package/dist/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  291. package/dist/commonjs/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  292. package/dist/commonjs/features/chatbot/model/ChatBoxTextManager.js +0 -22
  293. package/dist/commonjs/features/chatbot/model/ChatBoxTextManager.js.map +0 -1
  294. package/dist/commonjs/features/chatbot/model/ChatbotApi.js.map +0 -1
  295. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js +0 -110
  296. package/dist/commonjs/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  297. package/dist/commonjs/features/chatbot/types/units.types.js +0 -2
  298. package/dist/commonjs/features/chatbot/types/units.types.js.map +0 -1
  299. package/dist/commonjs/lib/effector/withEvent.js +0 -13
  300. package/dist/commonjs/lib/effector/withEvent.js.map +0 -1
  301. package/dist/commonjs/lib/types/keys.js +0 -2
  302. package/dist/commonjs/lib/types/keys.js.map +0 -1
  303. package/dist/commonjs/shared/icons/HighlighterIcon.js +0 -36
  304. package/dist/commonjs/shared/icons/HighlighterIcon.js.map +0 -1
  305. package/dist/commonjs/shared/icons/StopIcon.js +0 -33
  306. package/dist/commonjs/shared/icons/StopIcon.js.map +0 -1
  307. package/dist/commonjs/shared/translation/validation.types.js +0 -6
  308. package/dist/commonjs/shared/translation/validation.types.js.map +0 -1
  309. package/dist/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.js +0 -38
  310. package/dist/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.js.map +0 -1
  311. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js +0 -57
  312. package/dist/module/features/chatbot/components/ChatMessage/MessageContent.js.map +0 -1
  313. package/dist/module/features/chatbot/components/ChatMessage/helpers.js +0 -9
  314. package/dist/module/features/chatbot/components/ChatMessage/helpers.js.map +0 -1
  315. package/dist/module/features/chatbot/context/ChatBotModelContext.js +0 -12
  316. package/dist/module/features/chatbot/context/ChatBotModelContext.js.map +0 -1
  317. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js +0 -51
  318. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingButton.js.map +0 -1
  319. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js +0 -125
  320. package/dist/module/features/chatbot/errorSpotting/ErrorSpottingModel.js.map +0 -1
  321. package/dist/module/features/chatbot/model/ChatBotThreadManager.js.map +0 -1
  322. package/dist/module/features/chatbot/model/ChatBoxTextManager.js +0 -17
  323. package/dist/module/features/chatbot/model/ChatBoxTextManager.js.map +0 -1
  324. package/dist/module/features/chatbot/model/ChatbotApi.js.map +0 -1
  325. package/dist/module/features/chatbot/model/ChatsCacheModel.js +0 -104
  326. package/dist/module/features/chatbot/model/ChatsCacheModel.js.map +0 -1
  327. package/dist/module/features/chatbot/types/units.types.js +0 -2
  328. package/dist/module/features/chatbot/types/units.types.js.map +0 -1
  329. package/dist/module/lib/effector/withEvent.js +0 -9
  330. package/dist/module/lib/effector/withEvent.js.map +0 -1
  331. package/dist/module/lib/types/keys.js +0 -2
  332. package/dist/module/lib/types/keys.js.map +0 -1
  333. package/dist/module/shared/icons/HighlighterIcon.js +0 -29
  334. package/dist/module/shared/icons/HighlighterIcon.js.map +0 -1
  335. package/dist/module/shared/icons/StopIcon.js +0 -26
  336. package/dist/module/shared/icons/StopIcon.js.map +0 -1
  337. package/dist/module/shared/translation/validation.types.js +0 -4
  338. package/dist/module/shared/translation/validation.types.js.map +0 -1
  339. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts +0 -10
  340. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts.map +0 -1
  341. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts +0 -11
  342. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +0 -1
  343. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/helpers.d.ts +0 -4
  344. package/dist/typescript/commonjs/features/chatbot/components/ChatMessage/helpers.d.ts.map +0 -1
  345. package/dist/typescript/commonjs/features/chatbot/context/ChatBotModelContext.d.ts +0 -4
  346. package/dist/typescript/commonjs/features/chatbot/context/ChatBotModelContext.d.ts.map +0 -1
  347. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -8
  348. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  349. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -35
  350. package/dist/typescript/commonjs/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  351. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts +0 -33
  352. package/dist/typescript/commonjs/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  353. package/dist/typescript/commonjs/features/chatbot/model/ChatBoxTextManager.d.ts +0 -6
  354. package/dist/typescript/commonjs/features/chatbot/model/ChatBoxTextManager.d.ts.map +0 -1
  355. package/dist/typescript/commonjs/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  356. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts +0 -27
  357. package/dist/typescript/commonjs/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  358. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts +0 -34
  359. package/dist/typescript/commonjs/features/chatbot/types/units.types.d.ts.map +0 -1
  360. package/dist/typescript/commonjs/lib/effector/withEvent.d.ts +0 -2
  361. package/dist/typescript/commonjs/lib/effector/withEvent.d.ts.map +0 -1
  362. package/dist/typescript/commonjs/lib/types/keys.d.ts +0 -8
  363. package/dist/typescript/commonjs/lib/types/keys.d.ts.map +0 -1
  364. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts +0 -4
  365. package/dist/typescript/commonjs/shared/icons/HighlighterIcon.d.ts.map +0 -1
  366. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts +0 -4
  367. package/dist/typescript/commonjs/shared/icons/StopIcon.d.ts.map +0 -1
  368. package/dist/typescript/commonjs/shared/translation/validation.types.d.ts +0 -17
  369. package/dist/typescript/commonjs/shared/translation/validation.types.d.ts.map +0 -1
  370. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts +0 -10
  371. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageButtonsBlock.d.ts.map +0 -1
  372. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts +0 -11
  373. package/dist/typescript/module/features/chatbot/components/ChatMessage/MessageContent.d.ts.map +0 -1
  374. package/dist/typescript/module/features/chatbot/components/ChatMessage/helpers.d.ts +0 -4
  375. package/dist/typescript/module/features/chatbot/components/ChatMessage/helpers.d.ts.map +0 -1
  376. package/dist/typescript/module/features/chatbot/context/ChatBotModelContext.d.ts +0 -4
  377. package/dist/typescript/module/features/chatbot/context/ChatBotModelContext.d.ts.map +0 -1
  378. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts +0 -8
  379. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingButton.d.ts.map +0 -1
  380. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts +0 -35
  381. package/dist/typescript/module/features/chatbot/errorSpotting/ErrorSpottingModel.d.ts.map +0 -1
  382. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts +0 -33
  383. package/dist/typescript/module/features/chatbot/model/ChatBotThreadManager.d.ts.map +0 -1
  384. package/dist/typescript/module/features/chatbot/model/ChatBoxTextManager.d.ts +0 -6
  385. package/dist/typescript/module/features/chatbot/model/ChatBoxTextManager.d.ts.map +0 -1
  386. package/dist/typescript/module/features/chatbot/model/ChatbotApi.d.ts.map +0 -1
  387. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts +0 -27
  388. package/dist/typescript/module/features/chatbot/model/ChatsCacheModel.d.ts.map +0 -1
  389. package/dist/typescript/module/features/chatbot/types/units.types.d.ts +0 -34
  390. package/dist/typescript/module/features/chatbot/types/units.types.d.ts.map +0 -1
  391. package/dist/typescript/module/lib/effector/withEvent.d.ts +0 -2
  392. package/dist/typescript/module/lib/effector/withEvent.d.ts.map +0 -1
  393. package/dist/typescript/module/lib/types/keys.d.ts +0 -8
  394. package/dist/typescript/module/lib/types/keys.d.ts.map +0 -1
  395. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts +0 -4
  396. package/dist/typescript/module/shared/icons/HighlighterIcon.d.ts.map +0 -1
  397. package/dist/typescript/module/shared/icons/StopIcon.d.ts +0 -4
  398. package/dist/typescript/module/shared/icons/StopIcon.d.ts.map +0 -1
  399. package/dist/typescript/module/shared/translation/validation.types.d.ts +0 -17
  400. package/dist/typescript/module/shared/translation/validation.types.d.ts.map +0 -1
  401. package/src/features/chatbot/components/ChatMessage/MessageButtonsBlock.tsx +0 -38
  402. package/src/features/chatbot/components/ChatMessage/MessageContent.tsx +0 -52
  403. package/src/features/chatbot/components/ChatMessage/helpers.ts +0 -9
  404. package/src/features/chatbot/context/ChatBotModelContext.ts +0 -14
  405. package/src/features/chatbot/errorSpotting/ErrorSpottingButton.tsx +0 -53
  406. package/src/features/chatbot/errorSpotting/ErrorSpottingModel.ts +0 -150
  407. package/src/features/chatbot/model/ChatBoxTextManager.ts +0 -18
  408. package/src/features/chatbot/model/ChatsCacheModel.ts +0 -95
  409. package/src/features/chatbot/types/units.types.ts +0 -37
  410. package/src/lib/effector/withEvent.ts +0 -7
  411. package/src/lib/types/keys.ts +0 -18
  412. package/src/shared/icons/HighlighterIcon.tsx +0 -21
  413. package/src/shared/icons/StopIcon.tsx +0 -17
  414. package/src/shared/translation/validation.types.ts +0 -26
@@ -1,16 +1,23 @@
1
- import React, { useRef } from 'react'
1
+ import React, { ReactNode, useRef } from 'react'
2
2
  import { Platform, ScrollView, StyleSheet, useWindowDimensions, View } from 'react-native'
3
3
  import { useStoreMap, useUnit } from 'effector-react'
4
4
  import { ChatbotModel } from '../../model/ChatBotModel'
5
5
  import { ChatMessage } from '../ChatMessage/ChatMessage'
6
6
  import { MessageLoader } from '../ChatMessage/MessageLoader'
7
7
  import { Alternatives } from '../Alternatives/Alternatives'
8
- import { MessageVariant } from '../../types/model.types'
8
+ import { AUDIO_CONFIG, DEFAULT_VOICE, TEXT_TO_SPEECH_CONFIG } from '../../constants'
9
+ import { MessageVariant, ChatbotRenderer } from '../../types/model.types'
9
10
 
10
11
  type ChatbotMessagesProps = {
11
12
  model: ChatbotModel
12
13
  isHintFeedback: boolean
14
+ sanitizeSpeechInput: (speech: string) => string
13
15
  isTextToSpeechEnabled: boolean
16
+ textToSpeechConfig?: {
17
+ voice: typeof DEFAULT_VOICE
18
+ audioConfig: typeof AUDIO_CONFIG
19
+ }
20
+ renderer?: (props: ChatbotRenderer) => ReactNode
14
21
  }
15
22
 
16
23
  const TOOLBAR_HEIGHT = 140
@@ -22,7 +29,10 @@ const BOTTOM_OFFSET = Platform.select({
22
29
  export const ChatbotMessages = ({
23
30
  model,
24
31
  isHintFeedback,
32
+ sanitizeSpeechInput,
25
33
  isTextToSpeechEnabled,
34
+ textToSpeechConfig,
35
+ renderer,
26
36
  }: ChatbotMessagesProps) => {
27
37
  const dimensions = useWindowDimensions()
28
38
  const ref = useRef<ScrollView>(null)
@@ -39,6 +49,16 @@ export const ChatbotMessages = ({
39
49
 
40
50
  const messages = useStoreMap(model.$currentChatData, ({ messages }) => messages)
41
51
 
52
+ const playTextToSpeech = (id: string, message: string, translatedMessage?: string) => {
53
+ const text = isTranslated ? (translatedMessage as string) : message
54
+ void model.t2s.play({
55
+ text: sanitizeSpeechInput(text),
56
+ messageId: id,
57
+ isTranslated,
58
+ config: textToSpeechConfig ?? TEXT_TO_SPEECH_CONFIG,
59
+ })
60
+ }
61
+
42
62
  const askChatForHelp = (message: string, translatedMessage?: string) => {
43
63
  void model.sendHelpRequestFx({ message, translatedMessage })
44
64
  }
@@ -47,7 +67,6 @@ export const ChatbotMessages = ({
47
67
  <View style={[styles.container, { maxHeight: MAX_HEIGHT }]}>
48
68
  <ScrollView
49
69
  ref={ref}
50
- bounces={false}
51
70
  contentContainerStyle={styles.list}
52
71
  onContentSizeChange={(_, height) => {
53
72
  ref.current?.scrollToEnd()
@@ -59,19 +78,17 @@ export const ChatbotMessages = ({
59
78
  >
60
79
  {isOpen && (
61
80
  <View style={styles.gap}>
62
- {messages.map((message) => (
81
+ {messages.map(({ id, message, translatedMessage, isOwnMessage }) => (
63
82
  <ChatMessage
64
- key={message.id}
65
- isTranslated={isTranslated}
66
- message={message}
67
- variant={message.isOwnMessage ? MessageVariant.SENT : MessageVariant.RECEIVED}
68
- t2sState={{
69
- isEnabled: isTextToSpeechEnabled && !message.isOwnMessage,
70
- isActive: message.id === currentPlayingId,
71
- isLoading: isTextToSpeechPending,
72
- status: audioStatus,
73
- disabled: isTextToSpeechPending,
74
- }}
83
+ key={id}
84
+ message={isTranslated ? (translatedMessage as string) : message}
85
+ renderer={renderer}
86
+ audioStatus={audioStatus}
87
+ onPressTextToSpeech={() => playTextToSpeech(id, message, translatedMessage)}
88
+ isActive={id === currentPlayingId}
89
+ isTextToSpeechPending={isTextToSpeechPending}
90
+ variant={isOwnMessage ? MessageVariant.SENT : MessageVariant.RECEIVED}
91
+ withTextToSpeech={isTextToSpeechEnabled && !isOwnMessage}
75
92
  />
76
93
  ))}
77
94
 
@@ -81,6 +98,7 @@ export const ChatbotMessages = ({
81
98
 
82
99
  {!isHelpRequestPending && isOpen && (
83
100
  <Alternatives
101
+ model={model}
84
102
  onPressAlternative={askChatForHelp}
85
103
  hasMessages={messages.length > 1}
86
104
  isHintFeedback={isHintFeedback}
@@ -95,13 +113,12 @@ const styles = StyleSheet.create({
95
113
  container: {
96
114
  flex: 1,
97
115
  alignItems: 'flex-end',
98
- width: 378,
116
+ width: 372,
99
117
  height: '100%',
100
118
  },
101
119
  list: {
102
120
  alignItems: 'flex-end',
103
121
  paddingVertical: 2,
104
- paddingRight: 6,
105
122
  },
106
123
  gap: {
107
124
  flex: 1,
@@ -1,15 +1,16 @@
1
- import { ComponentType, PropsWithChildren } from 'react'
1
+ import { ComponentType, PropsWithChildren, ReactNode } from 'react'
2
2
  import { useStoreMap, useUnit } from 'effector-react'
3
3
  import { ChatbotModel } from '../model/ChatBotModel'
4
4
  import { ChatbotMessages } from './ChatMessages/ChatbotMessages'
5
5
  import { ChatControls } from './ChatControls/ChatControls'
6
6
  import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants'
7
+ import { ChatbotRenderer } from '../types/model.types'
7
8
  import React from 'react'
8
- import { ChatBotModelContext } from '../context/ChatBotModelContext'
9
9
 
10
10
  type ChatbotProps = {
11
11
  model: ChatbotModel
12
12
  isHintFeedback: boolean
13
+ sanitizeSpeechInput: (speech: string) => string
13
14
  isTextToSpeechEnabled: boolean
14
15
  isTranslationEnabled: boolean
15
16
  textToSpeechConfig?: {
@@ -17,22 +18,24 @@ type ChatbotProps = {
17
18
  audioConfig: typeof AUDIO_CONFIG
18
19
  }
19
20
  ButtonWrapper: ComponentType<PropsWithChildren>
21
+ renderer?: (props: ChatbotRenderer) => ReactNode
20
22
  iconSize?: { width: number; height: number } // TODO: use number instead
21
23
  }
22
24
 
23
25
  export const Chatbot = ({
24
26
  model,
25
27
  isHintFeedback,
28
+ sanitizeSpeechInput,
26
29
  isTextToSpeechEnabled = false,
27
30
  textToSpeechConfig,
28
31
  isTranslationEnabled,
32
+ renderer,
29
33
  ButtonWrapper,
30
34
  iconSize,
31
35
  }: ChatbotProps) => {
32
36
  const alternatives = useUnit(model.$alternatives)
33
37
  const isAvailable = useStoreMap(model.$currentChatData, ({ isAvailable }) => isAvailable)
34
38
 
35
- model.t2s.setAudioConfig(textToSpeechConfig ?? null)
36
39
  const translateMessages = () => {
37
40
  void model.translation.translateAllMessagesFx()
38
41
  }
@@ -45,11 +48,14 @@ export const Chatbot = ({
45
48
  }
46
49
 
47
50
  return (
48
- <ChatBotModelContext.Provider value={model}>
51
+ <>
49
52
  <ChatbotMessages
50
53
  model={model}
54
+ renderer={renderer}
51
55
  isHintFeedback={isHintFeedback}
56
+ sanitizeSpeechInput={sanitizeSpeechInput}
52
57
  isTextToSpeechEnabled={isTextToSpeechEnabled}
58
+ textToSpeechConfig={textToSpeechConfig}
53
59
  />
54
60
 
55
61
  <ChatControls
@@ -61,6 +67,6 @@ export const Chatbot = ({
61
67
  ButtonWrapper={ButtonWrapper}
62
68
  iconSize={iconSize}
63
69
  />
64
- </ChatBotModelContext.Provider>
70
+ </>
65
71
  )
66
72
  }
@@ -3,10 +3,11 @@ export { ChatbotModel } from './model/ChatBotModel'
3
3
  export { AudioStatus, type AudioProvider } from './types/t2s.types'
4
4
  export {
5
5
  MessageVariant,
6
+ type ConversationMessage,
7
+ type ChatbotRenderer,
6
8
  type ChatbotModelProps,
7
9
  type IChatDrawBoardAdapter,
8
10
  } from './types/model.types'
9
- export type { PostMessageResponse } from './types/api.types'
11
+ export type { PostMessageResponse, ChatAnswer } from './types/api.types'
12
+ export { ChatMessageHandler } from './model/ChatBotMessageHandler'
10
13
  export { DefaultMessagesCreator } from './model/DefaultMessageCreator'
11
- export type { ChatAnswer } from './types/units.types'
12
- export type { ConversationMessage } from './types/units.types'
@@ -1,5 +1,6 @@
1
1
  import { ThreadItem } from './ThreadItem'
2
2
  import { Store } from 'effector'
3
+ import { createEffect } from 'effector/effector.umd'
3
4
  import {
4
5
  ChatHintPayload,
5
6
  ChatHintResponse,
@@ -9,23 +10,25 @@ import {
9
10
  import { ChatbotMessages, IChatDrawBoardAdapter } from '../types/model.types'
10
11
  import { CHAT_BOT_MODEL_DEFAULTS } from './constants'
11
12
 
12
- type ThreadManagerApi = {
13
- getHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
14
- }
15
-
16
- type ChatBotThreadManagerProps = {
13
+ type ChatMessageHandlerProps = {
17
14
  messagesLimit?: number
18
- drawBoardAdapter?: IChatDrawBoardAdapter
19
15
  messages: ChatbotMessages
20
- api?: ThreadManagerApi
16
+ drawBoardAdapter: IChatDrawBoardAdapter
17
+ api: {
18
+ getHint: (props: ChatHintPayload) => Promise<ChatHintResponse>
19
+ }
20
+ }
21
+
22
+ type ResetCacheProps = {
23
+ key: string
21
24
  }
22
25
 
23
- export class ChatBotThreadManager {
24
- private api: ThreadManagerApi | null = null
25
- private drawBoardAdapter: IChatDrawBoardAdapter | null = null
26
+ export class ChatMessageHandler {
27
+ private readonly api
28
+ private readonly drawBoardAdapter: IChatDrawBoardAdapter
26
29
  private readonly threads = new Map<string, ThreadItem>()
27
30
 
28
- private messagesLimit
31
+ private readonly messagesLimit
29
32
  private currentKey = ''
30
33
  private currentBinding: null | (() => void) = null
31
34
 
@@ -36,9 +39,9 @@ export class ChatBotThreadManager {
36
39
  api,
37
40
  messagesLimit = CHAT_BOT_MODEL_DEFAULTS.THREAD_MESSAGES_LIMIT,
38
41
  messages,
39
- }: ChatBotThreadManagerProps) {
40
- if (api) this.api = api
41
- this.drawBoardAdapter = drawBoardAdapter ?? null
42
+ }: ChatMessageHandlerProps) {
43
+ this.api = api
44
+ this.drawBoardAdapter = drawBoardAdapter
42
45
  this.messagesLimit = messagesLimit
43
46
  this.defaultMessages = messages
44
47
  }
@@ -55,16 +58,9 @@ export class ChatBotThreadManager {
55
58
  const key = this.currentKey
56
59
  let threadItem = this.threads.get(key)
57
60
  if (threadItem) return threadItem
58
- if (!this.drawBoardAdapter) {
59
- threadItem = new ThreadItem()
60
- this.threads.set(key, threadItem)
61
- return threadItem
62
- }
63
61
  try {
64
- const result = await this.drawBoardAdapter.getVisibleStrokes()
65
- threadItem = new ThreadItem(
66
- result ? { strokes: result.strokes, key: result.validationKey } : null,
67
- )
62
+ const strokes = await this.drawBoardAdapter.getVisibleStrokes()
63
+ threadItem = new ThreadItem({ strokes })
68
64
  } catch {
69
65
  threadItem = new ThreadItem()
70
66
  }
@@ -72,22 +68,13 @@ export class ChatBotThreadManager {
72
68
  return threadItem
73
69
  }
74
70
 
75
- public setDrawBoardAdapter(adapter: IChatDrawBoardAdapter) {
76
- this.drawBoardAdapter = adapter
77
- }
78
-
79
- public readonly postMessage = async ({
71
+ public readonly postMessageFx = async ({
80
72
  problemAnswer,
81
73
  problem,
82
74
  answer,
83
75
  language,
84
76
  imageAltText,
85
77
  }: PostMessagePayload): Promise<PostMessageResponse> => {
86
- if (!this.api) {
87
- throw new Error(
88
- 'API is not set in ThreadManagersApi, pls provide API before sending requests',
89
- )
90
- }
91
78
  const threadItem = await this.getThreadItem()
92
79
 
93
80
  const result = await this.api.getHint({
@@ -99,36 +86,23 @@ export class ChatBotThreadManager {
99
86
  imageAltText,
100
87
  })
101
88
 
102
- threadItem.history.push(result.message)
89
+ threadItem.hints.push(result.message)
103
90
  const nextOptions =
104
- threadItem.history.length < this.messagesLimit ? [this.defaultMessages.anotherHintOption] : []
91
+ threadItem.hints.length < this.messagesLimit ? [this.defaultMessages.anotherHintOption] : []
105
92
 
106
93
  return {
107
94
  message: result.message,
108
95
  options: nextOptions,
96
+ threadId: '',
109
97
  endMessage: !nextOptions.length,
110
- threadId: threadItem.id,
111
98
  }
112
99
  }
113
100
 
114
- public get(key: string) {
115
- return this.threads.get(key)
116
- }
101
+ public resetThread = createEffect(({ key }: ResetCacheProps) => {
102
+ this.threads.delete(key)
103
+ })
117
104
 
118
- public reset(key?: string) {
119
- if (typeof key === 'string') {
120
- this.threads.delete(key)
121
- return
122
- }
105
+ public resetAll() {
123
106
  this.threads.clear()
124
107
  }
125
-
126
- public setMessagesLimit(limit: number) {
127
- this.messagesLimit = limit
128
- }
129
-
130
- public setApi(api: ThreadManagerApi) {
131
- this.api = api
132
- return this
133
- }
134
108
  }