@magmamath/students-features 0.2.0-hotfix-circular-dependencies-chatbot → 0.2.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.
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +5 -21
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/model.js +2 -12
- package/dist/commonjs/features/chatbot/model/model.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/t2s.js +4 -8
- package/dist/commonjs/features/chatbot/model/t2s.js.map +1 -1
- package/dist/commonjs/features/chatbot/model/translation.js +15 -30
- package/dist/commonjs/features/chatbot/model/translation.js.map +1 -1
- package/dist/commonjs/features/feedback/components/EmptyComment/EmptyComment.js +3 -2
- package/dist/commonjs/features/feedback/components/EmptyComment/EmptyComment.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedback.js +5 -9
- package/dist/commonjs/features/feedback/components/TeacherFeedback.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +11 -47
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +3 -7
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +5 -15
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
- package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js +3 -6
- package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
- package/dist/commonjs/features/feedback/constants.js +1 -2
- package/dist/commonjs/features/feedback/constants.js.map +1 -1
- package/dist/commonjs/features/feedback/index.js +0 -11
- package/dist/commonjs/features/feedback/index.js.map +1 -1
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js +34 -102
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +6 -22
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/module/features/chatbot/model/model.js +2 -12
- package/dist/module/features/chatbot/model/model.js.map +1 -1
- package/dist/module/features/chatbot/model/t2s.js +4 -8
- package/dist/module/features/chatbot/model/t2s.js.map +1 -1
- package/dist/module/features/chatbot/model/translation.js +15 -30
- package/dist/module/features/chatbot/model/translation.js.map +1 -1
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js +3 -2
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedback.js +5 -9
- package/dist/module/features/feedback/components/TeacherFeedback.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +11 -47
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +4 -8
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +5 -15
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
- package/dist/module/features/feedback/components/UnreadMessagesBadge.js +3 -6
- package/dist/module/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
- package/dist/module/features/feedback/constants.js +0 -1
- package/dist/module/features/feedback/constants.js.map +1 -1
- package/dist/module/features/feedback/index.js +0 -1
- package/dist/module/features/feedback/index.js.map +1 -1
- package/dist/module/features/feedback/model/teacherFeedback.model.js +34 -102
- package/dist/module/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts +5 -7
- package/dist/typescript/commonjs/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts +5 -10
- package/dist/typescript/commonjs/features/chatbot/model/translation.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedback.d.ts +1 -2
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +1 -2
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +1 -2
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts +1 -2
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts +2 -3
- package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/constants.d.ts +0 -1
- package/dist/typescript/commonjs/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/index.d.ts +0 -1
- package/dist/typescript/commonjs/features/feedback/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts +4 -11
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/model.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts +5 -7
- package/dist/typescript/module/features/chatbot/model/t2s.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/model/translation.d.ts +5 -10
- package/dist/typescript/module/features/chatbot/model/translation.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedback.d.ts +1 -2
- package/dist/typescript/module/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +1 -2
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +1 -2
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts +1 -2
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts +2 -3
- package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/constants.d.ts +0 -1
- package/dist/typescript/module/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/index.d.ts +0 -1
- package/dist/typescript/module/features/feedback/index.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts +4 -11
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/features/chatbot/components/ChatControls/ChatControls.tsx +4 -27
- package/src/features/chatbot/model/model.ts +2 -13
- package/src/features/chatbot/model/t2s.ts +7 -13
- package/src/features/chatbot/model/translation.ts +27 -46
- package/src/features/feedback/components/EmptyComment/EmptyComment.tsx +2 -1
- package/src/features/feedback/components/TeacherFeedback.tsx +4 -7
- package/src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx +10 -48
- package/src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx +5 -6
- package/src/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.tsx +3 -13
- package/src/features/feedback/components/UnreadMessagesBadge.tsx +4 -7
- package/src/features/feedback/constants.ts +0 -2
- package/src/features/feedback/index.ts +0 -1
- package/src/features/feedback/model/teacherFeedback.model.ts +36 -109
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAGxF,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,cAAc,EACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAExC,qBAAa,YAAY;IACrB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAE9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAE9C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,iBAAiB,qDAAkC;IAC5D,QAAQ,CAAC,eAAe,qDAAwC;IAEhE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EACR,OAAO,EACP,GAAG,EACH,QAAQ,GACX,EAAE,iBAAiB;
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,KAAK,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AAGxF,OAAO,EACH,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,cAAc,EAEd,mBAAmB,EACnB,cAAc,EACjB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAExC,qBAAa,YAAY;IACrB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAA;IAE9B,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAE9C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,iBAAiB,qDAAkC;IAC5D,QAAQ,CAAC,eAAe,qDAAwC;IAEhE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EACR,OAAO,EACP,GAAG,EACH,QAAQ,GACX,EAAE,iBAAiB;IAkBpB,QAAQ,CAAC,QAAQ;;;;;;;;;;;;;MAMf;IAEF,QAAQ,CAAC,SAAS;;;;;;;;;;;;;MAMhB;IAEF,QAAQ,CAAC,cAAc;;;;;;;;;;;;;MAMrB;IAEF,OAAO,CAAC,uBAAuB;IAsE/B,OAAO,CAAC,oBAAoB;IA6ErB,iBAAiB;IAoBjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;CAe/E"}
|
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChatbotModel } from './model';
|
|
2
2
|
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types';
|
|
3
|
-
import { ChatbotAPI } from './api';
|
|
4
3
|
export declare class ChatTextToSpeech {
|
|
4
|
+
private readonly model;
|
|
5
5
|
private readonly audioCache;
|
|
6
6
|
private audioProvider;
|
|
7
7
|
readonly setCurrentPlayingId: import("effector").EventCallable<string | null>;
|
|
8
|
-
readonly $currentPlayingId: StoreWritable<string | null>;
|
|
8
|
+
readonly $currentPlayingId: import("effector").StoreWritable<string | null>;
|
|
9
9
|
readonly setStatus: import("effector").EventCallable<AudioStatus>;
|
|
10
|
-
readonly $status: StoreWritable<AudioStatus>;
|
|
11
|
-
|
|
12
|
-
readonly api: ChatbotAPI;
|
|
13
|
-
constructor({ $isOpen, api }: any);
|
|
10
|
+
readonly $status: import("effector").StoreWritable<AudioStatus>;
|
|
11
|
+
constructor(chatbotModel: ChatbotModel);
|
|
14
12
|
setAudioProvider(audioProvider: AudioProvider): void;
|
|
15
13
|
private getCacheKey;
|
|
16
14
|
play({ text, messageId, isTranslated, config }: PlayTextToSpeechProps): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"t2s.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/t2s.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAEtF,qBAAa,gBAAgB;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,aAAa,CAA6B;IAElD,QAAQ,CAAC,mBAAmB,kDAA+B;IAC3D,QAAQ,CAAC,iBAAiB,kDAA0C;IACpE,QAAQ,CAAC,SAAS,gDAA6B;IAC/C,QAAQ,CAAC,OAAO,gDAA+C;gBAEnD,YAAY,EAAE,YAAY;IAQ/B,gBAAgB,CAAC,aAAa,EAAE,aAAa;IAIpD,OAAO,CAAC,WAAW,CAElB;IAEK,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,qBAAqB;IA0DpE,IAAI;IAYJ,KAAK;CAKf"}
|
|
@@ -1,21 +1,16 @@
|
|
|
1
|
-
import { type Effect
|
|
1
|
+
import { type Effect } from 'effector';
|
|
2
|
+
import { ChatbotModel } from './model';
|
|
2
3
|
import { TranslateAlternativesFxProps, TranslateBatchFxProps, TranslateMessageFxProps } from '../types/translation.types';
|
|
3
|
-
import {
|
|
4
|
+
import { ConversationMessage } from '../types/model.types';
|
|
4
5
|
import { GetAlternativesResponse } from '../types/api.types';
|
|
5
|
-
import { ChatbotAPI } from './api';
|
|
6
6
|
export declare class ChatbotTranslation {
|
|
7
|
+
private readonly model;
|
|
7
8
|
readonly setIsTranslated: import("effector").EventCallable<boolean>;
|
|
8
9
|
readonly $isTranslated: import("effector").StoreWritable<boolean>;
|
|
9
10
|
readonly translateMessageFx: Effect<TranslateMessageFxProps, ConversationMessage>;
|
|
10
11
|
readonly translateBatchFx: Effect<TranslateBatchFxProps['params'], ConversationMessage[]>;
|
|
11
12
|
readonly translateAlternativesFx: Effect<TranslateAlternativesFxProps['params'], GetAlternativesResponse | null>;
|
|
12
|
-
|
|
13
|
-
readonly $alternatives: Store<GetAlternativesResponse | null>;
|
|
14
|
-
readonly setAlternatives: import("effector").EventCallable<GetAlternativesResponse | null>;
|
|
15
|
-
readonly defaultMessages: ChatbotModelProps['messages'];
|
|
16
|
-
readonly api: ChatbotAPI;
|
|
17
|
-
readonly messages: any;
|
|
18
|
-
constructor({ credits, $alternatives, setAlternatives, defaultMessages, messages, api, }: any);
|
|
13
|
+
constructor(chatbotModel: ChatbotModel);
|
|
19
14
|
private shouldSkipTranslation;
|
|
20
15
|
private initTranslationSamples;
|
|
21
16
|
private createTranslateAlternativesEffect;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,MAAM,EAAU,
|
|
1
|
+
{"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/translation.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8C,KAAK,MAAM,EAAU,MAAM,UAAU,CAAA;AAC1F,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,EACH,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EAC1B,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAA;AAG5D,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IAEpC,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,aAAa,4CAAuC;IAE7D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,CAAC,CAAA;IACjF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC,CAAA;IACzF,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CACpC,4BAA4B,CAAC,QAAQ,CAAC,EACtC,uBAAuB,GAAG,IAAI,CACjC,CAAA;gBAEW,YAAY,EAAE,YAAY;IAUtC,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,iCAAiC;IAwDzC,OAAO,CAAC,4BAA4B;IAuBpC,OAAO,CAAC,0BAA0B;YA6DpB,uBAAuB;IAmB9B,KAAK;CAGf"}
|
|
@@ -2,8 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { TeacherFeedbackModel } from '../model/teacherFeedback.model';
|
|
3
3
|
type TeacherFeedbackProps = {
|
|
4
4
|
model: TeacherFeedbackModel;
|
|
5
|
-
mode: 'regular' | 'simple';
|
|
6
5
|
};
|
|
7
|
-
export declare const TeacherFeedback: ({ model
|
|
6
|
+
export declare const TeacherFeedback: ({ model }: TeacherFeedbackProps) => React.JSX.Element | null;
|
|
8
7
|
export {};
|
|
9
8
|
//# 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;AAErE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,oBAAoB,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,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,oBAAoB,CAAA;CAC5B,CAAA;AAED,eAAO,MAAM,eAAe,cAAe,oBAAoB,6BAwB9D,CAAA"}
|
|
@@ -4,8 +4,7 @@ type TeacherFeedbackButtonProps = {
|
|
|
4
4
|
isLoading: boolean;
|
|
5
5
|
onPress?: () => void;
|
|
6
6
|
unreadCommentsCount?: number;
|
|
7
|
-
size?: 'small' | 'large';
|
|
8
7
|
};
|
|
9
|
-
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading,
|
|
8
|
+
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
10
9
|
export {};
|
|
11
10
|
//# sourceMappingURL=TeacherFeedbackButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeacherFeedbackButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"TeacherFeedbackButton.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAQzB,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,qBAAqB,yDAK/B,0BAA0B,sBA6C5B,CAAA"}
|
|
@@ -5,8 +5,7 @@ type TeacherCommentProps = {
|
|
|
5
5
|
teacherName: string;
|
|
6
6
|
createdAt: Date;
|
|
7
7
|
locale: Locale | null;
|
|
8
|
-
isLastComment: boolean;
|
|
9
8
|
};
|
|
10
|
-
export declare const TeacherComment: ({ content, teacherName, createdAt, locale
|
|
9
|
+
export declare const TeacherComment: ({ content, teacherName, createdAt, locale }: TeacherCommentProps) => React.JSX.Element;
|
|
11
10
|
export {};
|
|
12
11
|
//# 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;
|
|
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;CACtB,CAAA;AAED,eAAO,MAAM,cAAc,gDAAiD,mBAAmB,sBAkB9F,CAAA"}
|
|
@@ -3,8 +3,7 @@ import { Locale, TeacherComment as FeedbackComment } from '../../types/teacherFe
|
|
|
3
3
|
type TeacherFeedbackCommentsProps = {
|
|
4
4
|
comments: FeedbackComment[] | null;
|
|
5
5
|
locale: Locale | null;
|
|
6
|
-
mode: 'regular' | 'simple';
|
|
7
6
|
};
|
|
8
|
-
export declare const TeacherFeedbackComments: ({ comments, locale
|
|
7
|
+
export declare const TeacherFeedbackComments: ({ comments, locale }: TeacherFeedbackCommentsProps) => React.JSX.Element | null;
|
|
9
8
|
export {};
|
|
10
9
|
//# sourceMappingURL=TeacherFeedbackComments.d.ts.map
|
|
@@ -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;
|
|
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;AAQ7F,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,uBAAuB,yBAA0B,4BAA4B,6BAkCzF,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle
|
|
2
|
+
import { StyleProp, ViewStyle } from 'react-native';
|
|
3
3
|
type UnreadMessagesBadgeProps = {
|
|
4
4
|
badgeContent?: number;
|
|
5
5
|
withBorder?: boolean;
|
|
6
6
|
style?: StyleProp<ViewStyle>;
|
|
7
|
-
textStyle?: StyleProp<TextStyle>;
|
|
8
7
|
};
|
|
9
|
-
export declare const UnreadMessagesBadge: ({ badgeContent, withBorder, style
|
|
8
|
+
export declare const UnreadMessagesBadge: ({ badgeContent, withBorder, style }: UnreadMessagesBadgeProps) => React.JSX.Element;
|
|
10
9
|
export {};
|
|
11
10
|
//# sourceMappingURL=UnreadMessagesBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnreadMessagesBadge.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/UnreadMessagesBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAoC,SAAS,EAAE,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"UnreadMessagesBadge.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/UnreadMessagesBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAoC,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAGrF,KAAK,wBAAwB,GAAG;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,mBAAmB,wCAAiD,wBAAwB,sBAcxG,CAAA"}
|
|
@@ -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
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/features/feedback/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,cAAc,CAAA"}
|
|
@@ -2,7 +2,6 @@ import { Effect, StoreWritable } from 'effector';
|
|
|
2
2
|
import { CommentsEntity, GetCommentsByIdProps, Locale, TeacherComment, UpdateCommentSeenStatusProps } from '../types/teacherFeedback.types';
|
|
3
3
|
type TeacherFeedbackModelProps = {
|
|
4
4
|
credits: {
|
|
5
|
-
assignmentId: StoreWritable<string>;
|
|
6
5
|
problemId: StoreWritable<string>;
|
|
7
6
|
locale: StoreWritable<Locale | null>;
|
|
8
7
|
};
|
|
@@ -13,27 +12,21 @@ type TeacherFeedbackModelProps = {
|
|
|
13
12
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>;
|
|
14
13
|
};
|
|
15
14
|
};
|
|
16
|
-
type CommentsMap = Map<string, Record<string, CommentsEntity>>;
|
|
17
15
|
export declare class TeacherFeedbackModel {
|
|
18
|
-
$assignmentId: StoreWritable<string>;
|
|
19
16
|
$currentProblemId: StoreWritable<string>;
|
|
20
17
|
$locale: StoreWritable<Locale | null>;
|
|
21
18
|
setCommentsSeen: import("effector").EventCallable<{
|
|
22
19
|
ids: string[];
|
|
23
20
|
currentProblemId: string;
|
|
24
|
-
assignmentId: string;
|
|
25
21
|
}>;
|
|
26
|
-
$comments: StoreWritable<
|
|
22
|
+
$comments: StoreWritable<Map<string, CommentsEntity>>;
|
|
27
23
|
setIsOpened: import("effector").EventCallable<boolean>;
|
|
28
24
|
$isOpened: StoreWritable<boolean>;
|
|
29
25
|
setIsVisible: import("effector").EventCallable<boolean>;
|
|
30
26
|
$isVisible: StoreWritable<boolean>;
|
|
31
|
-
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}>;
|
|
35
|
-
assignmentId: string;
|
|
36
|
-
}>;
|
|
27
|
+
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, Record<string, {
|
|
28
|
+
comments: TeacherComment[];
|
|
29
|
+
}>>;
|
|
37
30
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>;
|
|
38
31
|
sockets: {
|
|
39
32
|
onCreate: import("effector").EventCallable<TeacherComment>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,MAAM,EAAmB,aAAa,EAAE,MAAM,UAAU,CAAA;AACzG,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AAGvC,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE;QACP,
|
|
1
|
+
{"version":3,"file":"teacherFeedback.model.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/model/teacherFeedback.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,MAAM,EAAmB,aAAa,EAAE,MAAM,UAAU,CAAA;AACzG,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,MAAM,EACN,cAAc,EACd,4BAA4B,EAC7B,MAAM,gCAAgC,CAAA;AAGvC,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE;QACP,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,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;YAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;SAAE,CAAC,CAAC,CAAA;QACnH,uBAAuB,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAChF,CAAA;CACF,CAAA;AAED,qBAAa,oBAAoB;IAC/B,iBAAiB,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IAErC,eAAe;aAAsB,MAAM,EAAE;0BAAoB,MAAM;OAAK;IAC5E,SAAS,6CAAsD;IAE/D,WAAW,4CAAyB;IACpC,SAAS,yBAAmC;IAC5C,YAAY,4CAAyB;IACrC,UAAU,yBAAoC;IAE9C,2BAA2B,EAAE,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAA;KAAE,CAAC,CAAC,CAAA;IACzG,mBAAmB,EAAE,MAAM,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA;IAE/D,OAAO;;;MAGN;gBAEW,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,yBAAyB;CA4IxD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magmamath/students-features",
|
|
3
|
-
"version": "0.2.0
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Magmamath features library",
|
|
5
5
|
"source": "src/index.ts",
|
|
6
6
|
"main": "dist/commonjs/index.js",
|
|
@@ -17,17 +17,17 @@
|
|
|
17
17
|
"release": "release-it"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
+
"@magmamath/react-native-ui": "0.2.15",
|
|
20
21
|
"effector": "^23.2.3",
|
|
21
22
|
"effector-react": "^23.2.1"
|
|
22
23
|
},
|
|
23
24
|
"peerDependencies": {
|
|
24
25
|
"react": "*",
|
|
25
26
|
"react-native": "*",
|
|
26
|
-
"react-native-svg": "^15.10.0"
|
|
27
|
-
"@magmamath/react-native-ui": "*"
|
|
27
|
+
"react-native-svg": "^15.10.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@magmamath/react-native-ui": "0.
|
|
30
|
+
"@magmamath/react-native-ui": "0.2.15",
|
|
31
31
|
"@react-native/eslint-config": "^0.73.1",
|
|
32
32
|
"@release-it/conventional-changelog": "^9.0.2",
|
|
33
33
|
"@types/jest": "^29.5.5",
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { ComponentType, PropsWithChildren } from 'react'
|
|
3
3
|
import { ActivityIndicator, Pressable, StyleSheet, View } from 'react-native'
|
|
4
|
-
import {
|
|
5
|
-
Button,
|
|
6
|
-
ButtonColor,
|
|
7
|
-
ButtonSize,
|
|
8
|
-
ButtonStates,
|
|
9
|
-
ButtonVariant,
|
|
10
|
-
COLORS,
|
|
11
|
-
} from '@magmamath/react-native-ui'
|
|
4
|
+
import { Button } from '@magmamath/react-native-ui'
|
|
12
5
|
import { useUnit } from 'effector-react'
|
|
13
6
|
import { ChatbotModel } from '../../model/model'
|
|
14
7
|
import { ChatbotIcon } from '../../../../shared/icons/ChatbotIcon'
|
|
@@ -56,24 +49,12 @@ export const ChatControls = ({
|
|
|
56
49
|
<Button
|
|
57
50
|
onPress={onPressClose}
|
|
58
51
|
style={{
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
variant={ButtonVariant.PRIMARY}
|
|
62
|
-
size={ButtonSize.LARGE}
|
|
63
|
-
colorScheme={ButtonColor.GRAY}
|
|
64
|
-
raiseLevel={5}
|
|
65
|
-
customColorScheme={{
|
|
66
|
-
[ButtonStates.DEFAULT]: {
|
|
52
|
+
container: styles.buttonClose,
|
|
53
|
+
button: {
|
|
67
54
|
backgroundColor: '#FFF',
|
|
68
|
-
borderColor: COLORS.NEUTRAL_5,
|
|
69
|
-
raiseColor: COLORS.NEUTRAL_5,
|
|
70
|
-
},
|
|
71
|
-
[ButtonStates.PRESSED]: {
|
|
72
|
-
backgroundColor: COLORS.NEUTRAL_4,
|
|
73
|
-
borderColor: COLORS.NEUTRAL_5,
|
|
74
|
-
raiseColor: COLORS.NEUTRAL_5,
|
|
75
55
|
},
|
|
76
56
|
}}
|
|
57
|
+
raiseLevel={5}
|
|
77
58
|
>
|
|
78
59
|
<CloseIcon />
|
|
79
60
|
</Button>
|
|
@@ -103,10 +84,6 @@ const styles = StyleSheet.create({
|
|
|
103
84
|
buttonClose: {
|
|
104
85
|
width: 50,
|
|
105
86
|
height: 50,
|
|
106
|
-
borderRadius: 50,
|
|
107
|
-
paddingHorizontal: 0,
|
|
108
|
-
borderWidth: 1.5,
|
|
109
|
-
borderColor: COLORS.NEUTRAL_5,
|
|
110
87
|
},
|
|
111
88
|
buttonTranslate: {
|
|
112
89
|
alignItems: 'center',
|
|
@@ -61,19 +61,8 @@ export class ChatbotModel {
|
|
|
61
61
|
.reset(this.resetAlternatives)
|
|
62
62
|
|
|
63
63
|
// TODO: do not pass this, just what you need
|
|
64
|
-
this.translation = new ChatbotTranslation(
|
|
65
|
-
|
|
66
|
-
$alternatives: this.$alternatives,
|
|
67
|
-
setAlternatives: this.setAlternatives,
|
|
68
|
-
defaultMessages: this.defaultMessages,
|
|
69
|
-
messages: this.messages,
|
|
70
|
-
api: this.api,
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
this.t2s = new ChatTextToSpeech({
|
|
74
|
-
$isOpen: this.$isOpen,
|
|
75
|
-
api: this.api
|
|
76
|
-
})
|
|
64
|
+
this.translation = new ChatbotTranslation(this)
|
|
65
|
+
this.t2s = new ChatTextToSpeech(this)
|
|
77
66
|
|
|
78
67
|
this.sendHelpRequestFx = this.createSendHelpRequestFx()
|
|
79
68
|
this.initChatReplyWatcher()
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChatbotModel } from './model'
|
|
2
|
+
import { restore, createEvent } from 'effector'
|
|
2
3
|
import { AUDIO_CONFIG, DEFAULT_VOICE } from '../constants'
|
|
3
4
|
import { AudioProvider, AudioStatus, PlayTextToSpeechProps } from '../types/t2s.types'
|
|
4
|
-
import { ChatbotAPI } from './api'
|
|
5
5
|
|
|
6
6
|
export class ChatTextToSpeech {
|
|
7
|
+
private readonly model: ChatbotModel
|
|
7
8
|
private readonly audioCache: Record<string, string> = {}
|
|
8
9
|
private audioProvider: AudioProvider | null = null
|
|
9
10
|
|
|
@@ -12,17 +13,10 @@ export class ChatTextToSpeech {
|
|
|
12
13
|
readonly setStatus = createEvent<AudioStatus>()
|
|
13
14
|
readonly $status = restore(this.setStatus, AudioStatus.STOPPED)
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
constructor(chatbotModel: ChatbotModel) {
|
|
17
|
+
this.model = chatbotModel
|
|
17
18
|
|
|
18
|
-
|
|
19
|
-
$isOpen,
|
|
20
|
-
api
|
|
21
|
-
}: any) {
|
|
22
|
-
this.$isOpen = $isOpen
|
|
23
|
-
this.api = api
|
|
24
|
-
|
|
25
|
-
this.$isOpen.updates.watch((isOpen) => {
|
|
19
|
+
this.model.$isOpen.updates.watch((isOpen) => {
|
|
26
20
|
if (!isOpen) this.reset()
|
|
27
21
|
})
|
|
28
22
|
}
|
|
@@ -66,7 +60,7 @@ export class ChatTextToSpeech {
|
|
|
66
60
|
this.setCurrentPlayingId(messageId)
|
|
67
61
|
|
|
68
62
|
if (!audioPath) {
|
|
69
|
-
const response = await this.api.textToSpeechTextFx({
|
|
63
|
+
const response = await this.model.api.textToSpeechTextFx({
|
|
70
64
|
input: { text },
|
|
71
65
|
voice: config?.voice ?? DEFAULT_VOICE,
|
|
72
66
|
audioConfig: config?.audioConfig ?? AUDIO_CONFIG,
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import { createEvent, restore, attach, createEffect, type Effect, sample
|
|
1
|
+
import { createEvent, restore, attach, createEffect, type Effect, sample } from 'effector'
|
|
2
|
+
import { ChatbotModel } from './model'
|
|
2
3
|
|
|
3
4
|
import {
|
|
4
5
|
TranslateAlternativesFxProps,
|
|
5
6
|
TranslateBatchFxProps,
|
|
6
7
|
TranslateMessageFxProps,
|
|
7
8
|
} from '../types/translation.types'
|
|
8
|
-
import {
|
|
9
|
+
import { ConversationMessage } from '../types/model.types'
|
|
9
10
|
import { GetAlternativesResponse } from '../types/api.types'
|
|
10
11
|
import { decodeHTMLEntities } from '../helpers'
|
|
11
|
-
import { ChatbotAPI } from './api'
|
|
12
12
|
|
|
13
13
|
export class ChatbotTranslation {
|
|
14
|
+
private readonly model: ChatbotModel
|
|
15
|
+
|
|
14
16
|
readonly setIsTranslated = createEvent<boolean>()
|
|
15
17
|
readonly $isTranslated = restore(this.setIsTranslated, false)
|
|
16
18
|
|
|
@@ -21,34 +23,14 @@ export class ChatbotTranslation {
|
|
|
21
23
|
GetAlternativesResponse | null
|
|
22
24
|
>
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
credits,
|
|
33
|
-
$alternatives,
|
|
34
|
-
setAlternatives,
|
|
35
|
-
defaultMessages,
|
|
36
|
-
messages,
|
|
37
|
-
api,
|
|
38
|
-
}: any) {
|
|
39
|
-
this.credits = credits
|
|
40
|
-
this.$alternatives = $alternatives
|
|
41
|
-
this.setAlternatives = setAlternatives
|
|
42
|
-
this.defaultMessages = defaultMessages
|
|
43
|
-
this.messages = messages
|
|
44
|
-
this.api = api
|
|
45
|
-
|
|
46
|
-
this.translateAlternativesFx = this.createTranslateAlternativesEffect()
|
|
47
|
-
this.translateMessageFx = this.createTranslateMessageEffect()
|
|
48
|
-
// @ts-ignore
|
|
49
|
-
this.translateBatchFx = this.createTranslateBatchEffect()
|
|
50
|
-
|
|
51
|
-
this.initTranslationSamples()
|
|
26
|
+
constructor(chatbotModel: ChatbotModel) {
|
|
27
|
+
this.model = chatbotModel
|
|
28
|
+
|
|
29
|
+
this.translateAlternativesFx = this.createTranslateAlternativesEffect()
|
|
30
|
+
this.translateMessageFx = this.createTranslateMessageEffect()
|
|
31
|
+
this.translateBatchFx = this.createTranslateBatchEffect()
|
|
32
|
+
|
|
33
|
+
this.initTranslationSamples()
|
|
52
34
|
}
|
|
53
35
|
|
|
54
36
|
private shouldSkipTranslation(messages: ConversationMessage[]) {
|
|
@@ -69,14 +51,14 @@ export class ChatbotTranslation {
|
|
|
69
51
|
private initTranslationSamples() {
|
|
70
52
|
sample({
|
|
71
53
|
clock: this.translateBatchFx.doneData,
|
|
72
|
-
source: [this.credits.$assignmentId, this.credits.$exerciseId] as const,
|
|
54
|
+
source: [this.model.credits.$assignmentId, this.model.credits.$exerciseId] as const,
|
|
73
55
|
fn: ([assignmentId, exerciseId], translatedMessages) => ({
|
|
74
56
|
assignmentId,
|
|
75
57
|
exerciseId,
|
|
76
58
|
translatedMessages,
|
|
77
59
|
}),
|
|
78
60
|
}).watch(({ assignmentId, exerciseId, translatedMessages }) => {
|
|
79
|
-
this.messages.setField({
|
|
61
|
+
this.model.messages.setField({
|
|
80
62
|
entityId: assignmentId,
|
|
81
63
|
fieldId: exerciseId,
|
|
82
64
|
messages: translatedMessages,
|
|
@@ -86,7 +68,7 @@ export class ChatbotTranslation {
|
|
|
86
68
|
|
|
87
69
|
private createTranslateAlternativesEffect() {
|
|
88
70
|
return attach({
|
|
89
|
-
source: [this.$alternatives],
|
|
71
|
+
source: [this.model.$alternatives],
|
|
90
72
|
mapParams: (params: TranslateAlternativesFxProps['params'], [alternatives]) => ({
|
|
91
73
|
params,
|
|
92
74
|
alternatives,
|
|
@@ -99,7 +81,7 @@ export class ChatbotTranslation {
|
|
|
99
81
|
|
|
100
82
|
if (hintAlternatives.length) {
|
|
101
83
|
const hintText = hintAlternatives.map(({ text }) => text)
|
|
102
|
-
const response = await this.api.translateTextFx({
|
|
84
|
+
const response = await this.model.api.translateTextFx({
|
|
103
85
|
text: hintText,
|
|
104
86
|
targetLanguage: params.targetLanguage,
|
|
105
87
|
})
|
|
@@ -118,7 +100,7 @@ export class ChatbotTranslation {
|
|
|
118
100
|
|
|
119
101
|
if (defaultAlternatives.length) {
|
|
120
102
|
const defaultText = defaultAlternatives.map(({ text }) => text)
|
|
121
|
-
const response = await this.api.translateTextFx({
|
|
103
|
+
const response = await this.model.api.translateTextFx({
|
|
122
104
|
text: defaultText,
|
|
123
105
|
targetLanguage: params.targetLanguage,
|
|
124
106
|
})
|
|
@@ -143,7 +125,7 @@ export class ChatbotTranslation {
|
|
|
143
125
|
private createTranslateMessageEffect() {
|
|
144
126
|
return createEffect(async ({ message, targetLanguage }: TranslateMessageFxProps) => {
|
|
145
127
|
const optionsText = message.options.map(({ text }) => text)
|
|
146
|
-
const response = await this.api.translateTextFx({
|
|
128
|
+
const response = await this.model.api.translateTextFx({
|
|
147
129
|
text: [message.message, ...optionsText],
|
|
148
130
|
targetLanguage,
|
|
149
131
|
})
|
|
@@ -165,9 +147,8 @@ export class ChatbotTranslation {
|
|
|
165
147
|
|
|
166
148
|
private createTranslateBatchEffect() {
|
|
167
149
|
return attach({
|
|
168
|
-
source: [this.credits.$assignmentId, this.credits.$exerciseId, this.messages.$state],
|
|
169
|
-
|
|
170
|
-
mapParams: (
|
|
150
|
+
source: [this.model.credits.$assignmentId, this.model.credits.$exerciseId, this.model.messages.$state],
|
|
151
|
+
mapParams: (
|
|
171
152
|
params: TranslateBatchFxProps['params'],
|
|
172
153
|
[assignmentId, exerciseId, messages],
|
|
173
154
|
) => ({
|
|
@@ -185,7 +166,7 @@ export class ChatbotTranslation {
|
|
|
185
166
|
}
|
|
186
167
|
|
|
187
168
|
const messagesText = currentMessages.map(({ message }) => message)
|
|
188
|
-
const response = await this.api.translateTextFx({
|
|
169
|
+
const response = await this.model.api.translateTextFx({
|
|
189
170
|
text: messagesText,
|
|
190
171
|
targetLanguage: params.targetLanguage,
|
|
191
172
|
})
|
|
@@ -195,12 +176,12 @@ export class ChatbotTranslation {
|
|
|
195
176
|
? await this.translateMessageOptions(lastMessage, params.targetLanguage)
|
|
196
177
|
: undefined
|
|
197
178
|
|
|
198
|
-
const errorMessageTranslationResponse = await this.api.translateTextFx({
|
|
199
|
-
text: [this.defaultMessages.error.message],
|
|
179
|
+
const errorMessageTranslationResponse = await this.model.api.translateTextFx({
|
|
180
|
+
text: [this.model.defaultMessages.error.message],
|
|
200
181
|
targetLanguage: params.targetLanguage,
|
|
201
182
|
})
|
|
202
183
|
|
|
203
|
-
this.defaultMessages.error.translatedMessage = decodeHTMLEntities(
|
|
184
|
+
this.model.defaultMessages.error.translatedMessage = decodeHTMLEntities(
|
|
204
185
|
errorMessageTranslationResponse.data.translations[0].translatedText,
|
|
205
186
|
)
|
|
206
187
|
|
|
@@ -228,12 +209,12 @@ export class ChatbotTranslation {
|
|
|
228
209
|
private async translateMessageOptions(message: ConversationMessage, targetLanguage: string) {
|
|
229
210
|
if (!message?.options?.length) {
|
|
230
211
|
const translatedAlternatives = await this.translateAlternativesFx({ targetLanguage })
|
|
231
|
-
this.setAlternatives(translatedAlternatives)
|
|
212
|
+
this.model.setAlternatives(translatedAlternatives)
|
|
232
213
|
return
|
|
233
214
|
}
|
|
234
215
|
|
|
235
216
|
const optionsText = message.options.map(({ text }) => text)
|
|
236
|
-
const response = await this.api.translateTextFx({
|
|
217
|
+
const response = await this.model.api.translateTextFx({
|
|
237
218
|
text: optionsText,
|
|
238
219
|
targetLanguage,
|
|
239
220
|
})
|
|
@@ -23,7 +23,7 @@ const styles = StyleSheet.create({
|
|
|
23
23
|
borderTopLeftRadius: 8,
|
|
24
24
|
borderTopRightRadius: 8,
|
|
25
25
|
borderBottomRightRadius: 8,
|
|
26
|
-
shadowColor: COLORS.
|
|
26
|
+
shadowColor: COLORS.PRIMARY_SHADOW,
|
|
27
27
|
shadowOffset: { width: 0, height: 1 },
|
|
28
28
|
shadowOpacity: 0.25,
|
|
29
29
|
shadowRadius: 3,
|
|
@@ -38,5 +38,6 @@ const styles = StyleSheet.create({
|
|
|
38
38
|
fontWeight: '600',
|
|
39
39
|
color: COLORS.NEUTRAL_7,
|
|
40
40
|
padding: 8,
|
|
41
|
+
lineHeight: 20,
|
|
41
42
|
},
|
|
42
43
|
})
|
|
@@ -7,32 +7,29 @@ import { TeacherFeedbackModel } from '../model/teacherFeedback.model'
|
|
|
7
7
|
|
|
8
8
|
type TeacherFeedbackProps = {
|
|
9
9
|
model: TeacherFeedbackModel
|
|
10
|
-
mode: 'regular' | 'simple'
|
|
11
10
|
}
|
|
12
11
|
|
|
13
|
-
export const TeacherFeedback = ({ model
|
|
12
|
+
export const TeacherFeedback = ({ model }: TeacherFeedbackProps) => {
|
|
14
13
|
const isOpen = useUnit(model.$isOpened)
|
|
15
|
-
const assignmentId = useUnit(model.$assignmentId)
|
|
16
14
|
const problemId = useUnit(model.$currentProblemId)
|
|
17
15
|
const locale = useUnit(model.$locale)
|
|
18
16
|
const isLoading = useUnit(model.getCommentsByAssignmentIdFx.pending)
|
|
19
17
|
const teacherFeedback = useStoreMap({
|
|
20
18
|
store: model.$comments,
|
|
21
|
-
fn: (feedback, [
|
|
22
|
-
keys: [
|
|
19
|
+
fn: (feedback, [problemId]) => feedback.get(problemId) ?? null,
|
|
20
|
+
keys: [problemId],
|
|
23
21
|
})
|
|
24
22
|
|
|
25
23
|
if (!problemId || !teacherFeedback) return null
|
|
26
24
|
|
|
27
25
|
return (
|
|
28
26
|
<View style={styles.container}>
|
|
29
|
-
{isOpen && <TeacherFeedbackComments comments={teacherFeedback.comments} locale={locale}
|
|
27
|
+
{isOpen && <TeacherFeedbackComments comments={teacherFeedback.comments} locale={locale} />}
|
|
30
28
|
<TeacherFeedbackButton
|
|
31
29
|
onPress={() => model.setIsOpened(!isOpen)}
|
|
32
30
|
unreadCommentsCount={teacherFeedback.unreadMessagesCount}
|
|
33
31
|
isOpen={isOpen}
|
|
34
32
|
isLoading={isLoading}
|
|
35
|
-
size={mode === 'regular' ? 'small' : 'large'}
|
|
36
33
|
/>
|
|
37
34
|
</View>
|
|
38
35
|
)
|