touchstudy-core 0.1.88 → 0.1.89
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/Alerts/ReleaseAlert.d.ts +3 -0
- package/dist/components/Alerts/index.d.ts +2 -0
- package/dist/configs/constants.d.ts +1 -0
- package/dist/containers/Classes/components/StudentList.d.ts +1 -1
- package/dist/containers/Classes/hooks/useClassDetail.d.ts +8 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +96 -20
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +96 -21
- package/dist/index.modern.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/package.json +1 -1
@@ -9,7 +9,7 @@ interface Props {
|
|
9
9
|
t: any;
|
10
10
|
selectedStudent: StudentClassResponse | undefined;
|
11
11
|
textSearchRef: RefObject<HTMLInputElement> | null;
|
12
|
-
|
12
|
+
isOneRoleExists?: boolean;
|
13
13
|
handleOpenDeleteClassDialog: (value: StudentClassResponse) => void;
|
14
14
|
handleCloseConfirmDialog: () => void;
|
15
15
|
handleSort: (key: UserClassSortBy) => void;
|
@@ -4,9 +4,14 @@ import _ from "lodash";
|
|
4
4
|
import { ChangeEvent } from "react";
|
5
5
|
import { ClassResponse, StudentClassResponse, TeacherClassResponse, ClassRequest, LessonRequest } from "../configs/types";
|
6
6
|
import { PagingResponse } from "../../../utils/types/pagingResponse";
|
7
|
+
import { Role } from "../../..";
|
7
8
|
import { UserSortColumn } from "../../../utils/enums";
|
8
9
|
declare type DialogOpenType = "Student" | "Teacher" | "Lesson";
|
9
|
-
declare const useClassDetail: (history
|
10
|
+
declare const useClassDetail: ({ history, id, role }: {
|
11
|
+
history: any;
|
12
|
+
id?: string | undefined;
|
13
|
+
role: Role;
|
14
|
+
}) => {
|
10
15
|
id: string | undefined;
|
11
16
|
schema: import("yup").ObjectSchema<{
|
12
17
|
name: string;
|
@@ -25,6 +30,7 @@ declare const useClassDetail: (history: any, id?: string | undefined) => {
|
|
25
30
|
mainTeacherId: undefined;
|
26
31
|
courseWeeklyDays: "";
|
27
32
|
}, "">;
|
33
|
+
isAdmin: boolean;
|
28
34
|
paging: PagingResponse;
|
29
35
|
filter: import("../../../utils/types/searchQuery").BaseSearchQuery<UserSortColumn>;
|
30
36
|
listUserSelected: number[];
|
@@ -43,6 +49,7 @@ declare const useClassDetail: (history: any, id?: string | undefined) => {
|
|
43
49
|
course: ClassResponse | undefined;
|
44
50
|
userList: StudentClassResponse[] | TeacherClassResponse[];
|
45
51
|
teacherOptions: import("../configs/types").TeacherSimpleResponse[];
|
52
|
+
isOneRoleExists: boolean;
|
46
53
|
studentListProps: {
|
47
54
|
paging: PagingResponse;
|
48
55
|
classList: StudentClassResponse[];
|
package/dist/index.d.ts
CHANGED
@@ -83,4 +83,5 @@ import ClassDetail from "./containers/Classes/views/ClassDetail";
|
|
83
83
|
import UserList from "./containers/Users/views/UserList";
|
84
84
|
import NotificationDetail from "./containers/Notifications/views/NotificationDetail";
|
85
85
|
import NotificationList from "./containers/Notifications/views/NotificationList";
|
86
|
+
export * from "./components/Alerts";
|
86
87
|
export { diffFromNow, formatTime, utcToLocalTime, setLoading, setReadyRegisterPusher, BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, Login, store, setAlert, setUser, Loading, NotFound, LayoutContext, api, apiUpload, ConfirmDialog, CommonDialog, LoginWithEmail, NotificationList, CustomPagination, useGoogleSignOut, RecentUserAction, PUSHER_CONFIG, ExamEvent, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, setLanguage, i18n, TheLanguageDropdown, PrintExamView2, TheAcademyDropdown, useTranslation, I18nextProvider, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, minutesToTimeSpan, toISOString, canAccessRoute, CustomSelect, NotificationDetail, CustomAsyncSelect, CustomSelectOption, LoginWithPassword, getRecentUserActionListApi, getAccessToken, ChatContainer, getOrdinalSuffix, IChatContainerProps, IChatItemProps, IChatHeaderProps, IInputChatProps, ChatItemType, useChatContainer, ConversationResponse, usePusherConversation, ExamResultV2, ToastContainer, toast, Role, useLanguage, useSwitchAcademy, LANGUAGES, CustomCreatable, moment, ExamDetailView, ExamDetailViewProps, Exam, Question, ArticleGroup, getAcademyDomain, useSubjectSelect, useLogin, useAutoAcademyDomain, createRecentUserActionListApi, LoginAccessTokenRequest, LoginRequest, setReFetchUserAcademies, ChatTypes, AcademyHeaders, Types, Enums, CoreHooks, Language, ArticleGroupView, AnswerCountSelector, QuestionCountSelector, ScoreSelector, ArticleCategorySelector, SubjectSelector, useCategorySelect, InputText, Textbook, TextbookDetail, TextbookList, timeUtils, Header, DEFAULT_PAGING_RESPONSE, PagingResponse, AcademyList, getErrorMessage, DefaultErrorMessage, useCountDownTimer, useLoadMore, useVirtualizeList, PassCodeCheck, PassCodeCheckProps, LoadingComponent, PrintExamResultView, checkSuperUrl, ClassList, ClassDetail, formatRole, getRole, UserList };
|
package/dist/index.js
CHANGED
@@ -87,6 +87,7 @@ var PUSHER_CONFIG = {
|
|
87
87
|
cluster: process.env.REACT_APP_PUSHER_CONFIG_CLUSTER || "",
|
88
88
|
key: process.env.REACT_APP_PUSHER_CONFIG_KEY || ""
|
89
89
|
};
|
90
|
+
var RELEASE_DATE = process.env.REACT_APP_RELEASE_VERSION || "";
|
90
91
|
var ACCESS_TOKEN = "ACCESS_TOKEN";
|
91
92
|
var ACADEMY_DOMAIN = "ACADEMY_DOMAIN";
|
92
93
|
var REDIRECT_URL = "REDIRECT_URL";
|
@@ -1185,6 +1186,7 @@ var LANGUAGES = [{
|
|
1185
1186
|
momentLangCode: "en-au"
|
1186
1187
|
}];
|
1187
1188
|
var DEFAULT_LANGUAGE = LANGUAGES[0];
|
1189
|
+
var LOGIN_URL = "/login";
|
1188
1190
|
|
1189
1191
|
var getLanguage = (function () {
|
1190
1192
|
try {
|
@@ -1226,6 +1228,7 @@ var useLanguage = function useLanguage(history) {
|
|
1226
1228
|
moment.locale(languageItem.momentLangCode);
|
1227
1229
|
localStorage.setItem(LANGUAGE, languageItem.code);
|
1228
1230
|
dispatch(setLanguage(languageItem.code));
|
1231
|
+
if (window.location.pathname === LOGIN_URL) return;
|
1229
1232
|
searchParams.set("lang", languageItem.code);
|
1230
1233
|
pushTo(history, _extends({}, window.location, {
|
1231
1234
|
search: searchParams.toString()
|
@@ -2947,6 +2950,9 @@ var total_exam = "총 시험 수";
|
|
2947
2950
|
var total_exam_time = "총 시험 시간";
|
2948
2951
|
var total_question = "총 질문 수";
|
2949
2952
|
var the_exam_code_you_are_looking_for_was_not_found = "찾고 있는 시험 코드를 찾을 수 없습니다";
|
2953
|
+
var view_user = "사용자 보기";
|
2954
|
+
var exam_code = "시험 코드";
|
2955
|
+
var version = "버전";
|
2950
2956
|
var lang_ko = {
|
2951
2957
|
problem_solving: problem_solving,
|
2952
2958
|
my_story: my_story,
|
@@ -3746,7 +3752,10 @@ var lang_ko = {
|
|
3746
3752
|
total_exam: total_exam,
|
3747
3753
|
total_exam_time: total_exam_time,
|
3748
3754
|
total_question: total_question,
|
3749
|
-
the_exam_code_you_are_looking_for_was_not_found: the_exam_code_you_are_looking_for_was_not_found
|
3755
|
+
the_exam_code_you_are_looking_for_was_not_found: the_exam_code_you_are_looking_for_was_not_found,
|
3756
|
+
view_user: view_user,
|
3757
|
+
exam_code: exam_code,
|
3758
|
+
version: version
|
3750
3759
|
};
|
3751
3760
|
|
3752
3761
|
var problem_solving$1 = "Problem Solving";
|
@@ -4556,6 +4565,9 @@ var total_exam$1 = "Total Exam";
|
|
4556
4565
|
var total_exam_time$1 = "Total Exam Time";
|
4557
4566
|
var total_question$1 = "Total Question";
|
4558
4567
|
var the_exam_code_you_are_looking_for_was_not_found$1 = "The exam code you are looking for was not found";
|
4568
|
+
var view_user$1 = "View User";
|
4569
|
+
var exam_code$1 = "exam code";
|
4570
|
+
var version$1 = "Version";
|
4559
4571
|
var lang_en = {
|
4560
4572
|
problem_solving: problem_solving$1,
|
4561
4573
|
my_story: my_story$1,
|
@@ -5356,7 +5368,10 @@ var lang_en = {
|
|
5356
5368
|
total_exam: total_exam$1,
|
5357
5369
|
total_exam_time: total_exam_time$1,
|
5358
5370
|
total_question: total_question$1,
|
5359
|
-
the_exam_code_you_are_looking_for_was_not_found: the_exam_code_you_are_looking_for_was_not_found$1
|
5371
|
+
the_exam_code_you_are_looking_for_was_not_found: the_exam_code_you_are_looking_for_was_not_found$1,
|
5372
|
+
view_user: view_user$1,
|
5373
|
+
exam_code: exam_code$1,
|
5374
|
+
version: version$1
|
5360
5375
|
};
|
5361
5376
|
|
5362
5377
|
i18n__default.use(reactI18next.initReactI18next).init({
|
@@ -10694,6 +10709,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
|
|
10694
10709
|
academyDomain = _ref.academyDomain;
|
10695
10710
|
var pathname = window.location.pathname;
|
10696
10711
|
var changeAcademySearchParams = function changeAcademySearchParams() {
|
10712
|
+
var isLoginPage = LOGIN_URL === pathname;
|
10697
10713
|
var search = window.location.search;
|
10698
10714
|
var searchParams = new URLSearchParams(search);
|
10699
10715
|
var paramAcademyDomain = searchParams.get("domain");
|
@@ -10702,6 +10718,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
|
|
10702
10718
|
var isSuperUrl = checkSuperUrl(superUrls, pathname);
|
10703
10719
|
if (!academyDomain) {
|
10704
10720
|
if (!isSuperUrl) {
|
10721
|
+
if (isLoginPage) return;
|
10705
10722
|
!paramAcademyDomain && domain && searchParams.set("domain", domain);
|
10706
10723
|
pushTo(history, {
|
10707
10724
|
pathname: homeUrl,
|
@@ -10730,6 +10747,7 @@ var useAutoAcademyDomain = function useAutoAcademyDomain(logout, history, superU
|
|
10730
10747
|
return;
|
10731
10748
|
}
|
10732
10749
|
if (!paramAcademyDomain) {
|
10750
|
+
if (isLoginPage) return;
|
10733
10751
|
searchParams.set("domain", academyDomain);
|
10734
10752
|
pushTo(history, _extends({}, window.location, {
|
10735
10753
|
search: searchParams.toString()
|
@@ -18620,7 +18638,7 @@ var StudentList = function StudentList(_ref) {
|
|
18620
18638
|
selectedStudent = _ref.selectedStudent,
|
18621
18639
|
t = _ref.t,
|
18622
18640
|
textSearchRef = _ref.textSearchRef,
|
18623
|
-
|
18641
|
+
isOneRoleExists = _ref.isOneRoleExists,
|
18624
18642
|
handleOpenDeleteClassDialog = _ref.handleOpenDeleteClassDialog,
|
18625
18643
|
handleCloseConfirmDialog = _ref.handleCloseConfirmDialog,
|
18626
18644
|
handleSort = _ref.handleSort,
|
@@ -18680,7 +18698,7 @@ var StudentList = function StudentList(_ref) {
|
|
18680
18698
|
},
|
18681
18699
|
placeholder: t("search_for"),
|
18682
18700
|
onChange: handleChangeSearchText
|
18683
|
-
}))), React__default.createElement(material.Grid, {
|
18701
|
+
}))), isOneRoleExists && React__default.createElement(material.Grid, {
|
18684
18702
|
item: true,
|
18685
18703
|
xs: 6,
|
18686
18704
|
className: "d-flex align-items-center"
|
@@ -18716,11 +18734,11 @@ var StudentList = function StudentList(_ref) {
|
|
18716
18734
|
className: "d-flex"
|
18717
18735
|
}, React__default.createElement(material.IconButton, {
|
18718
18736
|
color: "default",
|
18719
|
-
className: (
|
18737
|
+
className: (!isOneRoleExists ? "bg-secondary" : "bg-danger") + " text-white",
|
18720
18738
|
onClick: function onClick() {
|
18721
18739
|
return handleOpenDeleteClassDialog(i);
|
18722
18740
|
},
|
18723
|
-
disabled:
|
18741
|
+
disabled: !isOneRoleExists
|
18724
18742
|
}, React__default.createElement(fa6.FaTrashCan, {
|
18725
18743
|
size: 12
|
18726
18744
|
})))));
|
@@ -18767,6 +18785,7 @@ var SelectDialog = function SelectDialog(_ref) {
|
|
18767
18785
|
onSubmit = _ref.onSubmit;
|
18768
18786
|
var _useTranslation = reactI18next.useTranslation(),
|
18769
18787
|
t = _useTranslation.t;
|
18788
|
+
var theme = material.useTheme();
|
18770
18789
|
var handleSubmit = function handleSubmit() {
|
18771
18790
|
onSubmit(selected);
|
18772
18791
|
handleClear();
|
@@ -18866,7 +18885,12 @@ var SelectDialog = function SelectDialog(_ref) {
|
|
18866
18885
|
disabled: !numSelected,
|
18867
18886
|
onClick: handleSubmit
|
18868
18887
|
}, submitText), React__default.createElement(material.Button, {
|
18869
|
-
|
18888
|
+
sx: {
|
18889
|
+
background: theme.palette.grey[600],
|
18890
|
+
"&:hover": {
|
18891
|
+
background: theme.palette.grey[800]
|
18892
|
+
}
|
18893
|
+
},
|
18870
18894
|
variant: "contained",
|
18871
18895
|
onClick: onClose
|
18872
18896
|
}, t('cancel'))));
|
@@ -18938,7 +18962,7 @@ var TeacherList = function TeacherList(_ref) {
|
|
18938
18962
|
"aria-label": "search google maps"
|
18939
18963
|
},
|
18940
18964
|
onChange: handleChangeSearchText
|
18941
|
-
}))), React__default.createElement(material.Grid, {
|
18965
|
+
}))), !disabled && React__default.createElement(material.Grid, {
|
18942
18966
|
item: true,
|
18943
18967
|
xs: 6,
|
18944
18968
|
className: "d-flex align-items-center"
|
@@ -18951,8 +18975,7 @@ var TeacherList = function TeacherList(_ref) {
|
|
18951
18975
|
}),
|
18952
18976
|
onClick: function onClick() {
|
18953
18977
|
return onAdd === null || onAdd === void 0 ? void 0 : onAdd("Teacher");
|
18954
|
-
}
|
18955
|
-
disabled: disabled
|
18978
|
+
}
|
18956
18979
|
}, t("add_teachers"))), React__default.createElement(material.Grid, {
|
18957
18980
|
item: true,
|
18958
18981
|
xs: 12
|
@@ -19425,11 +19448,21 @@ var _excluded$9 = ["getStudents"],
|
|
19425
19448
|
_excluded2 = ["getTeachers"],
|
19426
19449
|
_excluded3 = ["getLessons"];
|
19427
19450
|
var PAGE_TITLE$5 = "classes";
|
19428
|
-
var useClassDetail = function useClassDetail(
|
19451
|
+
var useClassDetail = function useClassDetail(_ref) {
|
19452
|
+
var history = _ref.history,
|
19453
|
+
id = _ref.id,
|
19454
|
+
role = _ref.role;
|
19429
19455
|
var _useTranslation = reactI18next.useTranslation(),
|
19430
19456
|
t = _useTranslation.t;
|
19431
19457
|
var dispatch = reactRedux.useDispatch();
|
19432
19458
|
var schema = ClassSchema(t);
|
19459
|
+
var user = reactRedux.useSelector(function (state) {
|
19460
|
+
var _state$common;
|
19461
|
+
return state === null || state === void 0 ? void 0 : (_state$common = state.common) === null || _state$common === void 0 ? void 0 : _state$common.user;
|
19462
|
+
});
|
19463
|
+
var roles = (user === null || user === void 0 ? void 0 : user.roles) || [];
|
19464
|
+
var isOneRoleExists = roles.length === 1;
|
19465
|
+
var isAdmin = roles.includes(exports.Role.Admin) && role === exports.Role.Admin;
|
19433
19466
|
var _useState = React.useState(),
|
19434
19467
|
course = _useState[0],
|
19435
19468
|
setCourse = _useState[1];
|
@@ -19849,6 +19882,7 @@ var useClassDetail = function useClassDetail(history, id) {
|
|
19849
19882
|
return {
|
19850
19883
|
id: id,
|
19851
19884
|
schema: schema,
|
19885
|
+
isAdmin: isAdmin,
|
19852
19886
|
paging: paging,
|
19853
19887
|
filter: filter,
|
19854
19888
|
listUserSelected: selected,
|
@@ -19867,6 +19901,7 @@ var useClassDetail = function useClassDetail(history, id) {
|
|
19867
19901
|
course: course,
|
19868
19902
|
userList: openSelectDialog === "Student" ? students : teachers,
|
19869
19903
|
teacherOptions: teacherOptions,
|
19904
|
+
isOneRoleExists: isOneRoleExists,
|
19870
19905
|
studentListProps: studentListProps,
|
19871
19906
|
teacherListProps: teacherListProps,
|
19872
19907
|
lessonListProps: lessonListProps,
|
@@ -20123,7 +20158,7 @@ var LessonList = function LessonList(_ref) {
|
|
20123
20158
|
className: "d-flex mb-2"
|
20124
20159
|
}, React__default.createElement(material.Typography, {
|
20125
20160
|
variant: "h4"
|
20126
|
-
}, t("lessons"))), React__default.createElement(material.Grid, {
|
20161
|
+
}, t("lessons"))), !disabled && React__default.createElement(material.Grid, {
|
20127
20162
|
item: true,
|
20128
20163
|
xs: 6,
|
20129
20164
|
className: "d-flex align-items-center"
|
@@ -20224,10 +20259,14 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
20224
20259
|
history = _ref.history,
|
20225
20260
|
classListUrl = _ref.classListUrl,
|
20226
20261
|
role = _ref.role;
|
20227
|
-
var
|
20228
|
-
|
20262
|
+
var _useClassDetail = useClassDetail({
|
20263
|
+
history: history,
|
20264
|
+
id: id,
|
20265
|
+
role: role
|
20266
|
+
}),
|
20229
20267
|
schema = _useClassDetail.schema,
|
20230
20268
|
paging = _useClassDetail.paging,
|
20269
|
+
isAdmin = _useClassDetail.isAdmin,
|
20231
20270
|
filter = _useClassDetail.filter,
|
20232
20271
|
listUserSelected = _useClassDetail.listUserSelected,
|
20233
20272
|
userList = _useClassDetail.userList,
|
@@ -20244,6 +20283,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
20244
20283
|
course = _useClassDetail.course,
|
20245
20284
|
classRequest = _useClassDetail.classRequest,
|
20246
20285
|
teacherOptions = _useClassDetail.teacherOptions,
|
20286
|
+
isOneRoleExists = _useClassDetail.isOneRoleExists,
|
20247
20287
|
studentListProps = _useClassDetail.studentListProps,
|
20248
20288
|
teacherListProps = _useClassDetail.teacherListProps,
|
20249
20289
|
lessonListProps = _useClassDetail.lessonListProps,
|
@@ -20331,7 +20371,7 @@ var ClassDetail = function ClassDetail(_ref) {
|
|
20331
20371
|
value: selected,
|
20332
20372
|
index: TabList$2[1].value
|
20333
20373
|
}, !!id && !Number.isNaN(+id) && selected === TabList$2[1].value && React__default.createElement(StudentList, Object.assign({
|
20334
|
-
|
20374
|
+
isOneRoleExists: isOneRoleExists,
|
20335
20375
|
onAdd: handleOpenSelectDialog
|
20336
20376
|
}, studentListProps))), React__default.createElement(CustomTabPanel, {
|
20337
20377
|
value: selected,
|
@@ -20586,7 +20626,7 @@ var UserDialog = function UserDialog(_ref) {
|
|
20586
20626
|
open: open,
|
20587
20627
|
onClose: onClose,
|
20588
20628
|
size: "md",
|
20589
|
-
title: t(data !== null && data !== void 0 && data.id ? "update_user" : "create_new_user")
|
20629
|
+
title: !disabled ? t(data !== null && data !== void 0 && data.id ? "update_user" : "create_new_user") : t('view_user')
|
20590
20630
|
}, React__default.createElement("form", {
|
20591
20631
|
onSubmit: handleSubmit(onSubmit),
|
20592
20632
|
style: {
|
@@ -20767,11 +20807,10 @@ var UserDialog = function UserDialog(_ref) {
|
|
20767
20807
|
color: "secondary",
|
20768
20808
|
className: "bg-secondary",
|
20769
20809
|
onClick: onClose
|
20770
|
-
}, t("cancel")), React__default.createElement(material.Button, {
|
20810
|
+
}, t("cancel")), !disabled && React__default.createElement(material.Button, {
|
20771
20811
|
variant: "contained",
|
20772
20812
|
color: "primary",
|
20773
|
-
type: "submit"
|
20774
|
-
disabled: disabled
|
20813
|
+
type: "submit"
|
20775
20814
|
}, data !== null && data !== void 0 && data.id ? t("update") : t("create")))));
|
20776
20815
|
};
|
20777
20816
|
|
@@ -21548,7 +21587,7 @@ var UserList = function UserList(_ref) {
|
|
21548
21587
|
key: i.id
|
21549
21588
|
}, React__default.createElement(TableCell, null, (paging.page - 1) * paging.limit + index + 1), React__default.createElement(TableCell, null, i.email), React__default.createElement(TableCell, null, i.fullName), React__default.createElement(TableCell, null, i.phoneNumber), React__default.createElement(TableCell, null, i.schoolName), React__default.createElement(TableCell, null, i.major), React__default.createElement(TableCell, null, i.grade), React__default.createElement(TableCell, null, utcToLocalTime(i.createdAt, t("date_time_format"))), React__default.createElement(TableCell, null, (_i$classes = i.classes) === null || _i$classes === void 0 ? void 0 : _i$classes.join(", ")), React__default.createElement(TableCell, null, !!i.roles && formatRole(i.roles, t)), React__default.createElement(TableCell, null, React__default.createElement("div", {
|
21550
21589
|
className: "d-flex"
|
21551
|
-
}, React__default.createElement(material.IconButton, {
|
21590
|
+
}, isAdmin ? React__default.createElement(material.IconButton, {
|
21552
21591
|
color: "default",
|
21553
21592
|
className: styles$6["action-btn"] + " bg-warning text-white me-2",
|
21554
21593
|
onClick: function onClick() {
|
@@ -21557,6 +21596,14 @@ var UserList = function UserList(_ref) {
|
|
21557
21596
|
}, React__default.createElement(hi.HiOutlinePencilAlt, {
|
21558
21597
|
className: styles$6["action-btn--pencil"],
|
21559
21598
|
size: 16
|
21599
|
+
})) : React__default.createElement(material.IconButton, {
|
21600
|
+
color: "default",
|
21601
|
+
className: "bg-primary text-white me-1",
|
21602
|
+
onClick: function onClick() {
|
21603
|
+
return handleOpenUserDialog(i);
|
21604
|
+
}
|
21605
|
+
}, React__default.createElement(fa.FaEye, {
|
21606
|
+
size: 12
|
21560
21607
|
})), isAdmin && React__default.createElement(material.IconButton, {
|
21561
21608
|
onClick: function onClick() {
|
21562
21609
|
return openDeleteDialog(i);
|
@@ -22553,6 +22600,34 @@ var NotificationList = function NotificationList(_ref) {
|
|
22553
22600
|
})));
|
22554
22601
|
};
|
22555
22602
|
|
22603
|
+
var ReleaseAlert = function ReleaseAlert() {
|
22604
|
+
var _useTranslation = reactI18next.useTranslation(),
|
22605
|
+
t = _useTranslation.t;
|
22606
|
+
var releaseDate = RELEASE_DATE;
|
22607
|
+
var isInValidDate = !releaseDate || releaseDate === DATE_MIN_VALUE || releaseDate === DATE_TIME_MIN_VALUE;
|
22608
|
+
var isLoginPage = window.location.pathname === LOGIN_URL;
|
22609
|
+
if (isInValidDate || !moment.utc(releaseDate).isValid()) return null;else {
|
22610
|
+
var version = moment(releaseDate).format("HH.mm.YYYY.MM.DD");
|
22611
|
+
return React__default.createElement(material.Box, {
|
22612
|
+
sx: {
|
22613
|
+
position: "fixed",
|
22614
|
+
right: 10,
|
22615
|
+
bottom: isLoginPage ? undefined : 5,
|
22616
|
+
top: isLoginPage ? 10 : undefined,
|
22617
|
+
userSelect: "none",
|
22618
|
+
zIndex: 1
|
22619
|
+
}
|
22620
|
+
}, React__default.createElement(material.Typography, {
|
22621
|
+
color: "success",
|
22622
|
+
sx: {
|
22623
|
+
fontSize: 10,
|
22624
|
+
color: "#3DC674",
|
22625
|
+
opacity: 0.8
|
22626
|
+
}
|
22627
|
+
}, t("version"), ": ", React__default.createElement("span", null, version)));
|
22628
|
+
}
|
22629
|
+
};
|
22630
|
+
|
22556
22631
|
exports.moment = moment;
|
22557
22632
|
Object.defineProperty(exports, 'I18nextProvider', {
|
22558
22633
|
enumerable: true,
|
@@ -22625,6 +22700,7 @@ exports.PrintExamResultView = PrintExamResultView;
|
|
22625
22700
|
exports.PrintExamView2 = PrintExamView2;
|
22626
22701
|
exports.QuestionCountSelector = QuestionCountSelector;
|
22627
22702
|
exports.RecentUserAction = RecentUserAction;
|
22703
|
+
exports.ReleaseAlert = ReleaseAlert;
|
22628
22704
|
exports.SUPER_ADMIN_BASE_URL = SUPER_ADMIN_BASE_URL;
|
22629
22705
|
exports.ScoreSelector = ScoreSelector;
|
22630
22706
|
exports.SubjectSelector = SubjectSelector;
|