@magmamath/students-features 0.2.0 → 0.2.2
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 +21 -5
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/commonjs/features/feedback/components/EmptyComment/EmptyComment.js +1 -1
- package/dist/commonjs/features/feedback/components/EmptyComment/EmptyComment.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedback.js +12 -5
- package/dist/commonjs/features/feedback/components/TeacherFeedback.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +63 -15
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/colorSchemes.js +17 -0
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/colorSchemes.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +7 -3
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +16 -5
- package/dist/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
- package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js +3 -2
- package/dist/commonjs/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
- package/dist/commonjs/features/feedback/constants.js +17 -1
- package/dist/commonjs/features/feedback/constants.js.map +1 -1
- package/dist/commonjs/features/feedback/index.js +11 -0
- package/dist/commonjs/features/feedback/index.js.map +1 -1
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js +102 -34
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +22 -6
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js +1 -1
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedback.js +12 -5
- package/dist/module/features/feedback/components/TeacherFeedback.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +63 -15
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackButton/colorSchemes.js +17 -0
- package/dist/module/features/feedback/components/TeacherFeedbackButton/colorSchemes.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js +8 -4
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js +17 -6
- package/dist/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.js.map +1 -1
- package/dist/module/features/feedback/components/UnreadMessagesBadge.js +3 -2
- package/dist/module/features/feedback/components/UnreadMessagesBadge.js.map +1 -1
- package/dist/module/features/feedback/constants.js +16 -0
- package/dist/module/features/feedback/constants.js.map +1 -1
- package/dist/module/features/feedback/index.js +1 -0
- package/dist/module/features/feedback/index.js.map +1 -1
- package/dist/module/features/feedback/model/teacherFeedback.model.js +102 -34
- 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/feedback/components/TeacherFeedback.d.ts +4 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +4 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/colorSchemes.d.ts +17 -0
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/colorSchemes.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +2 -1
- 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 +3 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts +3 -2
- package/dist/typescript/commonjs/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/constants.d.ts +13 -0
- package/dist/typescript/commonjs/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/index.d.ts +1 -0
- package/dist/typescript/commonjs/features/feedback/index.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts +11 -4
- 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/feedback/components/TeacherFeedback.d.ts +4 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedback.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +4 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/colorSchemes.d.ts +17 -0
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/colorSchemes.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherComment.d.ts +2 -1
- 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 +3 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts +3 -2
- package/dist/typescript/module/features/feedback/components/UnreadMessagesBadge.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/constants.d.ts +13 -0
- package/dist/typescript/module/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/index.d.ts +1 -0
- package/dist/typescript/module/features/feedback/index.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts +11 -4
- 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 +27 -4
- package/src/features/feedback/components/EmptyComment/EmptyComment.tsx +1 -1
- package/src/features/feedback/components/TeacherFeedback.tsx +10 -4
- package/src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx +88 -16
- package/src/features/feedback/components/TeacherFeedbackButton/colorSchemes.ts +17 -0
- package/src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx +6 -5
- package/src/features/feedback/components/TeacherFeedbackComments/TeacherFeedbackComments.tsx +24 -4
- package/src/features/feedback/components/UnreadMessagesBadge.tsx +4 -3
- package/src/features/feedback/constants.ts +17 -0
- package/src/features/feedback/index.ts +1 -0
- package/src/features/feedback/model/teacherFeedback.model.ts +109 -36
|
@@ -16,4 +16,17 @@ export declare const getEmptyComment: (problemId: string, locale: Locale | null)
|
|
|
16
16
|
teacherName: string;
|
|
17
17
|
updatedAt: Date;
|
|
18
18
|
};
|
|
19
|
+
export declare const TEACHER_FEEDBACK_BUTTON_ID = "teacherFeedbackButton";
|
|
20
|
+
export declare enum FeedbackButtonColors {
|
|
21
|
+
BLUE = "BLUE",
|
|
22
|
+
PURPLE = "PURPLE"
|
|
23
|
+
}
|
|
24
|
+
export declare enum FeedbackButtonSize {
|
|
25
|
+
SMALL = "SMALL",
|
|
26
|
+
LARGE = "LARGE"
|
|
27
|
+
}
|
|
28
|
+
export declare enum FeedbackMode {
|
|
29
|
+
SIMPLE = "SIMPLE",
|
|
30
|
+
NORMAL = "NORMAL"
|
|
31
|
+
}
|
|
19
32
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -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;AAED,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
|
|
@@ -1 +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,cAAc,CAAA"}
|
|
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,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
|
@@ -2,6 +2,7 @@ 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>;
|
|
5
6
|
problemId: StoreWritable<string>;
|
|
6
7
|
locale: StoreWritable<Locale | null>;
|
|
7
8
|
};
|
|
@@ -12,21 +13,27 @@ type TeacherFeedbackModelProps = {
|
|
|
12
13
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>;
|
|
13
14
|
};
|
|
14
15
|
};
|
|
16
|
+
type CommentsMap = Map<string, Record<string, CommentsEntity>>;
|
|
15
17
|
export declare class TeacherFeedbackModel {
|
|
18
|
+
$assignmentId: StoreWritable<string>;
|
|
16
19
|
$currentProblemId: StoreWritable<string>;
|
|
17
20
|
$locale: StoreWritable<Locale | null>;
|
|
18
21
|
setCommentsSeen: import("effector").EventCallable<{
|
|
19
22
|
ids: string[];
|
|
20
23
|
currentProblemId: string;
|
|
24
|
+
assignmentId: string;
|
|
21
25
|
}>;
|
|
22
|
-
$comments: StoreWritable<
|
|
26
|
+
$comments: StoreWritable<CommentsMap>;
|
|
23
27
|
setIsOpened: import("effector").EventCallable<boolean>;
|
|
24
28
|
$isOpened: StoreWritable<boolean>;
|
|
25
29
|
setIsVisible: import("effector").EventCallable<boolean>;
|
|
26
30
|
$isVisible: StoreWritable<boolean>;
|
|
27
|
-
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps,
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, {
|
|
32
|
+
data: Record<string, {
|
|
33
|
+
comments: TeacherComment[];
|
|
34
|
+
}>;
|
|
35
|
+
assignmentId: string;
|
|
36
|
+
}>;
|
|
30
37
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>;
|
|
31
38
|
sockets: {
|
|
32
39
|
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,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;
|
|
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,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,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,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;CA2MxD"}
|
package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAWxD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAKhD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAChD,CAAA;AAED,eAAO,MAAM,YAAY,qGAOtB,iBAAiB,sBA2DnB,CAAA"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TeacherFeedbackModel } from '../model/teacherFeedback.model';
|
|
3
|
+
import { FeedbackMode } from '../constants';
|
|
3
4
|
type TeacherFeedbackProps = {
|
|
4
5
|
model: TeacherFeedbackModel;
|
|
6
|
+
mode: FeedbackMode;
|
|
7
|
+
isExam: boolean;
|
|
5
8
|
};
|
|
6
|
-
export declare const TeacherFeedback: ({ model }: TeacherFeedbackProps) => React.JSX.Element | null;
|
|
9
|
+
export declare const TeacherFeedback: ({ model, mode, isExam }: TeacherFeedbackProps) => React.JSX.Element | null;
|
|
7
10
|
export {};
|
|
8
11
|
//# 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;
|
|
1
|
+
{"version":3,"file":"TeacherFeedback.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/components/TeacherFeedback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AACrE,OAAO,EAA4C,YAAY,EAAE,MAAM,cAAc,CAAA;AAErF,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,IAAI,EAAE,YAAY,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;CAChB,CAAA;AAED,eAAO,MAAM,eAAe,4BAAqC,oBAAoB,6BA2BpF,CAAA"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { FeedbackButtonColors, FeedbackButtonSize } from '../../constants';
|
|
2
3
|
type TeacherFeedbackButtonProps = {
|
|
3
4
|
isOpen: boolean;
|
|
4
5
|
isLoading: boolean;
|
|
5
6
|
onPress?: () => void;
|
|
6
7
|
unreadCommentsCount?: number;
|
|
8
|
+
size?: FeedbackButtonSize;
|
|
9
|
+
color?: FeedbackButtonColors;
|
|
7
10
|
};
|
|
8
|
-
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
11
|
+
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading, size, color, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
9
12
|
export {};
|
|
10
13
|
//# 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;AAOzB,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAEnB,MAAM,iBAAiB,CAAA;AAOxB,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;IAC5B,IAAI,CAAC,EAAE,kBAAkB,CAAA;IACzB,KAAK,CAAC,EAAE,oBAAoB,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,qBAAqB,sEAO/B,0BAA0B,sBAuE5B,CAAA"}
|
package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/colorSchemes.d.ts
CHANGED
|
@@ -1,4 +1,21 @@
|
|
|
1
1
|
export declare const COLOR_SCHEMES: {
|
|
2
|
+
PURPLE: {
|
|
3
|
+
1: {
|
|
4
|
+
borderColor: "#7853c6";
|
|
5
|
+
raiseColor: "#7853c6";
|
|
6
|
+
backgroundColor: "#976fe6";
|
|
7
|
+
};
|
|
8
|
+
2: {
|
|
9
|
+
borderColor: "#7853c6";
|
|
10
|
+
raiseColor: "#7853c6";
|
|
11
|
+
backgroundColor: "#976fe6";
|
|
12
|
+
};
|
|
13
|
+
0: {
|
|
14
|
+
borderColor: "#7853c6";
|
|
15
|
+
raiseColor: "#7853c6";
|
|
16
|
+
backgroundColor: "#976fe6";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
2
19
|
BLUE: {
|
|
3
20
|
1: {
|
|
4
21
|
borderColor: "#2488bb";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorSchemes.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackButton/colorSchemes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"colorSchemes.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackButton/colorSchemes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDzB,CAAA"}
|
|
@@ -5,7 +5,8 @@ type TeacherCommentProps = {
|
|
|
5
5
|
teacherName: string;
|
|
6
6
|
createdAt: Date;
|
|
7
7
|
locale: Locale | null;
|
|
8
|
+
isLastComment: boolean;
|
|
8
9
|
};
|
|
9
|
-
export declare const TeacherComment: ({ content, teacherName, createdAt, locale }: TeacherCommentProps) => React.JSX.Element;
|
|
10
|
+
export declare const TeacherComment: ({ content, teacherName, createdAt, locale, isLastComment }: TeacherCommentProps) => React.JSX.Element;
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=TeacherComment.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeacherComment.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"TeacherComment.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/feedback/components/TeacherFeedbackComments/TeacherComment.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAA;AAE1D,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,IAAI,CAAA;IACf,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,aAAa,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,cAAc,+DAAgE,mBAAmB,sBAkB7G,CAAA"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Locale, TeacherComment as FeedbackComment } from '../../types/teacherFeedback.types';
|
|
3
|
+
import { FeedbackMode } from '../../constants';
|
|
3
4
|
type TeacherFeedbackCommentsProps = {
|
|
4
5
|
comments: FeedbackComment[] | null;
|
|
5
6
|
locale: Locale | null;
|
|
7
|
+
mode: FeedbackMode;
|
|
6
8
|
};
|
|
7
|
-
export declare const TeacherFeedbackComments: ({ comments, locale }: TeacherFeedbackCommentsProps) => React.JSX.Element | null;
|
|
9
|
+
export declare const TeacherFeedbackComments: ({ comments, locale, mode, }: TeacherFeedbackCommentsProps) => React.JSX.Element | null;
|
|
8
10
|
export {};
|
|
9
11
|
//# 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;AAG7F,OAAO,EAAoB,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAOhE,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,eAAe,EAAE,GAAG,IAAI,CAAA;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,IAAI,EAAE,YAAY,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,uBAAuB,gCAIjC,4BAA4B,6BAyC9B,CAAA"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { StyleProp, ViewStyle } from 'react-native';
|
|
2
|
+
import { StyleProp, ViewStyle, TextStyle } from 'react-native';
|
|
3
3
|
type UnreadMessagesBadgeProps = {
|
|
4
4
|
badgeContent?: number;
|
|
5
5
|
withBorder?: boolean;
|
|
6
6
|
style?: StyleProp<ViewStyle>;
|
|
7
|
+
textStyle?: StyleProp<TextStyle>;
|
|
7
8
|
};
|
|
8
|
-
export declare const UnreadMessagesBadge: ({ badgeContent, withBorder, style }: UnreadMessagesBadgeProps) => React.JSX.Element;
|
|
9
|
+
export declare const UnreadMessagesBadge: ({ badgeContent, withBorder, style, textStyle }: UnreadMessagesBadgeProps) => React.JSX.Element;
|
|
9
10
|
export {};
|
|
10
11
|
//# 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,MAAM,cAAc,CAAA;
|
|
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,SAAS,EAAE,MAAM,cAAc,CAAA;AAGhG,KAAK,wBAAwB,GAAG;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,mBAAmB,mDAA4D,wBAAwB,sBAcnH,CAAA"}
|
|
@@ -16,4 +16,17 @@ export declare const getEmptyComment: (problemId: string, locale: Locale | null)
|
|
|
16
16
|
teacherName: string;
|
|
17
17
|
updatedAt: Date;
|
|
18
18
|
};
|
|
19
|
+
export declare const TEACHER_FEEDBACK_BUTTON_ID = "teacherFeedbackButton";
|
|
20
|
+
export declare enum FeedbackButtonColors {
|
|
21
|
+
BLUE = "BLUE",
|
|
22
|
+
PURPLE = "PURPLE"
|
|
23
|
+
}
|
|
24
|
+
export declare enum FeedbackButtonSize {
|
|
25
|
+
SMALL = "SMALL",
|
|
26
|
+
LARGE = "LARGE"
|
|
27
|
+
}
|
|
28
|
+
export declare enum FeedbackMode {
|
|
29
|
+
SIMPLE = "SIMPLE",
|
|
30
|
+
NORMAL = "NORMAL"
|
|
31
|
+
}
|
|
19
32
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -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;AAED,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,oBAAY,oBAAoB;IAC9B,IAAI,SAAS;IACb,MAAM,WAAW;CAClB;AAED,oBAAY,kBAAkB;IAC5B,KAAK,UAAU;IACf,KAAK,UAAU;CAChB;AAED,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB"}
|
|
@@ -1 +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,cAAc,CAAA"}
|
|
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,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA"}
|
|
@@ -2,6 +2,7 @@ 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>;
|
|
5
6
|
problemId: StoreWritable<string>;
|
|
6
7
|
locale: StoreWritable<Locale | null>;
|
|
7
8
|
};
|
|
@@ -12,21 +13,27 @@ type TeacherFeedbackModelProps = {
|
|
|
12
13
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>;
|
|
13
14
|
};
|
|
14
15
|
};
|
|
16
|
+
type CommentsMap = Map<string, Record<string, CommentsEntity>>;
|
|
15
17
|
export declare class TeacherFeedbackModel {
|
|
18
|
+
$assignmentId: StoreWritable<string>;
|
|
16
19
|
$currentProblemId: StoreWritable<string>;
|
|
17
20
|
$locale: StoreWritable<Locale | null>;
|
|
18
21
|
setCommentsSeen: import("effector").EventCallable<{
|
|
19
22
|
ids: string[];
|
|
20
23
|
currentProblemId: string;
|
|
24
|
+
assignmentId: string;
|
|
21
25
|
}>;
|
|
22
|
-
$comments: StoreWritable<
|
|
26
|
+
$comments: StoreWritable<CommentsMap>;
|
|
23
27
|
setIsOpened: import("effector").EventCallable<boolean>;
|
|
24
28
|
$isOpened: StoreWritable<boolean>;
|
|
25
29
|
setIsVisible: import("effector").EventCallable<boolean>;
|
|
26
30
|
$isVisible: StoreWritable<boolean>;
|
|
27
|
-
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps,
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, {
|
|
32
|
+
data: Record<string, {
|
|
33
|
+
comments: TeacherComment[];
|
|
34
|
+
}>;
|
|
35
|
+
assignmentId: string;
|
|
36
|
+
}>;
|
|
30
37
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>;
|
|
31
38
|
sockets: {
|
|
32
39
|
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,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;
|
|
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,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,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,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;CA2MxD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magmamath/students-features",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
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",
|
|
21
20
|
"effector": "^23.2.3",
|
|
22
21
|
"effector-react": "^23.2.1"
|
|
23
22
|
},
|
|
24
23
|
"peerDependencies": {
|
|
25
24
|
"react": "*",
|
|
26
25
|
"react-native": "*",
|
|
27
|
-
"react-native-svg": "^15.10.0"
|
|
26
|
+
"react-native-svg": "^15.10.0",
|
|
27
|
+
"@magmamath/react-native-ui": "*"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@magmamath/react-native-ui": "0.
|
|
30
|
+
"@magmamath/react-native-ui": "0.3.0",
|
|
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,7 +1,14 @@
|
|
|
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 {
|
|
4
|
+
import {
|
|
5
|
+
Button,
|
|
6
|
+
ButtonColor,
|
|
7
|
+
ButtonSize,
|
|
8
|
+
ButtonStates,
|
|
9
|
+
ButtonVariant,
|
|
10
|
+
COLORS,
|
|
11
|
+
} from '@magmamath/react-native-ui'
|
|
5
12
|
import { useUnit } from 'effector-react'
|
|
6
13
|
import { ChatbotModel } from '../../model/model'
|
|
7
14
|
import { ChatbotIcon } from '../../../../shared/icons/ChatbotIcon'
|
|
@@ -49,12 +56,24 @@ export const ChatControls = ({
|
|
|
49
56
|
<Button
|
|
50
57
|
onPress={onPressClose}
|
|
51
58
|
style={{
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
button: styles.buttonClose,
|
|
60
|
+
}}
|
|
61
|
+
variant={ButtonVariant.PRIMARY}
|
|
62
|
+
size={ButtonSize.LARGE}
|
|
63
|
+
colorScheme={ButtonColor.GRAY}
|
|
64
|
+
raiseLevel={5}
|
|
65
|
+
customColorScheme={{
|
|
66
|
+
[ButtonStates.DEFAULT]: {
|
|
54
67
|
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,
|
|
55
75
|
},
|
|
56
76
|
}}
|
|
57
|
-
raiseLevel={5}
|
|
58
77
|
>
|
|
59
78
|
<CloseIcon />
|
|
60
79
|
</Button>
|
|
@@ -84,6 +103,10 @@ const styles = StyleSheet.create({
|
|
|
84
103
|
buttonClose: {
|
|
85
104
|
width: 50,
|
|
86
105
|
height: 50,
|
|
106
|
+
borderRadius: 50,
|
|
107
|
+
paddingHorizontal: 0,
|
|
108
|
+
borderWidth: 1.5,
|
|
109
|
+
borderColor: COLORS.NEUTRAL_5,
|
|
87
110
|
},
|
|
88
111
|
buttonTranslate: {
|
|
89
112
|
alignItems: 'center',
|
|
@@ -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.NEUTRAL_10,
|
|
27
27
|
shadowOffset: { width: 0, height: 1 },
|
|
28
28
|
shadowOpacity: 0.25,
|
|
29
29
|
shadowRadius: 3,
|
|
@@ -4,32 +4,38 @@ import { View, StyleSheet } from 'react-native'
|
|
|
4
4
|
import { TeacherFeedbackButton } from './TeacherFeedbackButton/TeacherFeedbackButton'
|
|
5
5
|
import { TeacherFeedbackComments } from './TeacherFeedbackComments/TeacherFeedbackComments'
|
|
6
6
|
import { TeacherFeedbackModel } from '../model/teacherFeedback.model'
|
|
7
|
+
import { FeedbackButtonColors, FeedbackButtonSize, FeedbackMode } from '../constants'
|
|
7
8
|
|
|
8
9
|
type TeacherFeedbackProps = {
|
|
9
10
|
model: TeacherFeedbackModel
|
|
11
|
+
mode: FeedbackMode
|
|
12
|
+
isExam: boolean
|
|
10
13
|
}
|
|
11
14
|
|
|
12
|
-
export const TeacherFeedback = ({ model }: TeacherFeedbackProps) => {
|
|
15
|
+
export const TeacherFeedback = ({ model, mode, isExam = false }: TeacherFeedbackProps) => {
|
|
13
16
|
const isOpen = useUnit(model.$isOpened)
|
|
17
|
+
const assignmentId = useUnit(model.$assignmentId)
|
|
14
18
|
const problemId = useUnit(model.$currentProblemId)
|
|
15
19
|
const locale = useUnit(model.$locale)
|
|
16
20
|
const isLoading = useUnit(model.getCommentsByAssignmentIdFx.pending)
|
|
17
21
|
const teacherFeedback = useStoreMap({
|
|
18
22
|
store: model.$comments,
|
|
19
|
-
fn: (feedback, [problemId]) => feedback.get(problemId
|
|
20
|
-
keys: [problemId],
|
|
23
|
+
fn: (feedback, [assignmentId, problemId]) => feedback.get(assignmentId)?.[problemId] ?? null,
|
|
24
|
+
keys: [assignmentId, problemId],
|
|
21
25
|
})
|
|
22
26
|
|
|
23
27
|
if (!problemId || !teacherFeedback) return null
|
|
24
28
|
|
|
25
29
|
return (
|
|
26
30
|
<View style={styles.container}>
|
|
27
|
-
{isOpen && <TeacherFeedbackComments comments={teacherFeedback.comments} locale={locale} />}
|
|
31
|
+
{isOpen && <TeacherFeedbackComments comments={teacherFeedback.comments} locale={locale} mode={mode} />}
|
|
28
32
|
<TeacherFeedbackButton
|
|
29
33
|
onPress={() => model.setIsOpened(!isOpen)}
|
|
30
34
|
unreadCommentsCount={teacherFeedback.unreadMessagesCount}
|
|
31
35
|
isOpen={isOpen}
|
|
32
36
|
isLoading={isLoading}
|
|
37
|
+
size={mode === FeedbackMode.NORMAL ? FeedbackButtonSize.SMALL : FeedbackButtonSize.LARGE}
|
|
38
|
+
color={isExam ? FeedbackButtonColors.PURPLE : FeedbackButtonColors.BLUE}
|
|
33
39
|
/>
|
|
34
40
|
</View>
|
|
35
41
|
)
|
|
@@ -5,12 +5,24 @@ import { UnreadMessagesBadge } from '../UnreadMessagesBadge'
|
|
|
5
5
|
import { MessageBubbleIcon } from '../icons/MessageBubbleIcon'
|
|
6
6
|
import { XCloseIcon } from '../icons/XCloseIcon'
|
|
7
7
|
import { COLOR_SCHEMES } from './colorSchemes'
|
|
8
|
+
import {
|
|
9
|
+
FeedbackButtonColors,
|
|
10
|
+
FeedbackButtonSize,
|
|
11
|
+
TEACHER_FEEDBACK_BUTTON_ID,
|
|
12
|
+
} from '../../constants'
|
|
13
|
+
|
|
14
|
+
const ICON_SIZES = {
|
|
15
|
+
[FeedbackButtonSize.LARGE]: 37,
|
|
16
|
+
[FeedbackButtonSize.SMALL]: 26,
|
|
17
|
+
}
|
|
8
18
|
|
|
9
19
|
type TeacherFeedbackButtonProps = {
|
|
10
20
|
isOpen: boolean
|
|
11
21
|
isLoading: boolean
|
|
12
22
|
onPress?: () => void
|
|
13
23
|
unreadCommentsCount?: number
|
|
24
|
+
size?: FeedbackButtonSize
|
|
25
|
+
color?: FeedbackButtonColors
|
|
14
26
|
}
|
|
15
27
|
|
|
16
28
|
export const TeacherFeedbackButton = ({
|
|
@@ -18,45 +30,73 @@ export const TeacherFeedbackButton = ({
|
|
|
18
30
|
onPress,
|
|
19
31
|
unreadCommentsCount,
|
|
20
32
|
isLoading,
|
|
33
|
+
size = FeedbackButtonSize.LARGE,
|
|
34
|
+
color = FeedbackButtonColors.BLUE,
|
|
21
35
|
}: TeacherFeedbackButtonProps) => {
|
|
36
|
+
const isLarge = size === FeedbackButtonSize.LARGE
|
|
37
|
+
const isPurpleColor = color === FeedbackButtonColors.PURPLE
|
|
38
|
+
|
|
22
39
|
if (isOpen) {
|
|
23
40
|
return (
|
|
24
41
|
<Button
|
|
25
|
-
|
|
42
|
+
id={TEACHER_FEEDBACK_BUTTON_ID}
|
|
26
43
|
onPress={onPress}
|
|
27
|
-
size=
|
|
28
|
-
variant=
|
|
44
|
+
size="large"
|
|
45
|
+
variant="primary"
|
|
29
46
|
disabled={isLoading}
|
|
30
47
|
isLoading={isLoading}
|
|
31
48
|
style={{
|
|
32
|
-
container: styles.container,
|
|
33
|
-
button: [styles.button, { borderColor: COLORS.NEUTRAL_5 }],
|
|
49
|
+
container: isLarge ? styles.containerLarge : styles.container,
|
|
50
|
+
button: [styles.button, { borderColor: COLORS.NEUTRAL_5 }, styles[size]],
|
|
34
51
|
}}
|
|
35
52
|
customColorScheme={COLOR_SCHEMES.GREY}
|
|
36
|
-
icon={<XCloseIcon />}
|
|
53
|
+
icon={<XCloseIcon size={ICON_SIZES[size]} />}
|
|
37
54
|
/>
|
|
38
55
|
)
|
|
39
56
|
}
|
|
40
57
|
|
|
41
58
|
return (
|
|
42
59
|
<Button
|
|
43
|
-
|
|
60
|
+
id={TEACHER_FEEDBACK_BUTTON_ID}
|
|
44
61
|
onPress={onPress}
|
|
45
|
-
size=
|
|
46
|
-
variant=
|
|
62
|
+
size="large"
|
|
63
|
+
variant="primary"
|
|
47
64
|
disabled={isLoading}
|
|
48
65
|
isLoading={isLoading}
|
|
49
66
|
style={{
|
|
50
|
-
container: styles.container,
|
|
51
|
-
button: [
|
|
67
|
+
container: isLarge ? styles.containerLarge : styles.container,
|
|
68
|
+
button: [
|
|
69
|
+
styles.button,
|
|
70
|
+
{
|
|
71
|
+
borderColor: !!unreadCommentsCount
|
|
72
|
+
? isPurpleColor
|
|
73
|
+
? COLORS.PURPLE_6
|
|
74
|
+
: COLORS.BLUE_6
|
|
75
|
+
: COLORS.NEUTRAL_5,
|
|
76
|
+
},
|
|
77
|
+
styles[size],
|
|
78
|
+
],
|
|
52
79
|
}}
|
|
53
|
-
customColorScheme={
|
|
80
|
+
customColorScheme={
|
|
81
|
+
!!unreadCommentsCount
|
|
82
|
+
? isPurpleColor
|
|
83
|
+
? COLOR_SCHEMES.PURPLE
|
|
84
|
+
: COLOR_SCHEMES.BLUE
|
|
85
|
+
: COLOR_SCHEMES.GREY
|
|
86
|
+
}
|
|
54
87
|
icon={
|
|
55
88
|
<View style={styles.iconContainer}>
|
|
56
|
-
<MessageBubbleIcon
|
|
89
|
+
<MessageBubbleIcon
|
|
90
|
+
color={!!unreadCommentsCount ? COLORS.NEUTRAL_1 : COLORS.NEUTRAL_9}
|
|
91
|
+
size={ICON_SIZES[size]}
|
|
92
|
+
/>
|
|
57
93
|
{!!unreadCommentsCount && (
|
|
58
|
-
<View style={styles.badgeContainer}>
|
|
59
|
-
<UnreadMessagesBadge
|
|
94
|
+
<View style={isLarge ? styles.badgeContainerLarge : styles.badgeContainer}>
|
|
95
|
+
<UnreadMessagesBadge
|
|
96
|
+
badgeContent={unreadCommentsCount}
|
|
97
|
+
textStyle={isLarge && styles.textLarge}
|
|
98
|
+
style={isLarge && styles.badgeLarge}
|
|
99
|
+
/>
|
|
60
100
|
</View>
|
|
61
101
|
)}
|
|
62
102
|
</View>
|
|
@@ -70,17 +110,49 @@ const styles = StyleSheet.create({
|
|
|
70
110
|
width: 54,
|
|
71
111
|
height: 54,
|
|
72
112
|
},
|
|
73
|
-
|
|
113
|
+
containerLarge: {
|
|
114
|
+
width: 80,
|
|
115
|
+
height: 80,
|
|
116
|
+
},
|
|
117
|
+
[FeedbackButtonSize.SMALL]: {
|
|
74
118
|
width: 50,
|
|
75
119
|
height: 50,
|
|
120
|
+
},
|
|
121
|
+
[FeedbackButtonSize.LARGE]: {
|
|
122
|
+
width: 75,
|
|
123
|
+
height: 75,
|
|
124
|
+
},
|
|
125
|
+
button: {
|
|
126
|
+
borderWidth: 2,
|
|
127
|
+
},
|
|
128
|
+
buttonLarge: {
|
|
129
|
+
width: 75,
|
|
130
|
+
height: 75,
|
|
76
131
|
borderWidth: 2,
|
|
77
132
|
},
|
|
78
133
|
iconContainer: {
|
|
79
134
|
position: 'relative',
|
|
80
135
|
},
|
|
136
|
+
badgeContainerLarge: {
|
|
137
|
+
position: 'absolute',
|
|
138
|
+
top: -24,
|
|
139
|
+
right: -24,
|
|
140
|
+
},
|
|
81
141
|
badgeContainer: {
|
|
82
142
|
position: 'absolute',
|
|
83
143
|
top: -17,
|
|
84
144
|
right: -17,
|
|
85
145
|
},
|
|
146
|
+
textLarge: {
|
|
147
|
+
fontSize: 18,
|
|
148
|
+
lineHeight: 0,
|
|
149
|
+
textAlign: 'center',
|
|
150
|
+
alignItems: 'center',
|
|
151
|
+
justifyContent: 'center',
|
|
152
|
+
},
|
|
153
|
+
badgeLarge: {
|
|
154
|
+
width: 32,
|
|
155
|
+
height: 32,
|
|
156
|
+
borderRadius: 16,
|
|
157
|
+
},
|
|
86
158
|
})
|
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
import { ButtonStates, COLORS } from '@magmamath/react-native-ui'
|
|
2
2
|
|
|
3
3
|
export const COLOR_SCHEMES = {
|
|
4
|
+
PURPLE: {
|
|
5
|
+
[ButtonStates.DEFAULT]: {
|
|
6
|
+
borderColor: COLORS.PURPLE_6,
|
|
7
|
+
raiseColor: COLORS.PURPLE_6,
|
|
8
|
+
backgroundColor: COLORS.PRIMARY_PURPLE,
|
|
9
|
+
},
|
|
10
|
+
[ButtonStates.PRESSED]: {
|
|
11
|
+
borderColor: COLORS.PURPLE_6,
|
|
12
|
+
raiseColor: COLORS.PURPLE_6,
|
|
13
|
+
backgroundColor: COLORS.PRIMARY_PURPLE,
|
|
14
|
+
},
|
|
15
|
+
[ButtonStates.HOVER]: {
|
|
16
|
+
borderColor: COLORS.PURPLE_6,
|
|
17
|
+
raiseColor: COLORS.PURPLE_6,
|
|
18
|
+
backgroundColor: COLORS.PRIMARY_PURPLE,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
4
21
|
BLUE: {
|
|
5
22
|
[ButtonStates.DEFAULT]: {
|
|
6
23
|
borderColor: COLORS.BLUE_6,
|