mario-core 2.9.245-release → 2.9.301-release

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
@@ -43,8 +43,8 @@ require('symbol-observable');
43
43
  var dashboard = "Dashboard";
44
44
  var user = "User";
45
45
  var question_bank = "Question bank";
46
- var email_template = "Email template";
47
- var custom_alert = "Custom alert";
46
+ var email_template = "Email Template";
47
+ var custom_alert = "Custom Alert";
48
48
  var set_up = "Set up";
49
49
  var media_gallery = "Media Gallery";
50
50
  var district_school_list = "District school list";
@@ -3980,8 +3980,8 @@ var lang_us = {
3980
3980
  var dashboard$1 = "Dashboard";
3981
3981
  var user$1 = "User";
3982
3982
  var question_bank$1 = "Question bank";
3983
- var email_template$1 = "Email template";
3984
- var custom_alert$1 = "Custom alert";
3983
+ var email_template$1 = "Email Template";
3984
+ var custom_alert$1 = "Custom Alert";
3985
3985
  var set_up$1 = "Set up";
3986
3986
  var media_gallery$1 = "Media Gallery";
3987
3987
  var district_school_list$1 = "District school list";
@@ -37410,6 +37410,19 @@ var msalConfig = {
37410
37410
  }
37411
37411
  };
37412
37412
 
37413
+ var getStaticFileUrl = function getStaticFileUrl(url) {
37414
+ var STAGE_DOMAIN = "https://stage2.marioforme.com";
37415
+ var isStage = STAGE_DOMAIN === location.origin;
37416
+ if (!url) return "";
37417
+ if (isLocalhost && !isStage || url.startsWith("http")) return url;
37418
+ if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
37419
+ };
37420
+
37421
+ var getFileUrl = function getFileUrl(fileName) {
37422
+ if (!fileName || !fileName.trim()) return "";
37423
+ return BASE_URL + "/api/file/viewer?key=" + fileName;
37424
+ };
37425
+
37413
37426
  var _sessionStorage$getIt;
37414
37427
  var defaultInfo = {
37415
37428
  email: "",
@@ -37544,8 +37557,15 @@ var useLogin = function useLogin() {
37544
37557
 
37545
37558
  var _temp8 = _catch(function () {
37546
37559
  return Promise.resolve(getInfo$1()).then(function (res) {
37560
+ var _res$data$schoolLogo;
37561
+
37562
+ var schoolLogo = (_res$data$schoolLogo = res.data.schoolLogo) != null ? _res$data$schoolLogo : "";
37563
+
37547
37564
  if (!!res.data) {
37548
- setSchool(res.data);
37565
+ setSchool({
37566
+ schoolName: res.data.schoolName,
37567
+ schoolLogo: !schoolLogo ? getStaticFileUrl("/images/logo_header_blue.png") : getFileUrl(schoolLogo)
37568
+ });
37549
37569
  }
37550
37570
  });
37551
37571
  }, function (err) {
@@ -38071,19 +38091,6 @@ var BlockSelectTeacher = function BlockSelectTeacher(_ref) {
38071
38091
 
38072
38092
  var BlockSelectTeacher$1 = React.forwardRef(BlockSelectTeacher);
38073
38093
 
38074
- var getStaticFileUrl = function getStaticFileUrl(url) {
38075
- var STAGE_DOMAIN = "https://stage2.marioforme.com";
38076
- var isStage = STAGE_DOMAIN === location.origin;
38077
- if (!url) return "";
38078
- if (isLocalhost && !isStage || url.startsWith("http")) return url;
38079
- if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
38080
- };
38081
-
38082
- var getFileUrl = function getFileUrl(fileName) {
38083
- if (!fileName || !fileName.trim()) return "";
38084
- return BASE_URL + "/api/file/viewer?key=" + fileName;
38085
- };
38086
-
38087
38094
  var schema = yup.object({
38088
38095
  email: yup.string().email("Email is invalid").required("Email is required"),
38089
38096
  password: yup.string().required("Password is required"),
@@ -38196,7 +38203,8 @@ var BlockLogin = function BlockLogin(_ref) {
38196
38203
  }, React__default.createElement("div", {
38197
38204
  className: "d-flex align-items-center mb-4"
38198
38205
  }, React__default.createElement("img", {
38199
- src: "" + (school !== null && school !== void 0 && school.schoolLogo ? getFileUrl("" + (school === null || school === void 0 ? void 0 : school.schoolLogo)) : getStaticFileUrl("/images/logoR.png")),
38206
+ hidden: !(school !== null && school !== void 0 && school.schoolLogo),
38207
+ src: school === null || school === void 0 ? void 0 : school.schoolLogo,
38200
38208
  className: styles["school-icon"] + " mr-3"
38201
38209
  }), React__default.createElement("p", {
38202
38210
  className: styles["school-name"] + " mb-0"
@@ -38255,7 +38263,7 @@ var BlockLogin = function BlockLogin(_ref) {
38255
38263
  lg: 12,
38256
38264
  md: 12,
38257
38265
  xs: 12,
38258
- className: "pr-md-2"
38266
+ className: "pr-md-3"
38259
38267
  }, !!googleClientId && React__default.createElement(GoogleLogin, {
38260
38268
  clientId: googleClientId,
38261
38269
  buttonText: "GOOGLE",
@@ -38263,14 +38271,15 @@ var BlockLogin = function BlockLogin(_ref) {
38263
38271
  cookiePolicy: "single_host_origin",
38264
38272
  className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
38265
38273
  }))), React__default.createElement("div", {
38266
- className: "w-100 d-flex align-items-center justify-content-center mt-3"
38267
- }, React__default.createElement("a", {
38268
- href: "https://launchpad.classlink.com/login"
38274
+ className: "" + styles["btn-login-sso"]
38275
+ }, React__default.createElement("div", {
38276
+ className: styles["btn-login-with-sso"],
38277
+ onClick: function onClick() {
38278
+ return window.open("https://launchpad.classlink.com/login");
38279
+ }
38269
38280
  }, React__default.createElement("img", {
38270
- className: styles["class-link-sso-image"],
38271
- src: getStaticFileUrl("images/classlink-sso.png"),
38272
- alt: ""
38273
- }))))));
38281
+ src: "images/class-link-icon.png"
38282
+ }), React__default.createElement("p", null, "Sign-in with ClassLink"))))));
38274
38283
  }), isLoginGoogle && React__default.createElement(BlockSelectTeacher$1, {
38275
38284
  onSubmit: function onSubmit(e) {
38276
38285
  return submitLogin(e, clickHandler);
@@ -39417,218 +39426,6 @@ var TheHeaderDropdown = function TheHeaderDropdown(_ref) {
39417
39426
  })), t("log_out")))));
39418
39427
  };
39419
39428
 
39420
- var getCookieValue = function getCookieValue(name) {
39421
- var _document$cookie$matc;
39422
-
39423
- return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
39424
- };
39425
-
39426
- var apiGetLanguage = function apiGetLanguage() {
39427
- return api.get(BASE_URL + "/api/language");
39428
- };
39429
-
39430
- var apiUpdateLanguage = function apiUpdateLanguage(lang) {
39431
- return api.put(BASE_URL + "/api/language?lang=" + lang);
39432
- };
39433
-
39434
- var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
39435
-
39436
- var useLanguages = function useLanguages() {
39437
- var dispatch = reactRedux.useDispatch();
39438
-
39439
- var _useTranslation = reactI18next.useTranslation(),
39440
- i18n = _useTranslation.i18n;
39441
-
39442
- var language = reactRedux.useSelector(function (state) {
39443
- return state.common.language;
39444
- });
39445
- var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
39446
-
39447
- var _useState = React.useState([]),
39448
- languageList = _useState[0],
39449
- setLanguageList = _useState[1];
39450
-
39451
- var _useState2 = React.useState(false),
39452
- dropdownOpen = _useState2[0],
39453
- setDropdownOpen = _useState2[1];
39454
-
39455
- var _useState3 = React.useState(defaultLanguage),
39456
- currentLang = _useState3[0],
39457
- setCurrentLang = _useState3[1];
39458
-
39459
- var toggle = function toggle() {
39460
- return setDropdownOpen(function (prevState) {
39461
- return !prevState;
39462
- });
39463
- };
39464
-
39465
- var changeLanguageApp = function changeLanguageApp(lang) {
39466
- try {
39467
- var _temp3 = function _temp3() {
39468
- dispatch(setLoading(false));
39469
- };
39470
-
39471
- dispatch(setLoading(true));
39472
-
39473
- var _temp4 = _catch(function () {
39474
- return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
39475
- i18n.changeLanguage(lang);
39476
- setCurrentLang(lang);
39477
- dispatch(setLanguage(lang));
39478
- });
39479
- }, function (err) {
39480
- var _err$response, _err$response$data;
39481
-
39482
- dispatch(setAlert({
39483
- type: "danger",
39484
- 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
39485
- }));
39486
- });
39487
-
39488
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
39489
- } catch (e) {
39490
- return Promise.reject(e);
39491
- }
39492
- };
39493
-
39494
- var getListLanguage = function getListLanguage() {
39495
- try {
39496
- var _temp6 = _catch(function () {
39497
- return Promise.resolve(apiGetLanguage()).then(function (res) {
39498
- setLanguageList(res.data);
39499
- });
39500
- }, function (err) {
39501
- var _err$response2, _err$response2$data;
39502
-
39503
- dispatch(setAlert({
39504
- type: "danger",
39505
- 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
39506
- }));
39507
- });
39508
-
39509
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39510
- } catch (e) {
39511
- return Promise.reject(e);
39512
- }
39513
- };
39514
-
39515
- React.useEffect(function () {
39516
- defaultLanguage != language && changeLanguageApp(defaultLanguage);
39517
- getListLanguage();
39518
- }, []);
39519
- return {
39520
- languageList: languageList,
39521
- toggle: toggle,
39522
- dropdownOpen: dropdownOpen,
39523
- currentLang: currentLang,
39524
- changeLanguageApp: changeLanguageApp,
39525
- setCurrentLang: setCurrentLang
39526
- };
39527
- };
39528
-
39529
- var TheLanguageDropdown = function TheLanguageDropdown() {
39530
- var _useLanguages = useLanguages(),
39531
- languageList = _useLanguages.languageList,
39532
- toggle = _useLanguages.toggle,
39533
- dropdownOpen = _useLanguages.dropdownOpen,
39534
- currentLang = _useLanguages.currentLang,
39535
- changeLanguageApp = _useLanguages.changeLanguageApp;
39536
-
39537
- var currentLanguage = React.useMemo(function () {
39538
- var current = languageList.find(function (i) {
39539
- return i.code === currentLang;
39540
- });
39541
- if (!current) return null;
39542
- return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
39543
- className: "mr-2 " + styles['dropdown-menu-flag'],
39544
- src: "" + getStaticFileUrl(current.image)
39545
- }), " ", current.name);
39546
- }, [currentLang, languageList]);
39547
- return React__default.createElement(reactstrap.Dropdown, {
39548
- isOpen: dropdownOpen,
39549
- toggle: toggle,
39550
- className: "" + styles["dropdown-menu"]
39551
- }, React__default.createElement(reactstrap.DropdownToggle, {
39552
- className: styles["header-avatar"] + " d-flex align-items-center"
39553
- }, React__default.createElement("span", {
39554
- style: {
39555
- color: "#000",
39556
- textTransform: "capitalize",
39557
- display: 'flex',
39558
- alignItems: 'center'
39559
- }
39560
- }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
39561
- className: "ml-2",
39562
- style: {
39563
- fontSize: '10px'
39564
- }
39565
- }))), React__default.createElement(reactstrap.DropdownMenu, {
39566
- className: styles["dropdown-content-language"]
39567
- }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
39568
- return React__default.createElement(reactstrap.DropdownItem, {
39569
- key: lang.code,
39570
- className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
39571
- onClick: function onClick() {
39572
- return changeLanguageApp(lang.code);
39573
- }
39574
- }, React__default.createElement("div", {
39575
- className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
39576
- }, React__default.createElement("span", {
39577
- className: "mr-2 d-flex hover-opacity"
39578
- }, React__default.createElement("img", {
39579
- style: {
39580
- width: "30px",
39581
- height: "25px",
39582
- borderRadius: "5px"
39583
- },
39584
- src: getStaticFileUrl(lang.image)
39585
- })), lang.name));
39586
- })));
39587
- };
39588
-
39589
- var TheHeader = function TheHeader(_ref) {
39590
- var onToggleModel = _ref.onToggleModel;
39591
- var dispatch = reactRedux.useDispatch();
39592
- var sidebarShow = reactRedux.useSelector(function (state) {
39593
- return state.common.sidebarShow;
39594
- });
39595
-
39596
- var _useTranslation = reactI18next.useTranslation(),
39597
- t = _useTranslation.t;
39598
-
39599
- var toggleSidebarMobile = function toggleSidebarMobile() {
39600
- var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
39601
- dispatch(setSidebar(val));
39602
- };
39603
-
39604
- var isDistrict = window.location.host.includes("-district");
39605
- return React__default.createElement(react.CHeader, {
39606
- withSubheader: true,
39607
- className: "d-flex align-items-center justify-content-end"
39608
- }, React__default.createElement(react.CToggler, {
39609
- inHeader: true,
39610
- className: "ml-md-3 d-lg-none",
39611
- onClick: toggleSidebarMobile
39612
- }), React__default.createElement(react.CHeaderBrand, {
39613
- className: "mx-auto flex-grow-1 d-lg-none",
39614
- to: "/"
39615
- }, React__default.createElement("img", {
39616
- src: getStaticFileUrl(Images.LOGO_HEADER),
39617
- className: styles["header-logo"]
39618
- })), React__default.createElement(react.CHeaderNav, {
39619
- className: "pr-3"
39620
- }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
39621
- className: "mr-3",
39622
- style: {
39623
- color: '#000'
39624
- },
39625
- href: '/privacy-policy',
39626
- target: "blank"
39627
- }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
39628
- onToggleModel: onToggleModel
39629
- })));
39630
- };
39631
-
39632
39429
  var TITLE$3 = "Not found";
39633
39430
 
39634
39431
  var NotFound = function NotFound() {
@@ -39686,258 +39483,6 @@ var TheContent = function TheContent(_ref) {
39686
39483
 
39687
39484
  var TheContent$1 = React__default.memo(TheContent);
39688
39485
 
39689
- var loadingStyle = {
39690
- minWidth: "100vw",
39691
- minHeight: "100vh",
39692
- position: "fixed",
39693
- top: 0,
39694
- left: 0,
39695
- zIndex: 999999999,
39696
- backgroundColor: "rgba(0, 0, 0, 0.4)",
39697
- display: "flex",
39698
- justifyContent: "center",
39699
- alignItems: "center"
39700
- };
39701
-
39702
- var Loading = function Loading() {
39703
- var isLoading = reactRedux.useSelector(function (state) {
39704
- return state.common.isLoading;
39705
- });
39706
- localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
39707
- return isLoading ? React__default.createElement("div", {
39708
- style: loadingStyle
39709
- }, React__default.createElement("div", {
39710
- className: "spinner-border text-secondary",
39711
- role: "status"
39712
- }, React__default.createElement("span", {
39713
- className: "sr-only"
39714
- }, "Loading..."))) : null;
39715
- };
39716
-
39717
- var firstCheckToken = function firstCheckToken() {
39718
- return Promise.resolve(_catch(function () {
39719
- var token = getAccessToken();
39720
- return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
39721
- return tokenStatus.data ? true : false;
39722
- }) : false;
39723
- }, function () {
39724
- return false;
39725
- }));
39726
- };
39727
-
39728
- var canAccess = function canAccess(userRoles, componentRoles) {
39729
- if (!Array.isArray(userRoles)) {
39730
- return false;
39731
- }
39732
-
39733
- if (Array.isArray(componentRoles)) {
39734
- var intersects = userRoles.filter(function (i) {
39735
- return componentRoles.includes(i);
39736
- });
39737
- return intersects.length > 0;
39738
- }
39739
-
39740
- return true;
39741
- };
39742
-
39743
- var ModelSelectRole = function ModelSelectRole(_ref) {
39744
- var _handleUserRole;
39745
-
39746
- var open = _ref.open,
39747
- onToggleModel = _ref.onToggleModel;
39748
- var dispatch = reactRedux.useDispatch();
39749
-
39750
- var _useTranslation = reactI18next.useTranslation(),
39751
- t = _useTranslation.t;
39752
-
39753
- var history = reactRouterDom.useHistory();
39754
- var pathname = window.location.pathname;
39755
- var user = reactRedux.useSelector(function (state) {
39756
- return state.common.user;
39757
- });
39758
- var roles = user === null || user === void 0 ? void 0 : user.roles;
39759
-
39760
- var handleSelectUserRoles = function handleSelectUserRoles(roles) {
39761
- dispatch(setLoading(true));
39762
- var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
39763
- dispatch(setUser(_extends({}, user, {
39764
- roles: roleSelect
39765
- })));
39766
- localStorage.setItem("ROLES", roleSelect.toString());
39767
- onToggleModel();
39768
-
39769
- if (roles.includes("Parent")) {
39770
- history.push("/parent");
39771
- } else if (roles.includes("Admin")) {
39772
- history.push("/admin/home");
39773
- } else {
39774
- pathname !== "/home" ? history.push("/home") : window.location.reload();
39775
- }
39776
- };
39777
-
39778
- return React__default.createElement(reactstrap.Modal, {
39779
- isOpen: open,
39780
- toggle: function toggle() {
39781
- return onToggleModel();
39782
- },
39783
- className: "" + styles["model-switch-roles"],
39784
- centered: true
39785
- }, React__default.createElement("p", {
39786
- className: "" + styles["title"]
39787
- }, 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) {
39788
- return React__default.createElement("p", {
39789
- key: r,
39790
- 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" : ""],
39791
- onClick: function onClick() {
39792
- return handleSelectUserRoles([r]);
39793
- }
39794
- }, r == "SecondaryTeacher" ? "Support Teacher" : r);
39795
- })));
39796
- };
39797
-
39798
- var TheLayout = function TheLayout(_ref) {
39799
- var routes = _ref.routes,
39800
- navigation = _ref.navigation;
39801
- var history = reactRouterDom.useHistory();
39802
- var dispatch = reactRedux.useDispatch();
39803
- var user = reactRedux.useSelector(function (state) {
39804
- return state.common.user;
39805
- });
39806
- var language = reactRedux.useSelector(function (state) {
39807
- return state.common.language;
39808
- });
39809
-
39810
- var _useState = React.useState(false),
39811
- openModelSelectRole = _useState[0],
39812
- setOpenModelSelectRole = _useState[1];
39813
-
39814
- var _useTranslation = reactI18next.useTranslation(),
39815
- t = _useTranslation.t;
39816
-
39817
- var location = reactRouterDom.useLocation();
39818
- var isNotification = location.pathname.includes("notifications");
39819
- var isDistrict = window.location.host.includes("-district");
39820
-
39821
- var handleToggleModel = function handleToggleModel() {
39822
- setOpenModelSelectRole(!openModelSelectRole);
39823
- };
39824
-
39825
- var authRoutes = React.useMemo(function () {
39826
- return routes.filter(function (route) {
39827
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
39828
- }).filter(function (route) {
39829
- return !!route.isDistrict === isDistrict;
39830
- });
39831
- }, [user, language]);
39832
- var authNavigations = React.useMemo(function () {
39833
- return navigation.map(function (item) {
39834
- var _item$_children, _item$_children2;
39835
-
39836
- return _extends({}, item, {
39837
- name: t(item.name),
39838
- _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) {
39839
- return _extends({}, x, {
39840
- name: t(x.name)
39841
- });
39842
- }) : undefined
39843
- });
39844
- }).filter(function (nav) {
39845
- return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
39846
- }).filter(function (nav) {
39847
- return !!nav.isDistrict === isDistrict;
39848
- });
39849
- }, [user, language]);
39850
-
39851
- var getInformationSetting = function getInformationSetting() {
39852
- try {
39853
- var _temp2 = _catch(function () {
39854
- return Promise.resolve(getSchoolSettings()).then(function (res) {
39855
- dispatch(setSandboxMode(res.data.isSandboxMode));
39856
- });
39857
- }, function (err) {
39858
- console.error(err);
39859
- });
39860
-
39861
- return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
39862
- } catch (e) {
39863
- return Promise.reject(e);
39864
- }
39865
- };
39866
-
39867
- React.useEffect(function () {
39868
- checkAuthentication();
39869
- }, []);
39870
- React.useEffect(function () {
39871
- getInformationSetting();
39872
- }, [location.pathname]);
39873
-
39874
- var checkAuthentication = function checkAuthentication() {
39875
- try {
39876
- var _temp4 = _catch(function () {
39877
- return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
39878
- tokenStatus ? loadInfo() : resetAuth();
39879
- });
39880
- }, function () {
39881
- resetAuth();
39882
- });
39883
-
39884
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
39885
- } catch (e) {
39886
- return Promise.reject(e);
39887
- }
39888
- };
39889
-
39890
- var loadInfo = function loadInfo() {
39891
- try {
39892
- var _temp6 = _catch(function () {
39893
- return Promise.resolve(getInfo()).then(function (info) {
39894
- var _info$data, _info$data$roles;
39895
-
39896
- 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"))) {
39897
- resetAuth();
39898
- }
39899
-
39900
- dispatch(setUser(info.data));
39901
- });
39902
- }, function () {
39903
- resetAuth();
39904
- });
39905
-
39906
- return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
39907
- } catch (e) {
39908
- return Promise.reject(e);
39909
- }
39910
- };
39911
-
39912
- var resetAuth = function resetAuth() {
39913
- localStorage.removeItem(ACCESS_TOKEN);
39914
- sessionStorage.removeItem(ACCESS_TOKEN);
39915
- localStorage.removeItem("ROLES");
39916
- history.push("/");
39917
- };
39918
-
39919
- if (!user) {
39920
- return React__default.createElement(Loading, null);
39921
- }
39922
-
39923
- return React__default.createElement("div", {
39924
- className: "c-app c-default-layout"
39925
- }, !isNotification && React__default.createElement(TheSidebar, {
39926
- navigation: authNavigations
39927
- }), React__default.createElement("div", {
39928
- className: "c-wrapper"
39929
- }, !isNotification && React__default.createElement(TheHeader, {
39930
- onToggleModel: handleToggleModel
39931
- }), React__default.createElement("div", {
39932
- className: "c-body bg-white"
39933
- }, React__default.createElement(TheContent$1, {
39934
- routes: authRoutes
39935
- }))), React__default.createElement(ModelSelectRole, {
39936
- open: openModelSelectRole,
39937
- onToggleModel: handleToggleModel
39938
- }));
39939
- };
39940
-
39941
39486
  var buttonTextStyle = {
39942
39487
  fontWeight: 500
39943
39488
  };
@@ -44061,17 +43606,11 @@ var useTeacherList = function useTeacherList() {
44061
43606
  }
44062
43607
  };
44063
43608
 
44064
- var handleSelectTeacher = React.useCallback(function (teacherIds, studentUserId) {
43609
+ var handleSelectTeacher = React.useCallback(function (teacherId, studentUserId) {
44065
43610
  var _extends2;
44066
43611
 
44067
- var selectedTeacher = teacherOptions.filter(function (t) {
44068
- return teacherIds.includes(t.value);
44069
- });
44070
- console.log({
44071
- teacherIds: teacherIds
44072
- });
44073
- console.log({
44074
- selectedTeacher: selectedTeacher
43612
+ var selectedTeacher = teacherOptions.find(function (t) {
43613
+ return t.value === teacherId;
44075
43614
  });
44076
43615
  setSelectedTeachers(_extends({}, selectedTeachers, (_extends2 = {}, _extends2[studentUserId] = selectedTeacher, _extends2)));
44077
43616
  }, [JSON.stringify(selectedTeachers), JSON.stringify(teacherOptions)]);
@@ -44190,29 +43729,18 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44190
43729
  return;
44191
43730
  }
44192
43731
 
44193
- console.log("list userId");
44194
- console.log({
44195
- listUserIds: listUserIds
44196
- });
44197
43732
  var users = listUserIds.map(function (i) {
44198
43733
  var teacher = teacherSelected === null || teacherSelected === void 0 ? void 0 : teacherSelected[i];
44199
43734
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[i];
44200
43735
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[i];
44201
43736
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[i];
44202
- console.log({
44203
- teacher: teacher
44204
- });
44205
43737
  var value = {
44206
43738
  id: i
44207
43739
  };
44208
43740
 
44209
43741
  if (!!teacher) {
44210
- value.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44211
- return i.value;
44212
- }) : undefined;
44213
- value.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44214
- return i.label;
44215
- }) : undefined;
43742
+ value.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
43743
+ value.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
44216
43744
  }
44217
43745
 
44218
43746
  if (!!assistant) {
@@ -44239,10 +43767,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44239
43767
  var assistant = assistantSelected === null || assistantSelected === void 0 ? void 0 : assistantSelected[id];
44240
43768
  var counselor = counselorSelected === null || counselorSelected === void 0 ? void 0 : counselorSelected[id];
44241
43769
  var secondaryTeacher = secondaryTeacherSelected === null || secondaryTeacherSelected === void 0 ? void 0 : secondaryTeacherSelected[id];
44242
- console.log("assign student");
44243
- console.log({
44244
- teacherSelected: teacherSelected
44245
- });
44246
43770
 
44247
43771
  if (!teacher && !assistant && !counselor && !secondaryTeacher) {
44248
43772
  dispatch(setAlert({
@@ -44257,12 +43781,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44257
43781
  };
44258
43782
 
44259
43783
  if (!!teacher) {
44260
- studentRequest.mainTeacherUserId = !!teacher ? teacher.map(function (i) {
44261
- return i.value;
44262
- }) : undefined;
44263
- studentRequest.mainTeacherEmail = !!teacher ? teacher.map(function (i) {
44264
- return i.label;
44265
- }) : undefined;
43784
+ studentRequest.mainTeacherUserId = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'string' ? teacher === null || teacher === void 0 ? void 0 : teacher.value : undefined;
43785
+ studentRequest.mainTeacherEmail = !!(teacher !== null && teacher !== void 0 && teacher.value) && typeof (teacher === null || teacher === void 0 ? void 0 : teacher.value) === 'number' ? teacher === null || teacher === void 0 ? void 0 : teacher.label : undefined;
44266
43786
  }
44267
43787
 
44268
43788
  if (!!assistant) {
@@ -44283,11 +43803,6 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44283
43803
  assignStudents([studentRequest]);
44284
43804
  }, [JSON.stringify(teacherSelected), JSON.stringify(assistantSelected), JSON.stringify(counselorSelected), JSON.stringify(secondaryTeacherSelected)]);
44285
43805
  var handleAssignStaffToStudents = React.useCallback(function (listUserIds) {
44286
- console.log("staffBulkAssign");
44287
- console.log({
44288
- staffBulkAssign: staffBulkAssign
44289
- });
44290
-
44291
43806
  if (listUserIds.length === 0) {
44292
43807
  dispatch(setAlert({
44293
43808
  type: "danger",
@@ -44299,6 +43814,8 @@ var useAssignStudent = function useAssignStudent(teacherSelected, assistantSelec
44299
43814
  var users = listUserIds.map(function (i) {
44300
43815
  var value = {
44301
43816
  id: i,
43817
+ mainTeacherUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherId : undefined,
43818
+ mainTeacherEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.teacherEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.teacherEmail : undefined,
44302
43819
  assistantUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantId : undefined,
44303
43820
  assistantEmail: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.assistantEmail) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.assistantEmail : undefined,
44304
43821
  counselorUserId: !!(staffBulkAssign !== null && staffBulkAssign !== void 0 && staffBulkAssign.counselorId) ? staffBulkAssign === null || staffBulkAssign === void 0 ? void 0 : staffBulkAssign.counselorId : undefined,
@@ -44647,18 +44164,15 @@ var AssignStudentList = function AssignStudentList() {
44647
44164
  className: "align-middle"
44648
44165
  }, item.email), React__default.createElement("td", {
44649
44166
  className: "align-middle"
44650
- }, !!item.teachers && item.teachers.length > 0 ? React__default.createElement(React__default.Fragment, null, item.teachers.map(function (record) {
44651
- return React__default.createElement("p", {
44652
- className: "mb-0"
44653
- }, record.mainTeacherName, " - ", record.mainTeacherEmail);
44654
- })) : React__default.createElement(TeacherSelector, {
44655
- isMulti: true,
44167
+ }, !!item.mainTeacherEmail ? React__default.createElement(React__default.Fragment, null, React__default.createElement("p", {
44168
+ className: "mb-0"
44169
+ }, item.mainTeacherEmail), React__default.createElement("p", {
44170
+ className: "mb-0"
44171
+ }, item.mainTeacherName)) : React__default.createElement(TeacherSelector, {
44656
44172
  value: selectedTeachers === null || selectedTeachers === void 0 ? void 0 : selectedTeachers[item.id],
44657
44173
  options: teacherOptions,
44658
44174
  onChange: function onChange(e) {
44659
- return handleSelectTeacher(e.map(function (i) {
44660
- return i.value;
44661
- }), item.id);
44175
+ return handleSelectTeacher(e.value, item.id);
44662
44176
  },
44663
44177
  onCreateOption: function onCreateOption(value) {
44664
44178
  return handleCreateTeacherOption(value, item.id, true);
@@ -45733,6 +45247,34 @@ var UserDetail = function UserDetail() {
45733
45247
  });
45734
45248
  };
45735
45249
 
45250
+ var loadingStyle = {
45251
+ minWidth: "100vw",
45252
+ minHeight: "100vh",
45253
+ position: "fixed",
45254
+ top: 0,
45255
+ left: 0,
45256
+ zIndex: 999999999,
45257
+ backgroundColor: "rgba(0, 0, 0, 0.4)",
45258
+ display: "flex",
45259
+ justifyContent: "center",
45260
+ alignItems: "center"
45261
+ };
45262
+
45263
+ var Loading = function Loading() {
45264
+ var isLoading = reactRedux.useSelector(function (state) {
45265
+ return state.common.isLoading;
45266
+ });
45267
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
45268
+ return isLoading ? React__default.createElement("div", {
45269
+ style: loadingStyle
45270
+ }, React__default.createElement("div", {
45271
+ className: "spinner-border text-secondary",
45272
+ role: "status"
45273
+ }, React__default.createElement("span", {
45274
+ className: "sr-only"
45275
+ }, "Loading..."))) : null;
45276
+ };
45277
+
45736
45278
  var ScrollToTop = function ScrollToTop() {
45737
45279
  var _useLocation = reactRouterDom.useLocation(),
45738
45280
  pathname = _useLocation.pathname;
@@ -48752,6 +48294,32 @@ var store = toolkit.configureStore({
48752
48294
  }
48753
48295
  });
48754
48296
 
48297
+ var firstCheckToken = function firstCheckToken() {
48298
+ return Promise.resolve(_catch(function () {
48299
+ var token = getAccessToken();
48300
+ return token ? Promise.resolve(checkToken(token)).then(function (tokenStatus) {
48301
+ return tokenStatus.data ? true : false;
48302
+ }) : false;
48303
+ }, function () {
48304
+ return false;
48305
+ }));
48306
+ };
48307
+
48308
+ var canAccess = function canAccess(userRoles, componentRoles) {
48309
+ if (!Array.isArray(userRoles)) {
48310
+ return false;
48311
+ }
48312
+
48313
+ if (Array.isArray(componentRoles)) {
48314
+ var intersects = userRoles.filter(function (i) {
48315
+ return componentRoles.includes(i);
48316
+ });
48317
+ return intersects.length > 0;
48318
+ }
48319
+
48320
+ return true;
48321
+ };
48322
+
48755
48323
  var isInViewport = function isInViewport(el) {
48756
48324
  var rect = el === null || el === void 0 ? void 0 : el.getBoundingClientRect();
48757
48325
  return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
@@ -48781,12 +48349,424 @@ var getTextFromHTML = function getTextFromHTML(htmlString) {
48781
48349
  return text;
48782
48350
  };
48783
48351
 
48352
+ var getCookieValue = function getCookieValue(name) {
48353
+ var _document$cookie$matc;
48354
+
48355
+ return ((_document$cookie$matc = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')) === null || _document$cookie$matc === void 0 ? void 0 : _document$cookie$matc.pop()) || '';
48356
+ };
48357
+
48784
48358
  var generateRandomString = (function () {
48785
48359
  return (Math.random() + 1).toString(36).substring(7);
48786
48360
  });
48787
48361
 
48788
48362
  var amplitudeClient = amplitude.getInstance();
48789
48363
 
48364
+ var apiGetLanguage = function apiGetLanguage() {
48365
+ return api.get(BASE_URL + "/api/language");
48366
+ };
48367
+
48368
+ var apiUpdateLanguage = function apiUpdateLanguage(lang) {
48369
+ return api.put(BASE_URL + "/api/language?lang=" + lang);
48370
+ };
48371
+
48372
+ var LANGUAGE_SYSTEM = "LANGUAGE_SYSTEM";
48373
+
48374
+ var useLanguages = function useLanguages() {
48375
+ var dispatch = reactRedux.useDispatch();
48376
+
48377
+ var _useTranslation = reactI18next.useTranslation(),
48378
+ i18n = _useTranslation.i18n;
48379
+
48380
+ var language = reactRedux.useSelector(function (state) {
48381
+ return state.common.language;
48382
+ });
48383
+ var defaultLanguage = getCookieValue(LANGUAGE_SYSTEM) != null ? getCookieValue(LANGUAGE_SYSTEM) : DEFAULT_LANGUAGE_CODE;
48384
+
48385
+ var _useState = React.useState([]),
48386
+ languageList = _useState[0],
48387
+ setLanguageList = _useState[1];
48388
+
48389
+ var _useState2 = React.useState(false),
48390
+ dropdownOpen = _useState2[0],
48391
+ setDropdownOpen = _useState2[1];
48392
+
48393
+ var _useState3 = React.useState(defaultLanguage),
48394
+ currentLang = _useState3[0],
48395
+ setCurrentLang = _useState3[1];
48396
+
48397
+ var toggle = function toggle() {
48398
+ return setDropdownOpen(function (prevState) {
48399
+ return !prevState;
48400
+ });
48401
+ };
48402
+
48403
+ var changeLanguageApp = function changeLanguageApp(lang) {
48404
+ try {
48405
+ var _temp3 = function _temp3() {
48406
+ dispatch(setLoading(false));
48407
+ };
48408
+
48409
+ dispatch(setLoading(true));
48410
+
48411
+ var _temp4 = _catch(function () {
48412
+ return Promise.resolve(apiUpdateLanguage(lang)).then(function () {
48413
+ i18n.changeLanguage(lang);
48414
+ setCurrentLang(lang);
48415
+ dispatch(setLanguage(lang));
48416
+ });
48417
+ }, function (err) {
48418
+ var _err$response, _err$response$data;
48419
+
48420
+ dispatch(setAlert({
48421
+ type: "danger",
48422
+ 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
48423
+ }));
48424
+ });
48425
+
48426
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
48427
+ } catch (e) {
48428
+ return Promise.reject(e);
48429
+ }
48430
+ };
48431
+
48432
+ var getListLanguage = function getListLanguage() {
48433
+ try {
48434
+ var _temp6 = _catch(function () {
48435
+ return Promise.resolve(apiGetLanguage()).then(function (res) {
48436
+ setLanguageList(res.data);
48437
+ });
48438
+ }, function (err) {
48439
+ var _err$response2, _err$response2$data;
48440
+
48441
+ dispatch(setAlert({
48442
+ type: "danger",
48443
+ 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
48444
+ }));
48445
+ });
48446
+
48447
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48448
+ } catch (e) {
48449
+ return Promise.reject(e);
48450
+ }
48451
+ };
48452
+
48453
+ React.useEffect(function () {
48454
+ defaultLanguage != language && changeLanguageApp(defaultLanguage);
48455
+ getListLanguage();
48456
+ }, []);
48457
+ return {
48458
+ languageList: languageList,
48459
+ toggle: toggle,
48460
+ dropdownOpen: dropdownOpen,
48461
+ currentLang: currentLang,
48462
+ changeLanguageApp: changeLanguageApp,
48463
+ setCurrentLang: setCurrentLang
48464
+ };
48465
+ };
48466
+
48467
+ var TheLanguageDropdown = function TheLanguageDropdown() {
48468
+ var _useLanguages = useLanguages(),
48469
+ languageList = _useLanguages.languageList,
48470
+ toggle = _useLanguages.toggle,
48471
+ dropdownOpen = _useLanguages.dropdownOpen,
48472
+ currentLang = _useLanguages.currentLang,
48473
+ changeLanguageApp = _useLanguages.changeLanguageApp;
48474
+
48475
+ var currentLanguage = React.useMemo(function () {
48476
+ var current = languageList.find(function (i) {
48477
+ return i.code === currentLang;
48478
+ });
48479
+ if (!current) return null;
48480
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement("img", {
48481
+ className: "mr-2 " + styles['dropdown-menu-flag'],
48482
+ src: "" + getStaticFileUrl(current.image)
48483
+ }), " ", current.name);
48484
+ }, [currentLang, languageList]);
48485
+ return React__default.createElement(reactstrap.Dropdown, {
48486
+ isOpen: dropdownOpen,
48487
+ toggle: toggle,
48488
+ className: "" + styles["dropdown-menu"]
48489
+ }, React__default.createElement(reactstrap.DropdownToggle, {
48490
+ className: styles["header-avatar"] + " d-flex align-items-center"
48491
+ }, React__default.createElement("span", {
48492
+ style: {
48493
+ color: "#000",
48494
+ textTransform: "capitalize",
48495
+ display: 'flex',
48496
+ alignItems: 'center'
48497
+ }
48498
+ }, currentLanguage, React__default.createElement(bs.BsChevronDown, {
48499
+ className: "ml-2",
48500
+ style: {
48501
+ fontSize: '10px'
48502
+ }
48503
+ }))), React__default.createElement(reactstrap.DropdownMenu, {
48504
+ className: styles["dropdown-content-language"]
48505
+ }, !!languageList && languageList.length > 0 && languageList.map(function (lang, index) {
48506
+ return React__default.createElement(reactstrap.DropdownItem, {
48507
+ key: lang.code,
48508
+ className: styles["dropdown-change"] + " px-0 py-0 " + (index === languageList.length - 1 ? "pb-2" : "pt-2"),
48509
+ onClick: function onClick() {
48510
+ return changeLanguageApp(lang.code);
48511
+ }
48512
+ }, React__default.createElement("div", {
48513
+ className: styles["dropdown-item-language"] + " " + styles["item-logout"] + " " + (currentLang == lang.code ? styles['dropdown-item-language-active'] : "") + " d-flex align-items-center w-100"
48514
+ }, React__default.createElement("span", {
48515
+ className: "mr-2 d-flex hover-opacity"
48516
+ }, React__default.createElement("img", {
48517
+ style: {
48518
+ width: "30px",
48519
+ height: "25px",
48520
+ borderRadius: "5px"
48521
+ },
48522
+ src: getStaticFileUrl(lang.image)
48523
+ })), lang.name));
48524
+ })));
48525
+ };
48526
+
48527
+ var TheHeader = function TheHeader(_ref) {
48528
+ var onToggleModel = _ref.onToggleModel;
48529
+ var dispatch = reactRedux.useDispatch();
48530
+ var sidebarShow = reactRedux.useSelector(function (state) {
48531
+ return state.common.sidebarShow;
48532
+ });
48533
+
48534
+ var _useTranslation = reactI18next.useTranslation(),
48535
+ t = _useTranslation.t;
48536
+
48537
+ var toggleSidebarMobile = function toggleSidebarMobile() {
48538
+ var val = [false, "responsive"].includes(sidebarShow) ? true : "responsive";
48539
+ dispatch(setSidebar(val));
48540
+ };
48541
+
48542
+ var isDistrict = window.location.host.includes("-district");
48543
+ return React__default.createElement(react.CHeader, {
48544
+ withSubheader: true,
48545
+ className: "d-flex align-items-center justify-content-end"
48546
+ }, React__default.createElement(react.CToggler, {
48547
+ inHeader: true,
48548
+ className: "ml-md-3 d-lg-none",
48549
+ onClick: toggleSidebarMobile
48550
+ }), React__default.createElement(react.CHeaderBrand, {
48551
+ className: "mx-auto flex-grow-1 d-lg-none",
48552
+ to: "/"
48553
+ }, React__default.createElement("img", {
48554
+ src: getStaticFileUrl(Images.LOGO_HEADER),
48555
+ className: styles["header-logo"]
48556
+ })), React__default.createElement(react.CHeaderNav, {
48557
+ className: "pr-3"
48558
+ }, React__default.createElement(TheLanguageDropdown, null), React__default.createElement("a", {
48559
+ className: "mr-3",
48560
+ style: {
48561
+ color: '#000'
48562
+ },
48563
+ href: '/privacy-policy',
48564
+ target: "blank"
48565
+ }, t("privacy_policy")), !isDistrict && React__default.createElement(NotificationButton, null), React__default.createElement(TheHeaderDropdown, {
48566
+ onToggleModel: onToggleModel
48567
+ })));
48568
+ };
48569
+
48570
+ var ModelSelectRole = function ModelSelectRole(_ref) {
48571
+ var _handleUserRole;
48572
+
48573
+ var open = _ref.open,
48574
+ onToggleModel = _ref.onToggleModel;
48575
+ var dispatch = reactRedux.useDispatch();
48576
+
48577
+ var _useTranslation = reactI18next.useTranslation(),
48578
+ t = _useTranslation.t;
48579
+
48580
+ var history = reactRouterDom.useHistory();
48581
+ var pathname = window.location.pathname;
48582
+ var user = reactRedux.useSelector(function (state) {
48583
+ return state.common.user;
48584
+ });
48585
+ var roles = user === null || user === void 0 ? void 0 : user.roles;
48586
+
48587
+ var handleSelectUserRoles = function handleSelectUserRoles(roles) {
48588
+ dispatch(setLoading(true));
48589
+ var roleSelect = roles.includes("Teacher/Assistant") ? ["Teacher", "Assistant"] : roles;
48590
+ dispatch(setUser(_extends({}, user, {
48591
+ roles: roleSelect
48592
+ })));
48593
+ localStorage.setItem("ROLES", roleSelect.toString());
48594
+ onToggleModel();
48595
+
48596
+ if (roles.includes("Parent")) {
48597
+ history.push("/parent");
48598
+ } else if (roles.includes("Admin")) {
48599
+ history.push("/admin/home");
48600
+ } else {
48601
+ pathname !== "/home" ? history.push("/home") : window.location.reload();
48602
+ }
48603
+ };
48604
+
48605
+ return React__default.createElement(reactstrap.Modal, {
48606
+ isOpen: open,
48607
+ toggle: function toggle() {
48608
+ return onToggleModel();
48609
+ },
48610
+ className: "" + styles["model-switch-roles"],
48611
+ centered: true
48612
+ }, React__default.createElement("p", {
48613
+ className: "" + styles["title"]
48614
+ }, 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) {
48615
+ return React__default.createElement("p", {
48616
+ key: r,
48617
+ 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" : ""],
48618
+ onClick: function onClick() {
48619
+ return handleSelectUserRoles([r]);
48620
+ }
48621
+ }, r == "SecondaryTeacher" ? "Support Teacher" : r);
48622
+ })));
48623
+ };
48624
+
48625
+ var TheLayout = function TheLayout(_ref) {
48626
+ var routes = _ref.routes,
48627
+ navigation = _ref.navigation;
48628
+ var history = reactRouterDom.useHistory();
48629
+ var dispatch = reactRedux.useDispatch();
48630
+ var user = reactRedux.useSelector(function (state) {
48631
+ return state.common.user;
48632
+ });
48633
+ var language = reactRedux.useSelector(function (state) {
48634
+ return state.common.language;
48635
+ });
48636
+
48637
+ var _useState = React.useState(false),
48638
+ openModelSelectRole = _useState[0],
48639
+ setOpenModelSelectRole = _useState[1];
48640
+
48641
+ var _useTranslation = reactI18next.useTranslation(),
48642
+ t = _useTranslation.t;
48643
+
48644
+ var location = reactRouterDom.useLocation();
48645
+ var isNotification = location.pathname.includes("notifications");
48646
+ var isDistrict = window.location.host.includes("-district");
48647
+
48648
+ var handleToggleModel = function handleToggleModel() {
48649
+ setOpenModelSelectRole(!openModelSelectRole);
48650
+ };
48651
+
48652
+ var authRoutes = React.useMemo(function () {
48653
+ return routes.filter(function (route) {
48654
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, route.roles);
48655
+ }).filter(function (route) {
48656
+ return !!route.isDistrict === isDistrict;
48657
+ });
48658
+ }, [user, language]);
48659
+ var authNavigations = React.useMemo(function () {
48660
+ return navigation.map(function (item) {
48661
+ var _item$_children, _item$_children2;
48662
+
48663
+ return _extends({}, item, {
48664
+ name: t(item.name),
48665
+ _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) {
48666
+ return _extends({}, x, {
48667
+ name: t(x.name)
48668
+ });
48669
+ }) : undefined
48670
+ });
48671
+ }).filter(function (nav) {
48672
+ return canAccess(user === null || user === void 0 ? void 0 : user.roles, nav.roles);
48673
+ }).filter(function (nav) {
48674
+ return !!nav.isDistrict === isDistrict;
48675
+ });
48676
+ }, [user, language]);
48677
+
48678
+ var getInformationSetting = function getInformationSetting() {
48679
+ try {
48680
+ var _temp2 = _catch(function () {
48681
+ return Promise.resolve(getSchoolSettings()).then(function (res) {
48682
+ dispatch(setSandboxMode(res.data.isSandboxMode));
48683
+ });
48684
+ }, function (err) {
48685
+ console.error(err);
48686
+ });
48687
+
48688
+ return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
48689
+ } catch (e) {
48690
+ return Promise.reject(e);
48691
+ }
48692
+ };
48693
+
48694
+ React.useEffect(function () {
48695
+ checkAuthentication();
48696
+ }, []);
48697
+ React.useEffect(function () {
48698
+ getInformationSetting();
48699
+ }, [location.pathname]);
48700
+
48701
+ var checkAuthentication = function checkAuthentication() {
48702
+ try {
48703
+ var _temp4 = _catch(function () {
48704
+ return Promise.resolve(firstCheckToken()).then(function (tokenStatus) {
48705
+ tokenStatus ? loadInfo() : resetAuth();
48706
+ });
48707
+ }, function () {
48708
+ resetAuth();
48709
+ });
48710
+
48711
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(function () {}) : void 0);
48712
+ } catch (e) {
48713
+ return Promise.reject(e);
48714
+ }
48715
+ };
48716
+
48717
+ var loadInfo = function loadInfo() {
48718
+ try {
48719
+ var _temp6 = _catch(function () {
48720
+ return Promise.resolve(getInfo()).then(function (info) {
48721
+ var _info$data, _info$data$roles;
48722
+
48723
+ 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"))) {
48724
+ resetAuth();
48725
+ }
48726
+
48727
+ dispatch(setUser(info.data));
48728
+ });
48729
+ }, function () {
48730
+ resetAuth();
48731
+ });
48732
+
48733
+ return Promise.resolve(_temp6 && _temp6.then ? _temp6.then(function () {}) : void 0);
48734
+ } catch (e) {
48735
+ return Promise.reject(e);
48736
+ }
48737
+ };
48738
+
48739
+ var resetAuth = function resetAuth() {
48740
+ localStorage.removeItem(ACCESS_TOKEN);
48741
+ sessionStorage.removeItem(ACCESS_TOKEN);
48742
+ localStorage.removeItem("ROLES");
48743
+ history.push("/");
48744
+ };
48745
+
48746
+ if (!user) {
48747
+ return React__default.createElement(Loading, null);
48748
+ }
48749
+
48750
+ return React__default.createElement("div", {
48751
+ className: "c-app c-default-layout"
48752
+ }, !isNotification && React__default.createElement(TheSidebar, {
48753
+ navigation: authNavigations
48754
+ }), React__default.createElement("div", {
48755
+ className: "c-wrapper"
48756
+ }, !isNotification && React__default.createElement(TheHeader, {
48757
+ onToggleModel: handleToggleModel
48758
+ }), React__default.createElement("div", {
48759
+ className: "c-body bg-white"
48760
+ }, React__default.createElement(TheContent$1, {
48761
+ routes: authRoutes
48762
+ }))), React__default.createElement(ModelSelectRole, {
48763
+ open: openModelSelectRole,
48764
+ onToggleModel: handleToggleModel
48765
+ }));
48766
+ };
48767
+
48768
+ var amplitudeClient$1 = amplitude.getInstance();
48769
+
48790
48770
  Object.defineProperty(exports, 'I18nextProvider', {
48791
48771
  enumerable: true,
48792
48772
  get: function () {
@@ -48874,7 +48854,7 @@ exports.UserContainer = UserContainer;
48874
48854
  exports.UserDetail = UserDetail;
48875
48855
  exports.UserList = UserList;
48876
48856
  exports.addTab = addTab;
48877
- exports.amplitudeClient = amplitudeClient;
48857
+ exports.amplitudeClient = amplitudeClient$1;
48878
48858
  exports.answerQuestion = answerQuestion;
48879
48859
  exports.answerQuestionDataPlayer = answerQuestionDataPlayer;
48880
48860
  exports.api = api;