@magmamath/students-features 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/features/chatbot/constants.js +21 -12
- package/dist/commonjs/features/chatbot/constants.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/api.js +21 -1
- package/dist/commonjs/features/chatbot/model/api.js.map +1 -1
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js +0 -4
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/module/features/chatbot/constants.js +20 -11
- package/dist/module/features/chatbot/constants.js.map +1 -1
- package/dist/module/features/chatbot/model/api.js +21 -1
- package/dist/module/features/chatbot/model/api.js.map +1 -1
- package/dist/module/features/feedback/model/teacherFeedback.model.js +0 -4
- package/dist/module/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/constants.d.ts +6 -0
- package/dist/typescript/commonjs/features/chatbot/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/api.d.ts +1 -0
- package/dist/typescript/commonjs/features/chatbot/model/api.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/constants.d.ts +6 -0
- package/dist/typescript/module/features/chatbot/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/api.d.ts +1 -0
- package/dist/typescript/module/features/chatbot/model/api.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/chatbot/constants.ts +30 -22
- package/src/features/chatbot/model/api.ts +47 -17
- package/src/features/feedback/model/teacherFeedback.model.ts +27 -14
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.TEXT_TO_SPEECH_CONFIG = exports.DEFAULT_VOICE = exports.AUDIO_CONFIG = void 0;
|
|
6
|
+
exports.TEXT_TO_SPEECH_CONFIG = exports.KATEX_REPLACEMENTS_REVERSE = exports.KATEX_REPLACEMENTS = exports.DEFAULT_VOICE = exports.AUDIO_CONFIG = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
const AUDIO_CONFIG = exports.AUDIO_CONFIG = {
|
|
9
9
|
audioEncoding: 'LINEAR16',
|
|
@@ -14,18 +14,27 @@ const DEFAULT_VOICE = exports.DEFAULT_VOICE = {
|
|
|
14
14
|
languageCode: 'en-US',
|
|
15
15
|
name: 'en-US-Wavenet-C'
|
|
16
16
|
};
|
|
17
|
-
const TEXT_TO_SPEECH_CONFIG = exports.TEXT_TO_SPEECH_CONFIG = _reactNative.Platform.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const TEXT_TO_SPEECH_CONFIG = exports.TEXT_TO_SPEECH_CONFIG = _reactNative.Platform.select({
|
|
18
|
+
ios: {
|
|
19
|
+
audioConfig: {
|
|
20
|
+
audioEncoding: 'MP3',
|
|
21
|
+
pitch: 0.8,
|
|
22
|
+
speakingRate: 0.8
|
|
23
|
+
},
|
|
24
|
+
voice: {
|
|
25
|
+
languageCode: 'en-US',
|
|
26
|
+
name: 'en-US-Wavenet-C'
|
|
27
|
+
}
|
|
22
28
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
default: {
|
|
30
|
+
audioConfig: AUDIO_CONFIG,
|
|
31
|
+
voice: DEFAULT_VOICE
|
|
26
32
|
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
});
|
|
34
|
+
const KATEX_REPLACEMENTS = exports.KATEX_REPLACEMENTS = {
|
|
35
|
+
'\\$': '__KATEX_DOLLAR_SYMBOL__'
|
|
36
|
+
};
|
|
37
|
+
const KATEX_REPLACEMENTS_REVERSE = exports.KATEX_REPLACEMENTS_REVERSE = {
|
|
38
|
+
__KATEX_DOLLAR_SYMBOL__: '$'
|
|
30
39
|
};
|
|
31
40
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","AUDIO_CONFIG","exports","audioEncoding","pitch","speakingRate","DEFAULT_VOICE","languageCode","name","TEXT_TO_SPEECH_CONFIG","Platform","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","AUDIO_CONFIG","exports","audioEncoding","pitch","speakingRate","DEFAULT_VOICE","languageCode","name","TEXT_TO_SPEECH_CONFIG","Platform","select","ios","audioConfig","voice","default","KATEX_REPLACEMENTS","KATEX_REPLACEMENTS_REVERSE","__KATEX_DOLLAR_SYMBOL__"],"sourceRoot":"../../../../src","sources":["features/chatbot/constants.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,aAAa,EAAE,UAAU;EACzBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE;AAChB,CAAC;AAEM,MAAMC,aAAa,GAAAJ,OAAA,CAAAI,aAAA,GAAG;EAC3BC,YAAY,EAAE,OAAO;EACrBC,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,qBAAqB,GAAAP,OAAA,CAAAO,qBAAA,GAAGC,qBAAQ,CAACC,MAAM,CAAC;EACnDC,GAAG,EAAE;IACHC,WAAW,EAAE;MACXV,aAAa,EAAE,KAAK;MACpBC,KAAK,EAAE,GAAG;MACVC,YAAY,EAAE;IAChB,CAAC;IACDS,KAAK,EAAE;MACLP,YAAY,EAAE,OAAO;MACrBC,IAAI,EAAE;IACR;EACF,CAAC;EACDO,OAAO,EAAE;IACPF,WAAW,EAAEZ,YAAY;IACzBa,KAAK,EAAER;EACT;AACF,CAAC,CAAC;AAEK,MAAMU,kBAAkB,GAAAd,OAAA,CAAAc,kBAAA,GAAG;EAChC,KAAK,EAAE;AACT,CAAU;AAEH,MAAMC,0BAA0B,GAAAf,OAAA,CAAAe,0BAAA,GAAG;EACxCC,uBAAuB,EAAE;AAC3B,CAAU","ignoreList":[]}
|
|
@@ -6,11 +6,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ChatbotAPI = void 0;
|
|
7
7
|
var _effector = require("effector");
|
|
8
8
|
var _index = require("../../../lib/effector/index.js");
|
|
9
|
+
var _constants = require("../constants.js");
|
|
9
10
|
class ChatbotAPI {
|
|
11
|
+
replaceKatexSyntax(texts, reverse = false) {
|
|
12
|
+
const replacements = reverse ? Object.entries(_constants.KATEX_REPLACEMENTS_REVERSE) : Object.entries(_constants.KATEX_REPLACEMENTS);
|
|
13
|
+
return texts.map(text => replacements.reduce((newText, [pattern, placeholder]) => newText.replace(new RegExp(pattern, 'g'), placeholder), text));
|
|
14
|
+
}
|
|
10
15
|
constructor(api) {
|
|
11
16
|
this.postMessageFx = (0, _index.createControllerEffect)(api.postMessage);
|
|
12
17
|
this.getAlternativesFx = (0, _effector.createEffect)(api.getAlternatives);
|
|
13
|
-
this.translateTextFx = (0, _effector.createEffect)(
|
|
18
|
+
this.translateTextFx = (0, _effector.createEffect)(async payload => {
|
|
19
|
+
const response = await api.postTranslateText({
|
|
20
|
+
...payload,
|
|
21
|
+
text: this.replaceKatexSyntax(payload.text)
|
|
22
|
+
});
|
|
23
|
+
return {
|
|
24
|
+
...response,
|
|
25
|
+
data: {
|
|
26
|
+
...response.data,
|
|
27
|
+
translations: response.data.translations.map(translation => ({
|
|
28
|
+
...translation,
|
|
29
|
+
translatedText: this.replaceKatexSyntax([translation.translatedText], true)[0]
|
|
30
|
+
}))
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
});
|
|
14
34
|
this.textToSpeechTextFx = (0, _effector.createEffect)(api.postTextToSpeech);
|
|
15
35
|
}
|
|
16
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_index","ChatbotAPI","constructor","api","postMessageFx","createControllerEffect","postMessage","getAlternativesFx","createEffect","getAlternatives","translateTextFx","postTranslateText","textToSpeechTextFx","postTextToSpeech","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_effector","require","_index","_constants","ChatbotAPI","replaceKatexSyntax","texts","reverse","replacements","Object","entries","KATEX_REPLACEMENTS_REVERSE","KATEX_REPLACEMENTS","map","text","reduce","newText","pattern","placeholder","replace","RegExp","constructor","api","postMessageFx","createControllerEffect","postMessage","getAlternativesFx","createEffect","getAlternatives","translateTextFx","payload","response","postTranslateText","data","translations","translation","translatedText","textToSpeechTextFx","postTextToSpeech","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AAYA,IAAAE,UAAA,GAAAF,OAAA;AAEO,MAAMG,UAAU,CAAC;EAMdC,kBAAkBA,CAACC,KAAe,EAAEC,OAAO,GAAG,KAAK,EAAE;IAC3D,MAAMC,YAAY,GAAGD,OAAO,GACxBE,MAAM,CAACC,OAAO,CAACC,qCAA0B,CAAC,GAC1CF,MAAM,CAACC,OAAO,CAACE,6BAAkB,CAAC;IAEtC,OAAON,KAAK,CAACO,GAAG,CAACC,IAAI,IACnBN,YAAY,CAACO,MAAM,CACjB,CAACC,OAAO,EAAE,CAACC,OAAO,EAAEC,WAAW,CAAC,KAAKF,OAAO,CAACG,OAAO,CAAC,IAAIC,MAAM,CAACH,OAAO,EAAE,GAAG,CAAC,EAAEC,WAAW,CAAC,EAC3FJ,IACF,CACF,CAAC;EACH;EAEAO,WAAWA,CAACC,GAA6B,EAAE;IACzC,IAAI,CAACC,aAAa,GAAG,IAAAC,6BAAsB,EAACF,GAAG,CAACG,WAAW,CAAC;IAC5D,IAAI,CAACC,iBAAiB,GAAG,IAAAC,sBAAY,EAACL,GAAG,CAACM,eAAe,CAAC;IAC1D,IAAI,CAACC,eAAe,GAAG,IAAAF,sBAAY,EAAC,MAAOG,OAA+B,IAAK;MAC7E,MAAMC,QAAQ,GAAG,MAAMT,GAAG,CAACU,iBAAiB,CAAC;QAC3C,GAAGF,OAAO;QACVhB,IAAI,EAAE,IAAI,CAACT,kBAAkB,CAACyB,OAAO,CAAChB,IAAI;MAC5C,CAAC,CAAC;MAEF,OAAO;QACL,GAAGiB,QAAQ;QACXE,IAAI,EAAE;UACJ,GAAGF,QAAQ,CAACE,IAAI;UAChBC,YAAY,EAAEH,QAAQ,CAACE,IAAI,CAACC,YAAY,CAACrB,GAAG,CAACsB,WAAW,KAAK;YAC3D,GAAGA,WAAW;YACdC,cAAc,EAAE,IAAI,CAAC/B,kBAAkB,CAAC,CAAC8B,WAAW,CAACC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;UAC/E,CAAC,CAAC;QACJ;MACF,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAACC,kBAAkB,GAAG,IAAAV,sBAAY,EAACL,GAAG,CAACgB,gBAAgB,CAAC;EAC9D;AACF;AAACC,OAAA,CAAAnC,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -159,8 +159,6 @@ class TeacherFeedbackModel {
|
|
|
159
159
|
};
|
|
160
160
|
if (!isOpen) {
|
|
161
161
|
delete updatedAssignmentComments[payload.problemId];
|
|
162
|
-
|
|
163
|
-
// If no problems left, remove the assignment entirely
|
|
164
162
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
165
163
|
const updatedState = new Map(state);
|
|
166
164
|
updatedState.delete(assignmentId);
|
|
@@ -196,8 +194,6 @@ class TeacherFeedbackModel {
|
|
|
196
194
|
...assignmentComments
|
|
197
195
|
};
|
|
198
196
|
delete updatedAssignmentComments[problemId];
|
|
199
|
-
|
|
200
|
-
// If no problems left, remove the assignment entirely
|
|
201
197
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
202
198
|
const updatedState = new Map(state);
|
|
203
199
|
updatedState.delete(assignmentId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_effector","require","_constants","TeacherFeedbackModel","setCommentsSeen","createEvent","$comments","createStore","Map","setIsOpened","$isOpened","restore","setIsVisible","$isVisible","sockets","onCreate","onDeleted","constructor","api","credits","getCommentsByAssignmentIdFx","createEffect","id","response","getCommentsByAssignmentId","data","assignmentId","updateCommentSeenFx","updateCommentSeenStatus","$assignmentId","$currentProblemId","problemId","$locale","locale","sample","clock","fn","target","source","filter","isOpen","currentProblemId","payload","_","_id","ids","feedback","assignmentComments","get","comments","hasUnreadComments","some","comment","isRead","map","on","doneData","Object","values","problemFeedback","length","state","problemsMap","entries","unreadMessages","unreadMessagesCount","updatedState","set","updatedComments","includes","updatedFeedback","updatedAssignmentComments","exerciseId","getState","isDeleteMessageUnread","keys","delete","getEmptyComment","EMPTY_COMMENT_ID","exports"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/teacherFeedback.model.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;
|
|
1
|
+
{"version":3,"names":["_effector","require","_constants","TeacherFeedbackModel","setCommentsSeen","createEvent","$comments","createStore","Map","setIsOpened","$isOpened","restore","setIsVisible","$isVisible","sockets","onCreate","onDeleted","constructor","api","credits","getCommentsByAssignmentIdFx","createEffect","id","response","getCommentsByAssignmentId","data","assignmentId","updateCommentSeenFx","updateCommentSeenStatus","$assignmentId","$currentProblemId","problemId","$locale","locale","sample","clock","fn","target","source","filter","isOpen","currentProblemId","payload","_","_id","ids","feedback","assignmentComments","get","comments","hasUnreadComments","some","comment","isRead","map","on","doneData","Object","values","problemFeedback","length","state","problemsMap","entries","unreadMessages","unreadMessagesCount","updatedState","set","updatedComments","includes","updatedFeedback","updatedAssignmentComments","exerciseId","getState","isDeleteMessageUnread","keys","delete","getEmptyComment","EMPTY_COMMENT_ID","exports"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/teacherFeedback.model.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,18 +10,27 @@ export const DEFAULT_VOICE = {
|
|
|
10
10
|
languageCode: 'en-US',
|
|
11
11
|
name: 'en-US-Wavenet-C'
|
|
12
12
|
};
|
|
13
|
-
export const TEXT_TO_SPEECH_CONFIG = Platform.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
export const TEXT_TO_SPEECH_CONFIG = Platform.select({
|
|
14
|
+
ios: {
|
|
15
|
+
audioConfig: {
|
|
16
|
+
audioEncoding: 'MP3',
|
|
17
|
+
pitch: 0.8,
|
|
18
|
+
speakingRate: 0.8
|
|
19
|
+
},
|
|
20
|
+
voice: {
|
|
21
|
+
languageCode: 'en-US',
|
|
22
|
+
name: 'en-US-Wavenet-C'
|
|
23
|
+
}
|
|
18
24
|
},
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
25
|
+
default: {
|
|
26
|
+
audioConfig: AUDIO_CONFIG,
|
|
27
|
+
voice: DEFAULT_VOICE
|
|
22
28
|
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
});
|
|
30
|
+
export const KATEX_REPLACEMENTS = {
|
|
31
|
+
'\\$': '__KATEX_DOLLAR_SYMBOL__'
|
|
32
|
+
};
|
|
33
|
+
export const KATEX_REPLACEMENTS_REVERSE = {
|
|
34
|
+
__KATEX_DOLLAR_SYMBOL__: '$'
|
|
26
35
|
};
|
|
27
36
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","AUDIO_CONFIG","audioEncoding","pitch","speakingRate","DEFAULT_VOICE","languageCode","name","TEXT_TO_SPEECH_CONFIG","
|
|
1
|
+
{"version":3,"names":["Platform","AUDIO_CONFIG","audioEncoding","pitch","speakingRate","DEFAULT_VOICE","languageCode","name","TEXT_TO_SPEECH_CONFIG","select","ios","audioConfig","voice","default","KATEX_REPLACEMENTS","KATEX_REPLACEMENTS_REVERSE","__KATEX_DOLLAR_SYMBOL__"],"sourceRoot":"../../../../src","sources":["features/chatbot/constants.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,OAAO,MAAMC,YAAY,GAAG;EAC1BC,aAAa,EAAE,UAAU;EACzBC,KAAK,EAAE,CAAC;EACRC,YAAY,EAAE;AAChB,CAAC;AAED,OAAO,MAAMC,aAAa,GAAG;EAC3BC,YAAY,EAAE,OAAO;EACrBC,IAAI,EAAE;AACR,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGR,QAAQ,CAACS,MAAM,CAAC;EACnDC,GAAG,EAAE;IACHC,WAAW,EAAE;MACXT,aAAa,EAAE,KAAK;MACpBC,KAAK,EAAE,GAAG;MACVC,YAAY,EAAE;IAChB,CAAC;IACDQ,KAAK,EAAE;MACLN,YAAY,EAAE,OAAO;MACrBC,IAAI,EAAE;IACR;EACF,CAAC;EACDM,OAAO,EAAE;IACPF,WAAW,EAAEV,YAAY;IACzBW,KAAK,EAAEP;EACT;AACF,CAAC,CAAC;AAEF,OAAO,MAAMS,kBAAkB,GAAG;EAChC,KAAK,EAAE;AACT,CAAU;AAEV,OAAO,MAAMC,0BAA0B,GAAG;EACxCC,uBAAuB,EAAE;AAC3B,CAAU","ignoreList":[]}
|
|
@@ -2,11 +2,31 @@
|
|
|
2
2
|
|
|
3
3
|
import { createEffect } from 'effector';
|
|
4
4
|
import { createControllerEffect } from "../../../lib/effector/index.js";
|
|
5
|
+
import { KATEX_REPLACEMENTS, KATEX_REPLACEMENTS_REVERSE } from "../constants.js";
|
|
5
6
|
export class ChatbotAPI {
|
|
7
|
+
replaceKatexSyntax(texts, reverse = false) {
|
|
8
|
+
const replacements = reverse ? Object.entries(KATEX_REPLACEMENTS_REVERSE) : Object.entries(KATEX_REPLACEMENTS);
|
|
9
|
+
return texts.map(text => replacements.reduce((newText, [pattern, placeholder]) => newText.replace(new RegExp(pattern, 'g'), placeholder), text));
|
|
10
|
+
}
|
|
6
11
|
constructor(api) {
|
|
7
12
|
this.postMessageFx = createControllerEffect(api.postMessage);
|
|
8
13
|
this.getAlternativesFx = createEffect(api.getAlternatives);
|
|
9
|
-
this.translateTextFx = createEffect(
|
|
14
|
+
this.translateTextFx = createEffect(async payload => {
|
|
15
|
+
const response = await api.postTranslateText({
|
|
16
|
+
...payload,
|
|
17
|
+
text: this.replaceKatexSyntax(payload.text)
|
|
18
|
+
});
|
|
19
|
+
return {
|
|
20
|
+
...response,
|
|
21
|
+
data: {
|
|
22
|
+
...response.data,
|
|
23
|
+
translations: response.data.translations.map(translation => ({
|
|
24
|
+
...translation,
|
|
25
|
+
translatedText: this.replaceKatexSyntax([translation.translatedText], true)[0]
|
|
26
|
+
}))
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
});
|
|
10
30
|
this.textToSpeechTextFx = createEffect(api.postTextToSpeech);
|
|
11
31
|
}
|
|
12
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createEffect","createControllerEffect","ChatbotAPI","constructor","api","postMessageFx","postMessage","getAlternativesFx","getAlternatives","translateTextFx","postTranslateText","textToSpeechTextFx","postTextToSpeech"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAgB,UAAU;AAE/C,SAASC,sBAAsB,QAAQ,gCAAuB;
|
|
1
|
+
{"version":3,"names":["createEffect","createControllerEffect","KATEX_REPLACEMENTS","KATEX_REPLACEMENTS_REVERSE","ChatbotAPI","replaceKatexSyntax","texts","reverse","replacements","Object","entries","map","text","reduce","newText","pattern","placeholder","replace","RegExp","constructor","api","postMessageFx","postMessage","getAlternativesFx","getAlternatives","translateTextFx","payload","response","postTranslateText","data","translations","translation","translatedText","textToSpeechTextFx","postTextToSpeech"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/api.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAgB,UAAU;AAE/C,SAASC,sBAAsB,QAAQ,gCAAuB;AAY9D,SAASC,kBAAkB,EAAEC,0BAA0B,QAAQ,iBAAc;AAE7E,OAAO,MAAMC,UAAU,CAAC;EAMdC,kBAAkBA,CAACC,KAAe,EAAEC,OAAO,GAAG,KAAK,EAAE;IAC3D,MAAMC,YAAY,GAAGD,OAAO,GACxBE,MAAM,CAACC,OAAO,CAACP,0BAA0B,CAAC,GAC1CM,MAAM,CAACC,OAAO,CAACR,kBAAkB,CAAC;IAEtC,OAAOI,KAAK,CAACK,GAAG,CAACC,IAAI,IACnBJ,YAAY,CAACK,MAAM,CACjB,CAACC,OAAO,EAAE,CAACC,OAAO,EAAEC,WAAW,CAAC,KAAKF,OAAO,CAACG,OAAO,CAAC,IAAIC,MAAM,CAACH,OAAO,EAAE,GAAG,CAAC,EAAEC,WAAW,CAAC,EAC3FJ,IACF,CACF,CAAC;EACH;EAEAO,WAAWA,CAACC,GAA6B,EAAE;IACzC,IAAI,CAACC,aAAa,GAAGpB,sBAAsB,CAACmB,GAAG,CAACE,WAAW,CAAC;IAC5D,IAAI,CAACC,iBAAiB,GAAGvB,YAAY,CAACoB,GAAG,CAACI,eAAe,CAAC;IAC1D,IAAI,CAACC,eAAe,GAAGzB,YAAY,CAAC,MAAO0B,OAA+B,IAAK;MAC7E,MAAMC,QAAQ,GAAG,MAAMP,GAAG,CAACQ,iBAAiB,CAAC;QAC3C,GAAGF,OAAO;QACVd,IAAI,EAAE,IAAI,CAACP,kBAAkB,CAACqB,OAAO,CAACd,IAAI;MAC5C,CAAC,CAAC;MAEF,OAAO;QACL,GAAGe,QAAQ;QACXE,IAAI,EAAE;UACJ,GAAGF,QAAQ,CAACE,IAAI;UAChBC,YAAY,EAAEH,QAAQ,CAACE,IAAI,CAACC,YAAY,CAACnB,GAAG,CAACoB,WAAW,KAAK;YAC3D,GAAGA,WAAW;YACdC,cAAc,EAAE,IAAI,CAAC3B,kBAAkB,CAAC,CAAC0B,WAAW,CAACC,cAAc,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;UAC/E,CAAC,CAAC;QACJ;MACF,CAAC;IACH,CAAC,CAAC;IACF,IAAI,CAACC,kBAAkB,GAAGjC,YAAY,CAACoB,GAAG,CAACc,gBAAgB,CAAC;EAC9D;AACF","ignoreList":[]}
|
|
@@ -155,8 +155,6 @@ export class TeacherFeedbackModel {
|
|
|
155
155
|
};
|
|
156
156
|
if (!isOpen) {
|
|
157
157
|
delete updatedAssignmentComments[payload.problemId];
|
|
158
|
-
|
|
159
|
-
// If no problems left, remove the assignment entirely
|
|
160
158
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
161
159
|
const updatedState = new Map(state);
|
|
162
160
|
updatedState.delete(assignmentId);
|
|
@@ -192,8 +190,6 @@ export class TeacherFeedbackModel {
|
|
|
192
190
|
...assignmentComments
|
|
193
191
|
};
|
|
194
192
|
delete updatedAssignmentComments[problemId];
|
|
195
|
-
|
|
196
|
-
// If no problems left, remove the assignment entirely
|
|
197
193
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
198
194
|
const updatedState = new Map(state);
|
|
199
195
|
updatedState.delete(assignmentId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["createEffect","createEvent","createStore","restore","sample","EMPTY_COMMENT_ID","getEmptyComment","TeacherFeedbackModel","setCommentsSeen","$comments","Map","setIsOpened","$isOpened","setIsVisible","$isVisible","sockets","onCreate","onDeleted","constructor","api","credits","getCommentsByAssignmentIdFx","id","response","getCommentsByAssignmentId","data","assignmentId","updateCommentSeenFx","updateCommentSeenStatus","$assignmentId","$currentProblemId","problemId","$locale","locale","clock","fn","target","source","filter","isOpen","currentProblemId","payload","_","_id","ids","feedback","assignmentComments","get","comments","hasUnreadComments","some","comment","isRead","map","on","doneData","Object","values","problemFeedback","length","state","problemsMap","entries","unreadMessages","unreadMessagesCount","updatedState","set","updatedComments","includes","updatedFeedback","updatedAssignmentComments","exerciseId","getState","isDeleteMessageUnread","keys","delete"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/teacherFeedback.model.ts"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["createEffect","createEvent","createStore","restore","sample","EMPTY_COMMENT_ID","getEmptyComment","TeacherFeedbackModel","setCommentsSeen","$comments","Map","setIsOpened","$isOpened","setIsVisible","$isVisible","sockets","onCreate","onDeleted","constructor","api","credits","getCommentsByAssignmentIdFx","id","response","getCommentsByAssignmentId","data","assignmentId","updateCommentSeenFx","updateCommentSeenStatus","$assignmentId","$currentProblemId","problemId","$locale","locale","clock","fn","target","source","filter","isOpen","currentProblemId","payload","_","_id","ids","feedback","assignmentComments","get","comments","hasUnreadComments","some","comment","isRead","map","on","doneData","Object","values","problemFeedback","length","state","problemsMap","entries","unreadMessages","unreadMessagesCount","updatedState","set","updatedComments","includes","updatedFeedback","updatedAssignmentComments","exerciseId","getState","isDeleteMessageUnread","keys","delete"],"sourceRoot":"../../../../../src","sources":["features/feedback/model/teacherFeedback.model.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -18,4 +18,10 @@ export declare const TEXT_TO_SPEECH_CONFIG: {
|
|
|
18
18
|
name: string;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
+
export declare const KATEX_REPLACEMENTS: {
|
|
22
|
+
readonly '\\$': "__KATEX_DOLLAR_SYMBOL__";
|
|
23
|
+
};
|
|
24
|
+
export declare const KATEX_REPLACEMENTS_REVERSE: {
|
|
25
|
+
readonly __KATEX_DOLLAR_SYMBOL__: "$";
|
|
26
|
+
};
|
|
21
27
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;CAgBhC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;CAErB,CAAA;AAEV,eAAO,MAAM,0BAA0B;;CAE7B,CAAA"}
|
|
@@ -7,6 +7,7 @@ export declare class ChatbotAPI {
|
|
|
7
7
|
getAlternativesFx: Effect<void, GetAlternativesResponse>;
|
|
8
8
|
translateTextFx: Effect<GoogleTranslatePayload, GoogleTranslateResponse>;
|
|
9
9
|
textToSpeechTextFx: Effect<GoogleText2SpeechPayload, GoogleText2SpeechResponse>;
|
|
10
|
+
private replaceKatexSyntax;
|
|
10
11
|
constructor(api: ChatbotModelProps['api']);
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAG3B,qBAAa,UAAU;IACrB,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAA;IACxE,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;IACxD,eAAe,EAAE,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAA;IACxE,kBAAkB,EAAE,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAA;IAE/E,OAAO,CAAC,kBAAkB;gBAad,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC;CAsB1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAGN,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AAGvC,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE;QACP,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACnC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;KACrC,CAAA;IACD,GAAG,EAAE;QACH,yBAAyB,EAAE,CACzB,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAC,CAAA;QAC5D,uBAAuB,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAChF,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;AAE9D,qBAAa,oBAAoB;IAC/B,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAErC,eAAe;aAAsB,MAAM,EAAE;0BAAoB,MAAM;sBAAgB,MAAM;OAAK;IAClG,SAAS,6BAAsC;IAE/C,WAAW,4CAAyB;IACpC,SAAS,yBAAmC;IAC5C,YAAY,4CAAyB;IACrC,UAAU,yBAAoC;IAE9C,2BAA2B,EAAE,MAAM,CACjC,oBAAoB,EACpB;QACE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAA;QACpD,YAAY,EAAE,MAAM,CAAA;KACrB,CACF,CAAA;IACD,mBAAmB,EAAE,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO;;;MAGN;gBAEW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,yBAAyB;CA8MxD"}
|
|
@@ -18,4 +18,10 @@ export declare const TEXT_TO_SPEECH_CONFIG: {
|
|
|
18
18
|
name: string;
|
|
19
19
|
};
|
|
20
20
|
};
|
|
21
|
+
export declare const KATEX_REPLACEMENTS: {
|
|
22
|
+
readonly '\\$': "__KATEX_DOLLAR_SYMBOL__";
|
|
23
|
+
};
|
|
24
|
+
export declare const KATEX_REPLACEMENTS_REVERSE: {
|
|
25
|
+
readonly __KATEX_DOLLAR_SYMBOL__: "$";
|
|
26
|
+
};
|
|
21
27
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../src/features/chatbot/constants.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,eAAO,MAAM,aAAa;;;CAGzB,CAAA;AAED,eAAO,MAAM,qBAAqB;;;;;;;;;;CAgBhC,CAAA;AAEF,eAAO,MAAM,kBAAkB;;CAErB,CAAA;AAEV,eAAO,MAAM,0BAA0B;;CAE7B,CAAA"}
|
|
@@ -7,6 +7,7 @@ export declare class ChatbotAPI {
|
|
|
7
7
|
getAlternativesFx: Effect<void, GetAlternativesResponse>;
|
|
8
8
|
translateTextFx: Effect<GoogleTranslatePayload, GoogleTranslateResponse>;
|
|
9
9
|
textToSpeechTextFx: Effect<GoogleText2SpeechPayload, GoogleText2SpeechResponse>;
|
|
10
|
+
private replaceKatexSyntax;
|
|
10
11
|
constructor(api: ChatbotModelProps['api']);
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=api.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,MAAM,EAAE,MAAM,UAAU,CAAA;AAG/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,oBAAoB,CAAA;AAG3B,qBAAa,UAAU;IACrB,aAAa,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,CAAA;IACxE,iBAAiB,EAAE,MAAM,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAA;IACxD,eAAe,EAAE,MAAM,CAAC,sBAAsB,EAAE,uBAAuB,CAAC,CAAA;IACxE,kBAAkB,EAAE,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAA;IAE/E,OAAO,CAAC,kBAAkB;gBAad,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC;CAsB1C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EAGN,aAAa,EACd,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AAGvC,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE;QACP,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QACnC,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;QAChC,MAAM,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;KACrC,CAAA;IACD,GAAG,EAAE;QACH,yBAAyB,EAAE,CACzB,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAC,CAAA;QAC5D,uBAAuB,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAChF,CAAA;CACF,CAAA;AAED,KAAK,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAA;AAE9D,qBAAa,oBAAoB;IAC/B,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACpC,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAErC,eAAe;aAAsB,MAAM,EAAE;0BAAoB,MAAM;sBAAgB,MAAM;OAAK;IAClG,SAAS,6BAAsC;IAE/C,WAAW,4CAAyB;IACpC,SAAS,yBAAmC;IAC5C,YAAY,4CAAyB;IACrC,UAAU,yBAAoC;IAE9C,2BAA2B,EAAE,MAAM,CACjC,oBAAoB,EACpB;QACE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAA;QACpD,YAAY,EAAE,MAAM,CAAA;KACrB,CACF,CAAA;IACD,mBAAmB,EAAE,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO;;;MAGN;gBAEW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,yBAAyB;CA8MxD"}
|
package/package.json
CHANGED
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
import { Platform } from 'react-native'
|
|
2
2
|
|
|
3
3
|
export const AUDIO_CONFIG = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
audioEncoding: 'LINEAR16',
|
|
5
|
+
pitch: 0,
|
|
6
|
+
speakingRate: 0.8,
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
export const DEFAULT_VOICE = {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
languageCode: 'en-US',
|
|
11
|
+
name: 'en-US-Wavenet-C',
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
export const TEXT_TO_SPEECH_CONFIG =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
export const TEXT_TO_SPEECH_CONFIG = Platform.select({
|
|
15
|
+
ios: {
|
|
16
|
+
audioConfig: {
|
|
17
|
+
audioEncoding: 'MP3',
|
|
18
|
+
pitch: 0.8,
|
|
19
|
+
speakingRate: 0.8,
|
|
20
|
+
},
|
|
21
|
+
voice: {
|
|
22
|
+
languageCode: 'en-US',
|
|
23
|
+
name: 'en-US-Wavenet-C',
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
default: {
|
|
27
|
+
audioConfig: AUDIO_CONFIG,
|
|
28
|
+
voice: DEFAULT_VOICE,
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
export const KATEX_REPLACEMENTS = {
|
|
33
|
+
'\\$': '__KATEX_DOLLAR_SYMBOL__',
|
|
34
|
+
} as const
|
|
35
|
+
|
|
36
|
+
export const KATEX_REPLACEMENTS_REVERSE = {
|
|
37
|
+
__KATEX_DOLLAR_SYMBOL__: '$',
|
|
38
|
+
} as const
|
|
@@ -4,25 +4,55 @@ import { createControllerEffect } from '../../../lib/effector'
|
|
|
4
4
|
import { ControlledEffect } from '../../../lib/effector/createControllerEffect'
|
|
5
5
|
import { ChatbotModelProps } from '../types/model.types'
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
GetAlternativesResponse,
|
|
8
|
+
PostMessagePayload,
|
|
9
|
+
PostMessageResponse,
|
|
10
|
+
GoogleTranslatePayload,
|
|
11
|
+
GoogleTranslateResponse,
|
|
12
|
+
GoogleText2SpeechPayload,
|
|
13
|
+
GoogleText2SpeechResponse,
|
|
14
14
|
} from '../types/api.types'
|
|
15
|
+
import { KATEX_REPLACEMENTS, KATEX_REPLACEMENTS_REVERSE } from '../constants'
|
|
15
16
|
|
|
16
17
|
export class ChatbotAPI {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
postMessageFx: ControlledEffect<PostMessagePayload, PostMessageResponse>
|
|
19
|
+
getAlternativesFx: Effect<void, GetAlternativesResponse>
|
|
20
|
+
translateTextFx: Effect<GoogleTranslatePayload, GoogleTranslateResponse>
|
|
21
|
+
textToSpeechTextFx: Effect<GoogleText2SpeechPayload, GoogleText2SpeechResponse>
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
private replaceKatexSyntax(texts: string[], reverse = false) {
|
|
24
|
+
const replacements = reverse
|
|
25
|
+
? Object.entries(KATEX_REPLACEMENTS_REVERSE)
|
|
26
|
+
: Object.entries(KATEX_REPLACEMENTS)
|
|
27
|
+
|
|
28
|
+
return texts.map(text =>
|
|
29
|
+
replacements.reduce(
|
|
30
|
+
(newText, [pattern, placeholder]) => newText.replace(new RegExp(pattern, 'g'), placeholder),
|
|
31
|
+
text,
|
|
32
|
+
),
|
|
33
|
+
)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
constructor(api: ChatbotModelProps['api']) {
|
|
37
|
+
this.postMessageFx = createControllerEffect(api.postMessage)
|
|
38
|
+
this.getAlternativesFx = createEffect(api.getAlternatives)
|
|
39
|
+
this.translateTextFx = createEffect(async (payload: GoogleTranslatePayload) => {
|
|
40
|
+
const response = await api.postTranslateText({
|
|
41
|
+
...payload,
|
|
42
|
+
text: this.replaceKatexSyntax(payload.text),
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
return {
|
|
46
|
+
...response,
|
|
47
|
+
data: {
|
|
48
|
+
...response.data,
|
|
49
|
+
translations: response.data.translations.map(translation => ({
|
|
50
|
+
...translation,
|
|
51
|
+
translatedText: this.replaceKatexSyntax([translation.translatedText], true)[0],
|
|
52
|
+
})),
|
|
53
|
+
},
|
|
54
|
+
}
|
|
55
|
+
})
|
|
56
|
+
this.textToSpeechTextFx = createEffect(api.postTextToSpeech)
|
|
57
|
+
}
|
|
28
58
|
}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
createEffect,
|
|
3
|
+
createEvent,
|
|
4
|
+
createStore,
|
|
5
|
+
Effect,
|
|
6
|
+
restore,
|
|
7
|
+
sample,
|
|
8
|
+
StoreWritable,
|
|
9
|
+
} from 'effector'
|
|
2
10
|
import {
|
|
3
11
|
CommentsEntity,
|
|
4
12
|
GetCommentsByIdProps,
|
|
@@ -15,7 +23,9 @@ type TeacherFeedbackModelProps = {
|
|
|
15
23
|
locale: StoreWritable<Locale | null>
|
|
16
24
|
}
|
|
17
25
|
api: {
|
|
18
|
-
getCommentsByAssignmentId: (
|
|
26
|
+
getCommentsByAssignmentId: (
|
|
27
|
+
props: GetCommentsByIdProps,
|
|
28
|
+
) => Promise<Record<string, { comments: TeacherComment[] }>>
|
|
19
29
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>
|
|
20
30
|
}
|
|
21
31
|
}
|
|
@@ -88,7 +98,7 @@ export class TeacherFeedbackModel {
|
|
|
88
98
|
filter: ([feedback, currentProblemId, assignmentId], isOpen) => {
|
|
89
99
|
const assignmentComments = feedback.get(assignmentId) || {}
|
|
90
100
|
const comments = assignmentComments[currentProblemId]?.comments ?? []
|
|
91
|
-
const hasUnreadComments = comments.some(
|
|
101
|
+
const hasUnreadComments = comments.some(comment => !comment.isRead)
|
|
92
102
|
return isOpen && hasUnreadComments
|
|
93
103
|
},
|
|
94
104
|
fn: ([feedback, currentProblemId, assignmentId]) => {
|
|
@@ -97,14 +107,14 @@ export class TeacherFeedbackModel {
|
|
|
97
107
|
return {
|
|
98
108
|
currentProblemId,
|
|
99
109
|
assignmentId,
|
|
100
|
-
ids: comments.filter(
|
|
110
|
+
ids: comments.filter(comment => !comment.isRead).map(comment => comment._id),
|
|
101
111
|
}
|
|
102
112
|
},
|
|
103
113
|
target: [this.setCommentsSeen, this.updateCommentSeenFx],
|
|
104
114
|
})
|
|
105
115
|
|
|
106
116
|
this.$isVisible.on(this.getCommentsByAssignmentIdFx.doneData, (_, { data }) => {
|
|
107
|
-
return Object.values(data).some(
|
|
117
|
+
return Object.values(data).some(problemFeedback => problemFeedback.comments?.length > 0)
|
|
108
118
|
})
|
|
109
119
|
|
|
110
120
|
this.$comments
|
|
@@ -112,7 +122,7 @@ export class TeacherFeedbackModel {
|
|
|
112
122
|
const problemsMap: Record<string, CommentsEntity> = {}
|
|
113
123
|
|
|
114
124
|
for (const [problemId, { comments }] of Object.entries(data)) {
|
|
115
|
-
const unreadMessages = comments.filter(
|
|
125
|
+
const unreadMessages = comments.filter(comment => !comment.isRead)
|
|
116
126
|
problemsMap[problemId] = {
|
|
117
127
|
comments,
|
|
118
128
|
unreadMessagesCount: unreadMessages.length,
|
|
@@ -130,8 +140,8 @@ export class TeacherFeedbackModel {
|
|
|
130
140
|
const feedback = assignmentComments[currentProblemId]
|
|
131
141
|
if (!feedback) return state
|
|
132
142
|
|
|
133
|
-
const updatedComments = feedback.comments.map(
|
|
134
|
-
ids.includes(comment._id) ? { ...comment, isRead: true } : comment
|
|
143
|
+
const updatedComments = feedback.comments.map(comment =>
|
|
144
|
+
ids.includes(comment._id) ? { ...comment, isRead: true } : comment,
|
|
135
145
|
)
|
|
136
146
|
|
|
137
147
|
const updatedFeedback = {
|
|
@@ -152,7 +162,10 @@ export class TeacherFeedbackModel {
|
|
|
152
162
|
})
|
|
153
163
|
.on(this.sockets.onCreate, (state, payload) => {
|
|
154
164
|
const assignmentComments = state.get(payload.exerciseId) || {}
|
|
155
|
-
const feedback = assignmentComments[payload.problemId] ?? {
|
|
165
|
+
const feedback = assignmentComments[payload.problemId] ?? {
|
|
166
|
+
comments: [],
|
|
167
|
+
unreadMessagesCount: 0,
|
|
168
|
+
}
|
|
156
169
|
|
|
157
170
|
const updatedFeedback = {
|
|
158
171
|
...feedback,
|
|
@@ -179,12 +192,14 @@ export class TeacherFeedbackModel {
|
|
|
179
192
|
if (!feedback) return state
|
|
180
193
|
|
|
181
194
|
const isDeleteMessageUnread = feedback.comments.some(
|
|
182
|
-
|
|
195
|
+
comment => comment._id === payload._id && !comment.isRead,
|
|
183
196
|
)
|
|
184
197
|
|
|
185
198
|
const updatedFeedback = {
|
|
186
|
-
comments: feedback.comments.filter(
|
|
187
|
-
unreadMessagesCount: isDeleteMessageUnread
|
|
199
|
+
comments: feedback.comments.filter(comment => comment._id !== payload._id),
|
|
200
|
+
unreadMessagesCount: isDeleteMessageUnread
|
|
201
|
+
? feedback.unreadMessagesCount - 1
|
|
202
|
+
: feedback.unreadMessagesCount,
|
|
188
203
|
}
|
|
189
204
|
|
|
190
205
|
const isOpen = this.$isOpened.getState()
|
|
@@ -195,7 +210,6 @@ export class TeacherFeedbackModel {
|
|
|
195
210
|
if (!isOpen) {
|
|
196
211
|
delete updatedAssignmentComments[payload.problemId]
|
|
197
212
|
|
|
198
|
-
// If no problems left, remove the assignment entirely
|
|
199
213
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
200
214
|
const updatedState = new Map(state)
|
|
201
215
|
updatedState.delete(assignmentId)
|
|
@@ -237,7 +251,6 @@ export class TeacherFeedbackModel {
|
|
|
237
251
|
const updatedAssignmentComments = { ...assignmentComments }
|
|
238
252
|
delete updatedAssignmentComments[problemId]
|
|
239
253
|
|
|
240
|
-
// If no problems left, remove the assignment entirely
|
|
241
254
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
242
255
|
const updatedState = new Map(state)
|
|
243
256
|
updatedState.delete(assignmentId)
|