touchstudy-core 0.1.168 → 0.1.170
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/components/Selectors/StudentSelector.d.ts +3 -1
- package/dist/components/Selectors/TeacherSelector.d.ts +15 -0
- package/dist/containers/Announcements/apiClients/announcementService.d.ts +5 -0
- package/dist/containers/Announcements/components/AnnouncementItem.d.ts +11 -0
- package/dist/containers/Announcements/configs/constants.d.ts +3 -0
- package/dist/containers/Announcements/configs/enums.d.ts +8 -0
- package/dist/containers/Announcements/configs/fns.d.ts +10 -0
- package/dist/containers/Announcements/configs/types.d.ts +24 -0
- package/dist/containers/Announcements/configs/utils.d.ts +3 -0
- package/dist/containers/Announcements/index.d.ts +5 -0
- package/dist/containers/Announcements/views/AnnouncementContainer.d.ts +10 -0
- package/dist/containers/Announcements/views/AnnouncementList.d.ts +12 -0
- package/dist/containers/Notes/components/GeneralNoteDialog.d.ts +4 -0
- package/dist/containers/Notes/components/NoteItemList.d.ts +14 -0
- package/dist/containers/Notes/components/NotetabPanel.d.ts +8 -0
- package/dist/containers/Notes/components/TeacherAdminNoteDialog.d.ts +4 -0
- package/dist/containers/Notes/configs/constants.d.ts +27 -0
- package/dist/containers/Notes/configs/enums.d.ts +6 -2
- package/dist/containers/Notes/configs/fns.d.ts +2 -0
- package/dist/containers/Notes/configs/interfaces.d.ts +10 -1
- package/dist/containers/Notes/configs/types.d.ts +1 -1
- package/dist/containers/Notes/index.d.ts +4 -2
- package/dist/containers/Notes/views/NoteList.d.ts +11 -0
- package/dist/containers/Notes/views/NoteTabs.d.ts +7 -0
- package/dist/containers/StudentInfoDrawer/components/Exam/ExamResultList.d.ts +4 -0
- package/dist/containers/StudentInfoDrawer/components/Note/NoteDrawer.d.ts +3 -2
- package/dist/containers/StudentInfoDrawer/configs/types.d.ts +2 -2
- package/dist/containers/StudentInfoDrawer/index.d.ts +2 -1
- package/dist/containers/Textbooks/configs/types.d.ts +3 -3
- package/dist/containers/index.d.ts +1 -0
- package/dist/index.js +1733 -226
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +1742 -237
- package/dist/index.modern.js.map +1 -1
- package/dist/layouts/Header.d.ts +3 -0
- package/dist/layouts/LayoutContext.d.ts +0 -1
- package/dist/redux/commons/action.d.ts +1 -1
- package/dist/services/noteService.d.ts +2 -0
- package/dist/services/teacherService.d.ts +5 -0
- package/dist/utils/functions/timeAgo.d.ts +1 -1
- package/dist/utils/hooks/useLayoutContext.d.ts +1 -1
- package/dist/utils/hooks/useList.d.ts +2 -1
- package/dist/utils/hooks/useVirtualList.d.ts +4 -2
- package/dist/utils/types/note.d.ts +17 -0
- package/package.json +1 -1
package/dist/index.modern.js
CHANGED
@@ -13,10 +13,10 @@ export { AdapterMoment } from '@mui/x-date-pickers/AdapterMoment';
|
|
13
13
|
import { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
14
14
|
export { DemoContainer } from '@mui/x-date-pickers/internals/demo';
|
15
15
|
import React__default, { useState, useEffect, Fragment as Fragment$1, useRef, useCallback, useMemo, memo, createElement } from 'react';
|
16
|
-
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, useMediaQuery, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Divider, Skeleton, Tabs, Tab, Drawer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails,
|
16
|
+
import { useTheme, Container, Typography, Stack, List, ListItem, FormGroup, FormControlLabel, Checkbox, Button, Box, Dialog, DialogTitle, IconButton, DialogContent, TextField, DialogActions, useMediaQuery, styled, FormLabel, Pagination, Paper, InputBase, Tooltip, tooltipClasses, Grid, ClickAwayListener, CircularProgress, InputAdornment, Card as Card$1, Avatar, Table, TableHead, TableRow, TableCell, TableBody, Divider, Skeleton, Tabs, Tab, Drawer, FormControl, RadioGroup, Radio, TableContainer, tableCellClasses, Accordion, AccordionSummary, AccordionDetails, Switch, InputLabel, Chip, ListItemButton, ListItemAvatar, ListItemText, Badge, Popover, CardMedia as CardMedia$1, MenuList } from '@mui/material';
|
17
17
|
import moment from 'moment';
|
18
18
|
export { default as moment } from 'moment';
|
19
|
-
import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaCalendar, FaUser, FaBookOpen,
|
19
|
+
import { FaSave, FaCaretDown, FaTimes, FaTrash, FaSortUp, FaSortDown, FaPlusCircle, FaEye, FaPlus, FaCalendar, FaUser, FaBookOpen, FaUpload, FaPencilAlt, FaCheckCircle, FaShare, FaExchangeAlt, FaBell } from 'react-icons/fa';
|
20
20
|
import { IoMdArrowBack, IoMdSync, IoIosAlert, IoIosArrowDown, IoIosSearch, IoIosArrowUp, IoIosAdd, IoMdAdd } from 'react-icons/io';
|
21
21
|
import { IoClose, IoSearch, IoCloseOutline, IoTime, IoChevronUp, IoChevronDown, IoChatbubbleEllipsesSharp, IoPrint, IoCheckmarkCircle, IoChevronUpOutline, IoChevronDownOutline, IoReceiptSharp, IoBook, IoWarning, IoCalendarClear, IoPerson, IoInformationCircle, IoTrash, IoAddCircle, IoCloseCircle, IoLogOut } from 'react-icons/io5';
|
22
22
|
import MButton from '@mui/material/Button';
|
@@ -46,7 +46,7 @@ import CardActions from '@mui/material/CardActions';
|
|
46
46
|
import CardContent from '@mui/material/CardContent';
|
47
47
|
import CardMedia from '@mui/material/CardMedia';
|
48
48
|
import { object, string, number, date as date$2, array, mixed } from 'yup';
|
49
|
-
import { blue, yellow as yellow$1 } from '@mui/material/colors';
|
49
|
+
import { blue, grey as grey$1, yellow as yellow$1 } from '@mui/material/colors';
|
50
50
|
import { GoogleReCaptcha, GoogleReCaptchaProvider } from 'react-google-recaptcha-v3';
|
51
51
|
import { MdVisibilityOff, MdVisibility, MdAutorenew, MdMoreHoriz, MdDownload, MdExpandMore } from 'react-icons/md';
|
52
52
|
import { gapi } from 'gapi-script';
|
@@ -58,22 +58,23 @@ import Paper$1 from '@mui/material/Paper';
|
|
58
58
|
import Box$1 from '@mui/material/Box';
|
59
59
|
import { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';
|
60
60
|
import { DatePicker } from '@mui/x-date-pickers/DatePicker';
|
61
|
-
import { FaCirclePlus, FaTrashCan, FaEye, FaRotateRight, FaPencil } from 'react-icons/fa6';
|
61
|
+
import { FaCirclePlus, FaTrashCan, FaEye as FaEye$1, FaRotateRight, FaPencil, FaClockRotateLeft } from 'react-icons/fa6';
|
62
62
|
import { CgArrowsExchange } from 'react-icons/cg';
|
63
|
+
import { HiOutlinePencilAlt } from 'react-icons/hi';
|
64
|
+
import TableCell$1 from '@mui/material/TableCell';
|
65
|
+
import TableRow$1 from '@mui/material/TableRow';
|
63
66
|
import html2pdf from 'html2pdf.js';
|
64
67
|
import Slider from 'react-slick';
|
65
68
|
import { GrNext, GrPrevious } from 'react-icons/gr';
|
66
|
-
import { HiOutlinePencilAlt } from 'react-icons/hi';
|
67
69
|
import Table$1 from '@mui/material/Table';
|
68
70
|
import TableBody$1 from '@mui/material/TableBody';
|
69
|
-
import TableCell$1 from '@mui/material/TableCell';
|
70
71
|
import TableHead$1 from '@mui/material/TableHead';
|
71
|
-
import TableRow$1 from '@mui/material/TableRow';
|
72
72
|
import { useForm } from 'react-hook-form';
|
73
73
|
import { yupResolver } from '@hookform/resolvers/yup';
|
74
74
|
import { PiDotsNineLight } from 'react-icons/pi';
|
75
75
|
import Container$1 from '@mui/material/Container';
|
76
|
-
import
|
76
|
+
import { BsCheckAll } from 'react-icons/bs';
|
77
|
+
import Popover$1 from '@mui/material/Popover';
|
77
78
|
import MenuItem from '@mui/material/MenuItem';
|
78
79
|
import { GoArrowSwitch } from 'react-icons/go';
|
79
80
|
import Pusher$1 from 'pusher-js';
|
@@ -282,7 +283,7 @@ var setLanguage = createAction("common/setLanguage");
|
|
282
283
|
var reset = createAction("common/reset");
|
283
284
|
var setReFetchUserAcademies = createAction("common/setReFetchUserAcademies");
|
284
285
|
var setConcurrentConnectionPusher = createAction("common/setConcurrentConnectionPusher");
|
285
|
-
var
|
286
|
+
var setTotalUnreadMessages = createAction("common/setTotalUnreadMessages");
|
286
287
|
|
287
288
|
var initialState = {
|
288
289
|
isLoading: false,
|
@@ -292,8 +293,8 @@ var initialState = {
|
|
292
293
|
},
|
293
294
|
user: null,
|
294
295
|
academy: null,
|
296
|
+
totalUnreadMessages: 0,
|
295
297
|
isReFetchUserAcademies: false,
|
296
|
-
isReadyRegisterPusher: false,
|
297
298
|
concurrentConnectionPusher: {
|
298
299
|
pusher: null,
|
299
300
|
academyDomain: "",
|
@@ -319,8 +320,8 @@ var commonReducer = createReducer(initialState, function (builder) {
|
|
319
320
|
state.concurrentConnectionPusher.pusher = action.payload.pusher;
|
320
321
|
state.concurrentConnectionPusher.academyDomain = action.payload.academyDomain;
|
321
322
|
state.concurrentConnectionPusher.isRegistered = action.payload.isRegistered;
|
322
|
-
}).addCase(
|
323
|
-
state.
|
323
|
+
}).addCase(setTotalUnreadMessages, function (state, action) {
|
324
|
+
state.totalUnreadMessages = action.payload;
|
324
325
|
});
|
325
326
|
});
|
326
327
|
|
@@ -1344,6 +1345,12 @@ var please_reload_this_page_to_continue_using_this_tab_or_close_it = "이 탭을
|
|
1344
1345
|
var reload_page = "페이지 새로고침";
|
1345
1346
|
var last_attendance_date = "마지막 출석일자";
|
1346
1347
|
var less_than_a_day = "하루 미만";
|
1348
|
+
var less_than_a_min = "1분 미만";
|
1349
|
+
var just_now = "방금 전";
|
1350
|
+
var n_mins_ago = "{{min}}분 전";
|
1351
|
+
var n_hours_ago = "{{hour}}시간 전";
|
1352
|
+
var one_min_ago = "1분 전";
|
1353
|
+
var one_hour_ago = "1시간 전";
|
1347
1354
|
var n_days_ago = "{{day}}일 전";
|
1348
1355
|
var n_months_ago = "{{month}}개월 전";
|
1349
1356
|
var n_years_ago = "{{year}}년 전";
|
@@ -1513,6 +1520,24 @@ var next_status = "다음 상태";
|
|
1513
1520
|
var arrival_time = "도착 시간";
|
1514
1521
|
var current_arrival_time = "현재 도착 시간";
|
1515
1522
|
var uppdate_attendance = "출석 현황 수정";
|
1523
|
+
var you_have_n_unread_messages = "읽지 않은 메시지가 {{ n }}개 있습니다";
|
1524
|
+
var receivers = "수신자";
|
1525
|
+
var total_receivers = "총 수신자";
|
1526
|
+
var sender = "보내는 사람";
|
1527
|
+
var manage_notes = "메모 관리";
|
1528
|
+
var notes = "노트";
|
1529
|
+
var new_note = "새 노트";
|
1530
|
+
var mark_as_read = "읽은 것으로 표시";
|
1531
|
+
var view_notes = "노트 보기";
|
1532
|
+
var admin_n = "{{admin}} 관리자";
|
1533
|
+
var teacher_n = "{{teacher}} 교사";
|
1534
|
+
var sent_a_memo = "메모를 보냈습니다";
|
1535
|
+
var admin_to_admin = "관리자에서 관리자에게";
|
1536
|
+
var teacher_to_admin = "교사에서 관리자에게";
|
1537
|
+
var admin_to_teachers = "관리자에서 교사들에게";
|
1538
|
+
var teacher_to_teachers = "교사에서 교사들에게";
|
1539
|
+
var student_required = "학생은 필수입니다";
|
1540
|
+
var teachers_required = "교사가 필요합니다";
|
1516
1541
|
var lang_ko = {
|
1517
1542
|
problem_solving: problem_solving,
|
1518
1543
|
my_story: my_story,
|
@@ -2494,6 +2519,12 @@ var lang_ko = {
|
|
2494
2519
|
reload_page: reload_page,
|
2495
2520
|
last_attendance_date: last_attendance_date,
|
2496
2521
|
less_than_a_day: less_than_a_day,
|
2522
|
+
less_than_a_min: less_than_a_min,
|
2523
|
+
just_now: just_now,
|
2524
|
+
n_mins_ago: n_mins_ago,
|
2525
|
+
n_hours_ago: n_hours_ago,
|
2526
|
+
one_min_ago: one_min_ago,
|
2527
|
+
one_hour_ago: one_hour_ago,
|
2497
2528
|
n_days_ago: n_days_ago,
|
2498
2529
|
n_months_ago: n_months_ago,
|
2499
2530
|
n_years_ago: n_years_ago,
|
@@ -2658,7 +2689,25 @@ var lang_ko = {
|
|
2658
2689
|
next_status: next_status,
|
2659
2690
|
arrival_time: arrival_time,
|
2660
2691
|
current_arrival_time: current_arrival_time,
|
2661
|
-
uppdate_attendance: uppdate_attendance
|
2692
|
+
uppdate_attendance: uppdate_attendance,
|
2693
|
+
you_have_n_unread_messages: you_have_n_unread_messages,
|
2694
|
+
receivers: receivers,
|
2695
|
+
total_receivers: total_receivers,
|
2696
|
+
sender: sender,
|
2697
|
+
manage_notes: manage_notes,
|
2698
|
+
notes: notes,
|
2699
|
+
new_note: new_note,
|
2700
|
+
mark_as_read: mark_as_read,
|
2701
|
+
view_notes: view_notes,
|
2702
|
+
admin_n: admin_n,
|
2703
|
+
teacher_n: teacher_n,
|
2704
|
+
sent_a_memo: sent_a_memo,
|
2705
|
+
admin_to_admin: admin_to_admin,
|
2706
|
+
teacher_to_admin: teacher_to_admin,
|
2707
|
+
admin_to_teachers: admin_to_teachers,
|
2708
|
+
teacher_to_teachers: teacher_to_teachers,
|
2709
|
+
student_required: student_required,
|
2710
|
+
teachers_required: teachers_required
|
2662
2711
|
};
|
2663
2712
|
|
2664
2713
|
var problem_solving$1 = "Problem Solving";
|
@@ -3657,6 +3706,12 @@ var please_reload_this_page_to_continue_using_this_tab_or_close_it$1 = "Please r
|
|
3657
3706
|
var reload_page$1 = "Reload page";
|
3658
3707
|
var last_attendance_date$1 = "Last attendance date";
|
3659
3708
|
var less_than_a_day$1 = "Less than a day";
|
3709
|
+
var less_than_a_min$1 = "Less than a minute";
|
3710
|
+
var just_now$1 = "Just now";
|
3711
|
+
var n_mins_ago$1 = "{{min}} minutes ago";
|
3712
|
+
var n_hours_ago$1 = "{{hour}} hours ago";
|
3713
|
+
var one_min_ago$1 = "one minute ago";
|
3714
|
+
var one_hour_ago$1 = "one hour ago";
|
3660
3715
|
var n_days_ago$1 = "{{day}} days ago";
|
3661
3716
|
var n_months_ago$1 = "{{month}} months ago";
|
3662
3717
|
var n_years_ago$1 = "{{year}} years ago";
|
@@ -3827,6 +3882,24 @@ var next_status$1 = "Next status";
|
|
3827
3882
|
var arrival_time$1 = "Arrival time";
|
3828
3883
|
var current_arrival_time$1 = "Current arrival time";
|
3829
3884
|
var uppdate_attendance$1 = "Update attendance";
|
3885
|
+
var you_have_n_unread_messages$1 = "You have {{ n }} unread message(s)";
|
3886
|
+
var receivers$1 = "Receivers";
|
3887
|
+
var total_receivers$1 = "Total receivers";
|
3888
|
+
var sender$1 = "Sender";
|
3889
|
+
var manage_notes$1 = "Manage notes";
|
3890
|
+
var notes$1 = "Notes";
|
3891
|
+
var new_note$1 = "New note";
|
3892
|
+
var mark_as_read$1 = "Mark as read";
|
3893
|
+
var view_notes$1 = "View notes";
|
3894
|
+
var admin_n$1 = "Admin {{admin}}";
|
3895
|
+
var teacher_n$1 = "Teacher {{teacher}}";
|
3896
|
+
var sent_a_memo$1 = "sent a memo";
|
3897
|
+
var admin_to_admin$1 = "Admin to admin";
|
3898
|
+
var teacher_to_admin$1 = "Teacher to admin";
|
3899
|
+
var admin_to_teachers$1 = "Admin to teachers";
|
3900
|
+
var teacher_to_teachers$1 = "Teacher to teachers";
|
3901
|
+
var student_required$1 = "Student is required";
|
3902
|
+
var teachers_required$1 = "Teachers are required";
|
3830
3903
|
var lang_en = {
|
3831
3904
|
problem_solving: problem_solving$1,
|
3832
3905
|
my_story: my_story$1,
|
@@ -4809,6 +4882,12 @@ var lang_en = {
|
|
4809
4882
|
reload_page: reload_page$1,
|
4810
4883
|
last_attendance_date: last_attendance_date$1,
|
4811
4884
|
less_than_a_day: less_than_a_day$1,
|
4885
|
+
less_than_a_min: less_than_a_min$1,
|
4886
|
+
just_now: just_now$1,
|
4887
|
+
n_mins_ago: n_mins_ago$1,
|
4888
|
+
n_hours_ago: n_hours_ago$1,
|
4889
|
+
one_min_ago: one_min_ago$1,
|
4890
|
+
one_hour_ago: one_hour_ago$1,
|
4812
4891
|
n_days_ago: n_days_ago$1,
|
4813
4892
|
n_months_ago: n_months_ago$1,
|
4814
4893
|
n_years_ago: n_years_ago$1,
|
@@ -4974,7 +5053,25 @@ var lang_en = {
|
|
4974
5053
|
next_status: next_status$1,
|
4975
5054
|
arrival_time: arrival_time$1,
|
4976
5055
|
current_arrival_time: current_arrival_time$1,
|
4977
|
-
uppdate_attendance: uppdate_attendance$1
|
5056
|
+
uppdate_attendance: uppdate_attendance$1,
|
5057
|
+
you_have_n_unread_messages: you_have_n_unread_messages$1,
|
5058
|
+
receivers: receivers$1,
|
5059
|
+
total_receivers: total_receivers$1,
|
5060
|
+
sender: sender$1,
|
5061
|
+
manage_notes: manage_notes$1,
|
5062
|
+
notes: notes$1,
|
5063
|
+
new_note: new_note$1,
|
5064
|
+
mark_as_read: mark_as_read$1,
|
5065
|
+
view_notes: view_notes$1,
|
5066
|
+
admin_n: admin_n$1,
|
5067
|
+
teacher_n: teacher_n$1,
|
5068
|
+
sent_a_memo: sent_a_memo$1,
|
5069
|
+
admin_to_admin: admin_to_admin$1,
|
5070
|
+
teacher_to_admin: teacher_to_admin$1,
|
5071
|
+
admin_to_teachers: admin_to_teachers$1,
|
5072
|
+
teacher_to_teachers: teacher_to_teachers$1,
|
5073
|
+
student_required: student_required$1,
|
5074
|
+
teachers_required: teachers_required$1
|
4978
5075
|
};
|
4979
5076
|
|
4980
5077
|
i18n.use(initReactI18next).init({
|
@@ -6148,8 +6245,12 @@ var NoteSortColumn;
|
|
6148
6245
|
})(NoteSortColumn || (NoteSortColumn = {}));
|
6149
6246
|
var NoteType;
|
6150
6247
|
(function (NoteType) {
|
6151
|
-
NoteType[NoteType["
|
6152
|
-
NoteType[NoteType["
|
6248
|
+
NoteType[NoteType["ToAcademy"] = 0] = "ToAcademy";
|
6249
|
+
NoteType[NoteType["ToStudent"] = 1] = "ToStudent";
|
6250
|
+
NoteType[NoteType["AdminToAllAdmin"] = 2] = "AdminToAllAdmin";
|
6251
|
+
NoteType[NoteType["AdminToAllTeacher"] = 3] = "AdminToAllTeacher";
|
6252
|
+
NoteType[NoteType["TeacherToAllAdmin"] = 4] = "TeacherToAllAdmin";
|
6253
|
+
NoteType[NoteType["TeacherToTeachers"] = 5] = "TeacherToTeachers";
|
6153
6254
|
})(NoteType || (NoteType = {}));
|
6154
6255
|
|
6155
6256
|
var SchoolType;
|
@@ -6321,16 +6422,35 @@ var pushTo = function pushTo(history, data, isReplace) {
|
|
6321
6422
|
});
|
6322
6423
|
};
|
6323
6424
|
|
6324
|
-
var timAgo = function timAgo(date, t) {
|
6325
|
-
if (date === DATE_MIN_VALUE || date === DATE_TIME_MIN_VALUE) return '';
|
6425
|
+
var timAgo = function timAgo(date, t, day) {
|
6426
|
+
if (!date || date === DATE_MIN_VALUE || date === DATE_TIME_MIN_VALUE) return '';
|
6326
6427
|
var time = moment.utc(date).local();
|
6428
|
+
var years = moment().diff(time, 'years');
|
6429
|
+
if (years >= 1) return years >= 2 ? t('n_years_ago', {
|
6430
|
+
year: years
|
6431
|
+
}) : t("one_year_ago");
|
6432
|
+
var months = moment().diff(time, 'months');
|
6433
|
+
if (months >= 1) return months >= 2 ? t('n_months_ago', {
|
6434
|
+
month: months
|
6435
|
+
}) : t("one_month_ago");
|
6327
6436
|
var days = moment().diff(time, 'days');
|
6328
|
-
if (days
|
6329
|
-
|
6330
|
-
|
6331
|
-
|
6332
|
-
|
6333
|
-
|
6437
|
+
if (days < 1 && !day) return t('less_than_a_day');
|
6438
|
+
if (days < 1 && day) {
|
6439
|
+
var hours = moment().diff(time, 'hours');
|
6440
|
+
if (hours >= 1) return hours >= 2 ? t('n_hours_ago', {
|
6441
|
+
hour: hours
|
6442
|
+
}) : t("one_hour_ago");
|
6443
|
+
var mins = moment().diff(time, 'minutes');
|
6444
|
+
if (mins >= 1) return mins >= 2 ? t('n_mins_ago', {
|
6445
|
+
min: mins
|
6446
|
+
}) : t("one_min_ago");
|
6447
|
+
var secs = moment().diff(time, 'seconds');
|
6448
|
+
if (secs > 10) return t('less_than_a_min');
|
6449
|
+
return t("just_now");
|
6450
|
+
}
|
6451
|
+
return days >= 2 ? t('n_days_ago', {
|
6452
|
+
day: days
|
6453
|
+
}) : t("one_day_ago");
|
6334
6454
|
};
|
6335
6455
|
|
6336
6456
|
var toISOString = (function (time) {
|
@@ -6920,7 +7040,10 @@ var useLanguage = function useLanguage(history, init) {
|
|
6920
7040
|
};
|
6921
7041
|
};
|
6922
7042
|
|
6923
|
-
var useList = function useList(fetchData, defaultQuery) {
|
7043
|
+
var useList = function useList(fetchData, defaultQuery, showLoading) {
|
7044
|
+
if (showLoading === void 0) {
|
7045
|
+
showLoading = true;
|
7046
|
+
}
|
6924
7047
|
var dispatch = useDispatch();
|
6925
7048
|
var _useState = useState(defaultQuery),
|
6926
7049
|
filter = _useState[0],
|
@@ -6934,6 +7057,9 @@ var useList = function useList(fetchData, defaultQuery) {
|
|
6934
7057
|
var _useState4 = useState(),
|
6935
7058
|
selectedItem = _useState4[0],
|
6936
7059
|
setSelectedItem = _useState4[1];
|
7060
|
+
var _useState5 = useState(false),
|
7061
|
+
isLoading = _useState5[0],
|
7062
|
+
setIsLoading = _useState5[1];
|
6937
7063
|
var textSearchRef = useRef(null);
|
6938
7064
|
var isFirstLoadRef = useRef(true);
|
6939
7065
|
var _useTranslation = useTranslation(),
|
@@ -6947,11 +7073,13 @@ var useList = function useList(fetchData, defaultQuery) {
|
|
6947
7073
|
}
|
6948
7074
|
try {
|
6949
7075
|
var _temp2 = function _temp2() {
|
6950
|
-
isLoading && dispatch(setLoading(false));
|
7076
|
+
isLoading && showLoading && dispatch(setLoading(false));
|
7077
|
+
setIsLoading(false);
|
6951
7078
|
};
|
6952
7079
|
if (!fetchData) return Promise.resolve();
|
6953
7080
|
if (isFirstLoadRef.current) isFirstLoadRef.current = false;
|
6954
|
-
isLoading && dispatch(setLoading(true));
|
7081
|
+
isLoading && showLoading && dispatch(setLoading(true));
|
7082
|
+
setIsLoading(true);
|
6955
7083
|
var _temp = _catch(function () {
|
6956
7084
|
return Promise.resolve(fetchData(filter)).then(function (res) {
|
6957
7085
|
var _res$data$items = res.data.items,
|
@@ -6976,10 +7104,6 @@ var useList = function useList(fetchData, defaultQuery) {
|
|
6976
7104
|
};
|
6977
7105
|
var handleSort = function handleSort(sortColumnName) {
|
6978
7106
|
var sortColumnDirection = OrderType.ASC;
|
6979
|
-
console.log({
|
6980
|
-
sortColumnName: typeof sortColumnName,
|
6981
|
-
filter: typeof filter.sortColumnName
|
6982
|
-
});
|
6983
7107
|
if (filter.sortColumnName == sortColumnName && filter.sortColumnDirection === OrderType.ASC) sortColumnDirection = OrderType.DESC;
|
6984
7108
|
setFilter(_extends({}, filter, {
|
6985
7109
|
sortColumnName: sortColumnName,
|
@@ -7012,6 +7136,7 @@ var useList = function useList(fetchData, defaultQuery) {
|
|
7012
7136
|
getData(isFirstLoadRef.current);
|
7013
7137
|
}, [JSON.stringify(filter)]);
|
7014
7138
|
return {
|
7139
|
+
isLoading: isLoading,
|
7015
7140
|
filter: filter,
|
7016
7141
|
textSearchRef: textSearchRef,
|
7017
7142
|
paging: paging,
|
@@ -7114,36 +7239,26 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl,
|
|
7114
7239
|
}
|
7115
7240
|
var isAcademy = !!academyDomain || isLearningSpace;
|
7116
7241
|
return Promise.resolve(handleLogin(function () {
|
7117
|
-
|
7118
|
-
|
7119
|
-
var
|
7120
|
-
|
7121
|
-
|
7122
|
-
|
7123
|
-
|
7124
|
-
|
7125
|
-
|
7126
|
-
|
7127
|
-
|
7128
|
-
|
7129
|
-
|
7130
|
-
|
7131
|
-
|
7132
|
-
|
7133
|
-
|
7134
|
-
|
7135
|
-
|
7136
|
-
|
7137
|
-
}, function (error) {
|
7138
|
-
!!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN);
|
7139
|
-
localStorage.removeItem(LEARNING_SPACE);
|
7140
|
-
reject(error);
|
7141
|
-
});
|
7142
|
-
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(function () {}) : void 0);
|
7143
|
-
} catch (e) {
|
7144
|
-
return Promise.reject(e);
|
7145
|
-
}
|
7146
|
-
});
|
7242
|
+
try {
|
7243
|
+
return Promise.resolve(isAcademy ? apiLoginGoogle(data, isLearningSpace) : apiLoginGoogleSuperAdmin(data)).then(function (loginResponse) {
|
7244
|
+
var result = loginResponse.data;
|
7245
|
+
var _temp = function () {
|
7246
|
+
if (loginResponse.status === 204 && academyDomain) {
|
7247
|
+
localStorage.removeItem(ACADEMY_DOMAIN);
|
7248
|
+
localStorage.removeItem(LEARNING_SPACE);
|
7249
|
+
return Promise.resolve(apiLoginGoogleSuperAdmin(data)).then(function (_apiLoginGoogleSuperA) {
|
7250
|
+
loginResponse = _apiLoginGoogleSuperA;
|
7251
|
+
result = loginResponse.data;
|
7252
|
+
});
|
7253
|
+
}
|
7254
|
+
}();
|
7255
|
+
return _temp && _temp.then ? _temp.then(function () {
|
7256
|
+
return result;
|
7257
|
+
}) : result;
|
7258
|
+
});
|
7259
|
+
} catch (e) {
|
7260
|
+
return Promise.reject(e);
|
7261
|
+
}
|
7147
7262
|
}, isStudent, isLogout)).then(function () {});
|
7148
7263
|
} catch (e) {
|
7149
7264
|
return Promise.reject(e);
|
@@ -7156,21 +7271,14 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl,
|
|
7156
7271
|
try {
|
7157
7272
|
var isStudent = data.role === Role.Student;
|
7158
7273
|
return Promise.resolve(handleLogin(function () {
|
7159
|
-
|
7160
|
-
|
7161
|
-
var
|
7162
|
-
|
7163
|
-
|
7164
|
-
|
7165
|
-
|
7166
|
-
|
7167
|
-
reject(error);
|
7168
|
-
});
|
7169
|
-
return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
|
7170
|
-
} catch (e) {
|
7171
|
-
return Promise.reject(e);
|
7172
|
-
}
|
7173
|
-
});
|
7274
|
+
try {
|
7275
|
+
return Promise.resolve(!isLearningSpace && !domain ? apiLoginSuperAdminWithAccessToken(data) : apiLoginWithAccessToken(data, isLearningSpace, domain)).then(function (loginResponse) {
|
7276
|
+
var result = loginResponse.data;
|
7277
|
+
return result;
|
7278
|
+
});
|
7279
|
+
} catch (e) {
|
7280
|
+
return Promise.reject(e);
|
7281
|
+
}
|
7174
7282
|
}, isStudent, isLogout, superAdminRedirectPath)).then(function () {});
|
7175
7283
|
} catch (e) {
|
7176
7284
|
return Promise.reject(e);
|
@@ -7181,13 +7289,13 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl,
|
|
7181
7289
|
isLogout = true;
|
7182
7290
|
}
|
7183
7291
|
try {
|
7184
|
-
var
|
7292
|
+
var _temp3 = function _temp3(_result) {
|
7185
7293
|
if (_exit) return _result;
|
7186
7294
|
dispatch(setLoading(false));
|
7187
7295
|
};
|
7188
7296
|
var _exit = false;
|
7189
7297
|
dispatch(setLoading(true));
|
7190
|
-
var
|
7298
|
+
var _temp2 = _catch(function () {
|
7191
7299
|
return Promise.resolve(apiLogin()).then(function (loginResponse) {
|
7192
7300
|
var isFirstLogin = loginResponse.isFirstLogin,
|
7193
7301
|
token = loginResponse.token,
|
@@ -7211,7 +7319,7 @@ var useLogin = function useLogin(history, homeAcademyUrl, homeUrl, registerUrl,
|
|
7211
7319
|
alert(getErrorMessage(t, error));
|
7212
7320
|
isLogout && handleSignOut();
|
7213
7321
|
});
|
7214
|
-
return Promise.resolve(
|
7322
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
|
7215
7323
|
} catch (e) {
|
7216
7324
|
return Promise.reject(e);
|
7217
7325
|
}
|
@@ -8020,7 +8128,8 @@ var getStudentsApi = function getStudentsApi(textSearch) {
|
|
8020
8128
|
return api.get("" + STUDENT_URL, {
|
8021
8129
|
params: {
|
8022
8130
|
textSearch: textSearch,
|
8023
|
-
roles: [Role.Admin]
|
8131
|
+
roles: [Role.Admin],
|
8132
|
+
pageSize: 100
|
8024
8133
|
}
|
8025
8134
|
});
|
8026
8135
|
};
|
@@ -8031,7 +8140,10 @@ var StudentSelector = function StudentSelector(_ref) {
|
|
8031
8140
|
externalStudentIds = _ref.externalStudentIds,
|
8032
8141
|
_ref$disabled = _ref.disabled,
|
8033
8142
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
8034
|
-
title = _ref.title
|
8143
|
+
title = _ref.title,
|
8144
|
+
_ref$isMulti = _ref.isMulti,
|
8145
|
+
isMulti = _ref$isMulti === void 0 ? true : _ref$isMulti,
|
8146
|
+
minSearchLength = _ref.minSearchLength;
|
8035
8147
|
var _useState = useState([]),
|
8036
8148
|
students = _useState[0],
|
8037
8149
|
setStudents = _useState[1];
|
@@ -8066,7 +8178,7 @@ var StudentSelector = function StudentSelector(_ref) {
|
|
8066
8178
|
}, [searchString]);
|
8067
8179
|
useEffect(function () {
|
8068
8180
|
timeout && timeout.current && clearTimeout(timeout.current);
|
8069
|
-
if (!searchString || searchString.trim().length <
|
8181
|
+
if (minSearchLength && (!searchString || searchString.trim().length < minSearchLength)) {
|
8070
8182
|
setStudents([]);
|
8071
8183
|
} else {
|
8072
8184
|
timeout.current = setTimeout(loadData, 300);
|
@@ -8092,8 +8204,8 @@ var StudentSelector = function StudentSelector(_ref) {
|
|
8092
8204
|
},
|
8093
8205
|
isDisabled: disabled,
|
8094
8206
|
isLoading: isLoading,
|
8095
|
-
placeholder: t('placeholder_student_selector'),
|
8096
|
-
isMulti:
|
8207
|
+
placeholder: t(minSearchLength ? 'placeholder_student_selector' : 'select_placeholder'),
|
8208
|
+
isMulti: isMulti,
|
8097
8209
|
value: value,
|
8098
8210
|
onChange: onChange
|
8099
8211
|
}));
|
@@ -14180,7 +14292,7 @@ var DrawerHeader = function DrawerHeader(_ref) {
|
|
14180
14292
|
fontSize: "13px",
|
14181
14293
|
fontWeight: 500
|
14182
14294
|
}
|
14183
|
-
}, student.schoolName), React__default.createElement(Typography, {
|
14295
|
+
}, student.schoolName), !!student.grade && React__default.createElement(Typography, {
|
14184
14296
|
sx: {
|
14185
14297
|
color: grey[500],
|
14186
14298
|
fontSize: "13px",
|
@@ -15488,6 +15600,9 @@ var getNotesApi = function getNotesApi(query) {
|
|
15488
15600
|
params: query
|
15489
15601
|
});
|
15490
15602
|
};
|
15603
|
+
var getNoteByIdApi = function getNoteByIdApi(id) {
|
15604
|
+
return api.get(NOTES_URL + "/" + id);
|
15605
|
+
};
|
15491
15606
|
var createNoteApi = function createNoteApi(note) {
|
15492
15607
|
return api.post("" + NOTES_URL, note);
|
15493
15608
|
};
|
@@ -15496,6 +15611,9 @@ var updateNoteApi = function updateNoteApi(id, content) {
|
|
15496
15611
|
content: content
|
15497
15612
|
});
|
15498
15613
|
};
|
15614
|
+
var updateNoteDataApi = function updateNoteDataApi(id, data) {
|
15615
|
+
return api.put(NOTES_URL + "/" + id, data);
|
15616
|
+
};
|
15499
15617
|
var deleteNoteApi = function deleteNoteApi(id) {
|
15500
15618
|
return api["delete"](NOTES_URL + "/" + id);
|
15501
15619
|
};
|
@@ -15770,6 +15888,121 @@ var NotesContainer = function NotesContainer(_ref) {
|
|
15770
15888
|
});
|
15771
15889
|
};
|
15772
15890
|
|
15891
|
+
var getNoteType = function getNoteType(t, type) {
|
15892
|
+
switch (type) {
|
15893
|
+
case NoteType.ToAcademy:
|
15894
|
+
return t("academy");
|
15895
|
+
case NoteType.ToStudent:
|
15896
|
+
return t("student_parents");
|
15897
|
+
case NoteType.AdminToAllAdmin:
|
15898
|
+
return t("admin_to_admin");
|
15899
|
+
case NoteType.AdminToAllTeacher:
|
15900
|
+
return t("admin_to_teachers");
|
15901
|
+
case NoteType.TeacherToAllAdmin:
|
15902
|
+
return t("teacher_to_admin");
|
15903
|
+
case NoteType.TeacherToTeachers:
|
15904
|
+
return t("teacher_to_teachers");
|
15905
|
+
default:
|
15906
|
+
return "";
|
15907
|
+
}
|
15908
|
+
};
|
15909
|
+
|
15910
|
+
var NoteItemList = function NoteItemList(_ref) {
|
15911
|
+
var _data$reciever, _data$reciever2, _data$recievers;
|
15912
|
+
var data = _ref.data,
|
15913
|
+
index = _ref.index,
|
15914
|
+
role = _ref.role,
|
15915
|
+
calcOrderNumber = _ref.calcOrderNumber,
|
15916
|
+
onDelete = _ref.onDelete,
|
15917
|
+
onUpdate = _ref.onUpdate,
|
15918
|
+
onView = _ref.onView;
|
15919
|
+
var isAdminUser = useSelector(function (state) {
|
15920
|
+
var _state$common, _state$common$user, _state$common$user$ro;
|
15921
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : (_state$common$user$ro = _state$common$user.roles) === null || _state$common$user$ro === void 0 ? void 0 : _state$common$user$ro.includes(Role.Admin);
|
15922
|
+
});
|
15923
|
+
var userId = useSelector(function (state) {
|
15924
|
+
var _state$common2, _state$common2$user;
|
15925
|
+
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : (_state$common2$user = _state$common2.user) === null || _state$common2$user === void 0 ? void 0 : _state$common2$user.id;
|
15926
|
+
});
|
15927
|
+
var _useTranslation = useTranslation(),
|
15928
|
+
t = _useTranslation.t;
|
15929
|
+
var isAdmin = role === Role.Admin;
|
15930
|
+
var order = calcOrderNumber(index);
|
15931
|
+
var createdAt = utcToLocalTime(data.createdAt, t("date_time_format"));
|
15932
|
+
var handleDelete = function handleDelete() {
|
15933
|
+
onDelete(data);
|
15934
|
+
};
|
15935
|
+
var handleUpdate = function handleUpdate() {
|
15936
|
+
onUpdate(data);
|
15937
|
+
};
|
15938
|
+
var handleView = function handleView() {
|
15939
|
+
onView(data);
|
15940
|
+
};
|
15941
|
+
var disabled = !data.isOwned && (!isAdminUser || data.type == undefined || data.type == NoteType.TeacherToAllAdmin || data.type == NoteType.TeacherToTeachers);
|
15942
|
+
useEffect(function () {
|
15943
|
+
if (window.MathJax) {
|
15944
|
+
var _window$MathJax;
|
15945
|
+
(_window$MathJax = window.MathJax) === null || _window$MathJax === void 0 ? void 0 : _window$MathJax.typeset();
|
15946
|
+
}
|
15947
|
+
}, [data.content]);
|
15948
|
+
var noteType = data.type === undefined ? "" : getNoteType(t, data.type);
|
15949
|
+
return React__default.createElement(TableRow$1, null, React__default.createElement(TableCell$1, null, order), React__default.createElement(TableCell$1, null, data.type === NoteType.AdminToAllTeacher && !isAdmin && !isAdminUser ? React__default.createElement(Typography, {
|
15950
|
+
color: green[700],
|
15951
|
+
fontWeight: 600
|
15952
|
+
}, t("admin")) : React__default.createElement(Fragment$1, null, React__default.createElement(Typography, {
|
15953
|
+
color: green[700],
|
15954
|
+
fontWeight: 600
|
15955
|
+
}, data.sender.fullName, data.sender.id === userId && React__default.createElement(Typography, {
|
15956
|
+
display: "inline-block",
|
15957
|
+
color: grey$1[600],
|
15958
|
+
fontWeight: 600
|
15959
|
+
}, "(", " " + t("me"), ")")), React__default.createElement(Typography, null, data.sender.email))), data.type === NoteType.ToAcademy || data.type === NoteType.ToStudent ? React__default.createElement(TableCell$1, null, React__default.createElement(Typography, {
|
15960
|
+
color: blue[700],
|
15961
|
+
fontWeight: 600
|
15962
|
+
}, (_data$reciever = data.reciever) === null || _data$reciever === void 0 ? void 0 : _data$reciever.fullName), React__default.createElement(Typography, null, (_data$reciever2 = data.reciever) === null || _data$reciever2 === void 0 ? void 0 : _data$reciever2.email)) : data.type === NoteType.TeacherToTeachers ? React__default.createElement(TableCell$1, null, React__default.createElement(Stack, {
|
15963
|
+
direction: "column"
|
15964
|
+
}, (_data$recievers = data.recievers) === null || _data$recievers === void 0 ? void 0 : _data$recievers.slice(0, 2).map(function (i) {
|
15965
|
+
return React__default.createElement(Typography, null, i.fullName, " - ", i.email);
|
15966
|
+
}), data.recievers && data.recievers.length > 2 && React__default.createElement(Typography, null, "(+", data.recievers.length - 2, ")"))) : React__default.createElement(TableCell$1, null, React__default.createElement(Typography, null, t(data.type === NoteType.AdminToAllTeacher ? "teachers" : "admin"))), React__default.createElement(TableCell$1, null, React__default.createElement(Box, {
|
15967
|
+
sx: {
|
15968
|
+
display: "-webkit-box",
|
15969
|
+
lineClamp: 3,
|
15970
|
+
WebkitLineClamp: 3,
|
15971
|
+
WebkitBoxOrient: "vertical",
|
15972
|
+
boxOrient: "vertical",
|
15973
|
+
overflow: "hidden"
|
15974
|
+
},
|
15975
|
+
dangerouslySetInnerHTML: {
|
15976
|
+
__html: data.content
|
15977
|
+
}
|
15978
|
+
})), React__default.createElement(TableCell$1, {
|
15979
|
+
className: "text-nowrap"
|
15980
|
+
}, noteType), React__default.createElement(TableCell$1, null, createdAt), React__default.createElement(TableCell$1, null, React__default.createElement("div", {
|
15981
|
+
className: "d-flex"
|
15982
|
+
}, React__default.createElement(Box, null, React__default.createElement(IconButton, {
|
15983
|
+
color: "default",
|
15984
|
+
className: "bg-primary text-white me-1",
|
15985
|
+
onClick: handleView
|
15986
|
+
}, React__default.createElement(FaEye, {
|
15987
|
+
size: 12
|
15988
|
+
}))), React__default.createElement(Box, null, React__default.createElement(IconButton, {
|
15989
|
+
color: "default",
|
15990
|
+
className: styles$5["action-btn"] + " " + (disabled ? "bg-secondary" : "bg-warning") + " text-white me-2",
|
15991
|
+
onClick: handleUpdate,
|
15992
|
+
disabled: disabled
|
15993
|
+
}, React__default.createElement(HiOutlinePencilAlt, {
|
15994
|
+
className: styles$5["action-btn--pencil"],
|
15995
|
+
size: 12
|
15996
|
+
}))), React__default.createElement(Box, null, React__default.createElement(IconButton, {
|
15997
|
+
onClick: handleDelete,
|
15998
|
+
color: "default",
|
15999
|
+
className: styles$5["action-btn"] + " " + (disabled ? "bg-secondary" : "bg-danger") + " text-white",
|
16000
|
+
disabled: disabled
|
16001
|
+
}, React__default.createElement(FaTrashCan, {
|
16002
|
+
size: 12
|
16003
|
+
}))))));
|
16004
|
+
};
|
16005
|
+
|
15773
16006
|
var NoteContent = function NoteContent(_ref) {
|
15774
16007
|
var content = _ref.content;
|
15775
16008
|
useEffect(function () {
|
@@ -15791,7 +16024,7 @@ var NoteContent = function NoteContent(_ref) {
|
|
15791
16024
|
};
|
15792
16025
|
|
15793
16026
|
var NoteDrawer = function NoteDrawer(props) {
|
15794
|
-
var _BRIEF_GRADE_OPTIONS$,
|
16027
|
+
var _BRIEF_GRADE_OPTIONS$, _note$content;
|
15795
16028
|
var anchor = props.anchor,
|
15796
16029
|
open = props.open,
|
15797
16030
|
student = props.student,
|
@@ -15799,7 +16032,8 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15799
16032
|
data = props.data,
|
15800
16033
|
width = props.width,
|
15801
16034
|
_props$showStudentInf = props.showStudentInfo,
|
15802
|
-
showStudentInfo = _props$showStudentInf === void 0 ? true : _props$showStudentInf
|
16035
|
+
showStudentInfo = _props$showStudentInf === void 0 ? true : _props$showStudentInf,
|
16036
|
+
id = props.id;
|
15803
16037
|
var _useTranslation = useTranslation(),
|
15804
16038
|
t = _useTranslation.t;
|
15805
16039
|
var academy = useSelector(function (state) {
|
@@ -15810,6 +16044,46 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15810
16044
|
var _state$common2;
|
15811
16045
|
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.language;
|
15812
16046
|
});
|
16047
|
+
var _useState = useState(false),
|
16048
|
+
loading = _useState[0],
|
16049
|
+
setLoading = _useState[1];
|
16050
|
+
var _useState2 = useState(),
|
16051
|
+
noteData = _useState2[0],
|
16052
|
+
setNoteData = _useState2[1];
|
16053
|
+
useEffect(function () {
|
16054
|
+
var getNoteById = function getNoteById() {
|
16055
|
+
try {
|
16056
|
+
var _temp2 = function _temp2() {
|
16057
|
+
setLoading(false);
|
16058
|
+
};
|
16059
|
+
if (!id) return Promise.resolve();
|
16060
|
+
setLoading(true);
|
16061
|
+
var _temp = _catch(function () {
|
16062
|
+
return Promise.resolve(getNoteByIdApi(+id)).then(function (res) {
|
16063
|
+
setNoteData(res.data);
|
16064
|
+
});
|
16065
|
+
}, function (error) {
|
16066
|
+
toast.error(getErrorMessage(t, error));
|
16067
|
+
});
|
16068
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
16069
|
+
} catch (e) {
|
16070
|
+
return Promise.reject(e);
|
16071
|
+
}
|
16072
|
+
};
|
16073
|
+
getNoteById();
|
16074
|
+
}, [id]);
|
16075
|
+
var note = data != null ? data : noteData;
|
16076
|
+
var user = useMemo(function () {
|
16077
|
+
if (student) return student;
|
16078
|
+
if (!note) return null;
|
16079
|
+
switch (note.type) {
|
16080
|
+
case NoteType.ToAcademy:
|
16081
|
+
case NoteType.ToStudent:
|
16082
|
+
return note.reciever;
|
16083
|
+
default:
|
16084
|
+
return note.sender;
|
16085
|
+
}
|
16086
|
+
}, [JSON.stringify(note), JSON.stringify(student)]);
|
15813
16087
|
return React__default.createElement(Drawer, {
|
15814
16088
|
anchor: anchor,
|
15815
16089
|
open: open,
|
@@ -15836,11 +16110,11 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15836
16110
|
onClick: onClose
|
15837
16111
|
}, React__default.createElement(IoClose, {
|
15838
16112
|
size: 32
|
15839
|
-
}))), showStudentInfo && React__default.createElement(Box, {
|
16113
|
+
}))), showStudentInfo && ((note === null || note === void 0 ? void 0 : note.type) === NoteType.ToAcademy || (note === null || note === void 0 ? void 0 : note.type) === NoteType.ToStudent) && React__default.createElement(Box, {
|
15840
16114
|
sx: {
|
15841
16115
|
padding: "16px 40px"
|
15842
16116
|
}
|
15843
|
-
}, !
|
16117
|
+
}, !user || loading ? React__default.createElement(Stack, {
|
15844
16118
|
direction: "row",
|
15845
16119
|
gap: 3
|
15846
16120
|
}, React__default.createElement(Skeleton, {
|
@@ -15875,7 +16149,7 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15875
16149
|
color: green[500],
|
15876
16150
|
lineHeight: "22px"
|
15877
16151
|
}
|
15878
|
-
},
|
16152
|
+
}, user.fullName), React__default.createElement(Stack, {
|
15879
16153
|
direction: "row",
|
15880
16154
|
alignItems: "center",
|
15881
16155
|
gap: 1
|
@@ -15885,17 +16159,29 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15885
16159
|
fontSize: "13px",
|
15886
16160
|
fontWeight: 500
|
15887
16161
|
}
|
15888
|
-
},
|
16162
|
+
}, user.schoolName), !!user.grade && React__default.createElement(Typography, {
|
15889
16163
|
sx: {
|
15890
16164
|
color: grey[500],
|
15891
16165
|
fontSize: "13px",
|
15892
16166
|
fontWeight: 500
|
15893
16167
|
}
|
15894
16168
|
}, t(function (label) {
|
15895
|
-
return label ? t(label) : formatGrade(
|
16169
|
+
return label ? t(label) : formatGrade(user.grade, t, language);
|
15896
16170
|
}((_BRIEF_GRADE_OPTIONS$ = BRIEF_GRADE_OPTIONS.find(function (o) {
|
15897
|
-
return o.value === Number(
|
15898
|
-
})) === null || _BRIEF_GRADE_OPTIONS$ === void 0 ? void 0 : _BRIEF_GRADE_OPTIONS$.label))))))), React__default.createElement(Stack, {
|
16171
|
+
return o.value === Number(user.grade);
|
16172
|
+
})) === null || _BRIEF_GRADE_OPTIONS$ === void 0 ? void 0 : _BRIEF_GRADE_OPTIONS$.label))))))), !note && !loading && React__default.createElement(Stack, {
|
16173
|
+
padding: "40px 24px 0",
|
16174
|
+
gap: "16px"
|
16175
|
+
}, React__default.createElement(Typography, {
|
16176
|
+
className: "text-muted"
|
16177
|
+
}, t("no_data"))), loading && React__default.createElement(Stack, {
|
16178
|
+
padding: "40px 24px 0",
|
16179
|
+
gap: "16px",
|
16180
|
+
justifyContent: "center"
|
16181
|
+
}, React__default.createElement(CircularProgress, {
|
16182
|
+
size: 40,
|
16183
|
+
color: "primary"
|
16184
|
+
})), note && !loading && React__default.createElement(Stack, {
|
15899
16185
|
padding: "40px 24px 0",
|
15900
16186
|
gap: "16px"
|
15901
16187
|
}, React__default.createElement(Stack, {
|
@@ -15908,7 +16194,7 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15908
16194
|
fontWeight: "700",
|
15909
16195
|
color: "#414E62"
|
15910
16196
|
}
|
15911
|
-
},
|
16197
|
+
}, note === null || note === void 0 ? void 0 : note.fullName)), React__default.createElement(Stack, {
|
15912
16198
|
display: "flex",
|
15913
16199
|
justifyContent: "end"
|
15914
16200
|
}, React__default.createElement(Typography, {
|
@@ -15918,7 +16204,7 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15918
16204
|
color: "#97A1AF",
|
15919
16205
|
textAlign: "end"
|
15920
16206
|
}
|
15921
|
-
}, utcToLocalTime(
|
16207
|
+
}, utcToLocalTime(note === null || note === void 0 ? void 0 : note.createdAt, t("date_format"))), React__default.createElement(Typography, {
|
15922
16208
|
sx: {
|
15923
16209
|
fontSize: "12px",
|
15924
16210
|
fontWeight: "500",
|
@@ -15926,11 +16212,819 @@ var NoteDrawer = function NoteDrawer(props) {
|
|
15926
16212
|
textAlign: "end"
|
15927
16213
|
}
|
15928
16214
|
}, academy === null || academy === void 0 ? void 0 : academy.name))), React__default.createElement(NoteContent, {
|
15929
|
-
content: (
|
16215
|
+
content: (_note$content = note === null || note === void 0 ? void 0 : note.content) != null ? _note$content : ""
|
15930
16216
|
})));
|
15931
16217
|
};
|
15932
16218
|
|
15933
|
-
var
|
16219
|
+
var TEACHER_URL = BASE_URL + "/api/teacher";
|
16220
|
+
var getTeacherListApi = function getTeacherListApi(query) {
|
16221
|
+
return api.get("" + TEACHER_URL, {
|
16222
|
+
params: query
|
16223
|
+
});
|
16224
|
+
};
|
16225
|
+
|
16226
|
+
var TeacherSelector$1 = function TeacherSelector(_ref) {
|
16227
|
+
var value = _ref.value,
|
16228
|
+
onChange = _ref.onChange,
|
16229
|
+
placeholder = _ref.placeholder,
|
16230
|
+
externalTeacherIds = _ref.externalTeacherIds,
|
16231
|
+
title = _ref.title,
|
16232
|
+
isMultiple = _ref.isMultiple,
|
16233
|
+
_ref$isClearable = _ref.isClearable,
|
16234
|
+
isClearable = _ref$isClearable === void 0 ? true : _ref$isClearable,
|
16235
|
+
useUserId = _ref.useUserId,
|
16236
|
+
exceptMe = _ref.exceptMe,
|
16237
|
+
isDisabled = _ref.isDisabled;
|
16238
|
+
var _useState = useState([]),
|
16239
|
+
teachers = _useState[0],
|
16240
|
+
setTeachers = _useState[1];
|
16241
|
+
var _useState2 = useState(""),
|
16242
|
+
searchString = _useState2[0],
|
16243
|
+
setSearchString = _useState2[1];
|
16244
|
+
var _useState3 = useState(false),
|
16245
|
+
isLoading = _useState3[0],
|
16246
|
+
setLoading = _useState3[1];
|
16247
|
+
var _useTranslation = useTranslation(),
|
16248
|
+
t = _useTranslation.t;
|
16249
|
+
var debounceSearch = useCallback(_$8.debounce(function (value) {
|
16250
|
+
loadData(value);
|
16251
|
+
}, 500), []);
|
16252
|
+
var handleChangeSearchText = function handleChangeSearchText(value) {
|
16253
|
+
setSearchString(value.trim());
|
16254
|
+
debounceSearch(value.trim());
|
16255
|
+
};
|
16256
|
+
var loadData = function loadData(textSearch) {
|
16257
|
+
try {
|
16258
|
+
var _temp2 = function _temp2() {
|
16259
|
+
setLoading(false);
|
16260
|
+
};
|
16261
|
+
setLoading(true);
|
16262
|
+
var _temp = _catch(function () {
|
16263
|
+
return Promise.resolve(getTeacherListApi({
|
16264
|
+
textSearch: textSearch,
|
16265
|
+
pageSize: 100,
|
16266
|
+
currentPage: 1,
|
16267
|
+
exceptMe: exceptMe,
|
16268
|
+
sortColumnDirection: OrderType.DESC,
|
16269
|
+
sortColumnName: "User.UserProfile.FullName"
|
16270
|
+
})).then(function (res) {
|
16271
|
+
var _res$data$items = res.data.items,
|
16272
|
+
items = _res$data$items === void 0 ? [] : _res$data$items;
|
16273
|
+
setTeachers(items);
|
16274
|
+
});
|
16275
|
+
}, function (err) {
|
16276
|
+
toast.error(getErrorMessage(t, err));
|
16277
|
+
});
|
16278
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
16279
|
+
} catch (e) {
|
16280
|
+
return Promise.reject(e);
|
16281
|
+
}
|
16282
|
+
};
|
16283
|
+
useEffect(function () {
|
16284
|
+
loadData();
|
16285
|
+
}, []);
|
16286
|
+
var options = teachers.filter(function (teacher) {
|
16287
|
+
return !externalTeacherIds || externalTeacherIds && !externalTeacherIds.includes(teacher.id);
|
16288
|
+
}).map(function (teacher) {
|
16289
|
+
return {
|
16290
|
+
label: teacher.teacherName + " - " + teacher.teacherEmail,
|
16291
|
+
value: useUserId ? teacher.teacherUserId : teacher.id
|
16292
|
+
};
|
16293
|
+
});
|
16294
|
+
return React__default.createElement(FormGroup, {
|
16295
|
+
className: "" + styles["filter-item"]
|
16296
|
+
}, !!title && React__default.createElement("label", {
|
16297
|
+
className: "" + styles["title-form"]
|
16298
|
+
}, title), React__default.createElement(CustomSelectOption, {
|
16299
|
+
options: options,
|
16300
|
+
onInputChange: function onInputChange(inputValue) {
|
16301
|
+
return handleChangeSearchText(inputValue);
|
16302
|
+
},
|
16303
|
+
isLoading: isLoading,
|
16304
|
+
placeholder: placeholder || t('select_placeholder'),
|
16305
|
+
isMulti: isMultiple,
|
16306
|
+
value: value,
|
16307
|
+
inputValue: searchString,
|
16308
|
+
onChange: onChange,
|
16309
|
+
isClearable: isClearable,
|
16310
|
+
isDisabled: isDisabled
|
16311
|
+
}));
|
16312
|
+
};
|
16313
|
+
|
16314
|
+
var schema$3 = object().shape({
|
16315
|
+
content: string().trim().required(),
|
16316
|
+
studentId: number().when("type", {
|
16317
|
+
is: function is(type) {
|
16318
|
+
return type == NoteType.ToAcademy || type == NoteType.ToStudent;
|
16319
|
+
},
|
16320
|
+
then: function then(schema) {
|
16321
|
+
return schema.required("student_required");
|
16322
|
+
},
|
16323
|
+
otherwise: function otherwise(schema) {
|
16324
|
+
return schema.notRequired();
|
16325
|
+
}
|
16326
|
+
}),
|
16327
|
+
userIds: array().of(number()).when("type", {
|
16328
|
+
is: function is(type) {
|
16329
|
+
return type == NoteType.TeacherToTeachers;
|
16330
|
+
},
|
16331
|
+
then: function then(schema) {
|
16332
|
+
return schema.required("teachers_required");
|
16333
|
+
},
|
16334
|
+
otherwise: function otherwise(schema) {
|
16335
|
+
return schema.notRequired();
|
16336
|
+
}
|
16337
|
+
}),
|
16338
|
+
type: number()
|
16339
|
+
});
|
16340
|
+
var GeneralNoteDialog = function GeneralNoteDialog(_ref) {
|
16341
|
+
var _selectedNote$recieve, _selectedNote$recieve2, _selectedNote$recieve3;
|
16342
|
+
var open = _ref.open,
|
16343
|
+
type = _ref.type,
|
16344
|
+
selectedNote = _ref.selectedNote,
|
16345
|
+
value = _ref.value,
|
16346
|
+
onClose = _ref.onClose,
|
16347
|
+
onSaveNote = _ref.onSaveNote;
|
16348
|
+
var _useTranslation = useTranslation(),
|
16349
|
+
t = _useTranslation.t;
|
16350
|
+
var handleSaveNote = function handleSaveNote(val) {
|
16351
|
+
onSaveNote(val);
|
16352
|
+
};
|
16353
|
+
var tip = useMemo(function () {
|
16354
|
+
if (type === undefined) return "";
|
16355
|
+
switch (type) {
|
16356
|
+
case NoteType.ToAcademy:
|
16357
|
+
return "academy";
|
16358
|
+
case NoteType.ToStudent:
|
16359
|
+
return "student_parents";
|
16360
|
+
case NoteType.AdminToAllAdmin:
|
16361
|
+
case NoteType.AdminToAllTeacher:
|
16362
|
+
case NoteType.TeacherToAllAdmin:
|
16363
|
+
return "admin";
|
16364
|
+
case NoteType.TeacherToTeachers:
|
16365
|
+
return "teacher";
|
16366
|
+
default:
|
16367
|
+
return "";
|
16368
|
+
}
|
16369
|
+
}, [type]);
|
16370
|
+
return React__default.createElement(Dialog, {
|
16371
|
+
onClose: onClose,
|
16372
|
+
open: open,
|
16373
|
+
maxWidth: "md",
|
16374
|
+
scroll: "body",
|
16375
|
+
fullWidth: true,
|
16376
|
+
disableEnforceFocus: true,
|
16377
|
+
disableAutoFocus: true
|
16378
|
+
}, React__default.createElement(DialogTitle$1, {
|
16379
|
+
id: "customized-dialog-title"
|
16380
|
+
}, React__default.createElement(Typography$1, {
|
16381
|
+
fontWeight: 700,
|
16382
|
+
fontSize: "16px",
|
16383
|
+
lineHeight: "19.09px",
|
16384
|
+
color: "#202B37"
|
16385
|
+
}, t(type === NoteType.ToAcademy || type === NoteType.ToStudent ? selectedNote ? "edit_student_note" : "student_note_taking" : "note"), tip ? " " + t(tip) : "")), React__default.createElement(IconButton$1, {
|
16386
|
+
"aria-label": "close",
|
16387
|
+
sx: {
|
16388
|
+
position: "absolute",
|
16389
|
+
right: 8,
|
16390
|
+
top: 8,
|
16391
|
+
color: function color(theme) {
|
16392
|
+
return theme.palette.grey[500];
|
16393
|
+
}
|
16394
|
+
},
|
16395
|
+
onClick: onClose
|
16396
|
+
}, React__default.createElement(iconCloseDialog, null)), React__default.createElement(Formik, {
|
16397
|
+
initialValues: {
|
16398
|
+
content: value ? value.content : (selectedNote === null || selectedNote === void 0 ? void 0 : selectedNote.content) || "",
|
16399
|
+
type: type,
|
16400
|
+
studentId: value ? value.studentId : selectedNote === null || selectedNote === void 0 ? void 0 : (_selectedNote$recieve = selectedNote.reciever) === null || _selectedNote$recieve === void 0 ? void 0 : _selectedNote$recieve.id,
|
16401
|
+
student: value ? value.student : selectedNote !== null && selectedNote !== void 0 && selectedNote.reciever ? {
|
16402
|
+
label: selectedNote.reciever.fullName,
|
16403
|
+
value: selectedNote.reciever.id
|
16404
|
+
} : undefined,
|
16405
|
+
userIds: value ? value.userIds : selectedNote === null || selectedNote === void 0 ? void 0 : (_selectedNote$recieve2 = selectedNote.recievers) === null || _selectedNote$recieve2 === void 0 ? void 0 : _selectedNote$recieve2.map(function (i) {
|
16406
|
+
return i.id;
|
16407
|
+
}),
|
16408
|
+
users: value ? value.users : selectedNote === null || selectedNote === void 0 ? void 0 : (_selectedNote$recieve3 = selectedNote.recievers) === null || _selectedNote$recieve3 === void 0 ? void 0 : _selectedNote$recieve3.map(function (i) {
|
16409
|
+
return {
|
16410
|
+
label: i.fullName,
|
16411
|
+
value: i.id
|
16412
|
+
};
|
16413
|
+
})
|
16414
|
+
},
|
16415
|
+
validationSchema: schema$3,
|
16416
|
+
enableReinitialize: true,
|
16417
|
+
onSubmit: handleSaveNote
|
16418
|
+
}, function (_ref2) {
|
16419
|
+
var _selectedNote$recieve4;
|
16420
|
+
var values = _ref2.values,
|
16421
|
+
errors = _ref2.errors,
|
16422
|
+
setFieldValue = _ref2.setFieldValue;
|
16423
|
+
return React__default.createElement(Form, null, React__default.createElement(DialogContent$1, {
|
16424
|
+
sx: {
|
16425
|
+
padding: 0,
|
16426
|
+
overflowY: "auto"
|
16427
|
+
}
|
16428
|
+
}, React__default.createElement(Box, {
|
16429
|
+
display: "flex",
|
16430
|
+
flexDirection: "column",
|
16431
|
+
gap: "8px",
|
16432
|
+
padding: "24px 24px 40px 24px"
|
16433
|
+
}, (type === NoteType.ToAcademy || type === NoteType.ToStudent) && React__default.createElement(Stack, null, React__default.createElement("label", {
|
16434
|
+
htmlFor: "student",
|
16435
|
+
className: styles["form-label"] + " " + styles$5["form-label-dialog"]
|
16436
|
+
}, t("student_name")), selectedNote ? React__default.createElement(Typography$1, {
|
16437
|
+
sx: {
|
16438
|
+
fontWeight: 700,
|
16439
|
+
fontSize: "14px",
|
16440
|
+
color: "rgba(61, 198, 116, 1)"
|
16441
|
+
}
|
16442
|
+
}, (_selectedNote$recieve4 = selectedNote.reciever) === null || _selectedNote$recieve4 === void 0 ? void 0 : _selectedNote$recieve4.fullName) : React__default.createElement(Field, {
|
16443
|
+
id: "student",
|
16444
|
+
style: {
|
16445
|
+
width: "100%"
|
16446
|
+
},
|
16447
|
+
name: "student",
|
16448
|
+
className: styles["form-control"],
|
16449
|
+
render: function render(_ref3) {
|
16450
|
+
var field = _ref3.field;
|
16451
|
+
return React__default.createElement(StudentSelector, {
|
16452
|
+
value: field.value,
|
16453
|
+
onChange: function (val) {
|
16454
|
+
try {
|
16455
|
+
return Promise.resolve(setFieldValue("studentId", val === null || val === void 0 ? void 0 : val.value)).then(function () {
|
16456
|
+
return Promise.resolve(setFieldValue("student", val)).then(function () {});
|
16457
|
+
});
|
16458
|
+
} catch (e) {
|
16459
|
+
return Promise.reject(e);
|
16460
|
+
}
|
16461
|
+
},
|
16462
|
+
isMulti: false
|
16463
|
+
});
|
16464
|
+
}
|
16465
|
+
}), !!errors.studentId && React__default.createElement(Typography$1, {
|
16466
|
+
fontWeight: 500,
|
16467
|
+
fontSize: "10px",
|
16468
|
+
lineHeight: "11.93px",
|
16469
|
+
mt: 1,
|
16470
|
+
color: "#F34B4B"
|
16471
|
+
}, t(errors.studentId))), (type === NoteType.AdminToAllAdmin || type === NoteType.AdminToAllTeacher) && React__default.createElement(FormControl, {
|
16472
|
+
className: "w-100"
|
16473
|
+
}, React__default.createElement(FormLabel, {
|
16474
|
+
className: "fw-medium",
|
16475
|
+
id: "type"
|
16476
|
+
}, t("receivers")), React__default.createElement(RadioGroup, {
|
16477
|
+
className: "flex-row flex-wrap"
|
16478
|
+
}, React__default.createElement(FormControlLabel, {
|
16479
|
+
control: React__default.createElement(Radio, {
|
16480
|
+
checked: values.type === NoteType.AdminToAllAdmin || values.type === NoteType.TeacherToAllAdmin,
|
16481
|
+
onChange: function onChange(_) {
|
16482
|
+
return setFieldValue("type", NoteType.AdminToAllAdmin);
|
16483
|
+
}
|
16484
|
+
}),
|
16485
|
+
label: t("admin")
|
16486
|
+
}), React__default.createElement(FormControlLabel, {
|
16487
|
+
control: React__default.createElement(Radio, {
|
16488
|
+
checked: values.type === NoteType.AdminToAllTeacher,
|
16489
|
+
onChange: function onChange(_) {
|
16490
|
+
return setFieldValue("type", NoteType.AdminToAllTeacher);
|
16491
|
+
}
|
16492
|
+
}),
|
16493
|
+
label: t("teacher")
|
16494
|
+
}))), type === NoteType.TeacherToTeachers && React__default.createElement(Stack, null, React__default.createElement("label", {
|
16495
|
+
htmlFor: "teachers",
|
16496
|
+
className: styles["form-label"] + " " + styles$5["form-label-dialog"]
|
16497
|
+
}, t("teachers")), React__default.createElement(Field, {
|
16498
|
+
id: "users",
|
16499
|
+
style: {
|
16500
|
+
width: "100%"
|
16501
|
+
},
|
16502
|
+
name: "users",
|
16503
|
+
className: styles["form-control"],
|
16504
|
+
render: function render(_ref4) {
|
16505
|
+
var field = _ref4.field;
|
16506
|
+
return React__default.createElement(TeacherSelector$1, {
|
16507
|
+
value: field.value,
|
16508
|
+
onChange: function (val) {
|
16509
|
+
try {
|
16510
|
+
var _val$map, _val$map2;
|
16511
|
+
return Promise.resolve(setFieldValue("userIds", (_val$map = val === null || val === void 0 ? void 0 : (_val$map2 = val.map) === null || _val$map2 === void 0 ? void 0 : _val$map2.call(val, function (i) {
|
16512
|
+
return i.value;
|
16513
|
+
})) != null ? _val$map : [])).then(function () {
|
16514
|
+
return Promise.resolve(setFieldValue("users", val != null ? val : [])).then(function () {});
|
16515
|
+
});
|
16516
|
+
} catch (e) {
|
16517
|
+
return Promise.reject(e);
|
16518
|
+
}
|
16519
|
+
},
|
16520
|
+
isDisabled: !!selectedNote,
|
16521
|
+
exceptMe: true,
|
16522
|
+
isMultiple: true,
|
16523
|
+
useUserId: true
|
16524
|
+
});
|
16525
|
+
}
|
16526
|
+
}), !!errors.userIds && React__default.createElement(Typography$1, {
|
16527
|
+
fontWeight: 500,
|
16528
|
+
fontSize: "10px",
|
16529
|
+
lineHeight: "11.93px",
|
16530
|
+
mt: 1,
|
16531
|
+
color: "#F34B4B"
|
16532
|
+
}, t(errors.userIds))), React__default.createElement(Stack, null, React__default.createElement("label", {
|
16533
|
+
htmlFor: "content-question",
|
16534
|
+
className: styles["form-label"] + " " + styles$5["form-label-dialog"]
|
16535
|
+
}, t("incorrect_answer_note_contents")), React__default.createElement(Box, {
|
16536
|
+
position: "relative",
|
16537
|
+
display: "flex",
|
16538
|
+
flexDirection: "row",
|
16539
|
+
alignItems: "center"
|
16540
|
+
}, React__default.createElement(Field, {
|
16541
|
+
id: "content-question",
|
16542
|
+
style: {
|
16543
|
+
width: "100%"
|
16544
|
+
},
|
16545
|
+
name: "content",
|
16546
|
+
placeholder: t("the_problem_is_difficult"),
|
16547
|
+
className: styles["form-control"],
|
16548
|
+
render: function render(_ref5) {
|
16549
|
+
var field = _ref5.field;
|
16550
|
+
return React__default.createElement(NoteTinyEditor, {
|
16551
|
+
initValue: field.value,
|
16552
|
+
onChange: function onChange(text) {
|
16553
|
+
return setFieldValue("content", text);
|
16554
|
+
}
|
16555
|
+
});
|
16556
|
+
}
|
16557
|
+
})), !!errors.content && React__default.createElement(Typography$1, {
|
16558
|
+
fontWeight: 500,
|
16559
|
+
fontSize: "10px",
|
16560
|
+
lineHeight: "11.93px",
|
16561
|
+
mt: 1,
|
16562
|
+
color: "#F34B4B"
|
16563
|
+
}, t(errors.content)), React__default.createElement(Box, {
|
16564
|
+
marginBottom: "4px"
|
16565
|
+
})))), React__default.createElement(DialogActions$1, {
|
16566
|
+
sx: {
|
16567
|
+
display: "flex",
|
16568
|
+
justifyContent: "space-between",
|
16569
|
+
alignItems: "center",
|
16570
|
+
padding: "12px",
|
16571
|
+
borderTop: "1px solid #CED2DA"
|
16572
|
+
}
|
16573
|
+
}, React__default.createElement(MButton, {
|
16574
|
+
className: styles$5["btn-cancel"],
|
16575
|
+
onClick: onClose
|
16576
|
+
}, React__default.createElement(Typography$1, {
|
16577
|
+
sx: {
|
16578
|
+
color: styles.dark + " !important"
|
16579
|
+
},
|
16580
|
+
fontWeight: 700,
|
16581
|
+
fontSize: "14px",
|
16582
|
+
lineHeight: "16.71px"
|
16583
|
+
}, t("cancel"))), React__default.createElement(MButton, {
|
16584
|
+
variant: "contained",
|
16585
|
+
sx: {
|
16586
|
+
bgcolor: styles.dark
|
16587
|
+
},
|
16588
|
+
className: styles$5["btn-register"],
|
16589
|
+
type: "submit"
|
16590
|
+
}, React__default.createElement(Typography$1, {
|
16591
|
+
fontWeight: 700,
|
16592
|
+
fontSize: "14px",
|
16593
|
+
lineHeight: "16.71px",
|
16594
|
+
color: "#FFFFFF"
|
16595
|
+
}, t("registration")))));
|
16596
|
+
}));
|
16597
|
+
};
|
16598
|
+
|
16599
|
+
var NoteList = function NoteList(_ref) {
|
16600
|
+
var defaultFilter = _ref.defaultFilter,
|
16601
|
+
role = _ref.role,
|
16602
|
+
headers = _ref.headers,
|
16603
|
+
isAdmin = _ref.isAdmin;
|
16604
|
+
var _useTranslation = useTranslation(),
|
16605
|
+
t = _useTranslation.t;
|
16606
|
+
var _useList = useList(function (filter) {
|
16607
|
+
return getNotesApi(filter);
|
16608
|
+
}, defaultFilter, false),
|
16609
|
+
isLoading = _useList.isLoading,
|
16610
|
+
filter = _useList.filter,
|
16611
|
+
textSearchRef = _useList.textSearchRef,
|
16612
|
+
paging = _useList.paging,
|
16613
|
+
data = _useList.data,
|
16614
|
+
selectedItem = _useList.selectedItem,
|
16615
|
+
handleSort = _useList.handleSort,
|
16616
|
+
handleChangeSearchText = _useList.handleChangeSearchText,
|
16617
|
+
handleChangePage = _useList.handleChangePage,
|
16618
|
+
calcOrderNumber = _useList.calcOrderNumber,
|
16619
|
+
handleChangeSelectedItem = _useList.handleChangeSelectedItem,
|
16620
|
+
getData = _useList.getData;
|
16621
|
+
var dispatch = useDispatch();
|
16622
|
+
var _useState = useState(false),
|
16623
|
+
openNoteViewDrawer = _useState[0],
|
16624
|
+
setOpenNoteViewDrawer = _useState[1];
|
16625
|
+
var _useState2 = useState(),
|
16626
|
+
openNoteDialog = _useState2[0],
|
16627
|
+
setOpenNoteDialog = _useState2[1];
|
16628
|
+
var _useState3 = useState(),
|
16629
|
+
noteRequest = _useState3[0],
|
16630
|
+
setNoteRequest = _useState3[1];
|
16631
|
+
var _useState4 = useState(false),
|
16632
|
+
openConfirmNote = _useState4[0],
|
16633
|
+
setOpenConfirmNote = _useState4[1];
|
16634
|
+
var _useState5 = useState(false),
|
16635
|
+
openDeleteNoteDialog = _useState5[0],
|
16636
|
+
setOpenDeleteNoteDialog = _useState5[1];
|
16637
|
+
var handleOpenCreateNoteDialog = function handleOpenCreateNoteDialog() {
|
16638
|
+
var _defaultFilter$types;
|
16639
|
+
if (((_defaultFilter$types = defaultFilter.types) === null || _defaultFilter$types === void 0 ? void 0 : _defaultFilter$types.length) === 1) setOpenNoteDialog(defaultFilter.types[0]);else if (defaultFilter.types && defaultFilter.types.length > 1) {
|
16640
|
+
setOpenNoteDialog(isAdmin ? NoteType.AdminToAllAdmin : NoteType.TeacherToAllAdmin);
|
16641
|
+
}
|
16642
|
+
};
|
16643
|
+
var handleCloseDeleteDialog = function handleCloseDeleteDialog() {
|
16644
|
+
setOpenDeleteNoteDialog(false);
|
16645
|
+
};
|
16646
|
+
var handleOpenDeleteNoteDialog = function handleOpenDeleteNoteDialog(note) {
|
16647
|
+
handleChangeSelectedItem(note);
|
16648
|
+
setOpenDeleteNoteDialog(true);
|
16649
|
+
};
|
16650
|
+
var handleOpenNoteDrawer = function handleOpenNoteDrawer(note) {
|
16651
|
+
setOpenNoteViewDrawer(true);
|
16652
|
+
handleChangeSelectedItem(note);
|
16653
|
+
};
|
16654
|
+
var handleCloseNoteDrawer = function handleCloseNoteDrawer() {
|
16655
|
+
setOpenNoteViewDrawer(false);
|
16656
|
+
handleChangeSelectedItem(undefined);
|
16657
|
+
};
|
16658
|
+
var handleCloseConfirmStudentNoteDialog = function handleCloseConfirmStudentNoteDialog() {
|
16659
|
+
setOpenConfirmNote(false);
|
16660
|
+
};
|
16661
|
+
var handleOpenNoteDialog = function handleOpenNoteDialog(note) {
|
16662
|
+
handleChangeSelectedItem(note);
|
16663
|
+
setOpenNoteDialog(note.type);
|
16664
|
+
};
|
16665
|
+
var handleCloseNoteDialog = function handleCloseNoteDialog() {
|
16666
|
+
handleChangeSelectedItem(undefined);
|
16667
|
+
setOpenNoteDialog(undefined);
|
16668
|
+
setNoteRequest(undefined);
|
16669
|
+
};
|
16670
|
+
var handleOpenConfirmStudentNoteDialog = function handleOpenConfirmStudentNoteDialog(note) {
|
16671
|
+
setNoteRequest(note);
|
16672
|
+
setOpenConfirmNote(true);
|
16673
|
+
};
|
16674
|
+
var handleSaveNote = function handleSaveNote(noteRequest) {
|
16675
|
+
try {
|
16676
|
+
var _temp4 = function _temp4() {
|
16677
|
+
dispatch(setLoading(false));
|
16678
|
+
};
|
16679
|
+
if (openNoteDialog === undefined) return Promise.resolve();
|
16680
|
+
if (noteRequest.content.trim().length === 0) return Promise.resolve();
|
16681
|
+
dispatch(setLoading(true));
|
16682
|
+
var _temp3 = _catch(function () {
|
16683
|
+
function _temp2() {
|
16684
|
+
getData();
|
16685
|
+
reset();
|
16686
|
+
}
|
16687
|
+
var _temp = function () {
|
16688
|
+
if (selectedItem) {
|
16689
|
+
return Promise.resolve(updateNoteDataApi(selectedItem.id, noteRequest)).then(function () {
|
16690
|
+
toast.success(t("update_note_successfully"));
|
16691
|
+
});
|
16692
|
+
} else {
|
16693
|
+
return Promise.resolve(createNoteApi(noteRequest)).then(function () {
|
16694
|
+
toast.success(t("create_note_successfully"));
|
16695
|
+
});
|
16696
|
+
}
|
16697
|
+
}();
|
16698
|
+
return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
|
16699
|
+
}, function (error) {
|
16700
|
+
toast.error(getErrorMessage(t, error));
|
16701
|
+
});
|
16702
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
16703
|
+
} catch (e) {
|
16704
|
+
return Promise.reject(e);
|
16705
|
+
}
|
16706
|
+
};
|
16707
|
+
var handleDeleteNote = function handleDeleteNote() {
|
16708
|
+
try {
|
16709
|
+
var _temp6 = function _temp6() {
|
16710
|
+
dispatch(setLoading(false));
|
16711
|
+
};
|
16712
|
+
if (!(selectedItem !== null && selectedItem !== void 0 && selectedItem.id)) return Promise.resolve();
|
16713
|
+
dispatch(setLoading(true));
|
16714
|
+
var _temp5 = _catch(function () {
|
16715
|
+
return Promise.resolve(deleteNoteApi(selectedItem.id)).then(function () {
|
16716
|
+
toast.success(t("delete_note_successfully"));
|
16717
|
+
getData();
|
16718
|
+
reset();
|
16719
|
+
});
|
16720
|
+
}, function (error) {
|
16721
|
+
toast.error(getErrorMessage(t, error));
|
16722
|
+
});
|
16723
|
+
return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5));
|
16724
|
+
} catch (e) {
|
16725
|
+
return Promise.reject(e);
|
16726
|
+
}
|
16727
|
+
};
|
16728
|
+
var reset = function reset() {
|
16729
|
+
handleCloseNoteDialog();
|
16730
|
+
setOpenDeleteNoteDialog(false);
|
16731
|
+
setOpenConfirmNote(false);
|
16732
|
+
setNoteRequest(undefined);
|
16733
|
+
};
|
16734
|
+
var handleSaveNoteDialog = openNoteDialog === NoteType.ToStudent && !(selectedItem !== null && selectedItem !== void 0 && selectedItem.id) ? handleOpenConfirmStudentNoteDialog : handleSaveNote;
|
16735
|
+
var handleSaveStudentNote = function handleSaveStudentNote() {
|
16736
|
+
if (!noteRequest) return;
|
16737
|
+
handleSaveNote(noteRequest);
|
16738
|
+
};
|
16739
|
+
return React__default.createElement(Box, {
|
16740
|
+
width: "100%"
|
16741
|
+
}, React__default.createElement(Grid, {
|
16742
|
+
container: true
|
16743
|
+
}, React__default.createElement(Grid, {
|
16744
|
+
item: true,
|
16745
|
+
xs: 6,
|
16746
|
+
className: "d-flex mb-3"
|
16747
|
+
}, React__default.createElement(SearchInput, {
|
16748
|
+
placeholder: t("search_for"),
|
16749
|
+
textSearchRef: textSearchRef,
|
16750
|
+
onChange: handleChangeSearchText
|
16751
|
+
})), React__default.createElement(Grid, {
|
16752
|
+
item: true,
|
16753
|
+
xs: 6,
|
16754
|
+
className: "d-flex justify-content-end align-items-center"
|
16755
|
+
}, React__default.createElement(Button, {
|
16756
|
+
variant: "contained",
|
16757
|
+
sx: {
|
16758
|
+
bgcolor: green[700]
|
16759
|
+
},
|
16760
|
+
startIcon: React__default.createElement(FaPlus, {
|
16761
|
+
size: 12
|
16762
|
+
}),
|
16763
|
+
onClick: handleOpenCreateNoteDialog
|
16764
|
+
}, t("new_note"))), React__default.createElement(Grid, {
|
16765
|
+
item: true,
|
16766
|
+
xs: 12
|
16767
|
+
}, React__default.createElement(TableContainer, null, React__default.createElement(Table, null, React__default.createElement(TableHead, null, React__default.createElement(TableRow, null, headers.map(function (i, index) {
|
16768
|
+
return React__default.createElement(TableCell, {
|
16769
|
+
key: index,
|
16770
|
+
onClick: !!i.sortKey ? function () {
|
16771
|
+
return handleSort(i.sortKey);
|
16772
|
+
} : undefined,
|
16773
|
+
className: "" + (!!i.sortKey && "pointer")
|
16774
|
+
}, React__default.createElement("div", {
|
16775
|
+
className: "d-flex justify-content-between align-items-center text-nowrap"
|
16776
|
+
}, t(i.title), !!i.sortKey && React__default.createElement(SortIcon, {
|
16777
|
+
isAscending: filter.sortColumnName !== i.sortKey ? undefined : filter.sortColumnDirection === OrderType.ASC
|
16778
|
+
})));
|
16779
|
+
}))), React__default.createElement(TableBody, null, React__default.createElement(ListView, {
|
16780
|
+
data: data,
|
16781
|
+
render: function render(item, index) {
|
16782
|
+
return React__default.createElement(NoteItemList, {
|
16783
|
+
key: index,
|
16784
|
+
data: item,
|
16785
|
+
calcOrderNumber: calcOrderNumber,
|
16786
|
+
index: index,
|
16787
|
+
role: role,
|
16788
|
+
onDelete: handleOpenDeleteNoteDialog,
|
16789
|
+
onUpdate: handleOpenNoteDialog,
|
16790
|
+
onView: handleOpenNoteDrawer
|
16791
|
+
});
|
16792
|
+
}
|
16793
|
+
}), !data.length && !isLoading && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
|
16794
|
+
colSpan: 12,
|
16795
|
+
className: "text-center text-muted"
|
16796
|
+
}, t("no_data"))), isLoading && React__default.createElement(TableRow, null, React__default.createElement(TableCell, {
|
16797
|
+
colSpan: 12
|
16798
|
+
}, React__default.createElement(Stack, {
|
16799
|
+
justifyContent: "center",
|
16800
|
+
alignItems: "center",
|
16801
|
+
width: "100%"
|
16802
|
+
}, React__default.createElement(CircularProgress, {
|
16803
|
+
size: 24
|
16804
|
+
}))))))), React__default.createElement("div", {
|
16805
|
+
className: "d-flex justify-content-end mt-3"
|
16806
|
+
}, !!paging.totalPages && React__default.createElement(Pagination, {
|
16807
|
+
count: paging.totalPages,
|
16808
|
+
page: paging.page,
|
16809
|
+
onChange: handleChangePage
|
16810
|
+
})))), React__default.createElement(NoteDrawer, {
|
16811
|
+
open: !!openNoteViewDrawer,
|
16812
|
+
data: selectedItem,
|
16813
|
+
student: selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.reciever,
|
16814
|
+
width: "80dvw",
|
16815
|
+
onClose: handleCloseNoteDrawer,
|
16816
|
+
anchor: "right"
|
16817
|
+
}), React__default.createElement(GeneralNoteDialog, {
|
16818
|
+
open: openNoteDialog !== undefined,
|
16819
|
+
type: openNoteDialog,
|
16820
|
+
onClose: handleCloseNoteDialog,
|
16821
|
+
onSaveNote: handleSaveNoteDialog,
|
16822
|
+
selectedNote: selectedItem,
|
16823
|
+
value: noteRequest
|
16824
|
+
}), React__default.createElement(ConfirmDialog, {
|
16825
|
+
open: openConfirmNote,
|
16826
|
+
toggle: handleCloseConfirmStudentNoteDialog,
|
16827
|
+
onConfirm: handleSaveStudentNote,
|
16828
|
+
text: t("are_you_sure_to_create_student_parent_note"),
|
16829
|
+
zIndex: 1300
|
16830
|
+
}), React__default.createElement(ConfirmDeleteDialog, {
|
16831
|
+
open: openDeleteNoteDialog,
|
16832
|
+
toggle: handleCloseDeleteDialog,
|
16833
|
+
onConfirm: handleDeleteNote,
|
16834
|
+
text: t("are_you_sure_you_want_to_delete_the_note"),
|
16835
|
+
title: t("delete_note"),
|
16836
|
+
okText: t("delete_note"),
|
16837
|
+
cancelText: t("cancel")
|
16838
|
+
}));
|
16839
|
+
};
|
16840
|
+
|
16841
|
+
var NotetabPanel = function NotetabPanel(_ref) {
|
16842
|
+
var children = _ref.children,
|
16843
|
+
value = _ref.value,
|
16844
|
+
index = _ref.index;
|
16845
|
+
return React__default.createElement("div", {
|
16846
|
+
role: "tabpanel",
|
16847
|
+
hidden: value !== index,
|
16848
|
+
id: "tabpanel-" + index,
|
16849
|
+
"aria-labelledby": "tab-" + index
|
16850
|
+
}, value === index && React__default.createElement(Box, {
|
16851
|
+
sx: {
|
16852
|
+
p: 2
|
16853
|
+
}
|
16854
|
+
}, React__default.createElement(Typography, null, children)));
|
16855
|
+
};
|
16856
|
+
|
16857
|
+
var NOTE_STUDENT_HEADERS = [{
|
16858
|
+
title: "#"
|
16859
|
+
}, {
|
16860
|
+
title: "sender",
|
16861
|
+
sortKey: "User.UserProfile.FullName"
|
16862
|
+
}, {
|
16863
|
+
title: "student",
|
16864
|
+
sortKey: "Student.UserProfile.FullName"
|
16865
|
+
}, {
|
16866
|
+
title: "content"
|
16867
|
+
}, {
|
16868
|
+
title: "type"
|
16869
|
+
}, {
|
16870
|
+
title: "created_at",
|
16871
|
+
sortKey: "CreatedAt"
|
16872
|
+
}, {
|
16873
|
+
title: "actions"
|
16874
|
+
}];
|
16875
|
+
var NOTE_TEACHER_HEADERS = [{
|
16876
|
+
title: "#"
|
16877
|
+
}, {
|
16878
|
+
title: "sender",
|
16879
|
+
sortKey: "User.UserProfile.FullName"
|
16880
|
+
}, {
|
16881
|
+
title: "receivers"
|
16882
|
+
}, {
|
16883
|
+
title: "content"
|
16884
|
+
}, {
|
16885
|
+
title: "type"
|
16886
|
+
}, {
|
16887
|
+
title: "created_at",
|
16888
|
+
sortKey: "CreatedAt"
|
16889
|
+
}, {
|
16890
|
+
title: "actions"
|
16891
|
+
}];
|
16892
|
+
var NOTE_ADMIN_HEADERS = [{
|
16893
|
+
title: "#"
|
16894
|
+
}, {
|
16895
|
+
title: "sender",
|
16896
|
+
sortKey: "User.UserProfile.FullName"
|
16897
|
+
}, {
|
16898
|
+
title: "receivers"
|
16899
|
+
}, {
|
16900
|
+
title: "content"
|
16901
|
+
}, {
|
16902
|
+
title: "type"
|
16903
|
+
}, {
|
16904
|
+
title: "created_at",
|
16905
|
+
sortKey: "CreatedAt"
|
16906
|
+
}, {
|
16907
|
+
title: "actions"
|
16908
|
+
}];
|
16909
|
+
var ACADEMY_NOTE_FILTER = {
|
16910
|
+
currentPage: 1,
|
16911
|
+
pageSize: 12,
|
16912
|
+
sortColumnDirection: OrderType.DESC,
|
16913
|
+
sortColumnName: NoteSortColumn.CreatedAt,
|
16914
|
+
types: [NoteType.ToAcademy]
|
16915
|
+
};
|
16916
|
+
var STUDENT_PARENTS_NOTE_FILTER = {
|
16917
|
+
currentPage: 1,
|
16918
|
+
pageSize: 12,
|
16919
|
+
sortColumnDirection: OrderType.DESC,
|
16920
|
+
sortColumnName: NoteSortColumn.CreatedAt,
|
16921
|
+
types: [NoteType.ToStudent]
|
16922
|
+
};
|
16923
|
+
var ADMIN_TEACHER_NOTE_FILTER = {
|
16924
|
+
currentPage: 1,
|
16925
|
+
pageSize: 12,
|
16926
|
+
sortColumnDirection: OrderType.DESC,
|
16927
|
+
sortColumnName: NoteSortColumn.CreatedAt,
|
16928
|
+
types: [NoteType.TeacherToAllAdmin, NoteType.AdminToAllTeacher]
|
16929
|
+
};
|
16930
|
+
var ADMIN_NOTE_FILTER = {
|
16931
|
+
currentPage: 1,
|
16932
|
+
pageSize: 12,
|
16933
|
+
sortColumnDirection: OrderType.DESC,
|
16934
|
+
sortColumnName: NoteSortColumn.CreatedAt,
|
16935
|
+
types: [NoteType.TeacherToAllAdmin, NoteType.AdminToAllTeacher, NoteType.AdminToAllAdmin]
|
16936
|
+
};
|
16937
|
+
var TEACHER_NOTE_FILTER = {
|
16938
|
+
currentPage: 1,
|
16939
|
+
pageSize: 12,
|
16940
|
+
sortColumnDirection: OrderType.DESC,
|
16941
|
+
sortColumnName: NoteSortColumn.CreatedAt,
|
16942
|
+
types: [NoteType.TeacherToTeachers]
|
16943
|
+
};
|
16944
|
+
|
16945
|
+
var NoteTabs = function NoteTabs(_ref) {
|
16946
|
+
var role = _ref.role;
|
16947
|
+
var roles = useSelector(function (state) {
|
16948
|
+
var _state$common$user$ro, _state$common, _state$common$user;
|
16949
|
+
return (_state$common$user$ro = state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : (_state$common$user = _state$common.user) === null || _state$common$user === void 0 ? void 0 : _state$common$user.roles) != null ? _state$common$user$ro : [];
|
16950
|
+
});
|
16951
|
+
var isAdminUser = roles.includes(Role.Admin);
|
16952
|
+
var isAdmin = roles.includes(Role.Admin);
|
16953
|
+
var _useState = useState(0),
|
16954
|
+
value = _useState[0],
|
16955
|
+
setValue = _useState[1];
|
16956
|
+
var handleChange = function handleChange(_event, newValue) {
|
16957
|
+
setValue(newValue);
|
16958
|
+
};
|
16959
|
+
return React__default.createElement(Box, {
|
16960
|
+
sx: {
|
16961
|
+
width: "100%"
|
16962
|
+
}
|
16963
|
+
}, React__default.createElement(Tabs, {
|
16964
|
+
value: value,
|
16965
|
+
onChange: handleChange,
|
16966
|
+
sx: {
|
16967
|
+
"& .MuiTab-root": {
|
16968
|
+
color: grey[500],
|
16969
|
+
fontSize: "1rem"
|
16970
|
+
},
|
16971
|
+
"& .Mui-selected": {
|
16972
|
+
color: green[700] + "!important"
|
16973
|
+
},
|
16974
|
+
"& .MuiTabs-indicator": {
|
16975
|
+
backgroundColor: green[700]
|
16976
|
+
}
|
16977
|
+
}
|
16978
|
+
}, React__default.createElement(Tab, Object.assign({
|
16979
|
+
label: t$1("academy")
|
16980
|
+
}, a11yProps$1(0))), React__default.createElement(Tab, Object.assign({
|
16981
|
+
label: t$1("student_parents")
|
16982
|
+
}, a11yProps$1(1))), React__default.createElement(Tab, Object.assign({
|
16983
|
+
label: t$1("admin")
|
16984
|
+
}, a11yProps$1(2))), !isAdmin && !isAdminUser && React__default.createElement(Tab, Object.assign({
|
16985
|
+
label: t$1("teacher")
|
16986
|
+
}, a11yProps$1(3)))), React__default.createElement(NotetabPanel, {
|
16987
|
+
value: value,
|
16988
|
+
index: 0
|
16989
|
+
}, React__default.createElement(NoteList, {
|
16990
|
+
role: role,
|
16991
|
+
isAdmin: isAdmin,
|
16992
|
+
defaultFilter: ACADEMY_NOTE_FILTER,
|
16993
|
+
headers: NOTE_STUDENT_HEADERS
|
16994
|
+
})), React__default.createElement(NotetabPanel, {
|
16995
|
+
value: value,
|
16996
|
+
index: 1
|
16997
|
+
}, React__default.createElement(NoteList, {
|
16998
|
+
role: role,
|
16999
|
+
isAdmin: isAdmin,
|
17000
|
+
defaultFilter: STUDENT_PARENTS_NOTE_FILTER,
|
17001
|
+
headers: NOTE_STUDENT_HEADERS
|
17002
|
+
})), React__default.createElement(NotetabPanel, {
|
17003
|
+
value: value,
|
17004
|
+
index: 2
|
17005
|
+
}, React__default.createElement(NoteList, {
|
17006
|
+
role: role,
|
17007
|
+
isAdmin: isAdmin,
|
17008
|
+
defaultFilter: isAdmin ? ADMIN_NOTE_FILTER : ADMIN_TEACHER_NOTE_FILTER,
|
17009
|
+
headers: NOTE_ADMIN_HEADERS
|
17010
|
+
})), !isAdmin && !isAdminUser && React__default.createElement(NotetabPanel, {
|
17011
|
+
value: value,
|
17012
|
+
index: 3
|
17013
|
+
}, React__default.createElement(NoteList, {
|
17014
|
+
role: role,
|
17015
|
+
isAdmin: isAdmin,
|
17016
|
+
defaultFilter: TEACHER_NOTE_FILTER,
|
17017
|
+
headers: NOTE_TEACHER_HEADERS
|
17018
|
+
})));
|
17019
|
+
};
|
17020
|
+
function a11yProps$1(index) {
|
17021
|
+
return {
|
17022
|
+
id: "tab-" + index,
|
17023
|
+
"aria-controls": "tabpanel-" + index
|
17024
|
+
};
|
17025
|
+
}
|
17026
|
+
|
17027
|
+
var useVirtualList = function useVirtualList(defaultFilter, getItemsApi) {
|
15934
17028
|
var _useTranslation = useTranslation(),
|
15935
17029
|
t = _useTranslation.t;
|
15936
17030
|
var _useState = useState([]),
|
@@ -15944,7 +17038,7 @@ var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsA
|
|
15944
17038
|
setSelectedItem = _useState3[1];
|
15945
17039
|
var _useState4 = useState(false),
|
15946
17040
|
isLoading = _useState4[0],
|
15947
|
-
|
17041
|
+
setLoading = _useState4[1];
|
15948
17042
|
var _useState5 = useState(),
|
15949
17043
|
filter = _useState5[0],
|
15950
17044
|
setFilter = _useState5[1];
|
@@ -15954,18 +17048,16 @@ var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsA
|
|
15954
17048
|
var getItems = function getItems() {
|
15955
17049
|
try {
|
15956
17050
|
var _temp2 = function _temp2() {
|
15957
|
-
|
17051
|
+
setLoading(false);
|
15958
17052
|
};
|
15959
17053
|
if (isLoading) return Promise.resolve();
|
15960
17054
|
if (!filter || !filter.currentPage) {
|
15961
17055
|
setItems([]);
|
15962
17056
|
return Promise.resolve();
|
15963
17057
|
}
|
15964
|
-
|
17058
|
+
setLoading(true);
|
15965
17059
|
var _temp = _catch(function () {
|
15966
|
-
return Promise.resolve(getItemsApi(
|
15967
|
-
studentId: studentId
|
15968
|
-
}))).then(function (res) {
|
17060
|
+
return Promise.resolve(getItemsApi(filter)).then(function (res) {
|
15969
17061
|
var responseData = res.data;
|
15970
17062
|
setTotalPages((responseData === null || responseData === void 0 ? void 0 : responseData.totalPages) || 0);
|
15971
17063
|
var responseItems = (responseData === null || responseData === void 0 ? void 0 : responseData.items) || [];
|
@@ -16004,23 +17096,25 @@ var useVirtualList = function useVirtualList(studentId, defaultFilter, getItemsA
|
|
16004
17096
|
});
|
16005
17097
|
setItems(results);
|
16006
17098
|
};
|
16007
|
-
var handleItemRemoved = function handleItemRemoved(
|
16008
|
-
|
16009
|
-
|
16010
|
-
|
16011
|
-
|
17099
|
+
var handleItemRemoved = function handleItemRemoved(_item) {
|
17100
|
+
getItems();
|
17101
|
+
};
|
17102
|
+
var handleChangeFilter = function handleChangeFilter(newFilter) {
|
17103
|
+
setFilter(newFilter);
|
16012
17104
|
};
|
16013
17105
|
useEffect(function () {
|
16014
17106
|
setFilter(defaultFilter);
|
16015
17107
|
}, [JSON.stringify(defaultFilter)]);
|
16016
17108
|
useEffect(function () {
|
16017
17109
|
getItems();
|
16018
|
-
}, [JSON.stringify(filter)]);
|
17110
|
+
}, [JSON.stringify(filter), getItemsApi]);
|
16019
17111
|
return {
|
16020
17112
|
t: t,
|
17113
|
+
filter: filter,
|
16021
17114
|
selectedItem: selectedItem,
|
16022
17115
|
items: items,
|
16023
17116
|
isLoading: isLoading,
|
17117
|
+
handleChangeFilter: handleChangeFilter,
|
16024
17118
|
setItems: setItems,
|
16025
17119
|
handleChangeSelectedItem: handleChangeSelectedItem,
|
16026
17120
|
handleLoadMore: handleLoadMore,
|
@@ -16072,8 +17166,9 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16072
17166
|
var _useState6 = useState(),
|
16073
17167
|
noteIdContextMenu = _useState6[0],
|
16074
17168
|
setNoteIdContextMenu = _useState6[1];
|
16075
|
-
var _useVirtualList = useVirtualList(
|
16076
|
-
|
17169
|
+
var _useVirtualList = useVirtualList(_extends({}, DEFAULT_NOTE_FILTER, {
|
17170
|
+
types: [NoteType.ToAcademy],
|
17171
|
+
studentId: studentId
|
16077
17172
|
}), getNotesApi$1),
|
16078
17173
|
academyNotes = _useVirtualList.items,
|
16079
17174
|
isLoadingAcademyNotes = _useVirtualList.isLoading,
|
@@ -16083,8 +17178,9 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16083
17178
|
handleItemAddedAcademyNote = _useVirtualList.handleItemAdded,
|
16084
17179
|
handleItemUpdatedAcademyNote = _useVirtualList.handleItemUpdated,
|
16085
17180
|
handleChangeSelectedItem = _useVirtualList.handleChangeSelectedItem;
|
16086
|
-
var _useVirtualList2 = useVirtualList(
|
16087
|
-
|
17181
|
+
var _useVirtualList2 = useVirtualList(_extends({}, DEFAULT_NOTE_FILTER, {
|
17182
|
+
types: [NoteType.ToStudent],
|
17183
|
+
studentId: studentId
|
16088
17184
|
}), getNotesApi$1),
|
16089
17185
|
studentNotes = _useVirtualList2.items,
|
16090
17186
|
isLoadingStudentNotes = _useVirtualList2.isLoading,
|
@@ -16101,11 +17197,11 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16101
17197
|
};
|
16102
17198
|
var handleOpenCreateAcademyNoteDialog = function handleOpenCreateAcademyNoteDialog() {
|
16103
17199
|
handleCloseTooltip();
|
16104
|
-
setOpenNoteDialog(NoteType.
|
17200
|
+
setOpenNoteDialog(NoteType.ToAcademy);
|
16105
17201
|
};
|
16106
17202
|
var handleOpenCreateStudentNoteDialog = function handleOpenCreateStudentNoteDialog() {
|
16107
17203
|
handleCloseTooltip();
|
16108
|
-
setOpenNoteDialog(NoteType.
|
17204
|
+
setOpenNoteDialog(NoteType.ToStudent);
|
16109
17205
|
};
|
16110
17206
|
var handleCloseTooltip = function handleCloseTooltip() {
|
16111
17207
|
setNoteIdContextMenu(0);
|
@@ -16156,7 +17252,7 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16156
17252
|
var _temp = function () {
|
16157
17253
|
if (selectedItem) {
|
16158
17254
|
return Promise.resolve(updateNoteApi$1(selectedItem.id, data.content)).then(function (res) {
|
16159
|
-
if (selectedItem.type === NoteType.
|
17255
|
+
if (selectedItem.type === NoteType.ToStudent) handleItemUpdatedStudentNote(res.data);else handleItemUpdatedAcademyNote(res.data);
|
16160
17256
|
toast.success(t("update_note_successfully"));
|
16161
17257
|
});
|
16162
17258
|
} else {
|
@@ -16164,7 +17260,7 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16164
17260
|
return Promise.resolve(createNoteApi$1(_extends({}, data, {
|
16165
17261
|
type: openNoteDialog
|
16166
17262
|
}))).then(function (res) {
|
16167
|
-
if (res.data.type === NoteType.
|
17263
|
+
if (res.data.type === NoteType.ToStudent) handleItemAddedStudentNote(res.data);else handleItemAddedAcademyNote(res.data);
|
16168
17264
|
toast.success(t("create_note_successfully"));
|
16169
17265
|
});
|
16170
17266
|
}
|
@@ -16197,7 +17293,7 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16197
17293
|
var _temp5 = _catch(function () {
|
16198
17294
|
return Promise.resolve(deleteNoteApi$1(selectedItem.id)).then(function () {
|
16199
17295
|
toast.success(t("delete_note_successfully"));
|
16200
|
-
if (selectedItem.type === NoteType.
|
17296
|
+
if (selectedItem.type === NoteType.ToStudent) handleItemRemovedStudentNote(selectedItem);else handleItemRemovedAcademyNote(selectedItem);
|
16201
17297
|
reset();
|
16202
17298
|
});
|
16203
17299
|
}, function (error) {
|
@@ -16219,14 +17315,12 @@ var useDrawerNoteTab = function useDrawerNoteTab(props) {
|
|
16219
17315
|
handleSaveNote(studentNoteContent);
|
16220
17316
|
};
|
16221
17317
|
var noteDialogProps = {
|
16222
|
-
open: openNoteDialog === NoteType.
|
17318
|
+
open: openNoteDialog === NoteType.ToStudent && !openConfirmNote || openNoteDialog === NoteType.ToAcademy,
|
16223
17319
|
selectedNote: selectedItem,
|
16224
|
-
tip: " (" + t(openNoteDialog === NoteType.
|
17320
|
+
tip: " (" + t(openNoteDialog === NoteType.ToStudent ? "student_parents" : "academy") + ")",
|
16225
17321
|
value: studentNoteContent,
|
16226
17322
|
onClose: handleCloseNoteDialog,
|
16227
|
-
onSaveNote: openNoteDialog === NoteType.
|
16228
|
-
return handleSaveNote(content);
|
16229
|
-
}
|
17323
|
+
onSaveNote: openNoteDialog === NoteType.ToStudent && !(selectedItem !== null && selectedItem !== void 0 && selectedItem.id) ? handleOpenConfirmStudentNoteDialog : handleSaveNote
|
16230
17324
|
};
|
16231
17325
|
return {
|
16232
17326
|
openConfirmNote: openConfirmNote,
|
@@ -16493,11 +17587,11 @@ var DrawerInfoTab = function DrawerInfoTab(_ref) {
|
|
16493
17587
|
}
|
16494
17588
|
}, data ? React__default.createElement(Typography, {
|
16495
17589
|
sx: contentStyle
|
16496
|
-
}, t(function (label) {
|
17590
|
+
}, !!data.grade ? t(function (label) {
|
16497
17591
|
return label ? t(label) : formatGrade(data.grade, t, language);
|
16498
17592
|
}((_BRIEF_GRADE_OPTIONS$ = BRIEF_GRADE_OPTIONS.find(function (o) {
|
16499
17593
|
return o.value === Number(data.grade);
|
16500
|
-
})) === null || _BRIEF_GRADE_OPTIONS$ === void 0 ? void 0 : _BRIEF_GRADE_OPTIONS$.label))) : React__default.createElement(Skeleton, {
|
17594
|
+
})) === null || _BRIEF_GRADE_OPTIONS$ === void 0 ? void 0 : _BRIEF_GRADE_OPTIONS$.label)) : "") : React__default.createElement(Skeleton, {
|
16501
17595
|
variant: "text",
|
16502
17596
|
width: 20,
|
16503
17597
|
sx: contentStyle
|
@@ -16690,7 +17784,7 @@ var ExamResultItem = function ExamResultItem(_ref) {
|
|
16690
17784
|
}, (_data$teacher = data.teacher) === null || _data$teacher === void 0 ? void 0 : _data$teacher.fullName))))));
|
16691
17785
|
};
|
16692
17786
|
|
16693
|
-
var
|
17787
|
+
var ExamResultList = function ExamResultList(_ref) {
|
16694
17788
|
var studentId = _ref.studentId,
|
16695
17789
|
data = _ref.data,
|
16696
17790
|
isLoading = _ref.isLoading,
|
@@ -22044,7 +23138,7 @@ var ExamResultDrawer = function ExamResultDrawer(_ref) {
|
|
22044
23138
|
fontSize: "13px",
|
22045
23139
|
fontWeight: 500
|
22046
23140
|
}
|
22047
|
-
}, student.schoolName), React__default.createElement(Typography, {
|
23141
|
+
}, student.schoolName), !!student.grade && React__default.createElement(Typography, {
|
22048
23142
|
sx: {
|
22049
23143
|
color: grey[500],
|
22050
23144
|
fontSize: "13px",
|
@@ -22082,7 +23176,9 @@ var DrawerExamResultTab = function DrawerExamResultTab(_ref) {
|
|
22082
23176
|
value = _ref.value,
|
22083
23177
|
studentId = _ref.studentId,
|
22084
23178
|
onViewQA = _ref.onViewQA;
|
22085
|
-
var _useVirtualList = useVirtualList(
|
23179
|
+
var _useVirtualList = useVirtualList(_extends({}, EXAM_SESSION_DEFAULT_FILTER, {
|
23180
|
+
studentId: studentId
|
23181
|
+
}), getExamSessionListApi),
|
22086
23182
|
items = _useVirtualList.items,
|
22087
23183
|
selectedItem = _useVirtualList.selectedItem,
|
22088
23184
|
isLoading = _useVirtualList.isLoading,
|
@@ -22099,7 +23195,7 @@ var DrawerExamResultTab = function DrawerExamResultTab(_ref) {
|
|
22099
23195
|
p: 3,
|
22100
23196
|
height: "100%"
|
22101
23197
|
}
|
22102
|
-
}, React__default.createElement(
|
23198
|
+
}, React__default.createElement(ExamResultList, {
|
22103
23199
|
data: items,
|
22104
23200
|
isLoading: isLoading,
|
22105
23201
|
onLoadMore: handleLoadMore,
|
@@ -24848,7 +25944,9 @@ var DrawerTextbookResultTab = function DrawerTextbookResultTab(_ref) {
|
|
24848
25944
|
selectedTab = _ref.selectedTab,
|
24849
25945
|
value = _ref.value,
|
24850
25946
|
onViewQA = _ref.onViewQA;
|
24851
|
-
var _useVirtualList = useVirtualList(
|
25947
|
+
var _useVirtualList = useVirtualList(_extends({}, TEXTBOOK_DEFAULT_FILTER, {
|
25948
|
+
studentId: studentId
|
25949
|
+
}), getTextbookListApi),
|
24852
25950
|
items = _useVirtualList.items,
|
24853
25951
|
selectedItem = _useVirtualList.selectedItem,
|
24854
25952
|
isLoading = _useVirtualList.isLoading,
|
@@ -25246,9 +26344,10 @@ var useDrawerAttendanceTab = function useDrawerAttendanceTab(studentId, onUpdate
|
|
25246
26344
|
var pusher = concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.pusher;
|
25247
26345
|
var channelName = useRef();
|
25248
26346
|
var channel = useRef();
|
25249
|
-
var
|
25250
|
-
|
25251
|
-
|
26347
|
+
var handleGetAttendanceByStudentId = useCallback(function (query) {
|
26348
|
+
return getAttendanceByStudentIdApi(studentId, query);
|
26349
|
+
}, [studentId]);
|
26350
|
+
var _useVirtualList = useVirtualList(ATTENDANCE_COURSE_DEFAULT_FILTER, handleGetAttendanceByStudentId),
|
25252
26351
|
items = _useVirtualList.items,
|
25253
26352
|
isLoading = _useVirtualList.isLoading,
|
25254
26353
|
handleLoadMore = _useVirtualList.handleLoadMore,
|
@@ -26334,9 +27433,9 @@ var useLessonClassList = function useLessonClassList(courseId) {
|
|
26334
27433
|
};
|
26335
27434
|
};
|
26336
27435
|
|
26337
|
-
var TEACHER_URL = BASE_URL + "/api/teacher";
|
26338
|
-
var getTeacherListApi = function getTeacherListApi(query) {
|
26339
|
-
return api.get("" + TEACHER_URL, {
|
27436
|
+
var TEACHER_URL$1 = BASE_URL + "/api/teacher";
|
27437
|
+
var getTeacherListApi$1 = function getTeacherListApi(query) {
|
27438
|
+
return api.get("" + TEACHER_URL$1, {
|
26340
27439
|
params: query
|
26341
27440
|
});
|
26342
27441
|
};
|
@@ -26357,7 +27456,7 @@ var useTeacherList = function useTeacherList() {
|
|
26357
27456
|
var getListTeacher = function getListTeacher() {
|
26358
27457
|
try {
|
26359
27458
|
var _temp = _catch(function () {
|
26360
|
-
return Promise.resolve(getTeacherListApi(teacherFilter)).then(function (res) {
|
27459
|
+
return Promise.resolve(getTeacherListApi$1(teacherFilter)).then(function (res) {
|
26361
27460
|
var _res$data;
|
26362
27461
|
setTeachers(((_res$data = res.data) === null || _res$data === void 0 ? void 0 : _res$data.items) || []);
|
26363
27462
|
});
|
@@ -26427,11 +27526,6 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
26427
27526
|
var isSelected = function isSelected(id) {
|
26428
27527
|
return selected.indexOf(id) !== -1;
|
26429
27528
|
};
|
26430
|
-
var registerPusherRef = useRef(true);
|
26431
|
-
var isReadyRegisterPusher = useSelector(function (state) {
|
26432
|
-
var _state$common2;
|
26433
|
-
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.isReadyRegisterPusher;
|
26434
|
-
});
|
26435
27529
|
var _useStudentClassList = useStudentClassList(classId),
|
26436
27530
|
getStudents = _useStudentClassList.getStudents,
|
26437
27531
|
studentListProps = _objectWithoutPropertiesLoose(_useStudentClassList, _excluded$b);
|
@@ -26821,12 +27915,6 @@ var useClassDetail = function useClassDetail(_ref) {
|
|
26821
27915
|
useEffect(function () {
|
26822
27916
|
document.title = t("study_peak") + " | " + t(PAGE_TITLE$4);
|
26823
27917
|
}, [t]);
|
26824
|
-
useEffect(function () {
|
26825
|
-
if (!isReadyRegisterPusher && registerPusherRef.current) {
|
26826
|
-
dispatch(setReadyRegisterPusher(true));
|
26827
|
-
registerPusherRef.current = false;
|
26828
|
-
}
|
26829
|
-
}, [isReadyRegisterPusher]);
|
26830
27918
|
return {
|
26831
27919
|
classId: classId,
|
26832
27920
|
schema: schema,
|
@@ -27644,7 +28732,7 @@ var ClassList = function ClassList(_ref) {
|
|
27644
28732
|
onClick: function onClick() {
|
27645
28733
|
return handleUpdateClass(i);
|
27646
28734
|
}
|
27647
|
-
}, React__default.createElement(FaEye, {
|
28735
|
+
}, React__default.createElement(FaEye$1, {
|
27648
28736
|
size: 12
|
27649
28737
|
}))));
|
27650
28738
|
}), !classList.length && React__default.createElement(TableRow$1, null, React__default.createElement(TableCell$1, {
|
@@ -28491,11 +29579,6 @@ var useUserList = function useUserList(role) {
|
|
28491
29579
|
setOpenDeleteUserCsv = _useState10[1];
|
28492
29580
|
var inputFileRef = useRef(null);
|
28493
29581
|
var firstLoadRef = useRef(true);
|
28494
|
-
var registerPusherRef = useRef(true);
|
28495
|
-
var isReadyRegisterPusher = useSelector(function (state) {
|
28496
|
-
var _state$common;
|
28497
|
-
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.isReadyRegisterPusher;
|
28498
|
-
});
|
28499
29582
|
var handleChangeSelectedStudent = function handleChangeSelectedStudent(student) {
|
28500
29583
|
var _student$roles, _student$roles2;
|
28501
29584
|
var isStudent = ((_student$roles = student.roles) === null || _student$roles === void 0 ? void 0 : _student$roles.includes(Role.Student)) && ((_student$roles2 = student.roles) === null || _student$roles2 === void 0 ? void 0 : _student$roles2.length) === 1;
|
@@ -28807,12 +29890,6 @@ var useUserList = function useUserList(role) {
|
|
28807
29890
|
var userHeaders = USER_HEADERS.filter(function (i) {
|
28808
29891
|
return i.roles.includes(role);
|
28809
29892
|
});
|
28810
|
-
useEffect(function () {
|
28811
|
-
if (!isReadyRegisterPusher && registerPusherRef.current) {
|
28812
|
-
dispatch(setReadyRegisterPusher(true));
|
28813
|
-
registerPusherRef.current = false;
|
28814
|
-
}
|
28815
|
-
}, [isReadyRegisterPusher]);
|
28816
29893
|
return {
|
28817
29894
|
userDetail: userDetail,
|
28818
29895
|
userHeaders: userHeaders,
|
@@ -29089,7 +30166,7 @@ var UserRow = function UserRow(_ref) {
|
|
29089
30166
|
color: "default",
|
29090
30167
|
className: "bg-primary text-white me-1",
|
29091
30168
|
onClick: handleViewOrUpdate
|
29092
|
-
}, React__default.createElement(FaEye
|
30169
|
+
}, React__default.createElement(FaEye, {
|
29093
30170
|
size: 12
|
29094
30171
|
})), (isAdmin || isSuperAdmin) && React__default.createElement(IconButton, {
|
29095
30172
|
onClick: handleDelete,
|
@@ -30744,9 +31821,9 @@ var TextbookSortBy$1;
|
|
30744
31821
|
var TeacherSortBy$1;
|
30745
31822
|
(function (TeacherSortBy) {
|
30746
31823
|
TeacherSortBy["CreatedAt"] = "CreatedAt";
|
30747
|
-
TeacherSortBy["Name"] = "UserProfile.FullName";
|
30748
|
-
TeacherSortBy["Email"] = "Email";
|
30749
|
-
TeacherSortBy["PhoneNumber"] = "UserProfile.PhoneNumber";
|
31824
|
+
TeacherSortBy["Name"] = "User.UserProfile.FullName";
|
31825
|
+
TeacherSortBy["Email"] = "User.Email";
|
31826
|
+
TeacherSortBy["PhoneNumber"] = "User.UserProfile.PhoneNumber";
|
30750
31827
|
})(TeacherSortBy$1 || (TeacherSortBy$1 = {}));
|
30751
31828
|
var ExamType$1;
|
30752
31829
|
(function (ExamType) {
|
@@ -32513,9 +33590,9 @@ var ShareToTeacherDialog = function ShareToTeacherDialog(_ref) {
|
|
32513
33590
|
}, t("cancel")))));
|
32514
33591
|
};
|
32515
33592
|
|
32516
|
-
var TEACHER_URL$
|
32517
|
-
var getTeacherListApi$
|
32518
|
-
return api.get("" + TEACHER_URL$
|
33593
|
+
var TEACHER_URL$2 = BASE_URL + "/api/teacher";
|
33594
|
+
var getTeacherListApi$2 = function getTeacherListApi(query) {
|
33595
|
+
return api.get("" + TEACHER_URL$2, {
|
32519
33596
|
params: query
|
32520
33597
|
});
|
32521
33598
|
};
|
@@ -32526,7 +33603,7 @@ var useTextbookShare = function useTextbookShare(props) {
|
|
32526
33603
|
role = props.role,
|
32527
33604
|
isSuperAdmin = props.isSuperAdmin;
|
32528
33605
|
var _useList = useList(!isSuperAdmin ? function (search) {
|
32529
|
-
return getTeacherListApi$
|
33606
|
+
return getTeacherListApi$2(search);
|
32530
33607
|
} : null, DefaultTeacherQuery),
|
32531
33608
|
filterShare = _useList.filter,
|
32532
33609
|
textSearchShareRef = _useList.textSearchRef,
|
@@ -32825,7 +33902,7 @@ var TextbookRow = function TextbookRow(_ref) {
|
|
32825
33902
|
color: "default",
|
32826
33903
|
className: "bg-primary text-white",
|
32827
33904
|
onClick: handleViewTextbook
|
32828
|
-
}, React__default.createElement(FaEye
|
33905
|
+
}, React__default.createElement(FaEye, {
|
32829
33906
|
size: 12
|
32830
33907
|
})), onAcademy && React__default.createElement(IconButton, {
|
32831
33908
|
disabled: !isSharable,
|
@@ -33686,7 +34763,7 @@ var NotificationList = function NotificationList(_ref) {
|
|
33686
34763
|
onClick: function onClick() {
|
33687
34764
|
return handleUpdateNotification(i);
|
33688
34765
|
}
|
33689
|
-
}, !isAdmin && (isTeacherAdmin || !i.isOwned) ? React__default.createElement(FaEye
|
34766
|
+
}, !isAdmin && (isTeacherAdmin || !i.isOwned) ? React__default.createElement(FaEye, {
|
33690
34767
|
size: 12
|
33691
34768
|
}) : React__default.createElement(HiOutlinePencilAlt, {
|
33692
34769
|
size: 12
|
@@ -37557,17 +38634,17 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
37557
38634
|
sx: {
|
37558
38635
|
color: inforErrors && submitCount ? error.main + "!important" : "gray"
|
37559
38636
|
}
|
37560
|
-
}, a11yProps$
|
38637
|
+
}, a11yProps$2(0))), React__default.createElement(Tab, Object.assign({
|
37561
38638
|
label: t$1("textbook.contents"),
|
37562
38639
|
sx: {
|
37563
38640
|
color: contentsErrors && submitCount ? error.main + "!important" : "gray"
|
37564
38641
|
}
|
37565
|
-
}, a11yProps$
|
38642
|
+
}, a11yProps$2(1))), !(values !== null && values !== void 0 && values.isPublic) && (!isSuperAdmin || textbookId) && (!textbookId && !isAdmin || (values === null || values === void 0 ? void 0 : values.isShared)) && React__default.createElement(Tab, Object.assign({
|
37566
38643
|
label: t$1("textbook.owners"),
|
37567
38644
|
sx: {
|
37568
38645
|
color: textbookOwnersErrors && submitCount ? error.main + "!important" : "gray"
|
37569
38646
|
}
|
37570
|
-
}, a11yProps$
|
38647
|
+
}, a11yProps$2(2))))), React__default.createElement(CustomTextbookTab, {
|
37571
38648
|
value: selected,
|
37572
38649
|
index: 0
|
37573
38650
|
}, React__default.createElement(TextbookInfoTab, Object.assign({}, formikProps, {
|
@@ -37589,7 +38666,7 @@ var PreparedTextbookForm = function PreparedTextbookForm(_ref) {
|
|
37589
38666
|
disabled: ownersDisabled
|
37590
38667
|
}))))));
|
37591
38668
|
};
|
37592
|
-
var a11yProps$
|
38669
|
+
var a11yProps$2 = function a11yProps(index) {
|
37593
38670
|
return {
|
37594
38671
|
id: "textbook-tab-" + index,
|
37595
38672
|
"aria-controls": "textbook-tabpanel-" + index
|
@@ -37986,6 +39063,450 @@ var PreparedTextbookList = function PreparedTextbookList(_ref) {
|
|
37986
39063
|
}));
|
37987
39064
|
};
|
37988
39065
|
|
39066
|
+
var AnnouncementEvent;
|
39067
|
+
(function (AnnouncementEvent) {
|
39068
|
+
AnnouncementEvent["ReceivedNewNote"] = "ReceivedNewNote";
|
39069
|
+
AnnouncementEvent["UpdatedNote"] = "UpdatedNote";
|
39070
|
+
AnnouncementEvent["DeletedNote"] = "DeletedNote";
|
39071
|
+
})(AnnouncementEvent || (AnnouncementEvent = {}));
|
39072
|
+
var AnnouncementType;
|
39073
|
+
(function (AnnouncementType) {
|
39074
|
+
AnnouncementType["ReceivedNewNote"] = "ReceivedNewNote";
|
39075
|
+
})(AnnouncementType || (AnnouncementType = {}));
|
39076
|
+
|
39077
|
+
var stringToColor = function stringToColor(string) {
|
39078
|
+
var hash = 0;
|
39079
|
+
var i;
|
39080
|
+
for (i = 0; i < string.length; i += 1) {
|
39081
|
+
hash = string.charCodeAt(i) + ((hash << 5) - hash);
|
39082
|
+
}
|
39083
|
+
var color = "#";
|
39084
|
+
for (i = 0; i < 3; i += 1) {
|
39085
|
+
var value = hash >> i * 8 & 0xff;
|
39086
|
+
color += ("00" + value.toString(16)).slice(-2);
|
39087
|
+
}
|
39088
|
+
return color;
|
39089
|
+
};
|
39090
|
+
var stringAvatar = function stringAvatar(name) {
|
39091
|
+
var _name$split$0$, _name$split$, _name$split$1$, _name$split$2;
|
39092
|
+
return {
|
39093
|
+
sx: {
|
39094
|
+
bgcolor: stringToColor(name)
|
39095
|
+
},
|
39096
|
+
children: "" + ((_name$split$0$ = (_name$split$ = name.split(" ")[0]) === null || _name$split$ === void 0 ? void 0 : _name$split$[0]) != null ? _name$split$0$ : "") + ((_name$split$1$ = (_name$split$2 = name.split(" ")[1]) === null || _name$split$2 === void 0 ? void 0 : _name$split$2[0]) != null ? _name$split$1$ : "")
|
39097
|
+
};
|
39098
|
+
};
|
39099
|
+
var convertAnnouncementData = function convertAnnouncementData(t, role, announcement) {
|
39100
|
+
var isTeacherSite = role === Role.Teacher;
|
39101
|
+
var data = announcement.data;
|
39102
|
+
switch (announcement.type) {
|
39103
|
+
case AnnouncementType.ReceivedNewNote:
|
39104
|
+
var extraData = data.data;
|
39105
|
+
var contents = extraData.split("|");
|
39106
|
+
var noteType = contents[0];
|
39107
|
+
var content = contents.slice(1).join("|");
|
39108
|
+
var isAdmin = noteType === NoteType[NoteType.AdminToAllTeacher] || noteType === NoteType[NoteType.AdminToAllAdmin];
|
39109
|
+
return {
|
39110
|
+
content: content,
|
39111
|
+
name: isAdmin ? isTeacherSite ? t("admin") : t("admin_n", {
|
39112
|
+
admin: data.senderFullName
|
39113
|
+
}) : t("teacher_n", {
|
39114
|
+
teacher: data.senderFullName
|
39115
|
+
}),
|
39116
|
+
image: isAdmin && isTeacherSite ? undefined : data.senderAvatar,
|
39117
|
+
action: t("sent_a_memo")
|
39118
|
+
};
|
39119
|
+
default:
|
39120
|
+
return {
|
39121
|
+
name: data.senderFullName,
|
39122
|
+
image: data.senderAvatar,
|
39123
|
+
content: data.data,
|
39124
|
+
action: ""
|
39125
|
+
};
|
39126
|
+
}
|
39127
|
+
};
|
39128
|
+
|
39129
|
+
var AnnouncementItem = function AnnouncementItem(_ref) {
|
39130
|
+
var data = _ref.data,
|
39131
|
+
role = _ref.role,
|
39132
|
+
renderLink = _ref.renderLink,
|
39133
|
+
onLoad = _ref.onLoad;
|
39134
|
+
var _useTranslation = useTranslation(),
|
39135
|
+
t = _useTranslation.t;
|
39136
|
+
useEffect(function () {
|
39137
|
+
onLoad();
|
39138
|
+
}, []);
|
39139
|
+
var announcementData = convertAnnouncementData(t, role, data);
|
39140
|
+
return React__default.createElement(Fragment$1, null, renderLink(React__default.createElement(ListItemButton, {
|
39141
|
+
sx: _extends({
|
39142
|
+
py: 1.5,
|
39143
|
+
px: 2.5,
|
39144
|
+
mt: "1px"
|
39145
|
+
}, !data.isRead && {
|
39146
|
+
bgcolor: "action.selected"
|
39147
|
+
})
|
39148
|
+
}, React__default.createElement(Stack, {
|
39149
|
+
direction: "row",
|
39150
|
+
gap: 1,
|
39151
|
+
justifyContent: "space-between",
|
39152
|
+
width: "100%"
|
39153
|
+
}, React__default.createElement(Stack, {
|
39154
|
+
direction: "row",
|
39155
|
+
gap: 1
|
39156
|
+
}, React__default.createElement(ListItemAvatar, null, React__default.createElement(Avatar, Object.assign({}, stringAvatar(announcementData.name), {
|
39157
|
+
src: announcementData.image
|
39158
|
+
}))), React__default.createElement(ListItemText, {
|
39159
|
+
sx: {
|
39160
|
+
marginBlock: 0
|
39161
|
+
},
|
39162
|
+
primary: React__default.createElement(Box, null, React__default.createElement(Typography, {
|
39163
|
+
fontWeight: 600,
|
39164
|
+
display: "inline-block"
|
39165
|
+
}, announcementData.name), announcementData.action && React__default.createElement(Typography, {
|
39166
|
+
display: "inline-block",
|
39167
|
+
px: "4px"
|
39168
|
+
}, announcementData.action + ":"), React__default.createElement(Box, {
|
39169
|
+
display: "inline-block"
|
39170
|
+
}, React__default.createElement(Box, {
|
39171
|
+
sx: {
|
39172
|
+
display: "-webkit-box",
|
39173
|
+
lineClamp: 2,
|
39174
|
+
WebkitLineClamp: 2,
|
39175
|
+
WebkitBoxOrient: "vertical",
|
39176
|
+
boxOrient: "vertical",
|
39177
|
+
overflow: "hidden"
|
39178
|
+
},
|
39179
|
+
dangerouslySetInnerHTML: {
|
39180
|
+
__html: announcementData.content || ""
|
39181
|
+
}
|
39182
|
+
}))),
|
39183
|
+
secondary: React__default.createElement(Typography, {
|
39184
|
+
variant: "caption",
|
39185
|
+
sx: {
|
39186
|
+
mt: 0.5,
|
39187
|
+
display: "flex",
|
39188
|
+
alignItems: "center",
|
39189
|
+
color: "text.disabled"
|
39190
|
+
}
|
39191
|
+
}, React__default.createElement(Box, {
|
39192
|
+
sx: {
|
39193
|
+
marginRight: "8px"
|
39194
|
+
}
|
39195
|
+
}, React__default.createElement(FaClockRotateLeft, {
|
39196
|
+
size: 12
|
39197
|
+
})), timAgo(data.createdAt, t, true))
|
39198
|
+
})))), data));
|
39199
|
+
};
|
39200
|
+
|
39201
|
+
var AnnouncementList = function AnnouncementList(_ref) {
|
39202
|
+
var role = _ref.role,
|
39203
|
+
items = _ref.items,
|
39204
|
+
isLoading = _ref.isLoading,
|
39205
|
+
onLoadMore = _ref.onLoadMore,
|
39206
|
+
renderLink = _ref.renderLink;
|
39207
|
+
return React__default.createElement(VirtualListView, {
|
39208
|
+
data: items,
|
39209
|
+
loading: isLoading,
|
39210
|
+
listHeight: 0,
|
39211
|
+
containerProps: {
|
39212
|
+
sx: {
|
39213
|
+
height: "100%"
|
39214
|
+
}
|
39215
|
+
},
|
39216
|
+
renderItem: function renderItem(item, index, measure) {
|
39217
|
+
return React__default.createElement(AnnouncementItem, {
|
39218
|
+
role: role,
|
39219
|
+
key: index,
|
39220
|
+
data: item,
|
39221
|
+
renderLink: renderLink,
|
39222
|
+
onLoad: measure
|
39223
|
+
});
|
39224
|
+
},
|
39225
|
+
onLoadMore: onLoadMore
|
39226
|
+
});
|
39227
|
+
};
|
39228
|
+
|
39229
|
+
var DEFAULT_ANNOUNCEMENT_FILTER = {
|
39230
|
+
currentPage: 1,
|
39231
|
+
pageSize: 10,
|
39232
|
+
sortColumnDirection: OrderType.DESC,
|
39233
|
+
sortColumnName: "CreatedAt"
|
39234
|
+
};
|
39235
|
+
var ANNOUNCEMENT_CHANNEL = "ANNOUNCEMENT_A{academy}_U{userId}_CHANNEL";
|
39236
|
+
|
39237
|
+
var ANNOUNCEMENT_URL = BASE_URL + "/api/announcements";
|
39238
|
+
var getAnnouncementListApi = function getAnnouncementListApi(query) {
|
39239
|
+
return api.get("" + ANNOUNCEMENT_URL, {
|
39240
|
+
params: query
|
39241
|
+
});
|
39242
|
+
};
|
39243
|
+
var getTotalNumberUnreadAnnouncementsApi = function getTotalNumberUnreadAnnouncementsApi() {
|
39244
|
+
return api.get(ANNOUNCEMENT_URL + "/unread");
|
39245
|
+
};
|
39246
|
+
var markAsReadAnnouncementsApi = function markAsReadAnnouncementsApi() {
|
39247
|
+
return api.post(ANNOUNCEMENT_URL + "/mark-as-read");
|
39248
|
+
};
|
39249
|
+
var markAsReadAnnouncementByIdApi = function markAsReadAnnouncementByIdApi(id) {
|
39250
|
+
return api.post(ANNOUNCEMENT_URL + "/" + id + "/mark-as-read");
|
39251
|
+
};
|
39252
|
+
|
39253
|
+
var AnnouncementContainer = function AnnouncementContainer(_ref) {
|
39254
|
+
var role = _ref.role,
|
39255
|
+
renderLink = _ref.renderLink,
|
39256
|
+
renderViewNoteLink = _ref.renderViewNoteLink;
|
39257
|
+
var _useTranslation = useTranslation(),
|
39258
|
+
t = _useTranslation.t;
|
39259
|
+
var dispatch = useDispatch();
|
39260
|
+
var user = useSelector(function (state) {
|
39261
|
+
var _state$common;
|
39262
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
39263
|
+
});
|
39264
|
+
var academyDomain = user === null || user === void 0 ? void 0 : user.academyDomain;
|
39265
|
+
var concurrentConnectionPusher = useSelector(function (state) {
|
39266
|
+
var _state$common2;
|
39267
|
+
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.concurrentConnectionPusher;
|
39268
|
+
});
|
39269
|
+
var totalUnreadMessages = useSelector(function (state) {
|
39270
|
+
var _state$common3;
|
39271
|
+
return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : _state$common3.totalUnreadMessages;
|
39272
|
+
});
|
39273
|
+
var pusher = concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.pusher;
|
39274
|
+
var channel = useRef();
|
39275
|
+
var channelName = useRef();
|
39276
|
+
var _useState = useState(false),
|
39277
|
+
openPopover = _useState[0],
|
39278
|
+
setOpenPopover = _useState[1];
|
39279
|
+
var anchorEl = useRef(null);
|
39280
|
+
var handleOpenPopover = function handleOpenPopover() {
|
39281
|
+
setOpenPopover(true);
|
39282
|
+
};
|
39283
|
+
var handleClosePopover = function handleClosePopover() {
|
39284
|
+
setOpenPopover(false);
|
39285
|
+
};
|
39286
|
+
var _useVirtualList = useVirtualList({}, getAnnouncementListApi),
|
39287
|
+
filter = _useVirtualList.filter,
|
39288
|
+
items = _useVirtualList.items,
|
39289
|
+
isLoading = _useVirtualList.isLoading,
|
39290
|
+
handleLoadMore = _useVirtualList.handleLoadMore,
|
39291
|
+
handleItemAdded = _useVirtualList.handleItemAdded,
|
39292
|
+
setItems = _useVirtualList.setItems,
|
39293
|
+
handleChangeFilter = _useVirtualList.handleChangeFilter,
|
39294
|
+
getItems = _useVirtualList.getItems;
|
39295
|
+
var handleNewAnnouncement = function handleNewAnnouncement(data) {
|
39296
|
+
try {
|
39297
|
+
var announcement = JSON.parse(data);
|
39298
|
+
openPopover && handleItemAdded(announcement);
|
39299
|
+
} catch (error) {
|
39300
|
+
console.log(error);
|
39301
|
+
}
|
39302
|
+
dispatch(setTotalUnreadMessages(totalUnreadMessages + 1));
|
39303
|
+
};
|
39304
|
+
var handleDeletedAnnouncement = function handleDeletedAnnouncement(_data) {
|
39305
|
+
openPopover && getItems();
|
39306
|
+
handleGetTotalUnread();
|
39307
|
+
};
|
39308
|
+
var handleUpdatedAnnouncement = function handleUpdatedAnnouncement(data) {
|
39309
|
+
try {
|
39310
|
+
var announcement = JSON.parse(data);
|
39311
|
+
openPopover && setItems(function (state) {
|
39312
|
+
return state.map(function (i) {
|
39313
|
+
if (i.id !== announcement.id) return i;
|
39314
|
+
return _extends({}, i, {
|
39315
|
+
data: _extends({}, i.data, {
|
39316
|
+
data: announcement.data.data
|
39317
|
+
})
|
39318
|
+
});
|
39319
|
+
});
|
39320
|
+
});
|
39321
|
+
} catch (error) {
|
39322
|
+
console.log(error);
|
39323
|
+
}
|
39324
|
+
};
|
39325
|
+
var handleMarkAsRead = function handleMarkAsRead() {
|
39326
|
+
try {
|
39327
|
+
var _temp2 = function _temp2() {
|
39328
|
+
dispatch(setLoading(false));
|
39329
|
+
};
|
39330
|
+
dispatch(setLoading(true));
|
39331
|
+
var _temp = _catch(function () {
|
39332
|
+
return Promise.resolve(markAsReadAnnouncementsApi()).then(function () {
|
39333
|
+
setItems(function (state) {
|
39334
|
+
return state.map(function (i) {
|
39335
|
+
return _extends({}, i, {
|
39336
|
+
isRead: true
|
39337
|
+
});
|
39338
|
+
});
|
39339
|
+
});
|
39340
|
+
dispatch(setTotalUnreadMessages(0));
|
39341
|
+
});
|
39342
|
+
}, function (error) {
|
39343
|
+
toast.error(getErrorMessage(t, error));
|
39344
|
+
});
|
39345
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
39346
|
+
} catch (e) {
|
39347
|
+
return Promise.reject(e);
|
39348
|
+
}
|
39349
|
+
};
|
39350
|
+
var handleMarkAsReadById = function handleMarkAsReadById(id, loading) {
|
39351
|
+
try {
|
39352
|
+
var _temp4 = function _temp4() {
|
39353
|
+
loading && dispatch(setLoading(false));
|
39354
|
+
};
|
39355
|
+
loading && dispatch(setLoading(true));
|
39356
|
+
var _temp3 = _catch(function () {
|
39357
|
+
return Promise.resolve(markAsReadAnnouncementByIdApi(id)).then(function () {
|
39358
|
+
setItems(function (state) {
|
39359
|
+
return state.map(function (i) {
|
39360
|
+
return _extends({}, i, {
|
39361
|
+
isRead: i.id === id ? true : i.isRead
|
39362
|
+
});
|
39363
|
+
});
|
39364
|
+
});
|
39365
|
+
dispatch(setTotalUnreadMessages(Math.max(0, totalUnreadMessages - 1)));
|
39366
|
+
});
|
39367
|
+
}, function (error) {
|
39368
|
+
toast.error(getErrorMessage(t, error));
|
39369
|
+
});
|
39370
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
39371
|
+
} catch (e) {
|
39372
|
+
return Promise.reject(e);
|
39373
|
+
}
|
39374
|
+
};
|
39375
|
+
var handleCloseAndMarkRead = function handleCloseAndMarkRead(data) {
|
39376
|
+
handleClosePopover();
|
39377
|
+
if (!data.isRead) handleMarkAsReadById(data.id);
|
39378
|
+
};
|
39379
|
+
var renderNotiLink = function renderNotiLink(children, data) {
|
39380
|
+
return renderLink(children, data, function () {
|
39381
|
+
return handleCloseAndMarkRead(data);
|
39382
|
+
});
|
39383
|
+
};
|
39384
|
+
var cleanupPusher = function cleanupPusher() {
|
39385
|
+
channel.current && channel.current.unbind(AnnouncementEvent.ReceivedNewNote, handleNewAnnouncement);
|
39386
|
+
channel.current && channel.current.unbind(AnnouncementEvent.UpdatedNote, handleUpdatedAnnouncement);
|
39387
|
+
channel.current && channel.current.unbind(AnnouncementEvent.DeletedNote, handleDeletedAnnouncement);
|
39388
|
+
channelName.current && pusher && pusher.unsubscribe(channelName.current);
|
39389
|
+
};
|
39390
|
+
useEffect(function () {
|
39391
|
+
if (concurrentConnectionPusher !== null && concurrentConnectionPusher !== void 0 && concurrentConnectionPusher.academyDomain && academyDomain && user !== null && user !== void 0 && user.id) {
|
39392
|
+
var normalizedAcademyDomain = academyDomain.trim().toUpperCase();
|
39393
|
+
channelName.current = ANNOUNCEMENT_CHANNEL.replace("{academy}", normalizedAcademyDomain).replace("{userId}", user.id);
|
39394
|
+
channel.current = pusher.subscribe(channelName.current);
|
39395
|
+
channel.current.bind(AnnouncementEvent.ReceivedNewNote, handleNewAnnouncement);
|
39396
|
+
channel.current.bind(AnnouncementEvent.UpdatedNote, handleUpdatedAnnouncement);
|
39397
|
+
channel.current.bind(AnnouncementEvent.DeletedNote, handleDeletedAnnouncement);
|
39398
|
+
}
|
39399
|
+
return cleanupPusher;
|
39400
|
+
}, [academyDomain, user === null || user === void 0 ? void 0 : user.id, concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain, totalUnreadMessages, openPopover, JSON.stringify(filter)]);
|
39401
|
+
var handleGetTotalUnread = function handleGetTotalUnread() {
|
39402
|
+
try {
|
39403
|
+
var _temp5 = _catch(function () {
|
39404
|
+
return Promise.resolve(getTotalNumberUnreadAnnouncementsApi()).then(function (res) {
|
39405
|
+
dispatch(setTotalUnreadMessages(res.data));
|
39406
|
+
});
|
39407
|
+
}, function (error) {
|
39408
|
+
console.log({
|
39409
|
+
error: error
|
39410
|
+
});
|
39411
|
+
});
|
39412
|
+
return Promise.resolve(_temp5 && _temp5.then ? _temp5.then(function () {}) : void 0);
|
39413
|
+
} catch (e) {
|
39414
|
+
return Promise.reject(e);
|
39415
|
+
}
|
39416
|
+
};
|
39417
|
+
useEffect(function () {
|
39418
|
+
if (academyDomain && user !== null && user !== void 0 && user.id) handleGetTotalUnread();
|
39419
|
+
}, [academyDomain, user === null || user === void 0 ? void 0 : user.id]);
|
39420
|
+
useEffect(function () {
|
39421
|
+
handleChangeFilter(openPopover ? DEFAULT_ANNOUNCEMENT_FILTER : {});
|
39422
|
+
}, [openPopover]);
|
39423
|
+
return React__default.createElement(Box, null, React__default.createElement(IconButton, {
|
39424
|
+
ref: anchorEl,
|
39425
|
+
className: "ms-2",
|
39426
|
+
onClick: handleOpenPopover
|
39427
|
+
}, React__default.createElement(Badge, {
|
39428
|
+
badgeContent: totalUnreadMessages,
|
39429
|
+
max: 9,
|
39430
|
+
color: "error"
|
39431
|
+
}, React__default.createElement(FaBell, {
|
39432
|
+
size: 20,
|
39433
|
+
color: blue[500]
|
39434
|
+
}))), React__default.createElement(Popover, {
|
39435
|
+
open: openPopover,
|
39436
|
+
anchorEl: anchorEl.current,
|
39437
|
+
onClose: handleClosePopover,
|
39438
|
+
anchorOrigin: {
|
39439
|
+
vertical: "bottom",
|
39440
|
+
horizontal: "right"
|
39441
|
+
},
|
39442
|
+
slotProps: {
|
39443
|
+
paper: {
|
39444
|
+
sx: {
|
39445
|
+
width: 360
|
39446
|
+
}
|
39447
|
+
}
|
39448
|
+
}
|
39449
|
+
}, React__default.createElement(Stack, {
|
39450
|
+
height: "100%",
|
39451
|
+
direction: "column"
|
39452
|
+
}, React__default.createElement(Stack, {
|
39453
|
+
direction: "row",
|
39454
|
+
justifyContent: "space-between",
|
39455
|
+
gap: 2,
|
39456
|
+
sx: {
|
39457
|
+
py: 2,
|
39458
|
+
px: 2.5
|
39459
|
+
}
|
39460
|
+
}, React__default.createElement(Box, {
|
39461
|
+
sx: {
|
39462
|
+
flexGrow: 1
|
39463
|
+
}
|
39464
|
+
}, React__default.createElement(Typography, {
|
39465
|
+
variant: "subtitle1"
|
39466
|
+
}, t("notifications")), totalUnreadMessages > 0 && React__default.createElement(Typography, {
|
39467
|
+
variant: "body2",
|
39468
|
+
sx: {
|
39469
|
+
color: "text.secondary"
|
39470
|
+
}
|
39471
|
+
}, t("you_have_n_unread_messages", {
|
39472
|
+
n: totalUnreadMessages
|
39473
|
+
})), renderViewNoteLink && React__default.createElement(Box, null, renderViewNoteLink(React__default.createElement(Typography, {
|
39474
|
+
sx: {
|
39475
|
+
fontWeight: 600,
|
39476
|
+
color: grey[600],
|
39477
|
+
fontSize: "14px",
|
39478
|
+
"&:hover": {
|
39479
|
+
textDecoration: "underline",
|
39480
|
+
color: green[700]
|
39481
|
+
}
|
39482
|
+
}
|
39483
|
+
}, t("view_notes")), handleClosePopover))), totalUnreadMessages > 0 && React__default.createElement(Stack, {
|
39484
|
+
direction: "column"
|
39485
|
+
}, React__default.createElement(Tooltip, {
|
39486
|
+
title: t("mark_as_read")
|
39487
|
+
}, React__default.createElement(IconButton, {
|
39488
|
+
color: "primary",
|
39489
|
+
onClick: handleMarkAsRead
|
39490
|
+
}, React__default.createElement(BsCheckAll, null))))), React__default.createElement(Divider, {
|
39491
|
+
component: "div"
|
39492
|
+
}), React__default.createElement(Stack, {
|
39493
|
+
direction: "column",
|
39494
|
+
sx: {
|
39495
|
+
height: {
|
39496
|
+
xs: 280,
|
39497
|
+
sm: 400
|
39498
|
+
},
|
39499
|
+
py: 2
|
39500
|
+
}
|
39501
|
+
}, React__default.createElement(AnnouncementList, {
|
39502
|
+
role: role,
|
39503
|
+
items: items,
|
39504
|
+
isLoading: isLoading,
|
39505
|
+
onLoadMore: handleLoadMore,
|
39506
|
+
renderLink: renderNotiLink
|
39507
|
+
})))));
|
39508
|
+
};
|
39509
|
+
|
37989
39510
|
var MenuItemCustom = styled(MenuItem)(function () {
|
37990
39511
|
return {
|
37991
39512
|
'&.Mui-selected': {
|
@@ -38133,7 +39654,7 @@ var TheAcademyDropdown = function TheAcademyDropdown(_ref) {
|
|
38133
39654
|
}, React__default.createElement(GoArrowSwitch, {
|
38134
39655
|
size: 14,
|
38135
39656
|
color: styles.gray_900
|
38136
|
-
})))))), (isSuperAdmin || !isAdmin || isTeacherSite) && React__default.createElement(Popover, {
|
39657
|
+
})))))), (isSuperAdmin || !isAdmin || isTeacherSite) && React__default.createElement(Popover$1, {
|
38137
39658
|
open: !!open,
|
38138
39659
|
anchorEl: open,
|
38139
39660
|
onClose: handleClose,
|
@@ -38337,7 +39858,7 @@ var TheLanguageDropdown = function TheLanguageDropdown() {
|
|
38337
39858
|
}, React__default.createElement("img", {
|
38338
39859
|
src: currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.image,
|
38339
39860
|
alt: currentLanguage === null || currentLanguage === void 0 ? void 0 : currentLanguage.name
|
38340
|
-
})), React__default.createElement(Popover, {
|
39861
|
+
})), React__default.createElement(Popover$1, {
|
38341
39862
|
open: !!open,
|
38342
39863
|
anchorEl: open,
|
38343
39864
|
onClose: handleClose,
|
@@ -38712,17 +40233,19 @@ var Header = function Header(_ref) {
|
|
38712
40233
|
role = _ref.role,
|
38713
40234
|
history = _ref.history,
|
38714
40235
|
link = _ref.link,
|
38715
|
-
onSignOut = _ref.onSignOut
|
40236
|
+
onSignOut = _ref.onSignOut,
|
40237
|
+
renderNotificationLink = _ref.renderNotificationLink,
|
40238
|
+
renderViewNoteLink = _ref.renderViewNoteLink;
|
38716
40239
|
var Link = link;
|
38717
40240
|
var _useTranslation = useTranslation(),
|
38718
40241
|
t = _useTranslation.t;
|
38719
40242
|
var theme = useTheme();
|
38720
|
-
var param = window.location.pathname;
|
38721
40243
|
var language = useSelector(function (state) {
|
38722
40244
|
var _state$common;
|
38723
40245
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.language;
|
38724
40246
|
});
|
38725
|
-
var isTeacherSide =
|
40247
|
+
var isTeacherSide = role === Role.Teacher;
|
40248
|
+
var isStudentSide = role === Role.Student;
|
38726
40249
|
var isLargerThanXL = useMediaQuery(theme.breakpoints.up("xl"));
|
38727
40250
|
var academyDomain = useSelector(function (state) {
|
38728
40251
|
var _state$common2, _state$common2$user;
|
@@ -38733,6 +40256,7 @@ var Header = function Header(_ref) {
|
|
38733
40256
|
return state === null || state === void 0 ? void 0 : (_state$common3 = state.common) === null || _state$common3 === void 0 ? void 0 : (_state$common3$user = _state$common3.user) === null || _state$common3$user === void 0 ? void 0 : _state$common3$user.isLearningSpace;
|
38734
40257
|
});
|
38735
40258
|
var isAcademy = isLearningSpace || academyDomain;
|
40259
|
+
var showAnnouncement = !isStudentSide && isAcademy;
|
38736
40260
|
var logo = useMemo(function () {
|
38737
40261
|
if (isTeacherSide) {
|
38738
40262
|
return language === Language.en ? React__default.createElement(teacherFullLogoEn, null) : React__default.createElement(teacherFullLogoKo, null);
|
@@ -38826,7 +40350,11 @@ var Header = function Header(_ref) {
|
|
38826
40350
|
}, React__default.createElement(singleLogo, null))), React__default.createElement(Stack, {
|
38827
40351
|
className: "me-2",
|
38828
40352
|
display: "none"
|
38829
|
-
}, React__default.createElement(TheLanguageDropdown, null))
|
40353
|
+
}, React__default.createElement(TheLanguageDropdown, null)), showAnnouncement && renderNotificationLink && React__default.createElement(AnnouncementContainer, {
|
40354
|
+
role: role,
|
40355
|
+
renderLink: renderNotificationLink,
|
40356
|
+
renderViewNoteLink: renderViewNoteLink
|
40357
|
+
})));
|
38830
40358
|
};
|
38831
40359
|
var HeaderLink = function HeaderLink(_ref3) {
|
38832
40360
|
var data = _ref3.data,
|
@@ -38840,7 +40368,7 @@ var HeaderLink = function HeaderLink(_ref3) {
|
|
38840
40368
|
return React__default.createElement(Fragment$1, null, render(data, isActive));
|
38841
40369
|
};
|
38842
40370
|
|
38843
|
-
var useLayoutContext = function useLayoutContext(role,
|
40371
|
+
var useLayoutContext = function useLayoutContext(role, showLoadingAcademy, domain) {
|
38844
40372
|
var _currentPusher$connec2;
|
38845
40373
|
if (showLoadingAcademy === void 0) {
|
38846
40374
|
showLoadingAcademy = true;
|
@@ -38854,13 +40382,9 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls, showL
|
|
38854
40382
|
var _state$common;
|
38855
40383
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
38856
40384
|
});
|
38857
|
-
var isReadyRegisterPusher = useSelector(function (state) {
|
38858
|
-
var _state$common2;
|
38859
|
-
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.isReadyRegisterPusher;
|
38860
|
-
});
|
38861
40385
|
var concurrentConnectionPusher = useSelector(function (state) {
|
38862
|
-
var _state$
|
38863
|
-
return state === null || state === void 0 ? void 0 : (_state$
|
40386
|
+
var _state$common2;
|
40387
|
+
return state === null || state === void 0 ? void 0 : (_state$common2 = state.common) === null || _state$common2 === void 0 ? void 0 : _state$common2.concurrentConnectionPusher;
|
38864
40388
|
});
|
38865
40389
|
var currentPusher = concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.pusher;
|
38866
40390
|
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
@@ -38941,53 +40465,36 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls, showL
|
|
38941
40465
|
}
|
38942
40466
|
};
|
38943
40467
|
var registerPusher = useCallback(function () {
|
38944
|
-
|
38945
|
-
if (
|
38946
|
-
|
38947
|
-
|
38948
|
-
|
38949
|
-
|
38950
|
-
currentPusher.disconnect();
|
38951
|
-
}
|
38952
|
-
var token = getAccessToken();
|
38953
|
-
var pusher = new Pusher$1(PUSHER_CONFIG.key, {
|
38954
|
-
cluster: PUSHER_CONFIG.cluster,
|
38955
|
-
authEndpoint: (academyDomain ? BASE_URL : SUPER_ADMIN_BASE_URL) + "/api/auth/pusher",
|
38956
|
-
auth: {
|
38957
|
-
params: {},
|
38958
|
-
headers: (_headers = {
|
38959
|
-
Authorization: "Bearer " + token
|
38960
|
-
}, _headers[AcademyHeaders] = academyDomain, _headers)
|
38961
|
-
}
|
38962
|
-
});
|
38963
|
-
dispatch(setConcurrentConnectionPusher({
|
38964
|
-
pusher: pusher,
|
38965
|
-
academyDomain: academyDomain,
|
38966
|
-
isRegistered: true
|
38967
|
-
}));
|
38968
|
-
} else if ((currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec = currentPusher.connection) === null || _currentPusher$connec === void 0 ? void 0 : _currentPusher$connec.state) === "disconnected") {
|
38969
|
-
currentPusher.connect();
|
38970
|
-
}
|
38971
|
-
if (!isReadyRegisterPusher && !!currentPusher) {
|
38972
|
-
currentPusher.connection.state !== "disconnected" && currentPusher.disconnect();
|
38973
|
-
dispatch(setConcurrentConnectionPusher({
|
38974
|
-
pusher: null,
|
38975
|
-
academyDomain: "",
|
38976
|
-
isRegistered: false
|
38977
|
-
}));
|
38978
|
-
}
|
38979
|
-
} else {
|
38980
|
-
if (!!currentPusher) {
|
38981
|
-
currentPusher.connection.state !== "disconnected" && currentPusher.disconnect();
|
38982
|
-
dispatch(setConcurrentConnectionPusher({
|
38983
|
-
pusher: null,
|
38984
|
-
academyDomain: "",
|
38985
|
-
isRegistered: false
|
38986
|
-
}));
|
40468
|
+
var _currentPusher$connec;
|
40469
|
+
if ((!academyDomain || !(user !== null && user !== void 0 && user.id)) && role !== Role.Student) return;
|
40470
|
+
if (academyDomain !== (concurrentConnectionPusher === null || concurrentConnectionPusher === void 0 ? void 0 : concurrentConnectionPusher.academyDomain) || !academyDomain && !(concurrentConnectionPusher !== null && concurrentConnectionPusher !== void 0 && concurrentConnectionPusher.academyDomain) && !concurrentConnectionPusher.isRegistered) {
|
40471
|
+
var _headers;
|
40472
|
+
if (currentPusher) {
|
40473
|
+
currentPusher.disconnect();
|
38987
40474
|
}
|
38988
|
-
|
40475
|
+
var token = getAccessToken();
|
40476
|
+
var pusher = new Pusher$1(PUSHER_CONFIG.key, {
|
40477
|
+
cluster: PUSHER_CONFIG.cluster,
|
40478
|
+
authEndpoint: (academyDomain ? BASE_URL : SUPER_ADMIN_BASE_URL) + "/api/auth/pusher",
|
40479
|
+
auth: {
|
40480
|
+
params: {},
|
40481
|
+
headers: (_headers = {
|
40482
|
+
Authorization: "Bearer " + token
|
40483
|
+
}, _headers[AcademyHeaders] = academyDomain, _headers)
|
40484
|
+
}
|
40485
|
+
});
|
40486
|
+
dispatch(setConcurrentConnectionPusher({
|
40487
|
+
pusher: pusher,
|
40488
|
+
academyDomain: academyDomain,
|
40489
|
+
isRegistered: true
|
40490
|
+
}));
|
40491
|
+
} else if ((currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec = currentPusher.connection) === null || _currentPusher$connec === void 0 ? void 0 : _currentPusher$connec.state) === "disconnected") {
|
40492
|
+
currentPusher.connect();
|
38989
40493
|
}
|
38990
|
-
|
40494
|
+
return function () {
|
40495
|
+
currentPusher === null || currentPusher === void 0 ? void 0 : currentPusher.disconnect();
|
40496
|
+
};
|
40497
|
+
}, [user === null || user === void 0 ? void 0 : user.id, academyDomain, currentPusher === null || currentPusher === void 0 ? void 0 : (_currentPusher$connec2 = currentPusher.connection) === null || _currentPusher$connec2 === void 0 ? void 0 : _currentPusher$connec2.state, role]);
|
38991
40498
|
useEffect(function () {
|
38992
40499
|
!(user !== null && user !== void 0 && user.id) && loadInfo();
|
38993
40500
|
}, [user === null || user === void 0 ? void 0 : user.id]);
|
@@ -39013,18 +40520,16 @@ var useLayoutContext = function useLayoutContext(role, pusherRegisterUrls, showL
|
|
39013
40520
|
var LayoutContext = function LayoutContext(_ref) {
|
39014
40521
|
var children = _ref.children,
|
39015
40522
|
role = _ref.role,
|
39016
|
-
_ref$pusherRegisterUr = _ref.pusherRegisterUrls,
|
39017
|
-
pusherRegisterUrls = _ref$pusherRegisterUr === void 0 ? [] : _ref$pusherRegisterUr,
|
39018
40523
|
showLoadingAcademy = _ref.showLoadingAcademy;
|
39019
40524
|
var user = useSelector(function (state) {
|
39020
40525
|
var _state$common;
|
39021
40526
|
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
39022
40527
|
});
|
39023
|
-
useLayoutContext(role,
|
40528
|
+
useLayoutContext(role, showLoadingAcademy);
|
39024
40529
|
if (!(user !== null && user !== void 0 && user.email)) return React__default.createElement(LoadingComponent, {
|
39025
40530
|
isLoading: true
|
39026
40531
|
});else return React__default.createElement(Fragment$1, null, children);
|
39027
40532
|
};
|
39028
40533
|
|
39029
|
-
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, AttendanceFormDialog, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonCreateNewQuestionDialog, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, LessonTooltip, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies,
|
40534
|
+
export { ACADEMY_DOMAIN, ACCESS_TOKEN, AcademyHeaders, AcademyList, AcceptNoAcademy, ActionButtons, AnnouncementContainer, AnnouncementType, AnswerCountSelector, ArticleCategorySelector, ArticleDialog, ArticleGroupView, AttendanceFormDialog, BASE_URL, BRIEF_GRADE_OPTIONS, _ChapterBox as ChapterBox, ChatContainer, types as ChatTypes, ClassDetail, ClassList, ClassNoteDialog, ClassSelector, CommonCreateNewQuestionDialog, CommonDialog, ConfirmDeleteDialog, ConfirmDialog, CustomAsyncSelect, CustomCreatable, CustomPagination, CustomSelect, CustomSelectOption, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, DEFAULT_NOTE_FILTER, DEFAULT_PAGING_RESPONSE, DefaultErrorMessage, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, ExamDetailView, ExamEvent, ExamNoteDialog, ExamResultV2, ExamStatus, GOOGLE_CLIENT_ID, GOOGLE_RECAPTCHA_ID, GOOGLE_RECAPTCHA_KEY, GOOGLE_RECAPTCHA_SECRET, GRADE_OPTIONS, Header, InputText, LANGUAGE, LEARNING_SPACE, Language, LanguageHeaders, LayoutContext, LessonTooltip, ListView, Loading, LoadingComponent, Login, LoginQRCode, LoginWithEmail, SignIn as LoginWithPassword, MathJaxContainer, MathTinyEditor, NewNoteButton, NoAcademyHeaders, NotFound, NoteDrawer, NoteTabs, NoteType, NotesContainer, NotificationDetail, NotificationList, OrderBy, OrderType, PRE_REDIRECT_URL, PUSHER_CONFIG, PassCodeCheck, PassCodeDialog, PreparedItem, PreparedTextbookList, PreparedTextbookView, PreparedType, PrintContainerClassName, PrintContentClassName, PrintExamResultView, PrintExamView2, PrintHeaderClassName, PrintTitleClassName, QRCodeConfirmation, QuestionAnswerType, QuestionCountSelector, REDIRECT_URL, RELEASE_DATE, RecentUserAction, RecentUserActionNames, RecentUserActionSortBy, ReleaseAlert, Role, SUPER_ADMIN_BASE_URL, SchoolType$1 as SchoolType, ScoreSelector, SearchInput, ShareToTeacherDialog, StudentInfoDrawer, StudentSelector, SubjectSelector, TextbookActionButtons, TextbookViewDetail as TextbookDetail, TextbookDrawer, TextbookEditorType, TextbookList, TheAcademyDropdown, TheLanguageDropdown, TinyEditor, UserList, UserSortColumn, VirtualListView, VirtualTableView, api, apiUpload, canAccess as canAccessRoute, convertHHMMSStoSeconds, createRecentUserActionListApi, diffFromNow, ellipsisText, encodeParams, formatDataMyAnswer, formatDateTime, formatPhoneNumber, formatRole, formatTextbookDataMyAnswer, formatTime, formatTimeSecond, getAcademyDomain, getAccessToken, getErrorMessage, getLanguage, getLearningSpace, getLocalDayOfWeek, getOrdinalSuffix, getRecentUserActionListApi, getRedirectUrl, getRemainTime, getRole, getUtcDayOfWeek, i18n, includePathname, isLocalHost, isTextType, minutesToTimeSpan, pushTo, reset, setAcademies, setAcademy, setAlert, setConcurrentConnectionPusher, setLanguage, setLoading, setReFetchUserAcademies, setTotalUnreadMessages, setUser, store, timAgo, timeSpanToLocalMoment, toISOString, toLocalTime, totalSolveTimeCategories, totalTextbookSolveTimeCategories, useAutoAcademyDomain, useChatContainer, useCountDownTimer, useGoogleSignOut, useKeyboardVisible, useLanguage, useList, useLoadMore, useLogin, useNotes, usePusherConversation, useSwitchAcademy, useVirtualizeList, utcToLocalTime };
|
39030
40535
|
//# sourceMappingURL=index.modern.js.map
|