mario-core 2.9.108-beta → 2.9.111-beta

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.
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ declare const NotificationLogoutModal: () => JSX.Element;
3
+ export default NotificationLogoutModal;
package/dist/index.d.ts CHANGED
@@ -16,6 +16,7 @@ import ScrollToTop from "./components/Scroll/ScrollToTop";
16
16
  import NotificationModal from "./components/Modals/NotificationModal";
17
17
  import CommonHeader from "./components/Headers/CommonHeader";
18
18
  import CommonModal from "./components/Modals/CommonModal";
19
+ import NotificationLogoutModal from "./components/Modals/NotificationLogoutModal";
19
20
  import AddButton from "./components/Buttons/AddButton";
20
21
  import DeleteButtonIcon from "./components/Buttons/DeleteButtonIcon";
21
22
  import EditButtonIcon from "./components/Buttons/EditButtonIcon";
@@ -108,4 +109,4 @@ import { setEnableIEP, setEnableSurvey, setConversationOneToOne, setLanguage } f
108
109
  import useFilters from "./hooks/useFilters";
109
110
  import amplitude from "amplitude-js";
110
111
  declare const amplitudeClient: amplitude.AmplitudeClient;
111
- export { Login, Dashboard, TheLayout, TheContent, NotFound, EmailTemplateList, EmailTemplateDetail, FaqList, SkillList, UserList, UserDetail, Loading, NotificationModal, CommonHeader, CommonModal, AddButton, DeleteButtonIcon, EditButtonIcon, LinkEditButton, ToggleButton, EmptyDataAlert, CreatableSelector, CustomPagination, SearchBox, FileInput, QuitPrompt, QuestionTypeSelector, QuestionCategorySelector, SuggestionCategorySelector, CategorySelector, ErrorHandler, DetailActionButtons, RequiredLabel, StarRatingSelector, ReactNotification, NotificationList, CustomSelector, UploadFileButton, SearchBoxContainer, CustomTab, CommonAlert, GalleryList, MediaList, useGalleryList, AcademicClassSelector, SchoolList, store, showMenuBar, showFontSize, setLoading, setModal, setAlert, setClassList, setConferenceRubricList, setSuggestionList, setStrategyList, setSubjectList, setLearningSupportCategoryList, setQuestionList, setUserList, setStudentList, setBadgeList, setGoalExampleList, setSemesterList, setFeedbackList, setAssessmentList, setQuestionByCategory, setSelectQuestion, setMoveItemQuestion, setReflectionList, setReflectionResultList, setEditItemQuesion, setResetQuestionList, setMailCategory, setUser, setAssignmentList, setAssistantList, setSessionTemplateList, setTutorialScreenList, setSessionTemplateGeneralClassList, setCustomAlertList, setCertificateList, closeTab, addTab, editTab, clearTab, changeNote, changeTags, answerQuestion, setSessionPlayer, setStartTime, setTurnOffPassWhenChangeMode, reset, setImproveMyClass, setSchoolBlankDayList, setEnableIEP, setEnableSurvey, setConversationOneToOne, setLanguage, i18n, useTranslation, I18nextProvider, api, apiUpload, uploadFile, systemStudentBadge, systemCertificateUpload, BASE_URL, DEFAULT_FILTER, LICENSE_AGGRID, TINY_MCE_API_KEY, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, ANSWER_EDITOR_HEIGHT, CHAT_CHANNEL, NOTIFICATION_CHANNEL, DATE_RESULT, DATE_FORMAT, FULL_DATE_RESULT, ACCESS_TOKEN, NOTIFICATION_ALERT_KEY, GOOGLE_RECAPTCHA_KEY, EMOTIONS, TAB_COLORS, Filter, Conversation, Message, ConversationMember, NavbarTab, editorConfig, generateRandomString, isInViewport, debounce, firstCheckToken, canAccessRoute, getFileUrl, getTextFromHTML, utcToLocalTime, getInfo, Images, setQuestionCateList, setMyStudent, setDataPlayer, answerQuestionDataPlayer, setCurrentStudentUserId, setCurrentStudentId, setCurrentStudentName, setFilterWidget, setBandScoreList, setStudentIdSelectedByTeacher, useFilters, ScrollToTop, initAmplitude, amplitudeClient, INIT_AMPLITUDE_KEY_STAGE, INIT_AMPLITUDE_KEY_PROD, isLocalhost };
112
+ export { Login, Dashboard, TheLayout, TheContent, NotFound, EmailTemplateList, EmailTemplateDetail, FaqList, SkillList, UserList, UserDetail, Loading, NotificationModal, CommonHeader, CommonModal, NotificationLogoutModal, AddButton, DeleteButtonIcon, EditButtonIcon, LinkEditButton, ToggleButton, EmptyDataAlert, CreatableSelector, CustomPagination, SearchBox, FileInput, QuitPrompt, QuestionTypeSelector, QuestionCategorySelector, SuggestionCategorySelector, CategorySelector, ErrorHandler, DetailActionButtons, RequiredLabel, StarRatingSelector, ReactNotification, NotificationList, CustomSelector, UploadFileButton, SearchBoxContainer, CustomTab, CommonAlert, GalleryList, MediaList, useGalleryList, AcademicClassSelector, SchoolList, store, showMenuBar, showFontSize, setLoading, setModal, setAlert, setClassList, setConferenceRubricList, setSuggestionList, setStrategyList, setSubjectList, setLearningSupportCategoryList, setQuestionList, setUserList, setStudentList, setBadgeList, setGoalExampleList, setSemesterList, setFeedbackList, setAssessmentList, setQuestionByCategory, setSelectQuestion, setMoveItemQuestion, setReflectionList, setReflectionResultList, setEditItemQuesion, setResetQuestionList, setMailCategory, setUser, setAssignmentList, setAssistantList, setSessionTemplateList, setTutorialScreenList, setSessionTemplateGeneralClassList, setCustomAlertList, setCertificateList, closeTab, addTab, editTab, clearTab, changeNote, changeTags, answerQuestion, setSessionPlayer, setStartTime, setTurnOffPassWhenChangeMode, reset, setImproveMyClass, setSchoolBlankDayList, setEnableIEP, setEnableSurvey, setConversationOneToOne, setLanguage, i18n, useTranslation, I18nextProvider, api, apiUpload, uploadFile, systemStudentBadge, systemCertificateUpload, BASE_URL, DEFAULT_FILTER, LICENSE_AGGRID, TINY_MCE_API_KEY, QUESTION_TYPES, QUESTION_TYPES_OPTIONS, ANSWER_EDITOR_HEIGHT, CHAT_CHANNEL, NOTIFICATION_CHANNEL, DATE_RESULT, DATE_FORMAT, FULL_DATE_RESULT, ACCESS_TOKEN, NOTIFICATION_ALERT_KEY, GOOGLE_RECAPTCHA_KEY, EMOTIONS, TAB_COLORS, Filter, Conversation, Message, ConversationMember, NavbarTab, editorConfig, generateRandomString, isInViewport, debounce, firstCheckToken, canAccessRoute, getFileUrl, getTextFromHTML, utcToLocalTime, getInfo, Images, setQuestionCateList, setMyStudent, setDataPlayer, answerQuestionDataPlayer, setCurrentStudentUserId, setCurrentStudentId, setCurrentStudentName, setFilterWidget, setBandScoreList, setStudentIdSelectedByTeacher, useFilters, ScrollToTop, initAmplitude, amplitudeClient, INIT_AMPLITUDE_KEY_STAGE, INIT_AMPLITUDE_KEY_PROD, isLocalhost };
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ var reactRedux = require('react-redux');
13
13
  var toolkit = require('@reduxjs/toolkit');
14
14
  var axios = _interopDefault(require('axios'));
15
15
  var amplitude = _interopDefault(require('amplitude-js'));
16
+ var moment = _interopDefault(require('moment'));
16
17
  var reactGoogleRecaptchaV3 = require('react-google-recaptcha-v3');
17
18
  var GoogleLogin = _interopDefault(require('react-google-login'));
18
19
  var Select = _interopDefault(require('react-select'));
@@ -33,7 +34,6 @@ var Creatable = _interopDefault(require('react-select/creatable'));
33
34
  var ReactNotification$1 = _interopDefault(require('react-notifications-component'));
34
35
  require('react-notifications-component/dist/theme.css');
35
36
  var ai = require('react-icons/ai');
36
- var moment = _interopDefault(require('moment'));
37
37
 
38
38
  var dashboard = "Dashboard";
39
39
  var user = "User";
@@ -2715,6 +2715,7 @@ var apiUpload = axios.create({
2715
2715
 
2716
2716
  if (token) {
2717
2717
  config.headers.Authorization = "Bearer " + token;
2718
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
2718
2719
  }
2719
2720
 
2720
2721
  return config;
@@ -4384,6 +4385,7 @@ var Loading = function Loading() {
4384
4385
  var isLoading = reactRedux.useSelector(function (state) {
4385
4386
  return state.common.isLoading;
4386
4387
  });
4388
+ localStorage.setItem("LAST_TIME_REQUETST", moment().utc().format("YYYY-MM-DD HH:mm:ss"));
4387
4389
  return isLoading ? React__default.createElement("div", {
4388
4390
  style: loadingStyle
4389
4391
  }, React__default.createElement("div", {
@@ -7561,6 +7563,78 @@ var CommonHeader = function CommonHeader(_ref) {
7561
7563
  }, header))));
7562
7564
  };
7563
7565
 
7566
+ var utcToLocalTime = (function (time, FORMAT) {
7567
+ if (time === DATE_MIN_VALUE) return "";
7568
+
7569
+ try {
7570
+ return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7571
+ } catch (_unused) {
7572
+ return "";
7573
+ }
7574
+ });
7575
+
7576
+ var NotificationLogoutModal = function NotificationLogoutModal() {
7577
+ var _useState = React.useState(false),
7578
+ isOpen = _useState[0],
7579
+ setIsOpen = _useState[1];
7580
+
7581
+ var _useState2 = React.useState({
7582
+ minutes: 0,
7583
+ timeLogout: ""
7584
+ }),
7585
+ objTime = _useState2[0],
7586
+ setObjTime = _useState2[1];
7587
+
7588
+ var checkOpenModalLogout = function checkOpenModalLogout() {
7589
+ var lastTimeOut = localStorage.getItem("LAST_TIME_REQUETST");
7590
+ var timeMoment = moment(lastTimeOut, "YYYY-MM-DD HH:mm");
7591
+ var currentTime = moment(moment().utc().format("YYYY-MM-DD HH:mm"));
7592
+ var minutes = currentTime.diff(timeMoment, "minutes");
7593
+ var timeLogout = utcToLocalTime(currentTime.add(16 - minutes, 'minutes').format("YYYY-MM-DD HH:mm"), "HH:mm");
7594
+
7595
+ if (minutes == 13) {
7596
+ var dataTime = {
7597
+ minutes: minutes,
7598
+ timeLogout: timeLogout
7599
+ };
7600
+ setObjTime(dataTime);
7601
+ onToggle();
7602
+ }
7603
+ };
7604
+
7605
+ React.useEffect(function () {
7606
+ var getAccessToken = localStorage.getItem(ACCESS_TOKEN);
7607
+
7608
+ if (getAccessToken) {
7609
+ var interval = setInterval(function () {
7610
+ checkOpenModalLogout();
7611
+ }, 60 * 1000);
7612
+ return function () {
7613
+ return clearInterval(interval);
7614
+ };
7615
+ }
7616
+
7617
+ return;
7618
+ }, []);
7619
+
7620
+ var onToggle = function onToggle() {
7621
+ setIsOpen(!isOpen);
7622
+ };
7623
+
7624
+ return React__default.createElement(reactstrap.Modal, {
7625
+ isOpen: isOpen,
7626
+ toggle: onToggle,
7627
+ size: "xs"
7628
+ }, React__default.createElement(reactstrap.ModalHeader, {
7629
+ toggle: onToggle
7630
+ }, "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, {
7631
+ className: "text-right"
7632
+ }, React__default.createElement(reactstrap.Button, {
7633
+ color: "primary",
7634
+ onClick: onToggle
7635
+ }, "Confirm")));
7636
+ };
7637
+
7564
7638
  var EditButtonIcon = function EditButtonIcon(_ref) {
7565
7639
  var onClick = _ref.onClick;
7566
7640
  return React__default.createElement("div", {
@@ -7986,16 +8060,6 @@ var NotificationStatusSelector = function NotificationStatusSelector(_ref) {
7986
8060
 
7987
8061
  var NotificationStatusSelector$1 = React.memo(NotificationStatusSelector);
7988
8062
 
7989
- var utcToLocalTime = (function (time, FORMAT) {
7990
- if (time === DATE_MIN_VALUE) return "";
7991
-
7992
- try {
7993
- return moment.utc(time).local().format(FORMAT || "yyyy-MM-DD");
7994
- } catch (_unused) {
7995
- return "";
7996
- }
7997
- });
7998
-
7999
8063
  var defaultFilters = {
8000
8064
  currentPage: 1,
8001
8065
  pageSize: 30,
@@ -10949,6 +11013,7 @@ exports.NOTIFICATION_ALERT_KEY = NOTIFICATION_ALERT_KEY;
10949
11013
  exports.NOTIFICATION_CHANNEL = NOTIFICATION_CHANNEL;
10950
11014
  exports.NotFound = NotFound;
10951
11015
  exports.NotificationList = NotificationList;
11016
+ exports.NotificationLogoutModal = NotificationLogoutModal;
10952
11017
  exports.NotificationModal = NotificationModal;
10953
11018
  exports.QUESTION_TYPES = QUESTION_TYPES;
10954
11019
  exports.QUESTION_TYPES_OPTIONS = QUESTION_TYPES_OPTIONS;