touchstudy-core 0.1.178 → 0.1.179

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/index.js CHANGED
@@ -537,7 +537,6 @@ var teacher_in_charge = "담당 교사";
537
537
  var counselor = "상담교사";
538
538
  var new_question = "새로운 질문";
539
539
  var hour = "시간";
540
- var hour_h = "시간";
541
540
  var minute = "분";
542
541
  var second = "두번째";
543
542
  var question_order = "{{number}} 번";
@@ -1112,7 +1111,6 @@ var academy_invite_detail = "아카데미 초대 세부정보";
1112
1111
  var are_you_sure_to_delete_academy_invite = "이 아카데미 초대를 삭제하시겠습니까?";
1113
1112
  var day = "낮";
1114
1113
  var days = "날";
1115
- var month = "월";
1116
1114
  var emails = "이메일";
1117
1115
  var is_accepted = "승인됨";
1118
1116
  var re_send = "다시 보내기";
@@ -1545,12 +1543,6 @@ var teacher_to_teachers = "교사에서 교사들에게";
1545
1543
  var student_required = "학생은 필수입니다";
1546
1544
  var teachers_required = "교사가 필요합니다";
1547
1545
  var all_changes_are_not_saved_yet = "아직 모든 변경 사항이 저장되지 않았습니다";
1548
- var pause = "일시정지";
1549
- var press_to_start = "눌러서 시작하기";
1550
- var study_timer = "순공 타이머";
1551
- var show_timer = "타이머 표시";
1552
- var failed_to_pause_the_subject_name = "과목 '{{name}}'를 일시 중지하는 데 실패했습니다";
1553
- var failed_to_start_the_subject_name = "과목 '{{name}}'를 시작하는 데 실패했습니다";
1554
1546
  var lang_ko = {
1555
1547
  problem_solving: problem_solving,
1556
1548
  my_story: my_story,
@@ -1742,7 +1734,6 @@ var lang_ko = {
1742
1734
  counselor: counselor,
1743
1735
  new_question: new_question,
1744
1736
  hour: hour,
1745
- hour_h: hour_h,
1746
1737
  minute: minute,
1747
1738
  second: second,
1748
1739
  question_order: question_order,
@@ -2309,7 +2300,6 @@ var lang_ko = {
2309
2300
  are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite,
2310
2301
  day: day,
2311
2302
  days: days,
2312
- month: month,
2313
2303
  emails: emails,
2314
2304
  is_accepted: is_accepted,
2315
2305
  re_send: re_send,
@@ -2729,13 +2719,7 @@ var lang_ko = {
2729
2719
  teacher_to_teachers: teacher_to_teachers,
2730
2720
  student_required: student_required,
2731
2721
  teachers_required: teachers_required,
2732
- all_changes_are_not_saved_yet: all_changes_are_not_saved_yet,
2733
- pause: pause,
2734
- press_to_start: press_to_start,
2735
- study_timer: study_timer,
2736
- show_timer: show_timer,
2737
- failed_to_pause_the_subject_name: failed_to_pause_the_subject_name,
2738
- failed_to_start_the_subject_name: failed_to_start_the_subject_name
2722
+ all_changes_are_not_saved_yet: all_changes_are_not_saved_yet
2739
2723
  };
2740
2724
 
2741
2725
  var problem_solving$1 = "Problem Solving";
@@ -2954,7 +2938,6 @@ var counselor$1 = "Counselor";
2954
2938
  var new_question$1 = "New Question";
2955
2939
  var hour$1 = "hr";
2956
2940
  var hours = "hrs";
2957
- var hour_h$1 = "h";
2958
2941
  var minute$1 = "min";
2959
2942
  var second$1 = "second";
2960
2943
  var question_order$1 = "Number {{number}}";
@@ -3504,7 +3487,6 @@ var academy_invite_detail$1 = "Academy Invite Detail";
3504
3487
  var are_you_sure_to_delete_academy_invite$1 = "Are you sure to delete this academy invite?";
3505
3488
  var day$1 = "day";
3506
3489
  var days$1 = "days";
3507
- var month$1 = "month";
3508
3490
  var emails$1 = "Emails";
3509
3491
  var is_accepted$1 = "Is Accepted";
3510
3492
  var re_send$1 = "Resend";
@@ -3938,12 +3920,6 @@ var teacher_to_teachers$1 = "Teacher to teachers";
3938
3920
  var student_required$1 = "Student is required";
3939
3921
  var teachers_required$1 = "Teachers are required";
3940
3922
  var all_changes_are_not_saved_yet$1 = "All changes are not saved yet";
3941
- var pause$1 = "Pause";
3942
- var press_to_start$1 = "Press to start";
3943
- var study_timer$1 = "Focused Study Timer";
3944
- var show_timer$1 = "Show timer";
3945
- var failed_to_pause_the_subject_name$1 = "Failed to pause the subject '{{name}}'";
3946
- var failed_to_start_the_subject_name$1 = "Failed to start the subject '{{name}}'";
3947
3923
  var lang_en = {
3948
3924
  problem_solving: problem_solving$1,
3949
3925
  my_story: my_story$1,
@@ -4161,7 +4137,6 @@ var lang_en = {
4161
4137
  new_question: new_question$1,
4162
4138
  hour: hour$1,
4163
4139
  hours: hours,
4164
- hour_h: hour_h$1,
4165
4140
  minute: minute$1,
4166
4141
  second: second$1,
4167
4142
  question_order: question_order$1,
@@ -4703,7 +4678,6 @@ var lang_en = {
4703
4678
  are_you_sure_to_delete_academy_invite: are_you_sure_to_delete_academy_invite$1,
4704
4679
  day: day$1,
4705
4680
  days: days$1,
4706
- month: month$1,
4707
4681
  emails: emails$1,
4708
4682
  is_accepted: is_accepted$1,
4709
4683
  re_send: re_send$1,
@@ -5124,13 +5098,7 @@ var lang_en = {
5124
5098
  teacher_to_teachers: teacher_to_teachers$1,
5125
5099
  student_required: student_required$1,
5126
5100
  teachers_required: teachers_required$1,
5127
- all_changes_are_not_saved_yet: all_changes_are_not_saved_yet$1,
5128
- pause: pause$1,
5129
- press_to_start: press_to_start$1,
5130
- study_timer: study_timer$1,
5131
- show_timer: show_timer$1,
5132
- failed_to_pause_the_subject_name: failed_to_pause_the_subject_name$1,
5133
- failed_to_start_the_subject_name: failed_to_start_the_subject_name$1
5101
+ all_changes_are_not_saved_yet: all_changes_are_not_saved_yet$1
5134
5102
  };
5135
5103
 
5136
5104
  i18n__default.use(reactI18next.initReactI18next).init({
@@ -5586,7 +5554,7 @@ var PrintExamView2 = function PrintExamView2(_ref) {
5586
5554
  }, t("print_pdf"))));
5587
5555
  };
5588
5556
 
5589
- var styles = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","btn-login-google":"_2HqmH","math-jax":"_3Pfdk","block-login":"_wWIyO","box-login":"_38Lo1","btn-primary":"_rd4Uy","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg","line-clamp":"_3fpky","timer-menu":"_3bvVg","timer-menu-item":"_z624V","subject-name":"_2KJX4","duration":"_1mwlk","icon-start":"_maff_"};
5557
+ var styles = {"lighter":"#F0FFF6","light":"#89F0B2","less_dark":"#3DC674","dark":"#349056","darker":"#18442A","gray_50":"#FBFBF9","gray_100":"#EAEAE5","gray_300":"#D0D0C8","gray_500":"#9A9A98","gray_700":"#5D5D5B","gray_900":"#363634","red_900":"#DB4D4D","green_support_900":"#3ACB46","yellow_900":"#FEAF06","purple_900":"#C3099A","btn-login-google":"_2HqmH","math-jax":"_3Pfdk","block-login":"_wWIyO","box-login":"_38Lo1","btn-primary":"_rd4Uy","dropdown-menu":"_1krbH","header-avatar":"_RQaHE","dropdown-menu-flag":"_XK8oS","dropdown-content":"_3ys4W","dropdown-change":"_ToOW_","item-address":"_3sQlR","item-logout":"_3bqSM","title-address":"_1jgSI","img-avatar":"_35Ttz","item-contact":"_1wc7o","content-text":"_3S4f2","dropdown-content-language":"_3ajui","dropdown-item-language":"_3Y_y4","dropdown-item-language-active":"_CzNMi","dropdown-academy":"_3CMVp","image-academy":"_2ibYC","academy-btn":"_1JMRU","switch-icon":"_N4FNf","dropdown-content-academy":"_31Dr0","dropdown-academy-item":"_3bjcz","noGutters":"_31ZQk","custom-col-2":"_3yXyK","custom-col-3":"_1RsJQ","custom-col-5":"_L42CP","custom-col-10":"_2u6eL","custom-row":"_8x7OP","custom-col":"_1JmTh","custom-col-4":"_3HO1e","custom-col-8":"_Oy31M","custom-col-12":"_3aUKo","custom-container":"_39LRs","form-label":"__Ut-u","form-control":"_2k4dX","btn-outline-primary":"_2PWdX","sort-icons":"_mQvLF","active":"_3oAH-","form-select":"_3W3aw","truncate":"_3NJzN","headers":"_3xnI5","logo-container":"_3YG70","tabBox":"_1CQPn","routerBox":"_3hx2T","tabText":"_3UyhW","router-link-active":"_1TGKA","router-link":"_1AqMh","userImg":"_2RI6G","disabled-link":"_3aVHg","line-clamp":"_3fpky"};
5590
5558
 
5591
5559
  var config = {
5592
5560
  loader: {
@@ -6342,12 +6310,6 @@ var PrintStatus;
6342
6310
  SchoolType[SchoolType["High"] = 3] = "High";
6343
6311
  })(exports.SchoolType || (exports.SchoolType = {}));
6344
6312
 
6345
- (function (SubjectTimerStatus) {
6346
- SubjectTimerStatus[SubjectTimerStatus["NotStarted"] = 0] = "NotStarted";
6347
- SubjectTimerStatus[SubjectTimerStatus["Started"] = 1] = "Started";
6348
- SubjectTimerStatus[SubjectTimerStatus["Paused"] = 2] = "Paused";
6349
- })(exports.SubjectTimerStatus || (exports.SubjectTimerStatus = {}));
6350
-
6351
6313
  var canAccess = function canAccess(userRoles, componentRoles) {
6352
6314
  if (!Array.isArray(userRoles)) {
6353
6315
  return false;
@@ -6597,11 +6559,6 @@ var getRemainTime = function getRemainTime(startTime, duration) {
6597
6559
  if (timePass > durationInNumber) return 0;
6598
6560
  return durationInNumber - timePass;
6599
6561
  };
6600
- var getCountTime = function getCountTime(startTime, duration) {
6601
- var timePass = diffFromNow(startTime, "second");
6602
- if (typeof timePass !== "number") return null;
6603
- return duration + timePass;
6604
- };
6605
6562
 
6606
6563
  var formatDateTime = function formatDateTime(inputDate) {
6607
6564
  var date = new Date(inputDate);
@@ -8326,27 +8283,6 @@ var getSubjectListApi = function getSubjectListApi(textSearch) {
8326
8283
  return Promise.reject(e);
8327
8284
  }
8328
8285
  };
8329
- var getStudentSubjectListApi = function getStudentSubjectListApi() {
8330
- try {
8331
- return Promise.resolve(api.get(SUBJECT_URL + "/timers"));
8332
- } catch (e) {
8333
- return Promise.reject(e);
8334
- }
8335
- };
8336
- var startStudentSubjectTimerApi = function startStudentSubjectTimerApi(subjectId) {
8337
- try {
8338
- return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers"));
8339
- } catch (e) {
8340
- return Promise.reject(e);
8341
- }
8342
- };
8343
- var pauseStudentSubjectApi = function pauseStudentSubjectApi(subjectId, recordId, data) {
8344
- try {
8345
- return Promise.resolve(api.post(SUBJECT_URL + "/" + subjectId + "/timers/" + recordId, data));
8346
- } catch (e) {
8347
- return Promise.reject(e);
8348
- }
8349
- };
8350
8286
 
8351
8287
  var SubjectSelector = function SubjectSelector(_ref) {
8352
8288
  var value = _ref.value,
@@ -10416,7 +10352,6 @@ var grey = {
10416
10352
  var green = {
10417
10353
  0: '#FFFFFF',
10418
10354
  100: '#F0FFF6',
10419
- 200: '#D2FFE4',
10420
10355
  300: '#89F0B2',
10421
10356
  500: '#3DC674',
10422
10357
  700: '#349056',
@@ -40573,491 +40508,6 @@ var singleLogo = function singleLogo(_ref) {
40573
40508
  }))));
40574
40509
  };
40575
40510
 
40576
- var TimerItem = function TimerItem(_ref) {
40577
- var data = _ref.data,
40578
- seconds = _ref.seconds,
40579
- loading = _ref.loading,
40580
- activeTimerId = _ref.activeTimerId,
40581
- onStartOrPauseTimer = _ref.onStartOrPauseTimer;
40582
- var theme = material.useTheme();
40583
- var _useTranslation = reactI18next.useTranslation(),
40584
- t = _useTranslation.t;
40585
- var handleStartOrPauseTimer = function handleStartOrPauseTimer() {
40586
- onStartOrPauseTimer(data);
40587
- };
40588
- var isStarted = activeTimerId === data.id && data.status === exports.SubjectTimerStatus.Started;
40589
- var displayedTime = React.useMemo(function () {
40590
- switch (data.status) {
40591
- case exports.SubjectTimerStatus.Started:
40592
- return activeTimerId !== data.id ? formatTime$2(Math.floor(data.duration / 1000), t) : formatTime$2(seconds != null ? seconds : 0, t);
40593
- case exports.SubjectTimerStatus.NotStarted:
40594
- return t("press_to_start");
40595
- default:
40596
- return formatTime$2(Math.floor(data.duration / 1000), t);
40597
- }
40598
- }, [data.id, data.status, data.duration, seconds, activeTimerId, t]);
40599
- return React__default.createElement(MenuItem, {
40600
- className: "" + styles["timer-menu-item"],
40601
- sx: {
40602
- py: 1,
40603
- bgcolor: theme.palette.background.paper,
40604
- borderRadius: 0.75,
40605
- minHeight: "52px"
40606
- },
40607
- disabled: loading,
40608
- onClick: handleStartOrPauseTimer
40609
- }, React__default.createElement(material.Stack, {
40610
- direction: "row",
40611
- gap: 1,
40612
- sx: {
40613
- justifyContent: "space-between",
40614
- alignItems: "center",
40615
- width: "100%"
40616
- }
40617
- }, React__default.createElement(material.Typography, {
40618
- className: styles["subject-name"] + " " + styles["truncate"],
40619
- fontSize: "14px",
40620
- fontWeight: 600
40621
- }, data.name), React__default.createElement(material.Box, {
40622
- sx: {
40623
- display: "flex",
40624
- alignItems: "center",
40625
- gap: 1.5
40626
- }
40627
- }, React__default.createElement(material.Typography, {
40628
- className: "" + styles["duration"],
40629
- sx: {
40630
- color: isStarted ? theme.palette.common.black : theme.palette.success.light,
40631
- fontSize: "14px",
40632
- fontWeight: 700
40633
- }
40634
- }, displayedTime), !isStarted && React__default.createElement(material.Box, {
40635
- className: "" + styles["icon-start"]
40636
- }, React__default.createElement(io5.IoPlayCircleSharp, {
40637
- size: 20
40638
- })))));
40639
- };
40640
- var TOTAL_SECONDS_IN_A_MINUTE = 60;
40641
- var TOTAL_SECONDS_IN_AN_HOUR = 60 * 60;
40642
- var formatTime$2 = function formatTime(totalSeconds, t) {
40643
- var hours = Math.floor(totalSeconds / TOTAL_SECONDS_IN_AN_HOUR);
40644
- var minutes = Math.floor(totalSeconds % TOTAL_SECONDS_IN_AN_HOUR / TOTAL_SECONDS_IN_A_MINUTE);
40645
- var seconds = totalSeconds % TOTAL_SECONDS_IN_A_MINUTE;
40646
- if (hours > 0) {
40647
- return "" + hours.toString().padStart(2, "0") + t("hour_h") + " " + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
40648
- }
40649
- if (minutes > 0) {
40650
- return "" + minutes.toString().padStart(2, "0") + t("minutes") + " " + seconds.toString().padStart(2, "0") + t("seconds");
40651
- }
40652
- return "" + seconds.toString().padStart(2, "0") + t("seconds");
40653
- };
40654
-
40655
- var TimerCountItem = function TimerCountItem(_ref) {
40656
- var data = _ref.data,
40657
- activeTimerId = _ref.activeTimerId,
40658
- onChangeTime = _ref.onChangeTime;
40659
- var requestAnimationRef = React.useRef(null);
40660
- var user = reactRedux.useSelector(function (state) {
40661
- var _state$common;
40662
- return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
40663
- });
40664
- React.useEffect(function () {
40665
- if (data.status !== exports.SubjectTimerStatus.Started || !(user !== null && user !== void 0 && user.academyDomain) && !(user !== null && user !== void 0 && user.isLearningSpace) || data.id !== activeTimerId) return;
40666
- var _animate = function animate() {
40667
- var startTime = data.startTime,
40668
- lastResumeTime = data.lastResumeTime,
40669
- duration = data.duration;
40670
- var startOfTime = lastResumeTime !== DATE_TIME_MIN_VALUE ? lastResumeTime : startTime;
40671
- if (startOfTime === DATE_TIME_MIN_VALUE) return;
40672
- var time = getCountTime(startOfTime, Math.floor(duration / 1000));
40673
- if (typeof time !== "number") {
40674
- onChangeTime(data, undefined);
40675
- return;
40676
- }
40677
- onChangeTime(data, time);
40678
- requestAnimationRef.current = requestAnimationFrame(_animate);
40679
- };
40680
- requestAnimationRef.current = requestAnimationFrame(_animate);
40681
- return function () {
40682
- !!requestAnimationRef.current && cancelAnimationFrame(requestAnimationRef.current);
40683
- };
40684
- }, [JSON.stringify(data), user === null || user === void 0 ? void 0 : user.id, user === null || user === void 0 ? void 0 : user.academyDomain, user === null || user === void 0 ? void 0 : user.isLearningSpace, activeTimerId]);
40685
- return React__default.createElement(React.Fragment, null);
40686
- };
40687
-
40688
- var formatDate = function formatDate(t, date) {
40689
- return utcToLocalTime(date, t("date_format"));
40690
- };
40691
- var TimerDropdown = function TimerDropdown() {
40692
- var _user$academyDomain$t, _user$academyDomain, _user$academyDomain$t2;
40693
- var _useTranslation = reactI18next.useTranslation(),
40694
- t = _useTranslation.t;
40695
- var theme = material.useTheme();
40696
- var user = reactRedux.useSelector(function (state) {
40697
- var _state$common;
40698
- return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
40699
- });
40700
- var _useState = React.useState(null),
40701
- open = _useState[0],
40702
- setOpen = _useState[1];
40703
- var _useState2 = React.useState([]),
40704
- timers = _useState2[0],
40705
- setTimers = _useState2[1];
40706
- var _useState3 = React.useState(),
40707
- seconds = _useState3[0],
40708
- setSeconds = _useState3[1];
40709
- var _useState4 = React.useState(),
40710
- activeTimerId = _useState4[0],
40711
- setActiveTimerId = _useState4[1];
40712
- var _useState5 = React.useState(false),
40713
- loadingItem = _useState5[0],
40714
- setLoadingItem = _useState5[1];
40715
- var _useState6 = React.useState(false),
40716
- isFetching = _useState6[0],
40717
- setFetching = _useState6[1];
40718
- var fetchedRef = React.useRef();
40719
- var academyDomain = (_user$academyDomain$t = user === null || user === void 0 ? void 0 : (_user$academyDomain = user.academyDomain) === null || _user$academyDomain === void 0 ? void 0 : (_user$academyDomain$t2 = _user$academyDomain.toLowerCase) === null || _user$academyDomain$t2 === void 0 ? void 0 : _user$academyDomain$t2.call(_user$academyDomain)) != null ? _user$academyDomain$t : "";
40720
- var handleChangeTime = function handleChangeTime(data, time) {
40721
- if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return;
40722
- if (academyDomain !== fetchedRef.current && data.id !== activeTimerId) return;
40723
- setSeconds(time);
40724
- var key = user.id + "-" + data.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
40725
- saveDuration(key, time * 1000);
40726
- };
40727
- var handleOpen = function handleOpen(event) {
40728
- setOpen(event.currentTarget);
40729
- };
40730
- var handleClose = function handleClose() {
40731
- setOpen(null);
40732
- };
40733
- var handleStartOrPauseTimer = function handleStartOrPauseTimer(data) {
40734
- try {
40735
- var _temp2 = function _temp2(_result3) {
40736
- if (_exit) return _result3;
40737
- setLoadingItem(false);
40738
- };
40739
- var _exit = false;
40740
- var isActive = activeTimerId === data.id;
40741
- var isPaused = data.status === exports.SubjectTimerStatus.Paused;
40742
- setLoadingItem(true);
40743
- var _temp = _catch(function () {
40744
- return Promise.resolve(handlePauseAllTimers(data.id)).then(function () {
40745
- return function () {
40746
- if (data.recordId) {
40747
- return function () {
40748
- if (!isActive && !isPaused) {
40749
- setActiveTimerId(data.id);
40750
- setTimers(function (timers) {
40751
- return timers.map(function (timer) {
40752
- return timer.id === data.id ? _extends({}, timer, {
40753
- lastResumeTime: moment().utc().toISOString()
40754
- }) : timer;
40755
- });
40756
- });
40757
- setLoadingItem(false);
40758
- _exit = true;
40759
- } else {
40760
- return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
40761
- status: isPaused ? exports.SubjectTimerStatus.Started : exports.SubjectTimerStatus.Paused,
40762
- startTime: isPaused ? moment().utc().valueOf() : 0,
40763
- pauseTime: !isPaused ? moment().utc().valueOf() : 0,
40764
- duration: isActive && seconds ? seconds * 1000 : data.duration
40765
- })).then(function (res) {
40766
- setTimers(function (timers) {
40767
- return timers.map(function (timer) {
40768
- return timer.id === data.id ? res.data : timer;
40769
- });
40770
- });
40771
- setActiveTimerId(!isPaused && isActive ? undefined : data.id);
40772
- });
40773
- }
40774
- }();
40775
- } else {
40776
- return Promise.resolve(startStudentSubjectTimerApi(data.id)).then(function (res) {
40777
- setTimers(function (timers) {
40778
- return timers.map(function (timer) {
40779
- return timer.id === data.id ? res.data : timer;
40780
- });
40781
- });
40782
- setActiveTimerId(!isPaused && isActive ? undefined : data.id);
40783
- });
40784
- }
40785
- }();
40786
- });
40787
- }, function () {
40788
- reactToastify.toast.error(t(isPaused ? "failed_to_start_the_subject_name" : "failed_to_pause_the_subject_name", {
40789
- name: data.name
40790
- }));
40791
- });
40792
- return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
40793
- } catch (e) {
40794
- return Promise.reject(e);
40795
- }
40796
- };
40797
- var handlePauseAllTimers = function handlePauseAllTimers(exceptId) {
40798
- try {
40799
- !exceptId && setLoadingItem(true);
40800
- var tasks = timers.filter(function (i) {
40801
- return i.status === exports.SubjectTimerStatus.Started && i.id !== exceptId;
40802
- }).map(function (i) {
40803
- return handlePauseTimer(i);
40804
- });
40805
- return Promise.resolve(Promise.all(tasks)).then(function () {
40806
- !exceptId && setLoadingItem(false);
40807
- });
40808
- } catch (e) {
40809
- return Promise.reject(e);
40810
- }
40811
- };
40812
- var handlePauseTimer = function handlePauseTimer(data, updateState) {
40813
- if (updateState === void 0) {
40814
- updateState = true;
40815
- }
40816
- try {
40817
- if (data.status === exports.SubjectTimerStatus.Paused) return Promise.resolve(data);
40818
- return Promise.resolve(_catch(function () {
40819
- return Promise.resolve(pauseStudentSubjectApi(data.id, data.recordId, {
40820
- status: exports.SubjectTimerStatus.Paused,
40821
- duration: activeTimerId === data.id && seconds ? seconds * 1000 : data.duration,
40822
- pauseTime: moment().utc().valueOf()
40823
- })).then(function (res) {
40824
- if (updateState) setTimers(function (state) {
40825
- return state.map(function (i) {
40826
- return i.id === data.id ? res.data : i;
40827
- });
40828
- });
40829
- return res.data;
40830
- });
40831
- }, function () {
40832
- activeTimerId === data.id && reactToastify.toast.error(t("failed_to_pause_the_subject_name", {
40833
- name: data.name
40834
- }));
40835
- }));
40836
- } catch (e) {
40837
- return Promise.reject(e);
40838
- }
40839
- };
40840
- var getDataFromLocalStorage = React.useCallback(function (items) {
40841
- if (fetchedRef.current !== academyDomain) return [];
40842
- return items.map(function (item) {
40843
- var key = (user === null || user === void 0 ? void 0 : user.id) + "-" + item.id + "-" + SUBJECT_TIMER_KEY + academyDomain;
40844
- var duration = getLocalDuration(key, item);
40845
- var lastResumeTime = moment().utc().toISOString();
40846
- return _extends({}, item, {
40847
- duration: duration !== null ? duration : item.duration,
40848
- lastResumeTime: lastResumeTime
40849
- });
40850
- });
40851
- }, [user === null || user === void 0 ? void 0 : user.id, academyDomain]);
40852
- React.useEffect(function () {
40853
- var fetchData = function fetchData() {
40854
- try {
40855
- var _temp4 = function _temp4() {
40856
- setFetching(false);
40857
- };
40858
- if (!(user !== null && user !== void 0 && user.id) || !academyDomain && !(user !== null && user !== void 0 && user.isLearningSpace)) return Promise.resolve();
40859
- if (fetchedRef.current == academyDomain && !open) return Promise.resolve();
40860
- setFetching(true);
40861
- var _temp3 = _catch(function () {
40862
- return Promise.resolve(getStudentSubjectListApi()).then(function (res) {
40863
- var _items$find;
40864
- var _res$data$items = res.data.items,
40865
- items = _res$data$items === void 0 ? [] : _res$data$items;
40866
- fetchedRef.current = academyDomain;
40867
- setTimers(getDataFromLocalStorage(items));
40868
- setActiveTimerId((_items$find = items.find(function (i) {
40869
- return i.status === exports.SubjectTimerStatus.Started;
40870
- })) === null || _items$find === void 0 ? void 0 : _items$find.id);
40871
- });
40872
- }, function (error) {
40873
- reactToastify.toast.error(getErrorMessage(t, error));
40874
- });
40875
- return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
40876
- } catch (e) {
40877
- return Promise.reject(e);
40878
- }
40879
- };
40880
- fetchData();
40881
- }, [t, getDataFromLocalStorage, user === null || user === void 0 ? void 0 : user.isLearningSpace, open]);
40882
- var today = formatDate(t);
40883
- var isRunning = timers.some(function (timer) {
40884
- return timer.status === exports.SubjectTimerStatus.Started;
40885
- });
40886
- var selectedTimer = timers.find(function (i) {
40887
- return i.id === activeTimerId;
40888
- });
40889
- return React__default.createElement(React.Fragment, null, React__default.createElement(IconButton, {
40890
- onClick: handleOpen,
40891
- sx: {
40892
- width: 44,
40893
- height: 44,
40894
- mx: 1,
40895
- borderRadius: "6px",
40896
- padding: "8px",
40897
- background: !isRunning ? grey[50] : green[100],
40898
- "&: hover": {
40899
- background: !isRunning ? grey[200] : green[200]
40900
- }
40901
- }
40902
- }, React__default.createElement(material.Stack, {
40903
- justifyContent: "center",
40904
- alignItems: "center",
40905
- width: "100%",
40906
- height: "100%",
40907
- sx: {
40908
- borderRadius: "50%",
40909
- backgroundColor: "#FFF"
40910
- }
40911
- }, React__default.createElement(io5.IoTimer, {
40912
- color: !isRunning ? grey[700] : green[500],
40913
- size: "16.25px"
40914
- }))), selectedTimer && React__default.createElement(TimerCountItem, {
40915
- data: selectedTimer,
40916
- activeTimerId: activeTimerId,
40917
- onChangeTime: handleChangeTime
40918
- }), React__default.createElement(Popover, {
40919
- open: !!open,
40920
- anchorEl: open,
40921
- onClose: handleClose,
40922
- anchorOrigin: {
40923
- vertical: "bottom",
40924
- horizontal: "right"
40925
- },
40926
- transformOrigin: {
40927
- vertical: "top",
40928
- horizontal: "right"
40929
- },
40930
- slotProps: {
40931
- paper: {
40932
- sx: {
40933
- px: 2,
40934
- mt: 1,
40935
- ml: 0.75,
40936
- width: 320,
40937
- borderRadius: 2,
40938
- boxShadow: 3,
40939
- bgcolor: theme.palette.grey[50]
40940
- }
40941
- }
40942
- }
40943
- }, React__default.createElement(material.Box, {
40944
- sx: {
40945
- py: 2,
40946
- display: "flex",
40947
- alignItems: "center",
40948
- justifyContent: "space-between"
40949
- }
40950
- }, React__default.createElement(material.Box, {
40951
- sx: {
40952
- display: "flex",
40953
- gap: 1,
40954
- alignItems: "center"
40955
- }
40956
- }, React__default.createElement(material.Box, {
40957
- display: "flex",
40958
- alignItems: "center"
40959
- }, React__default.createElement(io5.IoTimer, null)), React__default.createElement(material.Typography, {
40960
- variant: "subtitle1",
40961
- fontWeight: "bold",
40962
- fontSize: "14px"
40963
- }, t("study_timer"))), React__default.createElement(material.Typography, {
40964
- color: "textSecondary",
40965
- whiteSpace: "nowrap",
40966
- fontSize: "14px"
40967
- }, today)), React__default.createElement(material.Divider, {
40968
- sx: {
40969
- bgcolor: theme.palette.grey[700]
40970
- }
40971
- }), React__default.createElement(material.Stack, {
40972
- className: "" + styles["timer-menu"],
40973
- gap: 1.5,
40974
- flexDirection: "column",
40975
- sx: {
40976
- py: 2,
40977
- maxHeight: "360px"
40978
- }
40979
- }, !isFetching && React__default.createElement(ListView, {
40980
- data: timers,
40981
- render: function render(item, index) {
40982
- return React__default.createElement(TimerItem, {
40983
- key: index,
40984
- data: item,
40985
- loading: loadingItem,
40986
- seconds: activeTimerId === item.id ? seconds : undefined,
40987
- activeTimerId: activeTimerId,
40988
- onStartOrPauseTimer: handleStartOrPauseTimer
40989
- });
40990
- }
40991
- }), isFetching && React__default.createElement(material.Stack, {
40992
- sx: {
40993
- width: "100%",
40994
- py: 2
40995
- },
40996
- justifyContent: "center",
40997
- alignItems: "center"
40998
- }, React__default.createElement(material.Typography, {
40999
- className: "text-muted"
41000
- }, React__default.createElement(material.CircularProgress, {
41001
- size: "16px",
41002
- color: "success"
41003
- }))), !timers.length && !isFetching && React__default.createElement(material.Box, null, React__default.createElement(material.Typography, {
41004
- className: "text-muted"
41005
- }, t("no_data")))), React__default.createElement(material.Divider, {
41006
- sx: {
41007
- bgcolor: theme.palette.grey[700]
41008
- }
41009
- }), React__default.createElement(material.Box, {
41010
- sx: {
41011
- p: 2,
41012
- textAlign: "right"
41013
- }
41014
- }, React__default.createElement(material.Button, {
41015
- disableTouchRipple: true,
41016
- onClick: function onClick() {
41017
- return handlePauseAllTimers();
41018
- },
41019
- disabled: loadingItem,
41020
- sx: {
41021
- fontWeight: 700,
41022
- color: theme.palette.success.main,
41023
- padding: "8px 12px",
41024
- bgcolor: theme.palette.background.paper,
41025
- "&:hover": {
41026
- bgcolor: theme.palette.grey[200]
41027
- },
41028
- "&:disabled": {
41029
- opacity: 0.5
41030
- }
41031
- }
41032
- }, loadingItem ? t("saving") : t("pause")))));
41033
- };
41034
- var SUBJECT_TIMER_KEY = "stk";
41035
- var saveDuration = function saveDuration(key, duration) {
41036
- localStorage.setItem(key, "" + duration);
41037
- };
41038
- var getLocalDuration = function getLocalDuration(key, timer) {
41039
- try {
41040
- var res = localStorage.getItem(key);
41041
- var duration = +(res != null ? res : "");
41042
- if (!duration || Number.isNaN(duration) || duration <= timer.duration) return null;
41043
- return duration;
41044
- } catch (error) {
41045
- return null;
41046
- }
41047
- };
41048
-
41049
- var HeaderLink = function HeaderLink(_ref) {
41050
- var data = _ref.data,
41051
- render = _ref.render;
41052
- var activePaths = data.activePaths,
41053
- path = data.path;
41054
- var pathname = window.location.pathname.toLowerCase();
41055
- var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
41056
- return pathname.startsWith(a);
41057
- })) || pathname.startsWith(path);
41058
- return React__default.createElement(React.Fragment, null, render(data, isActive));
41059
- };
41060
-
41061
40511
  var Header = function Header(_ref) {
41062
40512
  var academyListRoute = _ref.academyListRoute,
41063
40513
  homeRoute = _ref.homeRoute,
@@ -41180,9 +40630,7 @@ var Header = function Header(_ref) {
41180
40630
  justifyContent: "center",
41181
40631
  height: "100%",
41182
40632
  className: styles["logo"] + " d-flex d-lg-none"
41183
- }, React__default.createElement(singleLogo, null))), !isTeacherSide && React__default.createElement(material.Stack, {
41184
- className: "me-2 ms-2"
41185
- }, React__default.createElement(TimerDropdown, null)), React__default.createElement(material.Stack, {
40633
+ }, React__default.createElement(singleLogo, null))), React__default.createElement(material.Stack, {
41186
40634
  className: "me-2",
41187
40635
  display: "none"
41188
40636
  }, React__default.createElement(TheLanguageDropdown, null)), showAnnouncement && renderNotificationLink && React__default.createElement(AnnouncementContainer, {
@@ -41191,6 +40639,17 @@ var Header = function Header(_ref) {
41191
40639
  renderViewNoteLink: renderViewNoteLink
41192
40640
  })));
41193
40641
  };
40642
+ var HeaderLink = function HeaderLink(_ref3) {
40643
+ var data = _ref3.data,
40644
+ render = _ref3.render;
40645
+ var activePaths = data.activePaths,
40646
+ path = data.path;
40647
+ var pathname = location.pathname.toLowerCase();
40648
+ var isActive = (activePaths === null || activePaths === void 0 ? void 0 : activePaths.some(function (a) {
40649
+ return pathname.startsWith(a);
40650
+ })) || pathname.startsWith(path);
40651
+ return React__default.createElement(React.Fragment, null, render(data, isActive));
40652
+ };
41194
40653
 
41195
40654
  var useLayoutContext = function useLayoutContext(role, showLoadingAcademy, domain) {
41196
40655
  var _currentPusher$connec2;
@@ -41575,7 +41034,6 @@ exports.formatTime = formatTime;
41575
41034
  exports.formatTimeSecond = formatTimeSecond;
41576
41035
  exports.getAcademyDomain = getAcademyDomain;
41577
41036
  exports.getAccessToken = getAccessToken;
41578
- exports.getCountTime = getCountTime;
41579
41037
  exports.getErrorMessage = getErrorMessage;
41580
41038
  exports.getLanguage = getLanguage;
41581
41039
  exports.getLearningSpace = getLearningSpace;