@magmamath/students-features 0.2.1 → 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/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/TeacherFeedbackButton/TeacherFeedbackButton.js +1 -2
- package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/commonjs/features/feedback/constants.js +6 -9
- package/dist/commonjs/features/feedback/constants.js.map +1 -1
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js +10 -5
- package/dist/commonjs/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/commonjs/features/feedback/types/teacherFeedback.types.js.map +1 -1
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js +2 -2
- package/dist/module/features/feedback/components/EmptyComment/EmptyComment.js.map +1 -1
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js +1 -2
- package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map +1 -1
- package/dist/module/features/feedback/constants.js +5 -8
- package/dist/module/features/feedback/constants.js.map +1 -1
- package/dist/module/features/feedback/model/teacherFeedback.model.js +10 -5
- package/dist/module/features/feedback/model/teacherFeedback.model.js.map +1 -1
- package/dist/module/features/feedback/types/teacherFeedback.types.js.map +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +1 -1
- package/dist/typescript/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/constants.d.ts +4 -3
- package/dist/typescript/commonjs/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts +9 -3
- package/dist/typescript/commonjs/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/feedback/types/teacherFeedback.types.d.ts +0 -6
- package/dist/typescript/commonjs/features/feedback/types/teacherFeedback.types.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts +1 -1
- package/dist/typescript/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/constants.d.ts +4 -3
- package/dist/typescript/module/features/feedback/constants.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts +9 -3
- package/dist/typescript/module/features/feedback/model/teacherFeedback.model.d.ts.map +1 -1
- package/dist/typescript/module/features/feedback/types/teacherFeedback.types.d.ts +0 -6
- package/dist/typescript/module/features/feedback/types/teacherFeedback.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/feedback/components/EmptyComment/EmptyComment.tsx +2 -2
- package/src/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx +26 -12
- package/src/features/feedback/constants.ts +7 -10
- package/src/features/feedback/model/teacherFeedback.model.ts +32 -37
- package/src/features/feedback/types/teacherFeedback.types.ts +0 -5
|
@@ -18,7 +18,7 @@ const EmptyComment = ({
|
|
|
18
18
|
style: styles.container,
|
|
19
19
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
20
20
|
style: styles.text,
|
|
21
|
-
children:
|
|
21
|
+
children: locale === _teacherFeedbackTypes.Locale.SV ? _constants.NO_COMMENTS_SWE : _constants.NO_COMMENTS_ENG
|
|
22
22
|
})
|
|
23
23
|
});
|
|
24
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_constants","_teacherFeedbackTypes","_jsxRuntime","e","__esModule","default","EmptyComment","locale","jsx","View","style","styles","container","children","Text","text","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_constants","_teacherFeedbackTypes","_jsxRuntime","e","__esModule","default","EmptyComment","locale","jsx","View","style","styles","container","children","Text","text","Locale","SV","NO_COMMENTS_SWE","NO_COMMENTS_ENG","exports","StyleSheet","create","padding","gap","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","shadowColor","COLORS","NEUTRAL_10","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","NEUTRAL_3","alignItems","justifyContent","fontSize","fontFamily","BUENOS_AIRES_FONT","fontWeight","color","NEUTRAL_7","lineHeight"],"sourceRoot":"../../../../../../src","sources":["features/feedback/components/EmptyComment/EmptyComment.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AAA0D,IAAAK,WAAA,GAAAL,OAAA;AAAA,SAAAD,uBAAAO,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAMnD,MAAMG,YAAY,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAAK;EAC7D,oBACE,IAAAL,WAAA,CAAAM,GAAA,EAACV,YAAA,CAAAW,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5B,IAAAX,WAAA,CAAAM,GAAA,EAACV,YAAA,CAAAgB,IAAI;MAACJ,KAAK,EAAEC,MAAM,CAACI,IAAK;MAAAF,QAAA,EAAEN,MAAM,KAAKS,4BAAM,CAACC,EAAE,GAAGC,0BAAe,GAAGC;IAAe,CAAO;EAAC,CACvF,CAAC;AAEX,CAAC;AAAAC,OAAA,CAAAd,YAAA,GAAAA,YAAA;AAED,MAAMK,MAAM,GAAGU,uBAAU,CAACC,MAAM,CAAC;EAC/BV,SAAS,EAAE;IACTW,OAAO,EAAE,CAAC;IACVC,GAAG,EAAE,EAAE;IACPC,mBAAmB,EAAE,CAAC;IACtBC,oBAAoB,EAAE,CAAC;IACvBC,uBAAuB,EAAE,CAAC;IAC1BC,WAAW,EAAEC,qBAAM,CAACC,UAAU;IAC9BC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,eAAe,EAAER,qBAAM,CAACS,SAAS;IACjCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDzB,IAAI,EAAE;IACJ0B,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEC,4BAAiB;IAC7BC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAEhB,qBAAM,CAACiB,SAAS;IACvBvB,OAAO,EAAE,CAAC;IACVwB,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/commonjs/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js
CHANGED
|
@@ -21,12 +21,11 @@ const ICON_SIZES = {
|
|
|
21
21
|
const TeacherFeedbackButton = ({
|
|
22
22
|
isOpen,
|
|
23
23
|
onPress,
|
|
24
|
-
|
|
24
|
+
unreadCommentsCount,
|
|
25
25
|
isLoading,
|
|
26
26
|
size = _constants.FeedbackButtonSize.LARGE,
|
|
27
27
|
color = _constants.FeedbackButtonColors.BLUE
|
|
28
28
|
}) => {
|
|
29
|
-
const unreadCommentsCount = 5;
|
|
30
29
|
const isLarge = size === _constants.FeedbackButtonSize.LARGE;
|
|
31
30
|
const isPurpleColor = color === _constants.FeedbackButtonColors.PURPLE;
|
|
32
31
|
if (isOpen) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_UnreadMessagesBadge","_MessageBubbleIcon","_XCloseIcon","_colorSchemes","_constants","_jsxRuntime","e","__esModule","default","ICON_SIZES","FeedbackButtonSize","LARGE","SMALL","TeacherFeedbackButton","isOpen","onPress","isLoading","size","color","FeedbackButtonColors","BLUE","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_UnreadMessagesBadge","_MessageBubbleIcon","_XCloseIcon","_colorSchemes","_constants","_jsxRuntime","e","__esModule","default","ICON_SIZES","FeedbackButtonSize","LARGE","SMALL","TeacherFeedbackButton","isOpen","onPress","unreadCommentsCount","isLoading","size","color","FeedbackButtonColors","BLUE","isLarge","isPurpleColor","PURPLE","jsx","Button","id","TEACHER_FEEDBACK_BUTTON_ID","variant","disabled","style","container","styles","containerLarge","button","borderColor","COLORS","NEUTRAL_5","customColorScheme","COLOR_SCHEMES","GREY","icon","XCloseIcon","PURPLE_6","BLUE_6","jsxs","View","iconContainer","children","MessageBubbleIcon","NEUTRAL_1","NEUTRAL_9","badgeContainerLarge","badgeContainer","UnreadMessagesBadge","badgeContent","textStyle","textLarge","badgeLarge","exports","StyleSheet","create","width","height","borderWidth","buttonLarge","position","top","right","fontSize","lineHeight","textAlign","alignItems","justifyContent","borderRadius"],"sourceRoot":"../../../../../../src","sources":["features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,oBAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAIwB,IAAAQ,WAAA,GAAAR,OAAA;AAAA,SAAAD,uBAAAU,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExB,MAAMG,UAAU,GAAG;EACjB,CAACC,6BAAkB,CAACC,KAAK,GAAG,EAAE;EAC9B,CAACD,6BAAkB,CAACE,KAAK,GAAG;AAC9B,CAAC;AAWM,MAAMC,qBAAqB,GAAGA,CAAC;EACpCC,MAAM;EACNC,OAAO;EACPC,mBAAmB;EACnBC,SAAS;EACTC,IAAI,GAAGR,6BAAkB,CAACC,KAAK;EAC/BQ,KAAK,GAAGC,+BAAoB,CAACC;AACH,CAAC,KAAK;EAChC,MAAMC,OAAO,GAAGJ,IAAI,KAAKR,6BAAkB,CAACC,KAAK;EACjD,MAAMY,aAAa,GAAGJ,KAAK,KAAKC,+BAAoB,CAACI,MAAM;EAE3D,IAAIV,MAAM,EAAE;IACV,oBACE,IAAAT,WAAA,CAAAoB,GAAA,EAAC1B,cAAA,CAAA2B,MAAM;MACLC,EAAE,EAAEC,qCAA2B;MAC/Bb,OAAO,EAAEA,OAAQ;MACjBG,IAAI,EAAC,OAAO;MACZW,OAAO,EAAC,SAAS;MACjBC,QAAQ,EAAEb,SAAU;MACpBA,SAAS,EAAEA,SAAU;MACrBc,KAAK,EAAE;QACLC,SAAS,EAAEV,OAAO,GAAGW,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACD,SAAS;QAC7DG,MAAM,EAAE,CAACF,MAAM,CAACE,MAAM,EAAE;UAAEC,WAAW,EAAEC,qBAAM,CAACC;QAAU,CAAC,EAAEL,MAAM,CAACf,IAAI,CAAC;MACzE,CAAE;MACFqB,iBAAiB,EAAEC,2BAAa,CAACC,IAAK;MACtCC,IAAI,eAAE,IAAArC,WAAA,CAAAoB,GAAA,EAACvB,WAAA,CAAAyC,UAAU;QAACzB,IAAI,EAAET,UAAU,CAACS,IAAI;MAAE,CAAE;IAAE,CAC9C,CAAC;EAEN;EAEA,oBACE,IAAAb,WAAA,CAAAoB,GAAA,EAAC1B,cAAA,CAAA2B,MAAM;IACLC,EAAE,EAAEC,qCAA2B;IAC/Bb,OAAO,EAAEA,OAAQ;IACjBG,IAAI,EAAC,OAAO;IACZW,OAAO,EAAC,SAAS;IACjBC,QAAQ,EAAEb,SAAU;IACpBA,SAAS,EAAEA,SAAU;IACrBc,KAAK,EAAE;MACLC,SAAS,EAAEV,OAAO,GAAGW,MAAM,CAACC,cAAc,GAAGD,MAAM,CAACD,SAAS;MAC7DG,MAAM,EAAE,CACNF,MAAM,CAACE,MAAM,EACb;QACEC,WAAW,EAAE,CAAC,CAACpB,mBAAmB,GAC9BO,aAAa,GACXc,qBAAM,CAACO,QAAQ,GACfP,qBAAM,CAACQ,MAAM,GACfR,qBAAM,CAACC;MACb,CAAC,EACDL,MAAM,CAACf,IAAI,CAAC;IAEhB,CAAE;IACFqB,iBAAiB,EACf,CAAC,CAACvB,mBAAmB,GACjBO,aAAa,GACXiB,2BAAa,CAAChB,MAAM,GACpBgB,2BAAa,CAACnB,IAAI,GACpBmB,2BAAa,CAACC,IACnB;IACDC,IAAI,eACF,IAAArC,WAAA,CAAAyC,IAAA,EAAChD,YAAA,CAAAiD,IAAI;MAAChB,KAAK,EAAEE,MAAM,CAACe,aAAc;MAAAC,QAAA,gBAChC,IAAA5C,WAAA,CAAAoB,GAAA,EAACxB,kBAAA,CAAAiD,iBAAiB;QAChB/B,KAAK,EAAE,CAAC,CAACH,mBAAmB,GAAGqB,qBAAM,CAACc,SAAS,GAAGd,qBAAM,CAACe,SAAU;QACnElC,IAAI,EAAET,UAAU,CAACS,IAAI;MAAE,CACxB,CAAC,EACD,CAAC,CAACF,mBAAmB,iBACpB,IAAAX,WAAA,CAAAoB,GAAA,EAAC3B,YAAA,CAAAiD,IAAI;QAAChB,KAAK,EAAET,OAAO,GAAGW,MAAM,CAACoB,mBAAmB,GAAGpB,MAAM,CAACqB,cAAe;QAAAL,QAAA,eACxE,IAAA5C,WAAA,CAAAoB,GAAA,EAACzB,oBAAA,CAAAuD,mBAAmB;UAClBC,YAAY,EAAExC,mBAAoB;UAClCyC,SAAS,EAAEnC,OAAO,IAAIW,MAAM,CAACyB,SAAU;UACvC3B,KAAK,EAAET,OAAO,IAAIW,MAAM,CAAC0B;QAAW,CACrC;MAAC,CACE,CACP;IAAA,CACG;EACP,CACF,CAAC;AAEN,CAAC;AAAAC,OAAA,CAAA/C,qBAAA,GAAAA,qBAAA;AAED,MAAMoB,MAAM,GAAG4B,uBAAU,CAACC,MAAM,CAAC;EAC/B9B,SAAS,EAAE;IACT+B,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACD9B,cAAc,EAAE;IACd6B,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACD,CAACtD,6BAAkB,CAACE,KAAK,GAAG;IAC1BmD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACD,CAACtD,6BAAkB,CAACC,KAAK,GAAG;IAC1BoD,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE;EACV,CAAC;EACD7B,MAAM,EAAE;IACN8B,WAAW,EAAE;EACf,CAAC;EACDC,WAAW,EAAE;IACXH,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE;EACf,CAAC;EACDjB,aAAa,EAAE;IACbmB,QAAQ,EAAE;EACZ,CAAC;EACDd,mBAAmB,EAAE;IACnBc,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC,EAAE;IACRC,KAAK,EAAE,CAAC;EACV,CAAC;EACDf,cAAc,EAAE;IACda,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC,EAAE;IACRC,KAAK,EAAE,CAAC;EACV,CAAC;EACDX,SAAS,EAAE;IACTY,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,CAAC;IACbC,SAAS,EAAE,QAAQ;IACnBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDf,UAAU,EAAE;IACVI,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVW,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -3,22 +3,18 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getEmptyComment = exports.TEACHER_FEEDBACK_BUTTON_ID = exports.
|
|
6
|
+
exports.getEmptyComment = exports.TEACHER_FEEDBACK_BUTTON_ID = exports.NO_COMMENTS_SWE = exports.NO_COMMENTS_ENG = exports.FeedbackMode = exports.FeedbackButtonSize = exports.FeedbackButtonColors = exports.EMPTY_COMMENT_ID = exports.BUENOS_AIRES_FONT = void 0;
|
|
7
7
|
var _reactNative = require("react-native");
|
|
8
8
|
var _teacherFeedbackTypes = require("./types/teacherFeedback.types.js");
|
|
9
|
-
const TEACHER_FEEDBACK_BUTTON_ID = exports.TEACHER_FEEDBACK_BUTTON_ID = 'teacherFeedbackButton';
|
|
10
|
-
const EMPTY_COMMENT_ID = exports.EMPTY_COMMENT_ID = 'empty-comment';
|
|
11
9
|
const BUENOS_AIRES_FONT = exports.BUENOS_AIRES_FONT = _reactNative.Platform.OS === 'web' ? 'Buenos Aires, sans-serif' : 'BuenosAires-Regular';
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
[_teacherFeedbackTypes.Locale.US]: 'No comments yet'
|
|
16
|
-
};
|
|
10
|
+
const NO_COMMENTS_ENG = exports.NO_COMMENTS_ENG = 'No comments yet';
|
|
11
|
+
const NO_COMMENTS_SWE = exports.NO_COMMENTS_SWE = 'Inga kommentarer än';
|
|
12
|
+
const EMPTY_COMMENT_ID = exports.EMPTY_COMMENT_ID = 'empty-comment';
|
|
17
13
|
const getEmptyComment = (problemId, locale) => {
|
|
18
14
|
return {
|
|
19
15
|
__v: 0,
|
|
20
16
|
_id: EMPTY_COMMENT_ID,
|
|
21
|
-
content:
|
|
17
|
+
content: locale === _teacherFeedbackTypes.Locale.SV ? NO_COMMENTS_SWE : NO_COMMENTS_ENG,
|
|
22
18
|
createdAt: new Date(),
|
|
23
19
|
exerciseId: '',
|
|
24
20
|
isRead: true,
|
|
@@ -30,6 +26,7 @@ const getEmptyComment = (problemId, locale) => {
|
|
|
30
26
|
};
|
|
31
27
|
};
|
|
32
28
|
exports.getEmptyComment = getEmptyComment;
|
|
29
|
+
const TEACHER_FEEDBACK_BUTTON_ID = exports.TEACHER_FEEDBACK_BUTTON_ID = 'teacherFeedbackButton';
|
|
33
30
|
let FeedbackButtonColors = exports.FeedbackButtonColors = /*#__PURE__*/function (FeedbackButtonColors) {
|
|
34
31
|
FeedbackButtonColors["BLUE"] = "BLUE";
|
|
35
32
|
FeedbackButtonColors["PURPLE"] = "PURPLE";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_teacherFeedbackTypes","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_teacherFeedbackTypes","BUENOS_AIRES_FONT","exports","Platform","OS","NO_COMMENTS_ENG","NO_COMMENTS_SWE","EMPTY_COMMENT_ID","getEmptyComment","problemId","locale","__v","_id","content","Locale","SV","createdAt","Date","exerciseId","isRead","studentId","teacherId","teacherName","updatedAt","TEACHER_FEEDBACK_BUTTON_ID","FeedbackButtonColors","FeedbackButtonSize","FeedbackMode"],"sourceRoot":"../../../../src","sources":["features/feedback/constants.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAEO,MAAME,iBAAiB,GAAAC,OAAA,CAAAD,iBAAA,GAAGE,qBAAQ,CAACC,EAAE,KAAK,KAAK,GAAG,0BAA0B,GAAG,qBAAqB;AAEpG,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,iBAAiB;AACzC,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,qBAAqB;AAC7C,MAAMC,gBAAgB,GAAAL,OAAA,CAAAK,gBAAA,GAAG,eAAe;AAExC,MAAMC,eAAe,GAAGA,CAACC,SAAiB,EAAEC,MAAqB,KAAK;EAC3E,OAAO;IACLC,GAAG,EAAE,CAAC;IACNC,GAAG,EAAEL,gBAAgB;IACrBM,OAAO,EAAEH,MAAM,KAAKI,4BAAM,CAACC,EAAE,GAAGT,eAAe,GAAGD,eAAe;IACjEW,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;IACrBC,UAAU,EAAE,EAAE;IACdC,MAAM,EAAE,IAAI;IACZV,SAAS;IACTW,SAAS,EAAE,EAAE;IACbC,SAAS,EAAE,EAAE;IACbC,WAAW,EAAE,EAAE;IACfC,SAAS,EAAE,IAAIN,IAAI,CAAC;EACtB,CAAC;AACH,CAAC;AAAAf,OAAA,CAAAM,eAAA,GAAAA,eAAA;AAEM,MAAMgB,0BAA0B,GAAAtB,OAAA,CAAAsB,0BAAA,GAAG,uBAAuB;AAAA,IAErDC,oBAAoB,GAAAvB,OAAA,CAAAuB,oBAAA,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAAA,IAKpBC,kBAAkB,GAAAxB,OAAA,CAAAwB,kBAAA,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAAA,IAKlBC,YAAY,GAAAzB,OAAA,CAAAyB,YAAA,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
@@ -152,23 +152,26 @@ class TeacherFeedbackModel {
|
|
|
152
152
|
comments: feedback.comments.filter(comment => comment._id !== payload._id),
|
|
153
153
|
unreadMessagesCount: isDeleteMessageUnread ? feedback.unreadMessagesCount - 1 : feedback.unreadMessagesCount
|
|
154
154
|
};
|
|
155
|
+
const isOpen = this.$isOpened.getState();
|
|
155
156
|
if (updatedFeedback.comments.length === 0) {
|
|
156
157
|
const updatedAssignmentComments = {
|
|
157
158
|
...assignmentComments
|
|
158
159
|
};
|
|
159
|
-
const isOpen = this.$isOpened.getState();
|
|
160
160
|
if (!isOpen) {
|
|
161
161
|
delete updatedAssignmentComments[payload.problemId];
|
|
162
|
+
|
|
163
|
+
// If no problems left, remove the assignment entirely
|
|
162
164
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
163
165
|
const updatedState = new Map(state);
|
|
164
166
|
updatedState.delete(assignmentId);
|
|
165
167
|
return updatedState;
|
|
166
168
|
}
|
|
169
|
+
} else {
|
|
170
|
+
updatedAssignmentComments[payload.problemId] = {
|
|
171
|
+
...updatedFeedback,
|
|
172
|
+
comments: [(0, _constants.getEmptyComment)(payload.problemId, this.$locale.getState())]
|
|
173
|
+
};
|
|
167
174
|
}
|
|
168
|
-
updatedAssignmentComments[payload.problemId] = {
|
|
169
|
-
...updatedFeedback,
|
|
170
|
-
comments: [(0, _constants.getEmptyComment)(payload.problemId, this.$locale.getState())]
|
|
171
|
-
};
|
|
172
175
|
const updatedState = new Map(state);
|
|
173
176
|
updatedState.set(assignmentId, updatedAssignmentComments);
|
|
174
177
|
return updatedState;
|
|
@@ -193,6 +196,8 @@ class TeacherFeedbackModel {
|
|
|
193
196
|
...assignmentComments
|
|
194
197
|
};
|
|
195
198
|
delete updatedAssignmentComments[problemId];
|
|
199
|
+
|
|
200
|
+
// If no problems left, remove the assignment entirely
|
|
196
201
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
197
202
|
const updatedState = new Map(state);
|
|
198
203
|
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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Locale","exports","TeacherFeedbackSocketEvent"],"sourceRoot":"../../../../../src","sources":["features/feedback/types/teacherFeedback.types.ts"],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"names":["Locale","exports","TeacherFeedbackSocketEvent"],"sourceRoot":"../../../../../src","sources":["features/feedback/types/teacherFeedback.types.ts"],"mappings":";;;;;;IAsBYA,MAAM,GAAAC,OAAA,CAAAD,MAAA,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAAA,IAMNE,0BAA0B,GAAAD,OAAA,CAAAC,0BAAA,0BAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAAA,OAA1BA,0BAA0B;AAAA","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { StyleSheet, Text, View } from 'react-native';
|
|
5
5
|
import { COLORS } from '@magmamath/react-native-ui';
|
|
6
|
-
import { BUENOS_AIRES_FONT,
|
|
6
|
+
import { BUENOS_AIRES_FONT, NO_COMMENTS_SWE, NO_COMMENTS_ENG } from "../../constants.js";
|
|
7
7
|
import { Locale } from "../../types/teacherFeedback.types.js";
|
|
8
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
9
|
export const EmptyComment = ({
|
|
@@ -13,7 +13,7 @@ export const EmptyComment = ({
|
|
|
13
13
|
style: styles.container,
|
|
14
14
|
children: /*#__PURE__*/_jsx(Text, {
|
|
15
15
|
style: styles.text,
|
|
16
|
-
children:
|
|
16
|
+
children: locale === Locale.SV ? NO_COMMENTS_SWE : NO_COMMENTS_ENG
|
|
17
17
|
})
|
|
18
18
|
});
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","Text","View","COLORS","BUENOS_AIRES_FONT","
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","Text","View","COLORS","BUENOS_AIRES_FONT","NO_COMMENTS_SWE","NO_COMMENTS_ENG","Locale","jsx","_jsx","EmptyComment","locale","style","styles","container","children","text","SV","create","padding","gap","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","shadowColor","NEUTRAL_10","shadowOffset","width","height","shadowOpacity","shadowRadius","elevation","backgroundColor","NEUTRAL_3","alignItems","justifyContent","fontSize","fontFamily","fontWeight","color","NEUTRAL_7","lineHeight"],"sourceRoot":"../../../../../../src","sources":["features/feedback/components/EmptyComment/EmptyComment.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,iBAAiB,EAAEC,eAAe,EAAEC,eAAe,QAAQ,oBAAiB;AACrF,SAASC,MAAM,QAAQ,sCAAmC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAM1D,OAAO,MAAMC,YAAY,GAAGA,CAAC;EAAEC;AAA0B,CAAC,KAAK;EAC7D,oBACEF,IAAA,CAACP,IAAI;IAACU,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5BN,IAAA,CAACR,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACG,IAAK;MAAAD,QAAA,EAAEJ,MAAM,KAAKJ,MAAM,CAACU,EAAE,GAAGZ,eAAe,GAAGC;IAAe,CAAO;EAAC,CACvF,CAAC;AAEX,CAAC;AAED,MAAMO,MAAM,GAAGb,UAAU,CAACkB,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,OAAO,EAAE,CAAC;IACVC,GAAG,EAAE,EAAE;IACPC,mBAAmB,EAAE,CAAC;IACtBC,oBAAoB,EAAE,CAAC;IACvBC,uBAAuB,EAAE,CAAC;IAC1BC,WAAW,EAAErB,MAAM,CAACsB,UAAU;IAC9BC,YAAY,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,eAAe,EAAE7B,MAAM,CAAC8B,SAAS;IACjCC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDnB,IAAI,EAAE;IACJoB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAEjC,iBAAiB;IAC7BkC,UAAU,EAAE,KAAK;IACjBC,KAAK,EAAEpC,MAAM,CAACqC,SAAS;IACvBrB,OAAO,EAAE,CAAC;IACVsB,UAAU,EAAE;EACd;AACF,CAAC,CAAC","ignoreList":[]}
|
package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js
CHANGED
|
@@ -16,12 +16,11 @@ const ICON_SIZES = {
|
|
|
16
16
|
export const TeacherFeedbackButton = ({
|
|
17
17
|
isOpen,
|
|
18
18
|
onPress,
|
|
19
|
-
|
|
19
|
+
unreadCommentsCount,
|
|
20
20
|
isLoading,
|
|
21
21
|
size = FeedbackButtonSize.LARGE,
|
|
22
22
|
color = FeedbackButtonColors.BLUE
|
|
23
23
|
}) => {
|
|
24
|
-
const unreadCommentsCount = 5;
|
|
25
24
|
const isLarge = size === FeedbackButtonSize.LARGE;
|
|
26
25
|
const isPurpleColor = color === FeedbackButtonColors.PURPLE;
|
|
27
26
|
if (isOpen) {
|
package/dist/module/features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","Button","COLORS","UnreadMessagesBadge","MessageBubbleIcon","XCloseIcon","COLOR_SCHEMES","FeedbackButtonColors","FeedbackButtonSize","TEACHER_FEEDBACK_BUTTON_ID","jsx","_jsx","jsxs","_jsxs","ICON_SIZES","LARGE","SMALL","TeacherFeedbackButton","isOpen","onPress","isLoading","size","color","BLUE","
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","Button","COLORS","UnreadMessagesBadge","MessageBubbleIcon","XCloseIcon","COLOR_SCHEMES","FeedbackButtonColors","FeedbackButtonSize","TEACHER_FEEDBACK_BUTTON_ID","jsx","_jsx","jsxs","_jsxs","ICON_SIZES","LARGE","SMALL","TeacherFeedbackButton","isOpen","onPress","unreadCommentsCount","isLoading","size","color","BLUE","isLarge","isPurpleColor","PURPLE","id","variant","disabled","style","container","styles","containerLarge","button","borderColor","NEUTRAL_5","customColorScheme","GREY","icon","PURPLE_6","BLUE_6","iconContainer","children","NEUTRAL_1","NEUTRAL_9","badgeContainerLarge","badgeContainer","badgeContent","textStyle","textLarge","badgeLarge","create","width","height","borderWidth","buttonLarge","position","top","right","fontSize","lineHeight","textAlign","alignItems","justifyContent","borderRadius"],"sourceRoot":"../../../../../../src","sources":["features/feedback/components/TeacherFeedbackButton/TeacherFeedbackButton.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,19 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import { Platform } from 'react-native';
|
|
4
4
|
import { Locale } from "./types/teacherFeedback.types.js";
|
|
5
|
-
export const TEACHER_FEEDBACK_BUTTON_ID = 'teacherFeedbackButton';
|
|
6
|
-
export const EMPTY_COMMENT_ID = 'empty-comment';
|
|
7
5
|
export const BUENOS_AIRES_FONT = Platform.OS === 'web' ? 'Buenos Aires, sans-serif' : 'BuenosAires-Regular';
|
|
8
|
-
export const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
[Locale.US]: 'No comments yet'
|
|
12
|
-
};
|
|
6
|
+
export const NO_COMMENTS_ENG = 'No comments yet';
|
|
7
|
+
export const NO_COMMENTS_SWE = 'Inga kommentarer än';
|
|
8
|
+
export const EMPTY_COMMENT_ID = 'empty-comment';
|
|
13
9
|
export const getEmptyComment = (problemId, locale) => {
|
|
14
10
|
return {
|
|
15
11
|
__v: 0,
|
|
16
12
|
_id: EMPTY_COMMENT_ID,
|
|
17
|
-
content:
|
|
13
|
+
content: locale === Locale.SV ? NO_COMMENTS_SWE : NO_COMMENTS_ENG,
|
|
18
14
|
createdAt: new Date(),
|
|
19
15
|
exerciseId: '',
|
|
20
16
|
isRead: true,
|
|
@@ -25,6 +21,7 @@ export const getEmptyComment = (problemId, locale) => {
|
|
|
25
21
|
updatedAt: new Date()
|
|
26
22
|
};
|
|
27
23
|
};
|
|
24
|
+
export const TEACHER_FEEDBACK_BUTTON_ID = 'teacherFeedbackButton';
|
|
28
25
|
export let FeedbackButtonColors = /*#__PURE__*/function (FeedbackButtonColors) {
|
|
29
26
|
FeedbackButtonColors["BLUE"] = "BLUE";
|
|
30
27
|
FeedbackButtonColors["PURPLE"] = "PURPLE";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","Locale","
|
|
1
|
+
{"version":3,"names":["Platform","Locale","BUENOS_AIRES_FONT","OS","NO_COMMENTS_ENG","NO_COMMENTS_SWE","EMPTY_COMMENT_ID","getEmptyComment","problemId","locale","__v","_id","content","SV","createdAt","Date","exerciseId","isRead","studentId","teacherId","teacherName","updatedAt","TEACHER_FEEDBACK_BUTTON_ID","FeedbackButtonColors","FeedbackButtonSize","FeedbackMode"],"sourceRoot":"../../../../src","sources":["features/feedback/constants.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,MAAM,QAAQ,kCAA+B;AAEtD,OAAO,MAAMC,iBAAiB,GAAGF,QAAQ,CAACG,EAAE,KAAK,KAAK,GAAG,0BAA0B,GAAG,qBAAqB;AAE3G,OAAO,MAAMC,eAAe,GAAG,iBAAiB;AAChD,OAAO,MAAMC,eAAe,GAAG,qBAAqB;AACpD,OAAO,MAAMC,gBAAgB,GAAG,eAAe;AAE/C,OAAO,MAAMC,eAAe,GAAGA,CAACC,SAAiB,EAAEC,MAAqB,KAAK;EAC3E,OAAO;IACLC,GAAG,EAAE,CAAC;IACNC,GAAG,EAAEL,gBAAgB;IACrBM,OAAO,EAAEH,MAAM,KAAKR,MAAM,CAACY,EAAE,GAAGR,eAAe,GAAGD,eAAe;IACjEU,SAAS,EAAE,IAAIC,IAAI,CAAC,CAAC;IACrBC,UAAU,EAAE,EAAE;IACdC,MAAM,EAAE,IAAI;IACZT,SAAS;IACTU,SAAS,EAAE,EAAE;IACbC,SAAS,EAAE,EAAE;IACbC,WAAW,EAAE,EAAE;IACfC,SAAS,EAAE,IAAIN,IAAI,CAAC;EACtB,CAAC;AACH,CAAC;AAED,OAAO,MAAMO,0BAA0B,GAAG,uBAAuB;AAEjE,WAAYC,oBAAoB,0BAApBA,oBAAoB;EAApBA,oBAAoB;EAApBA,oBAAoB;EAAA,OAApBA,oBAAoB;AAAA;AAKhC,WAAYC,kBAAkB,0BAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAlBA,kBAAkB;EAAA,OAAlBA,kBAAkB;AAAA;AAK9B,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA","ignoreList":[]}
|
|
@@ -148,23 +148,26 @@ export class TeacherFeedbackModel {
|
|
|
148
148
|
comments: feedback.comments.filter(comment => comment._id !== payload._id),
|
|
149
149
|
unreadMessagesCount: isDeleteMessageUnread ? feedback.unreadMessagesCount - 1 : feedback.unreadMessagesCount
|
|
150
150
|
};
|
|
151
|
+
const isOpen = this.$isOpened.getState();
|
|
151
152
|
if (updatedFeedback.comments.length === 0) {
|
|
152
153
|
const updatedAssignmentComments = {
|
|
153
154
|
...assignmentComments
|
|
154
155
|
};
|
|
155
|
-
const isOpen = this.$isOpened.getState();
|
|
156
156
|
if (!isOpen) {
|
|
157
157
|
delete updatedAssignmentComments[payload.problemId];
|
|
158
|
+
|
|
159
|
+
// If no problems left, remove the assignment entirely
|
|
158
160
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
159
161
|
const updatedState = new Map(state);
|
|
160
162
|
updatedState.delete(assignmentId);
|
|
161
163
|
return updatedState;
|
|
162
164
|
}
|
|
165
|
+
} else {
|
|
166
|
+
updatedAssignmentComments[payload.problemId] = {
|
|
167
|
+
...updatedFeedback,
|
|
168
|
+
comments: [getEmptyComment(payload.problemId, this.$locale.getState())]
|
|
169
|
+
};
|
|
163
170
|
}
|
|
164
|
-
updatedAssignmentComments[payload.problemId] = {
|
|
165
|
-
...updatedFeedback,
|
|
166
|
-
comments: [getEmptyComment(payload.problemId, this.$locale.getState())]
|
|
167
|
-
};
|
|
168
171
|
const updatedState = new Map(state);
|
|
169
172
|
updatedState.set(assignmentId, updatedAssignmentComments);
|
|
170
173
|
return updatedState;
|
|
@@ -189,6 +192,8 @@ export class TeacherFeedbackModel {
|
|
|
189
192
|
...assignmentComments
|
|
190
193
|
};
|
|
191
194
|
delete updatedAssignmentComments[problemId];
|
|
195
|
+
|
|
196
|
+
// If no problems left, remove the assignment entirely
|
|
192
197
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
193
198
|
const updatedState = new Map(state);
|
|
194
199
|
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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Locale","TeacherFeedbackSocketEvent"],"sourceRoot":"../../../../../src","sources":["features/feedback/types/teacherFeedback.types.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"names":["Locale","TeacherFeedbackSocketEvent"],"sourceRoot":"../../../../../src","sources":["features/feedback/types/teacherFeedback.types.ts"],"mappings":";;AAsBA,WAAYA,MAAM,0BAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAANA,MAAM;EAAA,OAANA,MAAM;AAAA;AAMlB,WAAYC,0BAA0B,0BAA1BA,0BAA0B;EAA1BA,0BAA0B;EAA1BA,0BAA0B;EAAA,OAA1BA,0BAA0B;AAAA","ignoreList":[]}
|
|
@@ -8,6 +8,6 @@ type TeacherFeedbackButtonProps = {
|
|
|
8
8
|
size?: FeedbackButtonSize;
|
|
9
9
|
color?: FeedbackButtonColors;
|
|
10
10
|
};
|
|
11
|
-
export declare const TeacherFeedbackButton: ({ isOpen, onPress, isLoading, size, color, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
11
|
+
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading, size, color, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
12
12
|
export {};
|
|
13
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;AAOzB,OAAO,
|
|
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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Locale } from './types/teacherFeedback.types';
|
|
2
|
-
export declare const TEACHER_FEEDBACK_BUTTON_ID = "teacherFeedbackButton";
|
|
3
|
-
export declare const EMPTY_COMMENT_ID = "empty-comment";
|
|
4
2
|
export declare const BUENOS_AIRES_FONT: string;
|
|
5
|
-
export declare const
|
|
3
|
+
export declare const NO_COMMENTS_ENG = "No comments yet";
|
|
4
|
+
export declare const NO_COMMENTS_SWE = "Inga kommentarer \u00E4n";
|
|
5
|
+
export declare const EMPTY_COMMENT_ID = "empty-comment";
|
|
6
6
|
export declare const getEmptyComment: (problemId: string, locale: Locale | null) => {
|
|
7
7
|
__v: number;
|
|
8
8
|
_id: string;
|
|
@@ -16,6 +16,7 @@ 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";
|
|
19
20
|
export declare enum FeedbackButtonColors {
|
|
20
21
|
BLUE = "BLUE",
|
|
21
22
|
PURPLE = "PURPLE"
|
|
@@ -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,
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { Effect, StoreWritable } from 'effector';
|
|
2
|
-
import { CommentsEntity, GetCommentsByIdProps,
|
|
2
|
+
import { CommentsEntity, GetCommentsByIdProps, Locale, TeacherComment, UpdateCommentSeenStatusProps } from '../types/teacherFeedback.types';
|
|
3
3
|
type TeacherFeedbackModelProps = {
|
|
4
4
|
credits: {
|
|
5
5
|
assignmentId: StoreWritable<string>;
|
|
@@ -13,6 +13,7 @@ type TeacherFeedbackModelProps = {
|
|
|
13
13
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
+
type CommentsMap = Map<string, Record<string, CommentsEntity>>;
|
|
16
17
|
export declare class TeacherFeedbackModel {
|
|
17
18
|
$assignmentId: StoreWritable<string>;
|
|
18
19
|
$currentProblemId: StoreWritable<string>;
|
|
@@ -22,12 +23,17 @@ export declare class TeacherFeedbackModel {
|
|
|
22
23
|
currentProblemId: string;
|
|
23
24
|
assignmentId: string;
|
|
24
25
|
}>;
|
|
25
|
-
$comments: StoreWritable<
|
|
26
|
+
$comments: StoreWritable<CommentsMap>;
|
|
26
27
|
setIsOpened: import("effector").EventCallable<boolean>;
|
|
27
28
|
$isOpened: StoreWritable<boolean>;
|
|
28
29
|
setIsVisible: import("effector").EventCallable<boolean>;
|
|
29
30
|
$isVisible: StoreWritable<boolean>;
|
|
30
|
-
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps,
|
|
31
|
+
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, {
|
|
32
|
+
data: Record<string, {
|
|
33
|
+
comments: TeacherComment[];
|
|
34
|
+
}>;
|
|
35
|
+
assignmentId: string;
|
|
36
|
+
}>;
|
|
31
37
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>;
|
|
32
38
|
sockets: {
|
|
33
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,
|
|
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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
export type GetCommentsByIdProps = {
|
|
2
2
|
id: string;
|
|
3
3
|
};
|
|
4
|
-
export type GetCommentsByIdResponse = {
|
|
5
|
-
data: Record<string, {
|
|
6
|
-
comments: TeacherComment[];
|
|
7
|
-
}>;
|
|
8
|
-
assignmentId: string;
|
|
9
|
-
};
|
|
10
4
|
export type UpdateCommentSeenStatusProps = {
|
|
11
5
|
ids: string[];
|
|
12
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teacherFeedback.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/types/teacherFeedback.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"teacherFeedback.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/types/teacherFeedback.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,4BAA4B,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,oBAAY,MAAM;IAChB,EAAE,UAAU;IACZ,EAAE,UAAU;IACZ,EAAE,UAAU;CACb;AAED,oBAAY,0BAA0B;IACpC,eAAe,2BAA2B;IAC1C,eAAe,2BAA2B;CAC3C"}
|
|
@@ -8,6 +8,6 @@ type TeacherFeedbackButtonProps = {
|
|
|
8
8
|
size?: FeedbackButtonSize;
|
|
9
9
|
color?: FeedbackButtonColors;
|
|
10
10
|
};
|
|
11
|
-
export declare const TeacherFeedbackButton: ({ isOpen, onPress, isLoading, size, color, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
11
|
+
export declare const TeacherFeedbackButton: ({ isOpen, onPress, unreadCommentsCount, isLoading, size, color, }: TeacherFeedbackButtonProps) => React.JSX.Element;
|
|
12
12
|
export {};
|
|
13
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;AAOzB,OAAO,
|
|
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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Locale } from './types/teacherFeedback.types';
|
|
2
|
-
export declare const TEACHER_FEEDBACK_BUTTON_ID = "teacherFeedbackButton";
|
|
3
|
-
export declare const EMPTY_COMMENT_ID = "empty-comment";
|
|
4
2
|
export declare const BUENOS_AIRES_FONT: string;
|
|
5
|
-
export declare const
|
|
3
|
+
export declare const NO_COMMENTS_ENG = "No comments yet";
|
|
4
|
+
export declare const NO_COMMENTS_SWE = "Inga kommentarer \u00E4n";
|
|
5
|
+
export declare const EMPTY_COMMENT_ID = "empty-comment";
|
|
6
6
|
export declare const getEmptyComment: (problemId: string, locale: Locale | null) => {
|
|
7
7
|
__v: number;
|
|
8
8
|
_id: string;
|
|
@@ -16,6 +16,7 @@ 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";
|
|
19
20
|
export declare enum FeedbackButtonColors {
|
|
20
21
|
BLUE = "BLUE",
|
|
21
22
|
PURPLE = "PURPLE"
|
|
@@ -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,
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { Effect, StoreWritable } from 'effector';
|
|
2
|
-
import { CommentsEntity, GetCommentsByIdProps,
|
|
2
|
+
import { CommentsEntity, GetCommentsByIdProps, Locale, TeacherComment, UpdateCommentSeenStatusProps } from '../types/teacherFeedback.types';
|
|
3
3
|
type TeacherFeedbackModelProps = {
|
|
4
4
|
credits: {
|
|
5
5
|
assignmentId: StoreWritable<string>;
|
|
@@ -13,6 +13,7 @@ type TeacherFeedbackModelProps = {
|
|
|
13
13
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
+
type CommentsMap = Map<string, Record<string, CommentsEntity>>;
|
|
16
17
|
export declare class TeacherFeedbackModel {
|
|
17
18
|
$assignmentId: StoreWritable<string>;
|
|
18
19
|
$currentProblemId: StoreWritable<string>;
|
|
@@ -22,12 +23,17 @@ export declare class TeacherFeedbackModel {
|
|
|
22
23
|
currentProblemId: string;
|
|
23
24
|
assignmentId: string;
|
|
24
25
|
}>;
|
|
25
|
-
$comments: StoreWritable<
|
|
26
|
+
$comments: StoreWritable<CommentsMap>;
|
|
26
27
|
setIsOpened: import("effector").EventCallable<boolean>;
|
|
27
28
|
$isOpened: StoreWritable<boolean>;
|
|
28
29
|
setIsVisible: import("effector").EventCallable<boolean>;
|
|
29
30
|
$isVisible: StoreWritable<boolean>;
|
|
30
|
-
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps,
|
|
31
|
+
getCommentsByAssignmentIdFx: Effect<GetCommentsByIdProps, {
|
|
32
|
+
data: Record<string, {
|
|
33
|
+
comments: TeacherComment[];
|
|
34
|
+
}>;
|
|
35
|
+
assignmentId: string;
|
|
36
|
+
}>;
|
|
31
37
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>;
|
|
32
38
|
sockets: {
|
|
33
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,
|
|
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"}
|
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
export type GetCommentsByIdProps = {
|
|
2
2
|
id: string;
|
|
3
3
|
};
|
|
4
|
-
export type GetCommentsByIdResponse = {
|
|
5
|
-
data: Record<string, {
|
|
6
|
-
comments: TeacherComment[];
|
|
7
|
-
}>;
|
|
8
|
-
assignmentId: string;
|
|
9
|
-
};
|
|
10
4
|
export type UpdateCommentSeenStatusProps = {
|
|
11
5
|
ids: string[];
|
|
12
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"teacherFeedback.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/types/teacherFeedback.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"teacherFeedback.types.d.ts","sourceRoot":"","sources":["../../../../../../src/features/feedback/types/teacherFeedback.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AACjD,MAAM,MAAM,4BAA4B,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE,CAAA;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;IACf,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,mBAAmB,EAAE,MAAM,CAAA;CAC5B,CAAA;AAED,oBAAY,MAAM;IAChB,EAAE,UAAU;IACZ,EAAE,UAAU;IACZ,EAAE,UAAU;CACb;AAED,oBAAY,0BAA0B;IACpC,eAAe,2BAA2B;IAC1C,eAAe,2BAA2B;CAC3C"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import { StyleSheet, Text, View } from 'react-native'
|
|
3
3
|
import { COLORS } from '@magmamath/react-native-ui'
|
|
4
|
-
import { BUENOS_AIRES_FONT,
|
|
4
|
+
import { BUENOS_AIRES_FONT, NO_COMMENTS_SWE, NO_COMMENTS_ENG } from '../../constants'
|
|
5
5
|
import { Locale } from '../../types/teacherFeedback.types'
|
|
6
6
|
|
|
7
7
|
type EmptyCommentProps = {
|
|
@@ -11,7 +11,7 @@ type EmptyCommentProps = {
|
|
|
11
11
|
export const EmptyComment = ({ locale }: EmptyCommentProps) => {
|
|
12
12
|
return (
|
|
13
13
|
<View style={styles.container}>
|
|
14
|
-
<Text style={styles.text}>{
|
|
14
|
+
<Text style={styles.text}>{locale === Locale.SV ? NO_COMMENTS_SWE : NO_COMMENTS_ENG}</Text>
|
|
15
15
|
</View>
|
|
16
16
|
)
|
|
17
17
|
}
|
|
@@ -5,11 +5,15 @@ 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 {
|
|
8
|
+
import {
|
|
9
|
+
FeedbackButtonColors,
|
|
10
|
+
FeedbackButtonSize,
|
|
11
|
+
TEACHER_FEEDBACK_BUTTON_ID,
|
|
12
|
+
} from '../../constants'
|
|
9
13
|
|
|
10
14
|
const ICON_SIZES = {
|
|
11
15
|
[FeedbackButtonSize.LARGE]: 37,
|
|
12
|
-
[FeedbackButtonSize.SMALL]: 26
|
|
16
|
+
[FeedbackButtonSize.SMALL]: 26,
|
|
13
17
|
}
|
|
14
18
|
|
|
15
19
|
type TeacherFeedbackButtonProps = {
|
|
@@ -24,13 +28,11 @@ type TeacherFeedbackButtonProps = {
|
|
|
24
28
|
export const TeacherFeedbackButton = ({
|
|
25
29
|
isOpen,
|
|
26
30
|
onPress,
|
|
27
|
-
|
|
31
|
+
unreadCommentsCount,
|
|
28
32
|
isLoading,
|
|
29
33
|
size = FeedbackButtonSize.LARGE,
|
|
30
34
|
color = FeedbackButtonColors.BLUE,
|
|
31
35
|
}: TeacherFeedbackButtonProps) => {
|
|
32
|
-
|
|
33
|
-
const unreadCommentsCount = 5
|
|
34
36
|
const isLarge = size === FeedbackButtonSize.LARGE
|
|
35
37
|
const isPurpleColor = color === FeedbackButtonColors.PURPLE
|
|
36
38
|
|
|
@@ -39,8 +41,8 @@ export const TeacherFeedbackButton = ({
|
|
|
39
41
|
<Button
|
|
40
42
|
id={TEACHER_FEEDBACK_BUTTON_ID}
|
|
41
43
|
onPress={onPress}
|
|
42
|
-
size=
|
|
43
|
-
variant=
|
|
44
|
+
size="large"
|
|
45
|
+
variant="primary"
|
|
44
46
|
disabled={isLoading}
|
|
45
47
|
isLoading={isLoading}
|
|
46
48
|
style={{
|
|
@@ -57,19 +59,31 @@ export const TeacherFeedbackButton = ({
|
|
|
57
59
|
<Button
|
|
58
60
|
id={TEACHER_FEEDBACK_BUTTON_ID}
|
|
59
61
|
onPress={onPress}
|
|
60
|
-
size=
|
|
61
|
-
variant=
|
|
62
|
+
size="large"
|
|
63
|
+
variant="primary"
|
|
62
64
|
disabled={isLoading}
|
|
63
65
|
isLoading={isLoading}
|
|
64
66
|
style={{
|
|
65
67
|
container: isLarge ? styles.containerLarge : styles.container,
|
|
66
68
|
button: [
|
|
67
69
|
styles.button,
|
|
68
|
-
{
|
|
70
|
+
{
|
|
71
|
+
borderColor: !!unreadCommentsCount
|
|
72
|
+
? isPurpleColor
|
|
73
|
+
? COLORS.PURPLE_6
|
|
74
|
+
: COLORS.BLUE_6
|
|
75
|
+
: COLORS.NEUTRAL_5,
|
|
76
|
+
},
|
|
69
77
|
styles[size],
|
|
70
78
|
],
|
|
71
79
|
}}
|
|
72
|
-
customColorScheme={
|
|
80
|
+
customColorScheme={
|
|
81
|
+
!!unreadCommentsCount
|
|
82
|
+
? isPurpleColor
|
|
83
|
+
? COLOR_SCHEMES.PURPLE
|
|
84
|
+
: COLOR_SCHEMES.BLUE
|
|
85
|
+
: COLOR_SCHEMES.GREY
|
|
86
|
+
}
|
|
73
87
|
icon={
|
|
74
88
|
<View style={styles.iconContainer}>
|
|
75
89
|
<MessageBubbleIcon
|
|
@@ -140,5 +154,5 @@ const styles = StyleSheet.create({
|
|
|
140
154
|
width: 32,
|
|
141
155
|
height: 32,
|
|
142
156
|
borderRadius: 16,
|
|
143
|
-
}
|
|
157
|
+
},
|
|
144
158
|
})
|
|
@@ -1,22 +1,17 @@
|
|
|
1
1
|
import { Platform } from 'react-native'
|
|
2
2
|
import { Locale } from './types/teacherFeedback.types'
|
|
3
3
|
|
|
4
|
-
export const
|
|
5
|
-
export const EMPTY_COMMENT_ID = 'empty-comment'
|
|
6
|
-
export const BUENOS_AIRES_FONT =
|
|
7
|
-
Platform.OS === 'web' ? 'Buenos Aires, sans-serif' : 'BuenosAires-Regular'
|
|
4
|
+
export const BUENOS_AIRES_FONT = Platform.OS === 'web' ? 'Buenos Aires, sans-serif' : 'BuenosAires-Regular'
|
|
8
5
|
|
|
9
|
-
export const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
[Locale.US]: 'No comments yet',
|
|
13
|
-
}
|
|
6
|
+
export const NO_COMMENTS_ENG = 'No comments yet'
|
|
7
|
+
export const NO_COMMENTS_SWE = 'Inga kommentarer än'
|
|
8
|
+
export const EMPTY_COMMENT_ID = 'empty-comment'
|
|
14
9
|
|
|
15
10
|
export const getEmptyComment = (problemId: string, locale: Locale | null) => {
|
|
16
11
|
return {
|
|
17
12
|
__v: 0,
|
|
18
13
|
_id: EMPTY_COMMENT_ID,
|
|
19
|
-
content:
|
|
14
|
+
content: locale === Locale.SV ? NO_COMMENTS_SWE : NO_COMMENTS_ENG,
|
|
20
15
|
createdAt: new Date(),
|
|
21
16
|
exerciseId: '',
|
|
22
17
|
isRead: true,
|
|
@@ -28,6 +23,8 @@ export const getEmptyComment = (problemId: string, locale: Locale | null) => {
|
|
|
28
23
|
}
|
|
29
24
|
}
|
|
30
25
|
|
|
26
|
+
export const TEACHER_FEEDBACK_BUTTON_ID = 'teacherFeedbackButton'
|
|
27
|
+
|
|
31
28
|
export enum FeedbackButtonColors {
|
|
32
29
|
BLUE = 'BLUE',
|
|
33
30
|
PURPLE = 'PURPLE',
|
|
@@ -1,16 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createEffect,
|
|
3
|
-
createEvent,
|
|
4
|
-
createStore,
|
|
5
|
-
Effect,
|
|
6
|
-
restore,
|
|
7
|
-
sample,
|
|
8
|
-
StoreWritable,
|
|
9
|
-
} from 'effector'
|
|
1
|
+
import { createEffect, createEvent, createStore, Effect, restore, sample, StoreWritable } from 'effector'
|
|
10
2
|
import {
|
|
11
3
|
CommentsEntity,
|
|
12
4
|
GetCommentsByIdProps,
|
|
13
|
-
GetCommentsByIdResponse,
|
|
14
5
|
Locale,
|
|
15
6
|
TeacherComment,
|
|
16
7
|
UpdateCommentSeenStatusProps,
|
|
@@ -24,27 +15,33 @@ type TeacherFeedbackModelProps = {
|
|
|
24
15
|
locale: StoreWritable<Locale | null>
|
|
25
16
|
}
|
|
26
17
|
api: {
|
|
27
|
-
getCommentsByAssignmentId: (
|
|
28
|
-
props: GetCommentsByIdProps,
|
|
29
|
-
) => Promise<Record<string, { comments: TeacherComment[] }>>
|
|
18
|
+
getCommentsByAssignmentId: (props: GetCommentsByIdProps) => Promise<Record<string, { comments: TeacherComment[] }>>
|
|
30
19
|
updateCommentSeenStatus: (props: UpdateCommentSeenStatusProps) => Promise<void>
|
|
31
20
|
}
|
|
32
21
|
}
|
|
33
22
|
|
|
23
|
+
type CommentsMap = Map<string, Record<string, CommentsEntity>>
|
|
24
|
+
|
|
34
25
|
export class TeacherFeedbackModel {
|
|
35
26
|
$assignmentId: StoreWritable<string>
|
|
36
27
|
$currentProblemId: StoreWritable<string>
|
|
37
28
|
$locale: StoreWritable<Locale | null>
|
|
38
29
|
|
|
39
30
|
setCommentsSeen = createEvent<{ ids: string[]; currentProblemId: string; assignmentId: string }>()
|
|
40
|
-
$comments = createStore<
|
|
31
|
+
$comments = createStore<CommentsMap>(new Map())
|
|
41
32
|
|
|
42
33
|
setIsOpened = createEvent<boolean>()
|
|
43
34
|
$isOpened = restore(this.setIsOpened, false)
|
|
44
35
|
setIsVisible = createEvent<boolean>()
|
|
45
36
|
$isVisible = restore(this.setIsVisible, false)
|
|
46
37
|
|
|
47
|
-
getCommentsByAssignmentIdFx: Effect<
|
|
38
|
+
getCommentsByAssignmentIdFx: Effect<
|
|
39
|
+
GetCommentsByIdProps,
|
|
40
|
+
{
|
|
41
|
+
data: Record<string, { comments: TeacherComment[] }>
|
|
42
|
+
assignmentId: string
|
|
43
|
+
}
|
|
44
|
+
>
|
|
48
45
|
updateCommentSeenFx: Effect<UpdateCommentSeenStatusProps, void>
|
|
49
46
|
|
|
50
47
|
sockets = {
|
|
@@ -53,7 +50,7 @@ export class TeacherFeedbackModel {
|
|
|
53
50
|
}
|
|
54
51
|
|
|
55
52
|
constructor({ api, credits }: TeacherFeedbackModelProps) {
|
|
56
|
-
this.getCommentsByAssignmentIdFx = createEffect(async ({ id }:
|
|
53
|
+
this.getCommentsByAssignmentIdFx = createEffect(async ({ id }: { id: string }) => {
|
|
57
54
|
const response = await api.getCommentsByAssignmentId({ id })
|
|
58
55
|
return {
|
|
59
56
|
data: response,
|
|
@@ -91,7 +88,7 @@ export class TeacherFeedbackModel {
|
|
|
91
88
|
filter: ([feedback, currentProblemId, assignmentId], isOpen) => {
|
|
92
89
|
const assignmentComments = feedback.get(assignmentId) || {}
|
|
93
90
|
const comments = assignmentComments[currentProblemId]?.comments ?? []
|
|
94
|
-
const hasUnreadComments = comments.some(comment => !comment.isRead)
|
|
91
|
+
const hasUnreadComments = comments.some((comment) => !comment.isRead)
|
|
95
92
|
return isOpen && hasUnreadComments
|
|
96
93
|
},
|
|
97
94
|
fn: ([feedback, currentProblemId, assignmentId]) => {
|
|
@@ -100,14 +97,14 @@ export class TeacherFeedbackModel {
|
|
|
100
97
|
return {
|
|
101
98
|
currentProblemId,
|
|
102
99
|
assignmentId,
|
|
103
|
-
ids: comments.filter(comment => !comment.isRead).map(comment => comment._id),
|
|
100
|
+
ids: comments.filter((comment) => !comment.isRead).map((comment) => comment._id),
|
|
104
101
|
}
|
|
105
102
|
},
|
|
106
103
|
target: [this.setCommentsSeen, this.updateCommentSeenFx],
|
|
107
104
|
})
|
|
108
105
|
|
|
109
106
|
this.$isVisible.on(this.getCommentsByAssignmentIdFx.doneData, (_, { data }) => {
|
|
110
|
-
return Object.values(data).some(problemFeedback => problemFeedback.comments?.length > 0)
|
|
107
|
+
return Object.values(data).some((problemFeedback) => problemFeedback.comments?.length > 0)
|
|
111
108
|
})
|
|
112
109
|
|
|
113
110
|
this.$comments
|
|
@@ -115,7 +112,7 @@ export class TeacherFeedbackModel {
|
|
|
115
112
|
const problemsMap: Record<string, CommentsEntity> = {}
|
|
116
113
|
|
|
117
114
|
for (const [problemId, { comments }] of Object.entries(data)) {
|
|
118
|
-
const unreadMessages = comments.filter(comment => !comment.isRead)
|
|
115
|
+
const unreadMessages = comments.filter((comment) => !comment.isRead)
|
|
119
116
|
problemsMap[problemId] = {
|
|
120
117
|
comments,
|
|
121
118
|
unreadMessagesCount: unreadMessages.length,
|
|
@@ -133,8 +130,8 @@ export class TeacherFeedbackModel {
|
|
|
133
130
|
const feedback = assignmentComments[currentProblemId]
|
|
134
131
|
if (!feedback) return state
|
|
135
132
|
|
|
136
|
-
const updatedComments = feedback.comments.map(comment =>
|
|
137
|
-
ids.includes(comment._id) ? { ...comment, isRead: true } : comment
|
|
133
|
+
const updatedComments = feedback.comments.map((comment) =>
|
|
134
|
+
ids.includes(comment._id) ? { ...comment, isRead: true } : comment
|
|
138
135
|
)
|
|
139
136
|
|
|
140
137
|
const updatedFeedback = {
|
|
@@ -155,10 +152,7 @@ export class TeacherFeedbackModel {
|
|
|
155
152
|
})
|
|
156
153
|
.on(this.sockets.onCreate, (state, payload) => {
|
|
157
154
|
const assignmentComments = state.get(payload.exerciseId) || {}
|
|
158
|
-
const feedback = assignmentComments[payload.problemId] ?? {
|
|
159
|
-
comments: [],
|
|
160
|
-
unreadMessagesCount: 0,
|
|
161
|
-
}
|
|
155
|
+
const feedback = assignmentComments[payload.problemId] ?? { comments: [], unreadMessagesCount: 0 }
|
|
162
156
|
|
|
163
157
|
const updatedFeedback = {
|
|
164
158
|
...feedback,
|
|
@@ -185,33 +179,33 @@ export class TeacherFeedbackModel {
|
|
|
185
179
|
if (!feedback) return state
|
|
186
180
|
|
|
187
181
|
const isDeleteMessageUnread = feedback.comments.some(
|
|
188
|
-
comment => comment._id === payload._id && !comment.isRead
|
|
182
|
+
(comment) => comment._id === payload._id && !comment.isRead
|
|
189
183
|
)
|
|
190
184
|
|
|
191
185
|
const updatedFeedback = {
|
|
192
|
-
comments: feedback.comments.filter(comment => comment._id !== payload._id),
|
|
193
|
-
unreadMessagesCount: isDeleteMessageUnread
|
|
194
|
-
? feedback.unreadMessagesCount - 1
|
|
195
|
-
: feedback.unreadMessagesCount,
|
|
186
|
+
comments: feedback.comments.filter((comment) => comment._id !== payload._id),
|
|
187
|
+
unreadMessagesCount: isDeleteMessageUnread ? feedback.unreadMessagesCount - 1 : feedback.unreadMessagesCount,
|
|
196
188
|
}
|
|
197
189
|
|
|
190
|
+
const isOpen = this.$isOpened.getState()
|
|
191
|
+
|
|
198
192
|
if (updatedFeedback.comments.length === 0) {
|
|
199
193
|
const updatedAssignmentComments = { ...assignmentComments }
|
|
200
|
-
const isOpen = this.$isOpened.getState()
|
|
201
194
|
|
|
202
195
|
if (!isOpen) {
|
|
203
196
|
delete updatedAssignmentComments[payload.problemId]
|
|
204
197
|
|
|
198
|
+
// If no problems left, remove the assignment entirely
|
|
205
199
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
206
200
|
const updatedState = new Map(state)
|
|
207
201
|
updatedState.delete(assignmentId)
|
|
208
202
|
return updatedState
|
|
209
203
|
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
204
|
+
} else {
|
|
205
|
+
updatedAssignmentComments[payload.problemId] = {
|
|
206
|
+
...updatedFeedback,
|
|
207
|
+
comments: [getEmptyComment(payload.problemId, this.$locale.getState())],
|
|
208
|
+
}
|
|
215
209
|
}
|
|
216
210
|
|
|
217
211
|
const updatedState = new Map(state)
|
|
@@ -243,6 +237,7 @@ export class TeacherFeedbackModel {
|
|
|
243
237
|
const updatedAssignmentComments = { ...assignmentComments }
|
|
244
238
|
delete updatedAssignmentComments[problemId]
|
|
245
239
|
|
|
240
|
+
// If no problems left, remove the assignment entirely
|
|
246
241
|
if (Object.keys(updatedAssignmentComments).length === 0) {
|
|
247
242
|
const updatedState = new Map(state)
|
|
248
243
|
updatedState.delete(assignmentId)
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
export type GetCommentsByIdProps = { id: string }
|
|
2
|
-
export type GetCommentsByIdResponse = {
|
|
3
|
-
data: Record<string, { comments: TeacherComment[] }>
|
|
4
|
-
assignmentId: string
|
|
5
|
-
}
|
|
6
|
-
|
|
7
2
|
export type UpdateCommentSeenStatusProps = { ids: string[] }
|
|
8
3
|
|
|
9
4
|
export type TeacherComment = {
|