mario-core 3.0.8-admin → 3.0.10-admin
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/containers/Login/views/block/IconContent.d.ts +2 -2
- package/dist/containers/Login/views/block/QuoteContent.d.ts +5 -2
- package/dist/index.css +127 -167
- package/dist/index.d.ts +2 -2
- package/dist/index.js +87 -109
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +88 -111
- package/dist/index.modern.js.map +1 -1
- package/dist/utils/constants.d.ts +1 -0
- package/package.json +1 -1
- package/dist/containers/Login/constant/type.d.ts +0 -5
- package/dist/containers/Login/views/ModelSelectRole.d.ts +0 -4
- package/dist/utils/amplitude.d.ts +0 -1
package/dist/index.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/i18n.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/components/Alerts/ErrorHandler.tsx","../src/components/Inputs/PasswordInput.tsx","../src/utils/constants.ts","../src/utils/getAccessToken.ts","../src/redux/commons/action.ts","../src/utils/encodeParams.ts","../src/services/api.ts","../src/services/accountService.ts","../src/containers/Login/hooks/useLogin.ts","../src/components/Selectors/CustomSelector.tsx","../src/containers/Login/views/block/BlockSelectTeacher.tsx","../src/containers/Login/views/block/BlockLogin.tsx","../src/containers/Login/hooks/useForgotPassword.ts","../src/containers/Login/views/block/BlockForgetPassword.tsx","../src/containers/Login/views/block/BlockResetPassword.tsx","../src/containers/Login/views/Login.tsx","../src/containers/Login/views/block/QuoteContent.tsx","../src/containers/Login/views/block/IconContent.tsx","../src/containers/Login/views/block/ContentHomePage.tsx","../src/containers/Login/views/Dashboard.tsx","../src/assets/Images.ts","../src/layouts/TheSidebar.tsx","../src/redux/notifications/action.ts","../src/services/notificationService.ts","../src/containers/Notifications/hooks/useUnreadNotification.ts","../src/containers/Notifications/components/NotificationButton.tsx","../src/utils/getFileUrl.ts","../src/layouts/TheHeaderDropdown.tsx","../src/layouts/TheLanguageDropdown.tsx","../src/layouts/TheHeader.tsx","../src/containers/Commons/NotFound.tsx","../src/layouts/TheContent.tsx","../src/components/Loading/Loading.tsx","../src/utils/firstCheckToken.ts","../src/utils/canAccessRoute.ts","../src/layouts/TheLayout.tsx","../src/components/Buttons/AddButton.tsx","../src/components/Buttons/DeleteButtonIcon.tsx","../src/components/Buttons/LinkEditButton.tsx","../src/components/Alerts/EmptyDataAlert.tsx","../src/components/Pagination/CustomPagination.tsx","../src/redux/emailTemplates/action.ts","../src/redux/mailCategories/action.ts","../src/services/emailTemplateService.ts","../src/services/mailCategoryService.ts","../src/hooks/useFilters.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateList.ts","../src/containers/EmailTemplate/views/EmailTemplateList.tsx","../src/components/Buttons/DetailActionButtons.tsx","../src/components/Buttons/AddButtonIcon.tsx","../src/containers/EmailTemplate/components/MailParam.tsx","../src/components/Selectors/MailCategorySelectors.tsx","../src/components/Labels/RequiredLabel.tsx","../src/components/Others/QuitPrompt.tsx","../src/containers/EmailTemplate/components/AttachmentFile.tsx","../src/services/fileServices.ts","../src/configs/editorConfig.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateDetail.ts","../src/containers/EmailTemplate/configs/emailTemplateSchema.ts","../src/containers/EmailTemplate/views/EmailTemplateDetail.tsx","../src/components/Modals/CommonModal.tsx","../src/containers/Faq/components/FaqDetailModal.tsx","../src/redux/faqs/action.ts","../src/services/faqService.ts","../src/containers/Faq/hooks/useFaqList.ts","../src/containers/Faq/hooks/useFaqDetail.ts","../src/containers/Faq/views/FaqList.tsx","../src/services/skillService.ts","../src/containers/Skill/components/SkillSelector.tsx","../src/containers/Skill/components/SkillDetailModal.tsx","../src/redux/skills/action.ts","../src/containers/Skill/hooks/useSkillList.ts","../src/containers/Skill/hooks/useSkillDetail.ts","../src/containers/Skill/views/SkillList.tsx","../src/redux/users/action.ts","../src/services/userService.ts","../src/containers/User/hooks/useUserList.ts","../src/components/Inputs/SearchBox.tsx","../src/components/Inputs/SearchBoxContainer.tsx","../src/utils/utcToLocalTime.ts","../src/containers/User/views/UserList.tsx","../src/components/Buttons/UploadFileButton.tsx","../src/containers/User/hooks/useUserDetail.ts","../src/containers/User/configs/userSchema.ts","../src/containers/User/configs/changePasswordSchema.ts","../src/containers/User/views/UserDetail.tsx","../src/components/Scroll/ScrollToTop.tsx","../src/components/Modals/NotificationModal.tsx","../src/components/Headers/CommonHeader.tsx","../src/components/Buttons/EditButtonIcon.tsx","../src/components/Selectors/CreatableSelector.tsx","../src/components/Selectors/QuestionTypeSelector.tsx","../src/services/suggestionCategoryService.ts","../src/components/Selectors/SuggestionCategorySelector.tsx","../src/services/questionCategoryService.ts","../src/components/Selectors/QuestionCategorySelector.tsx","../src/components/Selectors/StarRatingSelector.tsx","../src/components/Buttons/ToggleButton.tsx","../src/components/Inputs/FileInput.tsx","../src/components/Alerts/ReactNotification.tsx","../src/containers/Notifications/components/NotificationStatusSelector.tsx","../src/containers/Notifications/hooks/useNotificationList.ts","../src/containers/Notifications/views/NotificationList.tsx","../src/components/Tabs/CustomTab.tsx","../src/components/Alerts/CommonAlert.tsx","../src/containers/Gallery/components/ActionModal.tsx","../src/containers/Gallery/components/MediaNav.tsx","../src/containers/Gallery/constants/gallery.types.ts","../src/containers/Gallery/extensions/helpers.ts","../src/containers/Gallery/components/Media.tsx","../src/containers/Gallery/components/Filter.tsx","../src/redux/gallery/action.ts","../src/services/galleryService.ts","../src/containers/Gallery/hooks/useGalleryList.ts","../src/containers/Gallery/components/MediaList.tsx","../src/containers/Gallery/components/MediaDetail.tsx","../src/containers/Gallery/views/GalleryList.tsx","../src/services/classService.ts","../src/components/Selectors/AcademicClassSelector.tsx","../src/containers/DistrictSchools/views/SchoolList.tsx","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.js","../src/redux/commons/reducer.ts","../src/redux/classes/action.ts","../src/redux/classes/reducer.ts","../src/redux/conferenceRubrics/action.ts","../src/redux/conferenceRubrics/reducer.ts","../src/redux/faqs/reducer.ts","../src/redux/skills/reducer.ts","../src/redux/emailTemplates/reducer.ts","../src/redux/suggestionBanks/action.ts","../src/redux/suggestionBanks/reducer.ts","../src/redux/learningStrategies/action.ts","../src/redux/learningStrategies/reducer.ts","../src/redux/subjects/action.ts","../src/redux/subjects/reducer.ts","../src/redux/learningSupportCategories/action.ts","../src/redux/learningSupportCategories/reducer.ts","../src/redux/questionBanks/action.ts","../src/redux/questionBanks/reducer.ts","../src/redux/badges/action.ts","../src/redux/badges/reducer.ts","../src/redux/semester/action.ts","../src/redux/semester/reducer.ts","../src/redux/assignment/action.ts","../src/redux/assignment/reducer.ts","../src/redux/goalExamples/action.ts","../src/redux/goalExamples/reducer.ts","../src/redux/users/reducer.ts","../src/redux/feedback/action.ts","../src/redux/feedback/reducer.ts","../src/redux/assessments/action.ts","../src/redux/assessments/reducer.ts","../src/redux/reflectionForms/action.ts","../src/redux/reflectionForms/reducer.ts","../src/redux/reflectionResults/action.ts","../src/redux/reflectionResults/reducer.ts","../src/redux/questionByCategory/action.ts","../src/redux/questionByCategory/reducer.ts","../src/redux/mailCategories/reducer.ts","../src/redux/questionCategory/action.ts","../src/redux/questionCategory/reducer.ts","../src/redux/notifications/reducer.ts","../src/redux/teacher/myStudent/action.ts","../src/redux/teacher/myStudent/reducer.ts","../src/redux/assistants/action.ts","../src/redux/assistants/reducer.ts","../src/redux/sessionTemplates/action.ts","../src/redux/sessionTemplates/reducer.ts","../src/redux/sessionTemplateGeneralClasses/action.ts","../src/redux/sessionTemplateGeneralClasses/reducer.ts","../src/redux/tutorialScreen/action.ts","../src/redux/tutorialScreen/reducer.ts","../src/redux/customAlert/action.ts","../src/redux/customAlert/reducer.ts","../src/redux/gallery/reducer.ts","../src/redux/dashboard/action.tsx","../src/redux/dashboard/reducer.tsx","../src/redux/sessionPlayers/action.ts","../src/redux/sessionPlayers/reducer.ts","../src/redux/dataPlayer/action.ts","../src/redux/dataPlayer/reducer.ts","../src/redux/certificate/action.ts","../src/redux/certificate/reducer.ts","../src/redux/improveMyClass/action.ts","../src/redux/improveMyClass/reducer.ts","../src/redux/widget/action.ts","../src/redux/widget/reducer.ts","../src/redux/bandScores/action.ts","../src/redux/bandScores/reducer.ts","../src/redux/schoolBlankDays/action.ts","../src/redux/schoolBlankDays/reducer.ts","../src/redux/navMobile/action.ts","../src/redux/navMobile/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/utils/domHelpers.ts","../src/utils/debounce.ts","../src/utils/getTextFromHTML.ts","../src/utils/generateRandomString.ts","../src/index.tsx"],"sourcesContent":["import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport lang_us from \"./lang/lang_us.json\";\r\nimport lang_uk from \"./lang/lang_uk.json\";\r\n\r\nconst DEFAULT_LANGUAGE = localStorage.getItem(\"language\") !== null ? localStorage.getItem(\"language\") : \"uk\"\r\nconsole.log({ lang : localStorage.getItem(\"language\") })\r\n\r\ni18n.use(initReactI18next).init({\r\n resources: {\r\n us: {\r\n translation: lang_us\r\n },\r\n uk: {\r\n translation: lang_uk\r\n }\r\n },\r\n lng: DEFAULT_LANGUAGE,\r\n fallbackLng: DEFAULT_LANGUAGE,\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n});\r\n\r\nexport default i18n;","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React, { FC } from \"react\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst style = {\r\n fontSize: \"0.85rem\"\r\n}\r\n\r\nconst ErrorHandler: FC<Props> = ({ text }: Props) => {\r\n return <p \r\n className=\"text-danger\"\r\n style={style}\r\n >\r\n {text}\r\n </p>\r\n} \r\n\r\nexport default ErrorHandler","import React, { CSSProperties, FC } from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n isShowPassword: boolean\r\n togglePasswordVisible: any\r\n onChange: any\r\n}\r\n\r\nconst containerStyle: CSSProperties = {\r\n height: \"40px\",\r\n backgroundColor: \"#f7f9fc\",\r\n borderRadius: \"4px\",\r\n marginBottom: \"5px\",\r\n position: \"relative\"\r\n}\r\n\r\nconst inputStyle: CSSProperties = {\r\n backgroundColor: \"#f7f9fc\",\r\n paddingRight: \"50px\"\r\n}\r\n\r\nconst eyeIconStyle: CSSProperties = {\r\n fontSize: \"20px\",\r\n position: \"absolute\",\r\n right: \"10px\"\r\n}\r\n\r\nconst PasswordInput: FC<Props> = ({\r\n isShowPassword,\r\n togglePasswordVisible,\r\n onChange\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center w-100\" style={containerStyle}>\r\n <Input\r\n className=\"border password-input\"\r\n style={inputStyle}\r\n type={isShowPassword ? \"text\" : \"password\"}\r\n name=\"password\"\r\n onChange={onChange}\r\n placeholder=\"Password\"\r\n required\r\n />\r\n <i\r\n className={`far ${\r\n isShowPassword ? \"fa-eye-slash\" : \"fa-eye\"\r\n } mx-2 cursor-pointer`}\r\n style={eyeIconStyle}\r\n onClick={() => togglePasswordVisible()}\r\n title={isShowPassword ? \"Hide\" : \"Show\"}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PasswordInput\r\n","import { Filter } from \"../types/Filter\"\r\n\r\nexport const TINY_MCE_API_KEY =\r\n \"adpshj9swgsscf83gw4gs2f74nx0vicpd5ydka20iqjd7l8r\"\r\n\r\nexport const GOOGLE_RECAPTCHA_KEY = \"6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0\"\r\n\r\nexport const INIT_AMPLITUDE_KEY = \"c617d0950cfdcae12953907273a1920f\"\r\n\r\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\r\n\r\nexport const DEFAULT_PAGE_SIZE_VALUES = [\r\n { label: \"10\", value: 10 },\r\n { label: \"20\", value: 20 },\r\n { label: \"30\", value: 30 },\r\n { label: \"50\", value: 50 }\r\n]\r\n\r\nexport const DEFAULT_PAGE_SIZE = {\r\n label: \"10\",\r\n value: 10\r\n}\r\n\r\nexport const DEFAULT_FILTER: Filter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value,\r\n sortBy: \"\",\r\n sortOrder: \"ASC\",\r\n name: \"\"\r\n}\r\n\r\nexport const COLORS = {\r\n DANGER: \"#dc3545\",\r\n WARNING: \"#ffc107\",\r\n SUCCESS: \"#28a745\",\r\n INFO: \"#007bff\"\r\n}\r\n\r\nexport const DATE_FORMAT = \"yyyy-MM-dd\"\r\n\r\nexport const DATE_RESULT = \"dd-MM-yyyy\"\r\n\r\nexport const FULL_DATE_RESULT = \"dd-MM-yyyy HH:mm\"\r\n\r\nexport const FULL_DATE_FORMAT = \"yyyy-MM-dd HH:mm\"\r\n\r\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00\"\r\n\r\nexport const LICENSE_AGGRID =\r\n \"Alhanko&Johnson_BASE23_single_1_Devs__22_November_2020_[v2]_MTYwNjAwMzIwMDAwMA==d452f38afc893671cad92795e95d52a1\"\r\n\r\nexport const BASE_URL = (() => {\r\n const windowUrl = window.location.href\r\n const url = `${windowUrl.split(\"//\")[0]}//${\r\n windowUrl.split(\"//\")[1].split(\"/\")[0]\r\n }`\r\n return url\r\n})()\r\n\r\nexport const QUESTION_TYPES_OPTIONS = [\r\n { label: \"Single choice\", value: \"SingleChoice\" },\r\n { label: \"Multiple choice\", value: \"MultipleChoice\" },\r\n { label: \"Text input\", value: \"TextInput\" },\r\n { label: \"Slider\", value: \"Slider\" },\r\n { label: \"Progress bar\", value: \"ProgressBar\" },\r\n { label: \"Star rating\", value: \"StarRating\" },\r\n {\r\n label: \"Text input with sub questions\",\r\n value: \"TextInputWithSuggestions\"\r\n },\r\n { label: \"Emotional\", value: \"Emotional\" },\r\n { label: \"Summarize\", value: \"Summarize\" },\r\n { label: \"Rating\", value: \"Rating\" },\r\n { label: \"Learning strategy\", value: \"LearningStrategy\" }\r\n]\r\n\r\nexport const QUESTION_TYPES = {\r\n SINGLE_CHOICE: \"SingleChoice\",\r\n MULTIPLE_CHOICE: \"MultipleChoice\",\r\n TEXT_INPUT: \"TextInput\",\r\n SLIDER: \"Slider\",\r\n PROGRESS_BAR: \"ProgressBar\",\r\n STAR_RATING: \"StarRating\",\r\n TEXT_INPUT_WITH_SUGGESTIONS: \"TextInputWithSuggestions\",\r\n EMOTIONAL: \"Emotional\",\r\n SUMMARIZE: \"Summarize\",\r\n RATING: \"Rating\",\r\n LEARNING_STRATEGY: \"LearningStrategy\"\r\n}\r\n\r\nexport const STAR_OPTIONS = [\r\n { label: 2, value: 2 },\r\n { label: 3, value: 3 },\r\n { label: 4, value: 4 },\r\n { label: 5, value: 5 }\r\n]\r\n\r\nexport const ANSWER_EDITOR_HEIGHT = 150\r\n\r\nexport const USER_ROLES = [\"Admin\", \"Assistant\", \"Teacher\", \"General ED teacher\", \"Student\", \"Parent\"]\r\n\r\nexport const CHAT_CHANNEL = \"chat-channel\"\r\nexport const NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nexport const NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\nexport const DEFAULT_IMAGE_URL =\r\n \"https://tleliteracy.com/wp-content/uploads/2017/02/default-avatar.png\"\r\n\r\nexport const EMOTIONS = [\r\n \"Unwell\",\r\n \"Mad\",\r\n \"Stressed\",\r\n \"Easygoing\",\r\n \"Proud\",\r\n \"Inspired\"\r\n]\r\n\r\nexport const TAB_COLORS = {\r\n reflect: \"#c08497\",\r\n goal: \"#00979b\"\r\n}\r\n\r\nexport const ROLES = {\r\n ADMIN: \"Admin\",\r\n TEACHER: \"Teacher\",\r\n ASSISTANT: \"Assistant\",\r\n EDUTEACHER: \"General ED teacher\",\r\n STUDENT: \"Student\",\r\n PARENT: \"Parent\"\r\n}","import { ACCESS_TOKEN } from \"./constants\"\r\n\r\nexport default () => {\r\n try {\r\n return localStorage.getItem(ACCESS_TOKEN);\r\n } catch (err) {\r\n return null;\r\n }\r\n}","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { IinitAmplitude } from \"../../types/Payload\"\r\n\r\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\r\n\r\nexport const setModal = createAction<any>(\"common/setModal\")\r\n\r\nexport const setUser = createAction<any>(\"common/setUser\")\r\n\r\nexport const setSidebar = createAction<any>(\"common/setSidebar\")\r\n\r\nexport const setAlert = createAction<any>(\"common/setAlert\")\r\n\r\nexport const reset = createAction<undefined>(\"common/reset\")\r\n\r\nexport const showMenuBar = createAction<any>(\"common/showMenuBar\")\r\n\r\nexport const showFontSize = createAction<any>(\"common/showFontSize\")\r\n\r\nexport const setEnableIEP = createAction<boolean>(\"common/setEnableIEP\")\r\n\r\nexport const setEnableSurvey = createAction<boolean>(\"common/setEnableSurvey\")\r\n\r\nexport const setConversationOneToOne = createAction<boolean>(\"common/setConversationOneToOne\")\r\n\r\nexport const setLanguage = createAction<string>(\"common/setLanguage\")\r\n\r\nexport const setCurrentStudentId = createAction<number>(\r\n \"common/setCurrentStudentId\"\r\n)\r\n\r\nexport const setCurrentStudentUserId = createAction<string>(\r\n \"common/setCurrentStudentUserId\"\r\n)\r\n\r\nexport const setCurrentStudentName = createAction<string>(\r\n \"common/setCurrentStudentName\"\r\n)\r\n\r\nexport const setTurnOffPassWhenChangeMode = createAction<string>(\r\n \"common/setTurnOffPassWhenChangeMode\"\r\n)\r\n\r\nexport const initAmplitude = createAction<IinitAmplitude>(\"common/initAmplitude\")\r\n","export default (params: any) => {\r\n return Object.keys(params)\r\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\r\n .map(key => {\r\n if (Array.isArray(params[key])) {\r\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\r\n }\r\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\r\n }).join('&')\r\n}","import axios, { AxiosInstance } from \"axios\"\r\nimport encodeParams from \"../utils/encodeParams\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport getAccessToken from \"../utils/getAccessToken\"\r\nimport amplitude from \"amplitude-js\"\r\n\r\nexport const api: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 0,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n paramsSerializer: params => {\r\n return encodeParams(params)\r\n }\r\n})\r\n\r\nexport const apiUpload: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 60000,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n})\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.request.use(\r\n (config: any) => {\r\n const token = getAccessToken()\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`\r\n }\r\n return config\r\n },\r\n (error: any) => Promise.reject(error)\r\n )\r\n)\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.response.use(\r\n response => {\r\n return response\r\n },\r\n error => {\r\n if (error.response.status === 401) {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('learning-plan')) delete localStorage[key];\r\n });\r\n const userEmail = localStorage.getItem(\"USER_EMAIL\") as string;\r\n const hostName = window.location.hostname;\r\n if(userEmail){\r\n amplitude.getInstance().logEvent(\"general: session end\", {user_id: userEmail, domain: hostName})\r\n amplitude.getInstance().resetSessionId();\r\n }\r\n localStorage.setItem(\"USER_EMAIL\",\"\")\r\n window.location.href = \"/login\"\r\n }\r\n return Promise.reject(error)\r\n }\r\n )\r\n)\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst TEACHER_URL = `${BASE_URL}/api/teacher`\r\n\r\nconst STUDENT_PROFILE = `${BASE_URL}/api/student/profile`\r\n\r\nexport const logIn = (data: any) => api.post(`${ACCOUNT_URL}/login`, data)\r\n\r\nexport const checkToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checktoken`, { token })\r\n\r\nexport const getInfo = () => api.get(`${ACCOUNT_URL}/info`)\r\n\r\nexport const forgotPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotpassword`, data)\r\n\r\nexport const checkResetToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checkResetToken`, { token })\r\n\r\nexport const resetPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/resetpassword`, data)\r\n\r\nexport const getStudentProfile = () => api.get(`${STUDENT_PROFILE}`)\r\n\r\nexport const logInTwoFactor = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/logintwostep`, data)\r\n\r\nexport const checkUserGoogle = (body: any) =>\r\n api.post(`${USER_URL}/check-user`, body)\r\n \r\nexport const getAllLoginTeacher = (param: any) =>\r\n api.get(`${TEACHER_URL}/get-teacher-login`, {params: param})\r\n\r\nexport const getGoogleClientId = () =>\r\n api.get(`${ACCOUNT_URL}/send-google`)\r\n\r\nexport const registerUserStudent = (body: any) => api.post(`${BASE_URL}/api/User/register-user`, body)\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { ACCESS_TOKEN, INIT_AMPLITUDE_KEY } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport { setLoading, setUser, setAlert } from \"../../../redux/commons/action\"\r\nimport { logIn, checkUserGoogle, registerUserStudent, getGoogleClientId } from \"../../../services/accountService\"\r\nimport amplitude from \"amplitude-js\"\r\n\r\ntype LoginInfo = {\r\n email: string\r\n password: string\r\n captcha: string\r\n rememberMe: boolean\r\n}\r\n\r\nconst defaultInfo: LoginInfo = {\r\n email: \"\",\r\n password: \"\",\r\n captcha: \"\",\r\n rememberMe: false\r\n}\r\n\r\n// const HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/home\"\r\nconst HOMEPAGE_ADMIN = \"/admin/dashboard\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst HOMEPAGE_EDU_TEACHER = \"/list-student\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useLogin = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const [isLoginGoogle, setIsLoginGoogle] = useState<boolean>(false);\r\n const [googleClientId, setGoogleClientId] = useState<string>(\"\");\r\n const [infoUser, setInfoUser] = useState<any>();\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(\"/\")\r\n getInfoGoogle()\r\n }, [])\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const userLogin = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await logIn(data)\r\n\r\n // if (res.data?.isTwoFactor) {\r\n // history.push(`/2fa?id=${res.data.id}`)\r\n // dispatch(setLoading(false))\r\n // return\r\n // }\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName,\r\n isLoginFirst\r\n } = res.data;\r\n\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n if(data?.email && !roles.includes(\"Admin\")){\r\n amplitude.getInstance().init(INIT_AMPLITUDE_KEY, data.email, {\r\n includeReferrer: false,\r\n includeUtm: false,\r\n })\r\n const hostName = window.location.hostname;\r\n amplitude.getInstance().logEvent(\"general: session start\", { user_id: data.email, domain: hostName })\r\n localStorage.setItem(\"USER_EMAIL\",data.email)\r\n if(isLoginFirst){\r\n amplitude.getInstance().logEvent( \"general: first login\", { user_id: data.email, domain: hostName })\r\n }\r\n }\r\n\r\n if (isDistrict) {\r\n history.push(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n history.push(HOMEPAGE_ADMIN)\r\n } else if (roles.includes(\"Teacher\") || roles.includes(\"Assistant\")) {\r\n history.push(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n history.push(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n history.push(HOMEPAGE_PARENT)\r\n } else if (roles.includes(\"EduTeacher\")) {\r\n history.push(HOMEPAGE_EDU_TEACHER)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const getInfoGoogle = async () => {\r\n try {\r\n const res = await getGoogleClientId();\r\n setGoogleClientId(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const fnIsCheckLogin = useCallback( async (data: any, token: string, clickHandler: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await checkUserGoogle(data);\r\n const checkUser = res.data;\r\n if (checkUser) {\r\n const clickHandlerRes = await clickHandler()\r\n const dataUser = {\r\n email: data.email,\r\n captcha: clickHandlerRes,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken : token\r\n }\r\n await userLogin(dataUser);\r\n setIsLoginGoogle(false)\r\n } else {\r\n setIsLoginGoogle(true)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const submitLogin = async (teacherId: number, clickHandler: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const data = {\r\n firstName : infoUser.firstName,\r\n lastName: infoUser.lastName,\r\n imageUrl: infoUser.imageUrl,\r\n fullName: infoUser.fullName,\r\n email: infoUser.email,\r\n accessToken: infoUser.accessToken,\r\n teacherId: teacherId\r\n }\r\n const res = await registerUserStudent(data);\r\n if (res.data) {\r\n const clickHandlerRes = await clickHandler()\r\n const dataLogin = {\r\n email: infoUser.email,\r\n captcha: clickHandlerRes,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken : infoUser.accessToken\r\n }\r\n setIsLoginGoogle(false)\r\n await userLogin(dataLogin);\r\n history.push(HOMEPAGE_STUDENT)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n setIsLoginGoogle(false)\r\n dispatch(setLoading(false))\r\n }\r\n\r\n return {\r\n defaultInfo,\r\n userLogin,\r\n openLogin,\r\n toggle,\r\n isShowPassword,\r\n setIsShowPassword,\r\n fnIsCheckLogin,\r\n isLoginGoogle,\r\n infoUser,\r\n setInfoUser,\r\n submitLogin,\r\n setIsLoginGoogle,\r\n googleClientId\r\n }\r\n}\r\n\r\nexport default useLogin\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nconst CustomSelector = ({\r\n defaultValue,\r\n options,\r\n isDisabled,\r\n scrollBottom,\r\n ...rest\r\n}: any) => {\r\n const initValue =\r\n defaultValue !== null && typeof defaultValue !== \"undefined\"\r\n ? options.find((option: any) => option.value === defaultValue) ||\r\n null\r\n : null\r\n return (\r\n <Select\r\n isDisabled={isDisabled}\r\n options={options}\r\n value={initValue}\r\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport default CustomSelector\r\n","import React, { forwardRef, useState, useEffect, useRef, useCallback } from \"react\"\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { useDispatch } from \"react-redux\"\r\nimport CustomSelector from \"../../../../components/Selectors/CustomSelector\"\r\nimport { setAlert } from \"../../../../redux/commons/action\"\r\nimport { getAllLoginTeacher } from \"../../../../services/accountService\"\r\n\r\ninterface Props {\r\n defaultValue?: any\r\n isDisabled?: boolean\r\n openModal: boolean\r\n onSubmit: any\r\n token: string\r\n email: string\r\n setOpenModal: any\r\n}\r\n\r\ninterface Teacher {\r\n teacherId: number\r\n email: string\r\n fullName: string\r\n}\r\n\r\nconst BlockSelectTeacher = ({\r\n defaultValue,\r\n isDisabled,\r\n openModal,\r\n onSubmit,\r\n token,\r\n email,\r\n setOpenModal\r\n}: Props) => {\r\n const [modal, setModal] = useState(false);\r\n \r\n useEffect(() => {\r\n setModal(openModal)\r\n }, [openModal])\r\n \r\n const toggle = () => {\r\n setModal(!modal);\r\n setOpenModal(!modal)\r\n }\r\n\r\n const dispatch = useDispatch()\r\n const [teachers, setTeachers] = useState<Teacher[]>([])\r\n const [searchString, setSearchString] = useState<string>(\"\")\r\n const [teacherEmail, setTeacherEmail] = useState<string>(\"\")\r\n const [isLoading, setLoading] = useState<boolean>(false)\r\n const timeout = useRef<any>()\r\n\r\n const loadData = useCallback(async () => {\r\n setLoading(true)\r\n try {\r\n const data = {\r\n token, email\r\n }\r\n const res = await getAllLoginTeacher(data)\r\n setTeachers(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n setLoading(false)\r\n }, [searchString])\r\n\r\n useEffect(() => {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n if (!searchString || searchString.trim().length < 2) {\r\n setTeachers([])\r\n } else {\r\n timeout.current = setTimeout(loadData, 300)\r\n }\r\n }, [searchString])\r\n\r\n const options = teachers.map((teacher: any) => ({\r\n label: `${teacher.fullName} (${teacher.email})`,\r\n value: teacher.teacherId\r\n }))\r\n\r\n const onChangeTeacher = (e: any) => {\r\n setTeacherEmail(e.value)\r\n }\r\n\r\n const customSelector = {\r\n control: (styles: any) => ({\r\n ...styles,\r\n borderRadius: \"10px\"\r\n })\r\n }\r\n return (\r\n <Modal isOpen={modal}>\r\n <ModalHeader> Sign in </ModalHeader>\r\n <ModalBody>\r\n <h6>You are logging in as a student, please select teacher</h6>\r\n <CustomSelector\r\n styles={customSelector}\r\n options={options}\r\n inputValue={searchString}\r\n onInputChange={(inputValue: string) => setSearchString(inputValue)}\r\n isLoading={isLoading}\r\n placeholder=\"Type 2 characters to search\"\r\n value={defaultValue}\r\n onChange={onChangeTeacher}\r\n isDisabled={isDisabled}\r\n />\r\n </ModalBody>\r\n <ModalFooter>\r\n <Button color=\"primary\" onClick={() => {\r\n onSubmit(teacherEmail)\r\n toggle()\r\n }}>\r\n Finish\r\n </Button>{' '}\r\n <Button color=\"secondary\" onClick={toggle}>\r\n Cancel\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(BlockSelectTeacher);","import React, { FC, useCallback } from \"react\"\r\nimport { Col, Form, FormGroup, Input, Row } from \"reactstrap\"\r\nimport { Link } from \"react-router-dom\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n// import { useDispatch } from \"react-redux\"\r\n\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\n// import CloseBlock from \"./CloseBlock\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport useLogin from \"../../hooks/useLogin\"\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport GoogleLogin from 'react-google-login'\r\nimport BlockSelectTeacher from \"./BlockSelectTeacher\"\r\n// import { setAlert } from \"../../../../redux/commons/action\"\r\n\r\ninterface Props {\r\n defaultInfo?: any\r\n userLogin?: any\r\n}\r\n\r\nconst schema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n password: yup.string().required(\"Password is required\"),\r\n rememberMe: yup.boolean()\r\n})\r\n\r\nconst BlockLogin: FC<Props> = ({ defaultInfo, userLogin }: Props) => {\r\n let { isShowPassword, setIsShowPassword, fnIsCheckLogin, \r\n isLoginGoogle, setInfoUser, submitLogin, infoUser, setIsLoginGoogle, googleClientId } = useLogin()\r\n const togglePasswordVisible = () => setIsShowPassword(!isShowPassword)\r\n // const dispatch = useDispatch()\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"login\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n console.log({ googleClientId })\r\n const onSuccessGoogle = (res: any) => {\r\n if (!!res?.accessToken) {\r\n let {\r\n email,\r\n familyName,\r\n givenName,\r\n imageUrl,\r\n name // fullName\r\n } = res.profileObj;\r\n let accessToken = res.accessToken\r\n let googleId = res.googleId\r\n\r\n // const hostName = window.location.hostname;\r\n // const subDomain = hostName.split(\".marioforme.com\")?.[0];\r\n // if (!email.includes(subDomain)) {\r\n // dispatch(\r\n // setAlert({\r\n // type: \"danger\",\r\n // message: \"Email invalidate\"\r\n // })\r\n // )\r\n // return;\r\n // }\r\n\r\n const infoLogin = {\r\n firstName : givenName,\r\n lastName: familyName,\r\n imageUrl: imageUrl,\r\n fullName: name,\r\n email: email,\r\n accessToken: accessToken,\r\n googleId: googleId,\r\n }\r\n setInfoUser(infoLogin);\r\n fnIsCheckLogin(infoLogin, accessToken, clickHandler)\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <Formik\r\n initialValues={defaultInfo}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={async values => {\r\n try {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n userLogin(values)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue\r\n } = formikProps\r\n\r\n const emailError = touched.email && errors.email\r\n const passwordError = touched.password && errors.password\r\n\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <Form\r\n className={`${styles[\"block-login\"]}`}\r\n onSubmit={handleSubmit}\r\n >\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <img\r\n src=\"/images/main-blue-logo.svg\"\r\n className={`${styles[\"img-login-rectangle\"]}`}\r\n />\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Sign in\r\n </p>\r\n <FormGroup\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"Email\"\r\n value={values.email}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"email\")}\r\n required\r\n />\r\n {emailError && (\r\n <ErrorHandler\r\n text={errors.email as string}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <PasswordInput\r\n isShowPassword={isShowPassword}\r\n togglePasswordVisible={\r\n togglePasswordVisible\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {passwordError && (\r\n <ErrorHandler\r\n text={errors.password as string}\r\n />\r\n )}\r\n </FormGroup>\r\n {/* <FormGroup>\r\n <Input\r\n type=\"checkbox\"\r\n className={`${styles[\"checkbox-remember\"]}`}\r\n id=\"remember\"\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"rememberMe\",\r\n e.target.checked\r\n )\r\n }\r\n />\r\n <Label\r\n for=\"remember\"\r\n className={`${styles[\"remember\"]}`}\r\n >\r\n Remember my browser & IP\r\n </Label>\r\n </FormGroup> */}\r\n <FormGroup>\r\n <GoogleReCaptcha\r\n action=\"login\"\r\n onVerify={handleVerify}\r\n />\r\n </FormGroup>\r\n <Col className=\"p-0 mt-5\">\r\n <button\r\n className={`${styles[\"btn-login\"]}`}\r\n type=\"submit\"\r\n >\r\n LOGIN\r\n </button>\r\n </Col>\r\n {\r\n !!googleClientId && (\r\n <Col className=\"p-0 mt-1 mb-4\">\r\n <GoogleLogin \r\n clientId={googleClientId}\r\n buttonText=\"Login\"\r\n onSuccess={onSuccessGoogle}\r\n cookiePolicy={'single_host_origin'}\r\n className={`${styles[\"btn-login-google\"]}`}\r\n />\r\n </Col>\r\n )\r\n }\r\n \r\n <div className=\"d-flex justify-content-between\">\r\n <Link\r\n to=\"/forgot-password\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Forgot password?\r\n </Link>\r\n <a\r\n href=\"/privacy-policy/\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </div>\r\n {/* <p className={`${styles[\"term-and-conditions\"]}`}>\r\n Check out our <a href=\"\">Terms and Conditions</a>\r\n </p> */}\r\n </div>\r\n </Form>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n {\r\n isLoginGoogle && <BlockSelectTeacher \r\n onSubmit={(e: number) => submitLogin(e, clickHandler)}\r\n openModal={isLoginGoogle}\r\n token={infoUser.accessToken}\r\n email={infoUser.email}\r\n setOpenModal={setIsLoginGoogle}\r\n />\r\n }\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default BlockLogin\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport {\r\n checkResetToken,\r\n forgotPassword,\r\n resetPassword\r\n} from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\n\r\ntype ForgotPasswordInfo = {\r\n email: string\r\n captcha: string\r\n}\r\n\r\nconst defaultInfo: ForgotPasswordInfo = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst DASHBOARD = \"/\"\r\nconst LOGIN = \"/login\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useForgotPassword = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowNewPassword, setIsShowNewPassword] = useState<boolean>(false)\r\n const [isShowReTypePassword, setIsShowReTypePassword] = useState<boolean>(\r\n false\r\n )\r\n\r\n const [validLink, setValidLink] = useState<boolean>(true)\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(DASHBOARD)\r\n }, [])\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"A mail to reset password was sent\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const checkResetTokenRequest = useCallback(async (token: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await checkResetToken(token)\r\n } catch (err) {\r\n setValidLink(false)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const resetPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await resetPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Reset password sucessfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"forgetPass\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n return {\r\n defaultInfo,\r\n forgotPasswordRequest,\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n openLogin,\r\n toggle,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n clickHandler,\r\n handleVerify\r\n }\r\n}\r\n\r\nexport default useForgotPassword\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { GoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Col, Input, Label, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\n// import CloseBlock from \"./CloseBlock\"\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst forgotPasswordSchema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\")\r\n})\r\n\r\nconst BlockForgetPassword = () => {\r\n const {\r\n forgotPasswordRequest,\r\n clickHandler,\r\n handleVerify\r\n } = useForgotPassword()\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={forgotPasswordSchema}\r\n onSubmit={async values => {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n forgotPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors\r\n } = formikProps\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n {/* <div className=\"w-100\">\r\n <CloseBlock to=\"/\" />\r\n </div> */}\r\n <Col className=\"p-0\">\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <p className={`${styles[\"title-login\"]} `}>\r\n Forgot password\r\n </p>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Enter email to recover your account\r\n </p>\r\n <div className=\"w-100\">\r\n <Label for=\"emailForgot\">Email</Label>\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n id=\"email\"\r\n placeholder=\"Input email\"\r\n onChange={handleChange}\r\n value={values.email}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler text={errors.email} />\r\n )}\r\n </div>\r\n <GoogleReCaptcha\r\n action=\"forgetPass\"\r\n onVerify={handleVerify}\r\n />\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-5`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Continue\r\n </button>\r\n </Col>\r\n <p\r\n className={`d-flex justify-content-between`}\r\n >\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n <a\r\n href=\"/privacy-policy\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockForgetPassword\r\n","import { Formik } from \"formik\"\r\nimport React, { useEffect } from \"react\"\r\nimport { Link, useLocation } from \"react-router-dom\"\r\nimport { Col, Label, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\n// import CloseButton from \"../../../../components/Buttons/CloseButton\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\n\r\nconst initialValues = {\r\n token: \"\",\r\n password: \"\",\r\n reEnterPassword: \"\"\r\n}\r\n\r\nconst resetPasswordSchema = yup.object({\r\n password: yup.string().required(\"New password is required\"),\r\n reEnterPassword: yup\r\n .string()\r\n .required(\"Please re-enter new password\")\r\n .test(\"matching\", \"Passwords do not match\", function () {\r\n return this.parent.password === this.parent.reEnterPassword\r\n })\r\n})\r\n\r\nconst BlockResetPassword = () => {\r\n const query = new URLSearchParams(useLocation().search)\r\n const token = query.get(\"token\")\r\n const {\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword\r\n } = useForgotPassword()\r\n\r\n // const history = useHistory()\r\n // const close = () => {\r\n // history.push(\"/login\")\r\n // }\r\n\r\n useEffect(() => {\r\n checkResetTokenRequest(token as string)\r\n }, [])\r\n\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={resetPasswordSchema}\r\n onSubmit={values => {\r\n resetPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n setFieldValue,\r\n handleSubmit,\r\n touched,\r\n errors\r\n } = formikProps\r\n useEffect(() => {\r\n setFieldValue(\"token\", token)\r\n }, [])\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Reset Password\r\n </p>\r\n <div className=\"w-100\">\r\n {validLink ? (\r\n <React.Fragment>\r\n <Label for=\"emailForgot\" className=\"mb-3\">\r\n New password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={\r\n isShowNewPassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowNewPassword(\r\n !isShowNewPassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.password &&\r\n errors.password && (\r\n <ErrorHandler\r\n text={\r\n errors.password\r\n }\r\n />\r\n )}\r\n\r\n <Label for=\"emailForgot\" className=\"mt-3 mb-3\">\r\n Re-enter new password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={\r\n isShowReTypePassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowReTypePassword(\r\n !isShowReTypePassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"reEnterPassword\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.reEnterPassword &&\r\n errors.reEnterPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.reEnterPassword\r\n }\r\n />\r\n )}\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Invalid reset password link\r\n </p>\r\n <p className=\"w-100\">\r\n It may have been accessed\r\n before or expired or you\r\n have just tried to reset\r\n another account's password\r\n </p>\r\n </React.Fragment>\r\n )}\r\n </div>\r\n\r\n {validLink && (\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Confirm\r\n </button>\r\n </Col>\r\n )}\r\n <p className=\"d-flex justify-content-between\">\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n <a\r\n href=\"/privacy-policy/\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockResetPassword\r\n","import React, { useEffect } from \"react\"\r\n\r\nimport { Col, Row } from \"reactstrap\"\r\n\r\nimport BlockLogin from \"./block/BlockLogin\"\r\nimport BlockForgetPassword from \"./block/BlockForgetPassword\"\r\nimport BlockResetPassword from \"./block/BlockResetPassword\"\r\n// import BlockTwoFactorLogin from \"./block/BlockTwoFactorLogin\"\r\nimport useLogin from \"../hooks/useLogin\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\r\nimport { GOOGLE_RECAPTCHA_KEY } from \"../../../utils/constants\"\r\n\r\ninterface loginProps {\r\n isLogin?: boolean\r\n isForgotPassword?: boolean\r\n isResetPassword?: boolean\r\n isLoginTwoFactor?: boolean\r\n}\r\n\r\nconst LOGIN_TITLE = \"Log in\"\r\nconst FORGOT_PASSWORD_TITLE = \"Forgot password\"\r\nconst RESET_PASSWORD_TITLE = \"Reset password\"\r\n\r\nconst Login = (props: loginProps) => {\r\n const {\r\n isLogin,\r\n isForgotPassword,\r\n isResetPassword,\r\n // isLoginTwoFactor\r\n } = props\r\n const { defaultInfo, userLogin } = useLogin()\r\n\r\n useEffect(() => {\r\n isLogin && (document.title = LOGIN_TITLE)\r\n isForgotPassword && (document.title = FORGOT_PASSWORD_TITLE)\r\n isResetPassword && (document.title = RESET_PASSWORD_TITLE)\r\n }, [isLogin, isForgotPassword, isResetPassword])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\r\n <Row className={\"h-100\"}>\r\n <Col\r\n lg={12}\r\n md={12}\r\n xs={12}\r\n className=\"d-flex justify-content-center h-100 align-items-center\"\r\n >\r\n <GoogleReCaptchaProvider\r\n useRecaptchaNet\r\n reCaptchaKey={GOOGLE_RECAPTCHA_KEY}\r\n scriptProps={{\r\n async: true,\r\n defer: true,\r\n appendTo: \"body\"\r\n }}\r\n >\r\n {isLogin && (\r\n <BlockLogin\r\n userLogin={userLogin}\r\n defaultInfo={defaultInfo}\r\n />\r\n )}\r\n {isForgotPassword && <BlockForgetPassword />}\r\n </GoogleReCaptchaProvider>\r\n {isResetPassword && <BlockResetPassword />}\r\n {/* {isLoginTwoFactor && <BlockTwoFactorLogin />} */}\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import React from \"react\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\nconst QuoteContent = () => {\r\n return (\r\n <div className={`${styles[\"content-quote\"]}`}>\r\n <div className={`${styles[\"title-quote\"]} d-block`}>\r\n <p>Powerful</p>\r\n <p>Personalized</p>\r\n <p>Learning</p>\r\n </div>\r\n <div\r\n className={`${styles[\"descriptions-quote\"]} d-block`}\r\n >\r\n <p>Focus on what matters most to you and</p>\r\n <p>and make learning meaningful.</p>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default QuoteContent\r\n","import React, { FC } from \"react\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {\r\n srcIcon: string\r\n content: string\r\n}\r\nconst IconContent: FC<Props> = ({ srcIcon, content }: Props) => {\r\n return (\r\n <div key={content} className={`${styles[\"content-icon\"]}`}>\r\n <div className={`${styles[\"title-icon\"]}`}>\r\n <img src={srcIcon} alt=\"icon\" />\r\n </div>\r\n <div\r\n className={`${styles[\"descriptions-icon\"]}`}\r\n dangerouslySetInnerHTML={{ __html: content }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default IconContent\r\n","import React, { FC } from \"react\"\r\nimport { Col, Row } from \"reactstrap\"\r\nimport QuoteContent from \"./QuoteContent\"\r\nimport IconContent from \"./IconContent\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {}\r\nconst contents = [\r\n {\r\n scrIcon: \"/images/ChatsTeardrop.svg\",\r\n content:\r\n \"<p>Understand yourself better through <span>helpful feedback</span>.</p>\"\r\n },\r\n {\r\n scrIcon: \"/images/Student.svg\",\r\n content:\r\n \"<p>Create, explore, and share exciting <span>personalized</span> learning journeys.</p>\"\r\n },\r\n {\r\n scrIcon: \"/images/Confetti.svg\",\r\n content: \"<p>Set, monitor, and achieve <span>your goals</span>.</p>\"\r\n }\r\n]\r\n\r\nconst ContentHomePage: FC<Props> = ({}: Props) => {\r\n return (\r\n <Row className={`${styles[\"page-not-login\"]}`}>\r\n <Col md={12}>\r\n <QuoteContent />\r\n </Col>\r\n\r\n <Col md={12} className={`${styles[\"box-content-home-page\"]} d-flex align-items-center`}>\r\n {contents.map((content: any) => (\r\n <IconContent\r\n srcIcon={content.scrIcon}\r\n content={content.content}\r\n />\r\n ))}\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default ContentHomePage\r\n","import React, { useEffect, useState } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n// import BlockLogin from \"./block/BlockLogin\"\r\n// import useLogin from \"../hooks/useLogin\"\r\nimport ContentHomePage from \"./block/ContentHomePage\"\r\n// import LoginNavButton from \"../../../components/Buttons/LoginNavButton\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GiHamburgerMenu } from \"react-icons/gi\"\r\nimport { Link } from \"react-router-dom\"\r\nconst HOME_ADMIN = \"/admin/user\"\r\nconst HOME_TEACHER = \"/home\"\r\nconst HOME_STUDENT = \"/home\"\r\n\r\nimport {\r\n Collapse,\r\n Navbar,\r\n NavbarBrand,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\n\r\nconst DASHBOARD_TITLE = \"Dashboard\"\r\nconst ROOT_TITLE = \"Mario Framework\"\r\n\r\nconst Dashboard = () => {\r\n const [isOpen, setIsOpen] = useState<boolean>(false)\r\n const user = useSelector((state: any) => state.common.user)\r\n\r\n const toggle = () => setIsOpen(!isOpen)\r\n\r\n useEffect(() => {\r\n !!user\r\n ? (document.title = DASHBOARD_TITLE)\r\n : (document.title = ROOT_TITLE)\r\n }, [user])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} ${styles[\"red-background\"]}`}>\r\n <div className={`${styles[\"login-content\"]}`}>\r\n <Navbar light expand=\"md\">\r\n <NavbarBrand href=\"/\" className={`${styles[\"logo-home\"]}`}>\r\n <img src={\"/images/logo-v2.svg\"} alt=\"mario\" />\r\n </NavbarBrand>\r\n <GiHamburgerMenu\r\n onClick={toggle}\r\n className={`${styles[\"hide-in-desktop\"]} ${styles[\"hamburger-menu\"]}`}\r\n />\r\n <Collapse\r\n isOpen={isOpen}\r\n navbar\r\n className={`${styles[\"collapse-box\"]}`}\r\n >\r\n <Nav\r\n className={`${styles[\"nav-home\"]} d-md-flex w-100 justify-content-center mr-auto`}\r\n navbar\r\n >\r\n <NavItem>\r\n <NavLink\r\n className={`${styles[\"learn-more\"]} align-self-md-center`}\r\n href=\"https://marioframework.com/software\"\r\n target=\"blank\"\r\n >\r\n Learn More\r\n </NavLink>\r\n </NavItem>\r\n <NavItem>\r\n <Link\r\n className={`${styles[\"contact\"]} align-self-md-center`}\r\n to={\"/contact\"}\r\n >\r\n Contact\r\n </Link>\r\n </NavItem>\r\n <NavItem>\r\n <NavLink\r\n className={`${styles[\"learn-more\"]} align-self-md-center`}\r\n href=\"/privacy-policy\"\r\n target=\"blank\"\r\n >\r\n Privacy Policy\r\n </NavLink>\r\n </NavItem>\r\n </Nav>\r\n <div\r\n className={`${styles[\"hide-in-mobile\"]} d-flex justify-content-end`}\r\n >\r\n {user ? (\r\n <Link\r\n to={\r\n user.roles.includes(\"Admin\")\r\n ? HOME_ADMIN\r\n : user.roles.includes(\"Teacher\")\r\n ? HOME_TEACHER\r\n : HOME_STUDENT\r\n }\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Dashboard\r\n </Link>\r\n ) : (\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Login\r\n </Link>\r\n )}\r\n </div>\r\n </Collapse>\r\n </Navbar>\r\n\r\n <div className={``}>\r\n <ContentHomePage />\r\n </div>\r\n <div className={`${styles[\"digital-privacy-icon\"]}`}>\r\n <a\r\n href=\"https://cert.privo.com/#/companies/marioFrameworkLlc\"\r\n target=\"blank\"\r\n >\r\n <img src={\"/images/STUDENT.png\"} alt=\"icon\" />\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Dashboard\r\n","const Images = {\r\n USER_CONVERSATION_AVATAR: \"images/user.png\",\r\n GROUP_CONVERSATION_AVATAR: \"images/group.png\",\r\n LOGO: \"images/logoV1-1.png\",\r\n LOGO_HEADER: \"images/logo-header.png\",\r\n LOGO_MINIMIZED: \"images/logo-small.png\",\r\n DOCS_IMAGE: \"images/docs.png\",\r\n AUDIO_IMAGE: \"images/audio.png\",\r\n PHOTO_IMAGE: \"images/image.png\",\r\n VIDEO_IMAGE: \"images/video.png\",\r\n FOLDER_IMAGE: \"images/folder.png\",\r\n UNKNOW_IMAGE: \"images/unknow.png\",\r\n\r\n}\r\n\r\nexport default Images\r\n","import React, { useState, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport {\r\n CCreateElement,\r\n CSidebar,\r\n CSidebarBrand,\r\n CSidebarNav,\r\n CSidebarNavDivider,\r\n CSidebarNavTitle,\r\n // CSidebarMinimizer,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n CSidebarFooter\r\n} from \"@coreui/react\"\r\nimport { setSidebar } from \"../redux/commons/action\"\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport { reset } from \"../redux/commons/action\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport styles from \"../styles.module.scss\"\r\nimport Images from \"../assets/Images\"\r\nimport { CgMenuRight } from \"react-icons/cg\"\r\nimport { RiLogoutBoxRLine } from \"react-icons/ri\"\r\n\r\nconst TheSidebar = ({ navigation }: any) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const show = useSelector<any>((state: any) => state.common.sidebarShow)\r\n const [toggleMinimize, setToggleMinimize] = useState<boolean>(false)\r\n const signOut = useCallback(() => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n dispatch(reset())\r\n history.push(\"/\")\r\n }, [])\r\n return (\r\n <CSidebar\r\n show={show as any}\r\n onShowChange={(val: any) => dispatch(setSidebar(val))}\r\n minimize={toggleMinimize}\r\n className={`${styles[\"box-sidebar\"]}`}\r\n >\r\n <CSidebarBrand\r\n className={`${styles[\"box-sidebar-header\"]} d-md-down-none justify-content-around`}\r\n >\r\n <div>\r\n <img\r\n src={Images.LOGO}\r\n className={`${styles[\"sidebar-logo\"]} c-sidebar-brand-full`}\r\n />\r\n <img\r\n src={Images.LOGO_MINIMIZED}\r\n className={`${styles[\"sidebar-logo\"]} ${styles[\"sidebar-btn-minimized\"]} c-sidebar-brand-minimized`}\r\n onClick={() => setToggleMinimize(false)}\r\n />\r\n </div>\r\n <CgMenuRight\r\n className={`${styles[\"sidebar-btn-minimized\"]} c-sidebar-brand-full`}\r\n onClick={() => setToggleMinimize(true)}\r\n />\r\n </CSidebarBrand>\r\n <CSidebarNav className={`${styles[\"sidebar-nav-links\"]} ${toggleMinimize && styles[\"sidebar-nav-links-hover\"]}`}>\r\n <CCreateElement\r\n items={navigation}\r\n components={{\r\n CSidebarNavDivider,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n CSidebarNavTitle\r\n }}\r\n />\r\n </CSidebarNav>\r\n {/* <CSidebarMinimizer\r\n id=\"sidebar-minimizer\"\r\n className=\"c-d-md-down-none\"\r\n /> */}\r\n <CSidebarFooter\r\n onClick={signOut}\r\n className={`${styles[\"box-logout\"]} p-3 d-flex align-items-center cursor-point`}\r\n >\r\n <RiLogoutBoxRLine\r\n onClick={signOut}\r\n className={`${styles[\"sidebar-logout\"]}`}\r\n />\r\n <p onClick={signOut}>Log out</p>\r\n </CSidebarFooter>\r\n </CSidebar>\r\n )\r\n}\r\n\r\nexport default TheSidebar\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setNotification = createAction<any>(\r\n \"notifications/setNotification\"\r\n)\r\n\r\nexport const setUnReadNotification = createAction<number>(\r\n \"notifications/setUnReadNotification\"\r\n)\r\n\r\nexport const updateUnReadNotification = createAction<number>(\r\n \"notifications/updateUnReadNotification\"\r\n)\r\n","import { api } from \"./api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst NOTIFICATION_URL = `${BASE_URL}/api/notification`\r\n\r\nexport const get = (filter: any) =>\r\n api.get(NOTIFICATION_URL, { params: { ...filter } })\r\n\r\nexport const getUnReadNotifications = () =>\r\n api.get(`${NOTIFICATION_URL}/unread`)\r\n\r\nexport const updateLastTimeCheckNotification = () =>\r\n api.put(`${NOTIFICATION_URL}/lasttimechecknotification`)\r\n\r\nexport const getById = (id: number) => api.get(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const updateStatusNotification = (id: number) =>\r\n api.put(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const clearChatNotification = () =>\r\n api.delete(`${NOTIFICATION_URL}/chat`)\r\n\r\nexport const updateAllStatus = () =>\r\n api.put(`${NOTIFICATION_URL}/updateAllStatus`)\r\n","import { useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"../../../redux/notifications/action\"\r\nimport { getUnReadNotifications } from \"../../../services/notificationService\"\r\n\r\nimport {\r\n NOTIFICATION_CHANNEL,\r\n NEW_NOTIFICATION\r\n} from \"../../../utils/constants\"\r\n\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\n\r\n//const MESSAGE_RECEIVED = \"MESSAGE_RECEIVED\"\r\n\r\nconst useUnReadNotification = () => {\r\n const dispatch = useDispatch()\r\n const userId = useSelector((state: any) => state.common.user?.id)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n const res = await getUnReadNotifications()\r\n dispatch(setUnReadNotification(res.data))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [])\r\n\r\n const location = useLocation()\r\n const isChat = location.pathname.includes(\"chat\")\r\n\r\n useEffect(() => {\r\n getData()\r\n\r\n let pusher: Pusher\r\n if (pusherKey && pusherCluster) {\r\n pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(\r\n `${NOTIFICATION_CHANNEL}-${userId}`\r\n )\r\n\r\n channel.bind(NEW_NOTIFICATION, () => {\r\n getData()\r\n })\r\n\r\n channel.bind(\"update-unread-notification\", () => {\r\n isChat && getData()\r\n })\r\n }\r\n\r\n return () =>\r\n pusher && pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [updateUnReadNotification, isChat, pusherKey, pusherCluster])\r\n\r\n return { unReadNotification }\r\n}\r\n\r\nexport default useUnReadNotification\r\n","import React, { FC, useCallback } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nimport useUnreadNotification from \"../hooks/useUnreadNotification\"\r\n\r\ninterface Props {}\r\n\r\n// const ICON_SIZE = 24\r\n\r\nconst NotificationButton: FC<Props> = ({}: Props) => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const isAdmin = user && user.roles.includes(\"Admin\")\r\n const { unReadNotification } = useUnreadNotification()\r\n\r\n const openNotification = useCallback(() => {\r\n const features = `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=1080, height=720, top=100, left=100`\r\n const url = `${isAdmin ? \"/admin\" : \"\"}/notifications`\r\n window.open(url, \"NotificationDialog\", features)\r\n }, [])\r\n\r\n return (\r\n <div className=\"d-inline position-relative cursor-pointer mr-2 user-select-none\">\r\n <div\r\n className=\"d-inline position-relative\"\r\n onClick={openNotification}\r\n >\r\n <i className=\"fas fa-bell\" style={{ fontSize: \"20px\" }}></i>\r\n {!!unReadNotification && (\r\n <div\r\n className={`${styles[\"notification-count\"]} position-absolute text-small`}\r\n >\r\n {unReadNotification}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationButton\r\n","import { BASE_URL } from \"./constants\"\r\n\r\nconst getFileUrl = (fileName: string) => {\r\n if (!fileName || !fileName.trim()) return \"\"\r\n return `${BASE_URL}/api/file/viewer?key=${fileName}`\r\n}\r\n\r\nexport default getFileUrl\r\n","import React, { useCallback, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useHistory, Link } from \"react-router-dom\"\r\n\r\nimport { reset } from \"../redux/commons/action\"\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport getFileUrl from \"../utils/getFileUrl\"\r\nimport styles from \"../styles.module.scss\"\r\nimport {\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle,\r\n NavLink\r\n} from \"reactstrap\"\r\n\r\nconst DEFAULT_USER_AVATAR = \"/avatars/default-avatar.png\"\r\nconst ADMIN_ROLE = \"Admin\"\r\nconst TEACHER_ROLE = \"Teacher\"\r\nconst USER_DETAIL_URL = \"/admin/user\"\r\n\r\nconst TheHeaderDropdown = () => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const { email, profileImageFileName, roles, id } = user\r\n const isAdmin = roles.includes(ADMIN_ROLE)\r\n const isTeacher = roles.includes(TEACHER_ROLE)\r\n\r\n const goToTeacherPanel = useCallback(() => {\r\n isTeacher && history.push(\"/home\")\r\n }, [isTeacher, history])\r\n\r\n const signOut = useCallback(() => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n dispatch(reset())\r\n history.push(\"/\")\r\n }, [])\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false)\r\n const toggle = () => setDropdownOpen(prevState => !prevState)\r\n\r\n const avatarUrl = profileImageFileName\r\n ? getFileUrl(profileImageFileName)\r\n : DEFAULT_USER_AVATAR\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <Dropdown\r\n isOpen={dropdownOpen}\r\n toggle={toggle}\r\n className={`${styles[\"dropdown-menu\"]}`}\r\n >\r\n <DropdownToggle className={`${styles[\"header-avatar\"]} `}>\r\n <img src={avatarUrl} alt=\"avatar\" />\r\n </DropdownToggle>\r\n <DropdownMenu className={styles[\"dropdown-content\"]}>\r\n <div className={`${styles[\"item-contact\"]} d-flex`}>\r\n <div\r\n className={`${styles[\"img-avatar\"]} d-flex align-items-center`}\r\n >\r\n <img src={avatarUrl} alt=\"admin@bootstrapmaster.com\" />\r\n </div>\r\n <div className={styles[\"content-text\"]}>\r\n <h5>{`${user.firstName} ${user.lastName}`}</h5>\r\n <span className=\"block\">{email}</span>\r\n {!isDistrict && (\r\n <NavLink>\r\n {isTeacher && (\r\n <Link to=\"/my-profile\">Edit profile</Link>\r\n )}\r\n {isAdmin && (\r\n <Link to={`${USER_DETAIL_URL}/${id}`}>\r\n Edit profile\r\n </Link>\r\n )}\r\n </NavLink>\r\n )}\r\n </div>\r\n </div>\r\n {isTeacher && (\r\n <DropdownItem\r\n onClick={goToTeacherPanel}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className={`mr-2`}>\r\n <i className=\"fas fa-cogs h6 mb-0\"></i>\r\n </span>\r\n GO TO TEACHER PANEL\r\n </div>\r\n </DropdownItem>\r\n )}\r\n <DropdownItem\r\n onClick={signOut}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} ${styles[\"item-logout\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <i className=\"fas fa-power-off h6 mb-0\"></i>\r\n </span>\r\n LOGOUT\r\n </div>\r\n </DropdownItem>\r\n </DropdownMenu>\r\n </Dropdown>\r\n )\r\n}\r\n\r\nexport default TheHeaderDropdown\r\n","import React, { useState } from \"react\"\r\nimport { BsChevronDown } from \"react-icons/bs\";\r\n\r\nimport styles from \"../styles.module.scss\"\r\nimport {\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle\r\n} from \"reactstrap\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setLanguage } from \"../redux/commons/action\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst TheLanguageDropdown = () => {\r\n const defaultLanguage =\r\n localStorage.getItem(\"language\") !== null\r\n ? localStorage.getItem(\"language\")\r\n : \"uk\"\r\n const dispatch = useDispatch()\r\n const { i18n } = useTranslation()\r\n const [dropdownOpen, setDropdownOpen] = useState(false)\r\n const [language, setItemLanguage] = useState(defaultLanguage)\r\n const toggle = () => setDropdownOpen(prevState => !prevState)\r\n const changeLanguageApp = (lang: string) => {\r\n i18n.changeLanguage(lang)\r\n localStorage.setItem(\"language\", lang)\r\n setItemLanguage(lang)\r\n dispatch(setLanguage(lang))\r\n }\r\n\r\n const displayCurrentLang = {\r\n uk: (\r\n <React.Fragment>\r\n <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src=\"/images/united-kingdom.png\" /> English, UK\r\n </React.Fragment>\r\n ),\r\n us: (\r\n <React.Fragment>\r\n <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src=\"/images/usa.png\" /> English, US\r\n </React.Fragment>\r\n )\r\n }\r\n\r\n return (\r\n <Dropdown\r\n isOpen={dropdownOpen}\r\n toggle={toggle}\r\n className={`${styles[\"dropdown-menu\"]}`}\r\n >\r\n <DropdownToggle\r\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\r\n >\r\n <span style={{ color: \"#000\", textTransform: \"capitalize\", display: 'flex', alignItems: 'center' }}>\r\n {displayCurrentLang[language || \"uk\"]}\r\n <BsChevronDown className=\"ml-2\" style={{ fontSize: '10px' }} />\r\n </span>\r\n </DropdownToggle>\r\n <DropdownMenu className={styles[\"dropdown-content-language\"]}>\r\n <DropdownItem\r\n className={`${styles[\"dropdown-change\"]} px-0 py-0 pt-2`}\r\n onClick={() => changeLanguageApp(\"uk\")}\r\n >\r\n <div\r\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\r\n language == \"uk\" ? styles['dropdown-item-language-active'] : \"\"\r\n } d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <img\r\n style={{ width: \"30px\" }}\r\n src=\"/images/united-kingdom.png\"\r\n />\r\n </span>\r\n United Kingdom\r\n </div>\r\n </DropdownItem>\r\n {/* <DropdownItem\r\n className={`${styles[\"dropdown-change\"]} px-0 py-0 pb-2`}\r\n onClick={() => changeLanguageApp(\"us\")}\r\n >\r\n <div\r\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\r\n language == \"us\" ? styles['dropdown-item-language-active'] : \"\"\r\n } d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <img\r\n style={{ width: \"30px\" }}\r\n src=\"/images/usa.png\"\r\n />\r\n </span>\r\n United States of America\r\n </div>\r\n </DropdownItem> */}\r\n </DropdownMenu>\r\n </Dropdown>\r\n )\r\n}\r\n\r\nexport default TheLanguageDropdown\r\n","import React from \"react\"\r\n// import { useSelector, useDispatch } from \"react-redux\"\r\nimport { CHeader, CHeaderBrand, CHeaderNav } from \"@coreui/react\"\r\n\r\n// import { setSidebar } from \"../redux/commons/action\"\r\n\r\nimport styles from \"../styles.module.scss\"\r\n\r\nimport NotificationButton from \"../containers/Notifications/components/NotificationButton\"\r\n\r\nimport TheHeaderDropdown from \"./TheHeaderDropdown\"\r\n\r\nimport Images from \"../assets/Images\"\r\nimport TheLanguageDropdown from \"./TheLanguageDropdown\"\r\n\r\nconst TheHeader = () => {\r\n // const dispatch = useDispatch()\r\n // const sidebarShow = useSelector((state: any) => state.common.sidebarShow)\r\n\r\n // const toggleSidebar = () => {\r\n // const val = [true, \"responsive\"].includes(sidebarShow)\r\n // ? false\r\n // : \"responsive\"\r\n // dispatch(setSidebar(val))\r\n // }\r\n\r\n // const toggleSidebarMobile = () => {\r\n // const val = [false, \"responsive\"].includes(sidebarShow)\r\n // ? true\r\n // : \"responsive\"\r\n // dispatch(setSidebar(val))\r\n // }\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <CHeader\r\n withSubheader\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {/* <CToggler\r\n inHeader\r\n className=\"ml-md-3 d-lg-none\"\r\n onClick={toggleSidebarMobile}\r\n />\r\n <CToggler\r\n inHeader\r\n className=\"ml-3 d-md-down-none\"\r\n onClick={toggleSidebar}\r\n /> */}\r\n <CHeaderBrand className=\"mx-auto flex-grow-1 d-lg-none\" to=\"/\">\r\n <img\r\n src={Images.LOGO_HEADER}\r\n className={styles[\"header-logo\"]}\r\n />\r\n </CHeaderBrand>\r\n\r\n <CHeaderNav className=\"pr-3\">\r\n <TheLanguageDropdown />\r\n <a className=\"mr-3\" style={{color: '#000'}} href='/privacy-policy' target=\"blank\">\r\n Privacy Policy \r\n </a>\r\n {!isDistrict && <NotificationButton />}\r\n <TheHeaderDropdown />\r\n </CHeaderNav>\r\n </CHeader>\r\n )\r\n}\r\n\r\nexport default TheHeader\r\n","import React, { FC, useEffect } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst TITLE = \"Not found\"\r\nconst NotFound: FC = () => {\r\n useEffect(() => {\r\n document.title = TITLE\r\n })\r\n return (\r\n <div className=\"not-found\">\r\n <div className=\"clearfix\">\r\n <h1 className=\"float-left display-3 mr-4\">404</h1>\r\n <div className=\"float-left\">\r\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\r\n <p className=\"text-muted mb-2\">\r\n The page you are looking for was not found.\r\n </p>\r\n <div>\r\n <Link to=\"/\">Go to home</Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotFound\r\n","import React, { Suspense } from \"react\"\r\nimport { Route, Switch, useLocation } from \"react-router-dom\"\r\nimport { CContainer } from \"@coreui/react\"\r\nimport NotFound from \"../containers/Commons/NotFound\"\r\n\r\nconst loading = (\r\n <div className=\"pt-3 text-center\">\r\n <div className=\"sk-spinner sk-spinner-pulse\" />\r\n </div>\r\n)\r\n\r\nconst TheContent = ({ routes }: any) => {\r\n const location = useLocation()\r\n const { pathname } = location\r\n const dashboard = pathname === \"/\" ? \"box-container\" : \"\"\r\n return (\r\n <main className={`c-main ${dashboard}`}>\r\n <CContainer fluid className=\"h-100\">\r\n <Suspense fallback={loading}>\r\n <Switch>\r\n {routes.map((route: any, idx: any) => (\r\n <Route\r\n key={idx}\r\n path={route.path}\r\n exact={route.exact}\r\n component={route.component}\r\n />\r\n ))}\r\n <Route path=\"*\" component={NotFound} />\r\n </Switch>\r\n </Suspense>\r\n </CContainer>\r\n </main>\r\n )\r\n}\r\n\r\nexport default React.memo(TheContent)\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst loadingStyle: CSSProperties = {\r\n minWidth: \"100vw\",\r\n minHeight: \"100vh\",\r\n position: \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999999,\r\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst Loading: FC = () => {\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n\r\n return isLoading ? (\r\n <div style={loadingStyle}>\r\n <div className=\"spinner-border text-secondary\" role=\"status\">\r\n <span className=\"sr-only\">Loading...</span>\r\n </div>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default Loading","import getAccessToken from \"./getAccessToken\"\r\nimport { checkToken } from \"../services/accountService\"\r\n\r\nconst firstCheckToken = async () => {\r\n try {\r\n const token = getAccessToken()\r\n if (!token) return false\r\n\r\n const tokenStatus = await checkToken(token)\r\n if (!tokenStatus.data) return false\r\n\r\n return true\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nexport default firstCheckToken\r\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\r\n if (!Array.isArray(userRoles)) {\r\n return false\r\n }\r\n if (Array.isArray(componentRoles)) {\r\n const intersects = userRoles.filter(i => componentRoles.includes(i))\r\n return intersects.length > 0\r\n }\r\n return true\r\n}\r\n\r\nexport default canAccess\r\n","import React, { useEffect, useMemo } from \"react\"\r\nimport { useHistory, useLocation } from \"react-router-dom\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nimport { setUser } from \"../redux/commons/action\"\r\n\r\nimport TheSidebar from \"./TheSidebar\"\r\nimport TheHeader from \"./TheHeader\"\r\nimport TheContent from \"./TheContent\"\r\nimport Loading from \"../components/Loading/Loading\"\r\n\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport firstCheckToken from \"../utils/firstCheckToken\"\r\nimport canAccessRoute from \"../utils/canAccessRoute\"\r\nimport { getInfo } from \"../services/accountService\"\r\nimport \"../i18n\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst TheLayout = ({ routes, navigation }: any) => {\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n const user = useSelector((state: any) => state.common.user)\r\n const language = useSelector((state: any) => state.common.language)\r\n const { t } = useTranslation();\r\n const location = useLocation()\r\n const isNotification = location.pathname.includes(\"notifications\")\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const authRoutes = useMemo(() => {\r\n return routes\r\n .filter((route: any) => canAccessRoute(user?.roles, route.roles))\r\n .filter((route: any) => !!route.isDistrict === isDistrict)\r\n }, [user, language])\r\n\r\n const authNavigations = useMemo(() => {\r\n return navigation.map((item: any) => {\r\n return {\r\n ...item,\r\n name: t(item.name)\r\n }\r\n })\r\n .filter((nav: any) => canAccessRoute(user?.roles, nav.roles))\r\n .filter((nav: any) => !!nav.isDistrict === isDistrict)\r\n }, [user, language])\r\n\r\n useEffect(() => {\r\n checkAuthentication()\r\n }, [])\r\n\r\n const checkAuthentication = async () => {\r\n try {\r\n const tokenStatus = await firstCheckToken()\r\n tokenStatus ? loadInfo() : resetAuth()\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const loadInfo = async () => {\r\n try {\r\n const info = await getInfo()\r\n if (!info) {\r\n resetAuth()\r\n }\r\n\r\n dispatch(setUser(info.data))\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const resetAuth = () => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n history.push(\"/\")\r\n }\r\n\r\n if (!user) {\r\n return <Loading />\r\n }\r\n\r\n return (\r\n <div className=\"c-app c-default-layout\">\r\n {!isNotification && <TheSidebar navigation={authNavigations} />}\r\n <div className=\"c-wrapper\">\r\n {!isNotification && <TheHeader />}\r\n <div className=\"c-body bg-white\">\r\n <TheContent routes={authRoutes} />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TheLayout\r\n","import React, { CSSProperties, FC } from 'react'\r\nimport { Button } from 'reactstrap'\r\nimport { FaPlus } from 'react-icons/fa'\r\n\r\ninterface Props {\r\n text?: string\r\n onClick?(): void\r\n}\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst AddButton: FC<Props> = ({ text, onClick }: Props) => {\r\n return (\r\n <Button\r\n onClick={onClick}\r\n color='success'\r\n style={buttonStyle}\r\n className='d-flex align-items-center'\r\n >\r\n <FaPlus />\r\n <span className='ml-2' style={buttonTextStyle}>\r\n {text}\r\n </span>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default AddButton\r\n","import React, { FC } from \"react\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick?: () => any\r\n}\r\n\r\nconst DeleteButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Delete\"\r\n onClick={onClick}\r\n >\r\n <FaTrashAlt />\r\n </div>\r\n )\r\n}\r\n\r\nexport default DeleteButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n onClick: () => any\r\n}\r\n\r\nconst LinkEditButton: FC<Props> = ({ label, onClick }: Props) => {\r\n return (\r\n <Button className=\"text-left py-0\" color=\"link\" onClick={onClick}>\r\n {label}\r\n </Button>\r\n )\r\n}\r\n\r\nexport default LinkEditButton\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst EmptyDataAlert: FC<Props> = ({ label, className, style }: Props) => {\r\n return (\r\n <Alert color=\"primary\" className={className} style={style}>\r\n No {label} to display\r\n </Alert>\r\n )\r\n}\r\n\r\nEmptyDataAlert.defaultProps = {\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default EmptyDataAlert\r\n","import React, { useEffect, useState } from \"react\"\r\nimport Select from \"react-select\"\r\nimport {\r\n Col,\r\n // Input,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Row\r\n} from \"reactstrap\"\r\nimport {\r\n DEFAULT_PAGE_SIZE_VALUES,\r\n DEFAULT_PAGE_SIZE\r\n} from \"../../utils/constants\"\r\n\r\nconst CustomPagination = (props: any) => {\r\n const { filters, changePage, totalRecordCount, changePageSize } = props\r\n const [input, setInput] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n setInput(filters.currentPage.toString())\r\n }, [filters.currentPage])\r\n\r\n return (\r\n <Row>\r\n <Col md={12} className=\"d-flex justify-content-end\">\r\n <Pagination>\r\n <div className=\"mr-1 pagination-dropdown\">\r\n <Select\r\n className=\"text-center\"\r\n value={\r\n !!filters && !!filters.pageSize\r\n ? {\r\n label: filters.pageSize,\r\n value: filters.pageSize\r\n }\r\n : DEFAULT_PAGE_SIZE\r\n }\r\n options={DEFAULT_PAGE_SIZE_VALUES}\r\n onChange={(e: any) => changePageSize(e.value)}\r\n />\r\n </div>\r\n\r\n <PaginationItem className=\"mr-1\">\r\n <PaginationLink\r\n previous\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={filters.currentPage <= 1}\r\n onClick={() => changePage(filters.currentPage - 1)}\r\n >\r\n Prev\r\n </PaginationLink>\r\n </PaginationItem>\r\n\r\n <input\r\n type=\"text\"\r\n id=\"pageNumberInput\"\r\n className=\"page-input text-center pagination-input\"\r\n onChange={(e: any) => setInput(e.target.value)}\r\n onKeyUp={(e: any) => {\r\n if (e.key === \"Enter\" || e.keyCode === 13) {\r\n changePage(parseInt(input))\r\n }\r\n }}\r\n value={input}\r\n />\r\n\r\n <PaginationItem className=\"ml-1\">\r\n <PaginationLink\r\n next\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={\r\n filters.currentPage >\r\n totalRecordCount / filters.pageSize\r\n }\r\n onClick={() => changePage(filters.currentPage + 1)}\r\n >\r\n Next\r\n </PaginationLink>\r\n </PaginationItem>\r\n </Pagination>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default CustomPagination\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setEmailTemplateList = createAction<any>(\r\n \"emailTemplate/setEmailTemplateList\"\r\n)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMailCategory = createAction<Array<object> | undefined>(\r\n \"mailCategories/setMailCategory\"\r\n)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst EMAIL_TEMPLATE_URL = `${BASE_URL}/api/emailtemplate`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(EMAIL_TEMPLATE_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(EMAIL_TEMPLATE_URL, data)\r\n\r\nexport const update = (data: any) =>\r\n api.put(`${EMAIL_TEMPLATE_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\n\r\nconst MAIL_CATEGORY_URL = `${BASE_URL}/api/EmailTemplateCategory`\r\n\r\nexport const get = () => api.get(MAIL_CATEGORY_URL)\r\n","import { useState } from \"react\"\r\n\r\nimport { Filter } from \"../types/Filter\"\r\nimport { DEFAULT_FILTER } from \"../utils/constants\"\r\n\r\nconst useFilters = () => {\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) => {\r\n const newFilters = {\r\n ...filters,\r\n ...updatedFilters\r\n }\r\n if (!!newFilters.searchString && !!updatedFilters.searchString && updatedFilters.searchString != filters.searchString) {\r\n newFilters.currentPage = 1\r\n }\r\n\r\n setFilters(newFilters)\r\n }\r\n\r\n return { filters, setFilters, changeFilters }\r\n}\r\n\r\nexport default useFilters\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setEmailTemplateList } from \"../../../redux/emailTemplates/action\"\r\nimport { setMailCategory } from \"../../../redux/mailCategories/action\"\r\nimport { get, remove } from \"../../../services/emailTemplateService\"\r\nimport { get as getCategory } from \"../../../services/mailCategoryService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst EMAIL_TEMPLATE_URL = \"/admin/email-template\"\r\nconst CREATE_TEMPLATE_URL = \"/admin/create-email-template\"\r\nconst TITLE = \"Email template list\"\r\n\r\nconst useEmailTemplateList = () => {\r\n const history = useHistory()\r\n const emailTemplateList = useSelector(\r\n (state: any) => state.emailTemplate.emailTemplateList\r\n )\r\n const totalItems = useSelector(\r\n (state: any) => state.emailTemplate.totalItems\r\n )\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setEmailTemplateList({ emailTemplateList: items, totalItems })\r\n )\r\n if (!!mailCategoryList && mailCategoryList.length == 0) {\r\n const response = await getCategory()\r\n dispatch(setMailCategory(response.data.items))\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this email template?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove template successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n const goToDetail = useCallback((id?: number) => {\r\n const url = !!id ? `${EMAIL_TEMPLATE_URL}/${id}` : CREATE_TEMPLATE_URL\r\n history.push(url)\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n }\r\n}\r\n\r\nexport default useEmailTemplateList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\n\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport { format } from \"date-fns\"\r\nimport { DATE_RESULT } from \"../../../utils/constants\"\r\nimport useEmailTemplateList from \"../hooks/useEmailTemplateList\"\r\n\r\nconst header = \"Email template\"\r\n\r\nconst EmailTemplateList: FC = () => {\r\n const {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n } = useEmailTemplateList()\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text=\"Create template\"\r\n onClick={() => goToDetail()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of templates: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {emailTemplateList && emailTemplateList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Template name</th>\r\n <th className=\"align-top\">Category name</th>\r\n <th className=\"align-top\">Created date</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {emailTemplateList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.subject}\r\n onClick={() =>\r\n goToDetail(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.category.name}\r\n </td>\r\n <td className=\"align-middle\">\r\n {format(\r\n new Date(record.createdAt),\r\n DATE_RESULT\r\n )}\r\n </td>\r\n\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"template\" />\r\n )}\r\n <Row className=\"mt-2\">\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Category name</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {mailCategoryList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.name}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default EmailTemplateList\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { Row, Col, Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n confirmText: string\r\n onConfirm: () => any\r\n onCancel: () => any\r\n}\r\n\r\nconst style: CSSProperties = {\r\n width: \"100%\",\r\n position: \"fixed\",\r\n bottom: 0,\r\n backgroundColor: \"#fff\",\r\n borderTop: \"1px solid #ddd\",\r\n marginTop: \"20px\",\r\n marginLeft: \"-30px\",\r\n padding: \"8px\",\r\n zIndex: 1\r\n}\r\n\r\nconst DetailActionButtons: FC<Props> = ({\r\n confirmText,\r\n onConfirm,\r\n onCancel\r\n}: Props) => {\r\n return (\r\n <Row form style={style}>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n <Button size=\"sm\" className=\"px-4 mr-2 ml-2\" onClick={onCancel}>\r\n Cancel\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default DetailActionButtons\r\n","import React, { FC } from \"react\"\r\nimport { FaPlus } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst AddButtonIcon: FC<Props> = ({ onClick } : Props) => {\r\n return <div className=\"d-inline text-center cursor-pointer hover-opacity\" title=\"Delete\" onClick={onClick}>\r\n <FaPlus />\r\n </div>\r\n}\r\n\r\nexport default AddButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Table } from \"reactstrap\"\r\n\r\nimport AddButtonIcon from \"../../../components/Buttons/AddButtonIcon\"\r\n\r\ninterface Props {\r\n onClick: any\r\n isResetPasswordTemplate: any\r\n}\r\n\r\nconst defaultparams = [\r\n { label: \"$USER_FIRST_NAME$\", meaning: \"User first name\" },\r\n { label: \"$USER_LAST_NAME$\", meaning: \"User last name\" },\r\n { label: \"$PASSWORD$\", meaning: \"Password\" },\r\n { label: \"$USER_NAME$\", meaning: \"User name\" },\r\n { label: \"$USER_EMAIL$\", meaning: \"User email\" },\r\n { label: \"$MESSAGE$\", meaning: \"Message\" },\r\n { label: \"$DOMAIN$\", meaning: \"Domain\" }\r\n]\r\n\r\nconst MailSubject: FC<Props> = ({\r\n onClick,\r\n isResetPasswordTemplate\r\n}: Props) => {\r\n !!isResetPasswordTemplate\r\n let params = !!isResetPasswordTemplate\r\n ? [...defaultparams, { label: \"$RESET_LINK$\", meaning: \"Reset link\" }]\r\n : defaultparams\r\n return (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Params</th>\r\n <th className=\"align-top\">Meaning</th>\r\n <th />\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {params.map(param => (\r\n <tr key={param.label}>\r\n <td className=\"align-middle\">{param.label}</td>\r\n <td className=\"align-middle\">{param.meaning}</td>\r\n <td className=\"text-center align-middle\">\r\n <AddButtonIcon onClick={() => onClick(param)} />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n )\r\n}\r\n\r\nexport default MailSubject\r\n","import React, { useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { setMailCategory } from \"../../redux/mailCategories/action\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { get as getCategory } from \"../../services/mailCategoryService\"\r\n\r\nconst MailCategorySelector = (props: any) => {\r\n const dispatch = useDispatch()\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n useEffect(() => {\r\n fetchMailCategory()\r\n }, [])\r\n const fetchMailCategory = async () => {\r\n try {\r\n const res = await getCategory()\r\n dispatch(setMailCategory(res.data.items))\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = mailCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default MailCategorySelector\r\n","import React, { FC, memo } from \"react\"\r\nimport { Label } from \"reactstrap\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst RequiredLabel: FC<Props> = ({ text }: Props) => {\r\n return (\r\n <Label>\r\n {text}\r\n <span className=\"ml-2 text-danger\">*</span>\r\n </Label>\r\n )\r\n}\r\n\r\nexport default memo(RequiredLabel)\r\n","import React from \"react\"\r\nimport { Prompt } from \"react-router-dom\"\r\n\r\nconst quitAlertMessage =\r\n \"You have some changes. Click OK to discard or click Cancel to continue edit, then click Update below to save your changes.\"\r\n\r\nexport default function QuitPrompt(props: any) {\r\n const { when } = props\r\n return <Prompt when={when} message={quitAlertMessage} />\r\n}\r\n","import React, { FC, Fragment } from \"react\"\r\n\r\ninterface Props {\r\n label: string\r\n onRemove: any\r\n}\r\n\r\nconst AttachmentFile: FC<Props> = ({ label, onRemove }: Props) => {\r\n return (\r\n <Fragment>\r\n <span className=\"mr-2\">{label}</span>\r\n <i\r\n className=\"fa fa-times text-danger cursor-pointer hover-opacity\"\r\n onClick={onRemove}\r\n />\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport default AttachmentFile\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { apiUpload, api } from \"./api\"\r\n\r\nconst UPLOAD_FILE_URL = `${BASE_URL}/api/file`\r\nconst SYSTEM_PROFILE = `${UPLOAD_FILE_URL}/system/profile`\r\nconst SYSTEM_STUDENT_BADGE = `${UPLOAD_FILE_URL}/system/student-badge`\r\nconst SYSTEM_CERTIFICATE = `${UPLOAD_FILE_URL}/system/certificate`\r\nconst SYSTEM_EMAIL = `${UPLOAD_FILE_URL}/system/email-attachment`\r\nconst SYSTEM_QUESTION = `${UPLOAD_FILE_URL}/system/question`\r\nconst SYSTEM_ANSWER = `${UPLOAD_FILE_URL}/system/answer`\r\nconst SYSTEM_TUTORIAL = `${UPLOAD_FILE_URL}/system/tutorial`\r\nconst CUSTOM_KEY = `${UPLOAD_FILE_URL}/custom-key`\r\nconst DELETE_FILE = `${UPLOAD_FILE_URL}/delete-file`\r\nconst DELETE_FOLDER = `${UPLOAD_FILE_URL}/delete-folder`\r\nconst CREATE_FOLDER = `${UPLOAD_FILE_URL}/create-folder`\r\nconst RENAME_FILE = `${UPLOAD_FILE_URL}/rename-file`\r\n\r\nexport const uploadFile = (formData: FormData) =>\r\n apiUpload.post(UPLOAD_FILE_URL, formData)\r\nexport const systemStudentBadge = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_STUDENT_BADGE, formData)\r\nexport const systemCertificateUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_CERTIFICATE, formData)\r\nexport const systemProfileUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_PROFILE, formData)\r\nexport const systemEmailUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_EMAIL, formData)\r\nexport const systemQuestionUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_QUESTION, formData)\r\nexport const systemAnswerUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_ANSWER, formData)\r\nexport const systemTutorialUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_TUTORIAL, formData)\r\nexport const customKeyUpload = (formData: FormData) =>\r\n apiUpload.post(CUSTOM_KEY, formData)\r\nexport const deleteFile = (key: string) =>\r\n api.delete(`${DELETE_FILE}?key=${key}`)\r\nexport const deleteFolder = (key: string) =>\r\n api.delete(`${DELETE_FOLDER}?key=${key}`)\r\nexport const createFolder = (prefix: string, folderName: string) =>\r\n api.post(CREATE_FOLDER, {\r\n prefix: prefix || \"\",\r\n folderName: folderName\r\n })\r\nexport const renameFile = (key: string, name: string) =>\r\n api.post(RENAME_FILE, { key: key, name: name })\r\n","import getFileUrl from \"../utils/getFileUrl\"\r\nimport { ANSWER_EDITOR_HEIGHT } from \"./../utils/constants\"\r\nimport {\r\n systemEmailUpload,\r\n systemQuestionUpload,\r\n systemAnswerUpload,\r\n systemTutorialUpload\r\n} from \"../services/fileServices\"\r\n\r\nconst config: any = {\r\n height: 500,\r\n menubar: false,\r\n force_br_newlines: true,\r\n force_p_newlines: false,\r\n branding: false,\r\n convert_urls: false,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image`,\r\n paste_data_images: true\r\n}\r\n\r\nconst email = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemEmailUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst question = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: any) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemQuestionUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst answer = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemAnswerUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst tutorial = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n media_live_embeds: true,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image | media`,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemTutorialUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n },\r\n file_picker_callback: function (cb: any) {\r\n var input = document.createElement(\"input\")\r\n input.setAttribute(\"type\", \"file\")\r\n input.setAttribute(\"accept\", \"video/*\")\r\n input.onchange = async function (e: any) {\r\n const file = e.target.files[0]\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n\r\n const { data } = await systemTutorialUpload(formData)\r\n cb(getFileUrl(data.key))\r\n }\r\n\r\n input.click()\r\n }\r\n}\r\n\r\nconst editorConfig = {\r\n email,\r\n question,\r\n answer,\r\n tutorial\r\n}\r\n\r\nexport default editorConfig\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { getById, update, create } from \"../../../services/emailTemplateService\"\r\nimport { systemEmailUpload } from \"../../../services/fileServices\"\r\n\r\ntype Attachment = {\r\n id?: number\r\n name: string\r\n key: string\r\n}\r\n\r\ntype EmailTemplateDetail = {\r\n id?: number\r\n subject: string\r\n categoryId: number\r\n body: string\r\n attachments: Attachment[]\r\n}\r\n\r\nconst initValue: EmailTemplateDetail = {\r\n id: 0,\r\n subject: \"\",\r\n categoryId: 0,\r\n body: \"\",\r\n attachments: []\r\n}\r\n\r\nconst EMAIL_TEMPLATE_LIST_URL = \"/admin/email-template\"\r\nconst TITLE = \"Email template detail\"\r\nconst MAX_FILES_SIZE = 4194304\r\n\r\nconst useEmailTemplateDetail = (id?: number) => {\r\n let editorRef: any\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [\r\n emailTemplateDetail,\r\n setEmailTemplateDetail\r\n ] = useState<EmailTemplateDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n\r\n const [removedFiles, setRemovedFiles] = useState<string[]>([])\r\n const [fileUpload, setFileUpload] = useState<any>([])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as number)\r\n setEmailTemplateDetail({\r\n id: res.data.id,\r\n subject: res.data.subject,\r\n categoryId: res.data.category.id,\r\n body: res.data.body,\r\n attachments: res.data.attachments || []\r\n })\r\n document.title = res.data.subject\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceSetContent\",\r\n false,\r\n res.data.body\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const setEditorRef = (node: any) => (editorRef = node)\r\n\r\n const addParams = (params: any) => {\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceInsertContent\",\r\n false,\r\n ` ${params.label}`\r\n )\r\n }\r\n\r\n const backToList = useCallback(() => {\r\n history.push(EMAIL_TEMPLATE_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!fileUpload && !!fileUpload.length) {\r\n const fileData: any = await uploadFiles()\r\n const newAttachments = fileData.map((item: any) => ({\r\n key: item.data.key,\r\n name: item.data.name\r\n }))\r\n data.attachments = [...data.attachments, ...newAttachments]\r\n }\r\n const next = !!id ? update : create\r\n\r\n await next(data)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } template successfully`\r\n })\r\n )\r\n\r\n backToList()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, fileUpload]\r\n )\r\n\r\n const onAttachFile = () => {\r\n const inputs = document.getElementsByClassName(\"input-attachment\")\r\n const newInput = document.createElement(\"input\")\r\n const emailDetail = document.getElementById(\"email-detail\")\r\n emailDetail?.append(newInput)\r\n newInput.className = \"input-attachment\"\r\n newInput.id = `inputAttachment-${inputs.length + 1}`\r\n newInput.type = \"file\"\r\n newInput.style.display = \"none\"\r\n newInput.setAttribute(\"multiple\", \"multiple\")\r\n newInput.addEventListener(\"change\", updateAttachment)\r\n newInput.click()\r\n }\r\n\r\n const updateAttachment = () => {\r\n const files: any = []\r\n let totalSize = 0\r\n\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n totalSize += file.size\r\n\r\n if (totalSize > MAX_FILES_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Max attachment size is 4MB\"\r\n })\r\n )\r\n totalSize -= file.size\r\n attachmentInput.remove()\r\n }\r\n }\r\n }\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n\r\n if (\r\n !removedFiles.includes(file) &&\r\n !files.some((file: any) => file.name === name)\r\n ) {\r\n files.push({ name, inputId: attachmentInput.id })\r\n }\r\n }\r\n\r\n continue\r\n }\r\n\r\n setFileUpload(files)\r\n }\r\n\r\n const removeAttachment = (inputId: string, fileName: string) => {\r\n if (\r\n fileUpload.filter((item: any) => item.inputId === inputId)\r\n .length === 1\r\n ) {\r\n const thisInput = document.getElementById(inputId)\r\n thisInput?.remove()\r\n\r\n let newRemovedFile = fileUpload.filter(\r\n (removed: any) => removed.inputId === inputId\r\n )\r\n\r\n fileUpload.filter(\r\n (item: any) => item.inputId !== newRemovedFile.inputId\r\n )\r\n removedFiles.push(newRemovedFile)\r\n\r\n setRemovedFiles([...removedFiles])\r\n setFileUpload([...fileUpload])\r\n return\r\n }\r\n\r\n setRemovedFiles([...removedFiles, fileName])\r\n }\r\n\r\n useEffect(() => {\r\n updateAttachment()\r\n }, [removedFiles])\r\n\r\n const uploadFiles = async () => {\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n const promises: Promise<any>[] = []\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n promises.push(systemEmailUpload(formData))\r\n }\r\n }\r\n\r\n return Promise.all(promises)\r\n }\r\n\r\n return {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n updateAttachment,\r\n fileUpload,\r\n removeAttachment\r\n }\r\n}\r\n\r\nexport default useEmailTemplateDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst schema = yup.object({\r\n subject: yup.string().required(\"Template subject is required\"),\r\n categoryId: yup\r\n .number()\r\n .required(\"Template category is required\")\r\n .test(\r\n \"test category id\",\r\n \"Template category is required\",\r\n (value: number) => value >= 1\r\n ),\r\n comment: yup.string(),\r\n body: yup.string().required(\"Template body is required\")\r\n})\r\n\r\nexport default schema\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Input, Label, Button } from \"reactstrap\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { Editor } from \"@tinymce/tinymce-react\"\r\nimport { Formik } from \"formik\"\r\n\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport MailParam from \"../components/MailParam\"\r\nimport MailCategorySelector from \"../../../components/Selectors/MailCategorySelectors\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\nimport AttachmentFile from \"../components/AttachmentFile\"\r\nimport editorConfig from \"../../../configs/editorConfig\"\r\nimport { TINY_MCE_API_KEY } from \"../../../utils/constants\"\r\n\r\nimport useEmailTemplateDetail from \"../hooks/useEmailTemplateDetail\"\r\nimport schema from \"../configs/emailTemplateSchema\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst CREATE_TEMPLATE_HEADER = \"Create email template\"\r\nconst EDIT_TEMPLATE_HEADER = \"Edit email template\"\r\n\r\nconst EmailTemplateDetail: FC = () => {\r\n const { id } = useParams<{ id: string }>()\r\n\r\n const {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n fileUpload,\r\n removeAttachment\r\n } = useEmailTemplateDetail(parseInt(id))\r\n\r\n const header = !!id ? EDIT_TEMPLATE_HEADER : CREATE_TEMPLATE_HEADER\r\n\r\n const confirmText = !!id ? \"Update\" : \"Create\"\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n return (\r\n <Formik\r\n initialValues={emailTemplateDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData(values)\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n\r\n return (\r\n <div\r\n className=\"animated fadeIn detail-buttons-padding\"\r\n id=\"email-detail\"\r\n >\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <RequiredLabel text=\"Mail subject\" />\r\n <Input\r\n placeholder=\"Mail subject\"\r\n name=\"subject\"\r\n value={values.subject}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n className=\"selector-input\"\r\n />\r\n {touched.subject && errors.subject && (\r\n <ErrorHandler text={errors.subject} />\r\n )}\r\n </Col>\r\n <Col md={4}>\r\n <RequiredLabel text=\"Category\" />\r\n <MailCategorySelector\r\n onChange={(e: any) => {\r\n setFieldValue(\"categoryId\", e.value)\r\n setEditedTrue()\r\n }}\r\n id={values.categoryId}\r\n />\r\n {touched.categoryId && errors.categoryId && (\r\n <ErrorHandler text={errors.categoryId} />\r\n )}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text=\"Mail body\" />\r\n {(emailTemplateDetail.body || !id) && (\r\n <Editor\r\n ref={node => setEditorRef(node)}\r\n apiKey={TINY_MCE_API_KEY}\r\n initialValue={\r\n emailTemplateDetail.body\r\n }\r\n init={editorConfig.email}\r\n onEditorChange={content => {\r\n setFieldValue(\r\n \"body\",\r\n content\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n )}\r\n {touched.body && errors.body && (\r\n <ErrorHandler text={errors.body} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n <Col md={3}>\r\n <Button\r\n color=\"link\"\r\n size=\"sm\"\r\n className=\"pl-0\"\r\n onClick={onAttachFile}\r\n >\r\n Add attachment\r\n </Button>\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n {values.attachments.map(\r\n attachment => (\r\n <Col\r\n md={2}\r\n key={\r\n attachment.key\r\n }\r\n >\r\n <AttachmentFile\r\n label={\r\n attachment.name\r\n }\r\n onRemove={() =>\r\n setFieldValue(\r\n \"attachments\",\r\n values.attachments.filter(\r\n a =>\r\n a.name !==\r\n attachment.name\r\n )\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n {fileUpload.map(\r\n (\r\n file: any,\r\n index: number\r\n ) => (\r\n <Col\r\n md={2}\r\n key={index}\r\n className=\"d-flex align-items-center\"\r\n >\r\n <AttachmentFile\r\n label={\r\n file.name\r\n }\r\n onRemove={() =>\r\n removeAttachment(\r\n file.inputId,\r\n file.name\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Label>Mail params</Label>\r\n <MailParam\r\n onClick={(param: any) => addParams(param)}\r\n isResetPasswordTemplate={\r\n values.categoryId ==\r\n (mailCategoryList &&\r\n mailCategoryList.length > 0 &&\r\n mailCategoryList.filter(\r\n (c: any) =>\r\n c.name == \"Reset password\"\r\n )[0].id)\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default EmailTemplateDetail\r\n","import React, {\r\n forwardRef,\r\n useState,\r\n useCallback,\r\n useImperativeHandle\r\n} from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\n\r\nimport { setAlert, setModal } from \"../../redux/commons/action\"\r\n\r\nconst CommonModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n children,\r\n onConfirm,\r\n onCancel,\r\n confirmText,\r\n cancelText,\r\n noFooter,\r\n size,\r\n edited,\r\n setEditedFalse\r\n } = props\r\n const [isOpen, setIsOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n const showEditedWarningModal = (cb: any) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Are you sure to cancel?\",\r\n onConfirm: async () => {\r\n cb()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n const onToggle = () => {\r\n !!setEditedFalse && setEditedFalse()\r\n setIsOpen(!isOpen)\r\n !!isOpen && !!onCancel && onCancel()\r\n }\r\n const toggle = useCallback(\r\n (isShowConfirm?: boolean, cb?: any) => {\r\n if (!!isShowConfirm) {\r\n showEditedWarningModal(() => {\r\n onToggle()\r\n !!cb && cb()\r\n })\r\n } else {\r\n onToggle()\r\n !!cb && cb()\r\n }\r\n },\r\n [isOpen]\r\n )\r\n\r\n const cancel = useCallback(() => {\r\n toggle(!!edited, () => {\r\n onCancel && onCancel()\r\n })\r\n }, [toggle, onCancel, edited])\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggle\r\n }))\r\n\r\n return (\r\n <Modal isOpen={isOpen} toggle={() => toggle(!!edited)} size={size}>\r\n <ModalHeader toggle={() => toggle(!!edited)}>{header}</ModalHeader>\r\n <ModalBody>{children}</ModalBody>\r\n {!noFooter && (\r\n <ModalFooter className=\"text-right\">\r\n {onConfirm && (\r\n <Button color=\"primary\" onClick={onConfirm}>\r\n {confirmText || \"Confirm\"}\r\n </Button>\r\n )}\r\n <Button onClick={cancel}>{cancelText || \"Cancel\"}</Button>\r\n </ModalFooter>\r\n )}\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(CommonModal)\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n question: yup.string().required(\"Question is required\"),\r\n answer: yup.string().required(\"Answer is required\")\r\n})\r\n\r\nconst FaqDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n faqDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = props\r\n return (\r\n <Formik\r\n initialValues={faqDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={onCancel}\r\n ref={ref}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <RequiredLabel text=\"Question\" />\r\n <Input\r\n type=\"textarea\"\r\n name=\"question\"\r\n placeholder=\"Question\"\r\n value={values.question}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.question && errors.question && (\r\n <ErrorHandler\r\n text={errors.question as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"pt-2\">\r\n <RequiredLabel text=\"Answer\" />\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"answer\"\r\n placeholder=\"Answer\"\r\n value={values.answer}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"answer\")}\r\n />\r\n {touched.answer && errors.answer && (\r\n <ErrorHandler\r\n text={errors.answer as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(FaqDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFaqList = createAction<any>(\"faqs/setFaqList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst FAQ_URL = `${BASE_URL}/api/SystemFaq`\r\n\r\nexport const get = (filter: Filter) => api.get(FAQ_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${FAQ_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(FAQ_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${FAQ_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${FAQ_URL}/${id}`)\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { setFaqList } from \"../../../redux/faqs/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/faqService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst TITLE = \"FAQ list\"\r\nconst useFaqList = () => {\r\n const faqList = useSelector((state: any) => state.faqs.faqList)\r\n const totalItems = useSelector((state: any) => state.faqs.totalItems)\r\n\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setFaqList({ faqList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this FAQ?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove question successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return { faqList, totalItems, filters, changeFilters, getData, removeData }\r\n}\r\n\r\nexport default useFaqList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/faqService\"\r\n\r\ntype FaqDetail = {\r\n question: string\r\n answer: string\r\n}\r\n\r\nconst initValue: FaqDetail = {\r\n question: \"\",\r\n answer: \"\"\r\n}\r\n\r\nconst useFaqDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [faqDetail, setFaqDetail] = useState<FaqDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setFaqDetail(initValue)\r\n }, [id])\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const reset = () => {\r\n setFaqDetail(initValue)\r\n setId(0)\r\n }\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setFaqDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } FAQ successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, faqDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useFaqDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport FaqDetailModal from \"../components/FaqDetailModal\"\r\n\r\nimport useFaqList from \"../hooks/useFaqList\"\r\nimport useFaqDetail from \"../hooks/useFaqDetail\"\r\n\r\nconst header = \"FAQ\"\r\n\r\nconst FaqList: FC = () => {\r\n const modal = useRef<any>()\r\n\r\n const {\r\n faqList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useFaqList()\r\n\r\n const {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useFaqDetail()\r\n\r\n const openModal = (faqId?: number) => {\r\n !!faqId ? setId(faqId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n const onCancel = () => reset()\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <FaqDetailModal\r\n ref={modal}\r\n header={!!id ? \"Edit FAQ\" : \"Create FAQ\"}\r\n confirmText={!!id ? \"Update\" : \"Create\"}\r\n onConfirm={onConfirm}\r\n onCancel={onCancel}\r\n faqDetail={faqDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n />\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton text=\"Create FAQ\" onClick={() => openModal()} />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of FAQs: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {faqList && faqList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Question</th>\r\n <th className=\"align-top\">Answer</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {faqList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.question}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.answer}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"FAQ\" />\r\n )}\r\n </Col>\r\n <Col md={8}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default FaqList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst SKILL_URL = `${BASE_URL}/api/Skill`\r\n\r\nexport const get = (filter?: Filter) => api.get(SKILL_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${SKILL_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(SKILL_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${SKILL_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${SKILL_URL}/${id}`)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { get } from \"../../../services/skillService\"\r\n\r\nconst SkillSelector = (props: any) => {\r\n const [skillList, setSkillList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchSkill()\r\n }, [])\r\n\r\n const fetchSkill = async () => {\r\n try {\r\n const res = await get()\r\n setSkillList(res.data.items)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n const { id, isDisabled } = props\r\n const arrSkill = skillList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.path ? `${i.path}/${i.name}` : i.name\r\n }\r\n })\r\n\r\n return (\r\n <CustomSelector\r\n options={arrSkill}\r\n defaultValue={id}\r\n {...props}\r\n isDisabled={isDisabled}\r\n />\r\n )\r\n}\r\n\r\nexport default SkillSelector\r\n","import React, { forwardRef } from \"react\"\r\nimport { Row, Col, Input, Label } from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport SkillSelector from \"./SkillSelector\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\"),\r\n description: yup.string()\r\n})\r\n\r\nconst SkillDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n skillDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse,\r\n isDisabled\r\n } = props\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <Formik\r\n initialValues={skillDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n resetForm\r\n } = formikProps\r\n\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n onCancel={() => {\r\n onCancel()\r\n resetForm()\r\n }}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text={t(\"name\")} />\r\n <Input\r\n name=\"name\"\r\n placeholder={t(\"name\")}\r\n value={values.name}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"name\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"description\")}</Label>\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"description\"\r\n placeholder={t(\"description\")}\r\n value={values.description}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"description\")}\r\n />\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"parent_category\")}</Label>\r\n <SkillSelector\r\n isDisabled={isDisabled}\r\n onChange={(e: any) => {\r\n formikProps.setFieldValue(\r\n \"parentSkillId\",\r\n e.value\r\n )\r\n setEditedTrue()\r\n }}\r\n id={values.parentSkillId}\r\n />\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(SkillDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSkillList = createAction<any>(\"skills/setSkillList\")\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { setSkillList } from \"../../../redux/skills/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/skillService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst TITLE = \"Skill list\"\r\nconst useSkillList = () => {\r\n const skillList = useSelector((state: any) => state.skills.skillList)\r\n const totalItems = useSelector((state: any) => state.skills.totalItems)\r\n\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setSkillList({ skillList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this skill?\",\r\n onConfirm: async () => {\r\n try {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove skill successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n error.response?.data?.title ||\r\n error.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n }\r\n}\r\n\r\nexport default useSkillList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/skillService\"\r\n\r\ntype SkillDetail = {\r\n name: string\r\n description: string\r\n path: string\r\n parentSkillId?: number | null\r\n}\r\n\r\nconst initValue: SkillDetail = {\r\n name: \"\",\r\n description: \"\",\r\n path: \"\",\r\n parentSkillId: null\r\n}\r\n\r\nconst useSkillDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [skillDetail, setSkillDetail] = useState<SkillDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setSkillDetail(initValue)\r\n }, [id])\r\n\r\n const reset = () => {\r\n setId(0)\r\n setSkillDetail(initValue)\r\n }\r\n\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setSkillDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } skill successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, skillDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useSkillDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport SkillDetailModal from \"../components/SkillDetailModal\"\r\n\r\nimport useSkillList from \"../hooks/useSkillList\"\r\nimport useSkillDetail from \"../hooks/useSkillDetail\"\r\n\r\nconst SkillList: FC = () => {\r\n const modal = useRef<any>()\r\n const { t } = useTranslation()\r\n const {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useSkillList()\r\n\r\n const {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useSkillDetail()\r\n\r\n const openModal = (skillId?: number) => {\r\n !!skillId ? setId(skillId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n const onCancel = () => reset()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <SkillDetailModal\r\n ref={modal}\r\n header={!!id ? t(\"edit_skill\") : t(\"create_skill\")}\r\n confirmText={!!id ? t(\"update\") : t(\"create\")}\r\n onCancel={onCancel}\r\n onConfirm={onConfirm}\r\n skillDetail={skillDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n isDisabled={id}\r\n />\r\n <QuitPrompt when={edited} />\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text={t(\"create_skill\")}\r\n onClick={() => openModal()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {t(\"total_of_skills\")}: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {skillList && skillList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t('name')}</th>\r\n <th className=\"align-top\">{t('description')}</th>\r\n <th className=\"text-center\">{t('action')}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {skillList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.name}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n {!!record.path && (\r\n <p className=\"mb-0 pl-3\">\r\n <i>{record.path}</i>\r\n </p>\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.description}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label={t(\"skill\")} />\r\n )}\r\n </Col>\r\n <Col md={8} className=\"text-right\">\r\n <CustomPagination\r\n totalRecordCount={totalItems}\r\n filters={filters}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SkillList\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setUserList = createAction<any>(\"users/setUserList\")\r\n\r\nexport const setStudentList = createAction<any>(\"users/setStudentList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst STUDENT_URL = `${BASE_URL}/api/student`\r\nconst CHANGE_PASSWORD = `${BASE_URL}/api/Account/changePassword`\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst EDU_USER_URL = `${BASE_URL}/api/User/delete-item-user`\r\nexport const get = (filter: Filter) =>\r\n api.get(`${USER_URL}`, { params: filter })\r\n\r\nexport const getById = (id: string) => api.get(`${USER_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(`${USER_URL}`, data)\r\n\r\nexport const update = (data: any) => api.put(`${USER_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: string) => api.delete(`${EDU_USER_URL}/${id}`)\r\n\r\nexport const getAllStudent = (filter?: Filter) =>\r\n api.get(`${STUDENT_URL}`, { params: filter })\r\n\r\nexport const changePassword = (formData: any) =>\r\n api.post(CHANGE_PASSWORD, formData)\r\n\r\nexport const forgotChangePassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotchangepassword`, data)\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setUserList } from \"../../../redux/users/action\"\r\nimport { get, remove } from \"../../../services/userService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\nimport { ROLES } from \"../../../utils/constants\"\r\n\r\nconst USER_URL = \"/admin/user\"\r\nconst CREATE_USER_URL = \"/admin/create-user\"\r\nconst TITLE = \"User list\"\r\nconst useUserList = () => {\r\n const history = useHistory()\r\n const query = new URLSearchParams(location.search)\r\n const queryName = query.get(\"query\")\r\n const userList = useSelector((state: any) => state.users.userList)\r\n const totalItems = useSelector((state: any) => state.users.totalItems)\r\n const { filters, changeFilters } = useFilters()\r\n const [fullName, setFullName] = useState<any>(!!queryName ? queryName : \"\")\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(\r\n async (fullName?: string) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = !fullName\r\n ? await get(filters)\r\n : await get({ ...filters, searchString: fullName })\r\n const { items, totalItems } = res.data\r\n for (const user of items) {\r\n user.roles = user.roles.includes(\"EduTeacher\")\r\n ? [ROLES.EDUTEACHER]\r\n : user.roles\r\n }\r\n dispatch(setUserList({ userList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [dispatch, filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!!fullName) {\r\n getData(fullName)\r\n setFullName(null)\r\n } else {\r\n getData()\r\n }\r\n }, [filters])\r\n\r\n const removeData = useCallback(\r\n (id: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this user?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove user successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n const reDirectDetailPage = (id?: number) => {\r\n const url = !!id ? `${USER_URL}/${id}` : CREATE_USER_URL\r\n history.push(url)\r\n }\r\n return {\r\n userList,\r\n totalItems,\r\n filters,\r\n queryName,\r\n getData,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n }\r\n}\r\n\r\nexport default useUserList\r\n","import React, {\r\n FC,\r\n memo,\r\n useState,\r\n useEffect,\r\n useCallback,\r\n CSSProperties\r\n} from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n initValue: string\r\n onSearch: (searchString?: string) => any\r\n placeholder?: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst SearchBox: FC<Props> = ({\r\n initValue,\r\n onSearch,\r\n placeholder,\r\n className,\r\n style\r\n}: Props) => {\r\n const [searchString, setSearchString] = useState(initValue)\r\n useEffect(() => {\r\n setSearchString(initValue)\r\n }, [initValue])\r\n\r\n const onKeyUp = useCallback(\r\n (e: any) => {\r\n e.key === \"Enter\" && onSearch(searchString)\r\n },\r\n [searchString, onSearch]\r\n )\r\n\r\n return (\r\n <Input\r\n placeholder={placeholder}\r\n value={searchString}\r\n onChange={e => setSearchString(e.target.value)}\r\n onKeyUp={onKeyUp}\r\n className={className}\r\n style={style}\r\n />\r\n )\r\n}\r\n\r\nSearchBox.defaultProps = {\r\n placeholder: \"Type something to search\",\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default memo(SearchBox)\r\n","import React, { FC, CSSProperties } from \"react\"\r\n\r\nimport AddButton from \"../Buttons/AddButton\"\r\nimport SearchBox from \"./SearchBox\"\r\n\r\ninterface Props {\r\n text: string\r\n onClick: () => void\r\n initValue: string\r\n onSearch: (searchString?: string) => void\r\n placeholder: string\r\n}\r\n\r\nconst searchInputStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst SearchBoxContainer: FC<Props> = ({\r\n text,\r\n initValue,\r\n onClick,\r\n onSearch,\r\n placeholder\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center\">\r\n <div>\r\n <AddButton text={text} onClick={onClick} />\r\n </div>\r\n <div className=\"flex-grow-1 ml-2\">\r\n <SearchBox\r\n initValue={initValue}\r\n onSearch={onSearch}\r\n placeholder={placeholder}\r\n style={searchInputStyle}\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nSearchBoxContainer.defaultProps = {\r\n placeholder: \"Type something to search\"\r\n}\r\n\r\nexport default SearchBoxContainer\r\n","import moment from \"moment\"\r\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\r\n\r\nexport default (time: string, FORMAT?: string) => {\r\n if (time === DATE_MIN_VALUE) return \"\"\r\n try {\r\n return moment.utc(time).local().format(FORMAT || \"yyyy-MM-DD\");\r\n } catch {\r\n return \"\"\r\n }\r\n}\r\n","import React from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport differenceInCalendarYears from \"date-fns/differenceInCalendarYears\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport useUserList from \"../hooks/useUserList\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport SearchBoxContainer from \"../../../components/Inputs/SearchBoxContainer\"\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nconst header = \"User\"\r\nconst UserList = () => {\r\n const {\r\n queryName,\r\n userList,\r\n totalItems,\r\n filters,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n } = useUserList()\r\n\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{t(`${header}`)}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBoxContainer\r\n text={t(\"create_user\")}\r\n onClick={() => reDirectDetailPage()}\r\n initValue={!!queryName ? queryName : \"\"}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder={t(\"type_something_to_search_by_user_name\")}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n {t(\"total_of_users\")} : {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {userList && userList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t(\"name\")}</th>\r\n <th className=\"align-top\">{t(\"email\")}</th>\r\n <th className=\"align-top\">{t(\"age\")}</th>\r\n <th className=\"align-top\">{t(\"role\")}</th>\r\n <th className=\"align-top\">\r\n {t(\"active_status\")}\r\n </th>\r\n <th className=\"align-top\">\r\n {t(\"created_time\")}\r\n </th>\r\n <th className=\"text-center\">{t(\"action\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {userList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={`${record.fullName}`}\r\n onClick={() =>\r\n reDirectDetailPage(\r\n record.id\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.email}\r\n </td>\r\n <td className=\"align-middle\">\r\n {differenceInCalendarYears(\r\n new Date(),\r\n new Date(record.dateOfBirth)\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {!!record.roles &&\r\n record.roles.join(\", \")}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.isActive\r\n ? t(\"active\")\r\n : t(\"inactive\")}\r\n </td>\r\n <td className=\"align-middle\">\r\n { \r\n utcToLocalTime(record?.createTime, \"yyyy-MM-DD HH:mm\")\r\n }\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n removeData(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label={t(\"user\")} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserList\r\n","import React, { FC, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Form, Input, Label, Button } from \"reactstrap\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\nimport { MdAttachFile } from \"react-icons/md\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nimport styles from \"../../styles.module.scss\"\r\n\r\ninterface Props {\r\n fileName?: string\r\n maxWidth?: string\r\n maxHeight?: string\r\n setFile: any\r\n onAddImage?: any\r\n canDelete?: boolean\r\n onDelete?: () => void\r\n isCheckFeedBack?: boolean\r\n}\r\n\r\nconst MAX_FILE_SIZE = 20097152\r\n\r\nconst UploadFileButton: FC<Props> = ({\r\n fileName,\r\n maxWidth,\r\n maxHeight,\r\n setFile,\r\n canDelete,\r\n onDelete,\r\n isCheckFeedBack,\r\n onAddImage\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n const [imagePreviewUrl, setImagePreviewUrl] = useState<any>(\"\")\r\n\r\n const imageStyle = {\r\n maxWidth: maxWidth || \"100%\",\r\n maxHeight: maxHeight || \"100%\"\r\n }\r\n const imageSrc = imagePreviewUrl || getFileUrl(fileName as string)\r\n\r\n const handleImageChange = (e: any) => {\r\n e.preventDefault()\r\n\r\n let reader = new FileReader()\r\n let newFile = e.target.files[0]\r\n\r\n if (newFile.size > MAX_FILE_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"File can't be larger than 2MB\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n reader.onloadend = () => {\r\n setFile(newFile)\r\n setImagePreviewUrl(reader.result)\r\n }\r\n\r\n if (newFile) {\r\n reader.readAsDataURL(newFile)\r\n }\r\n !!onAddImage && onAddImage()\r\n }\r\n\r\n const imagePreviewContainer =\r\n imagePreviewUrl || fileName ? (\r\n <img style={imageStyle} src={imageSrc} alt=\"image\" />\r\n ) : null\r\n\r\n return (\r\n <div className=\"mb-2\">\r\n <Form className=\"mb-2\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"uploadFile\"\r\n onChange={handleImageChange}\r\n accept=\"image/*\"\r\n />\r\n <div className=\"d-flex align-items-center\">\r\n <Label\r\n htmlFor=\"uploadFile\"\r\n role=\"button\"\r\n tabIndex={0}\r\n className={styles[\"input-file-label\"]}\r\n >\r\n {isCheckFeedBack == true ? (\r\n <MdAttachFile />\r\n ) : (\r\n <React.Fragment>\r\n <i\r\n className=\"fa fa-paperclip mr-1\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n {imagePreviewUrl || fileName\r\n ? \"Change file\"\r\n : \"Choose file\"}\r\n </React.Fragment>\r\n )}\r\n </Label>\r\n\r\n {canDelete && imagePreviewContainer && (\r\n <Button\r\n size=\"sm\"\r\n color=\"danger\"\r\n className={`${styles[\"delete-avatar-button\"]} ml-2 d-flex align-items-center justify-content-center`}\r\n onClick={() => {\r\n setImagePreviewUrl(null)\r\n onDelete && onDelete()\r\n }}\r\n >\r\n <FaTrashAlt />\r\n </Button>\r\n )}\r\n </div>\r\n </Form>\r\n {imagePreviewContainer}\r\n </div>\r\n )\r\n}\r\n\r\nexport default UploadFileButton\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { format } from \"date-fns\"\r\n\r\nimport { DATE_FORMAT, ROLES } from \"../../../utils/constants\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport {\r\n create,\r\n getById,\r\n update,\r\n changePassword,\r\n forgotChangePassword\r\n} from \"../../../services/userService\"\r\n\r\nimport { systemProfileUpload } from \"../../../services/fileServices\"\r\n\r\ntype UserDetail = {\r\n id?: string\r\n firstName: string\r\n lastName: string\r\n email?: string\r\n dateOfBirth?: string\r\n roles: string[]\r\n isActive: boolean\r\n profileImageFileName: string\r\n}\r\n\r\nconst initValue: UserDetail = {\r\n id: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n dateOfBirth: \"\",\r\n roles: [],\r\n isActive: true,\r\n profileImageFileName: \"\"\r\n}\r\n\r\nconst USER_LIST_URL = \"/admin/user\"\r\nconst TITLE = \"User detail\"\r\n\r\nconst useUserDetail = (id?: string) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [userDetail, setUserDetail] = useState<UserDetail>(initValue)\r\n const [file, setFile] = useState<any>(null)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as string)\r\n setUserDetail({\r\n ...res.data,\r\n dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),\r\n roles: res.data.roles.includes(\"EduTeacher\")\r\n ? [ROLES.EDUTEACHER]\r\n : res.data.roles\r\n })\r\n document.title = res.data?.fullName\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const backToList = useCallback((user?: string) => {\r\n !!user && typeof user === \"string\"\r\n ? history.push(USER_LIST_URL + `?query=${user}`)\r\n : history.push(USER_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!file) {\r\n const formData = new FormData()\r\n const { name } = file\r\n formData.append(\"file\", file, name)\r\n const res = await systemProfileUpload(formData)\r\n const imageUrl = res?.data?.key\r\n data.profileImageFileName = imageUrl\r\n }\r\n\r\n const next = !!id ? update : create\r\n !id && delete data.id\r\n const result = await next(data)\r\n if (!!result) {\r\n getById(result.data.id).then(e => {\r\n backToList(e.data.fullName)\r\n })\r\n }\r\n\r\n if (!id) {\r\n alert(\"Password of \"+ result.data.email +\" is \" + `\\\"${result.data.password}\\\"`);\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } user successfully`\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, file]\r\n )\r\n\r\n const confirmChangePassword = async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n await changePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Change password successfully\"\r\n })\r\n )\r\n } catch (e) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: e.response?.data?.title || e.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotChangePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Send forgot password link successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n\r\n return {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest\r\n }\r\n}\r\n\r\nexport default useUserDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst userSchema = yup.object({\r\n firstName: yup.string().required(\"First name is required\"),\r\n lastName: yup.string().required(\"Last name is required\"),\r\n dateOfBirth: yup.string().required(\"Date of birth is required\"),\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n roles: yup.array().of(yup.string()).min(1, \"Role is required\")\r\n})\r\n\r\nexport default userSchema\r\n","import * as yup from \"yup\"\r\n\r\nconst changePasswordSchema = yup.object({\r\n oldPassword: yup.string().required(\"Current password is required\"),\r\n newPassword: yup.string().required(\"New password is required\"),\r\n confirmedNewPassword: yup.string().required(\"Confirm password is required\")\r\n})\r\n\r\nexport default changePasswordSchema\r\n","import React, { useCallback } from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport {\r\n // Button,\r\n Col,\r\n FormGroup,\r\n Input,\r\n Row,\r\n CustomInput,\r\n Button\r\n} from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport DatePicker from \"react-datepicker\"\r\nimport { format } from \"date-fns\"\r\nimport toDate from \"date-fns/toDate\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport UploadFileButton from \"../../../components/Buttons/UploadFileButton\"\r\nimport useUserDetail from \"../hooks/useUserDetail\"\r\nimport schema from \"../configs/userSchema\"\r\nimport schemaChangePassword from \"../configs/changePasswordSchema\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport { USER_ROLES, DATE_FORMAT } from \"../../../utils/constants\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport { DEFAULT_IMAGE_URL, ROLES } from \"../../../utils/constants\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nconst CREATE_USER = \"create_user\"\r\nconst EDIT_USER_HEADER = \"edit_user\"\r\nconst CHANGE_PASSWORD = \"change_password\"\r\n\r\nconst UserDetail = () => {\r\n const { id } = useParams<{ id: string }>()\r\n const user = useSelector((state: any) => state.common.user)\r\n const { t } = useTranslation();\r\n const {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest\r\n } = useUserDetail(id)\r\n\r\n const initialValueForm = {\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n confirmedNewPassword: \"\"\r\n }\r\n\r\n const header = !!id ? t(`${EDIT_USER_HEADER}`) : t(`${CREATE_USER}`)\r\n\r\n const confirmText = !!id ? t(\"update\") : t(\"create\")\r\n const getFile = () => {\r\n var url = window.location.origin + \"/api/ExportDataUser/\" + id\r\n window.open(url)\r\n }\r\n\r\n const onResetPw = async (email: string) => {\r\n var data = {\r\n email : email\r\n }\r\n forgotPasswordRequest(data)\r\n }\r\n\r\n return (\r\n <Formik\r\n initialValues={userDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData({\r\n ...values, \r\n roles: values.roles.includes(ROLES.EDUTEACHER)\r\n ? [\"EduTeacher\"]\r\n : values.roles\r\n })\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formProps\r\n\r\n const toggleRoles = useCallback(\r\n (role: string) => {\r\n if (values.roles.includes(role)) {\r\n setFieldValue(\r\n \"roles\",\r\n values.roles.filter(r => r !== role)\r\n )\r\n return\r\n }\r\n\r\n if (\r\n [ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER].includes(\r\n role\r\n )\r\n ) {\r\n setFieldValue(\"roles\", [role])\r\n return\r\n }\r\n\r\n const teacherAssistantRoles = values.roles.filter(\r\n (item: string) =>\r\n ![\r\n ROLES.STUDENT,\r\n ROLES.ADMIN,\r\n ROLES.PARENT,\r\n ROLES.EDUTEACHER\r\n ].includes(item)\r\n )\r\n\r\n setFieldValue(\"roles\", [...teacherAssistantRoles, role])\r\n },\r\n [values.roles]\r\n )\r\n\r\n return (\r\n <div className=\"animated fadeIn detail-buttons-padding\">\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"pt-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"first_name\")} />\r\n <Input\r\n name=\"firstName\"\r\n value={values.firstName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n placeholder={t(\"first_name\")}\r\n />\r\n {touched.firstName &&\r\n errors.firstName && (\r\n <ErrorHandler\r\n text={errors.firstName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"date_of_birth\")} />\r\n <div>\r\n <DatePicker\r\n value={values.dateOfBirth}\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n selected={\r\n values.dateOfBirth\r\n ? toDate(\r\n new Date(\r\n values.dateOfBirth\r\n )\r\n )\r\n : null\r\n }\r\n onChange={(e: any) => {\r\n formProps.setFieldValue(\r\n \"dateOfBirth\",\r\n format(\r\n e,\r\n DATE_FORMAT\r\n )\r\n )\r\n setEditedTrue()\r\n }}\r\n placeholderText={t(\"date_of_birth\")}\r\n customInput={\r\n <Input\r\n type=\"text\"\r\n style={{\r\n width:\r\n \"maxContent\"\r\n }}\r\n placeholder={t(\"date_of_birth\")}\r\n />\r\n }\r\n />\r\n </div>\r\n {touched.dateOfBirth &&\r\n errors.dateOfBirth && (\r\n <ErrorHandler\r\n text={\r\n errors.dateOfBirth\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"last_name\")} />\r\n <Input\r\n name=\"lastName\"\r\n value={values.lastName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"lastName\")}\r\n placeholder={t(\"last_name\")}\r\n />\r\n {touched.lastName &&\r\n errors.lastName && (\r\n <ErrorHandler\r\n text={errors.lastName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"roles\")} />\r\n <Row>\r\n <Col\r\n md={12}\r\n className=\"d-flex flex-wrap align-items-center\"\r\n >\r\n {USER_ROLES.map(\r\n (role: string) => (\r\n <div\r\n key={role}\r\n className=\"mr-3\"\r\n >\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`role-checkbox-${role}`}\r\n label={role}\r\n checked={values.roles.includes(\r\n role\r\n )}\r\n onChange={() => {\r\n toggleRoles(\r\n role\r\n )\r\n setEditedTrue()\r\n }}\r\n disabled={\r\n !!id\r\n ? true\r\n : [\r\n \"Student\",\r\n \"Parent\"\r\n ].includes(\r\n role\r\n )\r\n }\r\n />\r\n </div>\r\n )\r\n )}\r\n </Col>\r\n </Row>\r\n {touched.roles && errors.roles && (\r\n <ErrorHandler\r\n text={\r\n errors.roles as string\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"email\")} />\r\n <Input\r\n name=\"email\"\r\n value={values.email}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"email\")}\r\n placeholder={t(\"email\")}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler\r\n text={errors.email}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"status\")} />\r\n <Row>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-active`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"active\")}\r\n checked={\r\n !!values &&\r\n !!values.isActive\r\n }\r\n onChange={() => {\r\n setFieldValue(\r\n \"isActive\",\r\n true\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n </Col>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-inActive`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"inactive\")}\r\n checked={\r\n !!values &&\r\n !values.isActive\r\n }\r\n onChange={() =>\r\n setFieldValue(\r\n \"isActive\",\r\n false\r\n )\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n {!!id && (\r\n\r\n <Row>\r\n <Col md={6}></Col>\r\n <Col md={6}>\r\n <Button\r\n color=\"primary\"\r\n onClick={() => {\r\n onResetPw(values.email || \"\")\r\n }}\r\n >\r\n {t('send_forgot_password_link')}\r\n </Button>\r\n <Button\r\n color=\"success\"\r\n onClick={() => {\r\n getFile()\r\n }}\r\n className=\"ml-4\"\r\n >\r\n {t('download_user_data')}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )}\r\n \r\n </Col>\r\n <Col md={4}>\r\n <Row>\r\n <Col md={8}>\r\n <UploadFileButton\r\n setFile={setFile}\r\n fileName={\r\n values.profileImageFileName\r\n }\r\n onAddImage={setEditedTrue}\r\n canDelete\r\n onDelete={() => {\r\n setFile(null)\r\n setFieldValue(\r\n \"profileImageFileName\",\r\n \"\"\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n {!file &&\r\n !values.profileImageFileName && (\r\n <img\r\n src={DEFAULT_IMAGE_URL}\r\n style={{ maxWidth: \"100%\" }}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n {user.id === id ? (\r\n <div>\r\n <h5 className=\"mt-3\">{t(`${CHANGE_PASSWORD}`)}</h5>\r\n <Formik\r\n initialValues={initialValueForm}\r\n enableReinitialize\r\n validationSchema={schemaChangePassword}\r\n onSubmit={values => {\r\n confirmChangePassword(values)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleSubmit\r\n } = formProps\r\n return (\r\n <Row className=\"pt-2 pb-5\">\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"current_password\")} />\r\n <Input\r\n name=\"oldPassword\"\r\n type=\"password\"\r\n value={\r\n values.oldPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"current_password\")}\r\n />\r\n {touched.oldPassword &&\r\n errors.oldPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.oldPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"new_password\")} />\r\n <Input\r\n name=\"newPassword\"\r\n type=\"password\"\r\n value={\r\n values.newPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"new_password\")}\r\n />\r\n {touched.newPassword &&\r\n errors.newPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.newPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"confirm_password\")} />\r\n <Input\r\n name=\"confirmedNewPassword\"\r\n type=\"password\"\r\n value={\r\n values.confirmedNewPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"confirm_password\")}\r\n />\r\n {touched.confirmedNewPassword &&\r\n errors.confirmedNewPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.confirmedNewPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={() =>\r\n handleSubmit()\r\n }\r\n >\r\n {t(\"save\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n </div>\r\n ) : null}\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default UserDetail\r\n","import { FC, useEffect } from \"react\"\r\nimport { useLocation } from \"react-router-dom\"\r\n\r\nconst ScrollToTop: FC = () => {\r\n const { pathname } = useLocation()\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [pathname])\r\n return null\r\n}\r\n\r\nexport default ScrollToTop\r\n","import React, { useCallback } from \"react\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\n\r\nimport { setModal } from \"../../redux/commons/action\"\r\nimport { COLORS } from \"../../utils/constants\"\r\n\r\nconst modalInfo = (type?: string) => {\r\n switch (type) {\r\n case \"danger\":\r\n return {\r\n header: \"Error\",\r\n color: COLORS.DANGER\r\n }\r\n\r\n case \"warning\":\r\n return {\r\n header: \"Warning\",\r\n color: COLORS.WARNING\r\n }\r\n\r\n case \"success\":\r\n return {\r\n header: \"Success\",\r\n color: COLORS.SUCCESS\r\n }\r\n\r\n default:\r\n return {\r\n header: \"Infomation\",\r\n color: COLORS.INFO\r\n }\r\n }\r\n}\r\n\r\nconst NotificationModal = () => {\r\n const dispatch = useDispatch()\r\n const modal = useSelector((state: any) => state.common.modal)\r\n\r\n const { isOpen, type, message, onConfirm } = modal\r\n\r\n const toggle = useCallback(() => {\r\n dispatch(setModal({ isOpen: !isOpen, type }))\r\n }, [isOpen])\r\n\r\n const headerStyle = { backgroundColor: modalInfo(type).color }\r\n\r\n const confirm = () => {\r\n onConfirm && onConfirm()\r\n toggle()\r\n }\r\n\r\n return <Modal \r\n isOpen={isOpen} \r\n toggle={toggle} \r\n fade\r\n >\r\n <ModalHeader \r\n toggle={toggle}\r\n style={headerStyle}\r\n >\r\n {modalInfo(type).header}\r\n </ModalHeader>\r\n <ModalBody>\r\n {message}\r\n </ModalBody>\r\n <ModalFooter>\r\n {onConfirm && <Button\r\n color={type}\r\n onClick={confirm}\r\n >\r\n Confirm\r\n </Button>}\r\n <Button\r\n color=\"secondary\"\r\n onClick={toggle}\r\n >\r\n Cancel\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n}\r\n\r\nexport default NotificationModal","import React, { CSSProperties, FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\ninterface Props {\r\n header: string\r\n rootHeader?: string\r\n}\r\n\r\nconst headerStyle: CSSProperties = {\r\n // borderBottom: \"1px solid gray\",\r\n paddingBottom: \"16px\"\r\n}\r\n\r\nconst headerTextStyle: CSSProperties = {\r\n fontSize: \"1.5rem\",\r\n textAlign: \"center\"\r\n}\r\n\r\nconst CommonHeader: FC<Props> = ({ header, rootHeader }) => {\r\n return (\r\n <div style={headerStyle}>\r\n <Row>\r\n {rootHeader && (\r\n <Col md={4}>\r\n <span className=\"text-muted\" style={headerTextStyle}>\r\n {rootHeader}\r\n </span>\r\n </Col>\r\n )}\r\n <Col md={4}>\r\n <span style={headerTextStyle}>{header}</span>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CommonHeader\r\n","import React, { FC } from \"react\"\r\nimport { FaRegEdit } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst EditButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Edit\"\r\n onClick={onClick}\r\n >\r\n <FaRegEdit />\r\n </div>\r\n )\r\n}\r\n\r\nexport default EditButtonIcon\r\n","import React from \"react\"\r\n\r\nimport Creatable from \"react-select/creatable\"\r\n\r\nconst components = {\r\n DropdownIndicator: null,\r\n}\r\n\r\nconst CreatableSelector = (props: any) => {\r\n const { inputValue, value, placeholder, handleChange, handleInputChange, handleKeyDown } = props\r\n return (\r\n <Creatable\r\n components={components}\r\n placeholder={placeholder || \"Type something to create option\"}\r\n isClearable\r\n isMulti\r\n menuIsOpen={false}\r\n value={value}\r\n inputValue={inputValue}\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n />\r\n )\r\n}\r\n\r\nexport default CreatableSelector","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { QUESTION_TYPES_OPTIONS } from \"../../utils/constants\"\r\nconst QuestionTypeSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? QUESTION_TYPES_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select options={QUESTION_TYPES_OPTIONS} value={initValue} {...props} />\r\n )\r\n}\r\n\r\nexport default QuestionTypeSelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/SuggestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/suggestionCategoryService\"\r\n\r\nconst SuggestionCategorySelector = (props: any) => {\r\n const [categoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = categoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default SuggestionCategorySelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/QuestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/questionCategoryService\"\r\n\r\nconst QuestionCategorySelector = (props: any) => {\r\n const [getCategoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = getCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default QuestionCategorySelector\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { STAR_OPTIONS } from \"../../utils/constants\"\r\n\r\nconst StarRatingSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? STAR_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select\r\n options={STAR_OPTIONS}\r\n value={initValue}\r\n {...props}\r\n menuPlacement=\"top\"\r\n />\r\n )\r\n}\r\n\r\nexport default StarRatingSelector\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n textLeft: string\r\n textRight: string\r\n isLeft: boolean\r\n clickLeft: any\r\n clickRight: any\r\n}\r\n\r\nconst ACTIVE_COLOR = \"primary\"\r\nconst INACTIVE_COLOR = \"secondary\"\r\n\r\nconst ToggleButton: FC<Props> = ({\r\n textLeft,\r\n textRight,\r\n isLeft,\r\n clickLeft,\r\n clickRight\r\n}: Props) => {\r\n return (\r\n <div className=\"w-100 d-flex\">\r\n <Button\r\n size=\"sm\"\r\n color={isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickLeft}\r\n className=\"toggle-btn toggle-btn-left flex-grow-1\"\r\n >\r\n {textLeft}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n color={!isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickRight}\r\n className=\"toggle-btn toggle-btn-right flex-grow-1\"\r\n >\r\n {textRight}\r\n </Button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToggleButton\r\n","import React, { FC, Fragment } from \"react\"\r\nimport { Input, Label } from \"reactstrap\"\r\nimport { customKeyUpload } from \"../../services/fileServices\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\n\r\ninterface Props {\r\n icon: React.ReactNode\r\n accept?: string | undefined\r\n callback: (fileName: string, filePath: string, fileType: string) => void\r\n}\r\n\r\nconst InputFile: FC<Props> = ({ icon, accept, callback }: Props) => {\r\n\r\n const handleFileChange = async (e: any) => {\r\n try {\r\n const formData = new FormData()\r\n const file = e.target.files[0]\r\n const fileName = file.name\r\n formData.append(\"file\", file, fileName)\r\n formData.append(\"customKey\", \"conversation\")\r\n const res = await customKeyUpload(formData)\r\n const { name, key, type } = res.data\r\n callback(name, getFileUrl(key), type)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"upload-file-btn\"\r\n onChange={handleFileChange}\r\n accept={accept}\r\n />\r\n <Label htmlFor=\"upload-file-btn\" role=\"button\">\r\n {icon}\r\n </Label>\r\n </Fragment>\r\n )\r\n}\r\n\r\nInputFile.defaultProps = {\r\n accept: \"*\"\r\n}\r\n\r\nexport default InputFile\r\n","import React from \"react\"\r\nimport ReactNotification from \"react-notifications-component\"\r\n\r\nimport \"react-notifications-component/dist/theme.css\"\r\n\r\nexport default () => <ReactNotification />\r\n","import React, { FC, memo } from \"react\"\r\n\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\n\r\nconst options = [\r\n { value: true, label: \"Read\" },\r\n { value: false, label: \"Unread\" }\r\n]\r\n\r\ninterface Props {\r\n value: boolean\r\n onChange: any\r\n}\r\n\r\nconst NotificationStatusSelector: FC<Props> = ({ value, onChange }: Props) => {\r\n const customSelector = {\r\n menu: (provided: any) => ({ ...provided, zIndex: 10 })\r\n }\r\n return (\r\n <CustomSelector\r\n defaultValue={value}\r\n options={options}\r\n onChange={onChange}\r\n styles={customSelector}\r\n />\r\n )\r\n}\r\n\r\nexport default memo(NotificationStatusSelector)\r\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n get,\r\n updateStatusNotification,\r\n updateAllStatus\r\n} from \"../../../services/notificationService\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setNotification } from \"../../../redux/notifications/action\"\r\n\r\nconst defaultFilters = {\r\n currentPage: 1,\r\n pageSize: 30,\r\n searchString: \"\",\r\n isRead: false\r\n}\r\n\r\nconst TITLE = \"Notification list\"\r\n\r\nconst NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nconst NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\n\r\nconst useNotificationList = () => {\r\n const dispatch = useDispatch()\r\n const userId = useSelector((state: any) => state.common.user?.id)\r\n const notificationList = useSelector(\r\n (state: any) => state.notification.notificationList\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n\r\n const totalItems = useSelector(\r\n (state: any) => state.notification.totalItems\r\n )\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n const [filters, setFilters] = useState(defaultFilters)\r\n const [toggleUpdateAllStatus, setToggleUpdateAllStatus] = useState<boolean>(false)\r\n\r\n const changeFilters = (objectValue: any) =>\r\n setFilters({\r\n ...filters,\r\n ...objectValue\r\n })\r\n\r\n const viewNotification = (notification: any) => {\r\n const { source, extraData } = notification\r\n switch (source) {\r\n case \"AssessmentAssignment\":\r\n window.open(`/player/diagnosticsurvey/${Number(extraData)}`)\r\n break\r\n case \"NewConferenceCreated\":\r\n window.open(\r\n `/start-conference/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }/conferenceRubric`\r\n )\r\n break\r\n case \"Class Reflection\":\r\n window.open(\r\n `/start-reflection/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"NewSessionCreated\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"NewSessionComplete\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"ActionPointReminder\":\r\n window.open(\r\n `/action-point/to-do`\r\n )\r\n break\r\n case \"SendNotiPLP\":\r\n window.open(\r\n `/personal-learning-plan`\r\n )\r\n break\r\n case \"SendNotiGOAL\":\r\n window.open(\r\n `/my-goals/${JSON.parse(extraData)}`\r\n )\r\n break\r\n case \"CertificateApproved\":\r\n window.open(`/dashboard/certification/2`)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setNotification({\r\n notificationList: items,\r\n totalItems\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n const pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n \r\n channel.bind(NEW_NOTIFICATION, getData)\r\n return () => pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [filters, userId])\r\n\r\n const updateNotification = useCallback(\r\n (id, isRead) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark this notification ${\r\n isRead ? \"read\" : \"unread\"\r\n }?`,\r\n onConfirm: async () => {\r\n await updateStatusNotification(id)\r\n getData()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [notificationList, unReadNotification]\r\n )\r\n\r\n const updateAll = useCallback(async () => {\r\n try {\r\n if (notificationList.length === 0) throw new Error(\"There are no unread messages\")\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark all notification ?`,\r\n onConfirm: async () => {\r\n setToggleUpdateAllStatus(true)\r\n await updateAllStatus()\r\n getData()\r\n setToggleUpdateAllStatus(false)\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [notificationList])\r\n\r\n return {\r\n notificationList,\r\n totalItems,\r\n unReadNotification,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n }\r\n}\r\n\r\nexport default useNotificationList\r\n","import React from \"react\"\r\nimport { Row, Col, Table, CustomInput } from \"reactstrap\"\r\nimport { AiOutlineEye } from \"react-icons/ai\"\r\n\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport NotificationStatusSelector from \"../components/NotificationStatusSelector\"\r\n\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nimport useNotificationList from \"../hooks/useNotificationList\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst header = \"Notification list\"\r\nconst ICON_SIZE = 20\r\n\r\nconst NotificationList = () => {\r\n const {\r\n notificationList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n } = useNotificationList()\r\n\r\n return (\r\n <div className=\"animated fadeIn\" style={{ padding: \"20px 40px\" }}>\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBox\r\n initValue={filters.searchString}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search\"\r\n />\r\n </Col>\r\n <Col md={4}>\r\n <NotificationStatusSelector\r\n value={filters.isRead}\r\n onChange={(e: any) =>\r\n changeFilters({ isRead: e.value })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <Row className=\"my-2 d-flex justify-content-center\">\r\n <Col md={12} className=\"d-flex justify-content-end align-items-center\">\r\n {filters.isRead === false && (\r\n <div className=\"d-flex align-items-center justify-content-end mx-2\">\r\n Mark all as read\r\n <CustomInput\r\n checked={toggleUpdateAllStatus}\r\n className=\"mx-2\"\r\n type=\"checkbox\"\r\n id={`status-checkbox`}\r\n onChange={() => updateAll()}\r\n />\r\n </div>\r\n )}\r\n Total of notifications: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {notificationList && notificationList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Text</th>\r\n <th className=\"align-top\">Time</th>\r\n <th className=\"text-center\">Is read</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {notificationList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.text}\r\n </td>\r\n <td className=\"align-middle\">\r\n {utcToLocalTime(\r\n record.time,\r\n \"yyyy-MM-DD HH:mm\"\r\n )}\r\n </td>\r\n <td\r\n className={`${styles[\"control-input\"]} text-center align-middle`}\r\n >\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`status-checkbox-${record.id}`}\r\n checked={record.isRead}\r\n onChange={() =>\r\n updateNotification(\r\n record.id,\r\n !record.isRead\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n {[\r\n \"AssessmentAssignment\",\r\n \"NewConferenceCreated\",\r\n \"NewSessionCreated\",\r\n \"CertificateApproved\"\r\n ].includes(record.source) && (\r\n <AiOutlineEye\r\n className=\"cursor-pointer\"\r\n size={ICON_SIZE}\r\n title=\"Detail\"\r\n onClick={() =>\r\n viewNotification(\r\n record\r\n )\r\n }\r\n />\r\n )}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label=\"notification\" />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationList\r\n","import React from \"react\"\r\nimport {\r\n Col,\r\n Row,\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\nimport { Route, useHistory, useLocation } from \"react-router-dom\"\r\nimport NotFound from \"../../containers/Commons/NotFound\"\r\n\r\nconst CustomTabs = (props: any) => {\r\n const history = useHistory()\r\n const location = useLocation()\r\n const { pathname } = location\r\n const { tabs, title } = props\r\n const toggle = (path: any) => {\r\n history.push(path)\r\n }\r\n\r\n const renderContent = () => {\r\n const activeTab = tabs.map((t: any) => t.path).indexOf(pathname)\r\n if (activeTab === -1) {\r\n return <NotFound />\r\n }\r\n return (\r\n <Row>\r\n <Col md={12}>\r\n <h5>{title}</h5>\r\n </Col>\r\n <Col xl={12}>\r\n <Nav tabs>\r\n {tabs.map((i: any) => (\r\n <NavItem key={i.path}>\r\n <NavLink\r\n className={`${\r\n i.path === pathname ? \"active\" : \"\"\r\n } cursor-pointer`}\r\n onClick={() => {\r\n toggle(i.path)\r\n }}\r\n >\r\n {i.title}\r\n </NavLink>\r\n </NavItem>\r\n ))}\r\n </Nav>\r\n <TabContent\r\n activeTab={pathname}\r\n className=\"border-bottom-0 border-left-0 border-right-0\"\r\n >\r\n {tabs.map((i: any) => (\r\n <TabPane key={i.path} tabId={i.path}>\r\n <Route\r\n path={i.path}\r\n exact\r\n component={i.component}\r\n />\r\n </TabPane>\r\n ))}\r\n </TabContent>\r\n </Col>\r\n </Row>\r\n )\r\n }\r\n return <div className=\"animated fadeIn\">{renderContent()}</div>\r\n}\r\n\r\nexport default CustomTabs\r\n","import React, { FC, useRef, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nconst CommonAlert: FC = () => {\r\n const dispatch = useDispatch()\r\n const alert = useSelector((state: any) => state.common.alert)\r\n const timeout = useRef<any>()\r\n\r\n const onDismiss = () => {\r\n dispatch(setAlert({ message: \"\" }))\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (!!alert.message?.length) {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n timeout.current = setTimeout(() => {\r\n dispatch(setAlert({ message: \"\" }))\r\n }, 3000)\r\n }\r\n }, [alert])\r\n\r\n return alert.message?.length > 0 ? (\r\n <div className=\"app-alert\">\r\n <Alert\r\n color={alert.type}\r\n isOpen={alert.message.length > 0}\r\n toggle={onDismiss}\r\n >\r\n {alert.message}\r\n </Alert>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default CommonAlert\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\")\r\n})\r\n\r\nconst ActionModal = (props: any, ref: any) => {\r\n const { targetMedia, onConfirm } = props\r\n const confirmText = targetMedia?.key ? \"Update\" : \"Create\"\r\n const header = targetMedia?.key ? \"Rename\" : \"Folder\"\r\n return (\r\n <Formik\r\n initialValues={{ name: targetMedia?.name }}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm && onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <Input\r\n name=\"name\"\r\n placeholder={`Enter your ${\r\n targetMedia?.key ? \"file\" : \"folder\"\r\n } name`}\r\n value={values.name}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(ActionModal)\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Button, Label } from \"reactstrap\"\r\nimport {\r\n FaFolderPlus,\r\n FaFileUpload,\r\n FaArrowLeft,\r\n FaDownload,\r\n FaTrash,\r\n FaEdit\r\n} from \"react-icons/fa\"\r\nimport ActionModal from \"./ActionModal\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\n\r\ninterface MediaNavInterface {\r\n isLibrary?: boolean\r\n step: number\r\n breadcumb: string\r\n currentPrefix: string\r\n targetMedia: S3Object\r\n handleSelectFile: Function\r\n handleCreateFolder: Function\r\n handleRenameFile: Function\r\n handleGoBack: () => void\r\n handleDownloadMedia: () => void\r\n handleDeleteMediaOrFolder: () => void\r\n showErrorAlert: (message: string) => void\r\n}\r\n\r\nconst MediaNav: FC<MediaNavInterface> = ({\r\n isLibrary,\r\n step,\r\n breadcumb,\r\n currentPrefix,\r\n targetMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleGoBack,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n showErrorAlert\r\n}) => {\r\n const modal = useRef<any>()\r\n const inputFile = useRef<HTMLInputElement>(null)\r\n\r\n const openModal = () => modal?.current?.toggle()\r\n\r\n const renderGroupButtons = () => (\r\n <Row className=\"p-2 pl-3\">\r\n {!!step && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"secondary\"\r\n onClick={handleGoBack}\r\n >\r\n <FaArrowLeft />\r\n <Label className=\"ml-1 h6 m-0\">Go up</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !targetMedia.isFolder && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"success\"\r\n onClick={handleDownloadMedia}\r\n >\r\n <FaDownload />\r\n <Label className=\"ml-1 h6 m-0\">Download</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"danger\"\r\n onClick={handleDeleteMediaOrFolder}\r\n >\r\n <FaTrash />\r\n <Label className=\"ml-1 h6 m-0\">Delete</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && !targetMedia.isFolder && (\r\n <Button className=\"mr-2\" color=\"primary\" onClick={openModal}>\r\n <FaEdit />\r\n <Label className=\"ml-1 h6 m-0\">Rename</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button className=\"mr-2\" color=\"success\" onClick={openModal}>\r\n <FaFolderPlus />\r\n <Label className=\"ml-1 h6 m-0\">New folder</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"info\"\r\n onClick={() => inputFile?.current?.click()}\r\n >\r\n <FaFileUpload />\r\n <Label className=\"ml-1 h6 m-0\">Upload</Label>\r\n </Button>\r\n )}\r\n {breadcumb && (\r\n <Col className=\"h-100 d-flex align-items-center\">\r\n {breadcumb}\r\n </Col>\r\n )}\r\n </Row>\r\n )\r\n\r\n return (\r\n <div>\r\n {renderGroupButtons()}\r\n <ActionModal\r\n ref={modal}\r\n targetMedia={targetMedia}\r\n onConfirm={async (values: any) => {\r\n if (values.name != \"\") {\r\n if (targetMedia && !targetMedia.isFolder) {\r\n openModal()\r\n await handleRenameFile(values.name)\r\n } else {\r\n openModal()\r\n await handleCreateFolder(currentPrefix, values.name)\r\n }\r\n } else {\r\n showErrorAlert(\"Name can't be empty\")\r\n }\r\n }}\r\n />\r\n\r\n <input\r\n type=\"file\"\r\n id=\"customMediaUpload\"\r\n ref={inputFile}\r\n style={{ display: \"none\" }}\r\n onChange={async (event: any) => {\r\n const file = event?.target?.files[0]\r\n if (file) {\r\n await handleSelectFile({ key: currentPrefix, file })\r\n }\r\n }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaNav)\r\n","export type S3Object = {\r\n name?: string\r\n key?: string\r\n extension?: string\r\n isFolder?: boolean\r\n}\r\n\r\nexport enum MediaType {\r\n IMAGE,\r\n VIDEO,\r\n AUDIO,\r\n DOC,\r\n UNKNOW\r\n}\r\n\r\nexport type FilterType = {\r\n searchString?: string\r\n types?: MediaType[]\r\n prefix?: string\r\n fromDate?: number\r\n toDate?: number\r\n isLibrary?: boolean\r\n}\r\n","import Images from '../../../assets/Images';\r\nimport getFileUrl from '../../../utils/getFileUrl';\r\nimport {MediaType, S3Object} from '../constants/gallery.types'\r\n\r\nconst images = [\"png\", \"jpg\", \"jpeg\", \"gif\"]\r\nconst videos = [\"mp4\", \"mp4v\"]\r\nconst docs = [\"txt\", \"pdf\", \"doc\", \"docx\", \"xls\", \"csv\"]\r\nconst audios = [\"wav\", \"mp3\"]\r\n\r\n\r\nexport const getTypeByExtension: (extension: string | undefined) => MediaType = (extension) => {\r\n if(extension){\r\n if(images.includes(extension)) return MediaType.IMAGE\r\n if(videos.includes(extension)) return MediaType.VIDEO\r\n if(docs.includes(extension)) return MediaType.DOC\r\n if(audios.includes(extension)) return MediaType.AUDIO\r\n }\r\n return MediaType.UNKNOW\r\n}\r\n\r\nexport const getMediaThumbnail = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return Images.PHOTO_IMAGE\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return Images.UNKNOW_IMAGE;\r\n}\r\n\r\nexport const getMediaImage = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return getFileUrl(media.key || \"\")\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return \"\";\r\n}\r\n","import React, {FC} from 'react'\r\nimport {Card,CardImg, CardBody, CardTitle} from 'reactstrap';\r\nimport {S3Object} from '../constants/gallery.types'\r\nimport styles from '../styles/media.styles.module.scss'\r\nimport {getMediaThumbnail} from '../extensions/helpers'\r\n\r\ninterface MediaInterface {\r\n media: S3Object,\r\n isTarget: boolean\r\n}\r\n\r\nconst Media: FC<MediaInterface> = ({media, isTarget}) => {\r\n const thumbnail = getMediaThumbnail(media)\r\n return (\r\n <Card className={`${isTarget ? styles[\"media-image-selected\"] : ''} border-0 `}>\r\n <CardImg\r\n className={`${styles[\"media-image\"]} p-1`}\r\n top\r\n width=\"90%\"\r\n src={thumbnail}\r\n alt={media.name}\r\n />\r\n <CardBody className=\"p-1\" style={{height: 45}}>\r\n <CardTitle tag=\"h6\" className={styles[\"media-title\"]}>{media.name}</CardTitle>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(Media)\r\n","import React, {\r\n FC,\r\n useState\r\n // , useRef\r\n} from \"react\"\r\nimport {\r\n Col,\r\n // FormGroup,\r\n // Input,\r\n // Label,\r\n Row\r\n} from \"reactstrap\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { FilterType, MediaType } from \"../constants/gallery.types\"\r\n// import DatePicker from \"react-datepicker\"\r\n// import { getTime, format } from \"date-fns\"\r\n// import { DATE_FORMAT } from \"../../../utils/constants\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\n// import useGalleryDetail from \"../hooks/galleryDetail\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\n\r\ninterface FilterInterface {\r\n changeFilters: (filter: FilterType) => void\r\n filters: FilterType\r\n}\r\n\r\ntype MediaOption = {\r\n value: MediaType\r\n label: string\r\n}\r\n\r\nconst options: MediaOption[] = [\r\n { value: MediaType.IMAGE, label: \"Images\" },\r\n { value: MediaType.AUDIO, label: \"Audios\" },\r\n { value: MediaType.DOC, label: \"Docs\" },\r\n { value: MediaType.VIDEO, label: \"Videos\" }\r\n]\r\n\r\nconst Filter: FC<FilterInterface> = ({\r\n changeFilters\r\n // filters\r\n}) => {\r\n const [queryTypes, selectQueryTypes] = useState<MediaOption[]>()\r\n return (\r\n <Row className={`${styles[\"filter-media-file\"]}`}>\r\n <Col sm={8}>\r\n <SearchBox\r\n initValue=\"\"\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search by file name\"\r\n />\r\n </Col>\r\n\r\n <Col sm={4}>\r\n <CustomSelector\r\n value={queryTypes}\r\n isMulti\r\n options={options}\r\n onChange={(options: MediaOption[]) => {\r\n selectQueryTypes(options)\r\n const types = options.map((op: MediaOption) => op.value)\r\n changeFilters({ types })\r\n }}\r\n />\r\n </Col>\r\n {/* <Col sm={4}>\r\n <FormGroup>\r\n <Label>From date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.fromDate\r\n ? format(filters.fromDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"From date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n fromDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\" />}\r\n />\r\n </FormGroup>\r\n </Col>\r\n <Col sm={4}>\r\n <FormGroup>\r\n <Label>To date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.toDate\r\n ? format(filters.toDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"To date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n toDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\"/>}\r\n />\r\n </FormGroup>\r\n </Col> */}\r\n </Row>\r\n )\r\n}\r\n\r\nexport default Filter\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGallery = createAction<any>(\"gallery/setGallery\")\r\nexport const setTargetMedia = createAction<any>(\"gallery/setTargetMedia\")\r\n\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { FilterType } from './../containers/Gallery/constants/gallery.types';\r\n\r\nconst GALLERY_URL = `${BASE_URL}/api/file`\r\n\r\nexport const get = (filter: FilterType) =>\r\n api.get(`${GALLERY_URL}`, { params: filter })\r\n","import { setModal } from \"../../../redux/commons/action\"\r\nimport { useState, useCallback, useEffect, useMemo } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { setGallery, setTargetMedia } from \"../../../redux/gallery/action\"\r\nimport { get } from \"../../../services/galleryService\"\r\nimport { FilterType } from \"../constants/gallery.types\"\r\nimport {\r\n renameFile,\r\n customKeyUpload,\r\n deleteFile,\r\n deleteFolder,\r\n createFolder\r\n} from \"../../../services/fileServices\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\n\r\nconst TITLE = \"Gallery\"\r\n\r\nconst defaultFilter: FilterType = {\r\n searchString: \"\"\r\n}\r\n\r\ninterface FormDataMediaType {\r\n file: File\r\n key?: string\r\n}\r\n\r\ninterface RouterType {\r\n link: string\r\n step: number\r\n}\r\n\r\nconst useGalleryList = (isLibrary: boolean = false) => {\r\n const mediaList = useSelector((state: any) => state.gallery.mediaList)\r\n const totalItems = useSelector((state: any) => state.gallery.totalItems)\r\n const targetMedia: S3Object = useSelector(\r\n (state: any) => state.gallery.targetMedia\r\n )\r\n const dispatch = useDispatch()\r\n\r\n const [formDataMediaType, handleSelectFile] = useState<FormDataMediaType>()\r\n const [filters, setFilters] = useState<FilterType>(\r\n Object.assign(\r\n { ...defaultFilter },\r\n isLibrary ? { isLibrary: true } : {}\r\n )\r\n )\r\n const [router, changeRouter] = useState<RouterType>({ link: \"\", step: 0 })\r\n\r\n const handleOpenFolder = (media: S3Object) => {\r\n if (media.isFolder) {\r\n setFilters({ prefix: media.key, isLibrary })\r\n if (media.key) {\r\n changeRouter({\r\n link: media.key,\r\n step: router.step + 1\r\n })\r\n }\r\n }\r\n }\r\n\r\n const handleGoBack = () => {\r\n const { link, step } = router\r\n if (!link || link == \"\" || step < 1) return\r\n let temp = link.split(\"/\")\r\n if (temp[temp.length - 1] === \"\") {\r\n changeRouter({\r\n link: `${temp.splice(0, temp.length - 2).join(\"/\")}/`,\r\n step: step - 1\r\n })\r\n } else {\r\n temp.pop()\r\n changeRouter({ link: `${temp.join(\"/\")}/`, step: step - 1 })\r\n }\r\n }\r\n\r\n const handleSelectMedia = (media: S3Object) => {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n if (targetMedia) {\r\n if (media.key === targetMedia.key) {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n }\r\n\r\n const handleRenameFile = async (name: string) => {\r\n if (targetMedia?.key && name) {\r\n dispatch(setLoading(true))\r\n await renameFile(targetMedia.key, name)\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n }\r\n\r\n const handleDownloadMedia = () => {\r\n if (targetMedia?.key) {\r\n const url = getFileUrl(targetMedia.key)\r\n window.open(url, \"_blank\")\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to download media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const showErrorAlert = (message: string) => {\r\n setAlert({ type: \"danger\", message })\r\n }\r\n\r\n const handleDeleteMediaOrFolder = async () => {\r\n if (targetMedia?.key) {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to remove this ${\r\n targetMedia.isFolder ? \"folder\" : \"file\"\r\n }`,\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n if (targetMedia.isFolder) {\r\n await deleteFolder(targetMedia.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n await deleteFile(targetMedia?.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n }\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n })\r\n )\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to delete media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleCreateFolder = async (prefix: string, folderName: string) => {\r\n if (folderName) {\r\n await createFolder(prefix, folderName)\r\n getData()\r\n }\r\n }\r\n\r\n const changeFilters = (updatedFilters: FilterType) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n dispatch(\r\n setGallery({\r\n mediaList: res.data,\r\n totalItems: res.data.length || 0\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n }, [])\r\n\r\n useEffect(() => {\r\n changeFilters({ prefix: router.link })\r\n }, [router.link])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n async function customKeyUploadEffect() {\r\n if (isLibrary) return\r\n dispatch(setLoading(true))\r\n try {\r\n if (formDataMediaType) {\r\n const { file, key } = formDataMediaType\r\n const { name } = file\r\n const customKey = key\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n formData.append(\"customKey\", customKey?.slice(0, -1) || \"\")\r\n await customKeyUpload(formData)\r\n getData()\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n customKeyUploadEffect()\r\n }, [formDataMediaType])\r\n\r\n const breadcrumb = useMemo(() => {\r\n try {\r\n const subLinks = router.link?.split(\"/\")\r\n return subLinks.splice(2, subLinks.length).join(\"/\")\r\n } catch (_err) {\r\n return \"\"\r\n }\r\n }, [router.link])\r\n\r\n return {\r\n mediaList,\r\n filters,\r\n totalItems,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n getData,\r\n changeFilters,\r\n handleSelectFile,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleCreateFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n }\r\n}\r\n\r\nexport default useGalleryList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Card, CardHeader, CardBody } from \"reactstrap\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport MediaNav from \"../components/MediaNav\"\r\nimport Media from \"../components/Media\"\r\nimport Filter from \"../components/Filter\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\nimport useGalleryList from \"../hooks/useGalleryList\"\r\n\r\ninterface Props {\r\n height: string\r\n isLibrary?: boolean\r\n}\r\n\r\nconst MediaList: FC<Props> = ({ height, isLibrary }: Props) => {\r\n const {\r\n filters,\r\n mediaList,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n changeFilters,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n } = useGalleryList(isLibrary)\r\n\r\n const renderList = () =>\r\n mediaList.map((media: S3Object) => {\r\n const isTarget = targetMedia?.key === media.key\r\n\r\n return (\r\n <Col className=\"p-2\" xs=\"auto\" key={media.key}>\r\n <div\r\n onDoubleClick={() => handleOpenFolder(media)}\r\n onClick={() => handleSelectMedia(media)}\r\n className={styles[\"media-wrapper\"]}\r\n >\r\n <Media media={media} isTarget={isTarget} />\r\n </div>\r\n </Col>\r\n )\r\n })\r\n\r\n return (\r\n <Card>\r\n <CardHeader>\r\n <Filter changeFilters={changeFilters} filters={filters} />\r\n <MediaNav\r\n isLibrary={isLibrary}\r\n step={router.step}\r\n breadcumb={breadcrumb}\r\n currentPrefix={filters.prefix || \"\"}\r\n targetMedia={targetMedia}\r\n handleSelectFile={handleSelectFile}\r\n handleCreateFolder={handleCreateFolder}\r\n handleRenameFile={handleRenameFile}\r\n handleDownloadMedia={handleDownloadMedia}\r\n handleDeleteMediaOrFolder={handleDeleteMediaOrFolder}\r\n handleGoBack={handleGoBack}\r\n showErrorAlert={showErrorAlert}\r\n />\r\n </CardHeader>\r\n <CardBody style={{ minHeight: height }}>\r\n <Row className=\"p-1\">{renderList()}</Row>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default MediaList\r\n","import React, { FC } from \"react\"\r\nimport {\r\n Card,\r\n CardImg,\r\n CardTitle,\r\n CardHeader,\r\n CardBody,\r\n CardText\r\n} from \"reactstrap\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\nimport { MediaType, S3Object } from \"../constants/gallery.types\"\r\nimport { getTypeByExtension } from \"../extensions/helpers\"\r\ninterface MediaDetailInterface {\r\n targetMedia: S3Object\r\n}\r\n\r\nconst MediaDetail: FC<MediaDetailInterface> = ({ targetMedia }) => {\r\n if (!targetMedia || targetMedia?.isFolder) return <div />\r\n const type = getTypeByExtension(targetMedia.extension)\r\n const url = getFileUrl(targetMedia.key || \"\")\r\n\r\n return (\r\n <Card className=\"position-sticky\">\r\n <CardHeader>{targetMedia?.name || \"Media name\"}</CardHeader>\r\n {type === MediaType.IMAGE && (\r\n <CardImg className=\"p-2\" src={url} loading=\"lazy\" />\r\n )}\r\n {type === MediaType.VIDEO && (\r\n <div className=\"p-2\">\r\n <video\r\n id={targetMedia.key}\r\n width=\"100%\"\r\n height=\"100%\"\r\n controls\r\n >\r\n <source src={url} />\r\n </video>\r\n </div>\r\n )}\r\n {type === MediaType.AUDIO && (\r\n <div className=\"p-2\">\r\n <audio controls className=\"w-100\">\r\n <source src={url}/>\r\n </audio>\r\n </div>\r\n )}\r\n <CardBody>\r\n <CardTitle tag=\"h6\">General Info</CardTitle>\r\n <CardText>\r\n File extension: {targetMedia.extension?.toUpperCase()}\r\n </CardText>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaDetail)\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\nimport { useSelector } from \"react-redux\"\r\nimport MediaList from \"../components/MediaList\"\r\nimport MediaDetail from \"../components/MediaDetail\"\r\n\r\nconst header = \"Gallery\"\r\ninterface Props {\r\n isLibrary?: boolean\r\n}\r\n\r\nconst GalleryList: FC<Props> = ({ isLibrary }: Props) => {\r\n const targetMedia = useSelector((state: any) => state.gallery.targetMedia)\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n {!isLibrary && <h5 className=\"mb-2\">{header}</h5>}\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <MediaList height=\"100vh\" isLibrary={isLibrary} />\r\n </Col>\r\n <Col md={4}>\r\n <MediaDetail\r\n key={targetMedia?.key}\r\n targetMedia={targetMedia}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\nexport default GalleryList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CLASS_URL = `${BASE_URL}/api/academicclass`\r\n\r\nexport const get = () => api.get(CLASS_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/classService\"\r\n\r\nconst AcademicClassSelector = (props: any) => {\r\n const [classes, setClasses] = useState([])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [])\r\n\r\n const getData = async () => {\r\n try {\r\n const res = await get()\r\n setClasses(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const options = classes.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? options.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={options} value={initValue} {...props} />\r\n}\r\n\r\nexport default AcademicClassSelector\r\n","import React, { FC } from \"react\"\r\n\r\nconst SchoolList: FC = () => {\r\n return <div>District school list</div>\r\n}\r\n\r\nexport default SchoolList\r\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w<e.length;w++)w>=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w<t.length;)r(new a(g,w,new o(void 0,t[w++])))}else{var x=Object.keys(e),S=Object.keys(t);x.forEach(function(n,o){var i=S.indexOf(n);i>=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":s(o[r.path[n]],r.index,r.item);break;case\"D\":delete o[r.path[n]];break;case\"E\":case\"N\":o[r.path[n]]=r.rhs}}else switch(r.kind){case\"A\":s(e[t],r.index,r.item);break;case\"D\":e=f(e,t);break;case\"E\":case\"N\":e[t]=r.rhs}return e}function d(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)\"undefined\"==typeof n[r.path[o]]&&(n[r.path[o]]=\"number\"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case\"A\":s(r.path?n[r.path[o]]:n,r.index,r.item);break;case\"D\":delete n[r.path[o]];break;case\"E\":case\"N\":n[r.path[o]]=r.rhs}}}function p(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":p(o[r.path[n]],r.index,r.item);break;case\"D\":o[r.path[n]]=r.lhs;break;case\"E\":o[r.path[n]]=r.lhs;break;case\"N\":delete o[r.path[n]]}}else switch(r.kind){case\"A\":p(e[t],r.index,r.item);break;case\"D\":e[t]=r.lhs;break;case\"E\":e[t]=r.lhs;break;case\"N\":e=f(e,t)}return e}function g(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)\"undefined\"==typeof i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case\"A\":p(i[r.path[n]],r.index,r.item);break;case\"D\":i[r.path[n]]=r.lhs;break;case\"E\":i[r.path[n]]=r.lhs;break;case\"N\":delete i[r.path[n]]}}}function h(e,t,r){if(e&&t){var n=function(n){r&&!r(e,t,n)||d(e,t,n)};l(e,t,n)}}function y(e){return\"color: \"+F[e].color+\"; font-weight: bold\"}function v(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case\"E\":return[r.join(\".\"),n,\"→\",o];case\"N\":return[r.join(\".\"),o];case\"D\":return[r.join(\".\")];case\"A\":return[r.join(\".\")+\"[\"+i+\"]\",a];default:return[]}}function b(e,t,r,n){var o=c(e,t);try{n?r.groupCollapsed(\"diff\"):r.group(\"diff\")}catch(e){r.log(\"diff\")}o?o.forEach(function(e){var t=e.kind,n=v(e);r.log.apply(r,[\"%c \"+F[t].text,y(t)].concat(P(n)))}):r.log(\"—— no diff ——\");try{r.groupEnd()}catch(e){r.log(\"—— diff end —— \")}}function m(e,t,r,n){switch(\"undefined\"==typeof e?\"undefined\":N(e)){case\"object\":return\"function\"==typeof e[n]?e[n].apply(e,P(r)):e[n];case\"function\":return e(t);default:return e}}function w(e){var t=e.timestamp,r=e.duration;return function(e,n,o){var i=[\"action\"];return i.push(\"%c\"+String(e.type)),t&&i.push(\"%c@ \"+n),r&&i.push(\"%c(in \"+o.toFixed(2)+\" ms)\"),i.join(\" \")}}function x(e,t){var r=t.logger,n=t.actionTransformer,o=t.titleFormatter,i=void 0===o?w(t):o,a=t.collapsed,f=t.colors,u=t.level,l=t.diff,c=\"undefined\"==typeof t.titleFormatter;e.forEach(function(o,s){var d=o.started,p=o.startedTime,g=o.action,h=o.prevState,y=o.error,v=o.took,w=o.nextState,x=e[s+1];x&&(w=x.prevState,v=x.started-d);var S=n(g),k=\"function\"==typeof a?a(function(){return w},g,o):a,j=D(p),E=f.title?\"color: \"+f.title(S)+\";\":\"\",A=[\"color: gray; font-weight: lighter;\"];A.push(E),t.timestamp&&A.push(\"color: gray; font-weight: lighter;\"),t.duration&&A.push(\"color: gray; font-weight: lighter;\");var O=i(S,j,v);try{k?f.title&&c?r.groupCollapsed.apply(r,[\"%c \"+O].concat(A)):r.groupCollapsed(O):f.title&&c?r.group.apply(r,[\"%c \"+O].concat(A)):r.group(O)}catch(e){r.log(O)}var N=m(u,S,[h],\"prevState\"),P=m(u,S,[S],\"action\"),C=m(u,S,[y,h],\"error\"),F=m(u,S,[w],\"nextState\");if(N)if(f.prevState){var L=\"color: \"+f.prevState(h)+\"; font-weight: bold\";r[N](\"%c prev state\",L,h)}else r[N](\"prev state\",h);if(P)if(f.action){var T=\"color: \"+f.action(S)+\"; font-weight: bold\";r[P](\"%c action \",T,S)}else r[P](\"action \",S);if(y&&C)if(f.error){var M=\"color: \"+f.error(y,h)+\"; font-weight: bold;\";r[C](\"%c error \",M,y)}else r[C](\"error \",y);if(F)if(f.nextState){var _=\"color: \"+f.nextState(w)+\"; font-weight: bold\";r[F](\"%c next state\",_,w)}else r[F](\"next state\",w);l&&b(h,w,r,k);try{r.groupEnd()}catch(e){r.log(\"—— log end ——\")}})}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},C=[];k=\"object\"===(\"undefined\"==typeof global?\"undefined\":N(global))&&global?global:\"undefined\"!=typeof window?window:{},j=k.DeepDiff,j&&C.push(function(){\"undefined\"!=typeof j&&k.DeepDiff===c&&(k.DeepDiff=j,j=void 0)}),t(n,r),t(o,r),t(i,r),t(a,r),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:l,enumerable:!0},applyDiff:{value:h,enumerable:!0},applyChange:{value:d,enumerable:!0},revertChange:{value:g,enumerable:!0},isConflict:{value:function(){return\"undefined\"!=typeof j},enumerable:!0},noConflict:{value:function(){return C&&(C.forEach(function(e){e()}),C=null),c},enumerable:!0}});var F={E:{color:\"#2196F3\",text:\"CHANGED:\"},N:{color:\"#4CAF50\",text:\"ADDED:\"},D:{color:\"#F44336\",text:\"DELETED:\"},A:{color:\"#2196F3\",text:\"ARRAY:\"}},L={level:\"log\",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return\"inherit\"},prevState:function(){return\"#9E9E9E\"},action:function(){return\"#03A9F4\"},nextState:function(){return\"#4CAF50\"},error:function(){return\"#F20404\"}},diff:!1,diffPredicate:void 0,transformer:void 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setUser,\r\n setSidebar,\r\n setAlert,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage\r\n} from \"./action\"\r\n\r\nconst initialState: any = {\r\n sidebarShow: \"responsive\",\r\n isLoading: false,\r\n alert: {\r\n type: \"\",\r\n message: \"\"\r\n },\r\n modal: {\r\n isOpen: false\r\n },\r\n user: null,\r\n currentStudentId: parseInt(localStorage.getItem(\"currentStudentId\") ?? \"0\"),\r\n currentStudentUserId: localStorage.getItem(\"currentStudentUserId\") || \"\",\r\n currentStudentName: localStorage.getItem(\"currentStudentName\") || \"\",\r\n turnOffPassWhenChangeMode: false,\r\n menuBar: true,\r\n defaultFontSize: 16,\r\n isEnableIEP: true,\r\n isEnableSurvey: false,\r\n isConversationOneToOne: false,\r\n language: \"en\",\r\n amplitude: {\r\n user_id: \"\",\r\n status: \"\",\r\n student_id: \"\",\r\n page: \"\",\r\n part: \"\",\r\n iep_date: null,\r\n saved: null,\r\n first_login: \"\",\r\n duration_since: 0,\r\n last_page: \"\",\r\n event: \"\"\r\n }\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLoading, (state, action) => {\r\n state.isLoading = action.payload\r\n })\r\n .addCase(setModal, (state, action) => {\r\n state.modal = action.payload\r\n })\r\n .addCase(setUser, (state, action) => {\r\n state.user = action.payload\r\n })\r\n .addCase(setSidebar, (state, action) => {\r\n state.sidebarShow = action.payload\r\n })\r\n .addCase(setAlert, (state, action) => {\r\n state.alert = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"currentStudentId\")\r\n localStorage.removeItem(\"currentStudentUserId\")\r\n localStorage.removeItem(\"currentStudentName\")\r\n return initialState\r\n })\r\n .addCase(setCurrentStudentId, (state, action) => {\r\n state.currentStudentId = action.payload\r\n })\r\n .addCase(setCurrentStudentUserId, (state, action) => {\r\n state.currentStudentUserId = action.payload\r\n })\r\n .addCase(setCurrentStudentName, (state, action) => {\r\n state.currentStudentName = action.payload\r\n })\r\n .addCase(setTurnOffPassWhenChangeMode, (state, action) => {\r\n state.turnOffPassWhenChangeMode = action.payload\r\n })\r\n .addCase(showMenuBar, (state, action) => {\r\n state.menuBar = action.payload\r\n })\r\n .addCase(setEnableIEP, (state, action) => {\r\n state.isEnableIEP = action.payload\r\n })\r\n .addCase(setEnableSurvey, (state, action) => {\r\n state.isEnableSurvey = action.payload\r\n })\r\n .addCase(setConversationOneToOne, (state, action) => {\r\n state.isConversationOneToOne = action.payload\r\n })\r\n .addCase(setLanguage, (state, action) => {\r\n state.language = action.payload\r\n })\r\n .addCase(showFontSize, (state, action) => {\r\n state.defaultFontSize = action.payload\r\n })\r\n .addCase(initAmplitude, (state, action) => {\r\n const hostName = window.location.hostname;\r\n var eventProperties = {\r\n user_id: action.payload?.name,\r\n status: action.payload?.status ? action.payload?.status : \"\",\r\n student_id: action.payload?.student_id\r\n ? action.payload.student_id\r\n : \"\",\r\n page: action.payload?.page ? action.payload.page : \"\",\r\n part: action.payload?.part ? action.payload.part : \"\",\r\n iep_date: action.payload?.iep_date\r\n ? action.payload.iep_date\r\n : null,\r\n saved:\r\n typeof action.payload?.saved == \"boolean\"\r\n ? action.payload.saved\r\n : null,\r\n first_login: action.payload?.first_login\r\n ? action.payload.first_login\r\n : \"\",\r\n duration_since: action.payload?.duration_since\r\n ? action.payload.duration_since\r\n : 0,\r\n last_page: action.payload?.last_page\r\n ? action.payload.last_page\r\n : \"\",\r\n event: action.payload.event,\r\n domain: !!hostName ? hostName : \"\",\r\n answer: !!action.payload?.answer\r\n ? action.payload.answer\r\n : \"\"\r\n }\r\n state.amplitude = eventProperties\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setClassList = createAction<any>(\"classes/setClassList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n classList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst classReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setClassList, (state, action) => {\r\n state.classList = action.payload.classList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default classReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setConferenceRubricList = createAction<any>(\r\n \"conferenceRubric/setConferenceRubricList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setConferenceRubricList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n conferenceRubricList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst conferenceRubricReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setConferenceRubricList, (state, action) => {\r\n state.conferenceRubricList = action.payload.conferenceRubricList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default conferenceRubricReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFaqList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n faqList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFaqList, (state, action) => {\r\n state.faqList = action.payload.faqList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSkillList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n skillList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSkillList, (state, action) => {\r\n state.skillList = action.payload.skillList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setEmailTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n emailTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst emailTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setEmailTemplateList, (state, action) => {\r\n state.emailTemplateList = action.payload.emailTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default emailTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSuggestionList = createAction<any>(\r\n \"suggestionBank/setSuggestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSuggestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n suggestionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst suggestionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSuggestionList, (state, action) => {\r\n state.suggestionList = action.payload.suggestionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default suggestionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStrategyList = createAction<any>(\r\n \"learningStrategy/setStrategyList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStrategyList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n strategyList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst learningStrategyReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStrategyList, (state, action) => {\r\n state.strategyList = action.payload.strategyList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default learningStrategyReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSubjectList = createAction<any>(\"subjects/setSubjectList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSubjectList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n subjectList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSubjectList, (state, action) => {\r\n state.subjectList = action.payload.subjectList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setLearningSupportCategoryList = createAction<any>(\r\n \"learningSupportCategories/setLearningSupportCategoryList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setLearningSupportCategoryList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n learningSupportCategoryList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLearningSupportCategoryList, (state, action) => {\r\n state.learningSupportCategoryList =\r\n action.payload.learningSupportCategoryList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionList = createAction<any>(\"questionBank/setQuestionList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionList, (state, action) => {\r\n state.questionList = action.payload.questionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBadgeList = createAction<any>(\"badges/setBadgeList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBadgeList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n badgeList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBadgeList, (state, action) => {\r\n state.badgeList = action.payload.badgeList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSemesterList = createAction<any>(\"semester/setSemesterList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSemesterList } from \"./action\"\r\n\r\nconst initialState: any = {\r\n semesterList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder.addCase(setSemesterList, (state, action) => {\r\n state.semesterList = action.payload.semesterList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssignmentList = createAction<any>(\"assignment/setAssignmentList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssignmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assignmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssignmentList, (state, action) => {\r\n state.assignmentList = action.payload.assignmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGoalExampleList = createAction<any>(\r\n \"goalExamples/setGoalExampleList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGoalExampleList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n goalExampleList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGoalExampleList, (state, action) => {\r\n state.goalExampleList = action.payload.goalExampleList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setUserList, setStudentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n userList: [],\r\n totalItems: 0,\r\n studentList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setUserList, (state, action) => {\r\n state.userList = action.payload.userList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setStudentList, (state, action) => {\r\n state.studentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFeedbackList = createAction<any>(\"feedback/setFeedbackList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFeedbackList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n feedbackList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFeedbackList, (state, action) => {\r\n state.feedbackList = action.payload.feedbackList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssessmentList = createAction<any>(\r\n \"assessments/setAssessmentList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setAssessmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n assessmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setAssessmentList, (state, action) => {\r\n state.assessmentList = action.payload.assessmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionList = createAction<any>(\r\n \"reflectionForms/setReflectionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionList, (state, action) => {\r\n state.reflectionList = action.payload.reflectionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionResultList = createAction<any>(\r\n \"reflectionForms/setReflectionResultList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionResultList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionResultList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionResultList, (state, action) => {\r\n state.reflectionResultList = action.payload.reflectionResultList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionByCategory = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setQuestionByCategory\"\r\n)\r\nexport const setSelectQuestion = createAction<{ id: number }>(\r\n \"questionByCategory/setSelectQuestion\"\r\n)\r\nexport const setUnSelectQuestion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setUnSelectQuestion\"\r\n)\r\nexport const setMoveItemQuestion = createAction<string | undefined>(\r\n \"questionByCategory/setMoveItemQuestion\"\r\n)\r\nexport const setEditItemQuesion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setEditItemQuesion\"\r\n)\r\nexport const setResetQuestionList = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setResetQuestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setUnSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionByCategoryList: [],\r\n selectedQuestions: [],\r\n selectQuestion: []\r\n}\r\nconst mergeArrayUniqueQuestion = (array1: any, array2: any) => {\r\n var ids = new Set(array1.map((d: any) => d.id))\r\n var arrMerged = [...array1, ...array2.filter((d: any) => !ids.has(d.id))]\r\n return arrMerged\r\n}\r\nconst questionCategoryReducer = createReducer(initialState, builder => {\r\n builder.addCase(setQuestionByCategory, (state, action) => {\r\n state.questionByCategoryList = action.payload\r\n if (state.selectedQuestions.length > 0) {\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n }\r\n })\r\n builder.addCase(setSelectQuestion, (state, action) => {\r\n let index = state.selectQuestion.findIndex(\r\n (item: any) => item.id === action.payload.id\r\n )\r\n if (index === -1) {\r\n state.selectQuestion.push(action.payload)\r\n } else {\r\n state.selectQuestion.splice(index, 1)\r\n }\r\n })\r\n builder.addCase(setUnSelectQuestion, (state, action) => {\r\n state.selectQuestion = action.payload\r\n })\r\n builder.addCase(setMoveItemQuestion, (state, action) => {\r\n switch (action.payload) {\r\n case \"right\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.selectQuestion\r\n )\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"right-all\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.questionByCategoryList\r\n )\r\n state.selectQuestion = []\r\n state.questionByCategoryList = []\r\n break\r\n case \"left\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectQuestion\r\n )\r\n state.selectedQuestions = state.selectedQuestions.filter(\r\n (item: any) => {\r\n return !state.selectQuestion.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"left-all\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectedQuestions\r\n )\r\n state.selectedQuestions = []\r\n state.selectQuestion = []\r\n break\r\n case \"move-up\":\r\n const old_index = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index - 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index, 1)[0]\r\n )\r\n }\r\n break\r\n case \"move-down\":\r\n const old_index1 = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index1 !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index1 + 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index1, 1)[0]\r\n )\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n })\r\n builder.addCase(setEditItemQuesion, (state, action) => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = action.payload\r\n })\r\n builder.addCase(setResetQuestionList, state => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = []\r\n })\r\n builder.addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCategoryReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMailCategory } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mailCategoryList: []\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMailCategory, (state, action) => {\r\n state.mailCategoryList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionCateList = createAction<any>(\r\n \"questionCate/setQuestionCateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionCateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionCateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionCateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionCateList, (state, action) => {\r\n state.questionCateList = action.payload.questionCateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCateReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setNotification,\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n notificationList: [],\r\n totalItems: 0,\r\n unReadNotification: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setNotification, (state, action) => {\r\n ;(state.notificationList = action.payload.notificationList),\r\n (state.totalItems = action.payload.totalItems),\r\n (state.unReadNotification = action.payload.unReadNotification)\r\n })\r\n .addCase(setUnReadNotification, (state, action) => {\r\n state.unReadNotification = action.payload\r\n })\r\n .addCase(updateUnReadNotification, (state, action) => {\r\n state.unReadNotification += action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMyStudent = createAction<any>(\"myStudent/setMyStudentList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMyStudent } from \"./action\"\r\nimport { reset } from \"../../commons/action\"\r\n\r\nconst initialState: any = {\r\n myStudentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMyStudent, (state, action) => {\r\n state.myStudentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssistantList = createAction<Array<object> | undefined>(\r\n \"assistants/setAssistantList\"\r\n)\r\n// export const setStudentAssistantList = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentAssistantList\"\r\n// )\r\n// export const setStudentByAssistant = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentByAssistant\"\r\n// )\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssistantList } from \"./action\"\r\n\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assistantList: []\r\n}\r\n\r\nconst assistantReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssistantList, (state, action) => {\r\n state.assistantList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default assistantReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateList = createAction<any>(\r\n \"sessionTemplates/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionTemplateList, (state, action) => {\r\n state.sessionTemplateList = action.payload.sessionTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateGeneralClassList = createAction<any>(\r\n \"sessionTemplateGeneralClasses/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateGeneralClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateGeneralClassList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateGeneralClassReducer = createReducer(\r\n initialState,\r\n builder => {\r\n builder\r\n .addCase(setSessionTemplateGeneralClassList, (state, action) => {\r\n state.sessionTemplateGeneralClassList =\r\n action.payload.sessionTemplateGeneralClassList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n }\r\n)\r\n\r\nexport default sessionTemplateGeneralClassReducer\r\n","import {createAction} from \"@reduxjs/toolkit\"\r\n\r\nexport const setTutorialScreenList = createAction<any>(\"tutorialScreens/setTutorialScreenList\")\r\n\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setTutorialScreenList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n tutorialScreenList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst tutorialScreenReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setTutorialScreenList, (state, action) => {\r\n state.tutorialScreenList = action.payload.tutorialScreenList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default tutorialScreenReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCustomAlertList = createAction<any>(\"customAlerts/setCustomAlertList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCustomAlertList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n customAlertList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCustomAlertList, (state, action) => {\r\n state.customAlertList = action.payload.customAlertList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGallery, setTargetMedia } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mediaList: [],\r\n totalItems: 0,\r\n targetMedia: undefined\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGallery, (state, action) => {\r\n state.mediaList = action.payload.mediaList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setTargetMedia, (state, action) => {\r\n state.targetMedia = action.payload.targetMedia\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { NavbarTab } from \"../../types/Dashboard\"\r\n\r\nexport const addTab = createAction<NavbarTab>(\"dashboard/addTab\")\r\nexport const closeTab = createAction<number>(\"dashboard/closeTab\")\r\nexport const editTab = createAction<NavbarTab>(\"dashboard/editTab\")\r\nexport const clearTab = createAction(\"dashboard/clearTab\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n tabs: !!localStorage.getItem(\"myTab\")\r\n ? JSON.parse(localStorage.getItem(\"myTab\") ?? \"\")\r\n : []\r\n}\r\nconst dashboardReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(addTab, (state, action) => {\r\n if (state.tabs.some((tab: any) => tab.url === action.payload.url)) {\r\n return state\r\n }\r\n\r\n return {\r\n ...state,\r\n tabs: [action.payload, ...state.tabs]\r\n }\r\n })\r\n .addCase(closeTab, (state, action) => {\r\n let tabs = JSON.parse(JSON.stringify(state.tabs))\r\n delete tabs[action.payload]\r\n tabs = tabs.filter(Boolean)\r\n\r\n return { ...state, tabs }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n .addCase(editTab, (state, action) => {\r\n const tabs = JSON.parse(JSON.stringify(state.tabs))\r\n const editingTab = tabs.find(\r\n (tab: any) => action.payload.label === tab.label\r\n )\r\n editingTab.url = action.payload.url\r\n return {\r\n ...state,\r\n tabs\r\n }\r\n })\r\n .addCase(clearTab, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n})\r\n\r\nexport default dashboardReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const changeNote = createAction<any>(\"sessionPlayer/changeNote\")\r\nexport const changeTags = createAction<any>(\"sessionPlayer/changeTags\")\r\nexport const answerQuestion = createAction<any>(\"sessionPlayer/answerQuestion\")\r\nexport const setSessionPlayer = createAction<any>(\r\n \"sessionPlayer/setSessionPlayer\"\r\n)\r\nexport const setStartTime = createAction<any>(\"sessionPlayer/setStartTime\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionId: 0,\r\n session: {\r\n id: 0,\r\n studentId: 0,\r\n teacherId: 0,\r\n duration: 0,\r\n conferenceRubric: null,\r\n studentDefaultQuestions: [],\r\n teacherDefaultQuestions: [],\r\n additionalQuestions: []\r\n },\r\n results: [],\r\n startTime: \"\"\r\n}\r\n\r\nconst sessionPlayerReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(changeNote, (state, action) => {\r\n const { isConfidential, text } = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n\r\n const existedNote = teacherResultCloner.notes.find(\r\n (note: any) => !!note.isConfidential === isConfidential\r\n )\r\n\r\n if (existedNote) {\r\n existedNote.text = text\r\n } else {\r\n teacherResultCloner.notes.push({ isConfidential, text })\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(changeTags, (state, action) => {\r\n const tags = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n teacherResultCloner.tags = tags\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(answerQuestion, (state, action) => {\r\n const { text, questionId, isTeacherResult } = action.payload\r\n const result = state.results.find(\r\n (result: any) => result.isTeacherResult === isTeacherResult\r\n )\r\n if (!result) return state\r\n const resultCloner = JSON.parse(JSON.stringify(result))\r\n const existedResponse = resultCloner.questionResponses.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n resultCloner.questionResponses.push({ questionId, text })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult === isTeacherResult\r\n ? resultCloner\r\n : result\r\n )\r\n }\r\n })\r\n .addCase(setStartTime, (state, action) => {\r\n const startTime = action.payload\r\n if (!startTime) return state\r\n state.startTime = startTime\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionPlayerReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setDataPlayer = createAction<any>(\"dataPlayer/setDataPlayer\")\r\nexport const answerQuestionDataPlayer = createAction<any>(\r\n \"dataPlayer/answerQuestionDataPlayer\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setDataPlayer, answerQuestionDataPlayer } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n id: 0,\r\n questions: [\r\n {\r\n id: 0,\r\n text: \"\",\r\n type: \"\",\r\n subQuestions: [],\r\n answers: []\r\n }\r\n ],\r\n questionResponse: []\r\n}\r\n\r\nconst dataPlayer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setDataPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(answerQuestionDataPlayer, (state, action) => {\r\n const { questionId, text } = action.payload\r\n const questionResponse = state.questionResponse\r\n if (!questionResponse) return state\r\n const questionResponseCloner = JSON.parse(\r\n JSON.stringify(questionResponse)\r\n )\r\n const existedResponse = questionResponseCloner.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n questionResponseCloner.push({\r\n questionId: questionId,\r\n text: text\r\n })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n questionResponse: questionResponseCloner\r\n }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default dataPlayer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCertificateList = createAction<any>(\r\n \"certificates/setCertificateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCertificateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n certificateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCertificateList, (state, action) => {\r\n state.certificateList = action.payload.certificateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setImproveMyClass = createAction<any>(\r\n \"improveMyClass/setImproveMyClass\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setImproveMyClass } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n improveMyClassList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setImproveMyClass, (state, action) => {\r\n state.improveMyClassList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFilterWidget = createAction<any>(\"setFilterWidget\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFilterWidget } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst enum Filter {\r\n Year = \"Year\",\r\n Semester = \"Semester\"\r\n}\r\n\r\nconst initialState: any = {\r\n filterWidget: Filter.Year\r\n}\r\n\r\nconst widgetReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFilterWidget, (state, action) => {\r\n state.filterWidget = action.payload.filterWidget\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default widgetReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBandScoreList = createAction<any>(\"bandScores/setBandScoreList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBandScoreList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n bandScoreList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBandScoreList, (state, action) => {\r\n state.bandScoreList = action.payload.bandScoreList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSchoolBlankDayList = createAction<any>(\r\n \"schoolBlankDays/setSchoolBlankDayList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSchoolBlankDayList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n schoolBlankDayList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSchoolBlankDayList, (state, action) => {\r\n state.schoolBlankDayList = action.payload.schoolBlankDayList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStudentIdSelectedByTeacher = createAction<number>(\r\n \"navMobile/setStudentIdSelectedByTeacher\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStudentIdSelectedByTeacher } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n studentIdSelectedByTeacher: 0\r\n}\r\n\r\nconst navMobileReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStudentIdSelectedByTeacher, (state, action) => {\r\n state.studentIdSelectedByTeacher = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default navMobileReducer\r\n","import { combineReducers } from \"redux\"\r\n\r\nimport common from \"./redux/commons/reducer\"\r\nimport classes from \"./redux/classes/reducer\"\r\nimport conferenceRubrics from \"./redux/conferenceRubrics/reducer\"\r\nimport faqs from \"./redux/faqs/reducer\"\r\nimport skills from \"./redux/skills/reducer\"\r\nimport emailTemplate from \"./redux/emailTemplates/reducer\"\r\nimport suggestionBank from \"./redux/suggestionBanks/reducer\"\r\nimport learningStrategy from \"./redux/learningStrategies/reducer\"\r\nimport subjects from \"./redux/subjects/reducer\"\r\nimport learningSupportCategories from \"./redux/learningSupportCategories/reducer\"\r\nimport questionBank from \"./redux/questionBanks/reducer\"\r\nimport badges from \"./redux/badges/reducer\"\r\nimport semester from \"./redux/semester/reducer\"\r\nimport assignments from \"./redux/assignment/reducer\"\r\nimport goalExamples from \"./redux/goalExamples/reducer\"\r\nimport users from \"./redux/users/reducer\"\r\nimport feedbacks from \"./redux/feedback/reducer\"\r\nimport assessments from \"./redux/assessments/reducer\"\r\nimport reflections from \"./redux/reflectionForms/reducer\"\r\nimport reflectionResults from \"./redux/reflectionResults/reducer\"\r\nimport questionByCategory from \"./redux/questionByCategory/reducer\"\r\nimport mailCategory from \"./redux/mailCategories/reducer\"\r\nimport questionCate from \"./redux/questionCategory/reducer\"\r\nimport notification from \"./redux/notifications/reducer\"\r\nimport myStudent from \"./redux/teacher/myStudent/reducer\"\r\nimport assistants from \"./redux/assistants/reducer\"\r\nimport sesstionTemplates from \"./redux/sessionTemplates/reducer\"\r\nimport sessionTemplateGeneralClasses from \"./redux/sessionTemplateGeneralClasses/reducer\"\r\nimport tutorialScreens from \"./redux/tutorialScreen/reducer\"\r\nimport customAlerts from \"./redux/customAlert/reducer\"\r\nimport gallery from \"./redux/gallery/reducer\"\r\nimport dashboard from \"./redux/dashboard/reducer\"\r\nimport sessionPlayer from \"./redux/sessionPlayers/reducer\"\r\nimport dataPlayer from \"./redux/dataPlayer/reducer\"\r\nimport certificate from \"./redux/certificate/reducer\"\r\nimport improveMyClass from \"./redux/improveMyClass/reducer\"\r\nimport widget from \"./redux/widget/reducer\"\r\nimport bandScores from \"./redux/bandScores/reducer\"\r\nimport schoolBlankDays from \"./redux/schoolBlankDays/reducer\"\r\nimport navMobileReducer from \"./redux/navMobile/reducer\"\r\n\r\nconst rootReducer = combineReducers({\r\n common,\r\n classes,\r\n conferenceRubrics,\r\n faqs,\r\n skills,\r\n emailTemplate,\r\n suggestionBank,\r\n learningStrategy,\r\n subjects,\r\n learningSupportCategories,\r\n questionBank,\r\n badges,\r\n semester,\r\n goalExamples,\r\n users,\r\n reflections,\r\n reflectionResults,\r\n feedbacks,\r\n assessments,\r\n questionByCategory,\r\n mailCategory,\r\n questionCate,\r\n notification,\r\n myStudent,\r\n assignments,\r\n assistants,\r\n sesstionTemplates,\r\n sessionTemplateGeneralClasses,\r\n tutorialScreens,\r\n customAlerts,\r\n gallery,\r\n dashboard,\r\n sessionPlayer,\r\n dataPlayer,\r\n certificate,\r\n improveMyClass,\r\n widget,\r\n bandScores,\r\n schoolBlankDays,\r\n navMobileReducer\r\n})\r\n\r\nexport default rootReducer\r\n","import { configureStore } from \"@reduxjs/toolkit\"\r\nimport logger from \"redux-logger\"\r\nimport { Store } from \"redux\"\r\n\r\nimport rootReducer from \"./rootReducer\"\r\n\r\nconst store: Store = configureStore({\r\n reducer: rootReducer,\r\n middleware: getDefaultMiddleware =>\r\n getDefaultMiddleware({ serializableCheck: false }).concat(logger)\r\n})\r\n\r\nexport default store\r\n","export const isInViewport = (el: any) => {\r\n const rect = el?.getBoundingClientRect()\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <=\r\n (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <=\r\n (window.innerWidth || document.documentElement.clientWidth)\r\n )\r\n}\r\n\r\nexport const toogleSidebar = () => {\r\n // @ts-ignore\r\n document.querySelector(\"#sidebar-minimizer\").click()\r\n}\r\n","const debounce = (callback: any, wait: number) => {\r\n let timeout: any = null\r\n return (...args: any[]) => {\r\n const next = () => callback(...args)\r\n clearTimeout(timeout)\r\n timeout = setTimeout(next, wait)\r\n }\r\n}\r\n\r\nexport default debounce\r\n","const getTextFromHTML = (htmlString: string) => {\r\n const p = document.createElement(\"p\")\r\n p.innerHTML = htmlString\r\n const text = p.innerText\r\n p.remove()\r\n return text\r\n}\r\n\r\nexport default getTextFromHTML\r\n","export default () => (Math.random() + 1).toString(36).substring(7)\r\n","import \"bootstrap/dist/css/bootstrap.min.css\"\r\nimport i18n from \"./i18n\"\r\nimport { useTranslation, I18nextProvider } from \"react-i18next\"\r\nimport Login from \"./containers/Login/views/Login\"\r\nimport Dashboard from \"./containers/Login/views/Dashboard\"\r\nimport TheLayout from \"./layouts/TheLayout\"\r\nimport TheContent from \"./layouts/TheContent\"\r\nimport EmailTemplateList from \"./containers/EmailTemplate/views/EmailTemplateList\"\r\nimport EmailTemplateDetail from \"./containers/EmailTemplate/views/EmailTemplateDetail\"\r\nimport FaqList from \"./containers/Faq/views/FaqList\"\r\nimport SkillList from \"./containers/Skill/views/SkillList\"\r\nimport UserList from \"./containers/User/views/UserList\"\r\nimport UserDetail from \"./containers/User/views/UserDetail\"\r\nimport Loading from \"./components/Loading/Loading\"\r\nimport ScrollToTop from \"./components/Scroll/ScrollToTop\"\r\nimport NotificationModal from \"./components/Modals/NotificationModal\"\r\nimport CommonHeader from \"./components/Headers/CommonHeader\"\r\nimport CommonModal from \"./components/Modals/CommonModal\"\r\nimport AddButton from \"./components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"./components/Buttons/DeleteButtonIcon\"\r\nimport EditButtonIcon from \"./components/Buttons/EditButtonIcon\"\r\nimport CustomPagination from \"./components/Pagination/CustomPagination\"\r\nimport LinkEditButton from \"./components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"./components/Alerts/EmptyDataAlert\"\r\nimport CreatableSelector from \"./components/Selectors/CreatableSelector\"\r\nimport SearchBox from \"./components/Inputs/SearchBox\"\r\nimport QuestionTypeSelector from \"./components/Selectors/QuestionTypeSelector\"\r\nimport SuggestionCategorySelector from \"./components/Selectors/SuggestionCategorySelector\"\r\nimport QuestionCategorySelector from \"./components/Selectors/QuestionCategorySelector\"\r\nimport ErrorHandler from \"./components/Alerts/ErrorHandler\"\r\nimport DetailActionButtons from \"./components/Buttons/DetailActionButtons\"\r\nimport RequiredLabel from \"./components/Labels/RequiredLabel\"\r\nimport StarRatingSelector from \"./components/Selectors/StarRatingSelector\"\r\nimport ToggleButton from \"./components/Buttons/ToggleButton\"\r\nimport FileInput from \"./components/Inputs/FileInput\"\r\nimport NotFound from \"./containers/Commons/NotFound\"\r\nimport ReactNotification from \"./components/Alerts/ReactNotification\"\r\nimport NotificationList from \"./containers/Notifications/views/NotificationList\"\r\nimport CustomSelector from \"./components/Selectors/CustomSelector\"\r\nimport UploadFileButton from \"./components/Buttons/UploadFileButton\"\r\nimport SearchBoxContainer from \"./components/Inputs/SearchBoxContainer\"\r\nimport CustomTab from \"./components/Tabs/CustomTab\"\r\nimport CommonAlert from \"./components/Alerts/CommonAlert\"\r\nimport GalleryList from \"./containers/Gallery/views/GalleryList\"\r\nimport MediaList from \"./containers/Gallery/components/MediaList\"\r\nimport useGalleryList from \"./containers/Gallery/hooks/useGalleryList\"\r\nimport QuitPrompt from \"./components/Others/QuitPrompt\"\r\nimport AcademicClassSelector from \"./components/Selectors/AcademicClassSelector\"\r\nimport SchoolList from \"./containers/DistrictSchools/views/SchoolList\"\r\nimport { INIT_AMPLITUDE_KEY } from \"./utils/constants\"\r\n\r\nimport store from \"./store\"\r\nimport { api, apiUpload } from \"./services/api\"\r\nimport editorConfig from \"./configs/editorConfig\"\r\nimport {\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n GOOGLE_RECAPTCHA_KEY,\r\n EMOTIONS,\r\n QUESTION_TYPES_OPTIONS,\r\n TAB_COLORS\r\n} from \"./utils/constants\"\r\n\r\nimport firstCheckToken from \"./utils/firstCheckToken\"\r\nimport canAccessRoute from \"./utils/canAccessRoute\"\r\nimport { getInfo } from \"./services/accountService\"\r\n\r\nimport { isInViewport } from \"./utils/domHelpers\"\r\nimport debounce from \"./utils/debounce\"\r\nimport getFileUrl from \"./utils/getFileUrl\"\r\nimport getTextFromHTML from \"./utils/getTextFromHTML\"\r\nimport utcToLocalTime from \"./utils/utcToLocalTime\"\r\n\r\nimport {\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload\r\n} from \"./services/fileServices\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setUser,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude\r\n} from \"./redux/commons/action\"\r\nimport { setClassList } from \"./redux/classes/action\"\r\nimport { setConferenceRubricList } from \"./redux/conferenceRubrics/action\"\r\nimport { setSuggestionList } from \"./redux/suggestionBanks/action\"\r\nimport { setStrategyList } from \"./redux/learningStrategies/action\"\r\nimport { setSubjectList } from \"./redux/subjects/action\"\r\nimport { setLearningSupportCategoryList } from \"./redux/learningSupportCategories/action\"\r\nimport { setQuestionList } from \"./redux/questionBanks/action\"\r\nimport { setBadgeList } from \"./redux/badges/action\"\r\nimport { setSemesterList } from \"./redux/semester/action\"\r\nimport { setAssignmentList } from \"./redux/assignment/action\"\r\nimport { setGoalExampleList } from \"./redux/goalExamples/action\"\r\nimport { setUserList, setStudentList } from \"./redux/users/action\"\r\nimport { setFeedbackList } from \"./redux/feedback/action\"\r\nimport { setAssessmentList } from \"./redux/assessments/action\"\r\nimport { setMyStudent } from \"./redux/teacher/myStudent/action\"\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./redux/questionByCategory/action\"\r\nimport { setImproveMyClass } from \"./redux/improveMyClass/action\"\r\nimport { setAssistantList } from \"./redux/assistants/action\"\r\nimport { setMailCategory } from \"./redux/mailCategories/action\"\r\nimport { setReflectionList } from \"./redux/reflectionForms/action\"\r\nimport { setReflectionResultList } from \"./redux/reflectionResults/action\"\r\nimport { setSessionTemplateList } from \"./redux/sessionTemplates/action\"\r\nimport { setSessionTemplateGeneralClassList } from \"./redux/sessionTemplateGeneralClasses/action\"\r\nimport { setTutorialScreenList } from \"./redux/tutorialScreen/action\"\r\nimport { setCustomAlertList } from \"./redux/customAlert/action\"\r\nimport { setCertificateList } from \"./redux/certificate/action\"\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./redux/sessionPlayers/action\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./redux/dashboard/action\"\r\nimport { setSchoolBlankDayList } from \"./redux/schoolBlankDays/action\"\r\n\r\nimport { Filter } from \"./types/Filter\"\r\nimport { Conversation } from \"./types/Conversation\"\r\nimport { Message } from \"./types/Message\"\r\nimport { ConversationMember } from \"./types/ConversationMember\"\r\nimport { NavbarTab } from \"./types/Dashboard\"\r\n\r\nimport generateRandomString from \"./utils/generateRandomString\"\r\n\r\nimport Images from \"./assets/Images\"\r\nimport { setQuestionCateList } from \"./redux/questionCategory/action\"\r\nimport {\r\n setDataPlayer,\r\n answerQuestionDataPlayer\r\n} from \"./redux/dataPlayer/action\"\r\nimport { setFilterWidget } from \"./redux/widget/action\"\r\nimport { setBandScoreList } from \"./redux/bandScores/action\"\r\nimport { setStudentIdSelectedByTeacher } from \"./redux/navMobile/action\"\r\nimport { setEnableIEP, setEnableSurvey, setConversationOneToOne, setLanguage } from \"./redux/commons/action\"\r\n\r\nimport useFilters from \"./hooks/useFilters\"\r\nimport amplitude from \"amplitude-js\"\r\nconst amplitudeClient = amplitude.getInstance()\r\n\r\nexport {\r\n // components && views\r\n Login,\r\n Dashboard,\r\n TheLayout,\r\n TheContent,\r\n NotFound,\r\n EmailTemplateList,\r\n EmailTemplateDetail,\r\n FaqList,\r\n SkillList,\r\n UserList,\r\n UserDetail,\r\n Loading,\r\n NotificationModal,\r\n CommonHeader,\r\n CommonModal,\r\n AddButton,\r\n DeleteButtonIcon,\r\n EditButtonIcon,\r\n LinkEditButton,\r\n ToggleButton,\r\n EmptyDataAlert,\r\n CreatableSelector,\r\n CustomPagination,\r\n SearchBox,\r\n FileInput,\r\n QuitPrompt,\r\n QuestionTypeSelector,\r\n QuestionCategorySelector,\r\n SuggestionCategorySelector,\r\n ErrorHandler,\r\n DetailActionButtons,\r\n RequiredLabel,\r\n StarRatingSelector,\r\n ReactNotification,\r\n NotificationList,\r\n CustomSelector,\r\n UploadFileButton,\r\n SearchBoxContainer,\r\n CustomTab,\r\n CommonAlert,\r\n GalleryList,\r\n MediaList,\r\n useGalleryList,\r\n AcademicClassSelector,\r\n SchoolList,\r\n // store redux\r\n store,\r\n // actions\r\n showMenuBar,\r\n showFontSize,\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setClassList,\r\n setConferenceRubricList,\r\n setSuggestionList,\r\n setStrategyList,\r\n setSubjectList,\r\n setLearningSupportCategoryList,\r\n setQuestionList,\r\n setUserList,\r\n setStudentList,\r\n setBadgeList,\r\n setGoalExampleList,\r\n setSemesterList,\r\n setFeedbackList,\r\n setAssessmentList,\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setReflectionList,\r\n setReflectionResultList,\r\n setEditItemQuesion,\r\n setResetQuestionList,\r\n setMailCategory,\r\n setUser,\r\n setAssignmentList,\r\n setAssistantList,\r\n setSessionTemplateList,\r\n setTutorialScreenList,\r\n setSessionTemplateGeneralClassList,\r\n setCustomAlertList,\r\n setCertificateList,\r\n closeTab,\r\n addTab,\r\n editTab,\r\n clearTab,\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime,\r\n setTurnOffPassWhenChangeMode,\r\n reset,\r\n setImproveMyClass,\r\n setSchoolBlankDayList,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage,\r\n i18n,\r\n useTranslation,\r\n I18nextProvider,\r\n // api\r\n api,\r\n apiUpload,\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload,\r\n // constants\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n QUESTION_TYPES_OPTIONS,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n GOOGLE_RECAPTCHA_KEY,\r\n EMOTIONS,\r\n TAB_COLORS,\r\n // type\r\n Filter,\r\n Conversation,\r\n Message,\r\n ConversationMember,\r\n NavbarTab,\r\n // configs\r\n editorConfig,\r\n // utils\r\n generateRandomString,\r\n isInViewport,\r\n debounce,\r\n firstCheckToken,\r\n canAccessRoute,\r\n getFileUrl,\r\n getTextFromHTML,\r\n utcToLocalTime,\r\n // services\r\n getInfo,\r\n // assets\r\n Images,\r\n setQuestionCateList,\r\n setMyStudent,\r\n setDataPlayer,\r\n answerQuestionDataPlayer,\r\n setCurrentStudentUserId,\r\n setCurrentStudentId,\r\n setCurrentStudentName,\r\n setFilterWidget,\r\n setBandScoreList,\r\n setStudentIdSelectedByTeacher,\r\n // hooks\r\n useFilters,\r\n ScrollToTop,\r\n initAmplitude,\r\n amplitudeClient,\r\n INIT_AMPLITUDE_KEY\r\n}\r\n"],"names":["DEFAULT_LANGUAGE","localStorage","getItem","console","log","lang","i18n","use","initReactI18next","init","resources","us","translation","lang_us","uk","lang_uk","lng","fallbackLng","keySeparator","interpolation","escapeValue","style","fontSize","ErrorHandler","text","React","className","containerStyle","height","backgroundColor","borderRadius","marginBottom","position","inputStyle","paddingRight","eyeIconStyle","right","PasswordInput","isShowPassword","togglePasswordVisible","onChange","Input","type","name","placeholder","required","onClick","title","TINY_MCE_API_KEY","GOOGLE_RECAPTCHA_KEY","INIT_AMPLITUDE_KEY","ACCESS_TOKEN","DEFAULT_PAGE_SIZE_VALUES","label","value","DEFAULT_PAGE_SIZE","DEFAULT_FILTER","searchString","currentPage","pageSize","sortBy","sortOrder","COLORS","DANGER","WARNING","SUCCESS","INFO","DATE_FORMAT","DATE_RESULT","FULL_DATE_RESULT","DATE_MIN_VALUE","LICENSE_AGGRID","BASE_URL","windowUrl","window","location","href","url","split","QUESTION_TYPES_OPTIONS","QUESTION_TYPES","SINGLE_CHOICE","MULTIPLE_CHOICE","TEXT_INPUT","SLIDER","PROGRESS_BAR","STAR_RATING","TEXT_INPUT_WITH_SUGGESTIONS","EMOTIONAL","SUMMARIZE","RATING","LEARNING_STRATEGY","STAR_OPTIONS","ANSWER_EDITOR_HEIGHT","USER_ROLES","CHAT_CHANNEL","NOTIFICATION_CHANNEL","NEW_NOTIFICATION","DEFAULT_IMAGE_URL","EMOTIONS","TAB_COLORS","reflect","goal","ROLES","ADMIN","TEACHER","ASSISTANT","EDUTEACHER","STUDENT","PARENT","err","setLoading","createAction","setModal","setUser","setSidebar","setAlert","reset","showMenuBar","showFontSize","setEnableIEP","setEnableSurvey","setConversationOneToOne","setLanguage","setCurrentStudentId","setCurrentStudentUserId","setCurrentStudentName","setTurnOffPassWhenChangeMode","initAmplitude","params","Object","keys","filter","key","map","Array","isArray","i","encodeURIComponent","join","api","axios","create","baseURL","timeout","headers","paramsSerializer","encodeParams","apiUpload","forEach","interceptors","request","config","token","getAccessToken","Authorization","error","Promise","reject","response","status","includes","userEmail","hostName","hostname","amplitude","getInstance","logEvent","user_id","domain","resetSessionId","setItem","ACCOUNT_URL","USER_URL","TEACHER_URL","logIn","data","post","checkToken","getInfo","get","forgotPassword","checkResetToken","resetPassword","checkUserGoogle","body","getAllLoginTeacher","param","getGoogleClientId","registerUserStudent","defaultInfo","email","password","captcha","rememberMe","HOMEPAGE_TEACHER","HOMEPAGE_STUDENT","HOMEPAGE_ADMIN","HOMEPAGE_PARENT","HOMEPAGE_DISTRICT","HOMEPAGE_EDU_TEACHER","TITLE","useLogin","dispatch","useDispatch","history","useHistory","useState","openLogin","setOpenLogin","isLoginGoogle","setIsLoginGoogle","googleClientId","setGoogleClientId","infoUser","setInfoUser","toggle","useCallback","setIsShowPassword","useEffect","document","push","getInfoGoogle","isDistrict","host","userLogin","res","id","firstName","lastName","roles","profileImageFileName","isLoginFirst","includeReferrer","includeUtm","message","removeItem","fnIsCheckLogin","clickHandler","checkUser","clickHandlerRes","dataUser","accessToken","submitLogin","teacherId","imageUrl","fullName","dataLogin","CustomSelector","defaultValue","options","isDisabled","scrollBottom","rest","initValue","find","option","Select","menuPlacement","BlockSelectTeacher","openModal","onSubmit","setOpenModal","modal","teachers","setTeachers","setSearchString","teacherEmail","setTeacherEmail","isLoading","useRef","loadData","current","clearTimeout","trim","length","setTimeout","teacher","onChangeTeacher","e","customSelector","control","styles","Modal","isOpen","ModalHeader","ModalBody","inputValue","onInputChange","ModalFooter","Button","color","forwardRef","schema","yup","BlockLogin","useGoogleReCaptcha","executeRecaptcha","handleVerify","onSuccessGoogle","profileObj","familyName","givenName","googleId","infoLogin","Fragment","Formik","initialValues","enableReinitialize","validationSchema","values","formikProps","handleChange","handleBlur","handleSubmit","touched","errors","setFieldValue","emailError","passwordError","Row","Col","Form","src","FormGroup","onBlur","target","GoogleReCaptcha","action","onVerify","GoogleLogin","clientId","buttonText","onSuccess","cookiePolicy","Link","to","lg","md","DASHBOARD","LOGIN","useForgotPassword","isShowNewPassword","setIsShowNewPassword","isShowReTypePassword","setIsShowReTypePassword","validLink","setValidLink","forgotPasswordRequest","checkResetTokenRequest","resetPasswordRequest","forgotPasswordSchema","BlockForgetPassword","Label","reEnterPassword","resetPasswordSchema","test","parent","BlockResetPassword","query","URLSearchParams","useLocation","search","LOGIN_TITLE","FORGOT_PASSWORD_TITLE","RESET_PASSWORD_TITLE","Login","props","isLogin","isForgotPassword","isResetPassword","xs","GoogleReCaptchaProvider","useRecaptchaNet","reCaptchaKey","scriptProps","async","defer","appendTo","QuoteContent","IconContent","srcIcon","content","alt","dangerouslySetInnerHTML","__html","contents","scrIcon","ContentHomePage","HOME_ADMIN","HOME_TEACHER","HOME_STUDENT","DASHBOARD_TITLE","ROOT_TITLE","Dashboard","setIsOpen","user","useSelector","state","common","Navbar","light","expand","NavbarBrand","GiHamburgerMenu","Collapse","navbar","Nav","NavItem","NavLink","Images","USER_CONVERSATION_AVATAR","GROUP_CONVERSATION_AVATAR","LOGO","LOGO_HEADER","LOGO_MINIMIZED","DOCS_IMAGE","AUDIO_IMAGE","PHOTO_IMAGE","VIDEO_IMAGE","FOLDER_IMAGE","UNKNOW_IMAGE","TheSidebar","navigation","show","sidebarShow","toggleMinimize","setToggleMinimize","signOut","CSidebar","onShowChange","val","minimize","CSidebarBrand","CgMenuRight","CSidebarNav","CCreateElement","items","components","CSidebarNavDivider","CSidebarNavDropdown","CSidebarNavItem","CSidebarNavTitle","CSidebarFooter","RiLogoutBoxRLine","setNotification","setUnReadNotification","updateUnReadNotification","NOTIFICATION_URL","getUnReadNotifications","updateStatusNotification","put","updateAllStatus","useUnReadNotification","userId","pusherCluster","pusherKey","unReadNotification","notification","getData","isChat","pathname","pusher","Pusher","cluster","channel","subscribe","bind","unsubscribe","NotificationButton","isAdmin","useUnreadNotification","openNotification","features","open","getFileUrl","fileName","DEFAULT_USER_AVATAR","ADMIN_ROLE","TEACHER_ROLE","USER_DETAIL_URL","TheHeaderDropdown","isTeacher","goToTeacherPanel","dropdownOpen","setDropdownOpen","prevState","avatarUrl","Dropdown","DropdownToggle","DropdownMenu","DropdownItem","TheLanguageDropdown","defaultLanguage","useTranslation","language","setItemLanguage","changeLanguageApp","changeLanguage","displayCurrentLang","textTransform","display","alignItems","BsChevronDown","width","TheHeader","CHeader","withSubheader","CHeaderBrand","CHeaderNav","NotFound","loading","TheContent","routes","dashboard","CContainer","fluid","Suspense","fallback","Switch","route","idx","Route","path","exact","component","memo","loadingStyle","minWidth","minHeight","top","left","zIndex","justifyContent","Loading","role","firstCheckToken","tokenStatus","canAccess","userRoles","componentRoles","intersects","TheLayout","t","isNotification","authRoutes","useMemo","canAccessRoute","authNavigations","item","nav","checkAuthentication","loadInfo","resetAuth","info","buttonTextStyle","fontWeight","buttonStyle","AddButton","FaPlus","DeleteButtonIcon","FaTrashAlt","LinkEditButton","EmptyDataAlert","Alert","defaultProps","CustomPagination","filters","changePage","totalRecordCount","changePageSize","input","setInput","toString","Pagination","PaginationItem","PaginationLink","previous","tag","disabled","onKeyUp","keyCode","parseInt","next","setEmailTemplateList","setMailCategory","EMAIL_TEMPLATE_URL","getById","update","remove","MAIL_CATEGORY_URL","useFilters","setFilters","changeFilters","updatedFilters","newFilters","CREATE_TEMPLATE_URL","useEmailTemplateList","emailTemplateList","emailTemplate","totalItems","mailCategoryList","mailCategory","getCategory","removeData","onConfirm","goToDetail","header","EmailTemplateList","onRemove","Table","bordered","hover","striped","responsive","size","record","subject","category","format","Date","createdAt","bottom","borderTop","marginTop","marginLeft","padding","DetailActionButtons","confirmText","onCancel","form","AddButtonIcon","defaultparams","meaning","MailSubject","isResetPasswordTemplate","MailCategorySelector","fetchMailCategory","arrCategory","RequiredLabel","quitAlertMessage","QuitPrompt","when","Prompt","AttachmentFile","UPLOAD_FILE_URL","SYSTEM_PROFILE","SYSTEM_STUDENT_BADGE","SYSTEM_CERTIFICATE","SYSTEM_EMAIL","SYSTEM_QUESTION","SYSTEM_ANSWER","SYSTEM_TUTORIAL","CUSTOM_KEY","DELETE_FILE","DELETE_FOLDER","CREATE_FOLDER","RENAME_FILE","uploadFile","formData","systemStudentBadge","systemCertificateUpload","systemProfileUpload","systemEmailUpload","systemQuestionUpload","systemAnswerUpload","systemTutorialUpload","customKeyUpload","deleteFile","deleteFolder","createFolder","prefix","folderName","renameFile","menubar","force_br_newlines","force_p_newlines","branding","convert_urls","plugins","toolbar","paste_data_images","images_upload_handler","blobInfo","success","imageFile","FormData","append","blob","filename","question","answer","tutorial","media_live_embeds","file_picker_callback","cb","createElement","setAttribute","onchange","file","files","click","editorConfig","categoryId","attachments","EMAIL_TEMPLATE_LIST_URL","MAX_FILES_SIZE","useEmailTemplateDetail","editorRef","emailTemplateDetail","setEmailTemplateDetail","edited","setEdited","setEditedTrue","removedFiles","setRemovedFiles","fileUpload","setFileUpload","editor","execCommand","setEditorRef","node","addParams","backToList","confirmData","uploadFiles","fileData","newAttachments","onAttachFile","inputs","getElementsByClassName","newInput","emailDetail","getElementById","addEventListener","updateAttachment","totalSize","attachmentInputs","attachmentInput","some","inputId","removeAttachment","thisInput","newRemovedFile","removed","promises","all","comment","CREATE_TEMPLATE_HEADER","EDIT_TEMPLATE_HEADER","EmailTemplateDetail","useParams","Editor","ref","apiKey","initialValue","onEditorChange","attachment","a","index","MailParam","c","CommonModal","children","cancelText","noFooter","setEditedFalse","showEditedWarningModal","onToggle","isShowConfirm","cancel","useImperativeHandle","FaqDetailModal","faqDetail","actions","resetForm","rows","setFaqList","FAQ_URL","useFaqList","faqList","faqs","useFaqDetail","setId","setFaqDetail","FaqList","faqId","SKILL_URL","SkillSelector","skillList","setSkillList","fetchSkill","arrSkill","description","SkillDetailModal","skillDetail","parentSkillId","useSkillList","skills","useSkillDetail","setSkillDetail","SkillList","skillId","setUserList","setStudentList","CHANGE_PASSWORD","EDU_USER_URL","changePassword","forgotChangePassword","CREATE_USER_URL","useUserList","queryName","userList","users","setFullName","reDirectDetailPage","SearchBox","onSearch","searchInputStyle","SearchBoxContainer","time","FORMAT","moment","utc","local","UserList","differenceInCalendarYears","dateOfBirth","isActive","utcToLocalTime","createTime","MAX_FILE_SIZE","UploadFileButton","maxWidth","maxHeight","setFile","canDelete","onDelete","isCheckFeedBack","onAddImage","imagePreviewUrl","setImagePreviewUrl","imageStyle","imageSrc","handleImageChange","preventDefault","reader","FileReader","newFile","onloadend","result","readAsDataURL","imagePreviewContainer","accept","htmlFor","tabIndex","MdAttachFile","USER_LIST_URL","useUserDetail","userDetail","setUserDetail","then","alert","confirmChangePassword","userSchema","of","min","changePasswordSchema","oldPassword","newPassword","confirmedNewPassword","CREATE_USER","EDIT_USER_HEADER","UserDetail","initialValueForm","getFile","origin","onResetPw","formProps","toggleRoles","r","teacherAssistantRoles","DatePicker","todayButton","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","selected","toDate","placeholderText","customInput","CustomInput","checked","schemaChangePassword","ScrollToTop","scrollTo","modalInfo","NotificationModal","headerStyle","confirm","fade","paddingBottom","headerTextStyle","textAlign","CommonHeader","rootHeader","EditButtonIcon","FaRegEdit","DropdownIndicator","CreatableSelector","handleInputChange","handleKeyDown","Creatable","isClearable","isMulti","menuIsOpen","onKeyDown","QuestionTypeSelector","CATEGORY_URL","SuggestionCategorySelector","categoryList","setCategoryList","fetchCategory","QuestionCategorySelector","getCategoryList","StarRatingSelector","ACTIVE_COLOR","INACTIVE_COLOR","ToggleButton","textLeft","textRight","isLeft","clickLeft","clickRight","InputFile","icon","callback","handleFileChange","ReactNotification","NotificationStatusSelector","menu","provided","defaultFilters","isRead","useNotificationList","notificationList","toggleUpdateAllStatus","setToggleUpdateAllStatus","objectValue","viewNotification","source","extraData","Number","JSON","parse","updateNotification","updateAll","Error","ICON_SIZE","NotificationList","AiOutlineEye","CustomTabs","tabs","renderContent","activeTab","indexOf","xl","TabContent","TabPane","tabId","CommonAlert","onDismiss","ActionModal","targetMedia","MediaNav","isLibrary","step","breadcumb","currentPrefix","handleSelectFile","handleCreateFolder","handleRenameFile","handleGoBack","handleDownloadMedia","handleDeleteMediaOrFolder","showErrorAlert","inputFile","renderGroupButtons","FaArrowLeft","isFolder","FaDownload","FaTrash","FaEdit","FaFolderPlus","FaFileUpload","event","MediaType","images","videos","docs","audios","getTypeByExtension","extension","IMAGE","VIDEO","DOC","AUDIO","UNKNOW","getMediaThumbnail","media","Media","isTarget","thumbnail","Card","CardImg","CardBody","CardTitle","Filter","queryTypes","selectQueryTypes","sm","types","op","setGallery","setTargetMedia","GALLERY_URL","defaultFilter","useGalleryList","mediaList","gallery","formDataMediaType","assign","link","router","changeRouter","handleOpenFolder","temp","splice","pop","handleSelectMedia","undefined","customKeyUploadEffect","customKey","slice","breadcrumb","subLinks","_err","MediaList","renderList","onDoubleClick","CardHeader","MediaDetail","controls","CardText","toUpperCase","GalleryList","CLASS_URL","AcademicClassSelector","classes","setClasses","SchoolList","this","global","ponyfill","initialState","currentStudentId","currentStudentUserId","currentStudentName","turnOffPassWhenChangeMode","menuBar","defaultFontSize","isEnableIEP","isEnableSurvey","isConversationOneToOne","student_id","page","part","iep_date","saved","first_login","duration_since","last_page","commonReducer","createReducer","builder","addCase","payload","_state","_action","eventProperties","setClassList","classList","classReducer","setConferenceRubricList","conferenceRubricList","conferenceRubricReducer","emailTemplateReducer","setSuggestionList","suggestionList","suggestionBankReducer","setStrategyList","strategyList","learningStrategyReducer","setSubjectList","subjectList","setLearningSupportCategoryList","learningSupportCategoryList","setQuestionList","questionList","questionBankReducer","setBadgeList","badgeList","setSemesterList","semesterList","setAssignmentList","assignmentList","setGoalExampleList","goalExampleList","studentList","setFeedbackList","feedbackList","setAssessmentList","initState","assessmentList","setReflectionList","reflectionList","reflectionReducer","setReflectionResultList","reflectionResultList","setQuestionByCategory","setSelectQuestion","setUnSelectQuestion","setMoveItemQuestion","setEditItemQuesion","setResetQuestionList","questionByCategoryList","selectedQuestions","selectQuestion","mergeArrayUniqueQuestion","array1","array2","ids","Set","d","arrMerged","has","questionCategoryReducer","sub","findIndex","old_index","old_index1","setQuestionCateList","questionCateList","questionCateReducer","setMyStudent","myStudentList","setAssistantList","assistantList","assistantReducer","setSessionTemplateList","sessionTemplateList","sessionTemplateReducer","setSessionTemplateGeneralClassList","sessionTemplateGeneralClassList","sessionTemplateGeneralClassReducer","setTutorialScreenList","tutorialScreenList","tutorialScreenReducer","setCustomAlertList","customAlertList","addTab","closeTab","editTab","clearTab","dashboardReducer","tab","stringify","Boolean","editingTab","changeNote","changeTags","answerQuestion","setSessionPlayer","setStartTime","sessionId","session","studentId","duration","conferenceRubric","studentDefaultQuestions","teacherDefaultQuestions","additionalQuestions","results","startTime","sessionPlayerReducer","isConfidential","teacherResult","isTeacherResult","teacherResultCloner","existedNote","notes","note","tags","questionId","resultCloner","existedResponse","questionResponses","setDataPlayer","answerQuestionDataPlayer","questions","subQuestions","answers","questionResponse","dataPlayer","questionResponseCloner","setCertificateList","certificateList","setImproveMyClass","improveMyClassList","setFilterWidget","filterWidget","widgetReducer","setBandScoreList","bandScoreList","setSchoolBlankDayList","schoolBlankDayList","setStudentIdSelectedByTeacher","studentIdSelectedByTeacher","navMobileReducer","rootReducer","combineReducers","conferenceRubrics","suggestionBank","learningStrategy","subjects","learningSupportCategories","questionBank","badges","semester","goalExamples","reflections","reflectionResults","feedbacks","assessments","questionByCategory","questionCate","myStudent","assignments","assistants","sesstionTemplates","sessionTemplateGeneralClasses","tutorialScreens","customAlerts","sessionPlayer","certificate","improveMyClass","widget","bandScores","schoolBlankDays","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","concat","logger","isInViewport","el","rect","getBoundingClientRect","innerHeight","documentElement","clientHeight","innerWidth","clientWidth","debounce","wait","args","getTextFromHTML","htmlString","p","innerHTML","innerText","Math","random","substring","amplitudeClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/i18n.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/components/Alerts/ErrorHandler.tsx","../src/components/Inputs/PasswordInput.tsx","../src/utils/constants.ts","../src/utils/getAccessToken.ts","../src/redux/commons/action.ts","../src/utils/encodeParams.ts","../src/services/api.ts","../src/services/accountService.ts","../src/containers/Login/hooks/useLogin.ts","../src/components/Selectors/CustomSelector.tsx","../src/containers/Login/views/block/BlockSelectTeacher.tsx","../src/containers/Login/views/block/BlockLogin.tsx","../src/containers/Login/hooks/useForgotPassword.ts","../src/containers/Login/views/block/BlockForgetPassword.tsx","../src/containers/Login/views/block/BlockResetPassword.tsx","../src/containers/Login/views/Login.tsx","../src/containers/Login/views/block/QuoteContent.tsx","../src/containers/Login/views/block/IconContent.tsx","../src/containers/Login/views/block/ContentHomePage.tsx","../src/containers/Login/views/Dashboard.tsx","../src/assets/Images.ts","../src/layouts/TheSidebar.tsx","../src/redux/notifications/action.ts","../src/services/notificationService.ts","../src/containers/Notifications/hooks/useUnreadNotification.ts","../src/containers/Notifications/components/NotificationButton.tsx","../src/utils/getFileUrl.ts","../src/layouts/TheHeaderDropdown.tsx","../src/layouts/TheLanguageDropdown.tsx","../src/layouts/TheHeader.tsx","../src/containers/Commons/NotFound.tsx","../src/layouts/TheContent.tsx","../src/components/Loading/Loading.tsx","../src/utils/firstCheckToken.ts","../src/utils/canAccessRoute.ts","../src/layouts/TheLayout.tsx","../src/components/Buttons/AddButton.tsx","../src/components/Buttons/DeleteButtonIcon.tsx","../src/components/Buttons/LinkEditButton.tsx","../src/components/Alerts/EmptyDataAlert.tsx","../src/components/Pagination/CustomPagination.tsx","../src/redux/emailTemplates/action.ts","../src/redux/mailCategories/action.ts","../src/services/emailTemplateService.ts","../src/services/mailCategoryService.ts","../src/hooks/useFilters.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateList.ts","../src/containers/EmailTemplate/views/EmailTemplateList.tsx","../src/components/Buttons/DetailActionButtons.tsx","../src/components/Buttons/AddButtonIcon.tsx","../src/containers/EmailTemplate/components/MailParam.tsx","../src/components/Selectors/MailCategorySelectors.tsx","../src/components/Labels/RequiredLabel.tsx","../src/components/Others/QuitPrompt.tsx","../src/containers/EmailTemplate/components/AttachmentFile.tsx","../src/services/fileServices.ts","../src/configs/editorConfig.ts","../src/containers/EmailTemplate/hooks/useEmailTemplateDetail.ts","../src/containers/EmailTemplate/configs/emailTemplateSchema.ts","../src/containers/EmailTemplate/views/EmailTemplateDetail.tsx","../src/components/Modals/CommonModal.tsx","../src/containers/Faq/components/FaqDetailModal.tsx","../src/redux/faqs/action.ts","../src/services/faqService.ts","../src/containers/Faq/hooks/useFaqList.ts","../src/containers/Faq/hooks/useFaqDetail.ts","../src/containers/Faq/views/FaqList.tsx","../src/services/skillService.ts","../src/containers/Skill/components/SkillSelector.tsx","../src/containers/Skill/components/SkillDetailModal.tsx","../src/redux/skills/action.ts","../src/containers/Skill/hooks/useSkillList.ts","../src/containers/Skill/hooks/useSkillDetail.ts","../src/containers/Skill/views/SkillList.tsx","../src/redux/users/action.ts","../src/services/userService.ts","../src/containers/User/hooks/useUserList.ts","../src/components/Inputs/SearchBox.tsx","../src/components/Inputs/SearchBoxContainer.tsx","../src/utils/utcToLocalTime.ts","../src/containers/User/views/UserList.tsx","../src/components/Buttons/UploadFileButton.tsx","../src/containers/User/hooks/useUserDetail.ts","../src/containers/User/configs/userSchema.ts","../src/containers/User/configs/changePasswordSchema.ts","../src/containers/User/views/UserDetail.tsx","../src/components/Scroll/ScrollToTop.tsx","../src/components/Modals/NotificationModal.tsx","../src/components/Headers/CommonHeader.tsx","../src/components/Buttons/EditButtonIcon.tsx","../src/components/Selectors/CreatableSelector.tsx","../src/components/Selectors/QuestionTypeSelector.tsx","../src/services/suggestionCategoryService.ts","../src/components/Selectors/SuggestionCategorySelector.tsx","../src/services/questionCategoryService.ts","../src/components/Selectors/QuestionCategorySelector.tsx","../src/components/Selectors/StarRatingSelector.tsx","../src/components/Buttons/ToggleButton.tsx","../src/components/Inputs/FileInput.tsx","../src/components/Alerts/ReactNotification.tsx","../src/containers/Notifications/components/NotificationStatusSelector.tsx","../src/containers/Notifications/hooks/useNotificationList.ts","../src/containers/Notifications/views/NotificationList.tsx","../src/components/Tabs/CustomTab.tsx","../src/components/Alerts/CommonAlert.tsx","../src/containers/Gallery/components/ActionModal.tsx","../src/containers/Gallery/components/MediaNav.tsx","../src/containers/Gallery/constants/gallery.types.ts","../src/containers/Gallery/extensions/helpers.ts","../src/containers/Gallery/components/Media.tsx","../src/containers/Gallery/components/Filter.tsx","../src/redux/gallery/action.ts","../src/services/galleryService.ts","../src/containers/Gallery/hooks/useGalleryList.ts","../src/containers/Gallery/components/MediaList.tsx","../src/containers/Gallery/components/MediaDetail.tsx","../src/containers/Gallery/views/GalleryList.tsx","../src/services/classService.ts","../src/components/Selectors/AcademicClassSelector.tsx","../src/containers/DistrictSchools/views/SchoolList.tsx","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/symbol-observable/es/index.js","../node_modules/redux/es/redux.js","../src/redux/commons/reducer.ts","../src/redux/classes/action.ts","../src/redux/classes/reducer.ts","../src/redux/conferenceRubrics/action.ts","../src/redux/conferenceRubrics/reducer.ts","../src/redux/faqs/reducer.ts","../src/redux/skills/reducer.ts","../src/redux/emailTemplates/reducer.ts","../src/redux/suggestionBanks/action.ts","../src/redux/suggestionBanks/reducer.ts","../src/redux/learningStrategies/action.ts","../src/redux/learningStrategies/reducer.ts","../src/redux/subjects/action.ts","../src/redux/subjects/reducer.ts","../src/redux/learningSupportCategories/action.ts","../src/redux/learningSupportCategories/reducer.ts","../src/redux/questionBanks/action.ts","../src/redux/questionBanks/reducer.ts","../src/redux/badges/action.ts","../src/redux/badges/reducer.ts","../src/redux/semester/action.ts","../src/redux/semester/reducer.ts","../src/redux/assignment/action.ts","../src/redux/assignment/reducer.ts","../src/redux/goalExamples/action.ts","../src/redux/goalExamples/reducer.ts","../src/redux/users/reducer.ts","../src/redux/feedback/action.ts","../src/redux/feedback/reducer.ts","../src/redux/assessments/action.ts","../src/redux/assessments/reducer.ts","../src/redux/reflectionForms/action.ts","../src/redux/reflectionForms/reducer.ts","../src/redux/reflectionResults/action.ts","../src/redux/reflectionResults/reducer.ts","../src/redux/questionByCategory/action.ts","../src/redux/questionByCategory/reducer.ts","../src/redux/mailCategories/reducer.ts","../src/redux/questionCategory/action.ts","../src/redux/questionCategory/reducer.ts","../src/redux/notifications/reducer.ts","../src/redux/teacher/myStudent/action.ts","../src/redux/teacher/myStudent/reducer.ts","../src/redux/assistants/action.ts","../src/redux/assistants/reducer.ts","../src/redux/sessionTemplates/action.ts","../src/redux/sessionTemplates/reducer.ts","../src/redux/sessionTemplateGeneralClasses/action.ts","../src/redux/sessionTemplateGeneralClasses/reducer.ts","../src/redux/tutorialScreen/action.ts","../src/redux/tutorialScreen/reducer.ts","../src/redux/customAlert/action.ts","../src/redux/customAlert/reducer.ts","../src/redux/gallery/reducer.ts","../src/redux/dashboard/action.tsx","../src/redux/dashboard/reducer.tsx","../src/redux/sessionPlayers/action.ts","../src/redux/sessionPlayers/reducer.ts","../src/redux/dataPlayer/action.ts","../src/redux/dataPlayer/reducer.ts","../src/redux/certificate/action.ts","../src/redux/certificate/reducer.ts","../src/redux/improveMyClass/action.ts","../src/redux/improveMyClass/reducer.ts","../src/redux/widget/action.ts","../src/redux/widget/reducer.ts","../src/redux/bandScores/action.ts","../src/redux/bandScores/reducer.ts","../src/redux/schoolBlankDays/action.ts","../src/redux/schoolBlankDays/reducer.ts","../src/redux/navMobile/action.ts","../src/redux/navMobile/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/utils/domHelpers.ts","../src/utils/debounce.ts","../src/utils/getTextFromHTML.ts","../src/utils/generateRandomString.ts","../src/index.tsx"],"sourcesContent":["import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport lang_us from \"./lang/lang_us.json\";\r\nimport lang_uk from \"./lang/lang_uk.json\";\r\n\r\nconst DEFAULT_LANGUAGE = localStorage.getItem(\"language\") !== null ? localStorage.getItem(\"language\") : \"uk\"\r\nconsole.log({ lang : localStorage.getItem(\"language\") })\r\n\r\ni18n.use(initReactI18next).init({\r\n resources: {\r\n us: {\r\n translation: lang_us\r\n },\r\n uk: {\r\n translation: lang_uk\r\n }\r\n },\r\n lng: DEFAULT_LANGUAGE,\r\n fallbackLng: DEFAULT_LANGUAGE,\r\n keySeparator: false,\r\n interpolation: {\r\n escapeValue: false\r\n }\r\n});\r\n\r\nexport default i18n;","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import React, { FC } from \"react\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst style = {\r\n fontSize: \"0.85rem\"\r\n}\r\n\r\nconst ErrorHandler: FC<Props> = ({ text }: Props) => {\r\n return <p \r\n className=\"text-danger\"\r\n style={style}\r\n >\r\n {text}\r\n </p>\r\n} \r\n\r\nexport default ErrorHandler","import React, { CSSProperties, FC } from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n isShowPassword: boolean\r\n togglePasswordVisible: any\r\n onChange: any\r\n}\r\n\r\nconst containerStyle: CSSProperties = {\r\n height: \"40px\",\r\n backgroundColor: \"#f7f9fc\",\r\n borderRadius: \"4px\",\r\n marginBottom: \"5px\",\r\n position: \"relative\"\r\n}\r\n\r\nconst inputStyle: CSSProperties = {\r\n backgroundColor: \"#f7f9fc\",\r\n paddingRight: \"50px\"\r\n}\r\n\r\nconst eyeIconStyle: CSSProperties = {\r\n fontSize: \"20px\",\r\n position: \"absolute\",\r\n right: \"10px\"\r\n}\r\n\r\nconst PasswordInput: FC<Props> = ({\r\n isShowPassword,\r\n togglePasswordVisible,\r\n onChange\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center w-100\" style={containerStyle}>\r\n <Input\r\n className=\"border password-input\"\r\n style={inputStyle}\r\n type={isShowPassword ? \"text\" : \"password\"}\r\n name=\"password\"\r\n onChange={onChange}\r\n placeholder=\"Password\"\r\n required\r\n />\r\n <i\r\n className={`far ${\r\n isShowPassword ? \"fa-eye-slash\" : \"fa-eye\"\r\n } mx-2 cursor-pointer`}\r\n style={eyeIconStyle}\r\n onClick={() => togglePasswordVisible()}\r\n title={isShowPassword ? \"Hide\" : \"Show\"}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default PasswordInput\r\n","import { Filter } from \"../types/Filter\"\r\n\r\nexport const TINY_MCE_API_KEY =\r\n \"adpshj9swgsscf83gw4gs2f74nx0vicpd5ydka20iqjd7l8r\"\r\n\r\nexport const GOOGLE_RECAPTCHA_KEY = \"6LfNtLUaAAAAAL24lbBV11jS-gBtt1mhtxb4NXs0\"\r\n\r\nexport const INIT_AMPLITUDE_KEY = \"c617d0950cfdcae12953907273a1920f\"\r\n\r\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\r\n\r\nexport const DEFAULT_PAGE_SIZE_VALUES = [\r\n { label: \"10\", value: 10 },\r\n { label: \"20\", value: 20 },\r\n { label: \"30\", value: 30 },\r\n { label: \"50\", value: 50 }\r\n]\r\n\r\nexport const DEFAULT_PAGE_SIZE = {\r\n label: \"10\",\r\n value: 10\r\n}\r\n\r\nexport const DEFAULT_FILTER: Filter = {\r\n searchString: \"\",\r\n currentPage: 1,\r\n pageSize: DEFAULT_PAGE_SIZE.value,\r\n sortBy: \"\",\r\n sortOrder: \"ASC\",\r\n name: \"\"\r\n}\r\n\r\nexport const COLORS = {\r\n DANGER: \"#dc3545\",\r\n WARNING: \"#ffc107\",\r\n SUCCESS: \"#28a745\",\r\n INFO: \"#007bff\"\r\n}\r\n\r\nexport const DATE_FORMAT = \"yyyy-MM-dd\"\r\n\r\nexport const DATE_RESULT = \"dd-MM-yyyy\"\r\n\r\nexport const FULL_DATE_RESULT = \"dd-MM-yyyy HH:mm\"\r\n\r\nexport const FULL_DATE_FORMAT = \"yyyy-MM-dd HH:mm\"\r\n\r\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00\"\r\n\r\nexport const LICENSE_AGGRID =\r\n \"Alhanko&Johnson_BASE23_single_1_Devs__22_November_2020_[v2]_MTYwNjAwMzIwMDAwMA==d452f38afc893671cad92795e95d52a1\"\r\n\r\nexport const BASE_URL = (() => {\r\n const windowUrl = window.location.href\r\n const url = `${windowUrl.split(\"//\")[0]}//${\r\n windowUrl.split(\"//\")[1].split(\"/\")[0]\r\n }`\r\n return url\r\n})()\r\n\r\nexport const QUESTION_TYPES_OPTIONS = [\r\n { label: \"Single choice\", value: \"SingleChoice\" },\r\n { label: \"Multiple choice\", value: \"MultipleChoice\" },\r\n { label: \"Text input\", value: \"TextInput\" },\r\n { label: \"Slider\", value: \"Slider\" },\r\n { label: \"Progress bar\", value: \"ProgressBar\" },\r\n { label: \"Star rating\", value: \"StarRating\" },\r\n {\r\n label: \"Text input with sub questions\",\r\n value: \"TextInputWithSuggestions\"\r\n },\r\n { label: \"Emotional\", value: \"Emotional\" },\r\n { label: \"Summarize\", value: \"Summarize\" },\r\n { label: \"Rating\", value: \"Rating\" },\r\n { label: \"Learning strategy\", value: \"LearningStrategy\" }\r\n]\r\n\r\nexport const QUESTION_TYPES = {\r\n SINGLE_CHOICE: \"SingleChoice\",\r\n MULTIPLE_CHOICE: \"MultipleChoice\",\r\n TEXT_INPUT: \"TextInput\",\r\n SLIDER: \"Slider\",\r\n PROGRESS_BAR: \"ProgressBar\",\r\n STAR_RATING: \"StarRating\",\r\n TEXT_INPUT_WITH_SUGGESTIONS: \"TextInputWithSuggestions\",\r\n EMOTIONAL: \"Emotional\",\r\n SUMMARIZE: \"Summarize\",\r\n RATING: \"Rating\",\r\n LEARNING_STRATEGY: \"LearningStrategy\"\r\n}\r\n\r\nexport const STAR_OPTIONS = [\r\n { label: 2, value: 2 },\r\n { label: 3, value: 3 },\r\n { label: 4, value: 4 },\r\n { label: 5, value: 5 }\r\n]\r\n\r\nexport const ANSWER_EDITOR_HEIGHT = 150\r\n\r\nexport const USER_ROLES = [\"Admin\", \"Assistant\", \"Teacher\", \"General ED teacher\", \"Student\", \"Parent\"]\r\n\r\nexport const CHAT_CHANNEL = \"chat-channel\"\r\nexport const NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nexport const NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\nexport const DEFAULT_IMAGE_URL =\r\n \"https://tleliteracy.com/wp-content/uploads/2017/02/default-avatar.png\"\r\n\r\nexport const EMOTIONS = [\r\n \"Unwell\",\r\n \"Mad\",\r\n \"Stressed\",\r\n \"Easygoing\",\r\n \"Proud\",\r\n \"Inspired\"\r\n]\r\n\r\nexport const TAB_COLORS = {\r\n reflect: \"#c08497\",\r\n goal: \"#00979b\"\r\n}\r\n\r\nexport const ROLES = {\r\n ADMIN: \"Admin\",\r\n TEACHER: \"Teacher\",\r\n ASSISTANT: \"Assistant\",\r\n EDUTEACHER: \"General ED teacher\",\r\n STUDENT: \"Student\",\r\n PARENT: \"Parent\"\r\n}\r\n\r\nexport const NOTIFICATION_ALERT_KEY = \"NOTIFICATION_ALERT_KEY\";","import { ACCESS_TOKEN } from \"./constants\"\r\n\r\nexport default () => {\r\n try {\r\n return localStorage.getItem(ACCESS_TOKEN);\r\n } catch (err) {\r\n return null;\r\n }\r\n}","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { IinitAmplitude } from \"../../types/Payload\"\r\n\r\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\r\n\r\nexport const setModal = createAction<any>(\"common/setModal\")\r\n\r\nexport const setUser = createAction<any>(\"common/setUser\")\r\n\r\nexport const setSidebar = createAction<any>(\"common/setSidebar\")\r\n\r\nexport const setAlert = createAction<any>(\"common/setAlert\")\r\n\r\nexport const reset = createAction<undefined>(\"common/reset\")\r\n\r\nexport const showMenuBar = createAction<any>(\"common/showMenuBar\")\r\n\r\nexport const showFontSize = createAction<any>(\"common/showFontSize\")\r\n\r\nexport const setEnableIEP = createAction<boolean>(\"common/setEnableIEP\")\r\n\r\nexport const setEnableSurvey = createAction<boolean>(\"common/setEnableSurvey\")\r\n\r\nexport const setConversationOneToOne = createAction<boolean>(\"common/setConversationOneToOne\")\r\n\r\nexport const setLanguage = createAction<string>(\"common/setLanguage\")\r\n\r\nexport const setCurrentStudentId = createAction<number>(\r\n \"common/setCurrentStudentId\"\r\n)\r\n\r\nexport const setCurrentStudentUserId = createAction<string>(\r\n \"common/setCurrentStudentUserId\"\r\n)\r\n\r\nexport const setCurrentStudentName = createAction<string>(\r\n \"common/setCurrentStudentName\"\r\n)\r\n\r\nexport const setTurnOffPassWhenChangeMode = createAction<string>(\r\n \"common/setTurnOffPassWhenChangeMode\"\r\n)\r\n\r\nexport const initAmplitude = createAction<IinitAmplitude>(\"common/initAmplitude\")\r\n","export default (params: any) => {\r\n return Object.keys(params)\r\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\r\n .map(key => {\r\n if (Array.isArray(params[key])) {\r\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\r\n }\r\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\r\n }).join('&')\r\n}","import axios, { AxiosInstance } from \"axios\"\r\nimport encodeParams from \"../utils/encodeParams\"\r\nimport { ACCESS_TOKEN, BASE_URL } from \"../utils/constants\"\r\nimport getAccessToken from \"../utils/getAccessToken\"\r\nimport amplitude from \"amplitude-js\"\r\n\r\nexport const api: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 0,\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n },\r\n paramsSerializer: params => {\r\n return encodeParams(params)\r\n }\r\n})\r\n\r\nexport const apiUpload: AxiosInstance = axios.create({\r\n baseURL: BASE_URL,\r\n timeout: 60000,\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\"\r\n }\r\n})\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.request.use(\r\n (config: any) => {\r\n const token = getAccessToken()\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`\r\n }\r\n return config\r\n },\r\n (error: any) => Promise.reject(error)\r\n )\r\n)\r\n;[api, apiUpload].forEach(i =>\r\n i.interceptors.response.use(\r\n response => {\r\n return response\r\n },\r\n error => {\r\n if (error.response.status === 401) {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('learning-plan')) delete localStorage[key];\r\n });\r\n const userEmail = localStorage.getItem(\"USER_EMAIL\") as string;\r\n const hostName = window.location.hostname;\r\n if(userEmail){\r\n amplitude.getInstance().logEvent(\"general: session end\", {user_id: userEmail, domain: hostName})\r\n amplitude.getInstance().resetSessionId();\r\n }\r\n localStorage.setItem(\"USER_EMAIL\",\"\")\r\n window.location.href = \"/login\"\r\n }\r\n if (error.response.status == 403) {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n localStorage.removeItem(\"USER_EMAIL\")\r\n window.location.href = \"/login\"\r\n }\r\n return Promise.reject(error)\r\n }\r\n )\r\n)\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst TEACHER_URL = `${BASE_URL}/api/teacher`\r\n\r\nconst STUDENT_PROFILE = `${BASE_URL}/api/student/profile`\r\n\r\nexport const logIn = (data: any) => api.post(`${ACCOUNT_URL}/login`, data)\r\n\r\nexport const checkToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checktoken`, { token })\r\n\r\nexport const getInfo = () => api.get(`${ACCOUNT_URL}/info`)\r\n\r\nexport const forgotPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotpassword`, data)\r\n\r\nexport const checkResetToken = (token: string) =>\r\n api.post(`${ACCOUNT_URL}/checkResetToken`, { token })\r\n\r\nexport const resetPassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/resetpassword`, data)\r\n\r\nexport const getStudentProfile = () => api.get(`${STUDENT_PROFILE}`)\r\n\r\nexport const logInTwoFactor = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/logintwostep`, data)\r\n\r\nexport const checkUserGoogle = (body: any) =>\r\n api.post(`${USER_URL}/check-user`, body)\r\n \r\nexport const getAllLoginTeacher = (param: any) =>\r\n api.get(`${TEACHER_URL}/get-teacher-login`, {params: param})\r\n\r\nexport const getGoogleClientId = () =>\r\n api.get(`${ACCOUNT_URL}/send-google`)\r\n\r\nexport const registerUserStudent = (body: any) => api.post(`${BASE_URL}/api/User/register-user`, body)\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { ACCESS_TOKEN, INIT_AMPLITUDE_KEY, NOTIFICATION_ALERT_KEY } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\nimport { setLoading, setUser, setAlert } from \"../../../redux/commons/action\"\r\nimport { logIn, checkUserGoogle, registerUserStudent, getGoogleClientId } from \"../../../services/accountService\"\r\nimport amplitude from \"amplitude-js\"\r\n\r\ntype LoginInfo = {\r\n email: string\r\n password: string\r\n captcha: string\r\n rememberMe: boolean\r\n}\r\n\r\nconst defaultInfo: LoginInfo = {\r\n email: \"\",\r\n password: \"\",\r\n captcha: \"\",\r\n rememberMe: false\r\n}\r\n\r\n// const HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_TEACHER = \"/home\"\r\nconst HOMEPAGE_STUDENT = \"/home\"\r\nconst HOMEPAGE_ADMIN = \"/admin/dashboard\"\r\nconst HOMEPAGE_PARENT = \"/parent\"\r\nconst HOMEPAGE_DISTRICT = \"/admin/schools\"\r\nconst HOMEPAGE_EDU_TEACHER = \"/list-student\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useLogin = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const [isLoginGoogle, setIsLoginGoogle] = useState<boolean>(false);\r\n const [googleClientId, setGoogleClientId] = useState<string>(\"\");\r\n const [infoUser, setInfoUser] = useState<any>();\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(\"/\")\r\n getInfoGoogle()\r\n }, [])\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const userLogin = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await logIn(data)\r\n\r\n // if (res.data?.isTwoFactor) {\r\n // history.push(`/2fa?id=${res.data.id}`)\r\n // dispatch(setLoading(false))\r\n // return\r\n // }\r\n const {\r\n token,\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName,\r\n isLoginFirst\r\n } = res.data;\r\n\r\n localStorage.setItem(ACCESS_TOKEN, token)\r\n localStorage.removeItem(NOTIFICATION_ALERT_KEY)\r\n dispatch(\r\n setUser({\r\n id,\r\n firstName,\r\n lastName,\r\n roles,\r\n email,\r\n profileImageFileName\r\n })\r\n )\r\n if(data?.email && !roles.includes(\"Admin\")){\r\n amplitude.getInstance().init(INIT_AMPLITUDE_KEY, data.email, {\r\n includeReferrer: false,\r\n includeUtm: false,\r\n })\r\n const hostName = window.location.hostname;\r\n amplitude.getInstance().logEvent(\"general: session start\", { user_id: data.email, domain: hostName })\r\n localStorage.setItem(\"USER_EMAIL\",data.email)\r\n if(isLoginFirst){\r\n amplitude.getInstance().logEvent( \"general: first login\", { user_id: data.email, domain: hostName })\r\n }\r\n }\r\n\r\n if (isDistrict) {\r\n history.push(HOMEPAGE_DISTRICT)\r\n } else if (roles.includes(\"Admin\")) {\r\n history.push(HOMEPAGE_ADMIN)\r\n } else if (roles.includes(\"Teacher\") || roles.includes(\"Assistant\")) {\r\n history.push(HOMEPAGE_TEACHER)\r\n } else if (roles.includes(\"Student\")) {\r\n history.push(HOMEPAGE_STUDENT)\r\n } else if (roles.includes(\"Parent\")) {\r\n history.push(HOMEPAGE_PARENT)\r\n } else if (roles.includes(\"EduTeacher\")) {\r\n history.push(HOMEPAGE_EDU_TEACHER)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const getInfoGoogle = async () => {\r\n try {\r\n const res = await getGoogleClientId();\r\n setGoogleClientId(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const fnIsCheckLogin = useCallback( async (data: any, token: string, clickHandler: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await checkUserGoogle(data);\r\n const checkUser = res.data;\r\n if (checkUser) {\r\n const clickHandlerRes = await clickHandler()\r\n const dataUser = {\r\n email: data.email,\r\n captcha: clickHandlerRes,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken : token\r\n }\r\n await userLogin(dataUser);\r\n setIsLoginGoogle(false)\r\n } else {\r\n setIsLoginGoogle(true)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const submitLogin = async (teacherId: number, clickHandler: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const data = {\r\n firstName : infoUser.firstName,\r\n lastName: infoUser.lastName,\r\n imageUrl: infoUser.imageUrl,\r\n fullName: infoUser.fullName,\r\n email: infoUser.email,\r\n accessToken: infoUser.accessToken,\r\n teacherId: teacherId\r\n }\r\n const res = await registerUserStudent(data);\r\n if (res.data) {\r\n const clickHandlerRes = await clickHandler()\r\n const dataLogin = {\r\n email: infoUser.email,\r\n captcha: clickHandlerRes,\r\n isLoginGoogle: true,\r\n rememberMe: false,\r\n password: \"default\",\r\n accessToken : infoUser.accessToken\r\n }\r\n setIsLoginGoogle(false)\r\n await userLogin(dataLogin);\r\n history.push(HOMEPAGE_STUDENT)\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Login failed\"\r\n })\r\n )\r\n }\r\n setIsLoginGoogle(false)\r\n dispatch(setLoading(false))\r\n }\r\n\r\n return {\r\n defaultInfo,\r\n userLogin,\r\n openLogin,\r\n toggle,\r\n isShowPassword,\r\n setIsShowPassword,\r\n fnIsCheckLogin,\r\n isLoginGoogle,\r\n infoUser,\r\n setInfoUser,\r\n submitLogin,\r\n setIsLoginGoogle,\r\n googleClientId\r\n }\r\n}\r\n\r\nexport default useLogin\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nconst CustomSelector = ({\r\n defaultValue,\r\n options,\r\n isDisabled,\r\n scrollBottom,\r\n ...rest\r\n}: any) => {\r\n const initValue =\r\n defaultValue !== null && typeof defaultValue !== \"undefined\"\r\n ? options.find((option: any) => option.value === defaultValue) ||\r\n null\r\n : null\r\n return (\r\n <Select\r\n isDisabled={isDisabled}\r\n options={options}\r\n value={initValue}\r\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\r\n {...rest}\r\n />\r\n )\r\n}\r\n\r\nexport default CustomSelector\r\n","import React, { forwardRef, useState, useEffect, useRef, useCallback } from \"react\"\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from 'reactstrap';\r\nimport { useDispatch } from \"react-redux\"\r\nimport CustomSelector from \"../../../../components/Selectors/CustomSelector\"\r\nimport { setAlert } from \"../../../../redux/commons/action\"\r\nimport { getAllLoginTeacher } from \"../../../../services/accountService\"\r\n\r\ninterface Props {\r\n defaultValue?: any\r\n isDisabled?: boolean\r\n openModal: boolean\r\n onSubmit: any\r\n token: string\r\n email: string\r\n setOpenModal: any\r\n}\r\n\r\ninterface Teacher {\r\n teacherId: number\r\n email: string\r\n fullName: string\r\n}\r\n\r\nconst BlockSelectTeacher = ({\r\n defaultValue,\r\n isDisabled,\r\n openModal,\r\n onSubmit,\r\n token,\r\n email,\r\n setOpenModal\r\n}: Props) => {\r\n const [modal, setModal] = useState(false);\r\n \r\n useEffect(() => {\r\n setModal(openModal)\r\n }, [openModal])\r\n \r\n const toggle = () => {\r\n setModal(!modal);\r\n setOpenModal(!modal)\r\n }\r\n\r\n const dispatch = useDispatch()\r\n const [teachers, setTeachers] = useState<Teacher[]>([])\r\n const [searchString, setSearchString] = useState<string>(\"\")\r\n const [teacherEmail, setTeacherEmail] = useState<string>(\"\")\r\n const [isLoading, setLoading] = useState<boolean>(false)\r\n const timeout = useRef<any>()\r\n\r\n const loadData = useCallback(async () => {\r\n setLoading(true)\r\n try {\r\n const data = {\r\n token, email\r\n }\r\n const res = await getAllLoginTeacher(data)\r\n setTeachers(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n setLoading(false)\r\n }, [searchString])\r\n\r\n useEffect(() => {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n if (!searchString || searchString.trim().length < 2) {\r\n setTeachers([])\r\n } else {\r\n timeout.current = setTimeout(loadData, 300)\r\n }\r\n }, [searchString])\r\n\r\n const options = teachers.map((teacher: any) => ({\r\n label: `${teacher.fullName} (${teacher.email})`,\r\n value: teacher.teacherId\r\n }))\r\n\r\n const onChangeTeacher = (e: any) => {\r\n setTeacherEmail(e.value)\r\n }\r\n\r\n const customSelector = {\r\n control: (styles: any) => ({\r\n ...styles,\r\n borderRadius: \"10px\"\r\n })\r\n }\r\n return (\r\n <Modal isOpen={modal}>\r\n <ModalHeader> Sign in </ModalHeader>\r\n <ModalBody>\r\n <h6>You are logging in as a student, please select teacher</h6>\r\n <CustomSelector\r\n styles={customSelector}\r\n options={options}\r\n inputValue={searchString}\r\n onInputChange={(inputValue: string) => setSearchString(inputValue)}\r\n isLoading={isLoading}\r\n placeholder=\"Type 2 characters to search\"\r\n value={defaultValue}\r\n onChange={onChangeTeacher}\r\n isDisabled={isDisabled}\r\n />\r\n </ModalBody>\r\n <ModalFooter>\r\n <Button color=\"primary\" onClick={() => {\r\n onSubmit(teacherEmail)\r\n toggle()\r\n }}>\r\n Finish\r\n </Button>{' '}\r\n <Button color=\"secondary\" onClick={toggle}>\r\n Cancel\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(BlockSelectTeacher);","import React, { FC, useCallback } from \"react\"\r\nimport { Col, Form, FormGroup, Input, Row } from \"reactstrap\"\r\nimport { Link } from \"react-router-dom\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n// import { useDispatch } from \"react-redux\"\r\n\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\n// import CloseBlock from \"./CloseBlock\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport useLogin from \"../../hooks/useLogin\"\r\nimport { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport GoogleLogin from 'react-google-login'\r\nimport BlockSelectTeacher from \"./BlockSelectTeacher\"\r\n// import { setAlert } from \"../../../../redux/commons/action\"\r\n\r\ninterface Props {\r\n defaultInfo?: any\r\n userLogin?: any\r\n}\r\n\r\nconst schema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n password: yup.string().required(\"Password is required\"),\r\n rememberMe: yup.boolean()\r\n})\r\n\r\nconst BlockLogin: FC<Props> = ({ defaultInfo, userLogin }: Props) => {\r\n let { isShowPassword, setIsShowPassword, fnIsCheckLogin, \r\n isLoginGoogle, setInfoUser, submitLogin, infoUser, setIsLoginGoogle, googleClientId } = useLogin()\r\n const togglePasswordVisible = () => setIsShowPassword(!isShowPassword)\r\n // const dispatch = useDispatch()\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"login\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n console.log({ googleClientId })\r\n const onSuccessGoogle = (res: any) => {\r\n if (!!res?.accessToken) {\r\n let {\r\n email,\r\n familyName,\r\n givenName,\r\n imageUrl,\r\n name // fullName\r\n } = res.profileObj;\r\n let accessToken = res.accessToken\r\n let googleId = res.googleId\r\n\r\n // const hostName = window.location.hostname;\r\n // const subDomain = hostName.split(\".marioforme.com\")?.[0];\r\n // if (!email.includes(subDomain)) {\r\n // dispatch(\r\n // setAlert({\r\n // type: \"danger\",\r\n // message: \"Email invalidate\"\r\n // })\r\n // )\r\n // return;\r\n // }\r\n\r\n const infoLogin = {\r\n firstName : givenName,\r\n lastName: familyName,\r\n imageUrl: imageUrl,\r\n fullName: name,\r\n email: email,\r\n accessToken: accessToken,\r\n googleId: googleId,\r\n }\r\n setInfoUser(infoLogin);\r\n fnIsCheckLogin(infoLogin, accessToken, clickHandler)\r\n }\r\n }\r\n\r\n return (\r\n <React.Fragment>\r\n <Formik\r\n initialValues={defaultInfo}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={async values => {\r\n try {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n userLogin(values)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue\r\n } = formikProps\r\n\r\n const emailError = touched.email && errors.email\r\n const passwordError = touched.password && errors.password\r\n\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <Form\r\n className={`${styles[\"block-login\"]}`}\r\n onSubmit={handleSubmit}\r\n >\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <img\r\n src=\"/images/main-blue-logo.svg\"\r\n className={`${styles[\"img-login-rectangle\"]}`}\r\n />\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Sign in\r\n </p>\r\n <FormGroup\r\n className={`${styles[\"form-user-name\"]}`}\r\n >\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n placeholder=\"Email\"\r\n value={values.email}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"email\")}\r\n required\r\n />\r\n {emailError && (\r\n <ErrorHandler\r\n text={errors.email as string}\r\n />\r\n )}\r\n </FormGroup>\r\n <FormGroup>\r\n <PasswordInput\r\n isShowPassword={isShowPassword}\r\n togglePasswordVisible={\r\n togglePasswordVisible\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {passwordError && (\r\n <ErrorHandler\r\n text={errors.password as string}\r\n />\r\n )}\r\n </FormGroup>\r\n {/* <FormGroup>\r\n <Input\r\n type=\"checkbox\"\r\n className={`${styles[\"checkbox-remember\"]}`}\r\n id=\"remember\"\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"rememberMe\",\r\n e.target.checked\r\n )\r\n }\r\n />\r\n <Label\r\n for=\"remember\"\r\n className={`${styles[\"remember\"]}`}\r\n >\r\n Remember my browser & IP\r\n </Label>\r\n </FormGroup> */}\r\n <FormGroup>\r\n <GoogleReCaptcha\r\n action=\"login\"\r\n onVerify={handleVerify}\r\n />\r\n </FormGroup>\r\n <Col className=\"p-0 mt-5\">\r\n <button\r\n className={`${styles[\"btn-login\"]}`}\r\n type=\"submit\"\r\n >\r\n LOGIN\r\n </button>\r\n </Col>\r\n {\r\n !!googleClientId && (\r\n <Col className=\"p-0 mt-1 mb-4\">\r\n <GoogleLogin \r\n clientId={googleClientId}\r\n buttonText=\"Login\"\r\n onSuccess={onSuccessGoogle}\r\n cookiePolicy={'single_host_origin'}\r\n className={`${styles[\"btn-login-google\"]}`}\r\n />\r\n </Col>\r\n )\r\n }\r\n \r\n <div className=\"d-flex justify-content-between\">\r\n <Link\r\n to=\"/forgot-password\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Forgot password?\r\n </Link>\r\n <a\r\n href=\"/privacy-policy/\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </div>\r\n {/* <p className={`${styles[\"term-and-conditions\"]}`}>\r\n Check out our <a href=\"\">Terms and Conditions</a>\r\n </p> */}\r\n </div>\r\n </Form>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n {\r\n isLoginGoogle && <BlockSelectTeacher \r\n onSubmit={(e: number) => submitLogin(e, clickHandler)}\r\n openModal={isLoginGoogle}\r\n token={infoUser.accessToken}\r\n email={infoUser.email}\r\n setOpenModal={setIsLoginGoogle}\r\n />\r\n }\r\n </React.Fragment>\r\n )\r\n}\r\n\r\nexport default BlockLogin\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport {\r\n checkResetToken,\r\n forgotPassword,\r\n resetPassword\r\n} from \"../../../services/accountService\"\r\nimport { ACCESS_TOKEN } from \"../../../utils/constants\"\r\nimport getAccessToken from \"../../../utils/getAccessToken\"\r\n\r\ntype ForgotPasswordInfo = {\r\n email: string\r\n captcha: string\r\n}\r\n\r\nconst defaultInfo: ForgotPasswordInfo = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst DASHBOARD = \"/\"\r\nconst LOGIN = \"/login\"\r\nconst TITLE = \"Log in\"\r\n\r\nconst useForgotPassword = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [openLogin, setOpenLogin] = useState<boolean>(false)\r\n const toggle = useCallback(() => {\r\n setOpenLogin(!openLogin)\r\n }, [openLogin])\r\n const [isShowNewPassword, setIsShowNewPassword] = useState<boolean>(false)\r\n const [isShowReTypePassword, setIsShowReTypePassword] = useState<boolean>(\r\n false\r\n )\r\n\r\n const [validLink, setValidLink] = useState<boolean>(true)\r\n const { executeRecaptcha } = useGoogleReCaptcha()\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n const token = getAccessToken()\r\n if (!!token) history.push(DASHBOARD)\r\n }, [])\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"A mail to reset password was sent\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const checkResetTokenRequest = useCallback(async (token: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await checkResetToken(token)\r\n } catch (err) {\r\n setValidLink(false)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const resetPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await resetPassword(data)\r\n history.push(LOGIN)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Reset password sucessfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n const clickHandler = useCallback(async () => {\r\n if (!executeRecaptcha) {\r\n console.log(\"execute recaptcha undefined\")\r\n return\r\n }\r\n const result = await executeRecaptcha(\"forgetPass\")\r\n return result\r\n }, [executeRecaptcha])\r\n\r\n const handleVerify = useCallback(() => {}, [])\r\n\r\n return {\r\n defaultInfo,\r\n forgotPasswordRequest,\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n openLogin,\r\n toggle,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword,\r\n clickHandler,\r\n handleVerify\r\n }\r\n}\r\n\r\nexport default useForgotPassword\r\n","import { Formik } from \"formik\"\r\nimport React from \"react\"\r\nimport { GoogleReCaptcha } from \"react-google-recaptcha-v3\"\r\nimport { Link } from \"react-router-dom\"\r\nimport { Col, Input, Label, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\n// import CloseBlock from \"./CloseBlock\"\r\n\r\nconst initialValues = {\r\n email: \"\",\r\n captcha: \"\"\r\n}\r\n\r\nconst forgotPasswordSchema = yup.object({\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\")\r\n})\r\n\r\nconst BlockForgetPassword = () => {\r\n const {\r\n forgotPasswordRequest,\r\n clickHandler,\r\n handleVerify\r\n } = useForgotPassword()\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={forgotPasswordSchema}\r\n onSubmit={async values => {\r\n const clickHandlerRes = await clickHandler()\r\n if (!clickHandlerRes) return\r\n values.captcha = clickHandlerRes\r\n forgotPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n handleChange,\r\n handleSubmit,\r\n values,\r\n touched,\r\n errors\r\n } = formikProps\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n {/* <div className=\"w-100\">\r\n <CloseBlock to=\"/\" />\r\n </div> */}\r\n <Col className=\"p-0\">\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <p className={`${styles[\"title-login\"]} `}>\r\n Forgot password\r\n </p>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Enter email to recover your account\r\n </p>\r\n <div className=\"w-100\">\r\n <Label for=\"emailForgot\">Email</Label>\r\n <Input\r\n type=\"text\"\r\n name=\"email\"\r\n id=\"email\"\r\n placeholder=\"Input email\"\r\n onChange={handleChange}\r\n value={values.email}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler text={errors.email} />\r\n )}\r\n </div>\r\n <GoogleReCaptcha\r\n action=\"forgetPass\"\r\n onVerify={handleVerify}\r\n />\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-5`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Continue\r\n </button>\r\n </Col>\r\n <p\r\n className={`d-flex justify-content-between`}\r\n >\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n <a\r\n href=\"/privacy-policy\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockForgetPassword\r\n","import { Formik } from \"formik\"\r\nimport React, { useEffect } from \"react\"\r\nimport { Link, useLocation } from \"react-router-dom\"\r\nimport { Col, Label, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../../components/Alerts/ErrorHandler\"\r\n// import CloseButton from \"../../../../components/Buttons/CloseButton\"\r\nimport PasswordInput from \"../../../../components/Inputs/PasswordInput\"\r\nimport styles from \"../../../../styles.module.scss\"\r\nimport useForgotPassword from \"../../hooks/useForgotPassword\"\r\n\r\nconst initialValues = {\r\n token: \"\",\r\n password: \"\",\r\n reEnterPassword: \"\"\r\n}\r\n\r\nconst resetPasswordSchema = yup.object({\r\n password: yup.string().required(\"New password is required\"),\r\n reEnterPassword: yup\r\n .string()\r\n .required(\"Please re-enter new password\")\r\n .test(\"matching\", \"Passwords do not match\", function () {\r\n return this.parent.password === this.parent.reEnterPassword\r\n })\r\n})\r\n\r\nconst BlockResetPassword = () => {\r\n const query = new URLSearchParams(useLocation().search)\r\n const token = query.get(\"token\")\r\n const {\r\n checkResetTokenRequest,\r\n validLink,\r\n resetPasswordRequest,\r\n isShowNewPassword,\r\n setIsShowNewPassword,\r\n isShowReTypePassword,\r\n setIsShowReTypePassword\r\n } = useForgotPassword()\r\n\r\n // const history = useHistory()\r\n // const close = () => {\r\n // history.push(\"/login\")\r\n // }\r\n\r\n useEffect(() => {\r\n checkResetTokenRequest(token as string)\r\n }, [])\r\n\r\n return (\r\n <Formik\r\n initialValues={initialValues}\r\n enableReinitialize\r\n validationSchema={resetPasswordSchema}\r\n onSubmit={values => {\r\n resetPasswordRequest(values)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n setFieldValue,\r\n handleSubmit,\r\n touched,\r\n errors\r\n } = formikProps\r\n useEffect(() => {\r\n setFieldValue(\"token\", token)\r\n }, [])\r\n return (\r\n <Row className={`${styles[\"box-login\"]}`}>\r\n <Col className=\"p-0\">\r\n <div className={`${styles[\"block-login\"]}`}>\r\n <div className={`${styles[\"block-form\"]}`}>\r\n <p className={`${styles[\"title-login\"]}`}>\r\n Reset Password\r\n </p>\r\n <div className=\"w-100\">\r\n {validLink ? (\r\n <React.Fragment>\r\n <Label for=\"emailForgot\" className=\"mb-3\">\r\n New password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={\r\n isShowNewPassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowNewPassword(\r\n !isShowNewPassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"password\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.password &&\r\n errors.password && (\r\n <ErrorHandler\r\n text={\r\n errors.password\r\n }\r\n />\r\n )}\r\n\r\n <Label for=\"emailForgot\" className=\"mt-3 mb-3\">\r\n Re-enter new password\r\n </Label>\r\n <PasswordInput\r\n isShowPassword={\r\n isShowReTypePassword\r\n }\r\n togglePasswordVisible={() =>\r\n setIsShowReTypePassword(\r\n !isShowReTypePassword\r\n )\r\n }\r\n onChange={(e: any) =>\r\n setFieldValue(\r\n \"reEnterPassword\",\r\n e.target.value\r\n )\r\n }\r\n />\r\n {touched.reEnterPassword &&\r\n errors.reEnterPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.reEnterPassword\r\n }\r\n />\r\n )}\r\n </React.Fragment>\r\n ) : (\r\n <React.Fragment>\r\n <p\r\n className={`${styles[\"recover-account\"]} mb-5`}\r\n >\r\n Invalid reset password link\r\n </p>\r\n <p className=\"w-100\">\r\n It may have been accessed\r\n before or expired or you\r\n have just tried to reset\r\n another account's password\r\n </p>\r\n </React.Fragment>\r\n )}\r\n </div>\r\n\r\n {validLink && (\r\n <Col className=\"p-0\">\r\n <button\r\n className={`${styles[\"btn-login\"]} mt-4`}\r\n onClick={() => handleSubmit()}\r\n >\r\n Confirm\r\n </button>\r\n </Col>\r\n )}\r\n <p className=\"d-flex justify-content-between\">\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Return to login\r\n </Link>\r\n <a\r\n href=\"/privacy-policy/\" \r\n target=\"blank\"\r\n className={`${styles[\"link-to-login\"]}`}\r\n >\r\n Privacy Policy\r\n </a>\r\n </p>\r\n </div>\r\n </div>\r\n </Col>\r\n <Col lg={4} md={4} className={`${styles[\"img-box\"]}`}>\r\n <img\r\n src=\"/images/img-login.jpg\"\r\n className={`${styles[\"img-login\"]}`}\r\n />\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default BlockResetPassword\r\n","import React, { useEffect } from \"react\"\r\n\r\nimport { Col, Row } from \"reactstrap\"\r\n\r\nimport BlockLogin from \"./block/BlockLogin\"\r\nimport BlockForgetPassword from \"./block/BlockForgetPassword\"\r\nimport BlockResetPassword from \"./block/BlockResetPassword\"\r\n// import BlockTwoFactorLogin from \"./block/BlockTwoFactorLogin\"\r\nimport useLogin from \"../hooks/useLogin\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\r\nimport { GOOGLE_RECAPTCHA_KEY } from \"../../../utils/constants\"\r\n\r\ninterface loginProps {\r\n isLogin?: boolean\r\n isForgotPassword?: boolean\r\n isResetPassword?: boolean\r\n isLoginTwoFactor?: boolean\r\n}\r\n\r\nconst LOGIN_TITLE = \"Log in\"\r\nconst FORGOT_PASSWORD_TITLE = \"Forgot password\"\r\nconst RESET_PASSWORD_TITLE = \"Reset password\"\r\n\r\nconst Login = (props: loginProps) => {\r\n const {\r\n isLogin,\r\n isForgotPassword,\r\n isResetPassword,\r\n // isLoginTwoFactor\r\n } = props\r\n const { defaultInfo, userLogin } = useLogin()\r\n\r\n useEffect(() => {\r\n isLogin && (document.title = LOGIN_TITLE)\r\n isForgotPassword && (document.title = FORGOT_PASSWORD_TITLE)\r\n isResetPassword && (document.title = RESET_PASSWORD_TITLE)\r\n }, [isLogin, isForgotPassword, isResetPassword])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\r\n <Row className={\"h-100\"}>\r\n <Col\r\n lg={12}\r\n md={12}\r\n xs={12}\r\n className=\"d-flex justify-content-center h-100 align-items-center\"\r\n >\r\n <GoogleReCaptchaProvider\r\n useRecaptchaNet\r\n reCaptchaKey={GOOGLE_RECAPTCHA_KEY}\r\n scriptProps={{\r\n async: true,\r\n defer: true,\r\n appendTo: \"body\"\r\n }}\r\n >\r\n {isLogin && (\r\n <BlockLogin\r\n userLogin={userLogin}\r\n defaultInfo={defaultInfo}\r\n />\r\n )}\r\n {isForgotPassword && <BlockForgetPassword />}\r\n </GoogleReCaptchaProvider>\r\n {isResetPassword && <BlockResetPassword />}\r\n {/* {isLoginTwoFactor && <BlockTwoFactorLogin />} */}\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login\r\n","import React, { FC } from \"react\"\r\nimport { Col, Row } from \"reactstrap\"\r\nimport styles from \"../../../../styles.module.scss\"\r\ninterface Props {\r\n // title?: string\r\n descriptions?: string\r\n}\r\nconst QuoteContent: FC<Props> = ({ descriptions }: Props) => {\r\n return (\r\n <div className={`${styles[\"content-quote\"]}`}>\r\n <Row>\r\n <Col md={5} className={`${styles[\"title-quote\"]}`}>\r\n <p>Powerful</p>\r\n <p>Personalized</p>\r\n <p>Learning</p>\r\n </Col>\r\n <Col\r\n md={7}\r\n className={`${styles[\"descriptions-quote\"]} d-flex align-items-center`}\r\n >\r\n <p>{descriptions}</p>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default QuoteContent\r\n","import React, { FC } from \"react\"\r\nimport { Col, Row } from \"reactstrap\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {\r\n srcIcon?: string\r\n content?: string\r\n}\r\nconst IconContent: FC<Props> = ({ srcIcon, content }: Props) => {\r\n return (\r\n <Row className={`${styles[\"content-icon\"]}`}>\r\n <Col md={4} className={`${styles[\"title-icon\"]}`}>\r\n <img src={srcIcon} alt=\"icon\" />\r\n </Col>\r\n <Col\r\n md={8}\r\n className={`${styles[\"descriptions-icon\"]} d-flex align-items-center`}\r\n >\r\n <p>{content}</p>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default IconContent\r\n","import React, { FC } from \"react\"\r\nimport { Col, Row } from \"reactstrap\"\r\nimport QuoteContent from \"./QuoteContent\"\r\nimport IconContent from \"./IconContent\"\r\nimport styles from \"../../../../styles.module.scss\"\r\n\r\ninterface Props {}\r\nconst data = {\r\n quote: {\r\n title: \"Powerful Personalized Learning\",\r\n description:\r\n \"Focus on what matters most to you and make learning meaningful.\"\r\n },\r\n contents: [\r\n {\r\n scrIcon: \"/images/177_2_Finance.svg\",\r\n content: \"Understand yourself better through helpful feedback.\"\r\n },\r\n {\r\n scrIcon: \"/images/177_9_Brain.svg\",\r\n content:\r\n \"Create, explore, and share exciting personalized learning journeys.\"\r\n },\r\n {\r\n scrIcon: \"/images/177_6_Goal.svg\",\r\n content: \"Set, monitor, and achieve your goals.\"\r\n },\r\n {\r\n scrIcon: \"/images/177_8_Space.svg\",\r\n content: \"Empower parents to become part of the learning process.\"\r\n }\r\n ]\r\n}\r\nconst ContentHomePage: FC<Props> = ({}: Props) => {\r\n return (\r\n <Row className={`${styles[\"page-not-login\"]}`}>\r\n <Col md={12}>\r\n <QuoteContent\r\n // title={data.quote.title}\r\n descriptions={data.quote.description}\r\n />\r\n </Col>\r\n\r\n {data.contents.map((content: any, index: number) => (\r\n <Col md={6} key={index}>\r\n <IconContent\r\n srcIcon={content.scrIcon}\r\n content={content.content}\r\n />\r\n </Col>\r\n ))}\r\n <Col\r\n md={12}\r\n className={`${styles[\"student-image\"]} d-flex justify-content-end mt-5`}\r\n >\r\n <a href=\"https://cert.privo.com/#/companies/marioFrameworkLlc\" target=\"blank\">\r\n <IconContent srcIcon={\"/images/STUDENT.png\"} content={\"\"} />\r\n </a>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default ContentHomePage\r\n","import React, { useEffect } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { Col, Row } from \"reactstrap\"\r\n// import BlockLogin from \"./block/BlockLogin\"\r\n// import useLogin from \"../hooks/useLogin\"\r\nimport ContentHomePage from \"./block/ContentHomePage\"\r\n// import LoginNavButton from \"../../../components/Buttons/LoginNavButton\"\r\nimport styles from \"../../../styles.module.scss\"\r\nimport { Link } from \"react-router-dom\"\r\nconst HOME_ADMIN = \"/admin/user\"\r\nconst HOME_TEACHER = \"/home\"\r\nconst HOME_STUDENT = \"/home\"\r\n\r\nconst DASHBOARD_TITLE = \"Dashboard\"\r\nconst ROOT_TITLE = \"Mario Framework\"\r\n\r\nconst Dashboard = () => {\r\n const user = useSelector((state: any) => state.common.user)\r\n\r\n useEffect(() => {\r\n !!user\r\n ? (document.title = DASHBOARD_TITLE)\r\n : (document.title = ROOT_TITLE)\r\n }, [user])\r\n\r\n return (\r\n <div className={`${styles[\"login\"]} ${styles[\"red-background\"]}`}>\r\n <Row>\r\n <Col className={`${styles[\"nav-home\"]} d-flex w-100`}>\r\n <a\r\n className={`${styles[\"learn-more\"]} align-self-lg-center`}\r\n href=\"/privacy-policy\" \r\n target=\"blank\"\r\n >\r\n Privacy Policy\r\n </a>\r\n <Link\r\n className={`${styles[\"contact\"]} align-self-lg-center`}\r\n to={\"/contact\"}\r\n >\r\n Contact\r\n </Link>\r\n <a\r\n className={`${styles[\"learn-more\"]} align-self-lg-center`}\r\n href=\"https://marioframework.com/software\"\r\n target=\"blank\"\r\n >\r\n Learn More\r\n </a>\r\n {user ? (\r\n <Link\r\n to={\r\n user.roles.includes(\"Admin\")\r\n ? HOME_ADMIN\r\n : user.roles.includes(\"Teacher\")\r\n ? HOME_TEACHER\r\n : HOME_STUDENT\r\n }\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Dashboard\r\n </Link>\r\n ) : (\r\n <Link\r\n to=\"/login\"\r\n className={`${styles[\"btn-trans-border\"]}`}\r\n >\r\n Login\r\n </Link>\r\n )}\r\n </Col>\r\n </Row>\r\n\r\n <Row\r\n className={`${styles[\"hide-in-mobile\"]} ${styles[\"hide-in-tablet\"]}`}\r\n >\r\n <Col md={6} className=\"offset-6 d-flex justify-content-center\">\r\n <ContentHomePage />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Dashboard\r\n","const Images = {\r\n USER_CONVERSATION_AVATAR: \"images/user.png\",\r\n GROUP_CONVERSATION_AVATAR: \"images/group.png\",\r\n LOGO: \"images/logoV1-1.png\",\r\n LOGO_HEADER: \"images/logo-header.png\",\r\n LOGO_MINIMIZED: \"images/logo-small.png\",\r\n DOCS_IMAGE: \"images/docs.png\",\r\n AUDIO_IMAGE: \"images/audio.png\",\r\n PHOTO_IMAGE: \"images/image.png\",\r\n VIDEO_IMAGE: \"images/video.png\",\r\n FOLDER_IMAGE: \"images/folder.png\",\r\n UNKNOW_IMAGE: \"images/unknow.png\",\r\n\r\n}\r\n\r\nexport default Images\r\n","import React, { useState, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport {\r\n CCreateElement,\r\n CSidebar,\r\n CSidebarBrand,\r\n CSidebarNav,\r\n CSidebarNavDivider,\r\n CSidebarNavTitle,\r\n // CSidebarMinimizer,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n CSidebarFooter\r\n} from \"@coreui/react\"\r\nimport { setSidebar } from \"../redux/commons/action\"\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport { reset } from \"../redux/commons/action\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport styles from \"../styles.module.scss\"\r\nimport Images from \"../assets/Images\"\r\nimport { CgMenuRight } from \"react-icons/cg\"\r\nimport { RiLogoutBoxRLine } from \"react-icons/ri\"\r\n\r\nconst TheSidebar = ({ navigation }: any) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const show = useSelector<any>((state: any) => state.common.sidebarShow)\r\n const [toggleMinimize, setToggleMinimize] = useState<boolean>(false)\r\n const signOut = useCallback(() => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n dispatch(reset())\r\n history.push(\"/\")\r\n }, [])\r\n return (\r\n <CSidebar\r\n show={show as any}\r\n onShowChange={(val: any) => dispatch(setSidebar(val))}\r\n minimize={toggleMinimize}\r\n className={`${styles[\"box-sidebar\"]}`}\r\n >\r\n <CSidebarBrand\r\n className={`${styles[\"box-sidebar-header\"]} d-md-down-none justify-content-around`}\r\n >\r\n <div>\r\n <img\r\n src={Images.LOGO}\r\n className={`${styles[\"sidebar-logo\"]} c-sidebar-brand-full`}\r\n />\r\n <img\r\n src={Images.LOGO_MINIMIZED}\r\n className={`${styles[\"sidebar-logo\"]} ${styles[\"sidebar-btn-minimized\"]} c-sidebar-brand-minimized`}\r\n onClick={() => setToggleMinimize(false)}\r\n />\r\n </div>\r\n <CgMenuRight\r\n className={`${styles[\"sidebar-btn-minimized\"]} c-sidebar-brand-full`}\r\n onClick={() => setToggleMinimize(true)}\r\n />\r\n </CSidebarBrand>\r\n <CSidebarNav className={`${styles[\"sidebar-nav-links\"]} ${toggleMinimize && styles[\"sidebar-nav-links-hover\"]}`}>\r\n <CCreateElement\r\n items={navigation}\r\n components={{\r\n CSidebarNavDivider,\r\n CSidebarNavDropdown,\r\n CSidebarNavItem,\r\n CSidebarNavTitle\r\n }}\r\n />\r\n </CSidebarNav>\r\n {/* <CSidebarMinimizer\r\n id=\"sidebar-minimizer\"\r\n className=\"c-d-md-down-none\"\r\n /> */}\r\n <CSidebarFooter\r\n onClick={signOut}\r\n className={`${styles[\"box-logout\"]} p-3 d-flex align-items-center cursor-point`}\r\n >\r\n <RiLogoutBoxRLine\r\n onClick={signOut}\r\n className={`${styles[\"sidebar-logout\"]}`}\r\n />\r\n <p onClick={signOut}>Log out</p>\r\n </CSidebarFooter>\r\n </CSidebar>\r\n )\r\n}\r\n\r\nexport default TheSidebar\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setNotification = createAction<any>(\r\n \"notifications/setNotification\"\r\n)\r\n\r\nexport const setUnReadNotification = createAction<number>(\r\n \"notifications/setUnReadNotification\"\r\n)\r\n\r\nexport const updateUnReadNotification = createAction<number>(\r\n \"notifications/updateUnReadNotification\"\r\n)\r\n","import { api } from \"./api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst NOTIFICATION_URL = `${BASE_URL}/api/notification`\r\n\r\nexport const get = (filter: any) =>\r\n api.get(NOTIFICATION_URL, { params: { ...filter } })\r\n\r\nexport const getUnReadNotifications = () =>\r\n api.get(`${NOTIFICATION_URL}/unread`)\r\n\r\nexport const updateLastTimeCheckNotification = () =>\r\n api.put(`${NOTIFICATION_URL}/lasttimechecknotification`)\r\n\r\nexport const getById = (id: number) => api.get(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const updateStatusNotification = (id: number) =>\r\n api.put(`${NOTIFICATION_URL}/${id}`)\r\n\r\nexport const clearChatNotification = () =>\r\n api.delete(`${NOTIFICATION_URL}/chat`)\r\n\r\nexport const updateAllStatus = () =>\r\n api.put(`${NOTIFICATION_URL}/updateAllStatus`)\r\n","import { useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useLocation } from \"react-router-dom\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"../../../redux/notifications/action\"\r\nimport { getUnReadNotifications } from \"../../../services/notificationService\"\r\n\r\nimport {\r\n NOTIFICATION_CHANNEL,\r\n NEW_NOTIFICATION\r\n} from \"../../../utils/constants\"\r\n\r\nimport { setAlert } from \"../../../redux/commons/action\"\r\n\r\n//const MESSAGE_RECEIVED = \"MESSAGE_RECEIVED\"\r\n\r\nconst useUnReadNotification = () => {\r\n const dispatch = useDispatch()\r\n const userId = useSelector((state: any) => state.common.user?.id)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n\r\n const getData = useCallback(async () => {\r\n try {\r\n const res = await getUnReadNotifications()\r\n dispatch(setUnReadNotification(res.data))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [])\r\n\r\n const location = useLocation()\r\n const isChat = location.pathname.includes(\"chat\")\r\n\r\n useEffect(() => {\r\n getData()\r\n\r\n let pusher: Pusher\r\n if (pusherKey && pusherCluster) {\r\n pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(\r\n `${NOTIFICATION_CHANNEL}-${userId}`\r\n )\r\n\r\n channel.bind(NEW_NOTIFICATION, () => {\r\n getData()\r\n })\r\n\r\n channel.bind(\"update-unread-notification\", () => {\r\n isChat && getData()\r\n })\r\n }\r\n\r\n return () =>\r\n pusher && pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [updateUnReadNotification, isChat, pusherKey, pusherCluster])\r\n\r\n return { unReadNotification }\r\n}\r\n\r\nexport default useUnReadNotification\r\n","import React, { FC, useCallback } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nimport useUnreadNotification from \"../hooks/useUnreadNotification\"\r\n\r\ninterface Props {}\r\n\r\n// const ICON_SIZE = 24\r\n\r\nconst NotificationButton: FC<Props> = ({}: Props) => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const isAdmin = user && user.roles.includes(\"Admin\")\r\n const { unReadNotification } = useUnreadNotification()\r\n\r\n const openNotification = useCallback(() => {\r\n const features = `toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, width=1080, height=720, top=100, left=100`\r\n const url = `${isAdmin ? \"/admin\" : \"\"}/notifications`\r\n window.open(url, \"NotificationDialog\", features)\r\n }, [])\r\n\r\n return (\r\n <div className=\"d-inline position-relative cursor-pointer mr-2 user-select-none\">\r\n <div\r\n className=\"d-inline position-relative\"\r\n onClick={openNotification}\r\n >\r\n <i className=\"fas fa-bell\" style={{ fontSize: \"20px\" }}></i>\r\n {!!unReadNotification && (\r\n <div\r\n className={`${styles[\"notification-count\"]} position-absolute text-small`}\r\n >\r\n {unReadNotification}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationButton\r\n","import { BASE_URL } from \"./constants\"\r\n\r\nconst getFileUrl = (fileName: string) => {\r\n if (!fileName || !fileName.trim()) return \"\"\r\n return `${BASE_URL}/api/file/viewer?key=${fileName}`\r\n}\r\n\r\nexport default getFileUrl\r\n","import React, { useCallback, useState } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { useHistory, Link } from \"react-router-dom\"\r\n\r\nimport { reset } from \"../redux/commons/action\"\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport getFileUrl from \"../utils/getFileUrl\"\r\nimport styles from \"../styles.module.scss\"\r\nimport {\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle,\r\n NavLink\r\n} from \"reactstrap\"\r\n\r\nconst DEFAULT_USER_AVATAR = \"/avatars/default-avatar.png\"\r\nconst ADMIN_ROLE = \"Admin\"\r\nconst TEACHER_ROLE = \"Teacher\"\r\nconst USER_DETAIL_URL = \"/admin/user\"\r\n\r\nconst TheHeaderDropdown = () => {\r\n const user = useSelector((state: any) => state.common.user)\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n\r\n const { email, profileImageFileName, roles, id } = user\r\n const isAdmin = roles.includes(ADMIN_ROLE)\r\n const isTeacher = roles.includes(TEACHER_ROLE)\r\n\r\n const goToTeacherPanel = useCallback(() => {\r\n isTeacher && history.push(\"/home\")\r\n }, [isTeacher, history])\r\n\r\n const signOut = useCallback(() => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n dispatch(reset())\r\n history.push(\"/\")\r\n }, [])\r\n\r\n const [dropdownOpen, setDropdownOpen] = useState(false)\r\n const toggle = () => setDropdownOpen(prevState => !prevState)\r\n\r\n const avatarUrl = profileImageFileName\r\n ? getFileUrl(profileImageFileName)\r\n : DEFAULT_USER_AVATAR\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <Dropdown\r\n isOpen={dropdownOpen}\r\n toggle={toggle}\r\n className={`${styles[\"dropdown-menu\"]}`}\r\n >\r\n <DropdownToggle className={`${styles[\"header-avatar\"]} `}>\r\n <img src={avatarUrl} alt=\"avatar\" />\r\n </DropdownToggle>\r\n <DropdownMenu className={styles[\"dropdown-content\"]}>\r\n <div className={`${styles[\"item-contact\"]} d-flex`}>\r\n <div\r\n className={`${styles[\"img-avatar\"]} d-flex align-items-center`}\r\n >\r\n <img src={avatarUrl} alt=\"admin@bootstrapmaster.com\" />\r\n </div>\r\n <div className={styles[\"content-text\"]}>\r\n <h5>{`${user.firstName} ${user.lastName}`}</h5>\r\n <span className=\"block\">{email}</span>\r\n {!isDistrict && (\r\n <NavLink>\r\n {isTeacher && (\r\n <Link to=\"/my-profile\">Edit profile</Link>\r\n )}\r\n {isAdmin && (\r\n <Link to={`${USER_DETAIL_URL}/${id}`}>\r\n Edit profile\r\n </Link>\r\n )}\r\n </NavLink>\r\n )}\r\n </div>\r\n </div>\r\n {isTeacher && (\r\n <DropdownItem\r\n onClick={goToTeacherPanel}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className={`mr-2`}>\r\n <i className=\"fas fa-cogs h6 mb-0\"></i>\r\n </span>\r\n GO TO TEACHER PANEL\r\n </div>\r\n </DropdownItem>\r\n )}\r\n <DropdownItem\r\n onClick={signOut}\r\n className={`${styles[\"dropdown-change\"]} px-0`}\r\n >\r\n <div\r\n className={`${styles[\"item-address\"]} ${styles[\"item-logout\"]} d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <i className=\"fas fa-power-off h6 mb-0\"></i>\r\n </span>\r\n LOGOUT\r\n </div>\r\n </DropdownItem>\r\n </DropdownMenu>\r\n </Dropdown>\r\n )\r\n}\r\n\r\nexport default TheHeaderDropdown\r\n","import React, { useState } from \"react\"\r\nimport { BsChevronDown } from \"react-icons/bs\";\r\n\r\nimport styles from \"../styles.module.scss\"\r\nimport {\r\n Dropdown,\r\n DropdownItem,\r\n DropdownMenu,\r\n DropdownToggle\r\n} from \"reactstrap\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setLanguage } from \"../redux/commons/action\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst TheLanguageDropdown = () => {\r\n const defaultLanguage =\r\n localStorage.getItem(\"language\") !== null\r\n ? localStorage.getItem(\"language\")\r\n : \"uk\"\r\n const dispatch = useDispatch()\r\n const { i18n } = useTranslation()\r\n const [dropdownOpen, setDropdownOpen] = useState(false)\r\n const [language, setItemLanguage] = useState(defaultLanguage)\r\n const toggle = () => setDropdownOpen(prevState => !prevState)\r\n const changeLanguageApp = (lang: string) => {\r\n i18n.changeLanguage(lang)\r\n localStorage.setItem(\"language\", lang)\r\n setItemLanguage(lang)\r\n dispatch(setLanguage(lang))\r\n }\r\n\r\n const displayCurrentLang = {\r\n uk: (\r\n <React.Fragment>\r\n <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src=\"/images/united-kingdom.png\" /> English, UK\r\n </React.Fragment>\r\n ),\r\n us: (\r\n <React.Fragment>\r\n <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src=\"/images/usa.png\" /> English, US\r\n </React.Fragment>\r\n )\r\n }\r\n\r\n return (\r\n <Dropdown\r\n isOpen={dropdownOpen}\r\n toggle={toggle}\r\n className={`${styles[\"dropdown-menu\"]}`}\r\n >\r\n <DropdownToggle\r\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\r\n >\r\n <span style={{ color: \"#000\", textTransform: \"capitalize\", display: 'flex', alignItems: 'center' }}>\r\n {displayCurrentLang[language || \"uk\"]}\r\n <BsChevronDown className=\"ml-2\" style={{ fontSize: '10px' }} />\r\n </span>\r\n </DropdownToggle>\r\n <DropdownMenu className={styles[\"dropdown-content-language\"]}>\r\n <DropdownItem\r\n className={`${styles[\"dropdown-change\"]} px-0 py-0 pt-2`}\r\n onClick={() => changeLanguageApp(\"uk\")}\r\n >\r\n <div\r\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\r\n language == \"uk\" ? styles['dropdown-item-language-active'] : \"\"\r\n } d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <img\r\n style={{ width: \"30px\" }}\r\n src=\"/images/united-kingdom.png\"\r\n />\r\n </span>\r\n United Kingdom\r\n </div>\r\n </DropdownItem>\r\n {/* <DropdownItem\r\n className={`${styles[\"dropdown-change\"]} px-0 py-0 pb-2`}\r\n onClick={() => changeLanguageApp(\"us\")}\r\n >\r\n <div\r\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\r\n language == \"us\" ? styles['dropdown-item-language-active'] : \"\"\r\n } d-flex align-items-center w-100`}\r\n >\r\n <span className=\"mr-2 d-flex hover-opacity\">\r\n <img\r\n style={{ width: \"30px\" }}\r\n src=\"/images/usa.png\"\r\n />\r\n </span>\r\n United States of America\r\n </div>\r\n </DropdownItem> */}\r\n </DropdownMenu>\r\n </Dropdown>\r\n )\r\n}\r\n\r\nexport default TheLanguageDropdown\r\n","import React from \"react\"\r\n// import { useSelector, useDispatch } from \"react-redux\"\r\nimport { CHeader, CHeaderBrand, CHeaderNav } from \"@coreui/react\"\r\n\r\n// import { setSidebar } from \"../redux/commons/action\"\r\n\r\nimport styles from \"../styles.module.scss\"\r\n\r\nimport NotificationButton from \"../containers/Notifications/components/NotificationButton\"\r\n\r\nimport TheHeaderDropdown from \"./TheHeaderDropdown\"\r\n\r\nimport Images from \"../assets/Images\"\r\nimport TheLanguageDropdown from \"./TheLanguageDropdown\"\r\n\r\nconst TheHeader = () => {\r\n // const dispatch = useDispatch()\r\n // const sidebarShow = useSelector((state: any) => state.common.sidebarShow)\r\n\r\n // const toggleSidebar = () => {\r\n // const val = [true, \"responsive\"].includes(sidebarShow)\r\n // ? false\r\n // : \"responsive\"\r\n // dispatch(setSidebar(val))\r\n // }\r\n\r\n // const toggleSidebarMobile = () => {\r\n // const val = [false, \"responsive\"].includes(sidebarShow)\r\n // ? true\r\n // : \"responsive\"\r\n // dispatch(setSidebar(val))\r\n // }\r\n\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n return (\r\n <CHeader\r\n withSubheader\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {/* <CToggler\r\n inHeader\r\n className=\"ml-md-3 d-lg-none\"\r\n onClick={toggleSidebarMobile}\r\n />\r\n <CToggler\r\n inHeader\r\n className=\"ml-3 d-md-down-none\"\r\n onClick={toggleSidebar}\r\n /> */}\r\n <CHeaderBrand className=\"mx-auto flex-grow-1 d-lg-none\" to=\"/\">\r\n <img\r\n src={Images.LOGO_HEADER}\r\n className={styles[\"header-logo\"]}\r\n />\r\n </CHeaderBrand>\r\n\r\n <CHeaderNav className=\"pr-3\">\r\n <TheLanguageDropdown />\r\n <a className=\"mr-3\" style={{color: '#000'}} href='/privacy-policy' target=\"blank\">\r\n Privacy Policy \r\n </a>\r\n {!isDistrict && <NotificationButton />}\r\n <TheHeaderDropdown />\r\n </CHeaderNav>\r\n </CHeader>\r\n )\r\n}\r\n\r\nexport default TheHeader\r\n","import React, { FC, useEffect } from \"react\"\r\nimport { Link } from \"react-router-dom\"\r\n\r\nconst TITLE = \"Not found\"\r\nconst NotFound: FC = () => {\r\n useEffect(() => {\r\n document.title = TITLE\r\n })\r\n return (\r\n <div className=\"not-found\">\r\n <div className=\"clearfix\">\r\n <h1 className=\"float-left display-3 mr-4\">404</h1>\r\n <div className=\"float-left\">\r\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\r\n <p className=\"text-muted mb-2\">\r\n The page you are looking for was not found.\r\n </p>\r\n <div>\r\n <Link to=\"/\">Go to home</Link>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotFound\r\n","import React, { Suspense } from \"react\"\r\nimport { Route, Switch, useLocation } from \"react-router-dom\"\r\nimport { CContainer } from \"@coreui/react\"\r\nimport NotFound from \"../containers/Commons/NotFound\"\r\n\r\nconst loading = (\r\n <div className=\"pt-3 text-center\">\r\n <div className=\"sk-spinner sk-spinner-pulse\" />\r\n </div>\r\n)\r\n\r\nconst TheContent = ({ routes }: any) => {\r\n const location = useLocation()\r\n const { pathname } = location\r\n const dashboard = pathname === \"/\" ? \"box-container\" : \"\"\r\n return (\r\n <main className={`c-main ${dashboard}`}>\r\n <CContainer fluid className=\"h-100\">\r\n <Suspense fallback={loading}>\r\n <Switch>\r\n {routes.map((route: any, idx: any) => (\r\n <Route\r\n key={idx}\r\n path={route.path}\r\n exact={route.exact}\r\n component={route.component}\r\n />\r\n ))}\r\n <Route path=\"*\" component={NotFound} />\r\n </Switch>\r\n </Suspense>\r\n </CContainer>\r\n </main>\r\n )\r\n}\r\n\r\nexport default React.memo(TheContent)\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst loadingStyle: CSSProperties = {\r\n minWidth: \"100vw\",\r\n minHeight: \"100vh\",\r\n position: \"fixed\",\r\n top: 0,\r\n left: 0,\r\n zIndex: 999999999,\r\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n}\r\n\r\nconst Loading: FC = () => {\r\n const isLoading = useSelector((state: any) => state.common.isLoading)\r\n\r\n return isLoading ? (\r\n <div style={loadingStyle}>\r\n <div className=\"spinner-border text-secondary\" role=\"status\">\r\n <span className=\"sr-only\">Loading...</span>\r\n </div>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default Loading","import getAccessToken from \"./getAccessToken\"\r\nimport { checkToken } from \"../services/accountService\"\r\n\r\nconst firstCheckToken = async () => {\r\n try {\r\n const token = getAccessToken()\r\n if (!token) return false\r\n\r\n const tokenStatus = await checkToken(token)\r\n if (!tokenStatus.data) return false\r\n\r\n return true\r\n } catch (err) {\r\n return false\r\n }\r\n}\r\n\r\nexport default firstCheckToken\r\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\r\n if (!Array.isArray(userRoles)) {\r\n return false\r\n }\r\n if (Array.isArray(componentRoles)) {\r\n const intersects = userRoles.filter(i => componentRoles.includes(i))\r\n return intersects.length > 0\r\n }\r\n return true\r\n}\r\n\r\nexport default canAccess\r\n","import React, { useEffect, useMemo } from \"react\"\r\nimport { useHistory, useLocation } from \"react-router-dom\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\n\r\nimport { setUser } from \"../redux/commons/action\"\r\n\r\nimport TheSidebar from \"./TheSidebar\"\r\nimport TheHeader from \"./TheHeader\"\r\nimport TheContent from \"./TheContent\"\r\nimport Loading from \"../components/Loading/Loading\"\r\n\r\nimport { ACCESS_TOKEN } from \"../utils/constants\"\r\nimport firstCheckToken from \"../utils/firstCheckToken\"\r\nimport canAccessRoute from \"../utils/canAccessRoute\"\r\nimport { getInfo } from \"../services/accountService\"\r\nimport \"../i18n\"\r\nimport { useTranslation } from \"react-i18next\"\r\n\r\nconst TheLayout = ({ routes, navigation }: any) => {\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n const user = useSelector((state: any) => state.common.user)\r\n const language = useSelector((state: any) => state.common.language)\r\n const { t } = useTranslation();\r\n const location = useLocation()\r\n const isNotification = location.pathname.includes(\"notifications\")\r\n const isDistrict = window.location.host.includes(\"-district\")\r\n\r\n const authRoutes = useMemo(() => {\r\n return routes\r\n .filter((route: any) => canAccessRoute(user?.roles, route.roles))\r\n .filter((route: any) => !!route.isDistrict === isDistrict)\r\n }, [user, language])\r\n\r\n const authNavigations = useMemo(() => {\r\n return navigation.map((item: any) => {\r\n return {\r\n ...item,\r\n name: t(item.name)\r\n }\r\n })\r\n .filter((nav: any) => canAccessRoute(user?.roles, nav.roles))\r\n .filter((nav: any) => !!nav.isDistrict === isDistrict)\r\n }, [user, language])\r\n\r\n useEffect(() => {\r\n checkAuthentication()\r\n }, [])\r\n\r\n const checkAuthentication = async () => {\r\n try {\r\n const tokenStatus = await firstCheckToken()\r\n tokenStatus ? loadInfo() : resetAuth()\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const loadInfo = async () => {\r\n try {\r\n const info = await getInfo()\r\n if (!info) {\r\n resetAuth()\r\n }\r\n\r\n dispatch(setUser(info.data))\r\n } catch (err) {\r\n resetAuth()\r\n }\r\n }\r\n\r\n const resetAuth = () => {\r\n localStorage.removeItem(ACCESS_TOKEN)\r\n history.push(\"/\")\r\n }\r\n\r\n if (!user) {\r\n return <Loading />\r\n }\r\n\r\n return (\r\n <div className=\"c-app c-default-layout\">\r\n {!isNotification && <TheSidebar navigation={authNavigations} />}\r\n <div className=\"c-wrapper\">\r\n {!isNotification && <TheHeader />}\r\n <div className=\"c-body bg-white\">\r\n <TheContent routes={authRoutes} />\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default TheLayout\r\n","import React, { CSSProperties, FC } from 'react'\r\nimport { Button } from 'reactstrap'\r\nimport { FaPlus } from 'react-icons/fa'\r\n\r\ninterface Props {\r\n text?: string\r\n onClick?(): void\r\n}\r\n\r\nconst buttonTextStyle: CSSProperties = {\r\n fontWeight: 500\r\n}\r\n\r\nconst buttonStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst AddButton: FC<Props> = ({ text, onClick }: Props) => {\r\n return (\r\n <Button\r\n onClick={onClick}\r\n color='success'\r\n style={buttonStyle}\r\n className='d-flex align-items-center'\r\n >\r\n <FaPlus />\r\n <span className='ml-2' style={buttonTextStyle}>\r\n {text}\r\n </span>\r\n </Button>\r\n )\r\n}\r\n\r\nexport default AddButton\r\n","import React, { FC } from \"react\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick?: () => any\r\n}\r\n\r\nconst DeleteButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Delete\"\r\n onClick={onClick}\r\n >\r\n <FaTrashAlt />\r\n </div>\r\n )\r\n}\r\n\r\nexport default DeleteButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n onClick: () => any\r\n}\r\n\r\nconst LinkEditButton: FC<Props> = ({ label, onClick }: Props) => {\r\n return (\r\n <Button className=\"text-left py-0\" color=\"link\" onClick={onClick}>\r\n {label}\r\n </Button>\r\n )\r\n}\r\n\r\nexport default LinkEditButton\r\n","import React, { CSSProperties, FC } from \"react\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\ninterface Props {\r\n label: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst EmptyDataAlert: FC<Props> = ({ label, className, style }: Props) => {\r\n return (\r\n <Alert color=\"primary\" className={className} style={style}>\r\n No {label} to display\r\n </Alert>\r\n )\r\n}\r\n\r\nEmptyDataAlert.defaultProps = {\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default EmptyDataAlert\r\n","import React, { useEffect, useState } from \"react\"\r\nimport Select from \"react-select\"\r\nimport {\r\n Col,\r\n // Input,\r\n Pagination,\r\n PaginationItem,\r\n PaginationLink,\r\n Row\r\n} from \"reactstrap\"\r\nimport {\r\n DEFAULT_PAGE_SIZE_VALUES,\r\n DEFAULT_PAGE_SIZE\r\n} from \"../../utils/constants\"\r\n\r\nconst CustomPagination = (props: any) => {\r\n const { filters, changePage, totalRecordCount, changePageSize } = props\r\n const [input, setInput] = useState<string>(\"\")\r\n\r\n useEffect(() => {\r\n setInput(filters.currentPage.toString())\r\n }, [filters.currentPage])\r\n\r\n return (\r\n <Row>\r\n <Col md={12} className=\"d-flex justify-content-end\">\r\n <Pagination>\r\n <div className=\"mr-1 pagination-dropdown\">\r\n <Select\r\n className=\"text-center\"\r\n value={\r\n !!filters && !!filters.pageSize\r\n ? {\r\n label: filters.pageSize,\r\n value: filters.pageSize\r\n }\r\n : DEFAULT_PAGE_SIZE\r\n }\r\n options={DEFAULT_PAGE_SIZE_VALUES}\r\n onChange={(e: any) => changePageSize(e.value)}\r\n />\r\n </div>\r\n\r\n <PaginationItem className=\"mr-1\">\r\n <PaginationLink\r\n previous\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={filters.currentPage <= 1}\r\n onClick={() => changePage(filters.currentPage - 1)}\r\n >\r\n Prev\r\n </PaginationLink>\r\n </PaginationItem>\r\n\r\n <input\r\n type=\"text\"\r\n id=\"pageNumberInput\"\r\n className=\"page-input text-center pagination-input\"\r\n onChange={(e: any) => setInput(e.target.value)}\r\n onKeyUp={(e: any) => {\r\n if (e.key === \"Enter\" || e.keyCode === 13) {\r\n changePage(parseInt(input))\r\n }\r\n }}\r\n value={input}\r\n />\r\n\r\n <PaginationItem className=\"ml-1\">\r\n <PaginationLink\r\n next\r\n tag=\"button\"\r\n className=\"h-100\"\r\n disabled={\r\n filters.currentPage >\r\n totalRecordCount / filters.pageSize\r\n }\r\n onClick={() => changePage(filters.currentPage + 1)}\r\n >\r\n Next\r\n </PaginationLink>\r\n </PaginationItem>\r\n </Pagination>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default CustomPagination\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setEmailTemplateList = createAction<any>(\r\n \"emailTemplate/setEmailTemplateList\"\r\n)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMailCategory = createAction<Array<object> | undefined>(\r\n \"mailCategories/setMailCategory\"\r\n)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst EMAIL_TEMPLATE_URL = `${BASE_URL}/api/emailtemplate`\r\n\r\nexport const get = (filter: Filter) =>\r\n api.get(EMAIL_TEMPLATE_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(EMAIL_TEMPLATE_URL, data)\r\n\r\nexport const update = (data: any) =>\r\n api.put(`${EMAIL_TEMPLATE_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${EMAIL_TEMPLATE_URL}/${id}`)\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { api } from \"./api\"\r\n\r\nconst MAIL_CATEGORY_URL = `${BASE_URL}/api/EmailTemplateCategory`\r\n\r\nexport const get = () => api.get(MAIL_CATEGORY_URL)\r\n","import { useState } from \"react\"\r\n\r\nimport { Filter } from \"../types/Filter\"\r\nimport { DEFAULT_FILTER } from \"../utils/constants\"\r\n\r\nconst useFilters = () => {\r\n const [filters, setFilters] = useState<Filter>(DEFAULT_FILTER)\r\n const changeFilters = (updatedFilters: any) => {\r\n const newFilters = {\r\n ...filters,\r\n ...updatedFilters\r\n }\r\n if (!!newFilters.searchString && !!updatedFilters.searchString && updatedFilters.searchString != filters.searchString) {\r\n newFilters.currentPage = 1\r\n }\r\n\r\n setFilters(newFilters)\r\n }\r\n\r\n return { filters, setFilters, changeFilters }\r\n}\r\n\r\nexport default useFilters\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setEmailTemplateList } from \"../../../redux/emailTemplates/action\"\r\nimport { setMailCategory } from \"../../../redux/mailCategories/action\"\r\nimport { get, remove } from \"../../../services/emailTemplateService\"\r\nimport { get as getCategory } from \"../../../services/mailCategoryService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst EMAIL_TEMPLATE_URL = \"/admin/email-template\"\r\nconst CREATE_TEMPLATE_URL = \"/admin/create-email-template\"\r\nconst TITLE = \"Email template list\"\r\n\r\nconst useEmailTemplateList = () => {\r\n const history = useHistory()\r\n const emailTemplateList = useSelector(\r\n (state: any) => state.emailTemplate.emailTemplateList\r\n )\r\n const totalItems = useSelector(\r\n (state: any) => state.emailTemplate.totalItems\r\n )\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setEmailTemplateList({ emailTemplateList: items, totalItems })\r\n )\r\n if (!!mailCategoryList && mailCategoryList.length == 0) {\r\n const response = await getCategory()\r\n dispatch(setMailCategory(response.data.items))\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this email template?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove template successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n const goToDetail = useCallback((id?: number) => {\r\n const url = !!id ? `${EMAIL_TEMPLATE_URL}/${id}` : CREATE_TEMPLATE_URL\r\n history.push(url)\r\n }, [])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n }\r\n}\r\n\r\nexport default useEmailTemplateList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\n\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport { format } from \"date-fns\"\r\nimport { DATE_RESULT } from \"../../../utils/constants\"\r\nimport useEmailTemplateList from \"../hooks/useEmailTemplateList\"\r\n\r\nconst header = \"Email template\"\r\n\r\nconst EmailTemplateList: FC = () => {\r\n const {\r\n emailTemplateList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n removeData,\r\n goToDetail,\r\n mailCategoryList\r\n } = useEmailTemplateList()\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text=\"Create template\"\r\n onClick={() => goToDetail()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of templates: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {emailTemplateList && emailTemplateList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Template name</th>\r\n <th className=\"align-top\">Category name</th>\r\n <th className=\"align-top\">Created date</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {emailTemplateList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.subject}\r\n onClick={() =>\r\n goToDetail(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.category.name}\r\n </td>\r\n <td className=\"align-middle\">\r\n {format(\r\n new Date(record.createdAt),\r\n DATE_RESULT\r\n )}\r\n </td>\r\n\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"template\" />\r\n )}\r\n <Row className=\"mt-2\">\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Category name</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {mailCategoryList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.name}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default EmailTemplateList\r\n","import React, { FC, CSSProperties } from \"react\"\r\nimport { Row, Col, Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n confirmText: string\r\n onConfirm: () => any\r\n onCancel: () => any\r\n}\r\n\r\nconst style: CSSProperties = {\r\n width: \"100%\",\r\n position: \"fixed\",\r\n bottom: 0,\r\n backgroundColor: \"#fff\",\r\n borderTop: \"1px solid #ddd\",\r\n marginTop: \"20px\",\r\n marginLeft: \"-30px\",\r\n padding: \"8px\",\r\n zIndex: 1\r\n}\r\n\r\nconst DetailActionButtons: FC<Props> = ({\r\n confirmText,\r\n onConfirm,\r\n onCancel\r\n}: Props) => {\r\n return (\r\n <Row form style={style}>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={onConfirm}\r\n >\r\n {confirmText}\r\n </Button>\r\n <Button size=\"sm\" className=\"px-4 mr-2 ml-2\" onClick={onCancel}>\r\n Cancel\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n}\r\n\r\nexport default DetailActionButtons\r\n","import React, { FC } from \"react\"\r\nimport { FaPlus } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst AddButtonIcon: FC<Props> = ({ onClick } : Props) => {\r\n return <div className=\"d-inline text-center cursor-pointer hover-opacity\" title=\"Delete\" onClick={onClick}>\r\n <FaPlus />\r\n </div>\r\n}\r\n\r\nexport default AddButtonIcon\r\n","import React, { FC } from \"react\"\r\nimport { Table } from \"reactstrap\"\r\n\r\nimport AddButtonIcon from \"../../../components/Buttons/AddButtonIcon\"\r\n\r\ninterface Props {\r\n onClick: any\r\n isResetPasswordTemplate: any\r\n}\r\n\r\nconst defaultparams = [\r\n { label: \"$USER_FIRST_NAME$\", meaning: \"User first name\" },\r\n { label: \"$USER_LAST_NAME$\", meaning: \"User last name\" },\r\n { label: \"$PASSWORD$\", meaning: \"Password\" },\r\n { label: \"$USER_NAME$\", meaning: \"User name\" },\r\n { label: \"$USER_EMAIL$\", meaning: \"User email\" },\r\n { label: \"$MESSAGE$\", meaning: \"Message\" },\r\n { label: \"$DOMAIN$\", meaning: \"Domain\" }\r\n]\r\n\r\nconst MailSubject: FC<Props> = ({\r\n onClick,\r\n isResetPasswordTemplate\r\n}: Props) => {\r\n !!isResetPasswordTemplate\r\n let params = !!isResetPasswordTemplate\r\n ? [...defaultparams, { label: \"$RESET_LINK$\", meaning: \"Reset link\" }]\r\n : defaultparams\r\n return (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Params</th>\r\n <th className=\"align-top\">Meaning</th>\r\n <th />\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {params.map(param => (\r\n <tr key={param.label}>\r\n <td className=\"align-middle\">{param.label}</td>\r\n <td className=\"align-middle\">{param.meaning}</td>\r\n <td className=\"text-center align-middle\">\r\n <AddButtonIcon onClick={() => onClick(param)} />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n )\r\n}\r\n\r\nexport default MailSubject\r\n","import React, { useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { setMailCategory } from \"../../redux/mailCategories/action\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { get as getCategory } from \"../../services/mailCategoryService\"\r\n\r\nconst MailCategorySelector = (props: any) => {\r\n const dispatch = useDispatch()\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n useEffect(() => {\r\n fetchMailCategory()\r\n }, [])\r\n const fetchMailCategory = async () => {\r\n try {\r\n const res = await getCategory()\r\n dispatch(setMailCategory(res.data.items))\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = mailCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default MailCategorySelector\r\n","import React, { FC, memo } from \"react\"\r\nimport { Label } from \"reactstrap\"\r\n\r\ninterface Props {\r\n text: string\r\n}\r\n\r\nconst RequiredLabel: FC<Props> = ({ text }: Props) => {\r\n return (\r\n <Label>\r\n {text}\r\n <span className=\"ml-2 text-danger\">*</span>\r\n </Label>\r\n )\r\n}\r\n\r\nexport default memo(RequiredLabel)\r\n","import React from \"react\"\r\nimport { Prompt } from \"react-router-dom\"\r\n\r\nconst quitAlertMessage =\r\n \"You have some changes. Click OK to discard or click Cancel to continue edit, then click Update below to save your changes.\"\r\n\r\nexport default function QuitPrompt(props: any) {\r\n const { when } = props\r\n return <Prompt when={when} message={quitAlertMessage} />\r\n}\r\n","import React, { FC, Fragment } from \"react\"\r\n\r\ninterface Props {\r\n label: string\r\n onRemove: any\r\n}\r\n\r\nconst AttachmentFile: FC<Props> = ({ label, onRemove }: Props) => {\r\n return (\r\n <Fragment>\r\n <span className=\"mr-2\">{label}</span>\r\n <i\r\n className=\"fa fa-times text-danger cursor-pointer hover-opacity\"\r\n onClick={onRemove}\r\n />\r\n </Fragment>\r\n )\r\n}\r\n\r\nexport default AttachmentFile\r\n","import { BASE_URL } from \"../utils/constants\"\r\nimport { apiUpload, api } from \"./api\"\r\n\r\nconst UPLOAD_FILE_URL = `${BASE_URL}/api/file`\r\nconst SYSTEM_PROFILE = `${UPLOAD_FILE_URL}/system/profile`\r\nconst SYSTEM_STUDENT_BADGE = `${UPLOAD_FILE_URL}/system/student-badge`\r\nconst SYSTEM_CERTIFICATE = `${UPLOAD_FILE_URL}/system/certificate`\r\nconst SYSTEM_EMAIL = `${UPLOAD_FILE_URL}/system/email-attachment`\r\nconst SYSTEM_QUESTION = `${UPLOAD_FILE_URL}/system/question`\r\nconst SYSTEM_ANSWER = `${UPLOAD_FILE_URL}/system/answer`\r\nconst SYSTEM_TUTORIAL = `${UPLOAD_FILE_URL}/system/tutorial`\r\nconst CUSTOM_KEY = `${UPLOAD_FILE_URL}/custom-key`\r\nconst DELETE_FILE = `${UPLOAD_FILE_URL}/delete-file`\r\nconst DELETE_FOLDER = `${UPLOAD_FILE_URL}/delete-folder`\r\nconst CREATE_FOLDER = `${UPLOAD_FILE_URL}/create-folder`\r\nconst RENAME_FILE = `${UPLOAD_FILE_URL}/rename-file`\r\n\r\nexport const uploadFile = (formData: FormData) =>\r\n apiUpload.post(UPLOAD_FILE_URL, formData)\r\nexport const systemStudentBadge = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_STUDENT_BADGE, formData)\r\nexport const systemCertificateUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_CERTIFICATE, formData)\r\nexport const systemProfileUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_PROFILE, formData)\r\nexport const systemEmailUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_EMAIL, formData)\r\nexport const systemQuestionUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_QUESTION, formData)\r\nexport const systemAnswerUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_ANSWER, formData)\r\nexport const systemTutorialUpload = (formData: FormData) =>\r\n apiUpload.post(SYSTEM_TUTORIAL, formData)\r\nexport const customKeyUpload = (formData: FormData) =>\r\n apiUpload.post(CUSTOM_KEY, formData)\r\nexport const deleteFile = (key: string) =>\r\n api.delete(`${DELETE_FILE}?key=${key}`)\r\nexport const deleteFolder = (key: string) =>\r\n api.delete(`${DELETE_FOLDER}?key=${key}`)\r\nexport const createFolder = (prefix: string, folderName: string) =>\r\n api.post(CREATE_FOLDER, {\r\n prefix: prefix || \"\",\r\n folderName: folderName\r\n })\r\nexport const renameFile = (key: string, name: string) =>\r\n api.post(RENAME_FILE, { key: key, name: name })\r\n","import getFileUrl from \"../utils/getFileUrl\"\r\nimport { ANSWER_EDITOR_HEIGHT } from \"./../utils/constants\"\r\nimport {\r\n systemEmailUpload,\r\n systemQuestionUpload,\r\n systemAnswerUpload,\r\n systemTutorialUpload\r\n} from \"../services/fileServices\"\r\n\r\nconst config: any = {\r\n height: 500,\r\n menubar: false,\r\n force_br_newlines: true,\r\n force_p_newlines: false,\r\n branding: false,\r\n convert_urls: false,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image`,\r\n paste_data_images: true\r\n}\r\n\r\nconst email = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemEmailUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst question = {\r\n ...config,\r\n images_upload_handler: async function (blobInfo: any, success: any) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemQuestionUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst answer = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemAnswerUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n }\r\n}\r\n\r\nconst tutorial = {\r\n ...config,\r\n height: ANSWER_EDITOR_HEIGHT,\r\n media_live_embeds: true,\r\n plugins: `advlist autolink lists link image charmap print preview anchor\r\n searchreplace visualblocks code fullscreen\r\n insertdatetime media table paste code help wordcount media`,\r\n toolbar: `undo redo | formatselect | bold italic backcolor | \\\r\n alignleft aligncenter alignright alignjustify | \\\r\n bullist numlist outdent indent | removeformat | image | media`,\r\n images_upload_handler: async function (blobInfo: any, success: Function) {\r\n const imageFile = new FormData()\r\n imageFile.append(\"file\", blobInfo.blob(), blobInfo.filename())\r\n try {\r\n const { data } = await systemTutorialUpload(imageFile)\r\n success(getFileUrl(data.key))\r\n } catch (err) {\r\n return\r\n }\r\n },\r\n file_picker_callback: function (cb: any) {\r\n var input = document.createElement(\"input\")\r\n input.setAttribute(\"type\", \"file\")\r\n input.setAttribute(\"accept\", \"video/*\")\r\n input.onchange = async function (e: any) {\r\n const file = e.target.files[0]\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n\r\n const { data } = await systemTutorialUpload(formData)\r\n cb(getFileUrl(data.key))\r\n }\r\n\r\n input.click()\r\n }\r\n}\r\n\r\nconst editorConfig = {\r\n email,\r\n question,\r\n answer,\r\n tutorial\r\n}\r\n\r\nexport default editorConfig\r\n","import { useState, useEffect, useCallback } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { getById, update, create } from \"../../../services/emailTemplateService\"\r\nimport { systemEmailUpload } from \"../../../services/fileServices\"\r\n\r\ntype Attachment = {\r\n id?: number\r\n name: string\r\n key: string\r\n}\r\n\r\ntype EmailTemplateDetail = {\r\n id?: number\r\n subject: string\r\n categoryId: number\r\n body: string\r\n attachments: Attachment[]\r\n}\r\n\r\nconst initValue: EmailTemplateDetail = {\r\n id: 0,\r\n subject: \"\",\r\n categoryId: 0,\r\n body: \"\",\r\n attachments: []\r\n}\r\n\r\nconst EMAIL_TEMPLATE_LIST_URL = \"/admin/email-template\"\r\nconst TITLE = \"Email template detail\"\r\nconst MAX_FILES_SIZE = 4194304\r\n\r\nconst useEmailTemplateDetail = (id?: number) => {\r\n let editorRef: any\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [\r\n emailTemplateDetail,\r\n setEmailTemplateDetail\r\n ] = useState<EmailTemplateDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n\r\n const [removedFiles, setRemovedFiles] = useState<string[]>([])\r\n const [fileUpload, setFileUpload] = useState<any>([])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as number)\r\n setEmailTemplateDetail({\r\n id: res.data.id,\r\n subject: res.data.subject,\r\n categoryId: res.data.category.id,\r\n body: res.data.body,\r\n attachments: res.data.attachments || []\r\n })\r\n document.title = res.data.subject\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceSetContent\",\r\n false,\r\n res.data.body\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const setEditorRef = (node: any) => (editorRef = node)\r\n\r\n const addParams = (params: any) => {\r\n editorRef &&\r\n editorRef.editor.execCommand(\r\n \"mceInsertContent\",\r\n false,\r\n ` ${params.label}`\r\n )\r\n }\r\n\r\n const backToList = useCallback(() => {\r\n history.push(EMAIL_TEMPLATE_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!fileUpload && !!fileUpload.length) {\r\n const fileData: any = await uploadFiles()\r\n const newAttachments = fileData.map((item: any) => ({\r\n key: item.data.key,\r\n name: item.data.name\r\n }))\r\n data.attachments = [...data.attachments, ...newAttachments]\r\n }\r\n const next = !!id ? update : create\r\n\r\n await next(data)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } template successfully`\r\n })\r\n )\r\n\r\n backToList()\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, fileUpload]\r\n )\r\n\r\n const onAttachFile = () => {\r\n const inputs = document.getElementsByClassName(\"input-attachment\")\r\n const newInput = document.createElement(\"input\")\r\n const emailDetail = document.getElementById(\"email-detail\")\r\n emailDetail?.append(newInput)\r\n newInput.className = \"input-attachment\"\r\n newInput.id = `inputAttachment-${inputs.length + 1}`\r\n newInput.type = \"file\"\r\n newInput.style.display = \"none\"\r\n newInput.setAttribute(\"multiple\", \"multiple\")\r\n newInput.addEventListener(\"change\", updateAttachment)\r\n newInput.click()\r\n }\r\n\r\n const updateAttachment = () => {\r\n const files: any = []\r\n let totalSize = 0\r\n\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n totalSize += file.size\r\n\r\n if (totalSize > MAX_FILES_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Max attachment size is 4MB\"\r\n })\r\n )\r\n totalSize -= file.size\r\n attachmentInput.remove()\r\n }\r\n }\r\n }\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n\r\n if (\r\n !removedFiles.includes(file) &&\r\n !files.some((file: any) => file.name === name)\r\n ) {\r\n files.push({ name, inputId: attachmentInput.id })\r\n }\r\n }\r\n\r\n continue\r\n }\r\n\r\n setFileUpload(files)\r\n }\r\n\r\n const removeAttachment = (inputId: string, fileName: string) => {\r\n if (\r\n fileUpload.filter((item: any) => item.inputId === inputId)\r\n .length === 1\r\n ) {\r\n const thisInput = document.getElementById(inputId)\r\n thisInput?.remove()\r\n\r\n let newRemovedFile = fileUpload.filter(\r\n (removed: any) => removed.inputId === inputId\r\n )\r\n\r\n fileUpload.filter(\r\n (item: any) => item.inputId !== newRemovedFile.inputId\r\n )\r\n removedFiles.push(newRemovedFile)\r\n\r\n setRemovedFiles([...removedFiles])\r\n setFileUpload([...fileUpload])\r\n return\r\n }\r\n\r\n setRemovedFiles([...removedFiles, fileName])\r\n }\r\n\r\n useEffect(() => {\r\n updateAttachment()\r\n }, [removedFiles])\r\n\r\n const uploadFiles = async () => {\r\n const attachmentInputs: any = document.getElementsByClassName(\r\n \"input-attachment\"\r\n )\r\n\r\n const promises: Promise<any>[] = []\r\n\r\n for (const attachmentInput of attachmentInputs) {\r\n for (const file of attachmentInput.files) {\r\n const { name } = file\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n promises.push(systemEmailUpload(formData))\r\n }\r\n }\r\n\r\n return Promise.all(promises)\r\n }\r\n\r\n return {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n updateAttachment,\r\n fileUpload,\r\n removeAttachment\r\n }\r\n}\r\n\r\nexport default useEmailTemplateDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst schema = yup.object({\r\n subject: yup.string().required(\"Template subject is required\"),\r\n categoryId: yup\r\n .number()\r\n .required(\"Template category is required\")\r\n .test(\r\n \"test category id\",\r\n \"Template category is required\",\r\n (value: number) => value >= 1\r\n ),\r\n comment: yup.string(),\r\n body: yup.string().required(\"Template body is required\")\r\n})\r\n\r\nexport default schema\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Input, Label, Button } from \"reactstrap\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport { Editor } from \"@tinymce/tinymce-react\"\r\nimport { Formik } from \"formik\"\r\n\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport MailParam from \"../components/MailParam\"\r\nimport MailCategorySelector from \"../../../components/Selectors/MailCategorySelectors\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\nimport AttachmentFile from \"../components/AttachmentFile\"\r\nimport editorConfig from \"../../../configs/editorConfig\"\r\nimport { TINY_MCE_API_KEY } from \"../../../utils/constants\"\r\n\r\nimport useEmailTemplateDetail from \"../hooks/useEmailTemplateDetail\"\r\nimport schema from \"../configs/emailTemplateSchema\"\r\nimport { useSelector } from \"react-redux\"\r\n\r\nconst CREATE_TEMPLATE_HEADER = \"Create email template\"\r\nconst EDIT_TEMPLATE_HEADER = \"Edit email template\"\r\n\r\nconst EmailTemplateDetail: FC = () => {\r\n const { id } = useParams<{ id: string }>()\r\n\r\n const {\r\n emailTemplateDetail,\r\n setEditorRef,\r\n addParams,\r\n backToList,\r\n confirmData,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n onAttachFile,\r\n fileUpload,\r\n removeAttachment\r\n } = useEmailTemplateDetail(parseInt(id))\r\n\r\n const header = !!id ? EDIT_TEMPLATE_HEADER : CREATE_TEMPLATE_HEADER\r\n\r\n const confirmText = !!id ? \"Update\" : \"Create\"\r\n\r\n const mailCategoryList = useSelector(\r\n (state: any) => state.mailCategory.mailCategoryList\r\n )\r\n return (\r\n <Formik\r\n initialValues={emailTemplateDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData(values)\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n\r\n return (\r\n <div\r\n className=\"animated fadeIn detail-buttons-padding\"\r\n id=\"email-detail\"\r\n >\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <RequiredLabel text=\"Mail subject\" />\r\n <Input\r\n placeholder=\"Mail subject\"\r\n name=\"subject\"\r\n value={values.subject}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n className=\"selector-input\"\r\n />\r\n {touched.subject && errors.subject && (\r\n <ErrorHandler text={errors.subject} />\r\n )}\r\n </Col>\r\n <Col md={4}>\r\n <RequiredLabel text=\"Category\" />\r\n <MailCategorySelector\r\n onChange={(e: any) => {\r\n setFieldValue(\"categoryId\", e.value)\r\n setEditedTrue()\r\n }}\r\n id={values.categoryId}\r\n />\r\n {touched.categoryId && errors.categoryId && (\r\n <ErrorHandler text={errors.categoryId} />\r\n )}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text=\"Mail body\" />\r\n {(emailTemplateDetail.body || !id) && (\r\n <Editor\r\n ref={node => setEditorRef(node)}\r\n apiKey={TINY_MCE_API_KEY}\r\n initialValue={\r\n emailTemplateDetail.body\r\n }\r\n init={editorConfig.email}\r\n onEditorChange={content => {\r\n setFieldValue(\r\n \"body\",\r\n content\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n )}\r\n {touched.body && errors.body && (\r\n <ErrorHandler text={errors.body} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n <Col md={3}>\r\n <Button\r\n color=\"link\"\r\n size=\"sm\"\r\n className=\"pl-0\"\r\n onClick={onAttachFile}\r\n >\r\n Add attachment\r\n </Button>\r\n </Col>\r\n <Col md={12}>\r\n <Row>\r\n {values.attachments.map(\r\n attachment => (\r\n <Col\r\n md={2}\r\n key={\r\n attachment.key\r\n }\r\n >\r\n <AttachmentFile\r\n label={\r\n attachment.name\r\n }\r\n onRemove={() =>\r\n setFieldValue(\r\n \"attachments\",\r\n values.attachments.filter(\r\n a =>\r\n a.name !==\r\n attachment.name\r\n )\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n {fileUpload.map(\r\n (\r\n file: any,\r\n index: number\r\n ) => (\r\n <Col\r\n md={2}\r\n key={index}\r\n className=\"d-flex align-items-center\"\r\n >\r\n <AttachmentFile\r\n label={\r\n file.name\r\n }\r\n onRemove={() =>\r\n removeAttachment(\r\n file.inputId,\r\n file.name\r\n )\r\n }\r\n />\r\n </Col>\r\n )\r\n )}\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n </Col>\r\n <Col md={4}>\r\n <Label>Mail params</Label>\r\n <MailParam\r\n onClick={(param: any) => addParams(param)}\r\n isResetPasswordTemplate={\r\n values.categoryId ==\r\n (mailCategoryList &&\r\n mailCategoryList.length > 0 &&\r\n mailCategoryList.filter(\r\n (c: any) =>\r\n c.name == \"Reset password\"\r\n )[0].id)\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default EmailTemplateDetail\r\n","import React, {\r\n forwardRef,\r\n useState,\r\n useCallback,\r\n useImperativeHandle\r\n} from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\n\r\nimport { setAlert, setModal } from \"../../redux/commons/action\"\r\n\r\nconst CommonModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n children,\r\n onConfirm,\r\n onCancel,\r\n confirmText,\r\n cancelText,\r\n noFooter,\r\n size,\r\n edited,\r\n setEditedFalse\r\n } = props\r\n const [isOpen, setIsOpen] = useState(false)\r\n const dispatch = useDispatch()\r\n const showEditedWarningModal = (cb: any) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Are you sure to cancel?\",\r\n onConfirm: async () => {\r\n cb()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }\r\n const onToggle = () => {\r\n !!setEditedFalse && setEditedFalse()\r\n setIsOpen(!isOpen)\r\n !!isOpen && !!onCancel && onCancel()\r\n }\r\n const toggle = useCallback(\r\n (isShowConfirm?: boolean, cb?: any) => {\r\n if (!!isShowConfirm) {\r\n showEditedWarningModal(() => {\r\n onToggle()\r\n !!cb && cb()\r\n })\r\n } else {\r\n onToggle()\r\n !!cb && cb()\r\n }\r\n },\r\n [isOpen]\r\n )\r\n\r\n const cancel = useCallback(() => {\r\n toggle(!!edited, () => {\r\n onCancel && onCancel()\r\n })\r\n }, [toggle, onCancel, edited])\r\n\r\n useImperativeHandle(ref, () => ({\r\n toggle\r\n }))\r\n\r\n return (\r\n <Modal isOpen={isOpen} toggle={() => toggle(!!edited)} size={size}>\r\n <ModalHeader toggle={() => toggle(!!edited)}>{header}</ModalHeader>\r\n <ModalBody>{children}</ModalBody>\r\n {!noFooter && (\r\n <ModalFooter className=\"text-right\">\r\n {onConfirm && (\r\n <Button color=\"primary\" onClick={onConfirm}>\r\n {confirmText || \"Confirm\"}\r\n </Button>\r\n )}\r\n <Button onClick={cancel}>{cancelText || \"Cancel\"}</Button>\r\n </ModalFooter>\r\n )}\r\n </Modal>\r\n )\r\n}\r\n\r\nexport default forwardRef(CommonModal)\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n question: yup.string().required(\"Question is required\"),\r\n answer: yup.string().required(\"Answer is required\")\r\n})\r\n\r\nconst FaqDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n faqDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = props\r\n return (\r\n <Formik\r\n initialValues={faqDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={onCancel}\r\n ref={ref}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <RequiredLabel text=\"Question\" />\r\n <Input\r\n type=\"textarea\"\r\n name=\"question\"\r\n placeholder=\"Question\"\r\n value={values.question}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.question && errors.question && (\r\n <ErrorHandler\r\n text={errors.question as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"pt-2\">\r\n <RequiredLabel text=\"Answer\" />\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"answer\"\r\n placeholder=\"Answer\"\r\n value={values.answer}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"answer\")}\r\n />\r\n {touched.answer && errors.answer && (\r\n <ErrorHandler\r\n text={errors.answer as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(FaqDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFaqList = createAction<any>(\"faqs/setFaqList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst FAQ_URL = `${BASE_URL}/api/SystemFaq`\r\n\r\nexport const get = (filter: Filter) => api.get(FAQ_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${FAQ_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(FAQ_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${FAQ_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${FAQ_URL}/${id}`)\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { setFaqList } from \"../../../redux/faqs/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/faqService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst TITLE = \"FAQ list\"\r\nconst useFaqList = () => {\r\n const faqList = useSelector((state: any) => state.faqs.faqList)\r\n const totalItems = useSelector((state: any) => state.faqs.totalItems)\r\n\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setFaqList({ faqList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this FAQ?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove question successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return { faqList, totalItems, filters, changeFilters, getData, removeData }\r\n}\r\n\r\nexport default useFaqList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/faqService\"\r\n\r\ntype FaqDetail = {\r\n question: string\r\n answer: string\r\n}\r\n\r\nconst initValue: FaqDetail = {\r\n question: \"\",\r\n answer: \"\"\r\n}\r\n\r\nconst useFaqDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [faqDetail, setFaqDetail] = useState<FaqDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setFaqDetail(initValue)\r\n }, [id])\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const reset = () => {\r\n setFaqDetail(initValue)\r\n setId(0)\r\n }\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setFaqDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } FAQ successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, faqDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useFaqDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport FaqDetailModal from \"../components/FaqDetailModal\"\r\n\r\nimport useFaqList from \"../hooks/useFaqList\"\r\nimport useFaqDetail from \"../hooks/useFaqDetail\"\r\n\r\nconst header = \"FAQ\"\r\n\r\nconst FaqList: FC = () => {\r\n const modal = useRef<any>()\r\n\r\n const {\r\n faqList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useFaqList()\r\n\r\n const {\r\n id,\r\n setId,\r\n faqDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useFaqDetail()\r\n\r\n const openModal = (faqId?: number) => {\r\n !!faqId ? setId(faqId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n const onCancel = () => reset()\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <FaqDetailModal\r\n ref={modal}\r\n header={!!id ? \"Edit FAQ\" : \"Create FAQ\"}\r\n confirmText={!!id ? \"Update\" : \"Create\"}\r\n onConfirm={onConfirm}\r\n onCancel={onCancel}\r\n faqDetail={faqDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n />\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton text=\"Create FAQ\" onClick={() => openModal()} />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n Total of FAQs: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {faqList && faqList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Question</th>\r\n <th className=\"align-top\">Answer</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {faqList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.question}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.answer}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label=\"FAQ\" />\r\n )}\r\n </Col>\r\n <Col md={8}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default FaqList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst SKILL_URL = `${BASE_URL}/api/Skill`\r\n\r\nexport const get = (filter?: Filter) => api.get(SKILL_URL, { params: filter })\r\n\r\nexport const getById = (id: number) => api.get(`${SKILL_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(SKILL_URL, data)\r\n\r\nexport const update = (data: any) => api.put(`${SKILL_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: number) => api.delete(`${SKILL_URL}/${id}`)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { get } from \"../../../services/skillService\"\r\n\r\nconst SkillSelector = (props: any) => {\r\n const [skillList, setSkillList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchSkill()\r\n }, [])\r\n\r\n const fetchSkill = async () => {\r\n try {\r\n const res = await get()\r\n setSkillList(res.data.items)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n const { id, isDisabled } = props\r\n const arrSkill = skillList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.path ? `${i.path}/${i.name}` : i.name\r\n }\r\n })\r\n\r\n return (\r\n <CustomSelector\r\n options={arrSkill}\r\n defaultValue={id}\r\n {...props}\r\n isDisabled={isDisabled}\r\n />\r\n )\r\n}\r\n\r\nexport default SkillSelector\r\n","import React, { forwardRef } from \"react\"\r\nimport { Row, Col, Input, Label } from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport * as yup from \"yup\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport SkillSelector from \"./SkillSelector\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\"),\r\n description: yup.string()\r\n})\r\n\r\nconst SkillDetailModal = (props: any, ref: any) => {\r\n const {\r\n header,\r\n confirmText,\r\n onConfirm,\r\n skillDetail,\r\n onCancel,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse,\r\n isDisabled\r\n } = props\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <Formik\r\n initialValues={skillDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n resetForm\r\n } = formikProps\r\n\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n onCancel={() => {\r\n onCancel()\r\n resetForm()\r\n }}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedFalse={setEditedFalse}\r\n >\r\n <Row>\r\n <Col md={12} className=\"mb-2\">\r\n <RequiredLabel text={t(\"name\")} />\r\n <Input\r\n name=\"name\"\r\n placeholder={t(\"name\")}\r\n value={values.name}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"name\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"description\")}</Label>\r\n <Input\r\n type=\"textarea\"\r\n rows={5}\r\n name=\"description\"\r\n placeholder={t(\"description\")}\r\n value={values.description}\r\n onChange={e => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"description\")}\r\n />\r\n </Col>\r\n <Col md={12} className=\"mb-2\">\r\n <Label>{t(\"parent_category\")}</Label>\r\n <SkillSelector\r\n isDisabled={isDisabled}\r\n onChange={(e: any) => {\r\n formikProps.setFieldValue(\r\n \"parentSkillId\",\r\n e.value\r\n )\r\n setEditedTrue()\r\n }}\r\n id={values.parentSkillId}\r\n />\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(SkillDetailModal)\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSkillList = createAction<any>(\"skills/setSkillList\")\r\n","import { useEffect, useCallback } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { setSkillList } from \"../../../redux/skills/action\"\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\n\r\nimport { get, remove } from \"../../../services/skillService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\n\r\nconst TITLE = \"Skill list\"\r\nconst useSkillList = () => {\r\n const skillList = useSelector((state: any) => state.skills.skillList)\r\n const totalItems = useSelector((state: any) => state.skills.totalItems)\r\n\r\n const { filters, changeFilters } = useFilters()\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(setSkillList({ skillList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n const removeData = useCallback(\r\n (id: number) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this skill?\",\r\n onConfirm: async () => {\r\n try {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove skill successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n } catch (error) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n error.response?.data?.title ||\r\n error.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n return {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n }\r\n}\r\n\r\nexport default useSkillList\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { setAlert, setLoading } from \"../../../redux/commons/action\"\r\nimport { create, getById, update } from \"../../../services/skillService\"\r\n\r\ntype SkillDetail = {\r\n name: string\r\n description: string\r\n path: string\r\n parentSkillId?: number | null\r\n}\r\n\r\nconst initValue: SkillDetail = {\r\n name: \"\",\r\n description: \"\",\r\n path: \"\",\r\n parentSkillId: null\r\n}\r\n\r\nconst useSkillDetail = () => {\r\n const dispatch = useDispatch()\r\n\r\n const [id, setId] = useState(0)\r\n const [skillDetail, setSkillDetail] = useState<SkillDetail>(initValue)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n const setEditedFalse = async () => {\r\n !!localStorage.getItem(window.location.href) &&\r\n localStorage.removeItem(window.location.href)\r\n setEdited(false)\r\n }\r\n useEffect(() => {\r\n !!id ? getData() : setSkillDetail(initValue)\r\n }, [id])\r\n\r\n const reset = () => {\r\n setId(0)\r\n setSkillDetail(initValue)\r\n }\r\n\r\n useEffect(() => {\r\n setEditedFalse()\r\n }, [])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await getById(id)\r\n setSkillDetail(res.data)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const confirmData = useCallback(\r\n async (values: any, cb: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const next = !!id ? update : create\r\n await next(values)\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } skill successfully`\r\n })\r\n )\r\n\r\n cb && cb()\r\n !!id && setId(0)\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, skillDetail]\r\n )\r\n\r\n return {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n initValue,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n }\r\n}\r\n\r\nexport default useSkillDetail\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport AddButton from \"../../../components/Buttons/AddButton\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nimport SkillDetailModal from \"../components/SkillDetailModal\"\r\n\r\nimport useSkillList from \"../hooks/useSkillList\"\r\nimport useSkillDetail from \"../hooks/useSkillDetail\"\r\n\r\nconst SkillList: FC = () => {\r\n const modal = useRef<any>()\r\n const { t } = useTranslation()\r\n const {\r\n skillList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n getData,\r\n removeData\r\n } = useSkillList()\r\n\r\n const {\r\n id,\r\n setId,\r\n skillDetail,\r\n confirmData,\r\n reset,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n setEditedFalse\r\n } = useSkillDetail()\r\n\r\n const openModal = (skillId?: number) => {\r\n !!skillId ? setId(skillId) : setId(0)\r\n modal && modal.current && modal.current.toggle()\r\n }\r\n\r\n const onConfirm = (values: any) => {\r\n confirmData(values, () => {\r\n modal && modal.current && modal.current.toggle()\r\n getData()\r\n })\r\n setEditedFalse()\r\n }\r\n\r\n const onRemove = (id: number) => {\r\n removeData(id)\r\n }\r\n\r\n const onCancel = () => reset()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <SkillDetailModal\r\n ref={modal}\r\n header={!!id ? t(\"edit_skill\") : t(\"create_skill\")}\r\n confirmText={!!id ? t(\"update\") : t(\"create\")}\r\n onCancel={onCancel}\r\n onConfirm={onConfirm}\r\n skillDetail={skillDetail}\r\n edited={edited}\r\n setEdited={setEdited}\r\n setEditedTrue={setEditedTrue}\r\n setEditedFalse={setEditedFalse}\r\n isDisabled={id}\r\n />\r\n <QuitPrompt when={edited} />\r\n <Row className=\"my-2\">\r\n <Col md={4}>\r\n <AddButton\r\n text={t(\"create_skill\")}\r\n onClick={() => openModal()}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex align-items-center justify-content-end\"\r\n >\r\n {t(\"total_of_skills\")}: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n {skillList && skillList.length > 0 ? (\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t('name')}</th>\r\n <th className=\"align-top\">{t('description')}</th>\r\n <th className=\"text-center\">{t('action')}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {skillList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={record.name}\r\n onClick={() =>\r\n openModal(record.id)\r\n }\r\n />\r\n {!!record.path && (\r\n <p className=\"mb-0 pl-3\">\r\n <i>{record.path}</i>\r\n </p>\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.description}\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n onRemove(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n ) : (\r\n <EmptyDataAlert label={t(\"skill\")} />\r\n )}\r\n </Col>\r\n <Col md={8} className=\"text-right\">\r\n <CustomPagination\r\n totalRecordCount={totalItems}\r\n filters={filters}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default SkillList\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setUserList = createAction<any>(\"users/setUserList\")\r\n\r\nexport const setStudentList = createAction<any>(\"users/setStudentList\")\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { Filter } from \"../types/Filter\"\r\n\r\nconst USER_URL = `${BASE_URL}/api/user`\r\nconst STUDENT_URL = `${BASE_URL}/api/student`\r\nconst CHANGE_PASSWORD = `${BASE_URL}/api/Account/changePassword`\r\nconst ACCOUNT_URL = `${BASE_URL}/api/account`\r\nconst EDU_USER_URL = `${BASE_URL}/api/User/delete-item-user`\r\nexport const get = (filter: Filter) =>\r\n api.get(`${USER_URL}`, { params: filter })\r\n\r\nexport const getById = (id: string) => api.get(`${USER_URL}/${id}`)\r\n\r\nexport const create = (data: any) => api.post(`${USER_URL}`, data)\r\n\r\nexport const update = (data: any) => api.put(`${USER_URL}/${data.id}`, data)\r\n\r\nexport const remove = (id: string) => api.delete(`${EDU_USER_URL}/${id}`)\r\n\r\nexport const getAllStudent = (filter?: Filter) =>\r\n api.get(`${STUDENT_URL}`, { params: filter })\r\n\r\nexport const changePassword = (formData: any) =>\r\n api.post(CHANGE_PASSWORD, formData)\r\n\r\nexport const forgotChangePassword = (data: any) =>\r\n api.post(`${ACCOUNT_URL}/forgotchangepassword`, data)\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setUserList } from \"../../../redux/users/action\"\r\nimport { get, remove } from \"../../../services/userService\"\r\nimport useFilters from \"../../../hooks/useFilters\"\r\nimport { ROLES } from \"../../../utils/constants\"\r\n\r\nconst USER_URL = \"/admin/user\"\r\nconst CREATE_USER_URL = \"/admin/create-user\"\r\nconst TITLE = \"User list\"\r\nconst useUserList = () => {\r\n const history = useHistory()\r\n const query = new URLSearchParams(location.search)\r\n const queryName = query.get(\"query\")\r\n const userList = useSelector((state: any) => state.users.userList)\r\n const totalItems = useSelector((state: any) => state.users.totalItems)\r\n const { filters, changeFilters } = useFilters()\r\n const [fullName, setFullName] = useState<any>(!!queryName ? queryName : \"\")\r\n\r\n const dispatch = useDispatch()\r\n\r\n const getData = useCallback(\r\n async (fullName?: string) => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = !fullName\r\n ? await get(filters)\r\n : await get({ ...filters, searchString: fullName })\r\n const { items, totalItems } = res.data\r\n for (const user of items) {\r\n user.roles = user.roles.includes(\"EduTeacher\")\r\n ? [ROLES.EDUTEACHER]\r\n : user.roles\r\n }\r\n dispatch(setUserList({ userList: items, totalItems }))\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [dispatch, filters]\r\n )\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!!fullName) {\r\n getData(fullName)\r\n setFullName(null)\r\n } else {\r\n getData()\r\n }\r\n }, [filters])\r\n\r\n const removeData = useCallback(\r\n (id: string) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: \"Do you want to remove this user?\",\r\n onConfirm: async () => {\r\n await remove(id)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Remove user successfully\"\r\n })\r\n )\r\n changeFilters({ currentPage: 1 })\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n },\r\n [filters]\r\n )\r\n\r\n const reDirectDetailPage = (id?: number) => {\r\n const url = !!id ? `${USER_URL}/${id}` : CREATE_USER_URL\r\n history.push(url)\r\n }\r\n return {\r\n userList,\r\n totalItems,\r\n filters,\r\n queryName,\r\n getData,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n }\r\n}\r\n\r\nexport default useUserList\r\n","import React, {\r\n FC,\r\n memo,\r\n useState,\r\n useEffect,\r\n useCallback,\r\n CSSProperties\r\n} from \"react\"\r\nimport { Input } from \"reactstrap\"\r\n\r\ninterface Props {\r\n initValue: string\r\n onSearch: (searchString?: string) => any\r\n placeholder?: string\r\n className?: string\r\n style?: CSSProperties\r\n}\r\n\r\nconst SearchBox: FC<Props> = ({\r\n initValue,\r\n onSearch,\r\n placeholder,\r\n className,\r\n style\r\n}: Props) => {\r\n const [searchString, setSearchString] = useState(initValue)\r\n useEffect(() => {\r\n setSearchString(initValue)\r\n }, [initValue])\r\n\r\n const onKeyUp = useCallback(\r\n (e: any) => {\r\n e.key === \"Enter\" && onSearch(searchString)\r\n },\r\n [searchString, onSearch]\r\n )\r\n\r\n return (\r\n <Input\r\n placeholder={placeholder}\r\n value={searchString}\r\n onChange={e => setSearchString(e.target.value)}\r\n onKeyUp={onKeyUp}\r\n className={className}\r\n style={style}\r\n />\r\n )\r\n}\r\n\r\nSearchBox.defaultProps = {\r\n placeholder: \"Type something to search\",\r\n className: \"\",\r\n style: {}\r\n}\r\n\r\nexport default memo(SearchBox)\r\n","import React, { FC, CSSProperties } from \"react\"\r\n\r\nimport AddButton from \"../Buttons/AddButton\"\r\nimport SearchBox from \"./SearchBox\"\r\n\r\ninterface Props {\r\n text: string\r\n onClick: () => void\r\n initValue: string\r\n onSearch: (searchString?: string) => void\r\n placeholder: string\r\n}\r\n\r\nconst searchInputStyle: CSSProperties = {\r\n height: 38\r\n}\r\n\r\nconst SearchBoxContainer: FC<Props> = ({\r\n text,\r\n initValue,\r\n onClick,\r\n onSearch,\r\n placeholder\r\n}: Props) => {\r\n return (\r\n <div className=\"d-flex align-items-center\">\r\n <div>\r\n <AddButton text={text} onClick={onClick} />\r\n </div>\r\n <div className=\"flex-grow-1 ml-2\">\r\n <SearchBox\r\n initValue={initValue}\r\n onSearch={onSearch}\r\n placeholder={placeholder}\r\n style={searchInputStyle}\r\n />\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nSearchBoxContainer.defaultProps = {\r\n placeholder: \"Type something to search\"\r\n}\r\n\r\nexport default SearchBoxContainer\r\n","import moment from \"moment\"\r\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\r\n\r\nexport default (time: string, FORMAT?: string) => {\r\n if (time === DATE_MIN_VALUE) return \"\"\r\n try {\r\n return moment.utc(time).local().format(FORMAT || \"yyyy-MM-DD\");\r\n } catch {\r\n return \"\"\r\n }\r\n}\r\n","import React from \"react\"\r\nimport { Row, Col, Table } from \"reactstrap\"\r\nimport differenceInCalendarYears from \"date-fns/differenceInCalendarYears\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport useUserList from \"../hooks/useUserList\"\r\nimport LinkEditButton from \"../../../components/Buttons/LinkEditButton\"\r\nimport DeleteButtonIcon from \"../../../components/Buttons/DeleteButtonIcon\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport SearchBoxContainer from \"../../../components/Inputs/SearchBoxContainer\"\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nconst header = \"User\"\r\nconst UserList = () => {\r\n const {\r\n queryName,\r\n userList,\r\n totalItems,\r\n filters,\r\n removeData,\r\n changeFilters,\r\n reDirectDetailPage\r\n } = useUserList()\r\n\r\n const { t } = useTranslation()\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n <h5 className=\"mb-2\">{t(`${header}`)}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBoxContainer\r\n text={t(\"create_user\")}\r\n onClick={() => reDirectDetailPage()}\r\n initValue={!!queryName ? queryName : \"\"}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder={t(\"type_something_to_search_by_user_name\")}\r\n />\r\n </Col>\r\n <Col\r\n md={4}\r\n className=\"d-flex justify-content-end align-items-center\"\r\n >\r\n {t(\"total_of_users\")} : {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {userList && userList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">{t(\"name\")}</th>\r\n <th className=\"align-top\">{t(\"email\")}</th>\r\n <th className=\"align-top\">{t(\"age\")}</th>\r\n <th className=\"align-top\">{t(\"role\")}</th>\r\n <th className=\"align-top\">\r\n {t(\"active_status\")}\r\n </th>\r\n <th className=\"align-top\">\r\n {t(\"created_time\")}\r\n </th>\r\n <th className=\"text-center\">{t(\"action\")}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {userList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n <LinkEditButton\r\n label={`${record.fullName}`}\r\n onClick={() =>\r\n reDirectDetailPage(\r\n record.id\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.email}\r\n </td>\r\n <td className=\"align-middle\">\r\n {differenceInCalendarYears(\r\n new Date(),\r\n new Date(record.dateOfBirth)\r\n )}\r\n </td>\r\n <td className=\"align-middle\">\r\n {!!record.roles &&\r\n record.roles.join(\", \")}\r\n </td>\r\n <td className=\"align-middle\">\r\n {record.isActive\r\n ? t(\"active\")\r\n : t(\"inactive\")}\r\n </td>\r\n <td className=\"align-middle\">\r\n { \r\n utcToLocalTime(record?.createTime, \"yyyy-MM-DD HH:mm\")\r\n }\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n <DeleteButtonIcon\r\n onClick={() =>\r\n removeData(record.id)\r\n }\r\n />\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label={t(\"user\")} />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default UserList\r\n","import React, { FC, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { Form, Input, Label, Button } from \"reactstrap\"\r\nimport { FaTrashAlt } from \"react-icons/fa\"\r\nimport { MdAttachFile } from \"react-icons/md\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nimport styles from \"../../styles.module.scss\"\r\n\r\ninterface Props {\r\n fileName?: string\r\n maxWidth?: string\r\n maxHeight?: string\r\n setFile: any\r\n onAddImage?: any\r\n canDelete?: boolean\r\n onDelete?: () => void\r\n isCheckFeedBack?: boolean\r\n}\r\n\r\nconst MAX_FILE_SIZE = 20097152\r\n\r\nconst UploadFileButton: FC<Props> = ({\r\n fileName,\r\n maxWidth,\r\n maxHeight,\r\n setFile,\r\n canDelete,\r\n onDelete,\r\n isCheckFeedBack,\r\n onAddImage\r\n}: Props) => {\r\n const dispatch = useDispatch()\r\n const [imagePreviewUrl, setImagePreviewUrl] = useState<any>(\"\")\r\n\r\n const imageStyle = {\r\n maxWidth: maxWidth || \"100%\",\r\n maxHeight: maxHeight || \"100%\"\r\n }\r\n const imageSrc = imagePreviewUrl || getFileUrl(fileName as string)\r\n\r\n const handleImageChange = (e: any) => {\r\n e.preventDefault()\r\n\r\n let reader = new FileReader()\r\n let newFile = e.target.files[0]\r\n\r\n if (newFile.size > MAX_FILE_SIZE) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"File can't be larger than 2MB\"\r\n })\r\n )\r\n return\r\n }\r\n\r\n reader.onloadend = () => {\r\n setFile(newFile)\r\n setImagePreviewUrl(reader.result)\r\n }\r\n\r\n if (newFile) {\r\n reader.readAsDataURL(newFile)\r\n }\r\n !!onAddImage && onAddImage()\r\n }\r\n\r\n const imagePreviewContainer =\r\n imagePreviewUrl || fileName ? (\r\n <img style={imageStyle} src={imageSrc} alt=\"image\" />\r\n ) : null\r\n\r\n return (\r\n <div className=\"mb-2\">\r\n <Form className=\"mb-2\">\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"uploadFile\"\r\n onChange={handleImageChange}\r\n accept=\"image/*\"\r\n />\r\n <div className=\"d-flex align-items-center\">\r\n <Label\r\n htmlFor=\"uploadFile\"\r\n role=\"button\"\r\n tabIndex={0}\r\n className={styles[\"input-file-label\"]}\r\n >\r\n {isCheckFeedBack == true ? (\r\n <MdAttachFile />\r\n ) : (\r\n <React.Fragment>\r\n <i\r\n className=\"fa fa-paperclip mr-1\"\r\n aria-hidden=\"true\"\r\n ></i>\r\n {imagePreviewUrl || fileName\r\n ? \"Change file\"\r\n : \"Choose file\"}\r\n </React.Fragment>\r\n )}\r\n </Label>\r\n\r\n {canDelete && imagePreviewContainer && (\r\n <Button\r\n size=\"sm\"\r\n color=\"danger\"\r\n className={`${styles[\"delete-avatar-button\"]} ml-2 d-flex align-items-center justify-content-center`}\r\n onClick={() => {\r\n setImagePreviewUrl(null)\r\n onDelete && onDelete()\r\n }}\r\n >\r\n <FaTrashAlt />\r\n </Button>\r\n )}\r\n </div>\r\n </Form>\r\n {imagePreviewContainer}\r\n </div>\r\n )\r\n}\r\n\r\nexport default UploadFileButton\r\n","import { useCallback, useEffect, useState } from \"react\"\r\nimport { useDispatch } from \"react-redux\"\r\nimport { useHistory } from \"react-router-dom\"\r\nimport { format } from \"date-fns\"\r\n\r\nimport { DATE_FORMAT, ROLES } from \"../../../utils/constants\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport {\r\n create,\r\n getById,\r\n update,\r\n changePassword,\r\n forgotChangePassword\r\n} from \"../../../services/userService\"\r\n\r\nimport { systemProfileUpload } from \"../../../services/fileServices\"\r\n\r\ntype UserDetail = {\r\n id?: string\r\n firstName: string\r\n lastName: string\r\n email?: string\r\n dateOfBirth?: string\r\n roles: string[]\r\n isActive: boolean\r\n profileImageFileName: string\r\n}\r\n\r\nconst initValue: UserDetail = {\r\n id: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\",\r\n dateOfBirth: \"\",\r\n roles: [],\r\n isActive: true,\r\n profileImageFileName: \"\"\r\n}\r\n\r\nconst USER_LIST_URL = \"/admin/user\"\r\nconst TITLE = \"User detail\"\r\n\r\nconst useUserDetail = (id?: string) => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [userDetail, setUserDetail] = useState<UserDetail>(initValue)\r\n const [file, setFile] = useState<any>(null)\r\n const [edited, setEdited] = useState<boolean>(false)\r\n const setEditedTrue = async () => {\r\n localStorage.setItem(window.location.href, \"true\")\r\n setEdited(true)\r\n }\r\n useEffect(() => {\r\n document.title = TITLE\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }, [])\r\n useEffect(() => {\r\n !!id && getData()\r\n }, [id])\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await getById(id as string)\r\n setUserDetail({\r\n ...res.data,\r\n dateOfBirth: format(new Date(res.data.dateOfBirth), DATE_FORMAT),\r\n roles: res.data.roles.includes(\"EduTeacher\")\r\n ? [ROLES.EDUTEACHER]\r\n : res.data.roles\r\n })\r\n document.title = res.data?.fullName\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [id])\r\n\r\n const backToList = useCallback((user?: string) => {\r\n !!user && typeof user === \"string\"\r\n ? history.push(USER_LIST_URL + `?query=${user}`)\r\n : history.push(USER_LIST_URL)\r\n }, [])\r\n\r\n const confirmData = useCallback(\r\n async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n if (!!file) {\r\n const formData = new FormData()\r\n const { name } = file\r\n formData.append(\"file\", file, name)\r\n const res = await systemProfileUpload(formData)\r\n const imageUrl = res?.data?.key\r\n data.profileImageFileName = imageUrl\r\n }\r\n\r\n const next = !!id ? update : create\r\n !id && delete data.id\r\n const result = await next(data)\r\n if (!!result) {\r\n getById(result.data.id).then(e => {\r\n backToList(e.data.fullName)\r\n })\r\n }\r\n\r\n if (!id) {\r\n alert(\"Password of \"+ result.data.email +\" is \" + `\\\"${result.data.password}\\\"`);\r\n }\r\n\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: `${\r\n !!id ? \"Update\" : \"Create\"\r\n } user successfully`\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n },\r\n [id, file]\r\n )\r\n\r\n const confirmChangePassword = async (data: any) => {\r\n dispatch(setLoading(true))\r\n try {\r\n await changePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Change password successfully\"\r\n })\r\n )\r\n } catch (e) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: e.response?.data?.title || e.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n const forgotPasswordRequest = useCallback(async (data: any) => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n await forgotChangePassword(data)\r\n dispatch(\r\n setAlert({\r\n type: \"success\",\r\n message: \"Send forgot password link successfully\"\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message:\r\n err.response?.data?.title ||\r\n err.message ||\r\n \"Error occured\"\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [])\r\n\r\n\r\n return {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest\r\n }\r\n}\r\n\r\nexport default useUserDetail\r\n","import * as yup from \"yup\"\r\n\r\nconst userSchema = yup.object({\r\n firstName: yup.string().required(\"First name is required\"),\r\n lastName: yup.string().required(\"Last name is required\"),\r\n dateOfBirth: yup.string().required(\"Date of birth is required\"),\r\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\r\n roles: yup.array().of(yup.string()).min(1, \"Role is required\")\r\n})\r\n\r\nexport default userSchema\r\n","import * as yup from \"yup\"\r\n\r\nconst changePasswordSchema = yup.object({\r\n oldPassword: yup.string().required(\"Current password is required\"),\r\n newPassword: yup.string().required(\"New password is required\"),\r\n confirmedNewPassword: yup.string().required(\"Confirm password is required\")\r\n})\r\n\r\nexport default changePasswordSchema\r\n","import React, { useCallback } from \"react\"\r\nimport { useParams } from \"react-router-dom\"\r\nimport {\r\n // Button,\r\n Col,\r\n FormGroup,\r\n Input,\r\n Row,\r\n CustomInput,\r\n Button\r\n} from \"reactstrap\"\r\nimport { Formik } from \"formik\"\r\nimport DatePicker from \"react-datepicker\"\r\nimport { format } from \"date-fns\"\r\nimport toDate from \"date-fns/toDate\"\r\nimport { useSelector } from \"react-redux\"\r\nimport { useTranslation } from \"react-i18next\"\r\nimport DetailActionButtons from \"../../../components/Buttons/DetailActionButtons\"\r\nimport UploadFileButton from \"../../../components/Buttons/UploadFileButton\"\r\nimport useUserDetail from \"../hooks/useUserDetail\"\r\nimport schema from \"../configs/userSchema\"\r\nimport schemaChangePassword from \"../configs/changePasswordSchema\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport { USER_ROLES, DATE_FORMAT } from \"../../../utils/constants\"\r\nimport RequiredLabel from \"../../../components/Labels/RequiredLabel\"\r\nimport { DEFAULT_IMAGE_URL, ROLES } from \"../../../utils/constants\"\r\nimport QuitPrompt from \"../../../components/Others/QuitPrompt\"\r\n\r\nconst CREATE_USER = \"create_user\"\r\nconst EDIT_USER_HEADER = \"edit_user\"\r\nconst CHANGE_PASSWORD = \"change_password\"\r\n\r\nconst UserDetail = () => {\r\n const { id } = useParams<{ id: string }>()\r\n const user = useSelector((state: any) => state.common.user)\r\n const { t } = useTranslation();\r\n const {\r\n userDetail,\r\n backToList,\r\n confirmData,\r\n file,\r\n setFile,\r\n edited,\r\n setEdited,\r\n setEditedTrue,\r\n confirmChangePassword,\r\n forgotPasswordRequest\r\n } = useUserDetail(id)\r\n\r\n const initialValueForm = {\r\n oldPassword: \"\",\r\n newPassword: \"\",\r\n confirmedNewPassword: \"\"\r\n }\r\n\r\n const header = !!id ? t(`${EDIT_USER_HEADER}`) : t(`${CREATE_USER}`)\r\n\r\n const confirmText = !!id ? t(\"update\") : t(\"create\")\r\n const getFile = () => {\r\n var url = window.location.origin + \"/api/ExportDataUser/\" + id\r\n window.open(url)\r\n }\r\n\r\n const onResetPw = async (email: string) => {\r\n var data = {\r\n email : email\r\n }\r\n forgotPasswordRequest(data)\r\n }\r\n\r\n return (\r\n <Formik\r\n initialValues={userDetail}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={values => {\r\n confirmData({\r\n ...values, \r\n roles: values.roles.includes(ROLES.EDUTEACHER)\r\n ? [\"EduTeacher\"]\r\n : values.roles\r\n })\r\n setEdited(false)\r\n if (!!localStorage.getItem(window.location.href))\r\n localStorage.removeItem(window.location.href)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n setFieldValue,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formProps\r\n\r\n const toggleRoles = useCallback(\r\n (role: string) => {\r\n if (values.roles.includes(role)) {\r\n setFieldValue(\r\n \"roles\",\r\n values.roles.filter(r => r !== role)\r\n )\r\n return\r\n }\r\n\r\n if (\r\n [ROLES.ADMIN, ROLES.STUDENT, ROLES.PARENT, ROLES.EDUTEACHER].includes(\r\n role\r\n )\r\n ) {\r\n setFieldValue(\"roles\", [role])\r\n return\r\n }\r\n\r\n const teacherAssistantRoles = values.roles.filter(\r\n (item: string) =>\r\n ![\r\n ROLES.STUDENT,\r\n ROLES.ADMIN,\r\n ROLES.PARENT,\r\n ROLES.EDUTEACHER\r\n ].includes(item)\r\n )\r\n\r\n setFieldValue(\"roles\", [...teacherAssistantRoles, role])\r\n },\r\n [values.roles]\r\n )\r\n\r\n return (\r\n <div className=\"animated fadeIn detail-buttons-padding\">\r\n <QuitPrompt when={edited} />\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"pt-2\">\r\n <Col md={8}>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"first_name\")} />\r\n <Input\r\n name=\"firstName\"\r\n value={values.firstName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"subject\")}\r\n placeholder={t(\"first_name\")}\r\n />\r\n {touched.firstName &&\r\n errors.firstName && (\r\n <ErrorHandler\r\n text={errors.firstName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"date_of_birth\")} />\r\n <div>\r\n <DatePicker\r\n value={values.dateOfBirth}\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n selected={\r\n values.dateOfBirth\r\n ? toDate(\r\n new Date(\r\n values.dateOfBirth\r\n )\r\n )\r\n : null\r\n }\r\n onChange={(e: any) => {\r\n formProps.setFieldValue(\r\n \"dateOfBirth\",\r\n format(\r\n e,\r\n DATE_FORMAT\r\n )\r\n )\r\n setEditedTrue()\r\n }}\r\n placeholderText={t(\"date_of_birth\")}\r\n customInput={\r\n <Input\r\n type=\"text\"\r\n style={{\r\n width:\r\n \"maxContent\"\r\n }}\r\n placeholder={t(\"date_of_birth\")}\r\n />\r\n }\r\n />\r\n </div>\r\n {touched.dateOfBirth &&\r\n errors.dateOfBirth && (\r\n <ErrorHandler\r\n text={\r\n errors.dateOfBirth\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"last_name\")} />\r\n <Input\r\n name=\"lastName\"\r\n value={values.lastName}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"lastName\")}\r\n placeholder={t(\"last_name\")}\r\n />\r\n {touched.lastName &&\r\n errors.lastName && (\r\n <ErrorHandler\r\n text={errors.lastName}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"roles\")} />\r\n <Row>\r\n <Col\r\n md={12}\r\n className=\"d-flex flex-wrap align-items-center\"\r\n >\r\n {USER_ROLES.map(\r\n (role: string) => (\r\n <div\r\n key={role}\r\n className=\"mr-3\"\r\n >\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`role-checkbox-${role}`}\r\n label={role}\r\n checked={values.roles.includes(\r\n role\r\n )}\r\n onChange={() => {\r\n toggleRoles(\r\n role\r\n )\r\n setEditedTrue()\r\n }}\r\n disabled={\r\n !!id\r\n ? true\r\n : [\r\n \"Student\",\r\n \"Parent\"\r\n ].includes(\r\n role\r\n )\r\n }\r\n />\r\n </div>\r\n )\r\n )}\r\n </Col>\r\n </Row>\r\n {touched.roles && errors.roles && (\r\n <ErrorHandler\r\n text={\r\n errors.roles as string\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n <Row>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"email\")} />\r\n <Input\r\n name=\"email\"\r\n value={values.email}\r\n onChange={(e: any) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\"email\")}\r\n placeholder={t(\"email\")}\r\n />\r\n {touched.email && errors.email && (\r\n <ErrorHandler\r\n text={errors.email}\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={6}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"status\")} />\r\n <Row>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-active`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"active\")}\r\n checked={\r\n !!values &&\r\n !!values.isActive\r\n }\r\n onChange={() => {\r\n setFieldValue(\r\n \"isActive\",\r\n true\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n </Col>\r\n <Col md={3}>\r\n <CustomInput\r\n id={`role-checkbox-inActive`}\r\n type=\"radio\"\r\n name=\"active\"\r\n label={t(\"inactive\")}\r\n checked={\r\n !!values &&\r\n !values.isActive\r\n }\r\n onChange={() =>\r\n setFieldValue(\r\n \"isActive\",\r\n false\r\n )\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </FormGroup>\r\n </Col>\r\n </Row>\r\n {!!id && (\r\n\r\n <Row>\r\n <Col md={6}></Col>\r\n <Col md={6}>\r\n <Button\r\n color=\"primary\"\r\n onClick={() => {\r\n onResetPw(values.email || \"\")\r\n }}\r\n >\r\n {t('send_forgot_password_link')}\r\n </Button>\r\n <Button\r\n color=\"success\"\r\n onClick={() => {\r\n getFile()\r\n }}\r\n className=\"ml-4\"\r\n >\r\n {t('download_user_data')}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )}\r\n \r\n </Col>\r\n <Col md={4}>\r\n <Row>\r\n <Col md={8}>\r\n <UploadFileButton\r\n setFile={setFile}\r\n fileName={\r\n values.profileImageFileName\r\n }\r\n onAddImage={setEditedTrue}\r\n canDelete\r\n onDelete={() => {\r\n setFile(null)\r\n setFieldValue(\r\n \"profileImageFileName\",\r\n \"\"\r\n )\r\n setEditedTrue()\r\n }}\r\n />\r\n {!file &&\r\n !values.profileImageFileName && (\r\n <img\r\n src={DEFAULT_IMAGE_URL}\r\n style={{ maxWidth: \"100%\" }}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </Col>\r\n </Row>\r\n {user.id === id ? (\r\n <div>\r\n <h5 className=\"mt-3\">{t(`${CHANGE_PASSWORD}`)}</h5>\r\n <Formik\r\n initialValues={initialValueForm}\r\n enableReinitialize\r\n validationSchema={schemaChangePassword}\r\n onSubmit={values => {\r\n confirmChangePassword(values)\r\n }}\r\n >\r\n {formProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleSubmit\r\n } = formProps\r\n return (\r\n <Row className=\"pt-2 pb-5\">\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"current_password\")} />\r\n <Input\r\n name=\"oldPassword\"\r\n type=\"password\"\r\n value={\r\n values.oldPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"current_password\")}\r\n />\r\n {touched.oldPassword &&\r\n errors.oldPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.oldPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"new_password\")} />\r\n <Input\r\n name=\"newPassword\"\r\n type=\"password\"\r\n value={\r\n values.newPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"new_password\")}\r\n />\r\n {touched.newPassword &&\r\n errors.newPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.newPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={7}>\r\n <FormGroup>\r\n <RequiredLabel text={t(\"confirm_password\")} />\r\n <Input\r\n name=\"confirmedNewPassword\"\r\n type=\"password\"\r\n value={\r\n values.confirmedNewPassword\r\n }\r\n onChange={(\r\n e: any\r\n ) => {\r\n handleChange(e)\r\n setEditedTrue()\r\n }}\r\n onBlur={handleBlur(\r\n \"subject\"\r\n )}\r\n placeholder={t(\"confirm_password\")}\r\n />\r\n {touched.confirmedNewPassword &&\r\n errors.confirmedNewPassword && (\r\n <ErrorHandler\r\n text={\r\n errors.confirmedNewPassword\r\n }\r\n />\r\n )}\r\n </FormGroup>\r\n </Col>\r\n <Col md={12}>\r\n <Button\r\n color=\"primary\"\r\n size=\"sm\"\r\n className=\"px-4 pl-1 mr-2 ml-3\"\r\n onClick={() =>\r\n handleSubmit()\r\n }\r\n >\r\n {t(\"save\")}\r\n </Button>\r\n </Col>\r\n </Row>\r\n )\r\n }}\r\n </Formik>\r\n </div>\r\n ) : null}\r\n <DetailActionButtons\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n onCancel={backToList}\r\n />\r\n </div>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default UserDetail\r\n","import { FC, useEffect } from \"react\"\r\nimport { useLocation } from \"react-router-dom\"\r\n\r\nconst ScrollToTop: FC = () => {\r\n const { pathname } = useLocation()\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [pathname])\r\n return null\r\n}\r\n\r\nexport default ScrollToTop\r\n","import React, { useCallback } from \"react\"\r\nimport { Modal, ModalHeader, ModalBody, ModalFooter, Button } from \"reactstrap\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\n\r\nimport { setModal } from \"../../redux/commons/action\"\r\nimport { COLORS } from \"../../utils/constants\"\r\n\r\nconst modalInfo = (type?: string) => {\r\n switch (type) {\r\n case \"danger\":\r\n return {\r\n header: \"Error\",\r\n color: COLORS.DANGER\r\n }\r\n\r\n case \"warning\":\r\n return {\r\n header: \"Warning\",\r\n color: COLORS.WARNING\r\n }\r\n\r\n case \"success\":\r\n return {\r\n header: \"Success\",\r\n color: COLORS.SUCCESS\r\n }\r\n\r\n default:\r\n return {\r\n header: \"Infomation\",\r\n color: COLORS.INFO\r\n }\r\n }\r\n}\r\n\r\nconst NotificationModal = () => {\r\n const dispatch = useDispatch()\r\n const modal = useSelector((state: any) => state.common.modal)\r\n\r\n const { isOpen, type, message, onConfirm } = modal\r\n\r\n const toggle = useCallback(() => {\r\n dispatch(setModal({ isOpen: !isOpen, type }))\r\n }, [isOpen])\r\n\r\n const headerStyle = { backgroundColor: modalInfo(type).color }\r\n\r\n const confirm = () => {\r\n onConfirm && onConfirm()\r\n toggle()\r\n }\r\n\r\n return <Modal \r\n isOpen={isOpen} \r\n toggle={toggle} \r\n fade\r\n >\r\n <ModalHeader \r\n toggle={toggle}\r\n style={headerStyle}\r\n >\r\n {modalInfo(type).header}\r\n </ModalHeader>\r\n <ModalBody>\r\n {message}\r\n </ModalBody>\r\n <ModalFooter>\r\n {onConfirm && <Button\r\n color={type}\r\n onClick={confirm}\r\n >\r\n Confirm\r\n </Button>}\r\n <Button\r\n color=\"secondary\"\r\n onClick={toggle}\r\n >\r\n Cancel\r\n </Button>\r\n </ModalFooter>\r\n </Modal>\r\n}\r\n\r\nexport default NotificationModal","import React, { CSSProperties, FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\ninterface Props {\r\n header: string\r\n rootHeader?: string\r\n}\r\n\r\nconst headerStyle: CSSProperties = {\r\n // borderBottom: \"1px solid gray\",\r\n paddingBottom: \"16px\"\r\n}\r\n\r\nconst headerTextStyle: CSSProperties = {\r\n fontSize: \"1.5rem\",\r\n textAlign: \"center\"\r\n}\r\n\r\nconst CommonHeader: FC<Props> = ({ header, rootHeader }) => {\r\n return (\r\n <div style={headerStyle}>\r\n <Row>\r\n {rootHeader && (\r\n <Col md={4}>\r\n <span className=\"text-muted\" style={headerTextStyle}>\r\n {rootHeader}\r\n </span>\r\n </Col>\r\n )}\r\n <Col md={4}>\r\n <span style={headerTextStyle}>{header}</span>\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default CommonHeader\r\n","import React, { FC } from \"react\"\r\nimport { FaRegEdit } from \"react-icons/fa\"\r\ninterface Props {\r\n onClick: () => any\r\n}\r\n\r\nconst EditButtonIcon: FC<Props> = ({ onClick }: Props) => {\r\n return (\r\n <div\r\n className=\"d-inline text-center cursor-pointer hover-opacity\"\r\n title=\"Edit\"\r\n onClick={onClick}\r\n >\r\n <FaRegEdit />\r\n </div>\r\n )\r\n}\r\n\r\nexport default EditButtonIcon\r\n","import React from \"react\"\r\n\r\nimport Creatable from \"react-select/creatable\"\r\n\r\nconst components = {\r\n DropdownIndicator: null,\r\n}\r\n\r\nconst CreatableSelector = (props: any) => {\r\n const { inputValue, value, placeholder, handleChange, handleInputChange, handleKeyDown } = props\r\n return (\r\n <Creatable\r\n components={components}\r\n placeholder={placeholder || \"Type something to create option\"}\r\n isClearable\r\n isMulti\r\n menuIsOpen={false}\r\n value={value}\r\n inputValue={inputValue}\r\n onChange={handleChange}\r\n onInputChange={handleInputChange}\r\n onKeyDown={handleKeyDown}\r\n />\r\n )\r\n}\r\n\r\nexport default CreatableSelector","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { QUESTION_TYPES_OPTIONS } from \"../../utils/constants\"\r\nconst QuestionTypeSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? QUESTION_TYPES_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select options={QUESTION_TYPES_OPTIONS} value={initValue} {...props} />\r\n )\r\n}\r\n\r\nexport default QuestionTypeSelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/SuggestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/suggestionCategoryService\"\r\n\r\nconst SuggestionCategorySelector = (props: any) => {\r\n const [categoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = categoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default SuggestionCategorySelector\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CATEGORY_URL = `${BASE_URL}/api/QuestionCategory`\r\nexport const get = () => api.get(CATEGORY_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/questionCategoryService\"\r\n\r\nconst QuestionCategorySelector = (props: any) => {\r\n const [getCategoryList, setCategoryList] = useState([])\r\n\r\n useEffect(() => {\r\n fetchCategory()\r\n }, [])\r\n\r\n const fetchCategory = async () => {\r\n try {\r\n const res = await get()\r\n setCategoryList(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const arrCategory = getCategoryList.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? arrCategory.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={arrCategory} value={initValue} {...props} />\r\n}\r\n\r\nexport default QuestionCategorySelector\r\n","import React from \"react\"\r\nimport Select from \"react-select\"\r\n\r\nimport { STAR_OPTIONS } from \"../../utils/constants\"\r\n\r\nconst StarRatingSelector = (props: any) => {\r\n const { id } = props\r\n\r\n const initValue = !!id\r\n ? STAR_OPTIONS.find(option => option.value === id) || null\r\n : null\r\n\r\n return (\r\n <Select\r\n options={STAR_OPTIONS}\r\n value={initValue}\r\n {...props}\r\n menuPlacement=\"top\"\r\n />\r\n )\r\n}\r\n\r\nexport default StarRatingSelector\r\n","import React, { FC } from \"react\"\r\nimport { Button } from \"reactstrap\"\r\n\r\ninterface Props {\r\n textLeft: string\r\n textRight: string\r\n isLeft: boolean\r\n clickLeft: any\r\n clickRight: any\r\n}\r\n\r\nconst ACTIVE_COLOR = \"primary\"\r\nconst INACTIVE_COLOR = \"secondary\"\r\n\r\nconst ToggleButton: FC<Props> = ({\r\n textLeft,\r\n textRight,\r\n isLeft,\r\n clickLeft,\r\n clickRight\r\n}: Props) => {\r\n return (\r\n <div className=\"w-100 d-flex\">\r\n <Button\r\n size=\"sm\"\r\n color={isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickLeft}\r\n className=\"toggle-btn toggle-btn-left flex-grow-1\"\r\n >\r\n {textLeft}\r\n </Button>\r\n <Button\r\n size=\"sm\"\r\n color={!isLeft ? ACTIVE_COLOR : INACTIVE_COLOR}\r\n onClick={clickRight}\r\n className=\"toggle-btn toggle-btn-right flex-grow-1\"\r\n >\r\n {textRight}\r\n </Button>\r\n </div>\r\n )\r\n}\r\n\r\nexport default ToggleButton\r\n","import React, { FC, Fragment } from \"react\"\r\nimport { Input, Label } from \"reactstrap\"\r\nimport { customKeyUpload } from \"../../services/fileServices\"\r\nimport getFileUrl from \"../../utils/getFileUrl\"\r\n\r\ninterface Props {\r\n icon: React.ReactNode\r\n accept?: string | undefined\r\n callback: (fileName: string, filePath: string, fileType: string) => void\r\n}\r\n\r\nconst InputFile: FC<Props> = ({ icon, accept, callback }: Props) => {\r\n\r\n const handleFileChange = async (e: any) => {\r\n try {\r\n const formData = new FormData()\r\n const file = e.target.files[0]\r\n const fileName = file.name\r\n formData.append(\"file\", file, fileName)\r\n formData.append(\"customKey\", \"conversation\")\r\n const res = await customKeyUpload(formData)\r\n const { name, key, type } = res.data\r\n callback(name, getFileUrl(key), type)\r\n } catch (err) {\r\n console.error(err.message)\r\n }\r\n }\r\n\r\n return (\r\n <Fragment>\r\n <Input\r\n className=\"d-none\"\r\n type=\"file\"\r\n id=\"upload-file-btn\"\r\n onChange={handleFileChange}\r\n accept={accept}\r\n />\r\n <Label htmlFor=\"upload-file-btn\" role=\"button\">\r\n {icon}\r\n </Label>\r\n </Fragment>\r\n )\r\n}\r\n\r\nInputFile.defaultProps = {\r\n accept: \"*\"\r\n}\r\n\r\nexport default InputFile\r\n","import React from \"react\"\r\nimport ReactNotification from \"react-notifications-component\"\r\n\r\nimport \"react-notifications-component/dist/theme.css\"\r\n\r\nexport default () => <ReactNotification />\r\n","import React, { FC, memo } from \"react\"\r\n\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\n\r\nconst options = [\r\n { value: true, label: \"Read\" },\r\n { value: false, label: \"Unread\" }\r\n]\r\n\r\ninterface Props {\r\n value: boolean\r\n onChange: any\r\n}\r\n\r\nconst NotificationStatusSelector: FC<Props> = ({ value, onChange }: Props) => {\r\n const customSelector = {\r\n menu: (provided: any) => ({ ...provided, zIndex: 10 })\r\n }\r\n return (\r\n <CustomSelector\r\n defaultValue={value}\r\n options={options}\r\n onChange={onChange}\r\n styles={customSelector}\r\n />\r\n )\r\n}\r\n\r\nexport default memo(NotificationStatusSelector)\r\n","import { useState, useCallback, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport Pusher from \"pusher-js/with-encryption\"\r\n\r\nimport {\r\n get,\r\n updateStatusNotification,\r\n updateAllStatus\r\n} from \"../../../services/notificationService\"\r\n\r\nimport { setLoading, setModal, setAlert } from \"../../../redux/commons/action\"\r\nimport { setNotification } from \"../../../redux/notifications/action\"\r\n\r\nconst defaultFilters = {\r\n currentPage: 1,\r\n pageSize: 30,\r\n searchString: \"\",\r\n isRead: false\r\n}\r\n\r\nconst TITLE = \"Notification list\"\r\n\r\nconst NOTIFICATION_CHANNEL = \"NOTIFICATION_CHANNEL\"\r\nconst NEW_NOTIFICATION = \"NEW_NOTIFICATION\"\r\n\r\nconst useNotificationList = () => {\r\n const dispatch = useDispatch()\r\n const userId = useSelector((state: any) => state.common.user?.id)\r\n const notificationList = useSelector(\r\n (state: any) => state.notification.notificationList\r\n )\r\n const pusherKey = useSelector((state: any) => state.common.user.pusherKey)\r\n const pusherCluster = useSelector(\r\n (state: any) => state.common.user.pusherCluster\r\n )\r\n\r\n const totalItems = useSelector(\r\n (state: any) => state.notification.totalItems\r\n )\r\n const unReadNotification = useSelector(\r\n (state: any) => state.notification.unReadNotification\r\n )\r\n const [filters, setFilters] = useState(defaultFilters)\r\n const [toggleUpdateAllStatus, setToggleUpdateAllStatus] = useState<boolean>(false)\r\n\r\n const changeFilters = (objectValue: any) =>\r\n setFilters({\r\n ...filters,\r\n ...objectValue\r\n })\r\n\r\n const viewNotification = (notification: any) => {\r\n const { source, extraData } = notification\r\n switch (source) {\r\n case \"AssessmentAssignment\":\r\n window.open(`/player/diagnosticsurvey/${Number(extraData)}`)\r\n break\r\n case \"NewConferenceCreated\":\r\n window.open(\r\n `/start-conference/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }/conferenceRubric`\r\n )\r\n break\r\n case \"NewSessionCreated\":\r\n window.open(\r\n `/start-question/${JSON.parse(extraData)?.[0]}/${\r\n JSON.parse(extraData)?.[1]\r\n }`\r\n )\r\n break\r\n case \"CertificateApproved\":\r\n window.open(`/dashboard/certification/2`)\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n\r\n try {\r\n const res = await get(filters)\r\n const { items, totalItems } = res.data\r\n dispatch(\r\n setNotification({\r\n notificationList: items,\r\n totalItems\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n\r\n dispatch(setLoading(false))\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n }, [])\r\n\r\n useEffect(() => {\r\n getData()\r\n const pusher = new Pusher(pusherKey, { cluster: pusherCluster })\r\n const channel = pusher.subscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n \r\n channel.bind(NEW_NOTIFICATION, getData)\r\n return () => pusher.unsubscribe(`${NOTIFICATION_CHANNEL}-${userId}`)\r\n }, [filters, userId])\r\n\r\n const updateNotification = useCallback(\r\n (id, isRead) => {\r\n try {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark this notification ${\r\n isRead ? \"read\" : \"unread\"\r\n }?`,\r\n onConfirm: async () => {\r\n await updateStatusNotification(id)\r\n getData()\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n },\r\n [notificationList, unReadNotification]\r\n )\r\n\r\n const updateAll = useCallback(async () => {\r\n try {\r\n if (notificationList.length === 0) throw new Error(\"There are no unread messages\")\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to mark all notification ?`,\r\n onConfirm: async () => {\r\n setToggleUpdateAllStatus(true)\r\n await updateAllStatus()\r\n getData()\r\n setToggleUpdateAllStatus(false)\r\n }\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n }, [notificationList])\r\n\r\n return {\r\n notificationList,\r\n totalItems,\r\n unReadNotification,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n }\r\n}\r\n\r\nexport default useNotificationList\r\n","import React from \"react\"\r\nimport { Row, Col, Table, CustomInput } from \"reactstrap\"\r\nimport { AiOutlineEye } from \"react-icons/ai\"\r\n\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\nimport CustomPagination from \"../../../components/Pagination/CustomPagination\"\r\nimport EmptyDataAlert from \"../../../components/Alerts/EmptyDataAlert\"\r\nimport NotificationStatusSelector from \"../components/NotificationStatusSelector\"\r\n\r\nimport utcToLocalTime from \"../../../utils/utcToLocalTime\"\r\n\r\nimport useNotificationList from \"../hooks/useNotificationList\"\r\nimport styles from \"../../../styles.module.scss\"\r\n\r\nconst header = \"Notification list\"\r\nconst ICON_SIZE = 20\r\n\r\nconst NotificationList = () => {\r\n const {\r\n notificationList,\r\n totalItems,\r\n filters,\r\n changeFilters,\r\n updateNotification,\r\n viewNotification,\r\n updateAll,\r\n toggleUpdateAllStatus\r\n } = useNotificationList()\r\n\r\n return (\r\n <div className=\"animated fadeIn\" style={{ padding: \"20px 40px\" }}>\r\n <h5 className=\"mb-2\">{header}</h5>\r\n\r\n <Row className=\"my-2\">\r\n <Col md={8}>\r\n <SearchBox\r\n initValue={filters.searchString}\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search\"\r\n />\r\n </Col>\r\n <Col md={4}>\r\n <NotificationStatusSelector\r\n value={filters.isRead}\r\n onChange={(e: any) =>\r\n changeFilters({ isRead: e.value })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n <Row className=\"my-2 d-flex justify-content-center\">\r\n <Col md={12} className=\"d-flex justify-content-end align-items-center\">\r\n {filters.isRead === false && (\r\n <div className=\"d-flex align-items-center justify-content-end mx-2\">\r\n Mark all as read\r\n <CustomInput\r\n checked={toggleUpdateAllStatus}\r\n className=\"mx-2\"\r\n type=\"checkbox\"\r\n id={`status-checkbox`}\r\n onChange={() => updateAll()}\r\n />\r\n </div>\r\n )}\r\n Total of notifications: {totalItems}\r\n </Col>\r\n </Row>\r\n <Row className=\"mb-2\">\r\n <Col md={12}>\r\n {notificationList && notificationList.length > 0 ? (\r\n <div>\r\n <Table bordered hover striped responsive size=\"sm\">\r\n <thead>\r\n <tr>\r\n <th className=\"align-top\">Text</th>\r\n <th className=\"align-top\">Time</th>\r\n <th className=\"text-center\">Is read</th>\r\n <th className=\"text-center\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {notificationList.map((record: any) => (\r\n <tr key={record.id}>\r\n <td className=\"align-middle\">\r\n {record.text}\r\n </td>\r\n <td className=\"align-middle\">\r\n {utcToLocalTime(\r\n record.time,\r\n \"yyyy-MM-DD HH:mm\"\r\n )}\r\n </td>\r\n <td\r\n className={`${styles[\"control-input\"]} text-center align-middle`}\r\n >\r\n <CustomInput\r\n type=\"checkbox\"\r\n id={`status-checkbox-${record.id}`}\r\n checked={record.isRead}\r\n onChange={() =>\r\n updateNotification(\r\n record.id,\r\n !record.isRead\r\n )\r\n }\r\n />\r\n </td>\r\n <td className=\"text-center align-middle\">\r\n {[\r\n \"AssessmentAssignment\",\r\n \"NewConferenceCreated\",\r\n \"NewSessionCreated\",\r\n \"CertificateApproved\"\r\n ].includes(record.source) && (\r\n <AiOutlineEye\r\n className=\"cursor-pointer\"\r\n size={ICON_SIZE}\r\n title=\"Detail\"\r\n onClick={() =>\r\n viewNotification(\r\n record\r\n )\r\n }\r\n />\r\n )}\r\n </td>\r\n </tr>\r\n ))}\r\n </tbody>\r\n </Table>\r\n </div>\r\n ) : (\r\n <EmptyDataAlert label=\"notification\" />\r\n )}\r\n </Col>\r\n <Col md={12}>\r\n <CustomPagination\r\n filters={filters}\r\n totalRecordCount={totalItems}\r\n changePageSize={(pageSize: number) =>\r\n changeFilters({ pageSize })\r\n }\r\n changePage={(currentPage: number) =>\r\n changeFilters({ currentPage })\r\n }\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\n\r\nexport default NotificationList\r\n","import React from \"react\"\r\nimport {\r\n Col,\r\n Row,\r\n TabContent,\r\n TabPane,\r\n Nav,\r\n NavItem,\r\n NavLink\r\n} from \"reactstrap\"\r\nimport { Route, useHistory, useLocation } from \"react-router-dom\"\r\nimport NotFound from \"../../containers/Commons/NotFound\"\r\n\r\nconst CustomTabs = (props: any) => {\r\n const history = useHistory()\r\n const location = useLocation()\r\n const { pathname } = location\r\n const { tabs, title } = props\r\n const toggle = (path: any) => {\r\n history.push(path)\r\n }\r\n\r\n const renderContent = () => {\r\n const activeTab = tabs.map((t: any) => t.path).indexOf(pathname)\r\n if (activeTab === -1) {\r\n return <NotFound />\r\n }\r\n return (\r\n <Row>\r\n <Col md={12}>\r\n <h5>{title}</h5>\r\n </Col>\r\n <Col xl={12}>\r\n <Nav tabs>\r\n {tabs.map((i: any) => (\r\n <NavItem key={i.path}>\r\n <NavLink\r\n className={`${\r\n i.path === pathname ? \"active\" : \"\"\r\n } cursor-pointer`}\r\n onClick={() => {\r\n toggle(i.path)\r\n }}\r\n >\r\n {i.title}\r\n </NavLink>\r\n </NavItem>\r\n ))}\r\n </Nav>\r\n <TabContent\r\n activeTab={pathname}\r\n className=\"border-bottom-0 border-left-0 border-right-0\"\r\n >\r\n {tabs.map((i: any) => (\r\n <TabPane key={i.path} tabId={i.path}>\r\n <Route\r\n path={i.path}\r\n exact\r\n component={i.component}\r\n />\r\n </TabPane>\r\n ))}\r\n </TabContent>\r\n </Col>\r\n </Row>\r\n )\r\n }\r\n return <div className=\"animated fadeIn\">{renderContent()}</div>\r\n}\r\n\r\nexport default CustomTabs\r\n","import React, { FC, useRef, useEffect } from \"react\"\r\nimport { useSelector, useDispatch } from \"react-redux\"\r\nimport { Alert } from \"reactstrap\"\r\n\r\nimport { setAlert } from \"../../redux/commons/action\"\r\n\r\nconst CommonAlert: FC = () => {\r\n const dispatch = useDispatch()\r\n const alert = useSelector((state: any) => state.common.alert)\r\n const timeout = useRef<any>()\r\n\r\n const onDismiss = () => {\r\n dispatch(setAlert({ message: \"\" }))\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n }\r\n\r\n useEffect(() => {\r\n if (!!alert.message?.length) {\r\n timeout && timeout.current && clearTimeout(timeout.current)\r\n timeout.current = setTimeout(() => {\r\n dispatch(setAlert({ message: \"\" }))\r\n }, 3000)\r\n }\r\n }, [alert])\r\n\r\n return alert.message?.length > 0 ? (\r\n <div className=\"app-alert\">\r\n <Alert\r\n color={alert.type}\r\n isOpen={alert.message.length > 0}\r\n toggle={onDismiss}\r\n >\r\n {alert.message}\r\n </Alert>\r\n </div>\r\n ) : null\r\n}\r\n\r\nexport default CommonAlert\r\n","import { Formik } from \"formik\"\r\nimport React, { forwardRef } from \"react\"\r\nimport { Col, Input, Row } from \"reactstrap\"\r\nimport * as yup from \"yup\"\r\nimport ErrorHandler from \"../../../components/Alerts/ErrorHandler\"\r\nimport CommonModal from \"../../../components/Modals/CommonModal\"\r\n\r\nconst schema = yup.object({\r\n name: yup.string().required(\"Name is required\")\r\n})\r\n\r\nconst ActionModal = (props: any, ref: any) => {\r\n const { targetMedia, onConfirm } = props\r\n const confirmText = targetMedia?.key ? \"Update\" : \"Create\"\r\n const header = targetMedia?.key ? \"Rename\" : \"Folder\"\r\n return (\r\n <Formik\r\n initialValues={{ name: targetMedia?.name }}\r\n enableReinitialize\r\n validationSchema={schema}\r\n onSubmit={(values, actions) => {\r\n onConfirm && onConfirm(values)\r\n actions.resetForm()\r\n }}\r\n >\r\n {formikProps => {\r\n const {\r\n values,\r\n touched,\r\n errors,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit\r\n } = formikProps\r\n return (\r\n <CommonModal\r\n header={header}\r\n confirmText={confirmText}\r\n onConfirm={handleSubmit}\r\n ref={ref}\r\n >\r\n <Row>\r\n <Col md={12}>\r\n <Input\r\n name=\"name\"\r\n placeholder={`Enter your ${\r\n targetMedia?.key ? \"file\" : \"folder\"\r\n } name`}\r\n value={values.name}\r\n onChange={handleChange}\r\n onBlur={handleBlur(\"question\")}\r\n />\r\n {touched.name && errors.name && (\r\n <ErrorHandler\r\n text={errors.name as string}\r\n />\r\n )}\r\n </Col>\r\n </Row>\r\n </CommonModal>\r\n )\r\n }}\r\n </Formik>\r\n )\r\n}\r\n\r\nexport default forwardRef(ActionModal)\r\n","import React, { FC, useRef } from \"react\"\r\nimport { Row, Col, Button, Label } from \"reactstrap\"\r\nimport {\r\n FaFolderPlus,\r\n FaFileUpload,\r\n FaArrowLeft,\r\n FaDownload,\r\n FaTrash,\r\n FaEdit\r\n} from \"react-icons/fa\"\r\nimport ActionModal from \"./ActionModal\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\n\r\ninterface MediaNavInterface {\r\n isLibrary?: boolean\r\n step: number\r\n breadcumb: string\r\n currentPrefix: string\r\n targetMedia: S3Object\r\n handleSelectFile: Function\r\n handleCreateFolder: Function\r\n handleRenameFile: Function\r\n handleGoBack: () => void\r\n handleDownloadMedia: () => void\r\n handleDeleteMediaOrFolder: () => void\r\n showErrorAlert: (message: string) => void\r\n}\r\n\r\nconst MediaNav: FC<MediaNavInterface> = ({\r\n isLibrary,\r\n step,\r\n breadcumb,\r\n currentPrefix,\r\n targetMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleGoBack,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n showErrorAlert\r\n}) => {\r\n const modal = useRef<any>()\r\n const inputFile = useRef<HTMLInputElement>(null)\r\n\r\n const openModal = () => modal?.current?.toggle()\r\n\r\n const renderGroupButtons = () => (\r\n <Row className=\"p-2 pl-3\">\r\n {!!step && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"secondary\"\r\n onClick={handleGoBack}\r\n >\r\n <FaArrowLeft />\r\n <Label className=\"ml-1 h6 m-0\">Go up</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !targetMedia.isFolder && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"success\"\r\n onClick={handleDownloadMedia}\r\n >\r\n <FaDownload />\r\n <Label className=\"ml-1 h6 m-0\">Download</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"danger\"\r\n onClick={handleDeleteMediaOrFolder}\r\n >\r\n <FaTrash />\r\n <Label className=\"ml-1 h6 m-0\">Delete</Label>\r\n </Button>\r\n )}\r\n {targetMedia && !isLibrary && !targetMedia.isFolder && (\r\n <Button className=\"mr-2\" color=\"primary\" onClick={openModal}>\r\n <FaEdit />\r\n <Label className=\"ml-1 h6 m-0\">Rename</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button className=\"mr-2\" color=\"success\" onClick={openModal}>\r\n <FaFolderPlus />\r\n <Label className=\"ml-1 h6 m-0\">New folder</Label>\r\n </Button>\r\n )}\r\n {!targetMedia && !isLibrary && (\r\n <Button\r\n className=\"mr-2\"\r\n color=\"info\"\r\n onClick={() => inputFile?.current?.click()}\r\n >\r\n <FaFileUpload />\r\n <Label className=\"ml-1 h6 m-0\">Upload</Label>\r\n </Button>\r\n )}\r\n {breadcumb && (\r\n <Col className=\"h-100 d-flex align-items-center\">\r\n {breadcumb}\r\n </Col>\r\n )}\r\n </Row>\r\n )\r\n\r\n return (\r\n <div>\r\n {renderGroupButtons()}\r\n <ActionModal\r\n ref={modal}\r\n targetMedia={targetMedia}\r\n onConfirm={async (values: any) => {\r\n if (values.name != \"\") {\r\n if (targetMedia && !targetMedia.isFolder) {\r\n openModal()\r\n await handleRenameFile(values.name)\r\n } else {\r\n openModal()\r\n await handleCreateFolder(currentPrefix, values.name)\r\n }\r\n } else {\r\n showErrorAlert(\"Name can't be empty\")\r\n }\r\n }}\r\n />\r\n\r\n <input\r\n type=\"file\"\r\n id=\"customMediaUpload\"\r\n ref={inputFile}\r\n style={{ display: \"none\" }}\r\n onChange={async (event: any) => {\r\n const file = event?.target?.files[0]\r\n if (file) {\r\n await handleSelectFile({ key: currentPrefix, file })\r\n }\r\n }}\r\n />\r\n </div>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaNav)\r\n","export type S3Object = {\r\n name?: string\r\n key?: string\r\n extension?: string\r\n isFolder?: boolean\r\n}\r\n\r\nexport enum MediaType {\r\n IMAGE,\r\n VIDEO,\r\n AUDIO,\r\n DOC,\r\n UNKNOW\r\n}\r\n\r\nexport type FilterType = {\r\n searchString?: string\r\n types?: MediaType[]\r\n prefix?: string\r\n fromDate?: number\r\n toDate?: number\r\n isLibrary?: boolean\r\n}\r\n","import Images from '../../../assets/Images';\r\nimport getFileUrl from '../../../utils/getFileUrl';\r\nimport {MediaType, S3Object} from '../constants/gallery.types'\r\n\r\nconst images = [\"png\", \"jpg\", \"jpeg\", \"gif\"]\r\nconst videos = [\"mp4\", \"mp4v\"]\r\nconst docs = [\"txt\", \"pdf\", \"doc\", \"docx\", \"xls\", \"csv\"]\r\nconst audios = [\"wav\", \"mp3\"]\r\n\r\n\r\nexport const getTypeByExtension: (extension: string | undefined) => MediaType = (extension) => {\r\n if(extension){\r\n if(images.includes(extension)) return MediaType.IMAGE\r\n if(videos.includes(extension)) return MediaType.VIDEO\r\n if(docs.includes(extension)) return MediaType.DOC\r\n if(audios.includes(extension)) return MediaType.AUDIO\r\n }\r\n return MediaType.UNKNOW\r\n}\r\n\r\nexport const getMediaThumbnail = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return Images.PHOTO_IMAGE\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return Images.UNKNOW_IMAGE;\r\n}\r\n\r\nexport const getMediaImage = (media: S3Object) => {\r\n if(media.isFolder) return Images.FOLDER_IMAGE;\r\n const type = getTypeByExtension(media.extension)\r\n\r\n if(type === MediaType.IMAGE){\r\n return getFileUrl(media.key || \"\")\r\n }\r\n if(type === MediaType.VIDEO){\r\n return Images.VIDEO_IMAGE\r\n }\r\n if(type === MediaType.AUDIO){\r\n return Images.AUDIO_IMAGE\r\n }\r\n if(type === MediaType.DOC){\r\n return Images.DOCS_IMAGE\r\n }\r\n return \"\";\r\n}\r\n","import React, {FC} from 'react'\r\nimport {Card,CardImg, CardBody, CardTitle} from 'reactstrap';\r\nimport {S3Object} from '../constants/gallery.types'\r\nimport styles from '../styles/media.styles.module.scss'\r\nimport {getMediaThumbnail} from '../extensions/helpers'\r\n\r\ninterface MediaInterface {\r\n media: S3Object,\r\n isTarget: boolean\r\n}\r\n\r\nconst Media: FC<MediaInterface> = ({media, isTarget}) => {\r\n const thumbnail = getMediaThumbnail(media)\r\n return (\r\n <Card className={`${isTarget ? styles[\"media-image-selected\"] : ''} border-0 `}>\r\n <CardImg\r\n className={`${styles[\"media-image\"]} p-1`}\r\n top\r\n width=\"90%\"\r\n src={thumbnail}\r\n alt={media.name}\r\n />\r\n <CardBody className=\"p-1\" style={{height: 45}}>\r\n <CardTitle tag=\"h6\" className={styles[\"media-title\"]}>{media.name}</CardTitle>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(Media)\r\n","import React, {\r\n FC,\r\n useState\r\n // , useRef\r\n} from \"react\"\r\nimport {\r\n Col,\r\n // FormGroup,\r\n // Input,\r\n // Label,\r\n Row\r\n} from \"reactstrap\"\r\nimport CustomSelector from \"../../../components/Selectors/CustomSelector\"\r\nimport { FilterType, MediaType } from \"../constants/gallery.types\"\r\n// import DatePicker from \"react-datepicker\"\r\n// import { getTime, format } from \"date-fns\"\r\n// import { DATE_FORMAT } from \"../../../utils/constants\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\n// import useGalleryDetail from \"../hooks/galleryDetail\"\r\nimport SearchBox from \"../../../components/Inputs/SearchBox\"\r\n\r\ninterface FilterInterface {\r\n changeFilters: (filter: FilterType) => void\r\n filters: FilterType\r\n}\r\n\r\ntype MediaOption = {\r\n value: MediaType\r\n label: string\r\n}\r\n\r\nconst options: MediaOption[] = [\r\n { value: MediaType.IMAGE, label: \"Images\" },\r\n { value: MediaType.AUDIO, label: \"Audios\" },\r\n { value: MediaType.DOC, label: \"Docs\" },\r\n { value: MediaType.VIDEO, label: \"Videos\" }\r\n]\r\n\r\nconst Filter: FC<FilterInterface> = ({\r\n changeFilters\r\n // filters\r\n}) => {\r\n const [queryTypes, selectQueryTypes] = useState<MediaOption[]>()\r\n return (\r\n <Row className={`${styles[\"filter-media-file\"]}`}>\r\n <Col sm={8}>\r\n <SearchBox\r\n initValue=\"\"\r\n onSearch={(searchString?: any) =>\r\n changeFilters({\r\n searchString: searchString\r\n })\r\n }\r\n placeholder=\"Type something to search by file name\"\r\n />\r\n </Col>\r\n\r\n <Col sm={4}>\r\n <CustomSelector\r\n value={queryTypes}\r\n isMulti\r\n options={options}\r\n onChange={(options: MediaOption[]) => {\r\n selectQueryTypes(options)\r\n const types = options.map((op: MediaOption) => op.value)\r\n changeFilters({ types })\r\n }}\r\n />\r\n </Col>\r\n {/* <Col sm={4}>\r\n <FormGroup>\r\n <Label>From date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.fromDate\r\n ? format(filters.fromDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"From date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n fromDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\" />}\r\n />\r\n </FormGroup>\r\n </Col>\r\n <Col sm={4}>\r\n <FormGroup>\r\n <Label>To date</Label>\r\n <DatePicker\r\n wrapperClassName={`${styles[\"date-time-input\"]} w-100`}\r\n value={\r\n !!filters.toDate\r\n ? format(filters.toDate, DATE_FORMAT)\r\n : undefined\r\n }\r\n todayButton=\"Today\"\r\n peekNextMonth\r\n showMonthDropdown\r\n showYearDropdown\r\n dropdownMode=\"select\"\r\n placeholderText=\"To date\"\r\n onChange={(date: Date) => {\r\n changeFilters({\r\n toDate: getTime(date)\r\n })\r\n }}\r\n customInput={<Input type=\"text\"/>}\r\n />\r\n </FormGroup>\r\n </Col> */}\r\n </Row>\r\n )\r\n}\r\n\r\nexport default Filter\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGallery = createAction<any>(\"gallery/setGallery\")\r\nexport const setTargetMedia = createAction<any>(\"gallery/setTargetMedia\")\r\n\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\nimport { FilterType } from './../containers/Gallery/constants/gallery.types';\r\n\r\nconst GALLERY_URL = `${BASE_URL}/api/file`\r\n\r\nexport const get = (filter: FilterType) =>\r\n api.get(`${GALLERY_URL}`, { params: filter })\r\n","import { setModal } from \"../../../redux/commons/action\"\r\nimport { useState, useCallback, useEffect, useMemo } from \"react\"\r\nimport { useDispatch, useSelector } from \"react-redux\"\r\nimport { setLoading, setAlert } from \"../../../redux/commons/action\"\r\nimport { setGallery, setTargetMedia } from \"../../../redux/gallery/action\"\r\nimport { get } from \"../../../services/galleryService\"\r\nimport { FilterType } from \"../constants/gallery.types\"\r\nimport {\r\n renameFile,\r\n customKeyUpload,\r\n deleteFile,\r\n deleteFolder,\r\n createFolder\r\n} from \"../../../services/fileServices\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\n\r\nconst TITLE = \"Gallery\"\r\n\r\nconst defaultFilter: FilterType = {\r\n searchString: \"\"\r\n}\r\n\r\ninterface FormDataMediaType {\r\n file: File\r\n key?: string\r\n}\r\n\r\ninterface RouterType {\r\n link: string\r\n step: number\r\n}\r\n\r\nconst useGalleryList = (isLibrary: boolean = false) => {\r\n const mediaList = useSelector((state: any) => state.gallery.mediaList)\r\n const totalItems = useSelector((state: any) => state.gallery.totalItems)\r\n const targetMedia: S3Object = useSelector(\r\n (state: any) => state.gallery.targetMedia\r\n )\r\n const dispatch = useDispatch()\r\n\r\n const [formDataMediaType, handleSelectFile] = useState<FormDataMediaType>()\r\n const [filters, setFilters] = useState<FilterType>(\r\n Object.assign(\r\n { ...defaultFilter },\r\n isLibrary ? { isLibrary: true } : {}\r\n )\r\n )\r\n const [router, changeRouter] = useState<RouterType>({ link: \"\", step: 0 })\r\n\r\n const handleOpenFolder = (media: S3Object) => {\r\n if (media.isFolder) {\r\n setFilters({ prefix: media.key, isLibrary })\r\n if (media.key) {\r\n changeRouter({\r\n link: media.key,\r\n step: router.step + 1\r\n })\r\n }\r\n }\r\n }\r\n\r\n const handleGoBack = () => {\r\n const { link, step } = router\r\n if (!link || link == \"\" || step < 1) return\r\n let temp = link.split(\"/\")\r\n if (temp[temp.length - 1] === \"\") {\r\n changeRouter({\r\n link: `${temp.splice(0, temp.length - 2).join(\"/\")}/`,\r\n step: step - 1\r\n })\r\n } else {\r\n temp.pop()\r\n changeRouter({ link: `${temp.join(\"/\")}/`, step: step - 1 })\r\n }\r\n }\r\n\r\n const handleSelectMedia = (media: S3Object) => {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n if (targetMedia) {\r\n if (media.key === targetMedia.key) {\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n } else {\r\n dispatch(setTargetMedia({ targetMedia: media }))\r\n }\r\n }\r\n\r\n const handleRenameFile = async (name: string) => {\r\n if (targetMedia?.key && name) {\r\n dispatch(setLoading(true))\r\n await renameFile(targetMedia.key, name)\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n }\r\n\r\n const handleDownloadMedia = () => {\r\n if (targetMedia?.key) {\r\n const url = getFileUrl(targetMedia.key)\r\n window.open(url, \"_blank\")\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to download media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const showErrorAlert = (message: string) => {\r\n setAlert({ type: \"danger\", message })\r\n }\r\n\r\n const handleDeleteMediaOrFolder = async () => {\r\n if (targetMedia?.key) {\r\n dispatch(\r\n setModal({\r\n isOpen: true,\r\n type: \"warning\",\r\n message: `Do you want to remove this ${\r\n targetMedia.isFolder ? \"folder\" : \"file\"\r\n }`,\r\n onConfirm: async () => {\r\n dispatch(setLoading(true))\r\n if (targetMedia.isFolder) {\r\n await deleteFolder(targetMedia.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n } else {\r\n await deleteFile(targetMedia?.key || \"\")\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n }\r\n dispatch(setLoading(false))\r\n getData()\r\n }\r\n })\r\n )\r\n } else {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: \"Error to delete media, please try later.\"\r\n })\r\n )\r\n }\r\n }\r\n\r\n const handleCreateFolder = async (prefix: string, folderName: string) => {\r\n if (folderName) {\r\n await createFolder(prefix, folderName)\r\n getData()\r\n }\r\n }\r\n\r\n const changeFilters = (updatedFilters: FilterType) =>\r\n setFilters({\r\n ...filters,\r\n ...updatedFilters\r\n })\r\n\r\n const getData = useCallback(async () => {\r\n dispatch(setLoading(true))\r\n try {\r\n const res = await get(filters)\r\n dispatch(\r\n setGallery({\r\n mediaList: res.data,\r\n totalItems: res.data.length || 0\r\n })\r\n )\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }, [dispatch, filters])\r\n\r\n useEffect(() => {\r\n document.title = TITLE\r\n dispatch(setTargetMedia({ targetMedia: undefined }))\r\n }, [])\r\n\r\n useEffect(() => {\r\n changeFilters({ prefix: router.link })\r\n }, [router.link])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [filters])\r\n\r\n useEffect(() => {\r\n async function customKeyUploadEffect() {\r\n if (isLibrary) return\r\n dispatch(setLoading(true))\r\n try {\r\n if (formDataMediaType) {\r\n const { file, key } = formDataMediaType\r\n const { name } = file\r\n const customKey = key\r\n const formData = new FormData()\r\n formData.append(\"file\", file, name)\r\n formData.append(\"customKey\", customKey?.slice(0, -1) || \"\")\r\n await customKeyUpload(formData)\r\n getData()\r\n }\r\n } catch (err) {\r\n dispatch(\r\n setAlert({\r\n type: \"danger\",\r\n message: err.response?.data?.title || err.message\r\n })\r\n )\r\n }\r\n dispatch(setLoading(false))\r\n }\r\n\r\n customKeyUploadEffect()\r\n }, [formDataMediaType])\r\n\r\n const breadcrumb = useMemo(() => {\r\n try {\r\n const subLinks = router.link?.split(\"/\")\r\n return subLinks.splice(2, subLinks.length).join(\"/\")\r\n } catch (_err) {\r\n return \"\"\r\n }\r\n }, [router.link])\r\n\r\n return {\r\n mediaList,\r\n filters,\r\n totalItems,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n getData,\r\n changeFilters,\r\n handleSelectFile,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleCreateFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n }\r\n}\r\n\r\nexport default useGalleryList\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col, Card, CardHeader, CardBody } from \"reactstrap\"\r\nimport { S3Object } from \"../constants/gallery.types\"\r\nimport MediaNav from \"../components/MediaNav\"\r\nimport Media from \"../components/Media\"\r\nimport Filter from \"../components/Filter\"\r\nimport styles from \"../styles/media.styles.module.scss\"\r\nimport useGalleryList from \"../hooks/useGalleryList\"\r\n\r\ninterface Props {\r\n height: string\r\n isLibrary?: boolean\r\n}\r\n\r\nconst MediaList: FC<Props> = ({ height, isLibrary }: Props) => {\r\n const {\r\n filters,\r\n mediaList,\r\n targetMedia,\r\n router,\r\n breadcrumb,\r\n changeFilters,\r\n handleOpenFolder,\r\n handleSelectMedia,\r\n handleSelectFile,\r\n handleCreateFolder,\r\n handleRenameFile,\r\n handleDownloadMedia,\r\n handleDeleteMediaOrFolder,\r\n handleGoBack,\r\n showErrorAlert\r\n } = useGalleryList(isLibrary)\r\n\r\n const renderList = () =>\r\n mediaList.map((media: S3Object) => {\r\n const isTarget = targetMedia?.key === media.key\r\n\r\n return (\r\n <Col className=\"p-2\" xs=\"auto\" key={media.key}>\r\n <div\r\n onDoubleClick={() => handleOpenFolder(media)}\r\n onClick={() => handleSelectMedia(media)}\r\n className={styles[\"media-wrapper\"]}\r\n >\r\n <Media media={media} isTarget={isTarget} />\r\n </div>\r\n </Col>\r\n )\r\n })\r\n\r\n return (\r\n <Card>\r\n <CardHeader>\r\n <Filter changeFilters={changeFilters} filters={filters} />\r\n <MediaNav\r\n isLibrary={isLibrary}\r\n step={router.step}\r\n breadcumb={breadcrumb}\r\n currentPrefix={filters.prefix || \"\"}\r\n targetMedia={targetMedia}\r\n handleSelectFile={handleSelectFile}\r\n handleCreateFolder={handleCreateFolder}\r\n handleRenameFile={handleRenameFile}\r\n handleDownloadMedia={handleDownloadMedia}\r\n handleDeleteMediaOrFolder={handleDeleteMediaOrFolder}\r\n handleGoBack={handleGoBack}\r\n showErrorAlert={showErrorAlert}\r\n />\r\n </CardHeader>\r\n <CardBody style={{ minHeight: height }}>\r\n <Row className=\"p-1\">{renderList()}</Row>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default MediaList\r\n","import React, { FC } from \"react\"\r\nimport {\r\n Card,\r\n CardImg,\r\n CardTitle,\r\n CardHeader,\r\n CardBody,\r\n CardText\r\n} from \"reactstrap\"\r\nimport getFileUrl from \"../../../utils/getFileUrl\"\r\nimport { MediaType, S3Object } from \"../constants/gallery.types\"\r\nimport { getTypeByExtension } from \"../extensions/helpers\"\r\ninterface MediaDetailInterface {\r\n targetMedia: S3Object\r\n}\r\n\r\nconst MediaDetail: FC<MediaDetailInterface> = ({ targetMedia }) => {\r\n if (!targetMedia || targetMedia?.isFolder) return <div />\r\n const type = getTypeByExtension(targetMedia.extension)\r\n const url = getFileUrl(targetMedia.key || \"\")\r\n\r\n return (\r\n <Card className=\"position-sticky\">\r\n <CardHeader>{targetMedia?.name || \"Media name\"}</CardHeader>\r\n {type === MediaType.IMAGE && (\r\n <CardImg className=\"p-2\" src={url} loading=\"lazy\" />\r\n )}\r\n {type === MediaType.VIDEO && (\r\n <div className=\"p-2\">\r\n <video\r\n id={targetMedia.key}\r\n width=\"100%\"\r\n height=\"100%\"\r\n controls\r\n >\r\n <source src={url} />\r\n </video>\r\n </div>\r\n )}\r\n {type === MediaType.AUDIO && (\r\n <div className=\"p-2\">\r\n <audio controls className=\"w-100\">\r\n <source src={url}/>\r\n </audio>\r\n </div>\r\n )}\r\n <CardBody>\r\n <CardTitle tag=\"h6\">General Info</CardTitle>\r\n <CardText>\r\n File extension: {targetMedia.extension?.toUpperCase()}\r\n </CardText>\r\n </CardBody>\r\n </Card>\r\n )\r\n}\r\n\r\nexport default React.memo(MediaDetail)\r\n","import React, { FC } from \"react\"\r\nimport { Row, Col } from \"reactstrap\"\r\nimport { useSelector } from \"react-redux\"\r\nimport MediaList from \"../components/MediaList\"\r\nimport MediaDetail from \"../components/MediaDetail\"\r\n\r\nconst header = \"Gallery\"\r\ninterface Props {\r\n isLibrary?: boolean\r\n}\r\n\r\nconst GalleryList: FC<Props> = ({ isLibrary }: Props) => {\r\n const targetMedia = useSelector((state: any) => state.gallery.targetMedia)\r\n\r\n return (\r\n <div className=\"fadeIn animated\">\r\n {!isLibrary && <h5 className=\"mb-2\">{header}</h5>}\r\n <Row className=\"mb-2\">\r\n <Col md={8}>\r\n <MediaList height=\"100vh\" isLibrary={isLibrary} />\r\n </Col>\r\n <Col md={4}>\r\n <MediaDetail\r\n key={targetMedia?.key}\r\n targetMedia={targetMedia}\r\n />\r\n </Col>\r\n </Row>\r\n </div>\r\n )\r\n}\r\nexport default GalleryList\r\n","import { api } from \"../services/api\"\r\nimport { BASE_URL } from \"../utils/constants\"\r\n\r\nconst CLASS_URL = `${BASE_URL}/api/academicclass`\r\n\r\nexport const get = () => api.get(CLASS_URL)\r\n","import React, { useState, useEffect } from \"react\"\r\nimport Select from \"react-select\"\r\nimport { get } from \"../../services/classService\"\r\n\r\nconst AcademicClassSelector = (props: any) => {\r\n const [classes, setClasses] = useState([])\r\n\r\n useEffect(() => {\r\n getData()\r\n }, [])\r\n\r\n const getData = async () => {\r\n try {\r\n const res = await get()\r\n setClasses(res.data.items)\r\n } catch (err) {\r\n console.error(err)\r\n }\r\n }\r\n const { id } = props\r\n const options = classes.map((i: any) => {\r\n return {\r\n id: i.id,\r\n value: i.id,\r\n label: i.name\r\n }\r\n })\r\n\r\n const initValue = !!id\r\n ? options.find((option: any) => option.value === id) || null\r\n : null\r\n\r\n return <Select options={options} value={initValue} {...props} />\r\n}\r\n\r\nexport default AcademicClassSelector\r\n","import React, { FC } from \"react\"\r\n\r\nconst SchoolList: FC = () => {\r\n return <div>District school list</div>\r\n}\r\n\r\nexport default SchoolList\r\n","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t(e.reduxLogger=e.reduxLogger||{})}(this,function(e){\"use strict\";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,\"kind\",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,\"path\",{value:t,enumerable:!0})}function n(e,t,r){n.super_.call(this,\"E\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0}),Object.defineProperty(this,\"rhs\",{value:r,enumerable:!0})}function o(e,t){o.super_.call(this,\"N\",e),Object.defineProperty(this,\"rhs\",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,\"D\",e),Object.defineProperty(this,\"lhs\",{value:t,enumerable:!0})}function a(e,t,r){a.super_.call(this,\"A\",e),Object.defineProperty(this,\"index\",{value:t,enumerable:!0}),Object.defineProperty(this,\"item\",{value:r,enumerable:!0})}function f(e,t,r){var n=e.slice((r||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,n),e}function u(e){var t=\"undefined\"==typeof e?\"undefined\":N(e);return\"object\"!==t?t:e===Math?\"math\":null===e?\"null\":Array.isArray(e)?\"array\":\"[object Date]\"===Object.prototype.toString.call(e)?\"date\":\"function\"==typeof e.toString&&/^\\/.*\\//.test(e.toString())?\"regexp\":\"object\"}function l(e,t,r,c,s,d,p){s=s||[],p=p||[];var g=s.slice(0);if(\"undefined\"!=typeof d){if(c){if(\"function\"==typeof c&&c(g,d))return;if(\"object\"===(\"undefined\"==typeof c?\"undefined\":N(c))){if(c.prefilter&&c.prefilter(g,d))return;if(c.normalize){var h=c.normalize(g,d,e,t);h&&(e=h[0],t=h[1])}}}g.push(d)}\"regexp\"===u(e)&&\"regexp\"===u(t)&&(e=e.toString(),t=t.toString());var y=\"undefined\"==typeof e?\"undefined\":N(e),v=\"undefined\"==typeof t?\"undefined\":N(t),b=\"undefined\"!==y||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(d),m=\"undefined\"!==v||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(d);if(!b&&m)r(new o(g,t));else if(!m&&b)r(new i(g,e));else if(u(e)!==u(t))r(new n(g,e,t));else if(\"date\"===u(e)&&e-t!==0)r(new n(g,e,t));else if(\"object\"===y&&null!==e&&null!==t)if(p.filter(function(t){return t.lhs===e}).length)e!==t&&r(new n(g,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var w;e.length;for(w=0;w<e.length;w++)w>=t.length?r(new a(g,w,new i(void 0,e[w]))):l(e[w],t[w],r,c,g,w,p);for(;w<t.length;)r(new a(g,w,new o(void 0,t[w++])))}else{var x=Object.keys(e),S=Object.keys(t);x.forEach(function(n,o){var i=S.indexOf(n);i>=0?(l(e[n],t[n],r,c,g,n,p),S=f(S,i)):l(e[n],void 0,r,c,g,n,p)}),S.forEach(function(e){l(void 0,t[e],r,c,g,e,p)})}p.length=p.length-1}else e!==t&&(\"number\"===y&&isNaN(e)&&isNaN(t)||r(new n(g,e,t)))}function c(e,t,r,n){return n=n||[],l(e,t,function(e){e&&n.push(e)},r),n.length?n:void 0}function s(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":s(o[r.path[n]],r.index,r.item);break;case\"D\":delete o[r.path[n]];break;case\"E\":case\"N\":o[r.path[n]]=r.rhs}}else switch(r.kind){case\"A\":s(e[t],r.index,r.item);break;case\"D\":e=f(e,t);break;case\"E\":case\"N\":e[t]=r.rhs}return e}function d(e,t,r){if(e&&t&&r&&r.kind){for(var n=e,o=-1,i=r.path?r.path.length-1:0;++o<i;)\"undefined\"==typeof n[r.path[o]]&&(n[r.path[o]]=\"number\"==typeof r.path[o]?[]:{}),n=n[r.path[o]];switch(r.kind){case\"A\":s(r.path?n[r.path[o]]:n,r.index,r.item);break;case\"D\":delete n[r.path[o]];break;case\"E\":case\"N\":n[r.path[o]]=r.rhs}}}function p(e,t,r){if(r.path&&r.path.length){var n,o=e[t],i=r.path.length-1;for(n=0;n<i;n++)o=o[r.path[n]];switch(r.kind){case\"A\":p(o[r.path[n]],r.index,r.item);break;case\"D\":o[r.path[n]]=r.lhs;break;case\"E\":o[r.path[n]]=r.lhs;break;case\"N\":delete o[r.path[n]]}}else switch(r.kind){case\"A\":p(e[t],r.index,r.item);break;case\"D\":e[t]=r.lhs;break;case\"E\":e[t]=r.lhs;break;case\"N\":e=f(e,t)}return e}function g(e,t,r){if(e&&t&&r&&r.kind){var n,o,i=e;for(o=r.path.length-1,n=0;n<o;n++)\"undefined\"==typeof i[r.path[n]]&&(i[r.path[n]]={}),i=i[r.path[n]];switch(r.kind){case\"A\":p(i[r.path[n]],r.index,r.item);break;case\"D\":i[r.path[n]]=r.lhs;break;case\"E\":i[r.path[n]]=r.lhs;break;case\"N\":delete i[r.path[n]]}}}function h(e,t,r){if(e&&t){var n=function(n){r&&!r(e,t,n)||d(e,t,n)};l(e,t,n)}}function y(e){return\"color: \"+F[e].color+\"; font-weight: bold\"}function v(e){var t=e.kind,r=e.path,n=e.lhs,o=e.rhs,i=e.index,a=e.item;switch(t){case\"E\":return[r.join(\".\"),n,\"→\",o];case\"N\":return[r.join(\".\"),o];case\"D\":return[r.join(\".\")];case\"A\":return[r.join(\".\")+\"[\"+i+\"]\",a];default:return[]}}function b(e,t,r,n){var o=c(e,t);try{n?r.groupCollapsed(\"diff\"):r.group(\"diff\")}catch(e){r.log(\"diff\")}o?o.forEach(function(e){var t=e.kind,n=v(e);r.log.apply(r,[\"%c \"+F[t].text,y(t)].concat(P(n)))}):r.log(\"—— no diff ——\");try{r.groupEnd()}catch(e){r.log(\"—— diff end —— \")}}function m(e,t,r,n){switch(\"undefined\"==typeof e?\"undefined\":N(e)){case\"object\":return\"function\"==typeof e[n]?e[n].apply(e,P(r)):e[n];case\"function\":return e(t);default:return e}}function w(e){var t=e.timestamp,r=e.duration;return function(e,n,o){var i=[\"action\"];return i.push(\"%c\"+String(e.type)),t&&i.push(\"%c@ \"+n),r&&i.push(\"%c(in \"+o.toFixed(2)+\" ms)\"),i.join(\" \")}}function x(e,t){var r=t.logger,n=t.actionTransformer,o=t.titleFormatter,i=void 0===o?w(t):o,a=t.collapsed,f=t.colors,u=t.level,l=t.diff,c=\"undefined\"==typeof t.titleFormatter;e.forEach(function(o,s){var d=o.started,p=o.startedTime,g=o.action,h=o.prevState,y=o.error,v=o.took,w=o.nextState,x=e[s+1];x&&(w=x.prevState,v=x.started-d);var S=n(g),k=\"function\"==typeof a?a(function(){return w},g,o):a,j=D(p),E=f.title?\"color: \"+f.title(S)+\";\":\"\",A=[\"color: gray; font-weight: lighter;\"];A.push(E),t.timestamp&&A.push(\"color: gray; font-weight: lighter;\"),t.duration&&A.push(\"color: gray; font-weight: lighter;\");var O=i(S,j,v);try{k?f.title&&c?r.groupCollapsed.apply(r,[\"%c \"+O].concat(A)):r.groupCollapsed(O):f.title&&c?r.group.apply(r,[\"%c \"+O].concat(A)):r.group(O)}catch(e){r.log(O)}var N=m(u,S,[h],\"prevState\"),P=m(u,S,[S],\"action\"),C=m(u,S,[y,h],\"error\"),F=m(u,S,[w],\"nextState\");if(N)if(f.prevState){var L=\"color: \"+f.prevState(h)+\"; font-weight: bold\";r[N](\"%c prev state\",L,h)}else r[N](\"prev state\",h);if(P)if(f.action){var T=\"color: \"+f.action(S)+\"; font-weight: bold\";r[P](\"%c action \",T,S)}else r[P](\"action \",S);if(y&&C)if(f.error){var M=\"color: \"+f.error(y,h)+\"; font-weight: bold;\";r[C](\"%c error \",M,y)}else r[C](\"error \",y);if(F)if(f.nextState){var _=\"color: \"+f.nextState(w)+\"; font-weight: bold\";r[F](\"%c next state\",_,w)}else r[F](\"next state\",w);l&&b(h,w,r,k);try{r.groupEnd()}catch(e){r.log(\"—— log end ——\")}})}function S(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},L,e),r=t.logger,n=t.stateTransformer,o=t.errorTransformer,i=t.predicate,a=t.logErrors,f=t.diffPredicate;if(\"undefined\"==typeof r)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error(\"[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\\n// Logger with default options\\nimport { logger } from 'redux-logger'\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\\nimport createLogger from 'redux-logger'\\nconst logger = createLogger({\\n // ...options\\n});\\nconst store = createStore(\\n reducer,\\n applyMiddleware(logger)\\n)\\n\"),function(){return function(e){return function(t){return e(t)}}};var u=[];return function(e){var r=e.getState;return function(e){return function(l){if(\"function\"==typeof i&&!i(r,l))return e(l);var c={};u.push(c),c.started=O.now(),c.startedTime=new Date,c.prevState=n(r()),c.action=l;var s=void 0;if(a)try{s=e(l)}catch(e){c.error=o(e)}else s=e(l);c.took=O.now()-c.started,c.nextState=n(r());var d=t.diff&&\"function\"==typeof f?f(r,l):t.diff;if(x(u,Object.assign({},t,{diff:d})),u.length=0,c.error)throw c.error;return s}}}}var k,j,E=function(e,t){return new Array(t+1).join(e)},A=function(e,t){return E(\"0\",t-e.toString().length)+e},D=function(e){return A(e.getHours(),2)+\":\"+A(e.getMinutes(),2)+\":\"+A(e.getSeconds(),2)+\".\"+A(e.getMilliseconds(),3)},O=\"undefined\"!=typeof performance&&null!==performance&&\"function\"==typeof performance.now?performance:Date,N=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},P=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}return Array.from(e)},C=[];k=\"object\"===(\"undefined\"==typeof global?\"undefined\":N(global))&&global?global:\"undefined\"!=typeof window?window:{},j=k.DeepDiff,j&&C.push(function(){\"undefined\"!=typeof j&&k.DeepDiff===c&&(k.DeepDiff=j,j=void 0)}),t(n,r),t(o,r),t(i,r),t(a,r),Object.defineProperties(c,{diff:{value:c,enumerable:!0},observableDiff:{value:l,enumerable:!0},applyDiff:{value:h,enumerable:!0},applyChange:{value:d,enumerable:!0},revertChange:{value:g,enumerable:!0},isConflict:{value:function(){return\"undefined\"!=typeof j},enumerable:!0},noConflict:{value:function(){return C&&(C.forEach(function(e){e()}),C=null),c},enumerable:!0}});var F={E:{color:\"#2196F3\",text:\"CHANGED:\"},N:{color:\"#4CAF50\",text:\"ADDED:\"},D:{color:\"#F44336\",text:\"DELETED:\"},A:{color:\"#2196F3\",text:\"ARRAY:\"}},L={level:\"log\",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return\"inherit\"},prevState:function(){return\"#9E9E9E\"},action:function(){return\"#03A9F4\"},nextState:function(){return\"#4CAF50\"},error:function(){return\"#F20404\"}},diff:!1,diffPredicate:void 0,transformer:void 0},T=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,r=e.getState;return\"function\"==typeof t||\"function\"==typeof r?S()({dispatch:t,getState:r}):void console.error(\"\\n[redux-logger v3] BREAKING CHANGE\\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\\n[redux-logger v3] Change\\n[redux-logger v3] import createLogger from 'redux-logger'\\n[redux-logger v3] to\\n[redux-logger v3] import { createLogger } from 'redux-logger'\\n\")};e.defaults=L,e.createLogger=S,e.logger=T,e.default=T,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = ponyfill(root);\nexport default result;\n","import $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setUser,\r\n setSidebar,\r\n setAlert,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage\r\n} from \"./action\"\r\n\r\nconst initialState: any = {\r\n sidebarShow: \"responsive\",\r\n isLoading: false,\r\n alert: {\r\n type: \"\",\r\n message: \"\"\r\n },\r\n modal: {\r\n isOpen: false\r\n },\r\n user: null,\r\n currentStudentId: parseInt(localStorage.getItem(\"currentStudentId\") ?? \"0\"),\r\n currentStudentUserId: localStorage.getItem(\"currentStudentUserId\") || \"\",\r\n currentStudentName: localStorage.getItem(\"currentStudentName\") || \"\",\r\n turnOffPassWhenChangeMode: false,\r\n menuBar: true,\r\n defaultFontSize: 16,\r\n isEnableIEP: true,\r\n isEnableSurvey: false,\r\n isConversationOneToOne: false,\r\n language: \"en\",\r\n amplitude: {\r\n user_id: \"\",\r\n status: \"\",\r\n student_id: \"\",\r\n page: \"\",\r\n part: \"\",\r\n iep_date: null,\r\n saved: null,\r\n first_login: \"\",\r\n duration_since: 0,\r\n last_page: \"\",\r\n event: \"\"\r\n }\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLoading, (state, action) => {\r\n state.isLoading = action.payload\r\n })\r\n .addCase(setModal, (state, action) => {\r\n state.modal = action.payload\r\n })\r\n .addCase(setUser, (state, action) => {\r\n state.user = action.payload\r\n })\r\n .addCase(setSidebar, (state, action) => {\r\n state.sidebarShow = action.payload\r\n })\r\n .addCase(setAlert, (state, action) => {\r\n state.alert = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"currentStudentId\")\r\n localStorage.removeItem(\"currentStudentUserId\")\r\n localStorage.removeItem(\"currentStudentName\")\r\n return initialState\r\n })\r\n .addCase(setCurrentStudentId, (state, action) => {\r\n state.currentStudentId = action.payload\r\n })\r\n .addCase(setCurrentStudentUserId, (state, action) => {\r\n state.currentStudentUserId = action.payload\r\n })\r\n .addCase(setCurrentStudentName, (state, action) => {\r\n state.currentStudentName = action.payload\r\n })\r\n .addCase(setTurnOffPassWhenChangeMode, (state, action) => {\r\n state.turnOffPassWhenChangeMode = action.payload\r\n })\r\n .addCase(showMenuBar, (state, action) => {\r\n state.menuBar = action.payload\r\n })\r\n .addCase(setEnableIEP, (state, action) => {\r\n state.isEnableIEP = action.payload\r\n })\r\n .addCase(setEnableSurvey, (state, action) => {\r\n state.isEnableSurvey = action.payload\r\n })\r\n .addCase(setConversationOneToOne, (state, action) => {\r\n state.isConversationOneToOne = action.payload\r\n })\r\n .addCase(setLanguage, (state, action) => {\r\n state.language = action.payload\r\n })\r\n .addCase(showFontSize, (state, action) => {\r\n state.defaultFontSize = action.payload\r\n })\r\n .addCase(initAmplitude, (state, action) => {\r\n const hostName = window.location.hostname;\r\n var eventProperties = {\r\n user_id: action.payload?.name,\r\n status: action.payload?.status ? action.payload?.status : \"\",\r\n student_id: action.payload?.student_id\r\n ? action.payload.student_id\r\n : \"\",\r\n page: action.payload?.page ? action.payload.page : \"\",\r\n part: action.payload?.part ? action.payload.part : \"\",\r\n iep_date: action.payload?.iep_date\r\n ? action.payload.iep_date\r\n : null,\r\n saved:\r\n typeof action.payload?.saved == \"boolean\"\r\n ? action.payload.saved\r\n : null,\r\n first_login: action.payload?.first_login\r\n ? action.payload.first_login\r\n : \"\",\r\n duration_since: action.payload?.duration_since\r\n ? action.payload.duration_since\r\n : 0,\r\n last_page: action.payload?.last_page\r\n ? action.payload.last_page\r\n : \"\",\r\n event: action.payload.event,\r\n domain: !!hostName ? hostName : \"\",\r\n answer: !!action.payload?.answer\r\n ? action.payload.answer\r\n : \"\"\r\n }\r\n state.amplitude = eventProperties\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setClassList = createAction<any>(\"classes/setClassList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n classList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst classReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setClassList, (state, action) => {\r\n state.classList = action.payload.classList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default classReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setConferenceRubricList = createAction<any>(\r\n \"conferenceRubric/setConferenceRubricList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setConferenceRubricList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n conferenceRubricList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst conferenceRubricReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setConferenceRubricList, (state, action) => {\r\n state.conferenceRubricList = action.payload.conferenceRubricList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default conferenceRubricReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFaqList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n faqList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFaqList, (state, action) => {\r\n state.faqList = action.payload.faqList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSkillList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n skillList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSkillList, (state, action) => {\r\n state.skillList = action.payload.skillList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setEmailTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n emailTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst emailTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setEmailTemplateList, (state, action) => {\r\n state.emailTemplateList = action.payload.emailTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default emailTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSuggestionList = createAction<any>(\r\n \"suggestionBank/setSuggestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSuggestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n suggestionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst suggestionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSuggestionList, (state, action) => {\r\n state.suggestionList = action.payload.suggestionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default suggestionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStrategyList = createAction<any>(\r\n \"learningStrategy/setStrategyList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStrategyList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n strategyList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst learningStrategyReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStrategyList, (state, action) => {\r\n state.strategyList = action.payload.strategyList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default learningStrategyReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSubjectList = createAction<any>(\"subjects/setSubjectList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSubjectList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n subjectList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSubjectList, (state, action) => {\r\n state.subjectList = action.payload.subjectList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setLearningSupportCategoryList = createAction<any>(\r\n \"learningSupportCategories/setLearningSupportCategoryList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setLearningSupportCategoryList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n learningSupportCategoryList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setLearningSupportCategoryList, (state, action) => {\r\n state.learningSupportCategoryList =\r\n action.payload.learningSupportCategoryList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionList = createAction<any>(\"questionBank/setQuestionList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionList, (state, action) => {\r\n state.questionList = action.payload.questionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBadgeList = createAction<any>(\"badges/setBadgeList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBadgeList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n badgeList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBadgeList, (state, action) => {\r\n state.badgeList = action.payload.badgeList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSemesterList = createAction<any>(\"semester/setSemesterList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSemesterList } from \"./action\"\r\n\r\nconst initialState: any = {\r\n semesterList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder.addCase(setSemesterList, (state, action) => {\r\n state.semesterList = action.payload.semesterList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssignmentList = createAction<any>(\"assignment/setAssignmentList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssignmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assignmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssignmentList, (state, action) => {\r\n state.assignmentList = action.payload.assignmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setGoalExampleList = createAction<any>(\r\n \"goalExamples/setGoalExampleList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGoalExampleList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n goalExampleList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGoalExampleList, (state, action) => {\r\n state.goalExampleList = action.payload.goalExampleList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setUserList, setStudentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n userList: [],\r\n totalItems: 0,\r\n studentList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setUserList, (state, action) => {\r\n state.userList = action.payload.userList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setStudentList, (state, action) => {\r\n state.studentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFeedbackList = createAction<any>(\"feedback/setFeedbackList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFeedbackList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n feedbackList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFeedbackList, (state, action) => {\r\n state.feedbackList = action.payload.feedbackList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssessmentList = createAction<any>(\r\n \"assessments/setAssessmentList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setAssessmentList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n assessmentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setAssessmentList, (state, action) => {\r\n state.assessmentList = action.payload.assessmentList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionList = createAction<any>(\r\n \"reflectionForms/setReflectionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionList, (state, action) => {\r\n state.reflectionList = action.payload.reflectionList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setReflectionResultList = createAction<any>(\r\n \"reflectionForms/setReflectionResultList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setReflectionResultList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n reflectionResultList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst reflectionReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setReflectionResultList, (state, action) => {\r\n state.reflectionResultList = action.payload.reflectionResultList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default reflectionReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionByCategory = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setQuestionByCategory\"\r\n)\r\nexport const setSelectQuestion = createAction<{ id: number }>(\r\n \"questionByCategory/setSelectQuestion\"\r\n)\r\nexport const setUnSelectQuestion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setUnSelectQuestion\"\r\n)\r\nexport const setMoveItemQuestion = createAction<string | undefined>(\r\n \"questionByCategory/setMoveItemQuestion\"\r\n)\r\nexport const setEditItemQuesion = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setEditItemQuesion\"\r\n)\r\nexport const setResetQuestionList = createAction<Array<object> | undefined>(\r\n \"questionByCategory/setResetQuestionList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setUnSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionByCategoryList: [],\r\n selectedQuestions: [],\r\n selectQuestion: []\r\n}\r\nconst mergeArrayUniqueQuestion = (array1: any, array2: any) => {\r\n var ids = new Set(array1.map((d: any) => d.id))\r\n var arrMerged = [...array1, ...array2.filter((d: any) => !ids.has(d.id))]\r\n return arrMerged\r\n}\r\nconst questionCategoryReducer = createReducer(initialState, builder => {\r\n builder.addCase(setQuestionByCategory, (state, action) => {\r\n state.questionByCategoryList = action.payload\r\n if (state.selectedQuestions.length > 0) {\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n }\r\n })\r\n builder.addCase(setSelectQuestion, (state, action) => {\r\n let index = state.selectQuestion.findIndex(\r\n (item: any) => item.id === action.payload.id\r\n )\r\n if (index === -1) {\r\n state.selectQuestion.push(action.payload)\r\n } else {\r\n state.selectQuestion.splice(index, 1)\r\n }\r\n })\r\n builder.addCase(setUnSelectQuestion, (state, action) => {\r\n state.selectQuestion = action.payload\r\n })\r\n builder.addCase(setMoveItemQuestion, (state, action) => {\r\n switch (action.payload) {\r\n case \"right\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.selectQuestion\r\n )\r\n state.questionByCategoryList = state.questionByCategoryList.filter(\r\n (item: any) => {\r\n return !state.selectedQuestions.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"right-all\":\r\n state.selectedQuestions = mergeArrayUniqueQuestion(\r\n state.selectedQuestions,\r\n state.questionByCategoryList\r\n )\r\n state.selectQuestion = []\r\n state.questionByCategoryList = []\r\n break\r\n case \"left\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectQuestion\r\n )\r\n state.selectedQuestions = state.selectedQuestions.filter(\r\n (item: any) => {\r\n return !state.selectQuestion.some(\r\n (sub: any) => sub.id === item.id\r\n )\r\n }\r\n )\r\n state.selectQuestion = []\r\n break\r\n case \"left-all\":\r\n state.questionByCategoryList = mergeArrayUniqueQuestion(\r\n state.questionByCategoryList,\r\n state.selectedQuestions\r\n )\r\n state.selectedQuestions = []\r\n state.selectQuestion = []\r\n break\r\n case \"move-up\":\r\n const old_index = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index - 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index, 1)[0]\r\n )\r\n }\r\n break\r\n case \"move-down\":\r\n const old_index1 = state.selectedQuestions.findIndex(\r\n (item: any) => item.id === state.selectQuestion[0].id\r\n )\r\n if (old_index1 !== -1) {\r\n state.selectedQuestions.splice(\r\n old_index1 + 1,\r\n 0,\r\n state.selectedQuestions.splice(old_index1, 1)[0]\r\n )\r\n }\r\n break\r\n default:\r\n break\r\n }\r\n })\r\n builder.addCase(setEditItemQuesion, (state, action) => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = action.payload\r\n })\r\n builder.addCase(setResetQuestionList, state => {\r\n state.questionByCategoryList = []\r\n state.selectedQuestions = []\r\n })\r\n builder.addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCategoryReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMailCategory } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mailCategoryList: []\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMailCategory, (state, action) => {\r\n state.mailCategoryList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setQuestionCateList = createAction<any>(\r\n \"questionCate/setQuestionCateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setQuestionCateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n questionCateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst questionCateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setQuestionCateList, (state, action) => {\r\n state.questionCateList = action.payload.questionCateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionCateReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n setNotification,\r\n setUnReadNotification,\r\n updateUnReadNotification\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n notificationList: [],\r\n totalItems: 0,\r\n unReadNotification: 0\r\n}\r\n\r\nconst questionBankReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setNotification, (state, action) => {\r\n ;(state.notificationList = action.payload.notificationList),\r\n (state.totalItems = action.payload.totalItems),\r\n (state.unReadNotification = action.payload.unReadNotification)\r\n })\r\n .addCase(setUnReadNotification, (state, action) => {\r\n state.unReadNotification = action.payload\r\n })\r\n .addCase(updateUnReadNotification, (state, action) => {\r\n state.unReadNotification += action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default questionBankReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setMyStudent = createAction<any>(\"myStudent/setMyStudentList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setMyStudent } from \"./action\"\r\nimport { reset } from \"../../commons/action\"\r\n\r\nconst initialState: any = {\r\n myStudentList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setMyStudent, (state, action) => {\r\n state.myStudentList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setAssistantList = createAction<Array<object> | undefined>(\r\n \"assistants/setAssistantList\"\r\n)\r\n// export const setStudentAssistantList = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentAssistantList\"\r\n// )\r\n// export const setStudentByAssistant = createAction<Array<object> | undefined>(\r\n// \"assistants/setStudentByAssistant\"\r\n// )\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setAssistantList } from \"./action\"\r\n\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n assistantList: []\r\n}\r\n\r\nconst assistantReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setAssistantList, (state, action) => {\r\n state.assistantList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default assistantReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateList = createAction<any>(\r\n \"sessionTemplates/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionTemplateList, (state, action) => {\r\n state.sessionTemplateList = action.payload.sessionTemplateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionTemplateReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSessionTemplateGeneralClassList = createAction<any>(\r\n \"sessionTemplateGeneralClasses/setSessionTemplateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSessionTemplateGeneralClassList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionTemplateGeneralClassList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst sessionTemplateGeneralClassReducer = createReducer(\r\n initialState,\r\n builder => {\r\n builder\r\n .addCase(setSessionTemplateGeneralClassList, (state, action) => {\r\n state.sessionTemplateGeneralClassList =\r\n action.payload.sessionTemplateGeneralClassList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n }\r\n)\r\n\r\nexport default sessionTemplateGeneralClassReducer\r\n","import {createAction} from \"@reduxjs/toolkit\"\r\n\r\nexport const setTutorialScreenList = createAction<any>(\"tutorialScreens/setTutorialScreenList\")\r\n\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { setTutorialScreenList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initState = {\r\n tutorialScreenList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst tutorialScreenReducer = createReducer(initState, builder => {\r\n builder\r\n .addCase(setTutorialScreenList, (state, action) => {\r\n state.tutorialScreenList = action.payload.tutorialScreenList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initState\r\n })\r\n})\r\n\r\nexport default tutorialScreenReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCustomAlertList = createAction<any>(\"customAlerts/setCustomAlertList\")","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCustomAlertList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n customAlertList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCustomAlertList, (state, action) => {\r\n state.customAlertList = action.payload.customAlertList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setGallery, setTargetMedia } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n mediaList: [],\r\n totalItems: 0,\r\n targetMedia: undefined\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setGallery, (state, action) => {\r\n state.mediaList = action.payload.mediaList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(setTargetMedia, (state, action) => {\r\n state.targetMedia = action.payload.targetMedia\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\nimport { NavbarTab } from \"../../types/Dashboard\"\r\n\r\nexport const addTab = createAction<NavbarTab>(\"dashboard/addTab\")\r\nexport const closeTab = createAction<number>(\"dashboard/closeTab\")\r\nexport const editTab = createAction<NavbarTab>(\"dashboard/editTab\")\r\nexport const clearTab = createAction(\"dashboard/clearTab\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n tabs: !!localStorage.getItem(\"myTab\")\r\n ? JSON.parse(localStorage.getItem(\"myTab\") ?? \"\")\r\n : []\r\n}\r\nconst dashboardReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(addTab, (state, action) => {\r\n if (state.tabs.some((tab: any) => tab.url === action.payload.url)) {\r\n return state\r\n }\r\n\r\n return {\r\n ...state,\r\n tabs: [action.payload, ...state.tabs]\r\n }\r\n })\r\n .addCase(closeTab, (state, action) => {\r\n let tabs = JSON.parse(JSON.stringify(state.tabs))\r\n delete tabs[action.payload]\r\n tabs = tabs.filter(Boolean)\r\n\r\n return { ...state, tabs }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n .addCase(editTab, (state, action) => {\r\n const tabs = JSON.parse(JSON.stringify(state.tabs))\r\n const editingTab = tabs.find(\r\n (tab: any) => action.payload.label === tab.label\r\n )\r\n editingTab.url = action.payload.url\r\n return {\r\n ...state,\r\n tabs\r\n }\r\n })\r\n .addCase(clearTab, (_state, _action) => {\r\n localStorage.removeItem(\"myTab\")\r\n return { tabs: [] }\r\n })\r\n})\r\n\r\nexport default dashboardReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const changeNote = createAction<any>(\"sessionPlayer/changeNote\")\r\nexport const changeTags = createAction<any>(\"sessionPlayer/changeTags\")\r\nexport const answerQuestion = createAction<any>(\"sessionPlayer/answerQuestion\")\r\nexport const setSessionPlayer = createAction<any>(\r\n \"sessionPlayer/setSessionPlayer\"\r\n)\r\nexport const setStartTime = createAction<any>(\"sessionPlayer/setStartTime\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n sessionId: 0,\r\n session: {\r\n id: 0,\r\n studentId: 0,\r\n teacherId: 0,\r\n duration: 0,\r\n conferenceRubric: null,\r\n studentDefaultQuestions: [],\r\n teacherDefaultQuestions: [],\r\n additionalQuestions: []\r\n },\r\n results: [],\r\n startTime: \"\"\r\n}\r\n\r\nconst sessionPlayerReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSessionPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(changeNote, (state, action) => {\r\n const { isConfidential, text } = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n\r\n const existedNote = teacherResultCloner.notes.find(\r\n (note: any) => !!note.isConfidential === isConfidential\r\n )\r\n\r\n if (existedNote) {\r\n existedNote.text = text\r\n } else {\r\n teacherResultCloner.notes.push({ isConfidential, text })\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(changeTags, (state, action) => {\r\n const tags = action.payload\r\n const teacherResult = state.results.find(\r\n (result: any) => result.isTeacherResult\r\n )\r\n if (!teacherResult) return state\r\n const teacherResultCloner = JSON.parse(\r\n JSON.stringify(teacherResult)\r\n )\r\n teacherResultCloner.tags = tags\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult ? teacherResultCloner : result\r\n )\r\n }\r\n })\r\n .addCase(answerQuestion, (state, action) => {\r\n const { text, questionId, isTeacherResult } = action.payload\r\n const result = state.results.find(\r\n (result: any) => result.isTeacherResult === isTeacherResult\r\n )\r\n if (!result) return state\r\n const resultCloner = JSON.parse(JSON.stringify(result))\r\n const existedResponse = resultCloner.questionResponses.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n resultCloner.questionResponses.push({ questionId, text })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n results: state.results.map((result: any) =>\r\n result.isTeacherResult === isTeacherResult\r\n ? resultCloner\r\n : result\r\n )\r\n }\r\n })\r\n .addCase(setStartTime, (state, action) => {\r\n const startTime = action.payload\r\n if (!startTime) return state\r\n state.startTime = startTime\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default sessionPlayerReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setDataPlayer = createAction<any>(\"dataPlayer/setDataPlayer\")\r\nexport const answerQuestionDataPlayer = createAction<any>(\r\n \"dataPlayer/answerQuestionDataPlayer\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setDataPlayer, answerQuestionDataPlayer } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n id: 0,\r\n questions: [\r\n {\r\n id: 0,\r\n text: \"\",\r\n type: \"\",\r\n subQuestions: [],\r\n answers: []\r\n }\r\n ],\r\n questionResponse: []\r\n}\r\n\r\nconst dataPlayer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setDataPlayer, (_state, action) => {\r\n return action.payload\r\n })\r\n .addCase(answerQuestionDataPlayer, (state, action) => {\r\n const { questionId, text } = action.payload\r\n const questionResponse = state.questionResponse\r\n if (!questionResponse) return state\r\n const questionResponseCloner = JSON.parse(\r\n JSON.stringify(questionResponse)\r\n )\r\n const existedResponse = questionResponseCloner.find(\r\n (response: any) => response.questionId === questionId\r\n )\r\n if (!existedResponse) {\r\n questionResponseCloner.push({\r\n questionId: questionId,\r\n text: text\r\n })\r\n } else {\r\n existedResponse.text = text\r\n }\r\n\r\n return {\r\n ...state,\r\n questionResponse: questionResponseCloner\r\n }\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default dataPlayer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setCertificateList = createAction<any>(\r\n \"certificates/setCertificateList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setCertificateList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n certificateList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setCertificateList, (state, action) => {\r\n state.certificateList = action.payload.certificateList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setImproveMyClass = createAction<any>(\r\n \"improveMyClass/setImproveMyClass\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setImproveMyClass } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n improveMyClassList: []\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setImproveMyClass, (state, action) => {\r\n state.improveMyClassList = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setFilterWidget = createAction<any>(\"setFilterWidget\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setFilterWidget } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst enum Filter {\r\n Year = \"Year\",\r\n Semester = \"Semester\"\r\n}\r\n\r\nconst initialState: any = {\r\n filterWidget: Filter.Year\r\n}\r\n\r\nconst widgetReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setFilterWidget, (state, action) => {\r\n state.filterWidget = action.payload.filterWidget\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\nexport default widgetReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setBandScoreList = createAction<any>(\"bandScores/setBandScoreList\")\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setBandScoreList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n bandScoreList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setBandScoreList, (state, action) => {\r\n state.bandScoreList = action.payload.bandScoreList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setSchoolBlankDayList = createAction<any>(\r\n \"schoolBlankDays/setSchoolBlankDayList\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setSchoolBlankDayList } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n schoolBlankDayList: [],\r\n totalItems: 0\r\n}\r\n\r\nconst commonReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setSchoolBlankDayList, (state, action) => {\r\n state.schoolBlankDayList = action.payload.schoolBlankDayList\r\n state.totalItems = action.payload.totalItems\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default commonReducer\r\n","import { createAction } from \"@reduxjs/toolkit\"\r\n\r\nexport const setStudentIdSelectedByTeacher = createAction<number>(\r\n \"navMobile/setStudentIdSelectedByTeacher\"\r\n)\r\n","import { createReducer } from \"@reduxjs/toolkit\"\r\n\r\nimport { setStudentIdSelectedByTeacher } from \"./action\"\r\nimport { reset } from \"../commons/action\"\r\n\r\nconst initialState: any = {\r\n studentIdSelectedByTeacher: 0\r\n}\r\n\r\nconst navMobileReducer = createReducer(initialState, builder => {\r\n builder\r\n .addCase(setStudentIdSelectedByTeacher, (state, action) => {\r\n state.studentIdSelectedByTeacher = action.payload\r\n })\r\n .addCase(reset, (_state, _action) => {\r\n return initialState\r\n })\r\n})\r\n\r\nexport default navMobileReducer\r\n","import { combineReducers } from \"redux\"\r\n\r\nimport common from \"./redux/commons/reducer\"\r\nimport classes from \"./redux/classes/reducer\"\r\nimport conferenceRubrics from \"./redux/conferenceRubrics/reducer\"\r\nimport faqs from \"./redux/faqs/reducer\"\r\nimport skills from \"./redux/skills/reducer\"\r\nimport emailTemplate from \"./redux/emailTemplates/reducer\"\r\nimport suggestionBank from \"./redux/suggestionBanks/reducer\"\r\nimport learningStrategy from \"./redux/learningStrategies/reducer\"\r\nimport subjects from \"./redux/subjects/reducer\"\r\nimport learningSupportCategories from \"./redux/learningSupportCategories/reducer\"\r\nimport questionBank from \"./redux/questionBanks/reducer\"\r\nimport badges from \"./redux/badges/reducer\"\r\nimport semester from \"./redux/semester/reducer\"\r\nimport assignments from \"./redux/assignment/reducer\"\r\nimport goalExamples from \"./redux/goalExamples/reducer\"\r\nimport users from \"./redux/users/reducer\"\r\nimport feedbacks from \"./redux/feedback/reducer\"\r\nimport assessments from \"./redux/assessments/reducer\"\r\nimport reflections from \"./redux/reflectionForms/reducer\"\r\nimport reflectionResults from \"./redux/reflectionResults/reducer\"\r\nimport questionByCategory from \"./redux/questionByCategory/reducer\"\r\nimport mailCategory from \"./redux/mailCategories/reducer\"\r\nimport questionCate from \"./redux/questionCategory/reducer\"\r\nimport notification from \"./redux/notifications/reducer\"\r\nimport myStudent from \"./redux/teacher/myStudent/reducer\"\r\nimport assistants from \"./redux/assistants/reducer\"\r\nimport sesstionTemplates from \"./redux/sessionTemplates/reducer\"\r\nimport sessionTemplateGeneralClasses from \"./redux/sessionTemplateGeneralClasses/reducer\"\r\nimport tutorialScreens from \"./redux/tutorialScreen/reducer\"\r\nimport customAlerts from \"./redux/customAlert/reducer\"\r\nimport gallery from \"./redux/gallery/reducer\"\r\nimport dashboard from \"./redux/dashboard/reducer\"\r\nimport sessionPlayer from \"./redux/sessionPlayers/reducer\"\r\nimport dataPlayer from \"./redux/dataPlayer/reducer\"\r\nimport certificate from \"./redux/certificate/reducer\"\r\nimport improveMyClass from \"./redux/improveMyClass/reducer\"\r\nimport widget from \"./redux/widget/reducer\"\r\nimport bandScores from \"./redux/bandScores/reducer\"\r\nimport schoolBlankDays from \"./redux/schoolBlankDays/reducer\"\r\nimport navMobileReducer from \"./redux/navMobile/reducer\"\r\n\r\nconst rootReducer = combineReducers({\r\n common,\r\n classes,\r\n conferenceRubrics,\r\n faqs,\r\n skills,\r\n emailTemplate,\r\n suggestionBank,\r\n learningStrategy,\r\n subjects,\r\n learningSupportCategories,\r\n questionBank,\r\n badges,\r\n semester,\r\n goalExamples,\r\n users,\r\n reflections,\r\n reflectionResults,\r\n feedbacks,\r\n assessments,\r\n questionByCategory,\r\n mailCategory,\r\n questionCate,\r\n notification,\r\n myStudent,\r\n assignments,\r\n assistants,\r\n sesstionTemplates,\r\n sessionTemplateGeneralClasses,\r\n tutorialScreens,\r\n customAlerts,\r\n gallery,\r\n dashboard,\r\n sessionPlayer,\r\n dataPlayer,\r\n certificate,\r\n improveMyClass,\r\n widget,\r\n bandScores,\r\n schoolBlankDays,\r\n navMobileReducer\r\n})\r\n\r\nexport default rootReducer\r\n","import { configureStore } from \"@reduxjs/toolkit\"\r\nimport logger from \"redux-logger\"\r\nimport { Store } from \"redux\"\r\n\r\nimport rootReducer from \"./rootReducer\"\r\n\r\nconst store: Store = configureStore({\r\n reducer: rootReducer,\r\n middleware: getDefaultMiddleware =>\r\n getDefaultMiddleware({ serializableCheck: false }).concat(logger)\r\n})\r\n\r\nexport default store\r\n","export const isInViewport = (el: any) => {\r\n const rect = el?.getBoundingClientRect()\r\n return (\r\n rect.top >= 0 &&\r\n rect.left >= 0 &&\r\n rect.bottom <=\r\n (window.innerHeight || document.documentElement.clientHeight) &&\r\n rect.right <=\r\n (window.innerWidth || document.documentElement.clientWidth)\r\n )\r\n}\r\n\r\nexport const toogleSidebar = () => {\r\n // @ts-ignore\r\n document.querySelector(\"#sidebar-minimizer\").click()\r\n}\r\n","const debounce = (callback: any, wait: number) => {\r\n let timeout: any = null\r\n return (...args: any[]) => {\r\n const next = () => callback(...args)\r\n clearTimeout(timeout)\r\n timeout = setTimeout(next, wait)\r\n }\r\n}\r\n\r\nexport default debounce\r\n","const getTextFromHTML = (htmlString: string) => {\r\n const p = document.createElement(\"p\")\r\n p.innerHTML = htmlString\r\n const text = p.innerText\r\n p.remove()\r\n return text\r\n}\r\n\r\nexport default getTextFromHTML\r\n","export default () => (Math.random() + 1).toString(36).substring(7)\r\n","import \"bootstrap/dist/css/bootstrap.min.css\"\r\nimport i18n from \"./i18n\"\r\nimport { useTranslation, I18nextProvider } from \"react-i18next\"\r\nimport Login from \"./containers/Login/views/Login\"\r\nimport Dashboard from \"./containers/Login/views/Dashboard\"\r\nimport TheLayout from \"./layouts/TheLayout\"\r\nimport TheContent from \"./layouts/TheContent\"\r\nimport EmailTemplateList from \"./containers/EmailTemplate/views/EmailTemplateList\"\r\nimport EmailTemplateDetail from \"./containers/EmailTemplate/views/EmailTemplateDetail\"\r\nimport FaqList from \"./containers/Faq/views/FaqList\"\r\nimport SkillList from \"./containers/Skill/views/SkillList\"\r\nimport UserList from \"./containers/User/views/UserList\"\r\nimport UserDetail from \"./containers/User/views/UserDetail\"\r\nimport Loading from \"./components/Loading/Loading\"\r\nimport ScrollToTop from \"./components/Scroll/ScrollToTop\"\r\nimport NotificationModal from \"./components/Modals/NotificationModal\"\r\nimport CommonHeader from \"./components/Headers/CommonHeader\"\r\nimport CommonModal from \"./components/Modals/CommonModal\"\r\nimport AddButton from \"./components/Buttons/AddButton\"\r\nimport DeleteButtonIcon from \"./components/Buttons/DeleteButtonIcon\"\r\nimport EditButtonIcon from \"./components/Buttons/EditButtonIcon\"\r\nimport CustomPagination from \"./components/Pagination/CustomPagination\"\r\nimport LinkEditButton from \"./components/Buttons/LinkEditButton\"\r\nimport EmptyDataAlert from \"./components/Alerts/EmptyDataAlert\"\r\nimport CreatableSelector from \"./components/Selectors/CreatableSelector\"\r\nimport SearchBox from \"./components/Inputs/SearchBox\"\r\nimport QuestionTypeSelector from \"./components/Selectors/QuestionTypeSelector\"\r\nimport SuggestionCategorySelector from \"./components/Selectors/SuggestionCategorySelector\"\r\nimport QuestionCategorySelector from \"./components/Selectors/QuestionCategorySelector\"\r\nimport ErrorHandler from \"./components/Alerts/ErrorHandler\"\r\nimport DetailActionButtons from \"./components/Buttons/DetailActionButtons\"\r\nimport RequiredLabel from \"./components/Labels/RequiredLabel\"\r\nimport StarRatingSelector from \"./components/Selectors/StarRatingSelector\"\r\nimport ToggleButton from \"./components/Buttons/ToggleButton\"\r\nimport FileInput from \"./components/Inputs/FileInput\"\r\nimport NotFound from \"./containers/Commons/NotFound\"\r\nimport ReactNotification from \"./components/Alerts/ReactNotification\"\r\nimport NotificationList from \"./containers/Notifications/views/NotificationList\"\r\nimport CustomSelector from \"./components/Selectors/CustomSelector\"\r\nimport UploadFileButton from \"./components/Buttons/UploadFileButton\"\r\nimport SearchBoxContainer from \"./components/Inputs/SearchBoxContainer\"\r\nimport CustomTab from \"./components/Tabs/CustomTab\"\r\nimport CommonAlert from \"./components/Alerts/CommonAlert\"\r\nimport GalleryList from \"./containers/Gallery/views/GalleryList\"\r\nimport MediaList from \"./containers/Gallery/components/MediaList\"\r\nimport useGalleryList from \"./containers/Gallery/hooks/useGalleryList\"\r\nimport QuitPrompt from \"./components/Others/QuitPrompt\"\r\nimport AcademicClassSelector from \"./components/Selectors/AcademicClassSelector\"\r\nimport SchoolList from \"./containers/DistrictSchools/views/SchoolList\"\r\nimport { INIT_AMPLITUDE_KEY } from \"./utils/constants\"\r\n\r\nimport store from \"./store\"\r\nimport { api, apiUpload } from \"./services/api\"\r\nimport editorConfig from \"./configs/editorConfig\"\r\nimport {\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n GOOGLE_RECAPTCHA_KEY,\r\n EMOTIONS,\r\n QUESTION_TYPES_OPTIONS,\r\n TAB_COLORS,\r\n NOTIFICATION_ALERT_KEY\r\n} from \"./utils/constants\"\r\n\r\nimport firstCheckToken from \"./utils/firstCheckToken\"\r\nimport canAccessRoute from \"./utils/canAccessRoute\"\r\nimport { getInfo } from \"./services/accountService\"\r\n\r\nimport { isInViewport } from \"./utils/domHelpers\"\r\nimport debounce from \"./utils/debounce\"\r\nimport getFileUrl from \"./utils/getFileUrl\"\r\nimport getTextFromHTML from \"./utils/getTextFromHTML\"\r\nimport utcToLocalTime from \"./utils/utcToLocalTime\"\r\n\r\nimport {\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload\r\n} from \"./services/fileServices\"\r\n\r\nimport {\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setUser,\r\n reset,\r\n setCurrentStudentId,\r\n setCurrentStudentUserId,\r\n setCurrentStudentName,\r\n setTurnOffPassWhenChangeMode,\r\n showMenuBar,\r\n showFontSize,\r\n initAmplitude\r\n} from \"./redux/commons/action\"\r\nimport { setClassList } from \"./redux/classes/action\"\r\nimport { setConferenceRubricList } from \"./redux/conferenceRubrics/action\"\r\nimport { setSuggestionList } from \"./redux/suggestionBanks/action\"\r\nimport { setStrategyList } from \"./redux/learningStrategies/action\"\r\nimport { setSubjectList } from \"./redux/subjects/action\"\r\nimport { setLearningSupportCategoryList } from \"./redux/learningSupportCategories/action\"\r\nimport { setQuestionList } from \"./redux/questionBanks/action\"\r\nimport { setBadgeList } from \"./redux/badges/action\"\r\nimport { setSemesterList } from \"./redux/semester/action\"\r\nimport { setAssignmentList } from \"./redux/assignment/action\"\r\nimport { setGoalExampleList } from \"./redux/goalExamples/action\"\r\nimport { setUserList, setStudentList } from \"./redux/users/action\"\r\nimport { setFeedbackList } from \"./redux/feedback/action\"\r\nimport { setAssessmentList } from \"./redux/assessments/action\"\r\nimport { setMyStudent } from \"./redux/teacher/myStudent/action\"\r\nimport {\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setEditItemQuesion,\r\n setResetQuestionList\r\n} from \"./redux/questionByCategory/action\"\r\nimport { setImproveMyClass } from \"./redux/improveMyClass/action\"\r\nimport { setAssistantList } from \"./redux/assistants/action\"\r\nimport { setMailCategory } from \"./redux/mailCategories/action\"\r\nimport { setReflectionList } from \"./redux/reflectionForms/action\"\r\nimport { setReflectionResultList } from \"./redux/reflectionResults/action\"\r\nimport { setSessionTemplateList } from \"./redux/sessionTemplates/action\"\r\nimport { setSessionTemplateGeneralClassList } from \"./redux/sessionTemplateGeneralClasses/action\"\r\nimport { setTutorialScreenList } from \"./redux/tutorialScreen/action\"\r\nimport { setCustomAlertList } from \"./redux/customAlert/action\"\r\nimport { setCertificateList } from \"./redux/certificate/action\"\r\nimport {\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime\r\n} from \"./redux/sessionPlayers/action\"\r\nimport { closeTab, addTab, editTab, clearTab } from \"./redux/dashboard/action\"\r\nimport { setSchoolBlankDayList } from \"./redux/schoolBlankDays/action\"\r\n\r\nimport { Filter } from \"./types/Filter\"\r\nimport { Conversation } from \"./types/Conversation\"\r\nimport { Message } from \"./types/Message\"\r\nimport { ConversationMember } from \"./types/ConversationMember\"\r\nimport { NavbarTab } from \"./types/Dashboard\"\r\n\r\nimport generateRandomString from \"./utils/generateRandomString\"\r\n\r\nimport Images from \"./assets/Images\"\r\nimport { setQuestionCateList } from \"./redux/questionCategory/action\"\r\nimport {\r\n setDataPlayer,\r\n answerQuestionDataPlayer\r\n} from \"./redux/dataPlayer/action\"\r\nimport { setFilterWidget } from \"./redux/widget/action\"\r\nimport { setBandScoreList } from \"./redux/bandScores/action\"\r\nimport { setStudentIdSelectedByTeacher } from \"./redux/navMobile/action\"\r\nimport { setEnableIEP, setEnableSurvey, setConversationOneToOne, setLanguage } from \"./redux/commons/action\"\r\n\r\nimport useFilters from \"./hooks/useFilters\"\r\nimport amplitude from \"amplitude-js\"\r\nconst amplitudeClient = amplitude.getInstance()\r\n\r\nexport {\r\n // components && views\r\n Login,\r\n Dashboard,\r\n TheLayout,\r\n TheContent,\r\n NotFound,\r\n EmailTemplateList,\r\n EmailTemplateDetail,\r\n FaqList,\r\n SkillList,\r\n UserList,\r\n UserDetail,\r\n Loading,\r\n NotificationModal,\r\n CommonHeader,\r\n CommonModal,\r\n AddButton,\r\n DeleteButtonIcon,\r\n EditButtonIcon,\r\n LinkEditButton,\r\n ToggleButton,\r\n EmptyDataAlert,\r\n CreatableSelector,\r\n CustomPagination,\r\n SearchBox,\r\n FileInput,\r\n QuitPrompt,\r\n QuestionTypeSelector,\r\n QuestionCategorySelector,\r\n SuggestionCategorySelector,\r\n ErrorHandler,\r\n DetailActionButtons,\r\n RequiredLabel,\r\n StarRatingSelector,\r\n ReactNotification,\r\n NotificationList,\r\n CustomSelector,\r\n UploadFileButton,\r\n SearchBoxContainer,\r\n CustomTab,\r\n CommonAlert,\r\n GalleryList,\r\n MediaList,\r\n useGalleryList,\r\n AcademicClassSelector,\r\n SchoolList,\r\n // store redux\r\n store,\r\n // actions\r\n showMenuBar,\r\n showFontSize,\r\n setLoading,\r\n setModal,\r\n setAlert,\r\n setClassList,\r\n setConferenceRubricList,\r\n setSuggestionList,\r\n setStrategyList,\r\n setSubjectList,\r\n setLearningSupportCategoryList,\r\n setQuestionList,\r\n setUserList,\r\n setStudentList,\r\n setBadgeList,\r\n setGoalExampleList,\r\n setSemesterList,\r\n setFeedbackList,\r\n setAssessmentList,\r\n setQuestionByCategory,\r\n setSelectQuestion,\r\n setMoveItemQuestion,\r\n setReflectionList,\r\n setReflectionResultList,\r\n setEditItemQuesion,\r\n setResetQuestionList,\r\n setMailCategory,\r\n setUser,\r\n setAssignmentList,\r\n setAssistantList,\r\n setSessionTemplateList,\r\n setTutorialScreenList,\r\n setSessionTemplateGeneralClassList,\r\n setCustomAlertList,\r\n setCertificateList,\r\n closeTab,\r\n addTab,\r\n editTab,\r\n clearTab,\r\n changeNote,\r\n changeTags,\r\n answerQuestion,\r\n setSessionPlayer,\r\n setStartTime,\r\n setTurnOffPassWhenChangeMode,\r\n reset,\r\n setImproveMyClass,\r\n setSchoolBlankDayList,\r\n setEnableIEP,\r\n setEnableSurvey,\r\n setConversationOneToOne,\r\n setLanguage,\r\n i18n,\r\n useTranslation,\r\n I18nextProvider,\r\n // api\r\n api,\r\n apiUpload,\r\n uploadFile,\r\n systemStudentBadge,\r\n systemCertificateUpload,\r\n // constants\r\n BASE_URL,\r\n DEFAULT_FILTER,\r\n LICENSE_AGGRID,\r\n TINY_MCE_API_KEY,\r\n QUESTION_TYPES,\r\n QUESTION_TYPES_OPTIONS,\r\n ANSWER_EDITOR_HEIGHT,\r\n CHAT_CHANNEL,\r\n NOTIFICATION_CHANNEL,\r\n DATE_RESULT,\r\n DATE_FORMAT,\r\n FULL_DATE_RESULT,\r\n ACCESS_TOKEN,\r\n NOTIFICATION_ALERT_KEY,\r\n GOOGLE_RECAPTCHA_KEY,\r\n EMOTIONS,\r\n TAB_COLORS,\r\n // type\r\n Filter,\r\n Conversation,\r\n Message,\r\n ConversationMember,\r\n NavbarTab,\r\n // configs\r\n editorConfig,\r\n // utils\r\n generateRandomString,\r\n isInViewport,\r\n debounce,\r\n firstCheckToken,\r\n canAccessRoute,\r\n getFileUrl,\r\n getTextFromHTML,\r\n utcToLocalTime,\r\n // services\r\n getInfo,\r\n // assets\r\n Images,\r\n setQuestionCateList,\r\n setMyStudent,\r\n setDataPlayer,\r\n answerQuestionDataPlayer,\r\n setCurrentStudentUserId,\r\n setCurrentStudentId,\r\n setCurrentStudentName,\r\n setFilterWidget,\r\n setBandScoreList,\r\n setStudentIdSelectedByTeacher,\r\n // hooks\r\n useFilters,\r\n ScrollToTop,\r\n initAmplitude,\r\n amplitudeClient,\r\n INIT_AMPLITUDE_KEY\r\n}\r\n"],"names":["DEFAULT_LANGUAGE","localStorage","getItem","console","log","lang","i18n","use","initReactI18next","init","resources","us","translation","lang_us","uk","lang_uk","lng","fallbackLng","keySeparator","interpolation","escapeValue","style","fontSize","ErrorHandler","text","React","className","containerStyle","height","backgroundColor","borderRadius","marginBottom","position","inputStyle","paddingRight","eyeIconStyle","right","PasswordInput","isShowPassword","togglePasswordVisible","onChange","Input","type","name","placeholder","required","onClick","title","TINY_MCE_API_KEY","GOOGLE_RECAPTCHA_KEY","INIT_AMPLITUDE_KEY","ACCESS_TOKEN","DEFAULT_PAGE_SIZE_VALUES","label","value","DEFAULT_PAGE_SIZE","DEFAULT_FILTER","searchString","currentPage","pageSize","sortBy","sortOrder","COLORS","DANGER","WARNING","SUCCESS","INFO","DATE_FORMAT","DATE_RESULT","FULL_DATE_RESULT","DATE_MIN_VALUE","LICENSE_AGGRID","BASE_URL","windowUrl","window","location","href","url","split","QUESTION_TYPES_OPTIONS","QUESTION_TYPES","SINGLE_CHOICE","MULTIPLE_CHOICE","TEXT_INPUT","SLIDER","PROGRESS_BAR","STAR_RATING","TEXT_INPUT_WITH_SUGGESTIONS","EMOTIONAL","SUMMARIZE","RATING","LEARNING_STRATEGY","STAR_OPTIONS","ANSWER_EDITOR_HEIGHT","USER_ROLES","CHAT_CHANNEL","NOTIFICATION_CHANNEL","NEW_NOTIFICATION","DEFAULT_IMAGE_URL","EMOTIONS","TAB_COLORS","reflect","goal","ROLES","ADMIN","TEACHER","ASSISTANT","EDUTEACHER","STUDENT","PARENT","NOTIFICATION_ALERT_KEY","err","setLoading","createAction","setModal","setUser","setSidebar","setAlert","reset","showMenuBar","showFontSize","setEnableIEP","setEnableSurvey","setConversationOneToOne","setLanguage","setCurrentStudentId","setCurrentStudentUserId","setCurrentStudentName","setTurnOffPassWhenChangeMode","initAmplitude","params","Object","keys","filter","key","map","Array","isArray","i","encodeURIComponent","join","api","axios","create","baseURL","timeout","headers","paramsSerializer","encodeParams","apiUpload","forEach","interceptors","request","config","token","getAccessToken","Authorization","error","Promise","reject","response","status","includes","userEmail","hostName","hostname","amplitude","getInstance","logEvent","user_id","domain","resetSessionId","setItem","removeItem","ACCOUNT_URL","USER_URL","TEACHER_URL","logIn","data","post","checkToken","getInfo","get","forgotPassword","checkResetToken","resetPassword","checkUserGoogle","body","getAllLoginTeacher","param","getGoogleClientId","registerUserStudent","defaultInfo","email","password","captcha","rememberMe","HOMEPAGE_TEACHER","HOMEPAGE_STUDENT","HOMEPAGE_ADMIN","HOMEPAGE_PARENT","HOMEPAGE_DISTRICT","HOMEPAGE_EDU_TEACHER","TITLE","useLogin","dispatch","useDispatch","history","useHistory","useState","openLogin","setOpenLogin","isLoginGoogle","setIsLoginGoogle","googleClientId","setGoogleClientId","infoUser","setInfoUser","toggle","useCallback","setIsShowPassword","useEffect","document","push","getInfoGoogle","isDistrict","host","userLogin","res","id","firstName","lastName","roles","profileImageFileName","isLoginFirst","includeReferrer","includeUtm","message","fnIsCheckLogin","clickHandler","checkUser","clickHandlerRes","dataUser","accessToken","submitLogin","teacherId","imageUrl","fullName","dataLogin","CustomSelector","defaultValue","options","isDisabled","scrollBottom","rest","initValue","find","option","Select","menuPlacement","BlockSelectTeacher","openModal","onSubmit","setOpenModal","modal","teachers","setTeachers","setSearchString","teacherEmail","setTeacherEmail","isLoading","useRef","loadData","current","clearTimeout","trim","length","setTimeout","teacher","onChangeTeacher","e","customSelector","control","styles","Modal","isOpen","ModalHeader","ModalBody","inputValue","onInputChange","ModalFooter","Button","color","forwardRef","schema","yup","BlockLogin","useGoogleReCaptcha","executeRecaptcha","handleVerify","onSuccessGoogle","profileObj","familyName","givenName","googleId","infoLogin","Fragment","Formik","initialValues","enableReinitialize","validationSchema","values","formikProps","handleChange","handleBlur","handleSubmit","touched","errors","setFieldValue","emailError","passwordError","Row","Col","Form","src","FormGroup","onBlur","target","GoogleReCaptcha","action","onVerify","GoogleLogin","clientId","buttonText","onSuccess","cookiePolicy","Link","to","lg","md","DASHBOARD","LOGIN","useForgotPassword","isShowNewPassword","setIsShowNewPassword","isShowReTypePassword","setIsShowReTypePassword","validLink","setValidLink","forgotPasswordRequest","checkResetTokenRequest","resetPasswordRequest","forgotPasswordSchema","BlockForgetPassword","Label","reEnterPassword","resetPasswordSchema","test","parent","BlockResetPassword","query","URLSearchParams","useLocation","search","LOGIN_TITLE","FORGOT_PASSWORD_TITLE","RESET_PASSWORD_TITLE","Login","props","isLogin","isForgotPassword","isResetPassword","xs","GoogleReCaptchaProvider","useRecaptchaNet","reCaptchaKey","scriptProps","async","defer","appendTo","QuoteContent","descriptions","IconContent","srcIcon","content","alt","quote","description","contents","scrIcon","ContentHomePage","index","HOME_ADMIN","HOME_TEACHER","HOME_STUDENT","DASHBOARD_TITLE","ROOT_TITLE","Dashboard","user","useSelector","state","common","Images","USER_CONVERSATION_AVATAR","GROUP_CONVERSATION_AVATAR","LOGO","LOGO_HEADER","LOGO_MINIMIZED","DOCS_IMAGE","AUDIO_IMAGE","PHOTO_IMAGE","VIDEO_IMAGE","FOLDER_IMAGE","UNKNOW_IMAGE","TheSidebar","navigation","show","sidebarShow","toggleMinimize","setToggleMinimize","signOut","CSidebar","onShowChange","val","minimize","CSidebarBrand","CgMenuRight","CSidebarNav","CCreateElement","items","components","CSidebarNavDivider","CSidebarNavDropdown","CSidebarNavItem","CSidebarNavTitle","CSidebarFooter","RiLogoutBoxRLine","setNotification","setUnReadNotification","updateUnReadNotification","NOTIFICATION_URL","getUnReadNotifications","updateStatusNotification","put","updateAllStatus","useUnReadNotification","userId","pusherCluster","pusherKey","unReadNotification","notification","getData","isChat","pathname","pusher","Pusher","cluster","channel","subscribe","bind","unsubscribe","NotificationButton","isAdmin","useUnreadNotification","openNotification","features","open","getFileUrl","fileName","DEFAULT_USER_AVATAR","ADMIN_ROLE","TEACHER_ROLE","USER_DETAIL_URL","TheHeaderDropdown","isTeacher","goToTeacherPanel","dropdownOpen","setDropdownOpen","prevState","avatarUrl","Dropdown","DropdownToggle","DropdownMenu","NavLink","DropdownItem","TheLanguageDropdown","defaultLanguage","useTranslation","language","setItemLanguage","changeLanguageApp","changeLanguage","displayCurrentLang","textTransform","display","alignItems","BsChevronDown","width","TheHeader","CHeader","withSubheader","CHeaderBrand","CHeaderNav","NotFound","loading","TheContent","routes","dashboard","CContainer","fluid","Suspense","fallback","Switch","route","idx","Route","path","exact","component","memo","loadingStyle","minWidth","minHeight","top","left","zIndex","justifyContent","Loading","role","firstCheckToken","tokenStatus","canAccess","userRoles","componentRoles","intersects","TheLayout","t","isNotification","authRoutes","useMemo","canAccessRoute","authNavigations","item","nav","checkAuthentication","loadInfo","resetAuth","info","buttonTextStyle","fontWeight","buttonStyle","AddButton","FaPlus","DeleteButtonIcon","FaTrashAlt","LinkEditButton","EmptyDataAlert","Alert","defaultProps","CustomPagination","filters","changePage","totalRecordCount","changePageSize","input","setInput","toString","Pagination","PaginationItem","PaginationLink","previous","tag","disabled","onKeyUp","keyCode","parseInt","next","setEmailTemplateList","setMailCategory","EMAIL_TEMPLATE_URL","getById","update","remove","MAIL_CATEGORY_URL","useFilters","setFilters","changeFilters","updatedFilters","newFilters","CREATE_TEMPLATE_URL","useEmailTemplateList","emailTemplateList","emailTemplate","totalItems","mailCategoryList","mailCategory","getCategory","removeData","onConfirm","goToDetail","header","EmailTemplateList","onRemove","Table","bordered","hover","striped","responsive","size","record","subject","category","format","Date","createdAt","bottom","borderTop","marginTop","marginLeft","padding","DetailActionButtons","confirmText","onCancel","form","AddButtonIcon","defaultparams","meaning","MailSubject","isResetPasswordTemplate","MailCategorySelector","fetchMailCategory","arrCategory","RequiredLabel","quitAlertMessage","QuitPrompt","when","Prompt","AttachmentFile","UPLOAD_FILE_URL","SYSTEM_PROFILE","SYSTEM_STUDENT_BADGE","SYSTEM_CERTIFICATE","SYSTEM_EMAIL","SYSTEM_QUESTION","SYSTEM_ANSWER","SYSTEM_TUTORIAL","CUSTOM_KEY","DELETE_FILE","DELETE_FOLDER","CREATE_FOLDER","RENAME_FILE","uploadFile","formData","systemStudentBadge","systemCertificateUpload","systemProfileUpload","systemEmailUpload","systemQuestionUpload","systemAnswerUpload","systemTutorialUpload","customKeyUpload","deleteFile","deleteFolder","createFolder","prefix","folderName","renameFile","menubar","force_br_newlines","force_p_newlines","branding","convert_urls","plugins","toolbar","paste_data_images","images_upload_handler","blobInfo","success","imageFile","FormData","append","blob","filename","question","answer","tutorial","media_live_embeds","file_picker_callback","cb","createElement","setAttribute","onchange","file","files","click","editorConfig","categoryId","attachments","EMAIL_TEMPLATE_LIST_URL","MAX_FILES_SIZE","useEmailTemplateDetail","editorRef","emailTemplateDetail","setEmailTemplateDetail","edited","setEdited","setEditedTrue","removedFiles","setRemovedFiles","fileUpload","setFileUpload","editor","execCommand","setEditorRef","node","addParams","backToList","confirmData","uploadFiles","fileData","newAttachments","onAttachFile","inputs","getElementsByClassName","newInput","emailDetail","getElementById","addEventListener","updateAttachment","totalSize","attachmentInputs","attachmentInput","some","inputId","removeAttachment","thisInput","newRemovedFile","removed","promises","all","comment","CREATE_TEMPLATE_HEADER","EDIT_TEMPLATE_HEADER","EmailTemplateDetail","useParams","Editor","ref","apiKey","initialValue","onEditorChange","attachment","a","MailParam","c","CommonModal","children","cancelText","noFooter","setEditedFalse","setIsOpen","showEditedWarningModal","onToggle","isShowConfirm","cancel","useImperativeHandle","FaqDetailModal","faqDetail","actions","resetForm","rows","setFaqList","FAQ_URL","useFaqList","faqList","faqs","useFaqDetail","setId","setFaqDetail","FaqList","faqId","SKILL_URL","SkillSelector","skillList","setSkillList","fetchSkill","arrSkill","SkillDetailModal","skillDetail","parentSkillId","useSkillList","skills","useSkillDetail","setSkillDetail","SkillList","skillId","setUserList","setStudentList","CHANGE_PASSWORD","EDU_USER_URL","changePassword","forgotChangePassword","CREATE_USER_URL","useUserList","queryName","userList","users","setFullName","reDirectDetailPage","SearchBox","onSearch","searchInputStyle","SearchBoxContainer","time","FORMAT","moment","utc","local","UserList","differenceInCalendarYears","dateOfBirth","isActive","utcToLocalTime","createTime","MAX_FILE_SIZE","UploadFileButton","maxWidth","maxHeight","setFile","canDelete","onDelete","isCheckFeedBack","onAddImage","imagePreviewUrl","setImagePreviewUrl","imageStyle","imageSrc","handleImageChange","preventDefault","reader","FileReader","newFile","onloadend","result","readAsDataURL","imagePreviewContainer","accept","htmlFor","tabIndex","MdAttachFile","USER_LIST_URL","useUserDetail","userDetail","setUserDetail","then","alert","confirmChangePassword","userSchema","of","min","changePasswordSchema","oldPassword","newPassword","confirmedNewPassword","CREATE_USER","EDIT_USER_HEADER","UserDetail","initialValueForm","getFile","origin","onResetPw","formProps","toggleRoles","r","teacherAssistantRoles","DatePicker","todayButton","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","selected","toDate","placeholderText","customInput","CustomInput","checked","schemaChangePassword","ScrollToTop","scrollTo","modalInfo","NotificationModal","headerStyle","confirm","fade","paddingBottom","headerTextStyle","textAlign","CommonHeader","rootHeader","EditButtonIcon","FaRegEdit","DropdownIndicator","CreatableSelector","handleInputChange","handleKeyDown","Creatable","isClearable","isMulti","menuIsOpen","onKeyDown","QuestionTypeSelector","CATEGORY_URL","SuggestionCategorySelector","categoryList","setCategoryList","fetchCategory","QuestionCategorySelector","getCategoryList","StarRatingSelector","ACTIVE_COLOR","INACTIVE_COLOR","ToggleButton","textLeft","textRight","isLeft","clickLeft","clickRight","InputFile","icon","callback","handleFileChange","ReactNotification","NotificationStatusSelector","menu","provided","defaultFilters","isRead","useNotificationList","notificationList","toggleUpdateAllStatus","setToggleUpdateAllStatus","objectValue","viewNotification","source","extraData","Number","JSON","parse","updateNotification","updateAll","Error","ICON_SIZE","NotificationList","AiOutlineEye","CustomTabs","tabs","renderContent","activeTab","indexOf","xl","Nav","NavItem","TabContent","TabPane","tabId","CommonAlert","onDismiss","ActionModal","targetMedia","MediaNav","isLibrary","step","breadcumb","currentPrefix","handleSelectFile","handleCreateFolder","handleRenameFile","handleGoBack","handleDownloadMedia","handleDeleteMediaOrFolder","showErrorAlert","inputFile","renderGroupButtons","FaArrowLeft","isFolder","FaDownload","FaTrash","FaEdit","FaFolderPlus","FaFileUpload","event","MediaType","images","videos","docs","audios","getTypeByExtension","extension","IMAGE","VIDEO","DOC","AUDIO","UNKNOW","getMediaThumbnail","media","Media","isTarget","thumbnail","Card","CardImg","CardBody","CardTitle","Filter","queryTypes","selectQueryTypes","sm","types","op","setGallery","setTargetMedia","GALLERY_URL","defaultFilter","useGalleryList","mediaList","gallery","formDataMediaType","assign","link","router","changeRouter","handleOpenFolder","temp","splice","pop","handleSelectMedia","undefined","customKeyUploadEffect","customKey","slice","breadcrumb","subLinks","_err","MediaList","renderList","onDoubleClick","CardHeader","MediaDetail","controls","CardText","toUpperCase","GalleryList","CLASS_URL","AcademicClassSelector","classes","setClasses","SchoolList","this","global","ponyfill","initialState","currentStudentId","currentStudentUserId","currentStudentName","turnOffPassWhenChangeMode","menuBar","defaultFontSize","isEnableIEP","isEnableSurvey","isConversationOneToOne","student_id","page","part","iep_date","saved","first_login","duration_since","last_page","commonReducer","createReducer","builder","addCase","payload","_state","_action","eventProperties","setClassList","classList","classReducer","setConferenceRubricList","conferenceRubricList","conferenceRubricReducer","emailTemplateReducer","setSuggestionList","suggestionList","suggestionBankReducer","setStrategyList","strategyList","learningStrategyReducer","setSubjectList","subjectList","setLearningSupportCategoryList","learningSupportCategoryList","setQuestionList","questionList","questionBankReducer","setBadgeList","badgeList","setSemesterList","semesterList","setAssignmentList","assignmentList","setGoalExampleList","goalExampleList","studentList","setFeedbackList","feedbackList","setAssessmentList","initState","assessmentList","setReflectionList","reflectionList","reflectionReducer","setReflectionResultList","reflectionResultList","setQuestionByCategory","setSelectQuestion","setUnSelectQuestion","setMoveItemQuestion","setEditItemQuesion","setResetQuestionList","questionByCategoryList","selectedQuestions","selectQuestion","mergeArrayUniqueQuestion","array1","array2","ids","Set","d","arrMerged","has","questionCategoryReducer","sub","findIndex","old_index","old_index1","setQuestionCateList","questionCateList","questionCateReducer","setMyStudent","myStudentList","setAssistantList","assistantList","assistantReducer","setSessionTemplateList","sessionTemplateList","sessionTemplateReducer","setSessionTemplateGeneralClassList","sessionTemplateGeneralClassList","sessionTemplateGeneralClassReducer","setTutorialScreenList","tutorialScreenList","tutorialScreenReducer","setCustomAlertList","customAlertList","addTab","closeTab","editTab","clearTab","dashboardReducer","tab","stringify","Boolean","editingTab","changeNote","changeTags","answerQuestion","setSessionPlayer","setStartTime","sessionId","session","studentId","duration","conferenceRubric","studentDefaultQuestions","teacherDefaultQuestions","additionalQuestions","results","startTime","sessionPlayerReducer","isConfidential","teacherResult","isTeacherResult","teacherResultCloner","existedNote","notes","note","tags","questionId","resultCloner","existedResponse","questionResponses","setDataPlayer","answerQuestionDataPlayer","questions","subQuestions","answers","questionResponse","dataPlayer","questionResponseCloner","setCertificateList","certificateList","setImproveMyClass","improveMyClassList","setFilterWidget","filterWidget","widgetReducer","setBandScoreList","bandScoreList","setSchoolBlankDayList","schoolBlankDayList","setStudentIdSelectedByTeacher","studentIdSelectedByTeacher","navMobileReducer","rootReducer","combineReducers","conferenceRubrics","suggestionBank","learningStrategy","subjects","learningSupportCategories","questionBank","badges","semester","goalExamples","reflections","reflectionResults","feedbacks","assessments","questionByCategory","questionCate","myStudent","assignments","assistants","sesstionTemplates","sessionTemplateGeneralClasses","tutorialScreens","customAlerts","sessionPlayer","certificate","improveMyClass","widget","bandScores","schoolBlankDays","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","concat","logger","isInViewport","el","rect","getBoundingClientRect","innerHeight","documentElement","clientHeight","innerWidth","clientWidth","debounce","wait","args","getTextFromHTML","htmlString","p","innerHTML","innerText","Math","random","substring","amplitudeClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|