mario-core 2.9.423-feedback → 2.9.425-feedback

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -773,7 +773,7 @@ var image_is_a_required = "Image is a required";
773
773
  var old_iep = "Old IEP";
774
774
  var create_next_years_iep = "Create Next Year's IEP";
775
775
  var write_something_optional = "Write something (Optional)";
776
- var the_effectiveness_of_learning_strategies_by_students_feedback = "The effectiveness of learning strategies as rated by students";
776
+ var the_effectiveness_of_learning_strategies_by_students_feedback = "The effectiveness of learning strategies are rated by students";
777
777
  var perceived_usefulness = "Perceived Usefulness";
778
778
  var performance$1 = "Performance";
779
779
  var not_enough_challenge_leading_to_boredom_and_lack_of_interest = "Not enough challenge, leading to boredom and lack of interest.";
@@ -2195,6 +2195,7 @@ var search_for_a_student = "Search for a student";
2195
2195
  var survey_resulting_in_scheduled_sessions = "Survey resulting in scheduled sessions";
2196
2196
  var current_class_grade = "Current Class Grade";
2197
2197
  var these_are_the_answers_from_classroom_teachers = "These are the answers from classroom teachers.";
2198
+ var total_responses = "Total Responses";
2198
2199
  var lang_us = {
2199
2200
  dashboard: dashboard,
2200
2201
  user: user,
@@ -4405,7 +4406,8 @@ var lang_us = {
4405
4406
  search_for_a_student: search_for_a_student,
4406
4407
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions,
4407
4408
  current_class_grade: current_class_grade,
4408
- these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers
4409
+ these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers,
4410
+ total_responses: total_responses
4409
4411
  };
4410
4412
 
4411
4413
  var dashboard$1 = "Dashboard";
@@ -5145,7 +5147,7 @@ var image_is_a_required$1 = "Image is a required";
5145
5147
  var old_iep$1 = "Old IEP";
5146
5148
  var create_next_years_iep$1 = "Create Next Year's IEP";
5147
5149
  var write_something_optional$1 = "Write something (Optional)";
5148
- var the_effectiveness_of_learning_strategies_by_students_feedback$1 = "The effectiveness of learning strategies as rated by students";
5150
+ var the_effectiveness_of_learning_strategies_by_students_feedback$1 = "The effectiveness of learning strategies are rated by students";
5149
5151
  var perceived_usefulness$1 = "Perceived Usefulness";
5150
5152
  var performance$2 = "Performance";
5151
5153
  var not_enough_challenge_leading_to_boredom_and_lack_of_interest$1 = "Not enough challenge, leading to boredom and lack of interest.";
@@ -6563,6 +6565,7 @@ var search_for_a_student$1 = "Search for a student";
6563
6565
  var survey_resulting_in_scheduled_sessions$1 = "Survey resulting in scheduled sessions";
6564
6566
  var current_class_grade$1 = "Current Class Grade";
6565
6567
  var these_are_the_answers_from_classroom_teachers$1 = "These are the answers from classroom teachers.";
6568
+ var total_responses$1 = "Total Responses";
6566
6569
  var lang_uk = {
6567
6570
  dashboard: dashboard$1,
6568
6571
  user: user$1,
@@ -8770,7 +8773,8 @@ var lang_uk = {
8770
8773
  search_for_a_student: search_for_a_student$1,
8771
8774
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$1,
8772
8775
  current_class_grade: current_class_grade$1,
8773
- these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$1
8776
+ these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$1,
8777
+ total_responses: total_responses$1
8774
8778
  };
8775
8779
 
8776
8780
  var dashboard$2 = "لوحة المعلومات";
@@ -10958,6 +10962,7 @@ var search_for_a_student$2 = "Search for a student";
10958
10962
  var survey_resulting_in_scheduled_sessions$2 = "Survey resulting in scheduled sessions";
10959
10963
  var current_class_grade$2 = "Current Class Grade";
10960
10964
  var these_are_the_answers_from_classroom_teachers$2 = "These are the answers from classroom teachers.";
10965
+ var total_responses$2 = "Total Responses";
10961
10966
  var lang_ar = {
10962
10967
  dashboard: dashboard$2,
10963
10968
  user: user$2,
@@ -13197,7 +13202,8 @@ var lang_ar = {
13197
13202
  search_for_a_student: search_for_a_student$2,
13198
13203
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$2,
13199
13204
  current_class_grade: current_class_grade$2,
13200
- these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$2
13205
+ these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$2,
13206
+ total_responses: total_responses$2
13201
13207
  };
13202
13208
 
13203
13209
  var dashboard$3 = "Cuadro de mandos";
@@ -15385,6 +15391,7 @@ var search_for_a_student$3 = "Search for a student";
15385
15391
  var survey_resulting_in_scheduled_sessions$3 = "Survey resulting in scheduled sessions";
15386
15392
  var current_class_grade$3 = "Current Class Grade";
15387
15393
  var these_are_the_answers_from_classroom_teachers$3 = "These are the answers from classroom teachers.";
15394
+ var total_responses$3 = "Total Responses";
15388
15395
  var lang_es = {
15389
15396
  dashboard: dashboard$3,
15390
15397
  user: user$3,
@@ -17624,7 +17631,8 @@ var lang_es = {
17624
17631
  search_for_a_student: search_for_a_student$3,
17625
17632
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$3,
17626
17633
  current_class_grade: current_class_grade$3,
17627
- these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$3
17634
+ these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$3,
17635
+ total_responses: total_responses$3
17628
17636
  };
17629
17637
 
17630
17638
  var dashboard$4 = "仪表板";
@@ -19812,6 +19820,7 @@ var search_for_a_student$4 = "Search for a student";
19812
19820
  var survey_resulting_in_scheduled_sessions$4 = "Survey resulting in scheduled sessions";
19813
19821
  var current_class_grade$4 = "Current Class Grade";
19814
19822
  var these_are_the_answers_from_classroom_teachers$4 = "These are the answers from classroom teachers.";
19823
+ var total_responses$4 = "Total Responses";
19815
19824
  var lang_zh = {
19816
19825
  dashboard: dashboard$4,
19817
19826
  user: user$4,
@@ -22051,7 +22060,8 @@ var lang_zh = {
22051
22060
  search_for_a_student: search_for_a_student$4,
22052
22061
  survey_resulting_in_scheduled_sessions: survey_resulting_in_scheduled_sessions$4,
22053
22062
  current_class_grade: current_class_grade$4,
22054
- these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$4
22063
+ these_are_the_answers_from_classroom_teachers: these_are_the_answers_from_classroom_teachers$4,
22064
+ total_responses: total_responses$4
22055
22065
  };
22056
22066
 
22057
22067
  var TINY_MCE_API_KEY = "htqausuofrnali3nh9ivmlpq6v415o0tv2qikpg39bqf4pnk";
@@ -41934,6 +41944,212 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
41934
41944
  })), t("log_out")))));
41935
41945
  };
41936
41946
 
41947
+ var apiGetLanguage = function apiGetLanguage() {
41948
+ return api.get(BASE_URL + "/api/language");
41949
+ };
41950
+
41951
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
41952
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
41953
+ };
41954
+
41955
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
41956
+
41957
+ var useLanguages = function useLanguages() {
41958
+ var dispatch = reactRedux.useDispatch();
41959
+
41960
+ var _useTranslation = reactI18next.useTranslation(),
41961
+ i18n = _useTranslation.i18n;
41962
+
41963
+ var language = reactRedux.useSelector(function (state) {
41964
+ return state.common.language;
41965
+ });
41966
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
41967
+
41968
+ var _useState = React.useState([]),
41969
+ languageList = _useState[0],
41970
+ setLanguageList = _useState[1];
41971
+
41972
+ var _useState2 = React.useState(false),
41973
+ dropdownOpen = _useState2[0],
41974
+ setDropdownOpen = _useState2[1];
41975
+
41976
+ var _useState3 = React.useState(defaultLanguage),
41977
+ currentLang = _useState3[0],
41978
+ setCurrentLang = _useState3[1];
41979
+
41980
+ var toggle = function toggle() {
41981
+ return setDropdownOpen(function (prevState) {
41982
+ return !prevState;
41983
+ });
41984
+ };
41985
+
41986
+ var changeLanguageApp = function changeLanguageApp(lang) {
41987
+ try {
41988
+ var _temp3 = function _temp3() {
41989
+ dispatch(setLoading(false));
41990
+ };
41991
+
41992
+ dispatch(setLoading(true));
41993
+
41994
+ var _temp4 = _catch(function () {
41995
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
41996
+ i18n.changeLanguage(lang);
41997
+ setCurrentLang(lang);
41998
+ dispatch(setLanguage(lang));
41999
+ });
42000
+ }, function (err) {
42001
+ var _err$response, _err$response$data;
42002
+
42003
+ dispatch(setAlert({
42004
+ type: "danger",
42005
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
42006
+ }));
42007
+ });
42008
+
42009
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
42010
+ } catch (e) {
42011
+ return Promise.reject(e);
42012
+ }
42013
+ };
42014
+
42015
+ var getListLanguage = function getListLanguage() {
42016
+ try {
42017
+ var _temp6 = _catch(function () {
42018
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
42019
+ setLanguageList(res.data);
42020
+ });
42021
+ }, function (err) {
42022
+ var _err$response2, _err$response2$data;
42023
+
42024
+ dispatch(setAlert({
42025
+ type: "danger",
42026
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
42027
+ }));
42028
+ });
42029
+
42030
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42031
+ } catch (e) {
42032
+ return Promise.reject(e);
42033
+ }
42034
+ };
42035
+
42036
+ React.useEffect(function () {
42037
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
42038
+ getListLanguage();
42039
+ }, []);
42040
+ return {
42041
+ languageList: languageList,
42042
+ toggle: toggle,
42043
+ dropdownOpen: dropdownOpen,
42044
+ currentLang: currentLang,
42045
+ changeLanguageApp: changeLanguageApp,
42046
+ setCurrentLang: setCurrentLang
42047
+ };
42048
+ };
42049
+
42050
+ var TheLanguageDropdown = function TheLanguageDropdown() {
42051
+ var _useLanguages = useLanguages(),
42052
+ languageList = _useLanguages.languageList,
42053
+ toggle = _useLanguages.toggle,
42054
+ dropdownOpen = _useLanguages.dropdownOpen,
42055
+ currentLang = _useLanguages.currentLang,
42056
+ changeLanguageApp = _useLanguages.changeLanguageApp;
42057
+
42058
+ var currentLanguage = React.useMemo(function () {
42059
+ var current = languageList.find(function (i) {
42060
+ return i.code === currentLang;
42061
+ });
42062
+ if (!current) return null;
42063
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
42064
+ className: "mr-2 " + styles['dropdown-menu-flag'],
42065
+ src: "" + getStaticFileUrl(current.image)
42066
+ }), " ", current.name);
42067
+ }, [currentLang, languageList]);
42068
+ return React__default.createElement(reactstrap.Dropdown, {
42069
+ isOpen: dropdownOpen,
42070
+ toggle: toggle,
42071
+ className: "" + styles["dropdown-menu"]
42072
+ }, React__default.createElement(reactstrap.DropdownToggle, {
42073
+ className: styles["header-avatar"] + " d-flex align-items-center"
42074
+ }, React__default.createElement("span", {
42075
+ style: {
42076
+ color: "#000",
42077
+ textTransform: "capitalize",
42078
+ display: 'flex',
42079
+ alignItems: 'center'
42080
+ }
42081
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
42082
+ className: "ml-2",
42083
+ style: {
42084
+ fontSize: '10px'
42085
+ }
42086
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
42087
+ className: styles["dropdown-content-language"]
42088
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
42089
+ return React__default.createElement(reactstrap.DropdownItem, {
42090
+ key: lang.code,
42091
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
42092
+ onClick: function onClick() {
42093
+ return changeLanguageApp(lang.code);
42094
+ }
42095
+ }, React__default.createElement("div", {
42096
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
42097
+ }, React__default.createElement("span", {
42098
+ className: "mr-2 d-flex hover-opacity"
42099
+ }, React__default.createElement("img", {
42100
+ style: {
42101
+ width: "30px",
42102
+ height: "25px",
42103
+ borderRadius: "5px"
42104
+ },
42105
+ src: getStaticFileUrl(lang.image)
42106
+ })), lang.name));
42107
+ })));
42108
+ };
42109
+
42110
+ var TheHeader = function TheHeader(_ref) {
42111
+ var onToggleModel = _ref.onToggleModel;
42112
+ var dispatch = reactRedux.useDispatch();
42113
+ var sidebarShow = reactRedux.useSelector(function (state) {
42114
+ return state.common.sidebarShow;
42115
+ });
42116
+
42117
+ var _useTranslation = reactI18next.useTranslation(),
42118
+ t = _useTranslation.t;
42119
+
42120
+ var toggleSidebarMobile = function toggleSidebarMobile() {
42121
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
42122
+ dispatch(setSidebar(val));
42123
+ };
42124
+
42125
+ var isDistrict = window.location.host.includes("-district");
42126
+ return React__default.createElement(react.CHeader, {
42127
+ withSubheader: true,
42128
+ className: "d-flex align-items-center justify-content-end"
42129
+ }, React__default.createElement(react.CToggler, {
42130
+ inHeader: true,
42131
+ className: "ml-md-3 d-lg-none",
42132
+ onClick: toggleSidebarMobile
42133
+ }), React__default.createElement(react.CHeaderBrand, {
42134
+ className: "mx-auto flex-grow-1 d-lg-none",
42135
+ to: "/"
42136
+ }, React__default.createElement("img", {
42137
+ src: getStaticFileUrl(Images.LOGO_HEADER),
42138
+ className: styles["header-logo"]
42139
+ })), React__default.createElement(react.CHeaderNav, {
42140
+ className: "pr-3"
42141
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
42142
+ className: "mr-3",
42143
+ style: {
42144
+ color: '#000'
42145
+ },
42146
+ href: '/privacy-policy',
42147
+ target: "blank"
42148
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
42149
+ onToggleModel: onToggleModel
42150
+ })));
42151
+ };
42152
+
41937
42153
  var TITLE$3 = "Not found";
41938
42154
 
41939
42155
  var NotFound = function NotFound() {
@@ -41991,6 +42207,258 @@ var TheContent = function TheContent(_ref) {
41991
42207
 
41992
42208
  var TheContent$1 = React__default.memo(TheContent);
41993
42209
 
42210
+ var loadingStyle = {
42211
+ minWidth: "100vw",
42212
+ minHeight: "100vh",
42213
+ position: "fixed",
42214
+ top: 0,
42215
+ left: 0,
42216
+ zIndex: 999999999,
42217
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
42218
+ display: "flex",
42219
+ justifyContent: "center",
42220
+ alignItems: "center"
42221
+ };
42222
+
42223
+ var Loading = function Loading() {
42224
+ var isLoading = reactRedux.useSelector(function (state) {
42225
+ return state.common.isLoading;
42226
+ });
42227
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
42228
+ return isLoading ? React__default.createElement("div", {
42229
+ style: loadingStyle
42230
+ }, React__default.createElement("div", {
42231
+ className: "spinner-border text-secondary",
42232
+ role: "status"
42233
+ }, React__default.createElement("span", {
42234
+ className: "sr-only"
42235
+ }, "Loading..."))) : null;
42236
+ };
42237
+
42238
+ var firstCheckToken = function firstCheckToken() {
42239
+ return Promise.resolve(_catch(function () {
42240
+ var token = getAccessToken();
42241
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
42242
+ return tokenStatus.data ? true : false;
42243
+ }) : false;
42244
+ }, function () {
42245
+ return false;
42246
+ }));
42247
+ };
42248
+
42249
+ var canAccess = function canAccess(userRoles, componentRoles) {
42250
+ if (!Array.isArray(userRoles)) {
42251
+ return false;
42252
+ }
42253
+
42254
+ if (Array.isArray(componentRoles)) {
42255
+ var intersects = userRoles.filter(function (i) {
42256
+ return componentRoles.includes(i);
42257
+ });
42258
+ return intersects.length > 0;
42259
+ }
42260
+
42261
+ return true;
42262
+ };
42263
+
42264
+ var ModelSelectRole = function ModelSelectRole(_ref) {
42265
+ var _handleUserRole;
42266
+
42267
+ var open = _ref.open,
42268
+ onToggleModel = _ref.onToggleModel;
42269
+ var dispatch = reactRedux.useDispatch();
42270
+
42271
+ var _useTranslation = reactI18next.useTranslation(),
42272
+ t = _useTranslation.t;
42273
+
42274
+ var history = reactRouterDom.useHistory();
42275
+ var pathname = window.location.pathname;
42276
+ var user = reactRedux.useSelector(function (state) {
42277
+ return state.common.user;
42278
+ });
42279
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
42280
+
42281
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
42282
+ dispatch(setLoading(true));
42283
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
42284
+ dispatch(setUser(_extends({}, user, {
42285
+ roles: roleSelect
42286
+ })));
42287
+ localStorage.setItem("ROLES", roleSelect.toString());
42288
+ onToggleModel();
42289
+
42290
+ if (roles.includes("Parent")) {
42291
+ history.push("/parent");
42292
+ } else if (roles.includes("Admin")) {
42293
+ history.push("/admin/home");
42294
+ } else {
42295
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
42296
+ }
42297
+ };
42298
+
42299
+ return React__default.createElement(reactstrap.Modal, {
42300
+ isOpen: open,
42301
+ toggle: function toggle() {
42302
+ return onToggleModel();
42303
+ },
42304
+ className: "" + styles["model-switch-roles"],
42305
+ centered: true
42306
+ }, React__default.createElement("p", {
42307
+ className: "" + styles["title"]
42308
+ }, t("continue_as")), React__default.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
42309
+ return React__default.createElement("p", {
42310
+ key: r,
42311
+ className: styles["item-select-role"] + " " + styles[roles.includes("Teacher") && roles.includes("Assistant") && r === "Teacher/Assistant" && !roles.includes("Admin") || roles.includes("Admin") && r === "Admin" || roles.includes(r) && !roles.includes("Admin") ? "item-role-active" : ""],
42312
+ onClick: function onClick() {
42313
+ return handleSelectUserRoles([r]);
42314
+ }
42315
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
42316
+ })));
42317
+ };
42318
+
42319
+ var TheLayout = function TheLayout(_ref) {
42320
+ var routes = _ref.routes,
42321
+ navigation = _ref.navigation;
42322
+ var history = reactRouterDom.useHistory();
42323
+ var dispatch = reactRedux.useDispatch();
42324
+ var user = reactRedux.useSelector(function (state) {
42325
+ return state.common.user;
42326
+ });
42327
+ var language = reactRedux.useSelector(function (state) {
42328
+ return state.common.language;
42329
+ });
42330
+
42331
+ var _useState = React.useState(false),
42332
+ openModelSelectRole = _useState[0],
42333
+ setOpenModelSelectRole = _useState[1];
42334
+
42335
+ var _useTranslation = reactI18next.useTranslation(),
42336
+ t = _useTranslation.t;
42337
+
42338
+ var location = reactRouterDom.useLocation();
42339
+ var isNotification = location.pathname.includes("notifications");
42340
+ var isDistrict = window.location.host.includes("-district");
42341
+
42342
+ var handleToggleModel = function handleToggleModel() {
42343
+ setOpenModelSelectRole(!openModelSelectRole);
42344
+ };
42345
+
42346
+ var authRoutes = React.useMemo(function () {
42347
+ return routes.filter(function (route) {
42348
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
42349
+ }).filter(function (route) {
42350
+ return !!route.isDistrict === isDistrict;
42351
+ });
42352
+ }, [user, language]);
42353
+ var authNavigations = React.useMemo(function () {
42354
+ return navigation.map(function (item) {
42355
+ var _item$_children, _item$_children2;
42356
+
42357
+ return _extends({}, item, {
42358
+ name: t(item.name),
42359
+ _children: item !== null && item !== void 0 && (_item$_children = item._children) !== null && _item$_children !== void 0 && _item$_children.length ? item === null || item === void 0 ? void 0 : (_item$_children2 = item._children) === null || _item$_children2 === void 0 ? void 0 : _item$_children2.map(function (x) {
42360
+ return _extends({}, x, {
42361
+ name: t(x.name)
42362
+ });
42363
+ }) : undefined
42364
+ });
42365
+ }).filter(function (nav) {
42366
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
42367
+ }).filter(function (nav) {
42368
+ return !!nav.isDistrict === isDistrict;
42369
+ });
42370
+ }, [user, language]);
42371
+
42372
+ var getInformationSetting = function getInformationSetting() {
42373
+ try {
42374
+ var _temp2 = _catch(function () {
42375
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
42376
+ dispatch(setSandboxMode(res.data.isSandboxMode));
42377
+ });
42378
+ }, function (err) {
42379
+ console.error(err);
42380
+ });
42381
+
42382
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
42383
+ } catch (e) {
42384
+ return Promise.reject(e);
42385
+ }
42386
+ };
42387
+
42388
+ React.useEffect(function () {
42389
+ checkAuthentication();
42390
+ }, []);
42391
+ React.useEffect(function () {
42392
+ getInformationSetting();
42393
+ }, [location.pathname]);
42394
+
42395
+ var checkAuthentication = function checkAuthentication() {
42396
+ try {
42397
+ var _temp4 = _catch(function () {
42398
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
42399
+ tokenStatus ? loadInfo() : resetAuth();
42400
+ });
42401
+ }, function () {
42402
+ resetAuth();
42403
+ });
42404
+
42405
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
42406
+ } catch (e) {
42407
+ return Promise.reject(e);
42408
+ }
42409
+ };
42410
+
42411
+ var loadInfo = function loadInfo() {
42412
+ try {
42413
+ var _temp6 = _catch(function () {
42414
+ return Promise.resolve(getInfo()).then(function (info) {
42415
+ var _info$data, _info$data$roles;
42416
+
42417
+ if (!info || !(info !== null && info !== void 0 && (_info$data = info.data) !== null && _info$data !== void 0 && (_info$data$roles = _info$data.roles) !== null && _info$data$roles !== void 0 && _info$data$roles.includes("Admin"))) {
42418
+ resetAuth();
42419
+ }
42420
+
42421
+ dispatch(setUser(info.data));
42422
+ });
42423
+ }, function () {
42424
+ resetAuth();
42425
+ });
42426
+
42427
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
42428
+ } catch (e) {
42429
+ return Promise.reject(e);
42430
+ }
42431
+ };
42432
+
42433
+ var resetAuth = function resetAuth() {
42434
+ localStorage.removeItem(ACCESS_TOKEN);
42435
+ sessionStorage.removeItem(ACCESS_TOKEN);
42436
+ localStorage.removeItem("ROLES");
42437
+ history.push("/");
42438
+ };
42439
+
42440
+ if (!user) {
42441
+ return React__default.createElement(Loading, null);
42442
+ }
42443
+
42444
+ return React__default.createElement("div", {
42445
+ className: "c-app c-default-layout"
42446
+ }, !isNotification && React__default.createElement(TheSidebar, {
42447
+ navigation: authNavigations
42448
+ }), React__default.createElement("div", {
42449
+ className: "c-wrapper"
42450
+ }, !isNotification && React__default.createElement(TheHeader, {
42451
+ onToggleModel: handleToggleModel
42452
+ }), React__default.createElement("div", {
42453
+ className: "c-body bg-white"
42454
+ }, React__default.createElement(TheContent$1, {
42455
+ routes: authRoutes
42456
+ }))), React__default.createElement(ModelSelectRole, {
42457
+ open: openModelSelectRole,
42458
+ onToggleModel: handleToggleModel
42459
+ }));
42460
+ };
42461
+
41994
42462
  var buttonTextStyle = {
41995
42463
  fontWeight: 500
41996
42464
  };
@@ -47742,6 +48210,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
47742
48210
 
47743
48211
  var onAssignStaffToStudents = function onAssignStaffToStudents(listUserIds) {
47744
48212
  try {
48213
+ var _userSelected$filter$, _userSelected$filter;
48214
+
47745
48215
  var _temp27 = function _temp27() {
47746
48216
  dispatch(setLoading(false));
47747
48217
  };
@@ -47762,6 +48232,20 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
47762
48232
  return Promise.resolve();
47763
48233
  }
47764
48234
 
48235
+ var allUsersHaveTeachers = (_userSelected$filter$ = userSelected === null || userSelected === void 0 ? void 0 : (_userSelected$filter = userSelected.filter(function (user) {
48236
+ return listUserIds === null || listUserIds === void 0 ? void 0 : listUserIds.includes(user.id);
48237
+ })) === null || _userSelected$filter === void 0 ? void 0 : _userSelected$filter.every(function (u) {
48238
+ return Array.isArray(u.teachers) && u.teachers.length > 0;
48239
+ })) != null ? _userSelected$filter$ : false;
48240
+
48241
+ if (staffBulkAssign.teacher.length === 0 && !allUsersHaveTeachers) {
48242
+ dispatch(setAlert({
48243
+ type: "danger",
48244
+ message: "Please assign a teacher to each student before giving other educators access to them"
48245
+ }));
48246
+ return Promise.resolve();
48247
+ }
48248
+
47765
48249
  dispatch(setLoading(true));
47766
48250
 
47767
48251
  var _temp28 = _catch(function () {
@@ -51371,34 +51855,6 @@ var UserDetail = function UserDetail() {
51371
51855
  });
51372
51856
  };
51373
51857
 
51374
- var loadingStyle = {
51375
- minWidth: "100vw",
51376
- minHeight: "100vh",
51377
- position: "fixed",
51378
- top: 0,
51379
- left: 0,
51380
- zIndex: 999999999,
51381
- backgroundColor: "rgba(0, 0, 0, 0.4)",
51382
- display: "flex",
51383
- justifyContent: "center",
51384
- alignItems: "center"
51385
- };
51386
-
51387
- var Loading = function Loading() {
51388
- var isLoading = reactRedux.useSelector(function (state) {
51389
- return state.common.isLoading;
51390
- });
51391
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
51392
- return isLoading ? React__default.createElement("div", {
51393
- style: loadingStyle
51394
- }, React__default.createElement("div", {
51395
- className: "spinner-border text-secondary",
51396
- role: "status"
51397
- }, React__default.createElement("span", {
51398
- className: "sr-only"
51399
- }, "Loading..."))) : null;
51400
- };
51401
-
51402
51858
  var ScrollToTop = function ScrollToTop() {
51403
51859
  var _useLocation = reactRouterDom.useLocation(),
51404
51860
  pathname = _useLocation.pathname;
@@ -51506,7 +51962,12 @@ var CommonHeader = function CommonHeader(_ref) {
51506
51962
  }, header))));
51507
51963
  };
51508
51964
 
51965
+ var IDLE_MINUTES_WARNING = 13;
51966
+ var AUTO_LOGOUT_MINUTES = 15;
51967
+
51509
51968
  var NotificationLogoutModal = function NotificationLogoutModal() {
51969
+ var history = reactRouterDom.useHistory();
51970
+
51510
51971
  var _useState = React.useState(false),
51511
51972
  isOpen = _useState[0],
51512
51973
  setIsOpen = _useState[1];
@@ -51518,37 +51979,65 @@ var NotificationLogoutModal = function NotificationLogoutModal() {
51518
51979
  objTime = _useState2[0],
51519
51980
  setObjTime = _useState2[1];
51520
51981
 
51982
+ var getLastActivity = function getLastActivity() {
51983
+ try {
51984
+ var _localStorage$getItem, _localStorage, _localStorage$getItem2;
51985
+
51986
+ return (_localStorage$getItem = (_localStorage = localStorage) === null || _localStorage === void 0 ? void 0 : (_localStorage$getItem2 = _localStorage.getItem) === null || _localStorage$getItem2 === void 0 ? void 0 : _localStorage$getItem2.call(_localStorage, "LAST_ACTIVITY_TIME")) != null ? _localStorage$getItem : null;
51987
+ } catch (_unused) {
51988
+ return null;
51989
+ }
51990
+ };
51991
+
51992
+ var doLogout = function doLogout() {
51993
+ localStorage.removeItem(ACCESS_TOKEN);
51994
+ sessionStorage.removeItem(ACCESS_TOKEN);
51995
+ localStorage.removeItem("ROLES");
51996
+ localStorage.removeItem("LAST_ACTIVITY_TIME");
51997
+ setIsOpen(false);
51998
+ history.replace("/login");
51999
+ };
52000
+
51521
52001
  var checkOpenModalLogout = function checkOpenModalLogout() {
51522
- var lastTimeOut = localStorage.getItem("LAST_TIME_REQUETST");
51523
- var timeMoment = moment(lastTimeOut, "YYYY-MM-DD HH:mm");
52002
+ var accessToken = getAccessToken();
52003
+ if (!accessToken) return;
52004
+ var lastActivity = getLastActivity();
52005
+
52006
+ if (!lastActivity) {
52007
+ var _localStorage2, _localStorage2$setIte;
52008
+
52009
+ (_localStorage2 = localStorage) === null || _localStorage2 === void 0 ? void 0 : (_localStorage2$setIte = _localStorage2.setItem) === null || _localStorage2$setIte === void 0 ? void 0 : _localStorage2$setIte.call(_localStorage2, "LAST_ACTIVITY_TIME", new Date().toISOString());
52010
+ return;
52011
+ }
52012
+
52013
+ var timeMoment = moment(lastActivity, "YYYY-MM-DD HH:mm");
51524
52014
  var currentTime = moment(moment().utc().format("YYYY-MM-DD HH:mm"));
51525
52015
  var minutes = currentTime.diff(timeMoment, "minutes");
51526
- var timeLogout = utcToLocalTime(currentTime.add(16 - minutes, 'minutes').format("YYYY-MM-DD HH:mm"), "HH:mm");
51527
52016
 
51528
- if (minutes == 13) {
51529
- var dataTime = {
52017
+ if (minutes >= AUTO_LOGOUT_MINUTES) {
52018
+ doLogout();
52019
+ return;
52020
+ }
52021
+
52022
+ var timeLogout = utcToLocalTime(currentTime.add(AUTO_LOGOUT_MINUTES - minutes, 'minutes').format("YYYY-MM-DD HH:mm"), "HH:mm");
52023
+
52024
+ if (minutes >= IDLE_MINUTES_WARNING) {
52025
+ setObjTime({
51530
52026
  minutes: minutes,
51531
52027
  timeLogout: timeLogout
51532
- };
51533
- setObjTime(dataTime);
51534
- onToggle();
52028
+ });
52029
+ setIsOpen(true);
51535
52030
  }
51536
52031
  };
51537
52032
 
51538
52033
  React.useEffect(function () {
51539
- var accessToken = getAccessToken();
51540
-
51541
- if (accessToken) {
51542
- var interval = setInterval(function () {
51543
- checkOpenModalLogout();
51544
- }, 60 * 1000);
51545
- return function () {
51546
- return clearInterval(interval);
51547
- };
51548
- }
51549
-
51550
- return;
51551
- }, [location.href]);
52034
+ var interval = setInterval(function () {
52035
+ checkOpenModalLogout();
52036
+ }, 60 * 1000);
52037
+ return function () {
52038
+ return clearInterval(interval);
52039
+ };
52040
+ }, []);
51552
52041
 
51553
52042
  var onToggle = function onToggle() {
51554
52043
  setIsOpen(!isOpen);
@@ -51560,7 +52049,7 @@ var NotificationLogoutModal = function NotificationLogoutModal() {
51560
52049
  size: "xs"
51561
52050
  }, React__default.createElement(reactstrap.ModalHeader, {
51562
52051
  toggle: onToggle
51563
- }, "Notification Logout"), React__default.createElement(reactstrap.ModalBody, null, "Are you still here? You have had no action for " + (objTime === null || objTime === void 0 ? void 0 : objTime.minutes) + " mins. \n Your account could be log out after " + (15 - (objTime === null || objTime === void 0 ? void 0 : objTime.minutes)) + " mins at " + (objTime === null || objTime === void 0 ? void 0 : objTime.timeLogout) + " if you don't action."), React__default.createElement(reactstrap.ModalFooter, {
52052
+ }, "Notification Logout"), React__default.createElement(reactstrap.ModalBody, null, "Are you still here? You have had no action for " + (objTime === null || objTime === void 0 ? void 0 : objTime.minutes) + " mins. \n Your account could be log out after " + (AUTO_LOGOUT_MINUTES - (objTime === null || objTime === void 0 ? void 0 : objTime.minutes)) + " mins at " + (objTime === null || objTime === void 0 ? void 0 : objTime.timeLogout) + " if you don't action."), React__default.createElement(reactstrap.ModalFooter, {
51564
52053
  className: "text-right"
51565
52054
  }, React__default.createElement(reactstrap.Button, {
51566
52055
  color: "primary",
@@ -54422,32 +54911,6 @@ var store = toolkit.configureStore({
54422
54911
  }
54423
54912
  });
54424
54913
 
54425
- var firstCheckToken = function firstCheckToken() {
54426
- return Promise.resolve(_catch(function () {
54427
- var token = getAccessToken();
54428
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
54429
- return tokenStatus.data ? true : false;
54430
- }) : false;
54431
- }, function () {
54432
- return false;
54433
- }));
54434
- };
54435
-
54436
- var canAccess = function canAccess(userRoles, componentRoles) {
54437
- if (!Array.isArray(userRoles)) {
54438
- return false;
54439
- }
54440
-
54441
- if (Array.isArray(componentRoles)) {
54442
- var intersects = userRoles.filter(function (i) {
54443
- return componentRoles.includes(i);
54444
- });
54445
- return intersects.length > 0;
54446
- }
54447
-
54448
- return true;
54449
- };
54450
-
54451
54914
  var isInViewport = function isInViewport(el) {
54452
54915
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
54453
54916
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -54481,410 +54944,6 @@ var generateRandomString = (function () {
54481
54944
  return (Math.random() + 1).toString(36).substring(7);
54482
54945
  });
54483
54946
 
54484
- var apiGetLanguage = function apiGetLanguage() {
54485
- return api.get(BASE_URL + "/api/language");
54486
- };
54487
-
54488
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
54489
- return api.put(BASE_URL + "/api/language?lang=" + lang);
54490
- };
54491
-
54492
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
54493
-
54494
- var useLanguages = function useLanguages() {
54495
- var dispatch = reactRedux.useDispatch();
54496
-
54497
- var _useTranslation = reactI18next.useTranslation(),
54498
- i18n = _useTranslation.i18n;
54499
-
54500
- var language = reactRedux.useSelector(function (state) {
54501
- return state.common.language;
54502
- });
54503
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
54504
-
54505
- var _useState = React.useState([]),
54506
- languageList = _useState[0],
54507
- setLanguageList = _useState[1];
54508
-
54509
- var _useState2 = React.useState(false),
54510
- dropdownOpen = _useState2[0],
54511
- setDropdownOpen = _useState2[1];
54512
-
54513
- var _useState3 = React.useState(defaultLanguage),
54514
- currentLang = _useState3[0],
54515
- setCurrentLang = _useState3[1];
54516
-
54517
- var toggle = function toggle() {
54518
- return setDropdownOpen(function (prevState) {
54519
- return !prevState;
54520
- });
54521
- };
54522
-
54523
- var changeLanguageApp = function changeLanguageApp(lang) {
54524
- try {
54525
- var _temp3 = function _temp3() {
54526
- dispatch(setLoading(false));
54527
- };
54528
-
54529
- dispatch(setLoading(true));
54530
-
54531
- var _temp4 = _catch(function () {
54532
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
54533
- i18n.changeLanguage(lang);
54534
- setCurrentLang(lang);
54535
- dispatch(setLanguage(lang));
54536
- });
54537
- }, function (err) {
54538
- var _err$response, _err$response$data;
54539
-
54540
- dispatch(setAlert({
54541
- type: "danger",
54542
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
54543
- }));
54544
- });
54545
-
54546
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
54547
- } catch (e) {
54548
- return Promise.reject(e);
54549
- }
54550
- };
54551
-
54552
- var getListLanguage = function getListLanguage() {
54553
- try {
54554
- var _temp6 = _catch(function () {
54555
- return Promise.resolve(apiGetLanguage()).then(function (res) {
54556
- setLanguageList(res.data);
54557
- });
54558
- }, function (err) {
54559
- var _err$response2, _err$response2$data;
54560
-
54561
- dispatch(setAlert({
54562
- type: "danger",
54563
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message
54564
- }));
54565
- });
54566
-
54567
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54568
- } catch (e) {
54569
- return Promise.reject(e);
54570
- }
54571
- };
54572
-
54573
- React.useEffect(function () {
54574
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
54575
- getListLanguage();
54576
- }, []);
54577
- return {
54578
- languageList: languageList,
54579
- toggle: toggle,
54580
- dropdownOpen: dropdownOpen,
54581
- currentLang: currentLang,
54582
- changeLanguageApp: changeLanguageApp,
54583
- setCurrentLang: setCurrentLang
54584
- };
54585
- };
54586
-
54587
- var TheLanguageDropdown = function TheLanguageDropdown() {
54588
- var _useLanguages = useLanguages(),
54589
- languageList = _useLanguages.languageList,
54590
- toggle = _useLanguages.toggle,
54591
- dropdownOpen = _useLanguages.dropdownOpen,
54592
- currentLang = _useLanguages.currentLang,
54593
- changeLanguageApp = _useLanguages.changeLanguageApp;
54594
-
54595
- var currentLanguage = React.useMemo(function () {
54596
- var current = languageList.find(function (i) {
54597
- return i.code === currentLang;
54598
- });
54599
- if (!current) return null;
54600
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
54601
- className: "mr-2 " + styles['dropdown-menu-flag'],
54602
- src: "" + getStaticFileUrl(current.image)
54603
- }), " ", current.name);
54604
- }, [currentLang, languageList]);
54605
- return React__default.createElement(reactstrap.Dropdown, {
54606
- isOpen: dropdownOpen,
54607
- toggle: toggle,
54608
- className: "" + styles["dropdown-menu"]
54609
- }, React__default.createElement(reactstrap.DropdownToggle, {
54610
- className: styles["header-avatar"] + " d-flex align-items-center"
54611
- }, React__default.createElement("span", {
54612
- style: {
54613
- color: "#000",
54614
- textTransform: "capitalize",
54615
- display: 'flex',
54616
- alignItems: 'center'
54617
- }
54618
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
54619
- className: "ml-2",
54620
- style: {
54621
- fontSize: '10px'
54622
- }
54623
- }))), React__default.createElement(reactstrap.DropdownMenu, {
54624
- className: styles["dropdown-content-language"]
54625
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
54626
- return React__default.createElement(reactstrap.DropdownItem, {
54627
- key: lang.code,
54628
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
54629
- onClick: function onClick() {
54630
- return changeLanguageApp(lang.code);
54631
- }
54632
- }, React__default.createElement("div", {
54633
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
54634
- }, React__default.createElement("span", {
54635
- className: "mr-2 d-flex hover-opacity"
54636
- }, React__default.createElement("img", {
54637
- style: {
54638
- width: "30px",
54639
- height: "25px",
54640
- borderRadius: "5px"
54641
- },
54642
- src: getStaticFileUrl(lang.image)
54643
- })), lang.name));
54644
- })));
54645
- };
54646
-
54647
- var TheHeader = function TheHeader(_ref) {
54648
- var onToggleModel = _ref.onToggleModel;
54649
- var dispatch = reactRedux.useDispatch();
54650
- var sidebarShow = reactRedux.useSelector(function (state) {
54651
- return state.common.sidebarShow;
54652
- });
54653
-
54654
- var _useTranslation = reactI18next.useTranslation(),
54655
- t = _useTranslation.t;
54656
-
54657
- var toggleSidebarMobile = function toggleSidebarMobile() {
54658
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
54659
- dispatch(setSidebar(val));
54660
- };
54661
-
54662
- var isDistrict = window.location.host.includes("-district");
54663
- return React__default.createElement(react.CHeader, {
54664
- withSubheader: true,
54665
- className: "d-flex align-items-center justify-content-end"
54666
- }, React__default.createElement(react.CToggler, {
54667
- inHeader: true,
54668
- className: "ml-md-3 d-lg-none",
54669
- onClick: toggleSidebarMobile
54670
- }), React__default.createElement(react.CHeaderBrand, {
54671
- className: "mx-auto flex-grow-1 d-lg-none",
54672
- to: "/"
54673
- }, React__default.createElement("img", {
54674
- src: getStaticFileUrl(Images.LOGO_HEADER),
54675
- className: styles["header-logo"]
54676
- })), React__default.createElement(react.CHeaderNav, {
54677
- className: "pr-3"
54678
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
54679
- className: "mr-3",
54680
- style: {
54681
- color: '#000'
54682
- },
54683
- href: '/privacy-policy',
54684
- target: "blank"
54685
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
54686
- onToggleModel: onToggleModel
54687
- })));
54688
- };
54689
-
54690
- var ModelSelectRole = function ModelSelectRole(_ref) {
54691
- var _handleUserRole;
54692
-
54693
- var open = _ref.open,
54694
- onToggleModel = _ref.onToggleModel;
54695
- var dispatch = reactRedux.useDispatch();
54696
-
54697
- var _useTranslation = reactI18next.useTranslation(),
54698
- t = _useTranslation.t;
54699
-
54700
- var history = reactRouterDom.useHistory();
54701
- var pathname = window.location.pathname;
54702
- var user = reactRedux.useSelector(function (state) {
54703
- return state.common.user;
54704
- });
54705
- var roles = user === null || user === void 0 ? void 0 : user.roles;
54706
-
54707
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
54708
- dispatch(setLoading(true));
54709
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
54710
- dispatch(setUser(_extends({}, user, {
54711
- roles: roleSelect
54712
- })));
54713
- localStorage.setItem("ROLES", roleSelect.toString());
54714
- onToggleModel();
54715
-
54716
- if (roles.includes("Parent")) {
54717
- history.push("/parent");
54718
- } else if (roles.includes("Admin")) {
54719
- history.push("/admin/home");
54720
- } else {
54721
- pathname !== "/home" ? history.push("/home") : window.location.reload();
54722
- }
54723
- };
54724
-
54725
- return React__default.createElement(reactstrap.Modal, {
54726
- isOpen: open,
54727
- toggle: function toggle() {
54728
- return onToggleModel();
54729
- },
54730
- className: "" + styles["model-switch-roles"],
54731
- centered: true
54732
- }, React__default.createElement("p", {
54733
- className: "" + styles["title"]
54734
- }, t("continue_as")), React__default.createElement("div", null, (_handleUserRole = handleUserRole(user === null || user === void 0 ? void 0 : user.roles)) === null || _handleUserRole === void 0 ? void 0 : _handleUserRole.map(function (r) {
54735
- return React__default.createElement("p", {
54736
- key: r,
54737
- className: styles["item-select-role"] + " " + styles[roles.includes("Teacher") && roles.includes("Assistant") && r === "Teacher/Assistant" && !roles.includes("Admin") || roles.includes("Admin") && r === "Admin" || roles.includes(r) && !roles.includes("Admin") ? "item-role-active" : ""],
54738
- onClick: function onClick() {
54739
- return handleSelectUserRoles([r]);
54740
- }
54741
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
54742
- })));
54743
- };
54744
-
54745
- var TheLayout = function TheLayout(_ref) {
54746
- var routes = _ref.routes,
54747
- navigation = _ref.navigation;
54748
- var history = reactRouterDom.useHistory();
54749
- var dispatch = reactRedux.useDispatch();
54750
- var user = reactRedux.useSelector(function (state) {
54751
- return state.common.user;
54752
- });
54753
- var language = reactRedux.useSelector(function (state) {
54754
- return state.common.language;
54755
- });
54756
-
54757
- var _useState = React.useState(false),
54758
- openModelSelectRole = _useState[0],
54759
- setOpenModelSelectRole = _useState[1];
54760
-
54761
- var _useTranslation = reactI18next.useTranslation(),
54762
- t = _useTranslation.t;
54763
-
54764
- var location = reactRouterDom.useLocation();
54765
- var isNotification = location.pathname.includes("notifications");
54766
- var isDistrict = window.location.host.includes("-district");
54767
-
54768
- var handleToggleModel = function handleToggleModel() {
54769
- setOpenModelSelectRole(!openModelSelectRole);
54770
- };
54771
-
54772
- var authRoutes = React.useMemo(function () {
54773
- return routes.filter(function (route) {
54774
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
54775
- }).filter(function (route) {
54776
- return !!route.isDistrict === isDistrict;
54777
- });
54778
- }, [user, language]);
54779
- var authNavigations = React.useMemo(function () {
54780
- return navigation.map(function (item) {
54781
- var _item$_children, _item$_children2;
54782
-
54783
- return _extends({}, item, {
54784
- name: t(item.name),
54785
- _children: item !== null && item !== void 0 && (_item$_children = item._children) !== null && _item$_children !== void 0 && _item$_children.length ? item === null || item === void 0 ? void 0 : (_item$_children2 = item._children) === null || _item$_children2 === void 0 ? void 0 : _item$_children2.map(function (x) {
54786
- return _extends({}, x, {
54787
- name: t(x.name)
54788
- });
54789
- }) : undefined
54790
- });
54791
- }).filter(function (nav) {
54792
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
54793
- }).filter(function (nav) {
54794
- return !!nav.isDistrict === isDistrict;
54795
- });
54796
- }, [user, language]);
54797
-
54798
- var getInformationSetting = function getInformationSetting() {
54799
- try {
54800
- var _temp2 = _catch(function () {
54801
- return Promise.resolve(getSchoolSettings()).then(function (res) {
54802
- dispatch(setSandboxMode(res.data.isSandboxMode));
54803
- });
54804
- }, function (err) {
54805
- console.error(err);
54806
- });
54807
-
54808
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
54809
- } catch (e) {
54810
- return Promise.reject(e);
54811
- }
54812
- };
54813
-
54814
- React.useEffect(function () {
54815
- checkAuthentication();
54816
- }, []);
54817
- React.useEffect(function () {
54818
- getInformationSetting();
54819
- }, [location.pathname]);
54820
-
54821
- var checkAuthentication = function checkAuthentication() {
54822
- try {
54823
- var _temp4 = _catch(function () {
54824
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
54825
- tokenStatus ? loadInfo() : resetAuth();
54826
- });
54827
- }, function () {
54828
- resetAuth();
54829
- });
54830
-
54831
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
54832
- } catch (e) {
54833
- return Promise.reject(e);
54834
- }
54835
- };
54836
-
54837
- var loadInfo = function loadInfo() {
54838
- try {
54839
- var _temp6 = _catch(function () {
54840
- return Promise.resolve(getInfo()).then(function (info) {
54841
- var _info$data, _info$data$roles;
54842
-
54843
- if (!info || !(info !== null && info !== void 0 && (_info$data = info.data) !== null && _info$data !== void 0 && (_info$data$roles = _info$data.roles) !== null && _info$data$roles !== void 0 && _info$data$roles.includes("Admin"))) {
54844
- resetAuth();
54845
- }
54846
-
54847
- dispatch(setUser(info.data));
54848
- });
54849
- }, function () {
54850
- resetAuth();
54851
- });
54852
-
54853
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
54854
- } catch (e) {
54855
- return Promise.reject(e);
54856
- }
54857
- };
54858
-
54859
- var resetAuth = function resetAuth() {
54860
- localStorage.removeItem(ACCESS_TOKEN);
54861
- sessionStorage.removeItem(ACCESS_TOKEN);
54862
- localStorage.removeItem("ROLES");
54863
- history.push("/");
54864
- };
54865
-
54866
- if (!user) {
54867
- return React__default.createElement(Loading, null);
54868
- }
54869
-
54870
- return React__default.createElement("div", {
54871
- className: "c-app c-default-layout"
54872
- }, !isNotification && React__default.createElement(TheSidebar, {
54873
- navigation: authNavigations
54874
- }), React__default.createElement("div", {
54875
- className: "c-wrapper"
54876
- }, !isNotification && React__default.createElement(TheHeader, {
54877
- onToggleModel: handleToggleModel
54878
- }), React__default.createElement("div", {
54879
- className: "c-body bg-white"
54880
- }, React__default.createElement(TheContent$1, {
54881
- routes: authRoutes
54882
- }))), React__default.createElement(ModelSelectRole, {
54883
- open: openModelSelectRole,
54884
- onToggleModel: handleToggleModel
54885
- }));
54886
- };
54887
-
54888
54947
  var amplitudeClient = amplitude;
54889
54948
 
54890
54949
  Object.defineProperty(exports, 'I18nextProvider', {
@@ -54989,6 +55048,7 @@ exports.editTab = editTab;
54989
55048
  exports.editorConfig = editorConfig;
54990
55049
  exports.firstCheckToken = firstCheckToken;
54991
55050
  exports.generateRandomString = generateRandomString;
55051
+ exports.getAccessToken = getAccessToken;
54992
55052
  exports.getCookieValue = getCookieValue;
54993
55053
  exports.getFileUrl = getFileUrl;
54994
55054
  exports.getInfo = getInfo;