touchstudy-core 0.1.16 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +6 -2
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.modern.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.modern.js","sources":["../src/redux/commons/action.ts","../src/utils/constants.ts","../src/utils/utcToLocalTime.ts","../src/containers/Login/configs/constants.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/configs/api.ts","../src/services/accountService.ts","../src/utils/hooks/useGoogleSignOut.ts","../src/utils/hooks/useLogin.ts","../src/containers/Login/views/block/BlockLogin.tsx","../src/utils/getAccessToken.ts","../src/containers/Login/hooks/useLogin.ts","../src/containers/Login/views/Login.tsx","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/redux/dist/redux.legacy-esm.js","../src/redux/commons/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/components/Commons/NotFound.tsx","../src/components/Loading/Loading.tsx","../src/layouts/LayoutContext.tsx","../src/components/Dialogs/ConfirmDialog.tsx","../src/components/Dialogs/CommonDialog.tsx","../src/components/Alerts/CommonAlert.tsx","../src/utils/formatTime.ts","../src/utils/diffFromNow.ts","../src/components/Paginations/CustomPagination.tsx","../src/utils/types.ts","../src/i18n.ts","../src/configs/constants.ts","../src/utils/hooks/useLanguage.ts","../src/layouts/TheLanguageDropdown.tsx","../src/services/academyService.ts","../src/utils/hooks/useSwitchAcademy.ts","../src/layouts/TheAcademyDropdown.tsx","../src/utils/minutesToTimeSpan.ts","../src/utils/toISOString.ts","../src/utils/canAccessRoute.ts","../src/components/Selects/CustomSelect.tsx","../src/assets/iconPersonNoActive.tsx","../src/components/Chats/ChatRightItem.tsx","../src/components/Chats/ChatLeftItem.tsx","../src/components/Chats/ChatItem.tsx","../src/components/Chats/configs/types.ts","../src/components/Chats/configs/constants.ts","../src/components/Chats/ChatList.tsx","../src/assets/iconSendMessenger.tsx","../src/components/Chats/InputChat.tsx","../src/assets/iconChecked.tsx","../src/components/Chats/apiClient/conversationService.ts","../src/components/Chats/hooks/useDialog.ts","../src/components/Chats/ChatHeader.tsx","../src/components/Chats/ChatContainer.tsx","../src/components/Chats/hooks/useMessageList.ts","../src/components/Chats/hooks/useChatContainer.ts","../src/components/Chats/hooks/usePusherConversation.ts","../src/components/Selects/CustomCreatable.tsx","../src/components/Selects/CustomAsyncSelect.tsx","../src/containers/Exams/configs/constants.ts","../src/containers/Exams/components/QuestionView.tsx","../src/containers/Exams/components/ArticleGroupView.tsx","../src/containers/Exams/hooks/useExamDetailView.ts","../src/containers/Exams/views/ExamDetailView.tsx","../src/utils/hooks/useAutoAcademyDomain.ts","../src/index.tsx"],"sourcesContent":["import { createAction } from \"@reduxjs/toolkit\"\n\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\n\nexport const setAlert = createAction<any>(\"common/setAlert\")\n\nexport const setUser = createAction<any>(\"common/setUser\")\n\nexport const setLanguage = createAction<string>(\"common/setLanguage\")\n\nexport const reset = createAction<undefined>(\"common/reset\")\n\nexport const setReFetchUserAcademies = createAction<boolean>(\"common/setReFetchUserAcademies\")\n","// env\nexport const GOOGLE_RECAPTCHA_KEY = process.env.REACT_APP_GOOGLE_RECAPTCHA_KEY || \"\"\n\nexport const GOOGLE_CLIENT_ID = process.env.REACT_APP_GOOGLE_CLIENT_ID || \"\"\n\nexport const GOOGLE_RECAPTCHA_ID = process.env.REACT_APP_GOOGLE_RECAPTCHA_ID || \"\";\n\nexport const GOOGLE_RECAPTCHA_SECRET = process.env.REACT_APP_GOOGLE_RECAPTCHA_SECRET || \"\";\n\nexport const BASE_URL = process.env.REACT_APP_BASE_URL || \"\"\nexport const SUPER_ADMIN_BASE_URL = process.env.REACT_APP_SUPER_ADMIN_BASE_URL || \"\"\n\nexport const PUSHER_CONFIG = {\n cluster: process.env.REACT_APP_PUSHER_CONFIG_CLUSTER || \"\",\n key: process.env.REACT_APP_PUSHER_CONFIG_KEY || \"\"\n}\n// end env\n\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\nexport const ACADEMY_DOMAIN = \"ACADEMY_DOMAIN\"\nexport const AcademyHeaders = \"Academy-Headers\"\n\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00+00:00\"\nexport const DATE_TIME_MIN_VALUE = \"0001-01-01T00:00:00\"\n\nexport const EXAM_CHANNEL = \"presence-exam-channel\"\nexport const EXAM_STUDENT_CHANNEL = \"EXAM-CHANNEL-{examCode}-STUDENT-{studentId}\"\n\n\nexport const getAccessToken = () => {\n try {\n return localStorage.getItem(ACCESS_TOKEN);\n } catch (err) {\n return null;\n }\n}\n\nexport const getAcademyDomain = () => {\n try {\n return localStorage.getItem(ACADEMY_DOMAIN);\n } catch (err) {\n return null;\n }\n}\n\nexport const encodeParams = (params: any) => {\n return Object.keys(params)\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\n .map(key => {\n if (Array.isArray(params[key])) {\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\n }\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\n }).join('&')\n}\n","import moment from \"moment\"\nimport { DATE_MIN_VALUE, DATE_TIME_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time?: string, FORMAT?: string) => {\n if (time === DATE_MIN_VALUE || time === DATE_TIME_MIN_VALUE) return \"\"\n try {\n return moment.utc(time).local().format(FORMAT || \"yyyy-MM-DD\");\n } catch {\n return \"\"\n }\n}\n","export enum AuthenticationMessage {\n NotAllowedToRegister = \"NotAllowedToRegister\",\n InvalidGoogleToken = \"InvalidGoogleToken\"\n}\n\nexport enum Role {\n Student = \"Student\",\n Teacher = \"Teacher\",\n Admin = \"Admin\"\n}","// 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 axios, { AxiosInstance } from \"axios\"\nimport { ACCESS_TOKEN, BASE_URL, getAccessToken, encodeParams, getAcademyDomain, AcademyHeaders } from \"../utils/constants\"\nimport moment from \"moment\"\n\nexport const api: AxiosInstance = axios.create({\n baseURL: BASE_URL,\n timeout: 0,\n headers: {\n \"Content-Type\": \"application/json\"\n },\n paramsSerializer: params => {\n return encodeParams(params)\n }\n})\n\nexport const apiUpload: AxiosInstance = axios.create({\n baseURL: BASE_URL,\n timeout: 60000,\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n})\n;[api, apiUpload].forEach(i =>\n i.interceptors.request.use(\n (config: any) => {\n const token = getAccessToken()\n const searchParams = new URLSearchParams(window.location.search);\n const paramDomain = searchParams.get('domain');\n const academyDomainStorage = getAcademyDomain()\n const academyDomain = paramDomain || academyDomainStorage\n if (token) {\n config.headers.Authorization = `Bearer ${token}`\n localStorage.setItem(\"LAST_TIME_REQUETST\", moment().utc().format(\"YYYY-MM-DD HH:mm:ss\"))\n }\n if(academyDomain && !config.headers[AcademyHeaders])\n {\n config.headers[AcademyHeaders] = `${academyDomain}`\n }\n return config\n },\n (error: any) => Promise.reject(error)\n )\n)\n;[api, apiUpload].forEach(i =>\n i.interceptors.response.use(\n response => {\n return response\n },\n error => {\n console.log({ error })\n if (error.response?.status === 401 || error.response?.status == 403) {\n localStorage.removeItem(ACCESS_TOKEN)\n window.location.href = \"/login\"\n }\n return Promise.reject(error)\n }\n )\n)\n","import { api } from \"../configs/api\"\nimport { AcademyHeaders, BASE_URL, SUPER_ADMIN_BASE_URL } from \"../utils/constants\"\nimport { LoginAccessTokenRequest, LoginRequest } from \"../utils/types/login\"\n\nconst AUTH_URL = `${BASE_URL}/api/auth`\nconst AUTH_SUPER_ADMIN_URL = `${SUPER_ADMIN_BASE_URL}/api/auth`\n\nexport const getInfo = () => api.get(`${AUTH_URL}/info`)\nexport const getSuperAdminInfoFromWeb = () => api.get(`${AUTH_SUPER_ADMIN_URL}/info`)\n\nexport const apiLoginGoogle = (body: LoginRequest) => api.post(\n `${AUTH_URL}/login`, \n body\n)\n\nexport const apiLoginGoogleSuperAdmin = (body: LoginRequest) => api.post(\n `${AUTH_SUPER_ADMIN_URL}/login`, \n body\n)\n\nexport const apiLoginWithAccessToken = (body: LoginAccessTokenRequest, domain?: string) => api.post(\n `${AUTH_URL}/login/access-token`, \n body,\n {\n headers: {\n [AcademyHeaders]: domain\n }\n }\n)","import { useDispatch } from \"react-redux\";\nimport { ACADEMY_DOMAIN, ACCESS_TOKEN, GOOGLE_CLIENT_ID } from \"../constants\";\nimport { useGoogleLogout } from \"@leecheuk/react-google-login\"\nimport { reset } from \"../../redux/commons/action\";\n\ninterface Props{\n onLogoutSuccess?: () => void\n onFailure?: () => void\n onNavigate: Function\n}\nconst useGoogleSignOut = (props: Props) => {\n const dispatch = useDispatch()\n const {\n onLogoutSuccess,\n onFailure\n } = props\n\n\n const handleLogoutSuccess = () => {\n onLogoutSuccess?.()\n }\n\n const handleLogoutFailure = () => {\n onFailure?.()\n }\n\n const { signOut, loaded } = useGoogleLogout({\n clientId: GOOGLE_CLIENT_ID,\n onLogoutSuccess: handleLogoutSuccess,\n onFailure: handleLogoutFailure,\n })\n\n const handleSignOut = (isRemoveDomainStorage: boolean = false) => {\n localStorage.removeItem(\"USER_INFORMATION\")\n localStorage.removeItem(ACCESS_TOKEN);\n if(isRemoveDomainStorage){\n localStorage.removeItem(ACADEMY_DOMAIN);\n }\n try {\n signOut()\n } catch (error) {\n console.log({error});\n }\n dispatch(reset())\n window.location.href = \"/login\"\n }\n return {\n handleSignOut, loaded\n }\n}\n\nexport default useGoogleSignOut","import { useDispatch } from \"react-redux\"\nimport { setLoading, setUser } from \"../../redux/commons/action\"\nimport {\n apiLoginGoogle,\n apiLoginGoogleSuperAdmin,\n apiLoginWithAccessToken\n} from \"../../services/accountService\"\nimport {\n LoginAccessTokenRequest,\n LoginRequest,\n LoginResponse\n} from \"../types/login\"\nimport {\n Role\n} from \"../../containers/Login/configs/constants\"\nimport { ACADEMY_DOMAIN, ACCESS_TOKEN, getAcademyDomain } from \"../constants\"\nimport useGoogleSignOut from \"./useGoogleSignOut\"\nimport { useTranslation } from \"react-i18next\"\n\nconst ERROR_MESSAGE = \"request_login_fail\"\n\nconst useLogin = (\n onNavigate: (pathname: string) => void,\n homeAcademyUrl: string,\n homeUrl: string,\n registerUrl?: string\n) => {\n const dispatch = useDispatch()\n const { t } = useTranslation()\n const { handleSignOut } = useGoogleSignOut({ onNavigate })\n const searchParams = new URLSearchParams(window.location.search);\n const paramDomain = searchParams.get('domain');\n\n const handleLoginGoogle = async (data: LoginRequest, isLogout = true) => {\n const academyDomain = paramDomain || getAcademyDomain()\n const isStudent = data.role === Role.Student\n\n await handleLogin(\n () =>\n new Promise(async (resolve, reject) => {\n try {\n const loginResponse = !academyDomain\n ? await apiLoginGoogleSuperAdmin(data)\n : await apiLoginGoogle(data)\n const result: LoginResponse = loginResponse.data\n resolve(result)\n } catch (error) {\n !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n reject(error)\n }\n }),\n isStudent,\n isLogout\n )\n }\n\n const handleLoginAccessToken = async (\n data: LoginAccessTokenRequest,\n isLogout: boolean = true,\n domain?: string\n ) => {\n const isStudent = data.role === Role.Student\n await handleLogin(\n () => {\n return new Promise(async (resolve, reject) => {\n try {\n const loginResponse = await apiLoginWithAccessToken(\n data,\n domain\n )\n const result: LoginResponse = loginResponse.data\n resolve(result)\n } catch (error) {\n reject(error)\n }\n })\n },\n isStudent,\n isLogout\n )\n }\n\n const handleLogin = async (\n apiLogin: () => Promise<LoginResponse>,\n isStudent: boolean,\n isLogout: boolean = true\n ) => {\n dispatch(setLoading(true))\n try {\n const loginResponse = await apiLogin()\n const { isFirstLogin, token, user } = loginResponse\n const isAcademy = !!user?.academyDomain\n const needToRegister = isStudent && isFirstLogin && isAcademy\n\n const redirectUrl = needToRegister\n ? registerUrl\n : isAcademy\n ? homeAcademyUrl\n : homeUrl\n\n redirectLoginUser(user, token, redirectUrl)\n } catch (error) {\n let message = undefined\n\n message = t(\n error?.response?.data?.message ||\n error?.response?.data?.title ||\n error?.response?.data ||\n ERROR_MESSAGE\n )\n message && alert(message)\n isLogout && handleSignOut()\n }\n dispatch(setLoading(false))\n }\n\n const redirectLoginUser = (\n data: any,\n token: string,\n redirectUrl?: string\n ) => {\n localStorage.setItem(ACCESS_TOKEN, token)\n !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n !!data.academyDomain &&\n localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain)\n dispatch(\n setUser({\n ...data\n })\n )\n if (redirectUrl) {\n onNavigate(redirectUrl)\n }\n }\n\n return {\n handleLoginGoogle,\n handleLoginAccessToken,\n redirectLoginUser\n }\n}\n\nexport default useLogin\n","import React, { FC } from \"react\"\nimport { Col, Form, Row } from \"reactstrap\"\nimport styles from \"../../../../styles.module.scss\"\n\nimport { GOOGLE_CLIENT_ID } from \"../../../../utils/constants\"\nimport { Formik } from \"formik\"\nimport * as yup from \"yup\"\n// import { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\nimport GoogleLogin from \"@leecheuk/react-google-login\"\nimport { INavigateProps } from \"../../../../utils/types\"\nimport { Role } from \"../../configs/constants\"\nimport useLogin from \"../../../../utils/hooks/useLogin\"\n\ninterface Props {\n defaultInfo?: any\n role?: Role\n homeAcademyUrl: string\n homeUrl: string\n registerUrl?: string\n}\n\nconst schema = yup.object({\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\n password: yup.string().required(\"Password is required\"),\n rememberMe: yup.boolean()\n})\n\nconst BlockLogin: FC<Props & INavigateProps> = ({\n defaultInfo,\n onNavigate,\n role = Role.Student,\n homeAcademyUrl,\n homeUrl,\n registerUrl\n}) => {\n // const { executeRecaptcha, } = useGoogleReCaptcha()\n const {\n handleLoginGoogle\n } = useLogin(onNavigate, homeAcademyUrl, homeUrl, registerUrl)\n // const clickHandler = useCallback(async () => {\n // if (!executeRecaptcha) {\n // return\n // }\n // try {\n // const result = await executeRecaptcha(\"login\")\n // return result\n // } catch (error) {\n // console.log({error});\n // }\n // return\n // }, [executeRecaptcha])\n\n // const handleVerify = useCallback(() => {}, [])\n const onSuccessGoogle = async (res: any) => {\n if (!!res?.accessToken) {\n let {\n email,\n imageUrl,\n name // fullName\n } = res.profileObj\n let accessToken = res.tokenObj.id_token\n let googleId = res.googleId\n\n const infoLogin = {\n imageUrl: imageUrl,\n fullName: name,\n email: email,\n token: accessToken,\n googleId: googleId,\n role\n }\n handleLoginGoogle(infoLogin)\n }\n }\n\n const onFailureGoogle = (err: any) => {\n console.log(\"error: login google\", err)\n onNavigate(\"/login\")\n }\n return (\n <Formik\n initialValues={defaultInfo}\n validationSchema={schema}\n onSubmit={() => {}}\n >\n {formikProps => {\n const { handleSubmit } = formikProps\n\n return (\n <Row className={`${styles[\"box-login\"]}`}>\n <Col className=\"p-0 d-flex justify-content-center\">\n <Form\n className={`${styles[\"block-login\"]}`}\n onSubmit={handleSubmit}\n >\n <div className={`${styles[\"block-form\"]}`}>\n <img\n src={\"/images/logo.jpeg\"}\n className={`${styles[\"img-login-rectangle\"]}`}\n />\n {/* <FormGroup>\n <GoogleReCaptcha\n action=\"login\"\n onVerify={handleVerify}\n />\n </FormGroup> */}\n <Col className=\"p-0 mt-1 mb-4\">\n <GoogleLogin\n clientId={GOOGLE_CLIENT_ID}\n buttonText=\"Google 계정으로 로그인\"\n onSuccess={onSuccessGoogle}\n onFailure={onFailureGoogle}\n cookiePolicy={\"single_host_origin\"}\n className={`${styles[\"btn-login-google\"]}`}\n isSignedIn={true}\n />\n </Col>\n </div>\n </Form>\n </Col>\n </Row>\n )\n }}\n </Formik>\n )\n}\n\nexport default BlockLogin\n","import { ACCESS_TOKEN } from \"./constants\"\n\nexport default () => {\n try {\n return localStorage.getItem(ACCESS_TOKEN);\n } catch (err) {\n return null;\n }\n}","import { useCallback, useEffect, useState } from \"react\"\nimport { gapi } from 'gapi-script';\nimport { GOOGLE_CLIENT_ID } from \"../../../utils/constants\"\nimport getAccessToken from \"../../../utils/getAccessToken\";\n\ntype LoginInfo = {\n email: string\n password: string\n captcha: string\n rememberMe: boolean\n}\n\nconst defaultInfo: LoginInfo = {\n email: \"\",\n password: \"\",\n captcha: \"\",\n rememberMe: false\n}\n\nconst useLogin = (onNavigate: Function) => {\n const [openLogin, setOpenLogin] = useState<boolean>(false)\n const [infoUser, setInfoUser] = useState<any>();\n const toggle = useCallback(() => {\n setOpenLogin(!openLogin)\n }, [openLogin])\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\n\n useEffect(() => {\n const start = () => {\n gapi.client.init({\n clientId: GOOGLE_CLIENT_ID,\n scope: 'email',\n });\n }\n \n !!gapi && gapi.load('client:auth2', start);\n }, [gapi]);\n\n useEffect(() => {\n const token = getAccessToken()\n if(!!token) onNavigate(\"/\")\n }, [])\n\n return {\n defaultInfo,\n openLogin,\n toggle,\n isShowPassword,\n setIsShowPassword,\n infoUser,\n setInfoUser\n }\n}\n\nexport default useLogin\n","import React, { FC } from \"react\"\n// import { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\nimport { Col, Row } from \"reactstrap\"\n\n// import { GOOGLE_RECAPTCHA_ID } from \"../../../utils/constants\"\nimport BlockLogin from \"./block/BlockLogin\"\nimport useLogin from \"../hooks/useLogin\"\nimport styles from \"../../../styles.module.scss\"\nimport { INavigateProps } from \"../../../utils/types\"\nimport { Role } from \"../configs/constants\"\n\ninterface Props{\n role?: Role\n homeAcademyUrl: string\n homeUrl: string\n registerUrl?: string\n}\nconst Login: FC<INavigateProps & Props> = ({ onNavigate, ...rest }) => {\n const { defaultInfo } = useLogin(onNavigate)\n return (\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\n <Row className={\"h-100\"}>\n <Col\n lg={12}\n md={12}\n xs={12}\n className=\"d-flex justify-content-center h-100 align-items-center\"\n >\n {/* <GoogleReCaptchaProvider\n useRecaptchaNet\n reCaptchaKey={GOOGLE_RECAPTCHA_ID}\n scriptProps={{\n async: true,\n defer: true,\n appendTo: \"body\"\n }}\n > */}\n <BlockLogin\n defaultInfo={defaultInfo}\n onNavigate={onNavigate}\n {...rest}\n />\n {/* </GoogleReCaptchaProvider> */}\n </Col>\n </Row>\n </div>\n )\n}\n\nexport default Login\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","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"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 return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"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/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns 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(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\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 if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\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}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${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 if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.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}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${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 nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","import { createReducer } from \"@reduxjs/toolkit\"\n\nimport {\n setLoading,\n setAlert,\n setUser,\n setLanguage,\n reset,\n setReFetchUserAcademies\n} from \"./action\"\n\nconst initialState: any = {\n isLoading: false,\n alert: {\n type: \"\",\n message: \"\"\n },\n user: null,\n isReFetchUserAcademies: false\n}\n\n\nconst commonReducer = createReducer(initialState, builder => {\n builder\n .addCase(setLoading, (state, action) => {\n state.isLoading = action.payload\n })\n .addCase(setAlert, (state, action) => {\n state.alert = action.payload\n })\n .addCase(setUser, (state, action) => {\n state.user = action.payload\n })\n .addCase(setLanguage, (state, action) => {\n state.language = action.payload\n })\n .addCase(reset, (_state, _action) => {\n return initialState\n })\n .addCase(setReFetchUserAcademies, (state, action) => {\n state.isReFetchUserAcademies = action.payload\n })\n})\n\nexport default commonReducer","import { combineReducers } from \"redux\"\n\nimport common from \"./redux/commons/reducer\"\n\nconst rootReducer = combineReducers({\n common\n})\n\nexport default rootReducer\n","import { configureStore } from \"@reduxjs/toolkit\"\nimport logger from \"redux-logger\"\n\nimport rootReducer from \"./rootReducer\"\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({ serializableCheck: false }).concat(logger)\n})\n\nexport default store\n","import React, { FC, useEffect } from \"react\"\n\nconst TITLE = \"Not found\"\nconst NotFound: FC = () => {\n useEffect(() => {\n document.title = TITLE\n })\n return (\n <div className=\"not-found d-flex justify-content-center\">\n <div className=\"clearfix pt-5\">\n <h1 className=\"float-left display-3 fw-bold mr-4 text-center\">404</h1>\n <div className=\"float-left\">\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\n <p className=\"text-muted mb-2\">\n The page you are looking for was not found.\n </p>\n <div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default NotFound\n","import React, { FC, CSSProperties } from \"react\"\nimport { useSelector } from \"react-redux\"\nimport moment from \"moment\"\n\nconst loadingStyle: CSSProperties = {\n minWidth: \"100vw\",\n minHeight: \"100vh\",\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 999999999,\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n}\n\nconst Loading: FC = () => {\n const isLoading = useSelector((state: any) => state.common.isLoading)\n localStorage.setItem(\"LAST_TIME_REQUETST\", moment().utc().format(\"YYYY-MM-DD HH:mm:ss\"))\n return isLoading ? (\n <div style={loadingStyle}>\n <div className=\"spinner-border text-secondary\" role=\"status\">\n <span className=\"sr-only\"></span>\n </div>\n </div>\n ) : null\n}\n\nexport default Loading","import React, { FC, Fragment, PropsWithChildren, useCallback, useEffect } from \"react\"\nimport { getAcademyDomain, getAccessToken } from \"../utils/constants\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { setLoading, setUser } from \"../redux/commons/action\"\nimport { getInfo, getSuperAdminInfoFromWeb } from \"../services/accountService\"\nimport useGoogleSignOut from \"../utils/hooks/useGoogleSignOut\"\nimport { useTranslation } from \"react-i18next\"\nimport { Role } from \"../containers/Login/configs/constants\"\n\ninterface Props {\n onNavigate: (pathname: string) => void\n role: string\n}\n\nconst LayoutContext: FC<Props & PropsWithChildren> = ({\n children,\n role,\n onNavigate\n}) => {\n const {\n handleSignOut\n } = useGoogleSignOut({onNavigate})\n\n const { t } = useTranslation()\n\n const dispatch = useDispatch()\n const user = useSelector((state: any) => state?.common?.user)\n const roles = user?.roles || []\n const resetAuth = () => {\n handleSignOut()\n }\n\n const checkRoleUser = useCallback(() => {\n if(!user) return\n if(!roles.includes(role) && !!user.academyDomain)\n {\n alert(`${user.email} not allow to register ${role}`)\n resetAuth()\n }\n }, [role, JSON.stringify(user)])\n\n const loadInfo = async () => {\n const token = getAccessToken()\n if(!token) {\n resetAuth()\n return\n }\n dispatch(setLoading(true))\n try {\n const info = !!getAcademyDomain() ? await getInfo() : await getSuperAdminInfoFromWeb()\n if (!info) {\n resetAuth()\n }\n dispatch(setUser(info.data))\n } catch (err) {\n console.log({err});\n alert(t(role === Role.Student ? \"student_login_again\" : role === Role.Admin ? \"admin_login_again\" : \"teacher_login_again\"))\n resetAuth()\n }\n dispatch(setLoading(false))\n }\n useEffect(() => {\n !user && loadInfo()\n !!user && checkRoleUser()\n }, [JSON.stringify(user)])\n\n return <Fragment>{children}</Fragment>\n}\n\nexport default LayoutContext\n","import React, { ChangeEvent, FC, useEffect, useState } from \"react\"\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input } from \"reactstrap\"\n\ninterface Props {\n text: string\n cancelText?: string\n okText?: string\n onConfirm: () => void\n open: boolean\n toggle: () => void\n isDelete?: boolean\n title?: string\n confirmText?: string\n}\nexport const ConfirmDialog: FC<Props> = ({\n open,\n text,\n cancelText = \"아니요\",\n okText = \"예\",\n isDelete,\n title = \"확인\",\n toggle,\n onConfirm,\n confirmText\n}) => {\n const [confirmTextValue, setConfirmTextValue] = useState<string>()\n const handleConfirm = () => {\n onConfirm()\n }\n const handleChangeConfirmText = (e: ChangeEvent<HTMLInputElement>) => {\n setConfirmTextValue(e.target.value)\n }\n const handlePaste = (e: any) => {\n e.preventDefault()\n }\n\n useEffect(() => {\n !open && setConfirmTextValue(undefined)\n }, [open])\n const isValid = !!confirmText && !!confirmTextValue && confirmTextValue.trim() === confirmText.trim()\n return (\n <Modal isOpen={open} toggle={toggle} centered zIndex={1102}>\n <ModalHeader toggle={toggle}>{title}</ModalHeader>\n <ModalBody>\n <p><strong>{text}</strong></p>\n {\n !!confirmText &&\n <div>\n <p>Enter \"<strong>{confirmText}</strong>\" to confirm delete</p>\n <Input\n value={confirmTextValue} onChange={handleChangeConfirmText}\n placeholder=\"Please enter...\"\n onPaste={handlePaste}\n invalid={!isValid && confirmTextValue !== undefined}\n valid={isValid}\n />\n </div>\n }\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"secondary\"\n className=\"px-3\"\n onClick={toggle}>\n {cancelText}\n </Button>\n <Button\n color={isDelete ? \"danger\" : \"primary\"}\n className=\"px-3\"\n disabled={!!confirmText && confirmTextValue?.trim() !== confirmText.trim()}\n onClick={handleConfirm}\n >\n {okText}\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","import { FC, PropsWithChildren } from \"react\"\nimport { Modal, ModalHeader } from \"reactstrap\"\nimport React from \"react\"\n\ninterface Props {\n open: boolean\n onClose: () => void\n centered?: boolean\n title: string\n size?: \"xs\" | \"lg\" | \"xl\"\n backdrop?: boolean | \"static\"\n}\n\nconst CommonDialog: FC<Props & PropsWithChildren> = ({\n open,\n children,\n centered,\n title,\n size = \"xs\",\n onClose,\n backdrop\n}) => {\n return (\n <Modal backdrop={backdrop} isOpen={open} toggle={onClose} centered={centered} size={size} zIndex={1102}>\n <ModalHeader toggle={onClose}>{title}</ModalHeader>\n {children}\n </Modal>\n )\n}\n\nexport default CommonDialog\n","import React, { FC, useRef, useEffect } from \"react\"\nimport { useSelector, useDispatch } from \"react-redux\"\nimport { Alert } from \"reactstrap\"\n\nimport { setAlert } from \"../../redux/commons/action\"\n\nconst CommonAlert: FC = () => {\n const dispatch = useDispatch()\n const alert = useSelector((state: any) => state.common.alert)\n const timeout = useRef<any>()\n\n const onDismiss = () => {\n dispatch(setAlert({ message: \"\" }))\n timeout && timeout.current && clearTimeout(timeout.current)\n }\n\n useEffect(() => {\n if (!!alert.message?.length) {\n timeout && timeout.current && clearTimeout(timeout.current)\n timeout.current = setTimeout(() => {\n dispatch(setAlert({ message: \"\" }))\n }, 3000)\n }\n }, [alert])\n\n return alert.message?.length > 0 ? (\n <div className=\"app-alert\">\n <Alert\n color={alert.type}\n isOpen={alert.message.length > 0}\n toggle={onDismiss}\n >\n {alert.message}\n </Alert>\n </div>\n ) : null\n}\n\nexport default CommonAlert\n","import moment from \"moment\"\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time: string, ORIGINAL_FORMAT: string, FORMAT?: string) => {\n if (time === DATE_MIN_VALUE) return \"\"\n try {\n return moment(time, ORIGINAL_FORMAT).format(FORMAT || \"yyyy-MM-DD\");\n } catch {\n return \"\"\n }\n}\n","import moment, { unitOfTime } from \"moment\"\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time: string, unitOfTime: unitOfTime.Diff, targetTime?: string) => {\n if (time === DATE_MIN_VALUE || targetTime === DATE_MIN_VALUE) return 0\n try {\n var now = !!targetTime ? moment() : moment.utc(targetTime).local();\n return now.diff(moment.utc(time).local(), unitOfTime)\n } catch {\n return \"\"\n }\n}\n","import React from \"react\"\nimport { FC } from \"react\"\nimport { Pagination, PaginationItem, PaginationLink } from \"reactstrap\"\n\ninterface Props {\n currentPage: number\n totalPage: number\n onChangePage: (page: number) => void\n}\nconst CustomPagination: FC<Props> = ({\n currentPage,\n totalPage,\n onChangePage\n}) => {\n\n return (\n <Pagination className=\"w-fit\">\n <PaginationItem disabled={currentPage <= 1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(currentPage - 1)\n }}\n previous\n href=\"#\"\n />\n </PaginationItem>\n <PaginationItem active={1 === currentPage} key={1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(1)\n }}\n href=\"#\"\n >\n {1}\n </PaginationLink>\n </PaginationItem>\n\n {\n totalPage > 2 && <PaginationItem active={2 === currentPage} key={1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(2)\n }}\n href=\"#\"\n >\n {2}\n </PaginationLink>\n </PaginationItem>\n }\n\n {\n currentPage > 4 && currentPage !== totalPage && totalPage !== 5\n &&\n <PaginationItem disabled key={\"first\"}>\n <PaginationLink\n href=\"#\"\n >\n ...\n </PaginationLink>\n </PaginationItem>\n }\n {\n (currentPage === 1 || currentPage === totalPage) && totalPage === 5 && \n <PaginationItem key={3}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(3)\n }}\n href=\"#\"\n >\n 3\n </PaginationLink>\n </PaginationItem>\n }\n {\n [currentPage - 1, currentPage, currentPage + 1]\n .filter(page => page > 2 && page < totalPage - 1).map(page => (\n <PaginationItem active={page === currentPage} key={page}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(page)\n }}\n href=\"#\"\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n ))\n }\n\n {\n totalPage - currentPage > 4\n &&\n <PaginationItem disabled key={\"last\"}>\n <PaginationLink\n href=\"#\"\n >\n ...\n </PaginationLink>\n </PaginationItem>\n }\n\n {totalPage > 3 && (\n <PaginationItem active={totalPage - 1 === currentPage} key={totalPage - 1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(totalPage - 1)\n }}\n href=\"#\"\n >\n {totalPage - 1}\n </PaginationLink>\n </PaginationItem>\n )}\n {totalPage > 1 && (\n <PaginationItem active={totalPage === currentPage} key={totalPage}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(totalPage)\n }}\n href=\"#\"\n >\n {totalPage}\n </PaginationLink>\n </PaginationItem>\n )}\n <PaginationItem disabled={currentPage >= totalPage}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(currentPage + 1)\n }}\n next\n href=\"#\"\n />\n </PaginationItem>\n </Pagination>\n )\n}\n\nexport default CustomPagination\n","export interface INavigateProps{\n onNavigate: (pathname: string) => void\n}\n\nexport enum ExamEvent {\n StartExam = \"start-exam\",\n TerminateExam = \"terminate-exam\",\n AddExtraDuration = \"add-extra-duration-exam\",\n TeacherKickOutStudent = \"teacher-kick-out-student\"\n }\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport lang_ko from \"./lang/lang_ko.json\"\nimport lang_en from \"./lang/lang_en.json\"\n\ni18n.use(initReactI18next)\n .init({\n lng: \"ko\",\n fallbackLng: \"ko\",\n interpolation: {\n escapeValue: false,\n },\n resources: {\n ko: {\n translation: lang_ko\n },\n en: {\n translation: lang_en\n },\n },\n });\n\nexport default i18n;","export type Language = {\n code: string\n name: string\n fullName: string\n shortName: string\n nativeName: string\n image: string\n momentLangCode: string\n}\n\nexport const DEFAULT_LANGUAGE_INDEX = 0\n\nexport const LANGUAGES: Language[] = [\n {\n code: \"ko\",\n fullName: \"Korean\",\n shortName: \"Korean\",\n nativeName: \"Korean\",\n name: \"Korean\",\n image: \"/images/korea.png\",\n momentLangCode: \"ko\"\n },\n {\n code: \"en\",\n fullName: \"English\",\n shortName: \"English\",\n nativeName: \"English\",\n name: \"English\",\n image: \"/images/usa.png\",\n momentLangCode: \"en-au\"\n }\n]\n","import { useState, useEffect, useMemo } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useDispatch } from \"react-redux\"\nimport { DEFAULT_LANGUAGE_INDEX, LANGUAGES, Language } from \"../../configs/constants\"\nimport { setLanguage } from \"../../redux/commons/action\"\nimport moment from \"moment\"\nimport \"moment/locale/ko.js\"\nimport \"moment/locale/en-au.js\"\n\nconst useLanguage = () => {\n const defaultLanguage =\n !!localStorage.getItem(\"language\")\n ? localStorage.getItem(\"language\")\n : navigator.language || LANGUAGES[DEFAULT_LANGUAGE_INDEX].code\n\n const dispatch = useDispatch()\n const { i18n } = useTranslation()\n const [dropdownOpen, setDropdownOpen] = useState(false)\n const [language, setItemLanguage] = useState(defaultLanguage!)\n const toggle = () => setDropdownOpen(prevState => !prevState)\n const changeLanguageApp = (lang: string) => {\n let language = LANGUAGES.find(i => i.code === lang)\n if (!language) language = LANGUAGES[DEFAULT_LANGUAGE_INDEX]\n i18n.changeLanguage(language.code)\n moment.locale(language.momentLangCode)\n localStorage.setItem(\"language\", language.code)\n setItemLanguage(language.code)\n dispatch(setLanguage(language.code))\n }\n\n useEffect(() => {\n changeLanguageApp(language)\n }, [language])\n\n const currentLanguage = useMemo(() => {\n const currentLang = LANGUAGES.find((i: Language) => i.code === language)\n if(!currentLang) return null\n return currentLang\n }, [language])\n return {\n language,\n dropdownOpen,\n currentLanguage,\n toggle,\n setItemLanguage\n }\n}\n\nexport default useLanguage","import React from \"react\"\nimport { IoChevronDown } from \"react-icons/io5\";\nimport styles from \"../styles.module.scss\"\nimport {\n Dropdown,\n DropdownItem,\n DropdownMenu,\n DropdownToggle\n} from \"reactstrap\"\nimport { Language, LANGUAGES } from \"../configs/constants\";\nimport useLanguage from \"../utils/hooks/useLanguage\";\n\nconst TheLanguageDropdown = () => {\n const {\n currentLanguage,\n language,\n dropdownOpen,\n toggle,\n setItemLanguage\n } = useLanguage()\n\n return (\n <Dropdown\n isOpen={dropdownOpen}\n toggle={toggle}\n className={`${styles[\"dropdown-menu\"]}`}\n >\n <DropdownToggle\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\n >\n <span style={{ color: \"#000\", textTransform: \"capitalize\", display: 'flex', alignItems: 'center' }}>\n {!!currentLanguage && <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src={currentLanguage.image} />}\n {!!currentLanguage && currentLanguage.shortName}\n <IoChevronDown className=\"ml-2\" style={{ fontSize: '15px', marginLeft: \"5px\", marginTop: \"2px\" }} />\n </span>\n </DropdownToggle>\n <DropdownMenu className={styles[\"dropdown-content-language\"]}>\n {\n LANGUAGES.map((lang: Language, index: number) => (\n <DropdownItem\n key={lang.code}\n className={`${styles[\"dropdown-change\"]} px-0 py-0 ${index === LANGUAGES.length - 1 ? \"pb-2\" : \"pt-2\"}`}\n onClick={() => setItemLanguage(lang.code)}\n >\n <div\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\n language == lang.code ? styles['dropdown-item-language-active'] : \"\"\n } d-flex align-items-center w-100`}\n >\n <span className=\"mr-2 d-flex hover-opacity\">\n <img\n style={{ width: \"30px\", marginRight: \"10px\" }}\n src={lang.image}\n />\n </span>\n {lang.name}\n </div>\n </DropdownItem>\n ))\n }\n </DropdownMenu>\n </Dropdown>\n )\n}\n\nexport default TheLanguageDropdown\n","import { api } from \"../configs/api\";\nimport { BASE_URL, SUPER_ADMIN_BASE_URL } from \"../utils/constants\";\n\nconst ACADEMY_URL = `${BASE_URL}/api/academy`;\nconst SUPER_ADMIN_ACADEMY_URL = `${SUPER_ADMIN_BASE_URL}/api/academies`;\n\n\nexport const getAcademyList = (role?: string) => api.get(`${SUPER_ADMIN_ACADEMY_URL}/active`, {\n params: {\n role\n }\n});\nexport const getUserAcademies = (role?: string) => api.get(`${ACADEMY_URL}`, {\n params: {\n role\n }\n});\n\nexport const switchAcademy = (academyId: number) => api.post(`${ACADEMY_URL}/switch-academy?academyId=${academyId}`);","import { useEffect, useMemo, useState } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport useLogin from \"./useLogin\";\nimport { AcademyResponse } from \"../types/academy\";\nimport { setLoading, setReFetchUserAcademies } from \"../../redux/commons/action\";\nimport { getAcademyList, getUserAcademies, switchAcademy } from \"../../services/academyService\";\nimport { toast } from \"react-toastify\";\nimport { LoginAccessTokenRequest } from \"../types/login\";\nimport { Role } from \"../../containers/Login/configs/constants\";\nimport { ACADEMY_DOMAIN } from \"../constants\";\n\n\nconst useSwitchAcademy = (role: Role = Role.Student, navigate: (pathname: string) => void, homeAcademyUrl: string, homeUrl: string) => {\n const dispatch = useDispatch()\n const {\n handleLoginAccessToken\n } = useLogin(navigate, homeAcademyUrl, homeUrl)\n const [dropdownOpen, setDropdownOpen] = useState(false)\n const toggleDropdown = () => setDropdownOpen(prevState => !prevState)\n const [academyList, setAcademyList] = useState<AcademyResponse[]>([])\n const user = useSelector((state: any) => state?.common?.user)\n const isReFetchUserAcademies = useSelector((state: any) => state?.common?.isReFetchUserAcademies)\n\n const getAcademies = async (isLoading: boolean = true) => {\n if(!user) return\n const isSuperAdminUser = user && !user.academyDomain\n const isSuperAdminRole = user.roles.includes(Role.Admin)\n isLoading && dispatch(setLoading(true))\n try {\n const res = !isSuperAdminUser ? await getUserAcademies(role) : await getAcademyList(role)\n const items: AcademyResponse[] = res.data.items || []\n if(isReFetchUserAcademies) dispatch(setReFetchUserAcademies(false))\n setAcademyList(items)\n if(!isSuperAdminRole && isSuperAdminUser && role == Role.Admin && items.length > 0)\n {\n await handleSwitchAcademy(items[0], false)\n }\n } catch (error) {\n toast.error(error?.response?.data?.tile || \"Get user academies failed\")\n }\n isLoading && dispatch(setLoading(false))\n }\n\n\n const handleSwitchAcademy = async (selectedAcademy?: AcademyResponse, isLoading: boolean = true) => {\n isLoading && dispatch(setLoading(true))\n const academyId = selectedAcademy ? selectedAcademy.id : 0\n const academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;\n try {\n const res = await switchAcademy(academyId);\n const data = res.data;\n const requestBody: LoginAccessTokenRequest = {\n accessToken: data.accessToken,\n email: user.email,\n academyId: academyId,\n role: role\n }\n academyDomain && localStorage.setItem(ACADEMY_DOMAIN, academyDomain)\n !academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n \n await handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)\n } catch (error) {\n toast.error(error?.response?.data?.title || \"Switch academy failed\")\n }\n isLoading && dispatch(setLoading(false))\n }\n\n useEffect(() => {\n getAcademies()\n }, [user?.academyDomain, user?.email])\n\n useEffect(() => {\n isReFetchUserAcademies && getAcademies(false)\n }, [isReFetchUserAcademies])\n\n const selectedAcademy = useMemo(() => {\n return academyList.find(i => i.domain.trim().toLowerCase() === user?.academyDomain?.trim().toLowerCase())\n }, [user?.academyDomain, JSON.stringify(academyList)])\n\n return {\n selectedAcademy,\n dropdownOpen,\n academyList,\n toggleDropdown,\n handleSwitchAcademy,\n }\n}\n\nexport default useSwitchAcademy","import React, { FC } from \"react\"\nimport { GoArrowSwitch } from \"react-icons/go\"\nimport styles from \"../styles.module.scss\"\nimport {\n Dropdown,\n DropdownItem,\n DropdownMenu,\n DropdownToggle\n} from \"reactstrap\"\nimport useSwitchAcademy from \"../utils/hooks/useSwitchAcademy\"\nimport { Role } from \"../containers/Login/configs/constants\"\nimport { AcademyResponse } from \"../utils/types/academy\"\n\ninterface ITheAcademyDropdownProps {\n role?: Role\n navigate: (pathname: string) => void\n homeAcademyUrl: string\n homeUrl: string\n}\n\nconst TheAcademyDropdown: FC<ITheAcademyDropdownProps> = ({\n homeAcademyUrl,\n homeUrl,\n navigate,\n role\n}) => {\n const {\n dropdownOpen,\n academyList,\n toggleDropdown,\n handleSwitchAcademy,\n selectedAcademy\n } = useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl)\n\n const firstLetter = selectedAcademy?.name?.charAt(0)?.toUpperCase()\n return (\n <Dropdown\n isOpen={dropdownOpen}\n toggle={toggleDropdown}\n className={`${styles[\"dropdown-menu\"]} ${styles[\"dropdown-academy\"]}`}\n >\n <DropdownToggle\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\n >\n <div className={`${styles[\"image-academy\"]}`}>\n {selectedAcademy?.image ? (\n <img\n src={selectedAcademy?.image}\n alt={selectedAcademy?.name}\n />\n ) : (\n <span>{firstLetter}</span>\n )}\n </div>\n <p\n className=\"text-start mb-0\"\n style={{\n fontSize: 14,\n fontWeight: 600,\n color: \"#5458D5\",\n minWidth: 150\n }}\n >\n {selectedAcademy?.name || \"No selected academy\"}\n </p>\n <div className={`${styles[\"switch-icon\"]}`}>\n <GoArrowSwitch size={14} />\n </div>\n </DropdownToggle>\n <DropdownMenu className={styles[\"dropdown-content-academy\"]}>\n {academyList.map((academy: AcademyResponse) => (\n <DropdownItem\n key={academy.id}\n className={`${styles[\"dropdown-academy-item\"]} px-0 py-0`}\n onClick={() => handleSwitchAcademy(academy)}\n >\n <div\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\n academy.id == selectedAcademy?.id\n ? styles[\"dropdown-item-language-active\"]\n : \"\"\n } d-flex align-items-center w-100`}\n >\n <span\n className={`mr-2 d-flex hover-opacity ${styles[\"image-academy\"]}`}\n >\n {academy.image ? (\n <img src={academy.image} />\n ) : (\n <span>\n {academy.name.charAt(0).toUpperCase()}\n </span>\n )}\n </span>\n {academy.name}\n </div>\n </DropdownItem>\n ))}\n {\n !academyList.length &&\n <p className=\"px-2 text-center\">No academies available</p>\n }\n </DropdownMenu>\n </Dropdown>\n )\n}\n\nexport default TheAcademyDropdown\n","export default (time: number) => {\n const h = Math.floor(time / 60)\n const m = time % 60\n return `${h.toString().padStart(2, \"0\")}:${m\n .toString()\n .padStart(2, \"0\")}:00`\n}\n","import moment from \"moment\"\n\nexport default (time?: string) => {\n try {\n return moment(time).toISOString()\n } catch {\n return \"\"\n }\n}\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\n if (!Array.isArray(userRoles)) {\n return false\n }\n if (Array.isArray(componentRoles)) {\n const intersects = userRoles.filter(i => componentRoles.includes(i))\n return intersects.length > 0\n }\n return true\n}\n\nexport default canAccess\n","import React from \"react\"\nimport Select, { DropdownIndicatorProps, components } from 'react-select'\nimport { FaCaretDown } from \"react-icons/fa\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DropdownIndicator = (props: DropdownIndicatorProps) => {\n return <components.DropdownIndicator {...props}>\n <FaCaretDown color=\"#5458D5\"/>\n </components.DropdownIndicator>\n}\n\nconst CustomOption = (props: any) => {\n return (\n <components.Option {...props}>\n <div style={{ fontSize: \"14px\", fontWeight: 500, }}>\n {props.data.label}\n </div>\n </components.Option>\n );\n };\n\nconst customStyles = {\n control: (baseStyles: any, state: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\",\n borderColor: state.isFocused ? '#5458D5' : '#C3C5FE'\n }),\n input: (baseStyles: any, _: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\"\n }),\n singleValue: (baseStyles: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\"\n }),\n};\nconst CustomSelect = ({\n isDefault,\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const { t } = useTranslation()\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n return (\n <Select\n isDisabled={isDisabled}\n options={options}\n value={!isDefault ? (initialValues ?? null) : undefined}\n defaultValue={isDefault ? initialValues : undefined}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n components={{\n IndicatorSeparator: () => null,\n DropdownIndicator,\n Option: CustomOption\n }}\n styles={customStyles}\n placeholder={t(\"select_placeholder\")}\n {...rest}\n />\n )\n}\n\nexport default CustomSelect\n","\nimport React, { SVGProps } from \"react\"\n\nconst iconPersonNoActive = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.395 2.01813C9.78691 1.36156 8.93753 1 8.00003 1C7.05753 1 6.20534 1.35937 5.60003 2.01187C4.98815 2.67156 4.69003 3.56813 4.76003 4.53625C4.89878 6.44625 6.35222 8 8.00003 8C9.64784 8 11.0988 6.44656 11.2397 4.53687C11.3107 3.5775 11.0107 2.68281 10.395 2.01813Z\"\n fill=\"#5458D5\"\n />\n <path\n d=\"M13.5001 15H2.50006C2.35608 15.0019 2.21349 14.9716 2.08267 14.9115C1.95185 14.8513 1.83609 14.7627 1.74381 14.6522C1.54068 14.4094 1.45881 14.0778 1.51943 13.7425C1.78318 12.2794 2.60631 11.0503 3.90006 10.1875C5.04943 9.42156 6.50537 9 8.00006 9C9.49474 9 10.9507 9.42188 12.1001 10.1875C13.3938 11.05 14.2169 12.2791 14.4807 13.7422C14.5413 14.0775 14.4594 14.4091 14.2563 14.6519C14.1641 14.7625 14.0483 14.8511 13.9175 14.9113C13.7867 14.9715 13.6441 15.0018 13.5001 15Z\"\n fill=\"#5458D5\"\n />\n </svg>\n )\n}\n\nexport default iconPersonNoActive\n","import React, { FC } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\n// import { Collapse } from \"reactstrap\";\n// import { Link } from \"react-router-dom\";\nimport { IChatItemWithActionProps } from \"./ChatItem\"\nimport IconPersonNoActive from \"../../assets/iconPersonNoActive\"\nimport { Box, Grid, Typography } from \"@mui/material\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport { useTranslation } from \"react-i18next\"\n\nconst ChatRightItem: FC<IChatItemWithActionProps> = ({\n content,\n createdAt,\n sender,\n showTimestamp,\n isStudent,\n showName,\n contentType\n}) => {\n const { t } = useTranslation()\n return (\n <div>\n {showTimestamp && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n textAlign={\"center\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n )}\n <Grid\n item\n xs={12}\n display={\"flex\"}\n justifyContent={\"flex-end\"}\n padding={\"4px 0\"}\n >\n <Box>\n {showName && isStudent && (\n <Box\n gap={\"8px\"}\n className={` ${styles[\"name-sender\"]}`}\n display={\"flex\"}\n alignItems={\"center\"}\n flexDirection={\"row\"}\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={700}\n fontSize={14}\n padding={\"4px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {sender?.fullName}\n </Typography>\n </Box>\n )}\n {contentType ? (\n <img\n src={content}\n style={{ backgroundRepeat: \"no-repeat\", width: \"200px\", height: \"200px\", position: \"relative\", backgroundSize: \"cover\", objectFit: \"cover\"}}\n />\n ) :\n (<div\n className={`${styles[\"wrap-content\"]} ${styles[\"content-chat-receiver\"]}`}\n style={{ float: \"inline-end\"}}\n >\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#fffff\"}\n >\n {content}\n </Typography>\n </div>)}\n </Box>\n </Grid>\n </div>\n )\n}\n\nexport default ChatRightItem\n","import React, { FC, Fragment } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\n// import { Collapse } from \"reactstrap\"\n// import { Link } from \"react-router-dom\"\nimport { IChatItemWithActionProps } from \"./ChatItem\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport { useTranslation } from \"react-i18next\"\nimport { Box, Grid, Typography } from \"@mui/material\"\n\nconst ChatLeftItem: FC<IChatItemWithActionProps> = ({\n content,\n sender,\n createdAt,\n showTimestamp,\n isStudent,\n showName,\n contentType\n}) => {\n const { t } = useTranslation()\n\n return (\n <div>\n {showTimestamp && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n textAlign={\"center\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n )}\n <Grid item xs={12} padding={\"4px 0\"}>\n {showName && (\n <Box gap={\"4px\"} display={\"flex\"} padding={\"4px\"} flexDirection={\"row\"} className={`${styles[\"name-sender\"]}`}>\n {isStudent ? (\n <Fragment>\n <Typography\n fontWeight={500}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#97A1AF\"}\n >\n {t(\"counselor\")}\n </Typography>\n <Typography\n fontWeight={700}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#97A1AF\"}\n >\n {sender?.fullName}\n </Typography>\n </Fragment>\n ) : (\n <Fragment>\n <Typography\n fontWeight={700}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {sender?.fullName}\n </Typography>\n <Typography\n fontWeight={500}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {t(\"student\")}\n </Typography>\n </Fragment>\n )}\n </Box>\n )}\n <Box padding={\"4px 0px\"}></Box>\n {contentType ? (\n <img\n src={content}\n style={{ backgroundRepeat: \"no-repeat\", width: \"200px\", height: \"200px\", position: \"relative\", backgroundSize: \"cover\", objectFit: \"cover\"}}\n />\n ) :\n (<div\n className={`${styles[\"wrap-content\"]} ${styles[\"content-chat-sender\"]}`}\n >\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#414E62\"}\n >\n {content}\n </Typography>\n </div>)}\n </Grid>\n </div>\n )\n}\n\nexport default ChatLeftItem\n","import { FC, Fragment } from \"react\"\nimport ChatRightItem from \"./ChatRightItem\"\nimport ChatLeftItem from \"./ChatLeftItem\"\nimport React from \"react\"\nimport { StudentsConversationResponse } from \"./configs/types\"\n// import styles from \"./styles/chatStyles.module.scss\"\n\nexport interface IChatItemProps {\n id?: number\n isMe?: boolean\n avatar?: string\n content?: string\n createdAt: string\n sender?: StudentsConversationResponse\n isRead: boolean\n contentType?: number\n}\n\nexport interface IChatItemWithActionProps extends IChatItemProps {\n onReTrySendMessage?: () => void\n showTimestamp?: boolean\n showName?: boolean\n isStudent?: boolean\n}\n\nexport enum ChatItemType {\n Default,\n Exam,\n Class\n}\n\nconst ChatItem: FC<IChatItemWithActionProps> = props => {\n const { isMe } = props\n return (\n <Fragment>\n {isMe ? <ChatRightItem {...props} /> : <ChatLeftItem {...props} />}\n </Fragment>\n )\n}\n\nexport default ChatItem\n","import { ExamStatus } from \"./constants\"\n\nexport type ConversationResponse = {\n id: number\n student: UserResponse\n teacher: UserResponse\n lastMessage: MessageResponse\n totalUnReadMessage: number\n}\n\nexport type ConversationsResponse = {\n id: number\n studentExamSessionId: number\n studentId: number\n question: ConversationQuestion\n isCompleted: boolean\n completedAt: string\n totalUnReadMessage: number\n lastMessage: string | null\n examTitle: string\n examId: number\n examSessionId: number\n duration: string\n startTime: string\n examCreatedAt: string\n createdAt: string\n teacherName: string\n}\n\nexport type ConversationQuestion = {\n id: number\n title: string\n articleNumber: number\n questionOrder: number\n}\n\nexport type UserResponse = {\n id: number\n fullName: string\n avatar: string\n}\n\nexport type ConversationFilter = {\n currentPage: number\n pageSize: number\n textSearch: string\n hasConversation?: boolean\n studentId?: number\n sortColumnName?: string,\n sortColumnDirection?: string\n}\n\nexport type ExamResponse = {\n id: number\n examId: number\n title: string\n code: string\n description: string\n type: string\n createdBy: {\n id: number,\n phoneNumber: string,\n email: string,\n avatar: string,\n fullName: string,\n schoolName: string\n },\n teacher: {\n id: number,\n phoneNumber?: string,\n email: string,\n avatar: string,\n fullName: string,\n schoolName: string\n },\n imageUrl: string\n questionCount: number\n duration: string\n createdAt: Date\n examCreatedAt: Date\n startTime: Date\n status: number\n totalStudentsJoined: number\n}\n\nexport type MessageFilter = {\n currentPage?: number\n pageSize?: number\n textSearch?: string\n sortColumnDirection?: OrderBy\n sortColumnName?: MessageSortBy\n examId?: number\n beforeDate?: string\n totalItems?: number\n totalPages?: number\n}\n\nexport enum MessageSortBy {\n CreatedAt = \"CreatedAt\"\n}\n\nexport enum OrderBy {\n ASC = \"ASC\",\n DESC = \"DESC\"\n} \n\nexport enum StudentSortBy {\n CreatedAt = \"CreatedAt\",\n FullName = \"FullName\"\n}\n\nexport enum StudentOrderBy {\n ASC = \"ASC\",\n DESC = \"DESC\"\n}\n\nexport type MessageResponse = {\n id?: number\n conversationId?: number\n content: string\n isRead: boolean\n readAt?: string\n createdAt: string\n sender?: StudentsConversationResponse\n}\n\nexport type UploadFileResponse = {\n fileName?: any\n uploaded: number\n url: string\n}\n\nexport type StudentsConversationResponse = {\n id: number\n avatar: string\n grade: string\n email?: string\n major?: string\n fullName: string\n parentName?: string\n schoolName?: string\n}\n\nexport type MessageRequest = {\n content: string\n examId?: number\n parentId?: number\n parentContent?: string\n examTitle?: string\n examCode?: string\n contentType?: number\n}\n\nexport enum MessageAction {\n Default,\n Took\n}\n\nexport enum MessageSourceType {\n Default,\n Exam,\n Class\n}\n\nexport type ExamFilter = {\n currentPage: number\n pageSize: number\n sortColumnName: string\n textSearch: string\n sortColumnDirection: string\n statuses?: ExamStatus[]\n}\n\nexport type Option = {\n value: number\n label: string\n}\n\nexport enum MessageStatus {\n Default = \"Sent\",\n Sending = \"Sending...\",\n SentError = \"Sent fail, Retry\"\n}","import { ConversationFilter, MessageFilter, MessageSortBy, OrderBy } from \"./types\";\n\nexport enum ExamStatus {\n Default = \"Default\",\n Pending = \"Pending\",\n Inprogress = \"Inprogress\",\n Completed = \"Completed\"\n}\n\nexport enum Roles {\n Student = \"Student\",\n Teacher = \"Teacher\",\n Admin = \"Admin\"\n}\n\n\nexport const CONVERSATION_DEFAULT_FILTER: ConversationFilter = {\n currentPage: 1,\n pageSize: -1,\n textSearch: \"\"\n}\n\nexport const MESSAGE_DEFAULT_FILTER: MessageFilter = {\n currentPage: 1,\n pageSize: 15,\n textSearch: \"\",sortColumnDirection: OrderBy.DESC,\n sortColumnName: MessageSortBy.CreatedAt\n}","import React, { FC, useMemo } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport ChatItem, { IChatItemProps } from \"./ChatItem\"\nimport { Roles } from \"./configs/constants\"\n\nexport interface IChatListProps {\n messages?: IChatItemProps[]\n onReTrySendMessage?: () => void\n roles: Array<String>\n}\ninterface Props extends IChatListProps {\n listItemRef: React.RefObject<HTMLUListElement>\n}\n\ntype prevSender = string | undefined\n\nconst ChatList: FC<Props> = ({\n messages = [],\n roles,\n onReTrySendMessage,\n listItemRef\n}) => {\n const filterMessage = useMemo(()=>{\n let prevTime = 0;\n let prevSender: prevSender;\n return messages.map((message) => {\n const currentTime = new Date(message.createdAt).getTime();\n const showTimestamp = !prevTime || (currentTime - prevTime) > (20 * 60 * 1000);\n const showName = message.sender?.fullName !== prevSender;\n prevSender = message.sender?.fullName;\n prevTime = currentTime;\n return { ...message, showTimestamp, showName };\n \n });},[JSON.stringify(messages)])\n\n const isStudent = roles?.includes(Roles.Student)\n\n return (\n <ul\n ref={listItemRef}\n className={`${styles[\"list\"]} ${styles[\"padding-content\"]} d-flex h-100 flex-column mb-0 ${!filterMessage?.length ? 'justify-content-center': ''}`}\n >\n {!filterMessage?.length && (\n <li className=\"text-muted text-center fst-italic fs-6\">\n No message\n </li>\n )}\n {!!filterMessage?.length &&\n filterMessage.map((message: IChatItemProps) => (\n <ChatItem\n key={message.id}\n {...message}\n isStudent={isStudent}\n onReTrySendMessage={onReTrySendMessage}\n />\n ))}\n </ul>\n )\n}\n\nexport default ChatList\n","import React from \"react\"\nimport type { SVGProps } from 'react';\n\nconst iconSendMessage = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.8934 7.09539L14.8884 7.0932L1.54219 1.55758C1.42993 1.51059 1.30778 1.49217 1.18666 1.50395C1.06554 1.51573 0.949225 1.55734 0.848125 1.62508C0.741311 1.69507 0.653573 1.79052 0.592805 1.90283C0.532037 2.01515 0.500145 2.14081 0.5 2.26852V5.80883C0.50006 5.98341 0.561019 6.15249 0.67237 6.28695C0.783722 6.42141 0.938491 6.5128 1.11 6.54539L8.38906 7.89133C8.41767 7.89675 8.44348 7.91199 8.46205 7.93441C8.48062 7.95683 8.49078 7.98503 8.49078 8.01414C8.49078 8.04325 8.48062 8.07145 8.46205 8.09387C8.44348 8.1163 8.41767 8.13153 8.38906 8.13695L1.11031 9.48289C0.938851 9.5154 0.784092 9.60667 0.67269 9.74101C0.561288 9.87534 0.500219 10.0443 0.5 10.2188V13.7598C0.499917 13.8817 0.530111 14.0018 0.587871 14.1092C0.645632 14.2166 0.729152 14.3079 0.830938 14.3751C0.953375 14.4564 1.09706 14.4999 1.24406 14.5001C1.34626 14.5 1.4474 14.4795 1.54156 14.4398L14.8875 8.9357L14.8934 8.93289C15.0731 8.85569 15.2262 8.72751 15.3337 8.56421C15.4413 8.40092 15.4986 8.20968 15.4986 8.01414C15.4986 7.81861 15.4413 7.62736 15.3337 7.46407C15.2262 7.30077 15.0731 7.1726 14.8934 7.09539Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default iconSendMessage\n","import React, { ChangeEvent, FC, KeyboardEvent, useRef } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport { Box, Button, Grid, Typography } from \"@mui/material\"\nimport IconSendMessenger from \"../../assets/iconSendMessenger\"\nimport { useTranslation } from \"react-i18next\"\nimport { FaImage } from \"react-icons/fa\"\nimport { IoCloseOutline } from \"react-icons/io5\"\nexport interface IInputChatProps {\n text: string\n onSubmit: () => void\n onChangeInput: (text: string) => void\n isCompleted?: boolean\n handleUploadImage: (file: File) => void\n selectedFile: {\n content: string\n }\n handleDeleteSelectedImage: () => void\n}\n\ninterface Props extends IInputChatProps {\n inputRef: React.RefObject<HTMLInputElement>\n}\nconst InputChat: FC<Props> = ({ text, inputRef, onChangeInput, onSubmit, isCompleted, handleUploadImage, selectedFile, handleDeleteSelectedImage }) => {\n const { t } = useTranslation();\n const fileInputRef = useRef<HTMLInputElement>(null);\n const handleSubmit = () => {\n onSubmit()\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n onChangeInput(event.target.value)\n \n }\n\n const handleKeyPressEnter = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\"){\n handleSubmit()\n return\n }\n }\n\n const handleSelectedFile = (e: any) => {\n const { files } = e.target;\n handleUploadImage(files[0])\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\"\n }\n }\n\n return (\n <Grid item xs={12} padding={\"16px\"}>\n <Box display={\"flex\"} flexDirection={\"row\"} gap={\"24px\"}>\n <Box\n display={\"flex\"}\n flexDirection={\"column\"}\n gap={\"7px\"}\n width={\"100%\"}\n >\n <Box display={\"flex\"} border={\"1px solid #97A1AF\"} borderRadius={\"6px\"} flexDirection={\"column\"}>\n { selectedFile && <div style={{ position: \"relative\", margin: \"10px\", width: \"fit-content\"}}>\n <img src={selectedFile?.content} style={{ backgroundRepeat: \"no-repeat\", width: \"100px\", height: \"100px\", backgroundSize: \"cover\"}}/>\n <div style={{ position: \"absolute\", right: 0, top: 0, cursor: \"pointer\"}} onClick={handleDeleteSelectedImage}>\n <IoCloseOutline color=\"#fff\" size={30}/>\n </div>\n </div>}\n <input\n className={styles[\"input-chat\"]}\n style={{ border: \"none\"}}\n placeholder={t(\"send_message\")}\n ref={inputRef}\n value={text}\n width={\"100%\"}\n onKeyPress={handleKeyPressEnter}\n onChange={handleInputChange}\n disabled={isCompleted}\n />\n </Box>\n <Typography\n fontWeight={500}\n fontSize={\"10px\"}\n lineHeight={\"11.93px\"}\n color={\"#97A1AF\"}\n >\n 안내 텍스트입니다.\n </Typography>\n </Box>\n \n <Box\n display={\"flex\"}\n justifyContent={\"flex-end\"}\n alignItems={\"flex-start\"}\n gap={\"8px\"}\n >\n <Button\n variant=\"outlined\"\n component=\"label\"\n >\n <FaImage />\n <input\n type=\"file\"\n hidden\n ref={fileInputRef}\n accept=\"image/png, image/gif, image/jpeg\"\n onChangeCapture={handleSelectedFile}\n />\n </Button>\n <Button\n variant=\"contained\"\n sx={{ bgcolor: isCompleted ? \"#EBEBFF !important\": \"#5458D5 !important\"}}\n className={styles[\"btn-send\"]}\n disabled={isCompleted}\n onClick={handleSubmit}\n >\n <IconSendMessenger />\n <Typography\n fontWeight={700}\n fontSize={\"13px\"}\n lineHeight={\"15.51px\"}\n >\n {t(\"button.send\")}\n </Typography>\n </Button>\n </Box>\n </Box>\n </Grid>\n )\n}\nexport default InputChat\n","import React, { SVGProps } from \"react\"\n\nconst iconChecked = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 1.5C4.41594 1.5 1.5 4.41594 1.5 8C1.5 11.5841 4.41594 14.5 8 14.5C11.5841 14.5 14.5 11.5841 14.5 8C14.5 4.41594 11.5841 1.5 8 1.5ZM11.3828 5.82156L7.18281 10.8216C7.13674 10.8764 7.07941 10.9208 7.01471 10.9516C6.95001 10.9823 6.87945 10.9989 6.80781 11H6.79938C6.72929 11 6.66 10.9852 6.59599 10.9567C6.53198 10.9282 6.47468 10.8865 6.42781 10.8344L4.62781 8.83438C4.5821 8.78589 4.54654 8.72876 4.52322 8.66633C4.4999 8.60391 4.4893 8.53745 4.49203 8.47087C4.49477 8.40429 4.51078 8.33892 4.53914 8.27862C4.56749 8.21831 4.60761 8.16429 4.65715 8.11971C4.70668 8.07514 4.76463 8.04091 4.82757 8.01905C4.89052 7.99719 4.95721 7.98813 5.02371 7.9924C5.09021 7.99668 5.15518 8.01421 5.21481 8.04396C5.27444 8.0737 5.32752 8.11507 5.37094 8.16562L6.78625 9.73812L10.6172 5.17844C10.7031 5.07909 10.8247 5.01754 10.9556 5.00711C11.0866 4.99668 11.2164 5.03819 11.317 5.12268C11.4175 5.20717 11.4808 5.32784 11.4931 5.45862C11.5055 5.5894 11.4658 5.71977 11.3828 5.82156Z\"\n fill=\"#5458D5\"\n />\n </svg>\n )\n}\n\nexport default iconChecked\n","import { api, apiUpload } from \"../../../configs/api\"\nimport { BASE_URL } from \"../../../utils/constants\"\nimport { ConversationFilter, MessageFilter, MessageRequest } from \"../configs/types\"\n\nconst CONVERSATION_URL = `${BASE_URL}/api/conversation`\n\nexport const getListConversation = (query: ConversationFilter) =>\n api.get(`${CONVERSATION_URL}`, {\n params: query\n })\n\nexport const createConversation = (studentId: number) =>\n api.post(`${CONVERSATION_URL}`, {\n targetUserId: `${studentId}`\n })\n\nexport const apiAddMessage = (conversationId: number, message: MessageRequest) =>\n api.post(`${CONVERSATION_URL}/${conversationId}/messages`, message)\n\nexport const getMessagesByConversation = (conversationId: number, filter: MessageFilter) =>\n api.get(`${CONVERSATION_URL}/${conversationId}/messages`, {\n params: filter\n })\n\nexport const completeConversation = (conversationId: number) =>\n api.post(`${CONVERSATION_URL}/${conversationId}/finish`)\n\n\nexport const apiMarkReadMessage = (conversationId: number, messageId: number) =>\n api.put(`${CONVERSATION_URL}/${conversationId}/messages/${messageId}/mark-read`)\n\nexport const apiGetConversationByUserId = (userId: number) =>\n api.get(`${CONVERSATION_URL}/users/${userId}`)\n \nexport const apiUploadFile = (file: FormData) =>\n apiUpload.post(`${BASE_URL}/api/file/upload`, file )","import { useState } from \"react\"\nimport { setLoading } from \"../../../redux/commons/action\";\nimport { toast } from \"react-toastify\";\nimport { completeConversation } from \"../apiClient/conversationService\";\n\nconst useDialog = () => {\n const [openConfirmDialog, setOpenConfirmDialog] = useState<boolean>(false);\n\n const toggleConfirmDialog = () => {\n setOpenConfirmDialog((state) => !state);\n };\n\n const handleConfirm = async(conversationId: number) => {\n setLoading(true)\n try {\n await completeConversation(conversationId)\n toggleConfirmDialog()\n toast.success(\"Complete conversation success\")\n } catch (error) {\n toast.error(\"Failed to complete conversation\")\n }\n setLoading(false)\n }\n\n\n return {\n openConfirmDialog,\n toggleConfirmDialog,\n handleConfirm\n }\n}\n\nexport default useDialog","import { FC, useMemo } from \"react\"\nimport React from \"react\"\nimport { Box, Grid, Typography } from \"@mui/material\"\nimport IconPersonNoActive from \"../../assets/iconPersonNoActive\"\nimport IconChecked from \"../../assets/iconChecked\"\nimport { ConfirmDialog } from \"../Dialogs/ConfirmDialog\"\nimport useDialog from \"./hooks/useDialog\"\nimport { useTranslation } from \"react-i18next\"\nimport { Roles } from \"./configs/constants\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport moment from \"moment\"\n\nexport interface IExamOption {\n id: number\n code: string\n title: string\n createdAt: string\n startTime: string\n}\nexport interface IChatHeaderProps {\n fullName?: string\n examTitle?: string\n createdAt?: string\n durationExam?: string\n questionOrder?: number\n conversationId?: number\n isCompleted?: boolean\n teacherName?: string\n roles?: Array<string>\n}\nconst ChatHeader: FC<IChatHeaderProps> = ({\n fullName,\n examTitle,\n questionOrder,\n conversationId,\n isCompleted,\n durationExam,\n createdAt,\n teacherName,\n roles\n}) => {\n const { openConfirmDialog, toggleConfirmDialog, handleConfirm } =\n useDialog()\n const { t } = useTranslation()\n\n const isStudent = roles?.includes(Roles.Student)\n const filterDurationExam = useMemo(() => {\n if (!durationExam) return\n return moment.duration(durationExam)\n }, [durationExam])\n\n const renderHeader = () => {\n return isStudent ? (\n <Grid\n item\n xs={12}\n borderTop={\"1px solid #E4E7EC\"}\n borderBottom={\"1px solid #E4E7EC\"}\n minHeight={\"64px\"}\n padding={\"16px 8px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n justifyContent={\"space-between\"}\n >\n <Box\n padding={\"8px 12px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n border={\"1px solid #EBEBFF\"}\n borderRadius={\"6px\"}\n >\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n flexDirection={\"row\"}\n gap={\"8px\"}\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {t(\"counselor\")}\n </Typography>\n </Box>\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {teacherName}\n </Typography>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"start\"}\n color={\"#5458D5\"}\n gap={\"6px\"}\n flexDirection={\"column\"}\n >\n <Typography\n fontWeight={600}\n fontSize=\"12px\"\n lineHeight=\"14.32px\"\n >\n {examTitle}\n </Typography>\n <Box display={\"flex\"} flexDirection={\"row\"} gap={\"4px\"}>\n <Typography\n fontWeight={600}\n fontSize={\"12px\"}\n lineHeight={\"14.2px\"}\n >\n LIVE 시험\n </Typography>\n {filterDurationExam && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n >\n {`${!!filterDurationExam.hours() ? `${filterDurationExam.hours()} ${t(\"hour\")}` : \"\"} ${!!filterDurationExam.minutes() ? `${filterDurationExam.minutes()} ${t(\"minute\")}` : \"\"} ${!!filterDurationExam.seconds() ? `${filterDurationExam.seconds()} ${t(\"second\")}` : \"\"}`}\n </Typography>\n )}\n </Box>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"6px\"}\n flexDirection={\"column\"}\n >\n <Typography\n fontWeight={700}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#5458D5\"}\n >\n {questionOrder != undefined ? t(\"problem_number_question\", {\n number: questionOrder + 1\n }) : t(\"class_inquiry\")}\n </Typography>\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n </Box>\n </Grid>\n ) : (\n <Grid\n item\n xs={12}\n borderTop={\"1px solid #E4E7EC\"}\n borderBottom={\"1px solid #E4E7EC\"}\n minHeight={\"64px\"}\n padding={\"16px 8px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n justifyContent={\"space-between\"}\n >\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n color={\"#5458D5\"}\n >\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n gap=\"8px\"\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={500}\n fontSize=\"14px\"\n lineHeight=\"16.71px\"\n >\n {t(\"student\")}\n </Typography>\n </Box>\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n >\n {fullName}\n </Typography>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n color={\"#5458D5\"}\n >\n {examTitle && (\n <Typography\n fontWeight={600}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n >\n {examTitle}\n </Typography>\n )}\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n >\n {questionOrder != undefined ? t(\"problem_number_question\", {\n number: questionOrder + 1\n }) : t(\"class_inquiry\")}\n </Typography>\n </Box>\n {!isCompleted ? (\n <div onClick={toggleConfirmDialog}>\n <Box\n padding={\"8px 12px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"8px\"}\n border={\"1px solid #5458D5\"}\n borderRadius={\"6px\"}\n >\n <IconChecked />\n <Typography\n fontWeight={700}\n fontSize={\"13px\"}\n lineHeight={\"15.51px\"}\n color={\"#5458D5\"}\n >\n 완료 처리\n </Typography>\n </Box>\n </div>\n )\n :\n <div></div>}\n </Grid>\n )\n }\n\n return (\n <Grid container>\n <Grid\n item\n xs={12}\n paddingLeft={\"32px\"}\n paddingTop={\"20px\"}\n paddingBottom={\"16px\"}\n minHeight={\"60px\"}\n >\n <Typography\n fontWeight={800}\n fontSize={\"20px\"}\n color={\"#5458D5\"}\n lineHeight={\"23.87px\"}\n >\n {t(\"question_and_answer\")}\n </Typography>\n </Grid>\n {renderHeader()}\n <ConfirmDialog\n open={openConfirmDialog}\n toggle={toggleConfirmDialog}\n text={\"정말로 이 채팅 베팅을 완료하시겠습니까?\"}\n onConfirm={() => handleConfirm(conversationId || 0)}\n title={t(\"confirmation\")}\n okText={t(\"yes\")}\n cancelText={t(\"no\")}\n />\n </Grid>\n )\n}\n\nexport default ChatHeader\n","import ChatList, { IChatListProps } from \"./ChatList\"\nimport InputChat, { IInputChatProps } from \"./InputChat\"\nimport ChatHeader, { IChatHeaderProps } from \"./ChatHeader\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport React, { FC, useEffect, useRef } from \"react\"\nimport { CircularProgress, Grid } from \"@mui/material\"\n\nexport interface IChatContainerProps {\n chatHeaderProps: IChatHeaderProps\n chatListProps: IChatListProps\n inputProps: IInputChatProps\n height?: string\n scrollOffset?: number\n isLoading?: boolean\n isScrollToEnd?: boolean\n onReachTop?: () => void\n onReachBottom?: () => void\n onEndScrollToEnd?: () => void\n}\n\nconst ChatContainer: FC<IChatContainerProps> = ({\n chatHeaderProps,\n chatListProps,\n inputProps,\n scrollOffset = 0,\n isLoading = false,\n isScrollToEnd,\n onReachTop,\n onReachBottom,\n onEndScrollToEnd\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n const listItemRef = useRef<HTMLUListElement>(null)\n const scrollRef = useRef<any>()\n const addEventTimeout = useRef<any>()\n\n const handleScroll = async () => {\n if (listRef.current) {\n const scrollTop = listRef.current.scrollTop\n const scrollHeight = listRef.current.scrollHeight\n const clientHeight = listRef.current.clientHeight\n if (scrollTop + clientHeight + scrollOffset >= scrollHeight) {\n onReachBottom?.()\n } else if (scrollTop <= scrollOffset) {\n const isSuccessLoad = await onReachTop?.()\n if (isSuccessLoad) {\n listRef.current.scrollTop = listRef.current.scrollHeight - scrollHeight\n }\n }\n }\n\n if (scrollRef.current) clearTimeout(scrollRef.current)\n }\n\n useEffect(() => {\n scrollRef.current && clearTimeout(scrollRef.current)\n addEventTimeout.current && clearTimeout(addEventTimeout.current)\n listRef.current?.removeEventListener(\"scroll\", handleScroll)\n if (isScrollToEnd && !isLoading && chatListProps.messages?.length) {\n listItemRef.current?.lastElementChild?.scrollIntoView({\n behavior: \"smooth\"\n })\n onEndScrollToEnd?.()\n\n addEventTimeout.current = setTimeout(() => {\n listRef.current?.addEventListener(\"scroll\", handleScroll)\n }, 800)\n } else listRef.current?.addEventListener(\"scroll\", handleScroll)\n return () => {\n listRef.current?.removeEventListener(\"scroll\", handleScroll)\n scrollRef.current && clearTimeout(scrollRef.current)\n addEventTimeout.current && clearTimeout(addEventTimeout.current)\n }\n }, [\n JSON.stringify(chatListProps.messages),\n scrollOffset,\n isLoading,\n onEndScrollToEnd,\n isScrollToEnd\n ])\n\n useEffect(() => {\n onReachBottom?.()\n }, [JSON.stringify(chatListProps.messages)])\n\n return (\n <Grid container>\n <ChatHeader {...chatHeaderProps} />\n <div\n ref={listRef}\n className={`flex-grow-1 ${styles[\"body\"]}`}\n style={{\n height: \"60vh\",\n overflowY: \"scroll\",\n background: \"#F9FAFB\"\n }}\n >\n {isLoading && (\n <div style={{ height: \"100%\", width: \"100%\"}} className=\"d-flex justify-content-center align-items-center\">\n <CircularProgress />\n </div>\n )}\n <ChatList {...chatListProps} listItemRef={listItemRef} />\n </div>\n <InputChat {...inputProps} inputRef={inputRef} />\n </Grid>\n )\n}\n\nexport default ChatContainer\n","import { useState } from \"react\"\nimport { MESSAGE_DEFAULT_FILTER } from \"../configs/constants\"\nimport { MessageResponse, MessageFilter } from \"../configs/types\"\nimport { getMessagesByConversation } from \"../apiClient/conversationService\"\nimport { toast } from \"react-toastify\";\n\nconst useMessageList = () => {\n const [messages, setMessages] = useState<MessageResponse[]>([])\n const [messageFilter, setMessageFilter] = useState<MessageFilter>(MESSAGE_DEFAULT_FILTER)\n const [isLoading, setLoading] = useState<boolean>(false)\n\n const getMessageList = async (conversationId: number) => {\n setLoading(true)\n try {\n const filter = {\n ...messageFilter,\n }\n const res = await getMessagesByConversation(conversationId, filter)\n setMessages((prev) => [...res.data.items?.reverse(), ...prev])\n setMessageFilter((prev) => ({ ...prev, totalItems: res.data.totalItems, totalPages: res.data.totalPages }))\n } catch (error) {\n toast.error(\"Fail to fetch data!\")\n }\n setLoading(false)\n }\n\n const handleLoadMore = async(conversationId: number) => {\n if (isLoading) return\n const filter = {\n ...messageFilter,\n currentPage: (messageFilter?.currentPage || 1) + 1,\n }\n setMessageFilter(filter)\n setLoading(true)\n try {\n const res = await getMessagesByConversation(conversationId, filter)\n setMessages((prev) => {\n const data = [...res.data.items?.reverse(), ...prev]\n const dataFilter = new Set(data)\n return Array.from(dataFilter)\n })\n if(res.data.items){\n setMessageFilter((prev) => ({ ...prev, totalItems: res.data.totalItems, totalPages: res.data.totalPages }))\n }\n } catch (error) {\n toast.error(\"Fail to fetch data!\")\n return \n }\n setLoading(false)\n return true\n }\n\n const resetMessages = () => {\n setMessageFilter(MESSAGE_DEFAULT_FILTER)\n setMessages([])\n }\n\n return {\n isLoading,\n messageFilter,\n messages,\n getMessageList,\n setMessages,\n resetMessages,\n handleLoadMore,\n }\n}\n\nexport default useMessageList","import { useRef, useState, useEffect, useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { PUSHER_CONFIG, getAccessToken, BASE_URL, AcademyHeaders } from \"../../../utils/constants\";\nimport { apiAddMessage, apiUploadFile } from \"../apiClient/conversationService\";\nimport { ConversationsResponse, MessageResponse, MessageRequest, StudentsConversationResponse } from \"../configs/types\";\nimport Pusher, { Channel } from \"pusher-js\";\nimport useMessageList from \"./useMessageList\";\nimport { toast } from \"react-toastify\";\nimport { IChatItemProps } from \"../ChatItem\";\n\ninterface Props {\n conversation?: ConversationsResponse;\n student?: StudentsConversationResponse\n}\n\nconst useChatContainer = (props: Props) => {\n const { conversation, student } = props;\n const pusher = useRef<Pusher>();\n const channel = useRef<Channel>();\n const channelName = useRef<string>();\n const loadingRef = useRef<boolean>(false);\n\n const infoUser = useSelector((state: any) => state?.common?.user || {});\n const academyDomain = infoUser?.academyDomain\n const roles = useSelector((state: any) => state?.common?.user?.roles || []);\n\n const [selectedConversation, setSelectedConversation] = useState<ConversationsResponse>();\n const [selectedFile, setSelectedFile] = useState<MessageRequest | null>();\n const [message, setMessage] = useState<MessageRequest>();\n const [isScrollToEnd, setScrollToEnd] = useState<boolean>(true)\n\n const {\n isLoading: isLoadingMessages,\n messages,\n messageFilter,\n getMessageList,\n resetMessages,\n setMessages,\n handleLoadMore\n } = useMessageList();\n\n const handleToggleScrollToEnd = () => {\n setScrollToEnd((state: boolean) => !state)\n }\n\n const handleAddMessage = async () => {\n if(loadingRef.current) return; //when loading not add 2 message\n loadingRef.current = true;\n if (!selectedConversation?.id ) return;\n setScrollToEnd(true)\n\n try {\n if(selectedFile?.content) {\n await apiAddMessage(selectedConversation?.id, {\n ...selectedFile,\n contentType: 1\n });\n }\n if(message?.content?.trim().length) {\n await apiAddMessage(selectedConversation?.id, {\n ...message,\n });\n }\n\n handleChangeInput('')\n setSelectedFile(null)\n\n } catch (error) {\n setMessages((state: MessageResponse[]) => {\n return [...state.filter(i => i?.id !== 0)]\n })\n toast.error(error.response?.data)\n }\n loadingRef.current = false;\n };\n\n const handleUploadImage = async (file: File) => {\n console.log({ file });\n if(!file) return \n try {\n var formData = new FormData();\n formData.append(\"upload\", file);\n const res = await apiUploadFile(formData);\n setSelectedFile({ content: res?.data?.url})\n } catch (error) {\n setMessages((state: MessageResponse[]) => {\n return [...state.filter(i => i?.id !== 0)]\n })\n toast.error(error.response?.data)\n }\n finally{\n return \n }\n }\n\n const handleChangeInput = (text: string) => {\n setMessage({\n content: text,\n });\n };\n\n const handleNewMessageSent = (data: MessageResponse) => {\n if(!data) return\n setScrollToEnd(true)\n setMessages((state: MessageResponse[]) => {\n return [...state, data]\n });\n };\n\n const handleCompletedConversation = (data: string) => {\n if(!data) return\n setSelectedConversation(JSON.parse(data))\n };\n\n const handleLoadMoreMessages = async() => {\n if (selectedConversation?.id === undefined) return;\n\n return await handleLoadMore(selectedConversation?.id)\n }\n\n const handleDeleteSelectedImage = () => {\n setSelectedFile(null)\n}\n\n const cleanupPusher = () => {\n pusher.current?.unbind(\"new-message-event\", handleNewMessageSent);\n channelName.current &&\n pusher.current &&\n pusher.current.unsubscribe(channelName.current);\n };\n\n useEffect(() => {\n if (\n PUSHER_CONFIG.cluster &&\n PUSHER_CONFIG.key &&\n academyDomain &&\n !!selectedConversation?.id\n ) {\n const token = getAccessToken();\n pusher.current = new Pusher(PUSHER_CONFIG.key, {\n cluster: PUSHER_CONFIG.cluster,\n authEndpoint: `${BASE_URL}/api/auth/pusher`,\n auth: {\n params: {},\n headers: {\n Authorization: `Bearer ${token}`,\n [AcademyHeaders]: academyDomain\n },\n },\n });\n channelName.current = `presence-conversation-channel-${selectedConversation?.id}`;\n channel.current = pusher.current.subscribe(channelName.current);\n pusher.current.bind(\"new-message-event\", handleNewMessageSent);\n pusher.current.bind(\"completed-conversation-event\", handleCompletedConversation);\n }\n return cleanupPusher;\n }, [selectedConversation?.id, academyDomain]);\n\n useEffect(() => {\n const getConversation = async () => {\n resetMessages()\n setScrollToEnd(true)\n if (!conversation?.id) return\n\n setSelectedConversation(conversation);\n };\n getConversation();\n }, [conversation?.id]);\n\n const getMessageConversation = async () => {\n if (selectedConversation?.id === undefined) return;\n \n getMessageList(selectedConversation?.id);\n };\n\n const handleConversationChange = () => {\n resetMessages()\n setScrollToEnd(true)\n }\n\n const messageList: IChatItemProps[] = useMemo(() => {\n const results = messages.map((i: MessageResponse) => {\n return {\n ...i,\n isMe: infoUser?.id === i.sender?.id,\n };\n });\n return results\n }, [\n JSON.stringify(messages),\n infoUser?.id,\n ]);\n\n useEffect(() => {\n getMessageConversation();\n }, [JSON.stringify(selectedConversation)]);\n\n return {\n chatHeaderProps: {\n fullName: student?.fullName,\n examTitle: selectedConversation?.examTitle,\n questionOrder: selectedConversation?.question?.questionOrder,\n conversationId: selectedConversation?.id,\n isCompleted: selectedConversation?.isCompleted,\n durationExam: selectedConversation?.duration,\n createdAt: selectedConversation?.createdAt,\n teacherName: selectedConversation?.teacherName,\n roles\n },\n chatListProps: {\n messages: messageList,\n onReTrySendMessage: handleAddMessage,\n roles,\n },\n inputProps: {\n selectedFile,\n text: message?.content || \"\",\n onChangeInput: handleChangeInput,\n onSubmit: handleAddMessage,\n handleDeleteSelectedImage,\n handleUploadImage,\n isCompleted: selectedConversation?.isCompleted\n },\n isScrollToEnd,\n isLoadingMessages,\n messageList,\n selectedConversation,\n messageFilter,\n handleToggleScrollToEnd,\n handleLoadMoreMessages,\n getMessageList,\n setMessage,\n resetMessages: handleConversationChange,\n getMessageConversation,\n };\n};\n\nexport default useChatContainer;\n","import Pusher, { Channel } from \"pusher-js\"\nimport { useSelector } from \"react-redux\"\nimport { AcademyHeaders, BASE_URL, PUSHER_CONFIG } from \"../../../utils/constants\"\nimport { useEffect, useRef } from \"react\"\nimport getAccessToken from \"../../../utils/getAccessToken\"\nimport { ConversationResponse } from \"../configs/types\"\nconst usePusherConversation = (onNewMessageConversation?: (data: ConversationResponse) => void, onReadMessageConversation?: (id: number, total: number) => void) => {\n const pusher = useRef<Pusher>()\n const channel = useRef<Channel>()\n const channelName = useRef<string>()\n\n const user = useSelector((state: any) => state?.common?.user)\n const userId = user?.id\n const academyDomain = user?.academyDomain\n\n const handleNewMessageConversationCreated = (data: ConversationResponse) => {\n onNewMessageConversation?.(data)\n }\n\n const handleReadMessageConversation = (data: ConversationResponse) => {\n onReadMessageConversation?.(data.id, data.totalUnReadMessage)\n }\n\n const cleanupPusher = () => {\n channel.current && channel.current.unbind(\"message-conversation-event\", handleNewMessageConversationCreated);\n channel.current && channel.current.unbind(\"message-conversation-read-event\", handleReadMessageConversation)\n channelName.current &&\n pusher.current &&\n pusher.current.unsubscribe(channelName.current);\n };\n\n useEffect(() => {\n if (\n PUSHER_CONFIG.cluster &&\n PUSHER_CONFIG.key &&\n academyDomain &&\n !!userId\n ) {\n const token = getAccessToken()\n pusher.current = new Pusher(PUSHER_CONFIG.key, {\n cluster: PUSHER_CONFIG.cluster,\n authEndpoint: `${BASE_URL}/api/auth/pusher`,\n auth: {\n params: {},\n headers: {\n Authorization: `Bearer ${token}`,\n [AcademyHeaders]: academyDomain\n }\n }\n })\n channelName.current = `presence-conversation-channel-userId-${userId}`\n \n channel.current = pusher.current.subscribe(channelName.current)\n channel.current.bind(\n \"message-conversation-event\",\n handleNewMessageConversationCreated\n )\n channel.current.bind(\n \"message-conversation-read-event\",\n handleReadMessageConversation\n )\n }\n return cleanupPusher\n }, [userId, academyDomain])\n return {}\n}\n\nexport default usePusherConversation\n","import React from \"react\"\nimport CreatableSelect from 'react-select/creatable';\n\nconst CustomCreatable = ({\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n \n return (\n <CreatableSelect\n isClearable\n isDisabled={isDisabled}\n options={options}\n value={initialValues}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n {...rest}\n\n />\n )\n}\n\nexport default CustomCreatable\n","import React from \"react\"\nimport AsyncSelect from \"react-select\"\n\nconst CustomAsyncSelect = ({\n isDefault,\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n \n return (\n <AsyncSelect\n isDisabled={isDisabled}\n options={options}\n value={!isDefault ? initialValues : undefined}\n defaultValue={isDefault ? initialValues : undefined}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n {...rest}\n\n />\n )\n}\n\nexport default CustomAsyncSelect\n","import { Exam } from \"./types\";\n\nexport const DURATION_OPTIONS = Array.from({ length: 120 }, (_, i) => i + 1);\nexport const SCORE_OPTIONS = Array.from({ length: 10 }, (_, i) => i + 1);\nexport const QUESTION_OPTIONS = Array.from({ length: 10 }, (_, i) => i + 1);\nexport const ANSWER_OPTIONS = Array.from({ length: 9 }, (_, i) => i + 2);\nexport const DEFAULT_SCORE = 2\nexport const DEFAULT_ANSWER_COUNT = 5\n\nexport const DEFAULT_EXAM: Exam = {\n questions: [\n {\n article: 1,\n correctAnswers: [1],\n numberOfAnswers: DEFAULT_ANSWER_COUNT,\n score: DEFAULT_SCORE,\n questionOrder: 1\n }\n ],\n title: \"\",\n duration: 1\n}","import React, { FC } from 'react'\nimport { FormGroup, Input, Label } from \"reactstrap\"\nimport CustomSelect from \"../../../components/Selects/CustomSelect\"\n// import { useTranslation } from 'react-i18next'\nimport styles from \"../styles/styles.module.scss\"\nimport { DEFAULT_SCORE, SCORE_OPTIONS } from '../configs/constants'\n\nexport interface QuestionViewProps{\n index: number\n question: any\n answerCount: number\n isDisabled?: boolean\n onChangeCorrectAnswers: (value: any, index: number) => void\n onChangeScoreAnswer: (value: number, index: number) => void\n}\nconst QuestionView: FC<QuestionViewProps> = ({\n index,\n question,\n answerCount,\n isDisabled,\n onChangeCorrectAnswers,\n onChangeScoreAnswer\n}) => {\n // const { t } = useTranslation()\n \n const scoreOptions = SCORE_OPTIONS.map(i => ({\n label: DEFAULT_SCORE === i ? `${i}점 (기본값)` : `${i}점`,\n value: i\n }))\n\n return <div className=\"d-flex justify-content-between\">\n <div className=\"d-flex flex-grow-1\">\n <div className={`${styles[\"question-title\"]} me-2`}>\n 문제 {question.questionOrder + 1}번\n </div>\n <div className=\"d-flex flex-grow-1\">\n {\n Array.from({ length: answerCount }, (_, i) => i + 1).map(i => (\n <FormGroup className=\"d-flex flex-column px-4\" key={i}>\n <Label htmlFor={`answer-${i}`} className={`${styles[\"question-label\"]}`}>{i}번</Label>\n <Input\n id={`answer-${i}`}\n type={\"radio\"}\n checked={question.correctAnswers.includes(i)}\n onChange={() => onChangeCorrectAnswers(i, index)}\n disabled={isDisabled}\n />\n </FormGroup>\n ))\n }\n </div>\n </div>\n <div className=\"d-flex align-items-center\">\n <FormGroup className=\"mx-3\" style={{\n width: \"140px\"\n }}>\n <CustomSelect\n value={question.score}\n options={scoreOptions}\n onChange={(value: any) => onChangeScoreAnswer(value.value, index)}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </div>\n </div>\n}\n\nexport default QuestionView","import React, { FC } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { PiDotsNineLight } from \"react-icons/pi\"\nimport { Col, FormGroup, Label, Row } from \"reactstrap\"\nimport CustomSelect from \"../../../components/Selects/CustomSelect\"\nimport styles from \"../styles/styles.module.scss\"\nimport QuestionView from \"./QuestionView\"\nimport { ANSWER_OPTIONS, QUESTION_OPTIONS } from \"../configs/constants\"\n\nexport interface ArticleGroupViewProps {\n categoryOptions: any[]\n article: number\n questionCount: number\n categoryId?: number\n answerCount: number\n questions: any\n isMultiple?: boolean\n isActive?: boolean\n isDisabled?: boolean\n onChangeQuestionCount: (article: number, questionCount: number, answerCount: number) => void\n onChangeCategory: (article: number, categoryId: number) => void\n onChangeAnswerCount: (article: number, newAnswerCount: number, answerCount: number) => void\n onChangeCorrectAnswers: (article: number, index: number, answer: number) => void\n onChangeScoreAnswer: (article: number, index: number, score: number) => void\n}\nconst ArticleGroupView: FC<ArticleGroupViewProps> = ({\n categoryOptions,\n article,\n questions,\n answerCount,\n questionCount,\n categoryId,\n isActive,\n isDisabled,\n onChangeQuestionCount,\n onChangeCategory,\n onChangeAnswerCount,\n onChangeCorrectAnswers,\n onChangeScoreAnswer\n}) => {\n const { t } = useTranslation()\n\n const handleChangeQuestionCount = (value: any) => {\n onChangeQuestionCount(article, value?.value, answerCount)\n }\n\n const handleChangeCategory = (value: any) => {\n onChangeCategory(article, value?.value)\n }\n \n const handleChangeAnswerCount = (value: any) => {\n onChangeAnswerCount(article, value?.value, answerCount)\n }\n\n const handleChangeCorrectAnswers = (value: any, index: number) => {\n onChangeCorrectAnswers(article, index, value)\n }\n\n const handleChangeScoreAnswer = (value: number, index: number) => {\n onChangeScoreAnswer(article, index, value)\n }\n\n const questionOptions = QUESTION_OPTIONS.map(i => ({\n label: `${i}개`,\n value: i\n }))\n\n const answerOptions = ANSWER_OPTIONS.map(i => ({\n label: `${i}번`,\n value: i\n }))\n\n return (\n <div className={`d-flex ${styles[\"question\"]} ${isActive ? styles[\"question--active\"] : \"\"}`}>\n <div className=\"py-1\">\n <PiDotsNineLight size={18}/>\n </div>\n <div className=\"px-4\">\n <Row>\n <Col xs={12}>\n <p className={`mb-0 ${styles[\"question-article\"]}`}>문항</p>\n <p className={`text-center ${styles[\"question-article\"]}`}>{article}</p>\n </Col>\n </Row>\n </div>\n <div className=\"flex-grow-1\">\n <Row>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"question_count\" className={`${styles[\"question-label\"]}`}>\n {t(\"question_count\")}\n </Label>\n <CustomSelect\n inputId=\"question_count\"\n value={questionCount}\n options={questionOptions}\n onChange={handleChangeQuestionCount}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"category\" className={`${styles[\"question-label\"]}`}>{t(\"category\")}</Label>\n <CustomSelect\n inputId=\"category\"\n value={categoryId}\n options={categoryOptions}\n onChange={handleChangeCategory}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"answer_count\" className={`${styles[\"question-label\"]}`}>\n {t(\"answer_count\")}\n </Label>\n <CustomSelect\n inputId=\"answer_count\"\n value={answerCount}\n options={answerOptions}\n onChange={handleChangeAnswerCount}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n </Col>\n </Row>\n <div>\n {\n questions.map((q: any, index: number) => (\n <QuestionView\n key={index}\n question={q}\n answerCount={answerCount}\n index={index}\n onChangeCorrectAnswers={handleChangeCorrectAnswers}\n onChangeScoreAnswer={handleChangeScoreAnswer}\n isDisabled={isDisabled}\n />\n ))\n }\n </div>\n </div>\n </div>\n )\n}\n\nexport default ArticleGroupView\n","import { DEFAULT_ANSWER_COUNT, DEFAULT_SCORE, DURATION_OPTIONS } from \"../configs/constants\"\nimport { ArticleGroup, Exam, Question } from \"../configs/types\"\nimport { ChangeEvent, useMemo } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport _ from \"lodash\"\n\ninterface Props {\n exam: Exam\n onChangeExam: (value: Exam) => void\n}\n\nconst useExamDetailView = (props: Props) => {\n const { exam, onChangeExam } = props\n\n const { t } = useTranslation()\n const handleChangeQuestionCount = (\n article: number,\n questionCount: number,\n answerCount: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const prevQuestions = examQuestions.filter(i => i.article < +article)\n const nextQuestions = examQuestions.filter(i => i.article > +article)\n const lastOrder = questions[questions.length - 1].questionOrder\n if (questions.length === questionCount) return\n if (questions.length < questionCount) {\n const additionalQuestions: Question[] = Array.from({\n length: questionCount - questions.length\n }).map((_, index) => ({\n article: +article,\n correctAnswers: [1],\n numberOfAnswers: answerCount,\n categoryId: questions[0]?.categoryId,\n score: DEFAULT_SCORE,\n questionOrder: lastOrder + index + 1\n }))\n const newQuestions = [\n ...prevQuestions,\n ...questions,\n ...additionalQuestions,\n ...nextQuestions.map(i => ({\n ...i,\n questionOrder: i.questionOrder + questionCount - questions.length\n }))\n ]\n\n onChangeExam({\n ...exam,\n questions: [...newQuestions]\n })\n } else {\n const remainQuestions = questions.slice(0, questionCount)\n const newQuestions = [\n ...prevQuestions,\n ...remainQuestions,\n ...nextQuestions.map(i => ({\n ...i,\n questionOrder: i.questionOrder - questions.length + questionCount\n }))\n ]\n\n onChangeExam({\n ...exam,\n questions: [...newQuestions]\n })\n }\n }\n\n const handleChangeCategory = (article: number, categoryId: number) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n categoryId\n }))\n ]\n })\n }\n\n const handleChangeAnswerCount = (\n article: number,\n newAnswerCount: number,\n answerCount: number\n ) => {\n if (!exam) return\n if (newAnswerCount === answerCount) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n if (answerCount < newAnswerCount) {\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n numberOfAnswers: newAnswerCount\n }))\n ]\n })\n } else {\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n numberOfAnswers: newAnswerCount,\n correctAnswers: q.correctAnswers?.filter(\n i => i <= newAnswerCount\n )\n }))\n ]\n })\n }\n }\n\n const handleChangeCorrectAnswers = (\n article: number,\n index: number,\n answer: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n const selectedQuestion = questions[index]\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.slice(0, index),\n {\n ...selectedQuestion,\n correctAnswers: [answer]\n },\n ...questions.slice(index + 1)\n ]\n })\n }\n\n const handleChangeScoreAnswer = (\n article: number,\n index: number,\n score: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n const selectedQuestion = questions[index]\n if (score === selectedQuestion.score) return\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.slice(0, index),\n {\n ...selectedQuestion,\n score\n },\n ...questions.slice(index + 1)\n ]\n })\n }\n\n const handleChangeDuration = (value: any) => {\n if (!exam) return\n onChangeExam({\n ...exam,\n duration: value?.value\n })\n }\n\n const handleChangeTitle = (e: ChangeEvent<HTMLInputElement>) => {\n if (!exam) return\n onChangeExam({\n ...exam,\n title: e.target.value\n })\n }\n\n const handleAddArticle = () => {\n if (!exam) return\n const maxArticle = _.maxBy(exam.questions, \"article\")?.article || 0\n const maxOrder = _.maxBy(exam.questions, \"questionOrder\")?.questionOrder || 0\n onChangeExam({\n ...exam,\n questions: [\n ...exam.questions,\n {\n article: maxArticle + 1,\n correctAnswers: [1],\n numberOfAnswers: DEFAULT_ANSWER_COUNT,\n score: DEFAULT_SCORE,\n questionOrder: maxOrder + 1\n }\n ]\n })\n }\n\n const examGroupByArticle: ArticleGroup[] = useMemo(() => {\n if (!exam) return []\n const articles = []\n const groupedArticle = _.groupBy(exam.questions, \"article\")\n for (const key in groupedArticle) {\n if (Object.prototype.hasOwnProperty.call(groupedArticle, key)) {\n const questions: Question[] = groupedArticle[key]\n articles.push({\n article: +key,\n categoryId: questions.find(i => !!i.categoryId)?.categoryId,\n answerCount:\n _.maxBy(questions, \"numberOfAnswers\")\n ?.numberOfAnswers || DEFAULT_ANSWER_COUNT,\n questionCount: questions.length,\n questions\n })\n }\n }\n return _.sortBy(articles, \"article\")\n }, [JSON.stringify(exam)])\n \n const durationOptions = useMemo(() => {\n const options = DURATION_OPTIONS.map((i) => (\n {\n label: `${i}분`,\n value: i\n }\n ));\n if(!!exam.duration && exam.duration > DURATION_OPTIONS[DURATION_OPTIONS.length - 1]) return [...options, {\n label: `${exam.duration}분`,\n value: exam.duration\n }]\n return options\n }, [exam.duration])\n \n return {\n t,\n durationOptions,\n examGroupByArticle,\n handleAddArticle,\n handleChangeScoreAnswer,\n handleChangeTitle,\n handleChangeDuration,\n handleChangeCorrectAnswers,\n handleChangeAnswerCount,\n handleChangeQuestionCount,\n handleChangeCategory\n }\n}\n\nexport default useExamDetailView\n","import React from 'react';\nimport { FC } from \"react\"\nimport { ExamDetailViewProps } from '../configs/interfaces';\nimport CustomSelect from '../../../components/Selects/CustomSelect';\nimport ArticleGroupView from '../components/ArticleGroupView';\nimport { FaPlusCircle } from 'react-icons/fa';\nimport styles from \"../styles/styles.module.scss\"\nimport useExamDetailView from '../hooks/useExamDetailView';\nimport { ArticleGroup } from '../configs/types';\nimport stylesGlobal from '../../../styles.module.scss';\n\nconst ExamDetailView: FC<ExamDetailViewProps> = ({\n className = \"\",\n categoryOptions,\n exam,\n isUsingMui = true,\n isDisabled,\n onChangeExam\n}) => {\n const {\n t,\n durationOptions,\n examGroupByArticle,\n handleAddArticle,\n handleChangeScoreAnswer,\n handleChangeTitle,\n handleChangeDuration,\n handleChangeCorrectAnswers,\n handleChangeAnswerCount,\n handleChangeQuestionCount,\n handleChangeCategory\n } = useExamDetailView({\n exam,\n onChangeExam\n })\n\n return <div className={`${className} ${stylesGlobal[\"custom-row\"]}`}>\n <div className={stylesGlobal[\"custom-col-5\"]}>\n <div className='mb-3'>\n <label className={`${stylesGlobal[\"form-label\"]} ${styles[\"question-label\"]}`} htmlFor=\"title\">{t(\"title\")}</label>\n {/* <Input disabled={isDisabled} className={`w-100 rounded-2 ${styles[\"question-input\"]}`} value={exam.title} id=\"title\" placeholder={t(\"enter_title\")} onChange={handleChangeTitle}/> */}\n <input disabled={isDisabled} className={`${stylesGlobal[\"form-control\"]}`} value={exam.title} id=\"title\" placeholder={t(\"enter_title\")} onChange={handleChangeTitle}/>\n </div>\n </div>\n <div className={stylesGlobal[\"custom-col-3\"]}>\n <div className='mb-3'>\n <label className={`${stylesGlobal[\"form-label\"]} ${styles[\"question-label\"]}`} htmlFor=\"duration\">{t(\"duration\")}</label>\n <CustomSelect\n inputId=\"duration\"\n value={exam.duration}\n options={durationOptions}\n onChange={handleChangeDuration}\n isDisabled={isDisabled}\n />\n </div>\n </div>\n {/* <div className={stylesGlobal[\"custom-col-4\"]}></div> */}\n {\n examGroupByArticle.map((i: ArticleGroup, index: number) => (\n <div key={i.article} className={`${stylesGlobal[\"custom-col-12\"]} ${index === 0 && !isUsingMui ? \"mt-3\" : \"\"} ${!isUsingMui ? \"mb-4\" : \"\"}`}>\n <ArticleGroupView\n {...i}\n categoryOptions={categoryOptions}\n isActive={index === examGroupByArticle.length - 1}\n onChangeQuestionCount={handleChangeQuestionCount}\n onChangeCategory={handleChangeCategory}\n onChangeAnswerCount={handleChangeAnswerCount}\n onChangeCorrectAnswers={handleChangeCorrectAnswers}\n onChangeScoreAnswer={handleChangeScoreAnswer}\n isDisabled={isDisabled}\n />\n </div>\n ))\n }\n <div className={stylesGlobal[\"custom-col-12\"]}>\n {/* <Button disabled={isDisabled} className={`w-100 d-flex justify-content-center align-items-center ${styles[\"question-btn\"]}`} color=\"primary\" outline onClick={handleAddArticle}>\n <FaPlusCircle className=\"me-2\"/>\n 문항 추가하기\n </Button> */}\n <button disabled={isDisabled} className={`${stylesGlobal[\"btn-outline-primary\"]} w-100 d-flex justify-content-center align-items-center ${styles[\"question-btn\"]} mt-3`} onClick={handleAddArticle}>\n <FaPlusCircle className=\"me-2\"/>\n 문항 추가하기\n </button>\n </div>\n </div>\n}\n\nexport default ExamDetailView","import { useSelector } from \"react-redux\"\nimport { getAcademyDomain } from \"../constants\"\nimport { useEffect } from \"react\"\n\nconst useAutoAcademyDomain = (\n logout: Function,\n history: any,\n superUrls: string[],\n homeUrl: string,\n homeAcademyUrl: string\n) => {\n const searchParams = new URLSearchParams(window.location.search)\n const user = useSelector((state: any) => state?.common?.user)\n\n const initialAcademySearchParam = () => {\n const paramAcademyDomain = searchParams.get(\"domain\")\n const domain = getAcademyDomain()\n const pathname = window.location.pathname.toLowerCase()\n if (!user) return\n const { academyDomain } = user\n if (!academyDomain) {\n if (!superUrls.some(i => pathname.startsWith(i))) {\n pushTo({\n pathname: homeUrl,\n search: \"\"\n })\n }\n if(domain)\n {\n searchParams.append(\"domain\", domain)\n pushTo({\n pathname: homeUrl,\n search: \"\"\n })\n }\n } else {\n if (superUrls.some(i => pathname.startsWith(i))) {\n pushTo({\n pathname: homeAcademyUrl,\n search: \"\"\n })\n }\n if (\n paramAcademyDomain &&\n academyDomain.trim().toLocaleLowerCase() !=\n paramAcademyDomain?.trim().toLocaleLowerCase()\n ) {\n logout()\n }\n if (!paramAcademyDomain && academyDomain) {\n searchParams.append(\"domain\", academyDomain)\n pushTo({\n ...window.location,\n search: searchParams.toString()\n })\n }\n }\n }\n\n const pushTo = (data: any) => {\n if (history.push) history.push(data)\n else history(data)\n }\n\n useEffect(() => {\n initialAcademySearchParam()\n }, [window.location.pathname, user?.academyDomain])\n}\n\nexport default useAutoAcademyDomain\n","import { createBrowserHistory } from \"history\"\nconst historyCore = createBrowserHistory()\n\nimport { setLoading, setAlert, setUser, setLanguage, setReFetchUserAcademies } from \"./redux/commons/action\"\nimport { BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, PUSHER_CONFIG, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, getAcademyDomain, AcademyHeaders } from \"./utils/constants\"\nimport utcToLocalTime from \"./utils/utcToLocalTime\"\nimport Login from \"./containers/Login/views/Login\"\nimport store from \"./store\"\n\nimport NotFound from \"./components/Commons/NotFound\"\nimport Loading from \"./components/Loading/Loading\"\nimport LayoutContext from \"./layouts/LayoutContext\"\nimport { api, apiUpload } from \"./configs/api\"\nimport { ConfirmDialog } from \"./components/Dialogs/ConfirmDialog\"\nimport CommonDialog from \"./components/Dialogs/CommonDialog\"\nimport CommonAlert from \"./components/Alerts/CommonAlert\"\nimport formatTime from \"./utils/formatTime\"\nimport diffFromNow from \"./utils/diffFromNow\"\nimport CustomPagination from \"./components/Paginations/CustomPagination\"\nimport useGoogleSignOut from \"./utils/hooks/useGoogleSignOut\"\nimport { ExamEvent } from \"./utils/types\"\nimport i18n from \"./i18n\"\nimport TheLanguageDropdown from \"./layouts/TheLanguageDropdown\"\nimport TheAcademyDropdown from \"./layouts/TheAcademyDropdown\"\nimport { useTranslation, I18nextProvider } from \"react-i18next\"\nimport minutesToTimeSpan from \"./utils/minutesToTimeSpan\"\nimport toISOString from \"./utils/toISOString\"\nimport canAccessRoute from \"./utils/canAccessRoute\"\nimport CustomSelect from \"./components/Selects/CustomSelect\"\nimport getAccessToken from \"./utils/getAccessToken\"\nimport ChatContainer, { IChatContainerProps } from \"./components/Chats/ChatContainer\"\nimport { ChatItemType, IChatItemProps } from \"./components/Chats/ChatItem\"\nimport { IChatHeaderProps } from \"./components/Chats/ChatHeader\"\nimport { IInputChatProps } from \"./components/Chats/InputChat\"\nimport useChatContainer from \"./components/Chats/hooks/useChatContainer\"\nimport { ConversationResponse } from \"./components/Chats/configs/types\"\nimport usePusherConversation from \"./components/Chats/hooks/usePusherConversation\"\nimport { ToastContainer, toast } from \"react-toastify\"\nimport { Role } from \"./containers/Login/configs/constants\"\nimport useLanguage from \"./utils/hooks/useLanguage\"\nimport { LANGUAGES } from \"./configs/constants\"\nimport CustomCreatable from \"./components/Selects/CustomCreatable\"\nimport moment from \"moment\"\nimport CustomAsyncSelect from \"./components/Selects/CustomAsyncSelect\"\nimport ExamDetailView from \"./containers/Exams/views/ExamDetailView\"\nimport { ExamDetailViewProps } from \"./containers/Exams/configs/interfaces\"\nimport { Exam, Question, ArticleGroup } from \"./containers/Exams/configs/types\"\nimport { useAutoAcademyDomain, useLogin } from \"./utils/hooks\"\nimport { LoginAccessTokenRequest, LoginRequest } from \"./utils/types/login\"\nimport useSwitchAcademy from \"./utils/hooks/useSwitchAcademy\"\nimport * as ChatTypes from \"./components/Chats/configs/types\"\n\nexport {\n diffFromNow,\n formatTime,\n utcToLocalTime,\n setLoading,\n BASE_URL,\n SUPER_ADMIN_BASE_URL,\n ACCESS_TOKEN,\n Login,\n store,\n historyCore,\n setAlert,\n setUser,\n Loading,\n NotFound,\n LayoutContext,\n api,\n apiUpload,\n ConfirmDialog,\n CommonDialog,\n CommonAlert,\n CustomPagination,\n useGoogleSignOut,\n PUSHER_CONFIG,\n ExamEvent,\n EXAM_CHANNEL,\n EXAM_STUDENT_CHANNEL,\n // language\n setLanguage,\n i18n,\n TheLanguageDropdown,\n TheAcademyDropdown,\n useTranslation,\n I18nextProvider,\n DATE_MIN_VALUE,\n DATE_TIME_MIN_VALUE,\n ACADEMY_DOMAIN,\n minutesToTimeSpan,\n toISOString,\n canAccessRoute,\n CustomSelect,\n CustomAsyncSelect,\n getAccessToken,\n ChatContainer,\n IChatContainerProps,\n IChatItemProps,\n IChatHeaderProps,\n IInputChatProps,\n ChatItemType,\n useChatContainer,\n ConversationResponse,\n usePusherConversation,\n ToastContainer,\n toast,\n Role,\n useLanguage,\n useSwitchAcademy,\n LANGUAGES,\n CustomCreatable,\n moment,\n ExamDetailView,\n ExamDetailViewProps,\n Exam,\n Question,\n ArticleGroup,\n getAcademyDomain,\n useLogin,\n useAutoAcademyDomain,\n LoginAccessTokenRequest,\n LoginRequest,\n setReFetchUserAcademies,\n ChatTypes,\n AcademyHeaders\n}\n"],"names":["setLoading","createAction","setAlert","setUser","setLanguage","reset","setReFetchUserAcademies","GOOGLE_RECAPTCHA_KEY","process","env","REACT_APP_GOOGLE_RECAPTCHA_KEY","GOOGLE_CLIENT_ID","REACT_APP_GOOGLE_CLIENT_ID","GOOGLE_RECAPTCHA_ID","REACT_APP_GOOGLE_RECAPTCHA_ID","GOOGLE_RECAPTCHA_SECRET","REACT_APP_GOOGLE_RECAPTCHA_SECRET","BASE_URL","REACT_APP_BASE_URL","SUPER_ADMIN_BASE_URL","REACT_APP_SUPER_ADMIN_BASE_URL","PUSHER_CONFIG","cluster","REACT_APP_PUSHER_CONFIG_CLUSTER","key","REACT_APP_PUSHER_CONFIG_KEY","ACCESS_TOKEN","ACADEMY_DOMAIN","AcademyHeaders","DATE_MIN_VALUE","DATE_TIME_MIN_VALUE","EXAM_CHANNEL","EXAM_STUDENT_CHANNEL","getAccessToken","localStorage","getItem","err","getAcademyDomain","encodeParams","params","Object","keys","filter","map","Array","isArray","i","encodeURIComponent","join","time","FORMAT","moment","utc","local","format","_unused","AuthenticationMessage","Role","api","axios","create","baseURL","timeout","headers","paramsSerializer","apiUpload","forEach","interceptors","request","use","config","token","searchParams","URLSearchParams","window","location","search","paramDomain","get","academyDomainStorage","academyDomain","Authorization","setItem","error","Promise","reject","response","console","log","_error$response","status","_error$response2","removeItem","href","AUTH_URL","AUTH_SUPER_ADMIN_URL","getInfo","getSuperAdminInfoFromWeb","apiLoginGoogle","body","post","apiLoginGoogleSuperAdmin","apiLoginWithAccessToken","domain","_headers","useGoogleSignOut","props","dispatch","useDispatch","onLogoutSuccess","onFailure","handleLogoutSuccess","handleLogoutFailure","_useGoogleLogout","useGoogleLogout","clientId","signOut","loaded","handleSignOut","isRemoveDomainStorage","ERROR_MESSAGE","useLogin","onNavigate","homeAcademyUrl","homeUrl","registerUrl","_useTranslation","useTranslation","t","_useGoogleSignOut","handleLoginGoogle","data","isLogout","isStudent","role","Student","resolve","handleLogin","then","loginResponse","result","_temp","e","handleLoginAccessToken","_temp2","apiLogin","_temp3","_catch","isFirstLogin","user","isAcademy","needToRegister","redirectUrl","redirectLoginUser","_error$response$data","_error$response2$data","_error$response3","message","undefined","title","alert","_temp4","_extends","schema","yup","email","required","password","rememberMe","BlockLogin","_ref","defaultInfo","_ref$role","_useLogin","onSuccessGoogle","res","accessToken","_res$profileObj","profileObj","imageUrl","name","tokenObj","id_token","googleId","infoLogin","fullName","onFailureGoogle","React","Formik","initialValues","validationSchema","onSubmit","formikProps","handleSubmit","Row","className","styles","Col","Form","src","GoogleLogin","buttonText","onSuccess","cookiePolicy","isSignedIn","captcha","_useState","useState","openLogin","setOpenLogin","_useState2","infoUser","setInfoUser","toggle","useCallback","_useState3","isShowPassword","setIsShowPassword","useEffect","start","gapi","client","init","scope","load","Login","rest","_objectWithoutPropertiesLoose","_excluded","lg","md","xs","this","global","initialState","isLoading","type","isReFetchUserAcademies","commonReducer","createReducer","builder","addCase","state","action","payload","language","_state","_action","rootReducer","combineReducers","common","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","concat","logger","TITLE","NotFound","document","loadingStyle","minWidth","minHeight","position","top","left","zIndex","backgroundColor","display","justifyContent","alignItems","Loading","useSelector","style","LayoutContext","children","_state$common","roles","resetAuth","checkRoleUser","includes","JSON","stringify","loadInfo","info","Admin","Fragment","ConfirmDialog","open","text","_ref$cancelText","cancelText","_ref$okText","okText","isDelete","_ref$title","onConfirm","confirmText","confirmTextValue","setConfirmTextValue","handleConfirm","handleChangeConfirmText","target","value","handlePaste","preventDefault","isValid","trim","Modal","isOpen","centered","ModalHeader","ModalBody","Input","onChange","placeholder","onPaste","invalid","valid","ModalFooter","Button","color","onClick","disabled","CommonDialog","_ref$size","size","onClose","backdrop","CommonAlert","useRef","onDismiss","current","clearTimeout","_alert$message","length","setTimeout","_alert$message2","Alert","ORIGINAL_FORMAT","unitOfTime","targetTime","now","diff","CustomPagination","currentPage","totalPage","onChangePage","Pagination","PaginationItem","PaginationLink","previous","active","page","next","ExamEvent","i18n","initReactI18next","lng","fallbackLng","interpolation","escapeValue","resources","ko","translation","lang_ko","en","lang_en","DEFAULT_LANGUAGE_INDEX","LANGUAGES","code","shortName","nativeName","image","momentLangCode","useLanguage","defaultLanguage","navigator","dropdownOpen","setDropdownOpen","setItemLanguage","prevState","changeLanguageApp","lang","find","changeLanguage","locale","currentLanguage","useMemo","currentLang","TheLanguageDropdown","_useLanguage","Dropdown","DropdownToggle","textTransform","IoChevronDown","fontSize","marginLeft","marginTop","DropdownMenu","index","DropdownItem","width","marginRight","ACADEMY_URL","SUPER_ADMIN_ACADEMY_URL","getAcademyList","getUserAcademies","switchAcademy","academyId","useSwitchAcademy","navigate","toggleDropdown","academyList","setAcademyList","_state$common2","getAcademies","isSuperAdminUser","isSuperAdminRole","items","handleSwitchAcademy","toast","tile","selectedAcademy","id","requestBody","_temp5","_user$academyDomain","toLowerCase","TheAcademyDropdown","_useSwitchAcademy","firstLetter","_selectedAcademy$name","_selectedAcademy$name2","charAt","toUpperCase","alt","fontWeight","GoArrowSwitch","academy","h","Math","floor","m","toString","padStart","toISOString","canAccess","userRoles","componentRoles","intersects","DropdownIndicator","components","FaCaretDown","CustomOption","Option","label","customStyles","control","baseStyles","borderColor","isFocused","input","_","singleValue","CustomSelect","isDefault","defaultValue","options","isDisabled","scrollBottom","isMulti","Select","menuPlacement","IndicatorSeparator","iconPersonNoActive","_ref$width","_ref$height","height","viewBox","fill","xmlns","d","ChatRightItem","content","createdAt","sender","showTimestamp","showName","contentType","Typography","lineHeight","textAlign","utcToLocalTime","Grid","item","padding","Box","gap","flexDirection","IconPersonNoActive","backgroundRepeat","backgroundSize","objectFit","ChatLeftItem","ChatItemType","ChatItem","isMe","MessageSortBy","OrderBy","StudentSortBy","StudentOrderBy","MessageAction","MessageSourceType","MessageStatus","ExamStatus","Roles","MESSAGE_DEFAULT_FILTER","pageSize","textSearch","sortColumnDirection","DESC","sortColumnName","CreatedAt","ChatList","messages","_ref$messages","onReTrySendMessage","listItemRef","filterMessage","prevTime","prevSender","currentTime","Date","getTime","_message$sender","_message$sender2","ref","iconSendMessage","InputChat","inputRef","onChangeInput","isCompleted","handleUploadImage","selectedFile","handleDeleteSelectedImage","fileInputRef","handleInputChange","event","handleKeyPressEnter","handleSelectedFile","files","border","borderRadius","margin","right","cursor","IoCloseOutline","onKeyPress","variant","component","FaImage","hidden","accept","onChangeCapture","sx","bgcolor","IconSendMessenger","iconChecked","CONVERSATION_URL","apiAddMessage","conversationId","getMessagesByConversation","completeConversation","apiUploadFile","file","useDialog","openConfirmDialog","setOpenConfirmDialog","toggleConfirmDialog","success","ChatHeader","examTitle","questionOrder","durationExam","teacherName","_useDialog","filterDurationExam","duration","renderHeader","borderTop","borderBottom","hours","minutes","seconds","number","IconChecked","container","paddingLeft","paddingTop","paddingBottom","ChatContainer","chatHeaderProps","chatListProps","inputProps","_ref$scrollOffset","scrollOffset","_ref$isLoading","isScrollToEnd","onReachTop","onReachBottom","onEndScrollToEnd","listRef","scrollRef","addEventTimeout","handleScroll","scrollTop","scrollHeight","clientHeight","isSuccessLoad","_listRef$current","removeEventListener","_chatListProps$messag","_listItemRef$current","_listItemRef$current$","lastElementChild","scrollIntoView","behavior","_listRef$current2","addEventListener","_listRef$current3","_listRef$current4","overflowY","background","CircularProgress","useMessageList","setMessages","messageFilter","setMessageFilter","getMessageList","prev","_res$data$items","reverse","totalItems","totalPages","handleLoadMore","_exit","_res$data$items2","dataFilter","Set","from","resetMessages","useChatContainer","conversation","student","pusher","channel","channelName","loadingRef","_state$common2$user","selectedConversation","setSelectedConversation","setSelectedFile","setMessage","_useState4","setScrollToEnd","_useMessageList","isLoadingMessages","handleToggleScrollToEnd","handleAddMessage","handleChangeInput","_message$content","_temp6","_finally","formData","FormData","append","_res$data","url","handleNewMessageSent","handleCompletedConversation","parse","handleLoadMoreMessages","cleanupPusher","_pusher$current","unbind","unsubscribe","Pusher","authEndpoint","auth","subscribe","bind","getConversation","getMessageConversation","handleConversationChange","messageList","results","_i$sender","_selectedConversation","question","usePusherConversation","onNewMessageConversation","onReadMessageConversation","userId","handleNewMessageConversationCreated","handleReadMessageConversation","totalUnReadMessage","CustomCreatable","CreatableSelect","isClearable","CustomAsyncSelect","AsyncSelect","DURATION_OPTIONS","SCORE_OPTIONS","QUESTION_OPTIONS","ANSWER_OPTIONS","DEFAULT_SCORE","DEFAULT_ANSWER_COUNT","QuestionView","answerCount","onChangeCorrectAnswers","onChangeScoreAnswer","scoreOptions","FormGroup","Label","htmlFor","checked","correctAnswers","score","ArticleGroupView","categoryOptions","article","questions","questionCount","categoryId","isActive","onChangeQuestionCount","onChangeCategory","onChangeAnswerCount","handleChangeQuestionCount","handleChangeCategory","handleChangeAnswerCount","handleChangeCorrectAnswers","handleChangeScoreAnswer","questionOptions","answerOptions","PiDotsNineLight","inputId","q","useExamDetailView","exam","onChangeExam","examQuestions","prevQuestions","nextQuestions","lastOrder","additionalQuestions","_questions$","numberOfAnswers","newQuestions","remainQuestions","slice","otherQuestions","newAnswerCount","_q$correctAnswers","answer","selectedQuestion","handleChangeDuration","handleChangeTitle","handleAddArticle","maxArticle","_$maxBy","maxBy","maxOrder","_$maxBy2","examGroupByArticle","articles","groupedArticle","groupBy","prototype","hasOwnProperty","call","_questions$find","_$maxBy3","push","sortBy","durationOptions","ExamDetailView","_ref$className","_ref$isUsingMui","isUsingMui","_useExamDetailView","stylesGlobal","FaPlusCircle","useAutoAcademyDomain","logout","history","superUrls","initialAcademySearchParam","paramAcademyDomain","pathname","some","startsWith","pushTo","toLocaleLowerCase","historyCore","createBrowserHistory"],"mappings":"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CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,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"}
|
1
|
+
{"version":3,"file":"index.modern.js","sources":["../src/redux/commons/action.ts","../src/utils/constants.ts","../src/utils/utcToLocalTime.ts","../src/containers/Login/configs/constants.ts","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/configs/api.ts","../src/services/accountService.ts","../src/utils/hooks/useGoogleSignOut.ts","../src/utils/hooks/useLogin.ts","../src/containers/Login/views/block/BlockLogin.tsx","../src/utils/getAccessToken.ts","../src/containers/Login/hooks/useLogin.ts","../src/containers/Login/views/Login.tsx","../node_modules/redux-logger/dist/redux-logger.js","../node_modules/redux/dist/redux.legacy-esm.js","../src/redux/commons/reducer.ts","../src/rootReducer.ts","../src/store.ts","../src/components/Commons/NotFound.tsx","../src/components/Loading/Loading.tsx","../src/layouts/LayoutContext.tsx","../src/components/Dialogs/ConfirmDialog.tsx","../src/components/Dialogs/CommonDialog.tsx","../src/components/Alerts/CommonAlert.tsx","../src/utils/formatTime.ts","../src/utils/diffFromNow.ts","../src/components/Paginations/CustomPagination.tsx","../src/utils/types.ts","../src/i18n.ts","../src/configs/constants.ts","../src/utils/hooks/useLanguage.ts","../src/layouts/TheLanguageDropdown.tsx","../src/services/academyService.ts","../src/utils/hooks/useSwitchAcademy.ts","../src/layouts/TheAcademyDropdown.tsx","../src/utils/minutesToTimeSpan.ts","../src/utils/toISOString.ts","../src/utils/canAccessRoute.ts","../src/components/Selects/CustomSelect.tsx","../src/assets/iconPersonNoActive.tsx","../src/components/Chats/ChatRightItem.tsx","../src/components/Chats/ChatLeftItem.tsx","../src/components/Chats/ChatItem.tsx","../src/components/Chats/configs/types.ts","../src/components/Chats/configs/constants.ts","../src/components/Chats/ChatList.tsx","../src/assets/iconSendMessenger.tsx","../src/components/Chats/InputChat.tsx","../src/assets/iconChecked.tsx","../src/components/Chats/apiClient/conversationService.ts","../src/components/Chats/hooks/useDialog.ts","../src/components/Chats/ChatHeader.tsx","../src/components/Chats/ChatContainer.tsx","../src/components/Chats/hooks/useMessageList.ts","../src/components/Chats/hooks/useChatContainer.ts","../src/components/Chats/hooks/usePusherConversation.ts","../src/components/Selects/CustomCreatable.tsx","../src/components/Selects/CustomAsyncSelect.tsx","../src/containers/Exams/configs/constants.ts","../src/containers/Exams/components/QuestionView.tsx","../src/containers/Exams/components/ArticleGroupView.tsx","../src/containers/Exams/hooks/useExamDetailView.ts","../src/containers/Exams/views/ExamDetailView.tsx","../src/utils/hooks/useAutoAcademyDomain.ts","../src/index.tsx"],"sourcesContent":["import { createAction } from \"@reduxjs/toolkit\"\n\nexport const setLoading = createAction<boolean | undefined>(\"common/setLoading\")\n\nexport const setAlert = createAction<any>(\"common/setAlert\")\n\nexport const setUser = createAction<any>(\"common/setUser\")\n\nexport const setLanguage = createAction<string>(\"common/setLanguage\")\n\nexport const reset = createAction<undefined>(\"common/reset\")\n\nexport const setReFetchUserAcademies = createAction<boolean>(\"common/setReFetchUserAcademies\")\n","// env\nexport const GOOGLE_RECAPTCHA_KEY = process.env.REACT_APP_GOOGLE_RECAPTCHA_KEY || \"\"\n\nexport const GOOGLE_CLIENT_ID = process.env.REACT_APP_GOOGLE_CLIENT_ID || \"\"\n\nexport const GOOGLE_RECAPTCHA_ID = process.env.REACT_APP_GOOGLE_RECAPTCHA_ID || \"\";\n\nexport const GOOGLE_RECAPTCHA_SECRET = process.env.REACT_APP_GOOGLE_RECAPTCHA_SECRET || \"\";\n\nexport const BASE_URL = process.env.REACT_APP_BASE_URL || \"\"\nexport const SUPER_ADMIN_BASE_URL = process.env.REACT_APP_SUPER_ADMIN_BASE_URL || \"\"\n\nexport const PUSHER_CONFIG = {\n cluster: process.env.REACT_APP_PUSHER_CONFIG_CLUSTER || \"\",\n key: process.env.REACT_APP_PUSHER_CONFIG_KEY || \"\"\n}\n// end env\n\nexport const ACCESS_TOKEN = \"ACCESS_TOKEN\"\nexport const ACADEMY_DOMAIN = \"ACADEMY_DOMAIN\"\nexport const AcademyHeaders = \"Academy-Headers\"\n\nexport const DATE_MIN_VALUE = \"0001-01-01T00:00:00+00:00\"\nexport const DATE_TIME_MIN_VALUE = \"0001-01-01T00:00:00\"\n\nexport const EXAM_CHANNEL = \"presence-exam-channel\"\nexport const EXAM_STUDENT_CHANNEL = \"EXAM-CHANNEL-{examCode}-STUDENT-{studentId}\"\n\n\nexport const getAccessToken = () => {\n try {\n return localStorage.getItem(ACCESS_TOKEN);\n } catch (err) {\n return null;\n }\n}\n\nexport const getAcademyDomain = () => {\n try {\n return localStorage.getItem(ACADEMY_DOMAIN);\n } catch (err) {\n return null;\n }\n}\n\nexport const encodeParams = (params: any) => {\n return Object.keys(params)\n .filter(key => params[key] || params[key] === 0 || params[key] === false)\n .map(key => {\n if (Array.isArray(params[key])) {\n return params[key].map((i: any) => `${encodeURIComponent(key)}=${encodeURIComponent(i)}`).join('&')\n }\n return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`\n }).join('&')\n}\n","import moment from \"moment\"\nimport { DATE_MIN_VALUE, DATE_TIME_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time?: string, FORMAT?: string) => {\n if (time === DATE_MIN_VALUE || time === DATE_TIME_MIN_VALUE) return \"\"\n try {\n return moment.utc(time).local().format(FORMAT || \"yyyy-MM-DD\");\n } catch {\n return \"\"\n }\n}\n","export enum AuthenticationMessage {\n NotAllowedToRegister = \"NotAllowedToRegister\",\n InvalidGoogleToken = \"InvalidGoogleToken\"\n}\n\nexport enum Role {\n Student = \"Student\",\n Teacher = \"Teacher\",\n Admin = \"Admin\"\n}","// 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 axios, { AxiosInstance } from \"axios\"\nimport { ACCESS_TOKEN, BASE_URL, getAccessToken, encodeParams, getAcademyDomain, AcademyHeaders } from \"../utils/constants\"\nimport moment from \"moment\"\n\nexport const api: AxiosInstance = axios.create({\n baseURL: BASE_URL,\n timeout: 0,\n headers: {\n \"Content-Type\": \"application/json\"\n },\n paramsSerializer: params => {\n return encodeParams(params)\n }\n})\n\nexport const apiUpload: AxiosInstance = axios.create({\n baseURL: BASE_URL,\n timeout: 60000,\n headers: {\n \"Content-Type\": \"multipart/form-data\"\n }\n})\n;[api, apiUpload].forEach(i =>\n i.interceptors.request.use(\n (config: any) => {\n const token = getAccessToken()\n const searchParams = new URLSearchParams(window.location.search);\n const paramDomain = searchParams.get('domain');\n const academyDomainStorage = getAcademyDomain()\n const academyDomain = paramDomain || academyDomainStorage\n if (token) {\n config.headers.Authorization = `Bearer ${token}`\n localStorage.setItem(\"LAST_TIME_REQUETST\", moment().utc().format(\"YYYY-MM-DD HH:mm:ss\"))\n }\n if(academyDomain && !config.headers[AcademyHeaders])\n {\n config.headers[AcademyHeaders] = `${academyDomain}`\n }\n return config\n },\n (error: any) => Promise.reject(error)\n )\n)\n;[api, apiUpload].forEach(i =>\n i.interceptors.response.use(\n response => {\n return response\n },\n error => {\n console.log({ error })\n if (error.response?.status === 401 || error.response?.status == 403) {\n localStorage.removeItem(ACCESS_TOKEN)\n window.location.href = \"/login\"\n }\n return Promise.reject(error)\n }\n )\n)\n","import { api } from \"../configs/api\"\nimport { AcademyHeaders, BASE_URL, SUPER_ADMIN_BASE_URL } from \"../utils/constants\"\nimport { LoginAccessTokenRequest, LoginRequest } from \"../utils/types/login\"\n\nconst AUTH_URL = `${BASE_URL}/api/auth`\nconst AUTH_SUPER_ADMIN_URL = `${SUPER_ADMIN_BASE_URL}/api/auth`\n\nexport const getInfo = () => api.get(`${AUTH_URL}/info`)\nexport const getSuperAdminInfoFromWeb = () => api.get(`${AUTH_SUPER_ADMIN_URL}/info`)\n\nexport const apiLoginGoogle = (body: LoginRequest) => api.post(\n `${AUTH_URL}/login`, \n body\n)\n\nexport const apiLoginGoogleSuperAdmin = (body: LoginRequest) => api.post(\n `${AUTH_SUPER_ADMIN_URL}/login`, \n body\n)\n\nexport const apiLoginWithAccessToken = (body: LoginAccessTokenRequest, domain?: string) => api.post(\n `${AUTH_URL}/login/access-token`, \n body,\n {\n headers: {\n [AcademyHeaders]: domain\n }\n }\n)","import { useDispatch } from \"react-redux\";\nimport { ACADEMY_DOMAIN, ACCESS_TOKEN, GOOGLE_CLIENT_ID } from \"../constants\";\nimport { useGoogleLogout } from \"@leecheuk/react-google-login\"\nimport { reset } from \"../../redux/commons/action\";\n\ninterface Props{\n onLogoutSuccess?: () => void\n onFailure?: () => void\n onNavigate: Function\n}\nconst useGoogleSignOut = (props: Props) => {\n const dispatch = useDispatch()\n const {\n onLogoutSuccess,\n onFailure\n } = props\n\n\n const handleLogoutSuccess = () => {\n onLogoutSuccess?.()\n }\n\n const handleLogoutFailure = () => {\n onFailure?.()\n }\n\n const { signOut, loaded } = useGoogleLogout({\n clientId: GOOGLE_CLIENT_ID,\n onLogoutSuccess: handleLogoutSuccess,\n onFailure: handleLogoutFailure,\n })\n\n const handleSignOut = (isRemoveDomainStorage: boolean = false) => {\n localStorage.removeItem(\"USER_INFORMATION\")\n localStorage.removeItem(ACCESS_TOKEN);\n if(isRemoveDomainStorage){\n localStorage.removeItem(ACADEMY_DOMAIN);\n }\n try {\n signOut()\n } catch (error) {\n console.log({error});\n }\n dispatch(reset())\n window.location.href = \"/login\"\n }\n return {\n handleSignOut, loaded\n }\n}\n\nexport default useGoogleSignOut","import { useDispatch } from \"react-redux\"\nimport { setLoading, setUser } from \"../../redux/commons/action\"\nimport {\n apiLoginGoogle,\n apiLoginGoogleSuperAdmin,\n apiLoginWithAccessToken\n} from \"../../services/accountService\"\nimport {\n LoginAccessTokenRequest,\n LoginRequest,\n LoginResponse\n} from \"../types/login\"\nimport {\n Role\n} from \"../../containers/Login/configs/constants\"\nimport { ACADEMY_DOMAIN, ACCESS_TOKEN, getAcademyDomain } from \"../constants\"\nimport useGoogleSignOut from \"./useGoogleSignOut\"\nimport { useTranslation } from \"react-i18next\"\n\nconst ERROR_MESSAGE = \"request_login_fail\"\n\nconst useLogin = (\n onNavigate: (pathname: string) => void,\n homeAcademyUrl: string,\n homeUrl: string,\n registerUrl?: string\n) => {\n const dispatch = useDispatch()\n const { t } = useTranslation()\n const { handleSignOut } = useGoogleSignOut({ onNavigate })\n const searchParams = new URLSearchParams(window.location.search);\n const paramDomain = searchParams.get('domain');\n\n const handleLoginGoogle = async (data: LoginRequest, isLogout = true) => {\n const academyDomain = paramDomain || getAcademyDomain()\n const isStudent = data.role === Role.Student\n\n await handleLogin(\n () =>\n new Promise(async (resolve, reject) => {\n try {\n const loginResponse = !academyDomain\n ? await apiLoginGoogleSuperAdmin(data)\n : await apiLoginGoogle(data)\n const result: LoginResponse = loginResponse.data\n resolve(result)\n } catch (error) {\n !!academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n reject(error)\n }\n }),\n isStudent,\n isLogout\n )\n }\n\n const handleLoginAccessToken = async (\n data: LoginAccessTokenRequest,\n isLogout: boolean = true,\n domain?: string\n ) => {\n const isStudent = data.role === Role.Student\n await handleLogin(\n () => {\n return new Promise(async (resolve, reject) => {\n try {\n const loginResponse = await apiLoginWithAccessToken(\n data,\n domain\n )\n const result: LoginResponse = loginResponse.data\n resolve(result)\n } catch (error) {\n reject(error)\n }\n })\n },\n isStudent,\n isLogout\n )\n }\n\n const handleLogin = async (\n apiLogin: () => Promise<LoginResponse>,\n isStudent: boolean,\n isLogout: boolean = true\n ) => {\n dispatch(setLoading(true))\n try {\n const loginResponse = await apiLogin()\n const { isFirstLogin, token, user } = loginResponse\n const isAcademy = !!user?.academyDomain\n const needToRegister = isStudent && isFirstLogin && isAcademy\n\n const redirectUrl = needToRegister\n ? registerUrl\n : isAcademy\n ? homeAcademyUrl\n : homeUrl\n\n redirectLoginUser(user, token, redirectUrl)\n } catch (error) {\n let message = undefined\n\n message = t(\n error?.response?.data?.message ||\n error?.response?.data?.title ||\n error?.response?.data ||\n ERROR_MESSAGE\n )\n message && alert(message)\n isLogout && handleSignOut()\n }\n dispatch(setLoading(false))\n }\n\n const redirectLoginUser = (\n data: any,\n token: string,\n redirectUrl?: string\n ) => {\n localStorage.setItem(ACCESS_TOKEN, token)\n !data.academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n !!data.academyDomain &&\n localStorage.setItem(ACADEMY_DOMAIN, data.academyDomain)\n dispatch(\n setUser({\n ...data\n })\n )\n if (redirectUrl) {\n onNavigate(redirectUrl)\n }\n }\n\n return {\n handleLoginGoogle,\n handleLoginAccessToken,\n redirectLoginUser\n }\n}\n\nexport default useLogin\n","import React, { FC } from \"react\"\nimport { Col, Form, Row } from \"reactstrap\"\nimport styles from \"../../../../styles.module.scss\"\n\nimport { GOOGLE_CLIENT_ID } from \"../../../../utils/constants\"\nimport { Formik } from \"formik\"\nimport * as yup from \"yup\"\n// import { GoogleReCaptcha, useGoogleReCaptcha } from \"react-google-recaptcha-v3\"\nimport GoogleLogin from \"@leecheuk/react-google-login\"\nimport { INavigateProps } from \"../../../../utils/types\"\nimport { Role } from \"../../configs/constants\"\nimport useLogin from \"../../../../utils/hooks/useLogin\"\n\ninterface Props {\n defaultInfo?: any\n role?: Role\n homeAcademyUrl: string\n homeUrl: string\n registerUrl?: string\n}\n\nconst schema = yup.object({\n email: yup.string().email(\"Email is invalid\").required(\"Email is required\"),\n password: yup.string().required(\"Password is required\"),\n rememberMe: yup.boolean()\n})\n\nconst BlockLogin: FC<Props & INavigateProps> = ({\n defaultInfo,\n onNavigate,\n role = Role.Student,\n homeAcademyUrl,\n homeUrl,\n registerUrl\n}) => {\n // const { executeRecaptcha, } = useGoogleReCaptcha()\n const {\n handleLoginGoogle\n } = useLogin(onNavigate, homeAcademyUrl, homeUrl, registerUrl)\n // const clickHandler = useCallback(async () => {\n // if (!executeRecaptcha) {\n // return\n // }\n // try {\n // const result = await executeRecaptcha(\"login\")\n // return result\n // } catch (error) {\n // console.log({error});\n // }\n // return\n // }, [executeRecaptcha])\n\n // const handleVerify = useCallback(() => {}, [])\n const onSuccessGoogle = async (res: any) => {\n if (!!res?.accessToken) {\n let {\n email,\n imageUrl,\n name // fullName\n } = res.profileObj\n let accessToken = res.tokenObj.id_token\n let googleId = res.googleId\n\n const infoLogin = {\n imageUrl: imageUrl,\n fullName: name,\n email: email,\n token: accessToken,\n googleId: googleId,\n role\n }\n handleLoginGoogle(infoLogin)\n }\n }\n\n const onFailureGoogle = (err: any) => {\n console.log(\"error: login google\", err)\n onNavigate(\"/login\")\n }\n return (\n <Formik\n initialValues={defaultInfo}\n validationSchema={schema}\n onSubmit={() => {}}\n >\n {formikProps => {\n const { handleSubmit } = formikProps\n\n return (\n <Row className={`${styles[\"box-login\"]}`}>\n <Col className=\"p-0 d-flex justify-content-center\">\n <Form\n className={`${styles[\"block-login\"]}`}\n onSubmit={handleSubmit}\n >\n <div className={`${styles[\"block-form\"]}`}>\n <img\n src={\"/images/logo.jpeg\"}\n className={`${styles[\"img-login-rectangle\"]}`}\n />\n {/* <FormGroup>\n <GoogleReCaptcha\n action=\"login\"\n onVerify={handleVerify}\n />\n </FormGroup> */}\n <Col className=\"p-0 mt-1 mb-4\">\n <GoogleLogin\n clientId={GOOGLE_CLIENT_ID}\n buttonText=\"Google 계정으로 로그인\"\n onSuccess={onSuccessGoogle}\n onFailure={onFailureGoogle}\n cookiePolicy={\"single_host_origin\"}\n className={`${styles[\"btn-login-google\"]}`}\n isSignedIn={true}\n />\n </Col>\n </div>\n </Form>\n </Col>\n </Row>\n )\n }}\n </Formik>\n )\n}\n\nexport default BlockLogin\n","import { ACCESS_TOKEN } from \"./constants\"\n\nexport default () => {\n try {\n return localStorage.getItem(ACCESS_TOKEN);\n } catch (err) {\n return null;\n }\n}","import { useCallback, useEffect, useState } from \"react\"\nimport { gapi } from 'gapi-script';\nimport { GOOGLE_CLIENT_ID } from \"../../../utils/constants\"\nimport getAccessToken from \"../../../utils/getAccessToken\";\n\ntype LoginInfo = {\n email: string\n password: string\n captcha: string\n rememberMe: boolean\n}\n\nconst defaultInfo: LoginInfo = {\n email: \"\",\n password: \"\",\n captcha: \"\",\n rememberMe: false\n}\n\nconst useLogin = (onNavigate: Function) => {\n const [openLogin, setOpenLogin] = useState<boolean>(false)\n const [infoUser, setInfoUser] = useState<any>();\n const toggle = useCallback(() => {\n setOpenLogin(!openLogin)\n }, [openLogin])\n const [isShowPassword, setIsShowPassword] = useState<boolean>(false)\n\n useEffect(() => {\n const start = () => {\n gapi.client.init({\n clientId: GOOGLE_CLIENT_ID,\n scope: 'email',\n });\n }\n \n !!gapi && gapi.load('client:auth2', start);\n }, [gapi]);\n\n useEffect(() => {\n const token = getAccessToken()\n if(!!token) onNavigate(\"/\")\n }, [])\n\n return {\n defaultInfo,\n openLogin,\n toggle,\n isShowPassword,\n setIsShowPassword,\n infoUser,\n setInfoUser\n }\n}\n\nexport default useLogin\n","import React, { FC } from \"react\"\n// import { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\"\nimport { Col, Row } from \"reactstrap\"\n\n// import { GOOGLE_RECAPTCHA_ID } from \"../../../utils/constants\"\nimport BlockLogin from \"./block/BlockLogin\"\nimport useLogin from \"../hooks/useLogin\"\nimport styles from \"../../../styles.module.scss\"\nimport { INavigateProps } from \"../../../utils/types\"\nimport { Role } from \"../configs/constants\"\n\ninterface Props{\n role?: Role\n homeAcademyUrl: string\n homeUrl: string\n registerUrl?: string\n}\nconst Login: FC<INavigateProps & Props> = ({ onNavigate, ...rest }) => {\n const { defaultInfo } = useLogin(onNavigate)\n return (\n <div className={`${styles[\"login\"]} container-fluid font-family-lato`}>\n <Row className={\"h-100\"}>\n <Col\n lg={12}\n md={12}\n xs={12}\n className=\"d-flex justify-content-center h-100 align-items-center\"\n >\n {/* <GoogleReCaptchaProvider\n useRecaptchaNet\n reCaptchaKey={GOOGLE_RECAPTCHA_ID}\n scriptProps={{\n async: true,\n defer: true,\n appendTo: \"body\"\n }}\n > */}\n <BlockLogin\n defaultInfo={defaultInfo}\n onNavigate={onNavigate}\n {...rest}\n />\n {/* </GoogleReCaptchaProvider> */}\n </Col>\n </Row>\n </div>\n )\n}\n\nexport default Login\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","// src/utils/formatProdErrorMessage.ts\nfunction formatProdErrorMessage(code) {\n return `Minified Redux error #${code}; visit https://redux.js.org/Errors?code=${code} for the full message or use the non-minified dev environment for full errors. `;\n}\n\n// src/utils/symbol-observable.ts\nvar $$observable = /* @__PURE__ */ (() => typeof Symbol === \"function\" && Symbol.observable || \"@@observable\")();\nvar symbol_observable_default = $$observable;\n\n// src/utils/actionTypes.ts\nvar randomString = () => Math.random().toString(36).substring(7).split(\"\").join(\".\");\nvar ActionTypes = {\n INIT: `@@redux/INIT${/* @__PURE__ */ randomString()}`,\n REPLACE: `@@redux/REPLACE${/* @__PURE__ */ randomString()}`,\n PROBE_UNKNOWN_ACTION: () => `@@redux/PROBE_UNKNOWN_ACTION${randomString()}`\n};\nvar actionTypes_default = ActionTypes;\n\n// src/utils/isPlainObject.ts\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" || obj === null)\n return false;\n let proto = obj;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto || Object.getPrototypeOf(obj) === null;\n}\n\n// src/utils/kindOf.ts\nfunction miniKindOf(val) {\n if (val === void 0)\n return \"undefined\";\n if (val === null)\n return \"null\";\n const type = typeof val;\n switch (type) {\n case \"boolean\":\n case \"string\":\n case \"number\":\n case \"symbol\":\n case \"function\": {\n return type;\n }\n }\n if (Array.isArray(val))\n return \"array\";\n if (isDate(val))\n return \"date\";\n if (isError(val))\n return \"error\";\n const constructorName = ctorName(val);\n switch (constructorName) {\n case \"Symbol\":\n case \"Promise\":\n case \"WeakMap\":\n case \"WeakSet\":\n case \"Map\":\n case \"Set\":\n return constructorName;\n }\n return Object.prototype.toString.call(val).slice(8, -1).toLowerCase().replace(/\\s/g, \"\");\n}\nfunction ctorName(val) {\n return typeof val.constructor === \"function\" ? val.constructor.name : null;\n}\nfunction isError(val) {\n return val instanceof Error || typeof val.message === \"string\" && val.constructor && typeof val.constructor.stackTraceLimit === \"number\";\n}\nfunction isDate(val) {\n if (val instanceof Date)\n return true;\n return typeof val.toDateString === \"function\" && typeof val.getDate === \"function\" && typeof val.setDate === \"function\";\n}\nfunction kindOf(val) {\n let typeOfVal = typeof val;\n if (process.env.NODE_ENV !== \"production\") {\n typeOfVal = miniKindOf(val);\n }\n return typeOfVal;\n}\n\n// src/createStore.ts\nfunction createStore(reducer, preloadedState, enhancer) {\n if (typeof reducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : `Expected the root reducer to be a function. Instead, received: '${kindOf(reducer)}'`);\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"function\" || typeof enhancer === \"function\" && typeof arguments[3] === \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : \"It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.\");\n }\n if (typeof preloadedState === \"function\" && typeof enhancer === \"undefined\") {\n enhancer = preloadedState;\n preloadedState = void 0;\n }\n if (typeof enhancer !== \"undefined\") {\n if (typeof enhancer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : `Expected the enhancer to be a function. Instead, received: '${kindOf(enhancer)}'`);\n }\n return enhancer(createStore)(reducer, preloadedState);\n }\n let currentReducer = reducer;\n let currentState = preloadedState;\n let currentListeners = /* @__PURE__ */ new Map();\n let nextListeners = currentListeners;\n let listenerIdCounter = 0;\n let isDispatching = false;\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = /* @__PURE__ */ new Map();\n currentListeners.forEach((listener, key) => {\n nextListeners.set(key, listener);\n });\n }\n }\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : \"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 return currentState;\n }\n function subscribe(listener) {\n if (typeof listener !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : `Expected the listener to be a function. Instead, received: '${kindOf(listener)}'`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : \"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/store#subscribelistener for more details.\");\n }\n let isSubscribed = true;\n ensureCanMutateNextListeners();\n const listenerId = listenerIdCounter++;\n nextListeners.set(listenerId, listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : \"You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api/store#subscribelistener for more details.\");\n }\n isSubscribed = false;\n ensureCanMutateNextListeners();\n nextListeners.delete(listenerId);\n currentListeners = null;\n };\n }\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : `Actions must be plain objects. Instead, the actual type was: '${kindOf(action)}'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.`);\n }\n if (typeof action.type === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n if (typeof action.type !== \"string\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(17) : `Action \"type\" property must be a string. Instead, the actual type was: '${kindOf(action.type)}'. Value was: '${action.type}' (stringified)`);\n }\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : \"Reducers may not dispatch actions.\");\n }\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n const listeners = currentListeners = nextListeners;\n listeners.forEach((listener) => {\n listener();\n });\n return action;\n }\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== \"function\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : `Expected the nextReducer to be a function. Instead, received: '${kindOf(nextReducer)}`);\n }\n currentReducer = nextReducer;\n dispatch({\n type: actionTypes_default.REPLACE\n });\n }\n function observable() {\n const outerSubscribe = subscribe;\n return {\n /**\n * The minimal observable subscription method.\n * @param observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns 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(observer) {\n if (typeof observer !== \"object\" || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : `Expected the observer to be an object. Instead, received: '${kindOf(observer)}'`);\n }\n function observeState() {\n const observerAsObserver = observer;\n if (observerAsObserver.next) {\n observerAsObserver.next(getState());\n }\n }\n observeState();\n const unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe\n };\n },\n [symbol_observable_default]() {\n return this;\n }\n };\n }\n dispatch({\n type: actionTypes_default.INIT\n });\n const store = {\n dispatch,\n subscribe,\n getState,\n replaceReducer,\n [symbol_observable_default]: observable\n };\n return store;\n}\nfunction legacy_createStore(reducer, preloadedState, enhancer) {\n return createStore(reducer, preloadedState, enhancer);\n}\n\n// src/utils/warning.ts\nfunction warning(message) {\n if (typeof console !== \"undefined\" && typeof console.error === \"function\") {\n console.error(message);\n }\n try {\n throw new Error(message);\n } catch (e) {\n }\n}\n\n// src/combineReducers.ts\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n const reducerKeys = Object.keys(reducers);\n const argumentName = action && action.type === actionTypes_default.INIT ? \"preloadedState argument passed to createStore\" : \"previous state received by the reducer\";\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 if (!isPlainObject(inputState)) {\n return `The ${argumentName} has unexpected type of \"${kindOf(inputState)}\". Expected argument to be an object with the following keys: \"${reducerKeys.join('\", \"')}\"`;\n }\n const unexpectedKeys = Object.keys(inputState).filter((key) => !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]);\n unexpectedKeys.forEach((key) => {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === actionTypes_default.REPLACE)\n return;\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}\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach((key) => {\n const reducer = reducers[key];\n const initialState = reducer(void 0, {\n type: actionTypes_default.INIT\n });\n if (typeof initialState === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : `The slice reducer for key \"${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 if (typeof reducer(void 0, {\n type: actionTypes_default.PROBE_UNKNOWN_ACTION()\n }) === \"undefined\") {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : `The slice reducer for key \"${key}\" returned undefined when probed with a random type. Don't try to handle '${actionTypes_default.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}\nfunction combineReducers(reducers) {\n const reducerKeys = Object.keys(reducers);\n const finalReducers = {};\n for (let i = 0; i < reducerKeys.length; i++) {\n const key = reducerKeys[i];\n if (process.env.NODE_ENV !== \"production\") {\n if (typeof reducers[key] === \"undefined\") {\n warning(`No reducer provided for key \"${key}\"`);\n }\n }\n if (typeof reducers[key] === \"function\") {\n finalReducers[key] = reducers[key];\n }\n }\n const finalReducerKeys = Object.keys(finalReducers);\n let unexpectedKeyCache;\n if (process.env.NODE_ENV !== \"production\") {\n unexpectedKeyCache = {};\n }\n let shapeAssertionError;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n return function combination(state = {}, action) {\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n if (process.env.NODE_ENV !== \"production\") {\n const warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n let hasChanged = false;\n const nextState = {};\n for (let i = 0; i < finalReducerKeys.length; i++) {\n const key = finalReducerKeys[i];\n const reducer = finalReducers[key];\n const previousStateForKey = state[key];\n const nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === \"undefined\") {\n const actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : `When called with an action of type ${actionType ? `\"${String(actionType)}\"` : \"(unknown type)\"}, the slice reducer for key \"${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 nextState[key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\n// src/bindActionCreators.ts\nfunction bindActionCreator(actionCreator, dispatch) {\n return function(...args) {\n return dispatch(actionCreator.apply(this, args));\n };\n}\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === \"function\") {\n return bindActionCreator(actionCreators, dispatch);\n }\n if (typeof actionCreators !== \"object\" || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : `bindActionCreators expected an object or a function, but instead received: '${kindOf(actionCreators)}'. Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?`);\n }\n const boundActionCreators = {};\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n if (typeof actionCreator === \"function\") {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}\n\n// src/compose.ts\nfunction compose(...funcs) {\n if (funcs.length === 0) {\n return (arg) => arg;\n }\n if (funcs.length === 1) {\n return funcs[0];\n }\n return funcs.reduce((a, b) => (...args) => a(b(...args)));\n}\n\n// src/applyMiddleware.ts\nfunction applyMiddleware(...middlewares) {\n return (createStore2) => (reducer, preloadedState) => {\n const store = createStore2(reducer, preloadedState);\n let dispatch = () => {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : \"Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.\");\n };\n const middlewareAPI = {\n getState: store.getState,\n dispatch: (action, ...args) => dispatch(action, ...args)\n };\n const chain = middlewares.map((middleware) => middleware(middlewareAPI));\n dispatch = compose(...chain)(store.dispatch);\n return {\n ...store,\n dispatch\n };\n };\n}\n\n// src/utils/isAction.ts\nfunction isAction(action) {\n return isPlainObject(action) && \"type\" in action && typeof action.type === \"string\";\n}\nexport {\n actionTypes_default as __DO_NOT_USE__ActionTypes,\n applyMiddleware,\n bindActionCreators,\n combineReducers,\n compose,\n createStore,\n isAction,\n isPlainObject,\n legacy_createStore\n};\n//# sourceMappingURL=redux.mjs.map","import { createReducer } from \"@reduxjs/toolkit\"\n\nimport {\n setLoading,\n setAlert,\n setUser,\n setLanguage,\n reset,\n setReFetchUserAcademies\n} from \"./action\"\n\nconst initialState: any = {\n isLoading: false,\n alert: {\n type: \"\",\n message: \"\"\n },\n user: null,\n isReFetchUserAcademies: false\n}\n\n\nconst commonReducer = createReducer(initialState, builder => {\n builder\n .addCase(setLoading, (state, action) => {\n state.isLoading = action.payload\n })\n .addCase(setAlert, (state, action) => {\n state.alert = action.payload\n })\n .addCase(setUser, (state, action) => {\n state.user = action.payload\n })\n .addCase(setLanguage, (state, action) => {\n state.language = action.payload\n })\n .addCase(reset, (_state, _action) => {\n return initialState\n })\n .addCase(setReFetchUserAcademies, (state, action) => {\n state.isReFetchUserAcademies = action.payload\n })\n})\n\nexport default commonReducer","import { combineReducers } from \"redux\"\n\nimport common from \"./redux/commons/reducer\"\n\nconst rootReducer = combineReducers({\n common\n})\n\nexport default rootReducer\n","import { configureStore } from \"@reduxjs/toolkit\"\nimport logger from \"redux-logger\"\n\nimport rootReducer from \"./rootReducer\"\n\nconst store = configureStore({\n reducer: rootReducer,\n middleware: getDefaultMiddleware =>\n getDefaultMiddleware({ serializableCheck: false }).concat(logger)\n})\n\nexport default store\n","import React, { FC, useEffect } from \"react\"\n\nconst TITLE = \"Not found\"\nconst NotFound: FC = () => {\n useEffect(() => {\n document.title = TITLE\n })\n return (\n <div className=\"not-found d-flex justify-content-center\">\n <div className=\"clearfix pt-5\">\n <h1 className=\"float-left display-3 fw-bold mr-4 text-center\">404</h1>\n <div className=\"float-left\">\n <h4 className=\"pt-3\">Oops! You are lost.</h4>\n <p className=\"text-muted mb-2\">\n The page you are looking for was not found.\n </p>\n <div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nexport default NotFound\n","import React, { FC, CSSProperties } from \"react\"\nimport { useSelector } from \"react-redux\"\nimport moment from \"moment\"\n\nconst loadingStyle: CSSProperties = {\n minWidth: \"100vw\",\n minHeight: \"100vh\",\n position: \"fixed\",\n top: 0,\n left: 0,\n zIndex: 999999999,\n backgroundColor: \"rgba(0, 0, 0, 0.4)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n}\n\nconst Loading: FC = () => {\n const isLoading = useSelector((state: any) => state.common.isLoading)\n localStorage.setItem(\"LAST_TIME_REQUETST\", moment().utc().format(\"YYYY-MM-DD HH:mm:ss\"))\n return isLoading ? (\n <div style={loadingStyle}>\n <div className=\"spinner-border text-secondary\" role=\"status\">\n <span className=\"sr-only\"></span>\n </div>\n </div>\n ) : null\n}\n\nexport default Loading","import React, { FC, Fragment, PropsWithChildren, useCallback, useEffect } from \"react\"\nimport { getAcademyDomain, getAccessToken } from \"../utils/constants\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { setLoading, setUser } from \"../redux/commons/action\"\nimport { getInfo, getSuperAdminInfoFromWeb } from \"../services/accountService\"\nimport useGoogleSignOut from \"../utils/hooks/useGoogleSignOut\"\nimport { useTranslation } from \"react-i18next\"\nimport { Role } from \"../containers/Login/configs/constants\"\n\ninterface Props {\n onNavigate: (pathname: string) => void\n role: string\n}\n\nconst LayoutContext: FC<Props & PropsWithChildren> = ({\n children,\n role,\n onNavigate\n}) => {\n const {\n handleSignOut\n } = useGoogleSignOut({onNavigate})\n\n const { t } = useTranslation()\n\n const dispatch = useDispatch()\n const user = useSelector((state: any) => state?.common?.user)\n const roles = user?.roles || []\n const resetAuth = () => {\n handleSignOut()\n }\n\n const checkRoleUser = useCallback(() => {\n if(!user) return\n if(!roles.includes(role) && !!user.academyDomain)\n {\n alert(`${user.email} not allow to register ${role}`)\n resetAuth()\n }\n }, [role, JSON.stringify(user)])\n\n const loadInfo = async () => {\n const token = getAccessToken()\n if(!token) {\n resetAuth()\n return\n }\n dispatch(setLoading(true))\n try {\n const info = !!getAcademyDomain() ? await getInfo() : await getSuperAdminInfoFromWeb()\n if (!info) {\n resetAuth()\n }\n dispatch(setUser(info.data))\n } catch (err) {\n console.log({err});\n alert(t(role === Role.Student ? \"student_login_again\" : role === Role.Admin ? \"admin_login_again\" : \"teacher_login_again\"))\n resetAuth()\n }\n dispatch(setLoading(false))\n }\n useEffect(() => {\n !user && loadInfo()\n !!user && checkRoleUser()\n }, [JSON.stringify(user)])\n\n return <Fragment>{children}</Fragment>\n}\n\nexport default LayoutContext\n","import React, { ChangeEvent, FC, useEffect, useState } from \"react\"\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter, Input } from \"reactstrap\"\n\ninterface Props {\n text: string\n cancelText?: string\n okText?: string\n onConfirm: () => void\n open: boolean\n toggle: () => void\n isDelete?: boolean\n title?: string\n confirmText?: string\n}\nexport const ConfirmDialog: FC<Props> = ({\n open,\n text,\n cancelText = \"아니요\",\n okText = \"예\",\n isDelete,\n title = \"확인\",\n toggle,\n onConfirm,\n confirmText\n}) => {\n const [confirmTextValue, setConfirmTextValue] = useState<string>()\n const handleConfirm = () => {\n onConfirm()\n }\n const handleChangeConfirmText = (e: ChangeEvent<HTMLInputElement>) => {\n setConfirmTextValue(e.target.value)\n }\n const handlePaste = (e: any) => {\n e.preventDefault()\n }\n\n useEffect(() => {\n !open && setConfirmTextValue(undefined)\n }, [open])\n const isValid = !!confirmText && !!confirmTextValue && confirmTextValue.trim() === confirmText.trim()\n return (\n <Modal isOpen={open} toggle={toggle} centered zIndex={1102}>\n <ModalHeader toggle={toggle}>{title}</ModalHeader>\n <ModalBody>\n <p><strong>{text}</strong></p>\n {\n !!confirmText &&\n <div>\n <p>Enter \"<strong>{confirmText}</strong>\" to confirm delete</p>\n <Input\n value={confirmTextValue} onChange={handleChangeConfirmText}\n placeholder=\"Please enter...\"\n onPaste={handlePaste}\n invalid={!isValid && confirmTextValue !== undefined}\n valid={isValid}\n />\n </div>\n }\n </ModalBody>\n <ModalFooter>\n <Button\n color=\"secondary\"\n className=\"px-3\"\n onClick={toggle}>\n {cancelText}\n </Button>\n <Button\n color={isDelete ? \"danger\" : \"primary\"}\n className=\"px-3\"\n disabled={!!confirmText && confirmTextValue?.trim() !== confirmText.trim()}\n onClick={handleConfirm}\n >\n {okText}\n </Button>\n </ModalFooter>\n </Modal>\n )\n}\n","import { FC, PropsWithChildren } from \"react\"\nimport { Modal, ModalHeader } from \"reactstrap\"\nimport React from \"react\"\n\ninterface Props {\n open: boolean\n onClose: () => void\n centered?: boolean\n title: string\n size?: \"xs\" | \"lg\" | \"xl\"\n backdrop?: boolean | \"static\"\n}\n\nconst CommonDialog: FC<Props & PropsWithChildren> = ({\n open,\n children,\n centered,\n title,\n size = \"xs\",\n onClose,\n backdrop\n}) => {\n return (\n <Modal backdrop={backdrop} isOpen={open} toggle={onClose} centered={centered} size={size} zIndex={1102}>\n <ModalHeader toggle={onClose}>{title}</ModalHeader>\n {children}\n </Modal>\n )\n}\n\nexport default CommonDialog\n","import React, { FC, useRef, useEffect } from \"react\"\nimport { useSelector, useDispatch } from \"react-redux\"\nimport { Alert } from \"reactstrap\"\n\nimport { setAlert } from \"../../redux/commons/action\"\n\nconst CommonAlert: FC = () => {\n const dispatch = useDispatch()\n const alert = useSelector((state: any) => state.common.alert)\n const timeout = useRef<any>()\n\n const onDismiss = () => {\n dispatch(setAlert({ message: \"\" }))\n timeout && timeout.current && clearTimeout(timeout.current)\n }\n\n useEffect(() => {\n if (!!alert.message?.length) {\n timeout && timeout.current && clearTimeout(timeout.current)\n timeout.current = setTimeout(() => {\n dispatch(setAlert({ message: \"\" }))\n }, 3000)\n }\n }, [alert])\n\n return alert.message?.length > 0 ? (\n <div className=\"app-alert\">\n <Alert\n color={alert.type}\n isOpen={alert.message.length > 0}\n toggle={onDismiss}\n >\n {alert.message}\n </Alert>\n </div>\n ) : null\n}\n\nexport default CommonAlert\n","import moment from \"moment\"\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time: string, ORIGINAL_FORMAT: string, FORMAT?: string) => {\n if (time === DATE_MIN_VALUE) return \"\"\n try {\n return moment(time, ORIGINAL_FORMAT).format(FORMAT || \"yyyy-MM-DD\");\n } catch {\n return \"\"\n }\n}\n","import moment, { unitOfTime } from \"moment\"\nimport { DATE_MIN_VALUE } from \"../utils/constants\"\n\nexport default (time: string, unitOfTime: unitOfTime.Diff, targetTime?: string) => {\n if (time === DATE_MIN_VALUE || targetTime === DATE_MIN_VALUE) return 0\n try {\n var now = !!targetTime ? moment() : moment.utc(targetTime).local();\n return now.diff(moment.utc(time).local(), unitOfTime)\n } catch {\n return \"\"\n }\n}\n","import React from \"react\"\nimport { FC } from \"react\"\nimport { Pagination, PaginationItem, PaginationLink } from \"reactstrap\"\n\ninterface Props {\n currentPage: number\n totalPage: number\n onChangePage: (page: number) => void\n}\nconst CustomPagination: FC<Props> = ({\n currentPage,\n totalPage,\n onChangePage\n}) => {\n\n return (\n <Pagination className=\"w-fit\">\n <PaginationItem disabled={currentPage <= 1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(currentPage - 1)\n }}\n previous\n href=\"#\"\n />\n </PaginationItem>\n <PaginationItem active={1 === currentPage} key={1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(1)\n }}\n href=\"#\"\n >\n {1}\n </PaginationLink>\n </PaginationItem>\n\n {\n totalPage > 2 && <PaginationItem active={2 === currentPage} key={1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(2)\n }}\n href=\"#\"\n >\n {2}\n </PaginationLink>\n </PaginationItem>\n }\n\n {\n currentPage > 4 && currentPage !== totalPage && totalPage !== 5\n &&\n <PaginationItem disabled key={\"first\"}>\n <PaginationLink\n href=\"#\"\n >\n ...\n </PaginationLink>\n </PaginationItem>\n }\n {\n (currentPage === 1 || currentPage === totalPage) && totalPage === 5 && \n <PaginationItem key={3}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(3)\n }}\n href=\"#\"\n >\n 3\n </PaginationLink>\n </PaginationItem>\n }\n {\n [currentPage - 1, currentPage, currentPage + 1]\n .filter(page => page > 2 && page < totalPage - 1).map(page => (\n <PaginationItem active={page === currentPage} key={page}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(page)\n }}\n href=\"#\"\n >\n {page}\n </PaginationLink>\n </PaginationItem>\n ))\n }\n\n {\n totalPage - currentPage > 4\n &&\n <PaginationItem disabled key={\"last\"}>\n <PaginationLink\n href=\"#\"\n >\n ...\n </PaginationLink>\n </PaginationItem>\n }\n\n {totalPage > 3 && (\n <PaginationItem active={totalPage - 1 === currentPage} key={totalPage - 1}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(totalPage - 1)\n }}\n href=\"#\"\n >\n {totalPage - 1}\n </PaginationLink>\n </PaginationItem>\n )}\n {totalPage > 1 && (\n <PaginationItem active={totalPage === currentPage} key={totalPage}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(totalPage)\n }}\n href=\"#\"\n >\n {totalPage}\n </PaginationLink>\n </PaginationItem>\n )}\n <PaginationItem disabled={currentPage >= totalPage}>\n <PaginationLink\n onClick={e => {\n e.preventDefault()\n onChangePage(currentPage + 1)\n }}\n next\n href=\"#\"\n />\n </PaginationItem>\n </Pagination>\n )\n}\n\nexport default CustomPagination\n","export interface INavigateProps{\n onNavigate: (pathname: string) => void\n}\n\nexport enum ExamEvent {\n StartExam = \"start-exam\",\n TerminateExam = \"terminate-exam\",\n AddExtraDuration = \"add-extra-duration-exam\",\n TeacherKickOutStudent = \"teacher-kick-out-student\"\n }\n","import i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport lang_ko from \"./lang/lang_ko.json\"\nimport lang_en from \"./lang/lang_en.json\"\n\ni18n.use(initReactI18next)\n .init({\n lng: \"ko\",\n fallbackLng: \"ko\",\n interpolation: {\n escapeValue: false,\n },\n resources: {\n ko: {\n translation: lang_ko\n },\n en: {\n translation: lang_en\n },\n },\n });\n\nexport default i18n;","export type Language = {\n code: string\n name: string\n fullName: string\n shortName: string\n nativeName: string\n image: string\n momentLangCode: string\n}\n\nexport const DEFAULT_LANGUAGE_INDEX = 0\n\nexport const LANGUAGES: Language[] = [\n {\n code: \"ko\",\n fullName: \"Korean\",\n shortName: \"Korean\",\n nativeName: \"Korean\",\n name: \"Korean\",\n image: \"/images/korea.png\",\n momentLangCode: \"ko\"\n },\n {\n code: \"en\",\n fullName: \"English\",\n shortName: \"English\",\n nativeName: \"English\",\n name: \"English\",\n image: \"/images/usa.png\",\n momentLangCode: \"en-au\"\n }\n]\n","import { useState, useEffect, useMemo } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { useDispatch } from \"react-redux\"\nimport { DEFAULT_LANGUAGE_INDEX, LANGUAGES, Language } from \"../../configs/constants\"\nimport { setLanguage } from \"../../redux/commons/action\"\nimport moment from \"moment\"\nimport \"moment/locale/ko.js\"\nimport \"moment/locale/en-au.js\"\n\nconst useLanguage = () => {\n const defaultLanguage =\n !!localStorage.getItem(\"language\")\n ? localStorage.getItem(\"language\")\n : navigator.language || LANGUAGES[DEFAULT_LANGUAGE_INDEX].code\n\n const dispatch = useDispatch()\n const { i18n } = useTranslation()\n const [dropdownOpen, setDropdownOpen] = useState(false)\n const [language, setItemLanguage] = useState(defaultLanguage!)\n const toggle = () => setDropdownOpen(prevState => !prevState)\n const changeLanguageApp = (lang: string) => {\n let language = LANGUAGES.find(i => i.code === lang)\n if (!language) language = LANGUAGES[DEFAULT_LANGUAGE_INDEX]\n i18n.changeLanguage(language.code)\n moment.locale(language.momentLangCode)\n localStorage.setItem(\"language\", language.code)\n setItemLanguage(language.code)\n dispatch(setLanguage(language.code))\n }\n\n useEffect(() => {\n changeLanguageApp(language)\n }, [language])\n\n const currentLanguage = useMemo(() => {\n const currentLang = LANGUAGES.find((i: Language) => i.code === language)\n if(!currentLang) return null\n return currentLang\n }, [language])\n return {\n language,\n dropdownOpen,\n currentLanguage,\n toggle,\n setItemLanguage\n }\n}\n\nexport default useLanguage","import React from \"react\"\nimport { IoChevronDown } from \"react-icons/io5\";\nimport styles from \"../styles.module.scss\"\nimport {\n Dropdown,\n DropdownItem,\n DropdownMenu,\n DropdownToggle\n} from \"reactstrap\"\nimport { Language, LANGUAGES } from \"../configs/constants\";\nimport useLanguage from \"../utils/hooks/useLanguage\";\n\nconst TheLanguageDropdown = () => {\n const {\n currentLanguage,\n language,\n dropdownOpen,\n toggle,\n setItemLanguage\n } = useLanguage()\n\n return (\n <Dropdown\n isOpen={dropdownOpen}\n toggle={toggle}\n className={`${styles[\"dropdown-menu\"]}`}\n >\n <DropdownToggle\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\n >\n <span style={{ color: \"#000\", textTransform: \"capitalize\", display: 'flex', alignItems: 'center' }}>\n {!!currentLanguage && <img className={`mr-2 ${styles['dropdown-menu-flag']}`} src={currentLanguage.image} />}\n {!!currentLanguage && currentLanguage.shortName}\n <IoChevronDown className=\"ml-2\" style={{ fontSize: '15px', marginLeft: \"5px\", marginTop: \"2px\" }} />\n </span>\n </DropdownToggle>\n <DropdownMenu className={styles[\"dropdown-content-language\"]}>\n {\n LANGUAGES.map((lang: Language, index: number) => (\n <DropdownItem\n key={lang.code}\n className={`${styles[\"dropdown-change\"]} px-0 py-0 ${index === LANGUAGES.length - 1 ? \"pb-2\" : \"pt-2\"}`}\n onClick={() => setItemLanguage(lang.code)}\n >\n <div\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\n language == lang.code ? styles['dropdown-item-language-active'] : \"\"\n } d-flex align-items-center w-100`}\n >\n <span className=\"mr-2 d-flex hover-opacity\">\n <img\n style={{ width: \"30px\", marginRight: \"10px\" }}\n src={lang.image}\n />\n </span>\n {lang.name}\n </div>\n </DropdownItem>\n ))\n }\n </DropdownMenu>\n </Dropdown>\n )\n}\n\nexport default TheLanguageDropdown\n","import { api } from \"../configs/api\";\nimport { BASE_URL, SUPER_ADMIN_BASE_URL } from \"../utils/constants\";\n\nconst ACADEMY_URL = `${BASE_URL}/api/academy`;\nconst SUPER_ADMIN_ACADEMY_URL = `${SUPER_ADMIN_BASE_URL}/api/academies`;\n\n\nexport const getAcademyList = (role?: string) => api.get(`${SUPER_ADMIN_ACADEMY_URL}/active`, {\n params: {\n role\n }\n});\nexport const getUserAcademies = (role?: string) => api.get(`${ACADEMY_URL}`, {\n params: {\n role\n }\n});\n\nexport const switchAcademy = (academyId: number) => api.post(`${ACADEMY_URL}/switch-academy?academyId=${academyId}`);","import { useEffect, useMemo, useState } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport useLogin from \"./useLogin\";\nimport { AcademyResponse } from \"../types/academy\";\nimport { setLoading, setReFetchUserAcademies } from \"../../redux/commons/action\";\nimport { getAcademyList, getUserAcademies, switchAcademy } from \"../../services/academyService\";\nimport { toast } from \"react-toastify\";\nimport { LoginAccessTokenRequest } from \"../types/login\";\nimport { Role } from \"../../containers/Login/configs/constants\";\nimport { ACADEMY_DOMAIN } from \"../constants\";\n\n\nconst useSwitchAcademy = (role: Role = Role.Student, navigate: (pathname: string) => void, homeAcademyUrl: string, homeUrl: string) => {\n const dispatch = useDispatch()\n const {\n handleLoginAccessToken\n } = useLogin(navigate, homeAcademyUrl, homeUrl)\n const [dropdownOpen, setDropdownOpen] = useState(false)\n const toggleDropdown = () => setDropdownOpen(prevState => !prevState)\n const [academyList, setAcademyList] = useState<AcademyResponse[]>([])\n const user = useSelector((state: any) => state?.common?.user)\n const isReFetchUserAcademies = useSelector((state: any) => state?.common?.isReFetchUserAcademies)\n\n const getAcademies = async (isLoading: boolean = true) => {\n if(!user) return\n const isSuperAdminUser = user && !user.academyDomain\n const isSuperAdminRole = user.roles.includes(Role.Admin)\n isLoading && dispatch(setLoading(true))\n try {\n const res = !isSuperAdminUser ? await getUserAcademies(role) : await getAcademyList(role)\n const items: AcademyResponse[] = res.data.items || []\n if(isReFetchUserAcademies) dispatch(setReFetchUserAcademies(false))\n setAcademyList(items)\n if(!isSuperAdminRole && isSuperAdminUser && role == Role.Admin && items.length > 0)\n {\n await handleSwitchAcademy(items[0], false)\n }\n } catch (error) {\n toast.error(error?.response?.data?.tile || \"Get user academies failed\")\n }\n isLoading && dispatch(setLoading(false))\n }\n\n\n const handleSwitchAcademy = async (selectedAcademy?: AcademyResponse, isLoading: boolean = true) => {\n isLoading && dispatch(setLoading(true))\n const academyId = selectedAcademy ? selectedAcademy.id : 0\n const academyDomain = selectedAcademy ? selectedAcademy.domain : undefined;\n try {\n const res = await switchAcademy(academyId);\n const data = res.data;\n const requestBody: LoginAccessTokenRequest = {\n accessToken: data.accessToken,\n email: user.email,\n academyId: academyId,\n role: role\n }\n academyDomain && localStorage.setItem(ACADEMY_DOMAIN, academyDomain)\n !academyDomain && localStorage.removeItem(ACADEMY_DOMAIN)\n \n await handleLoginAccessToken(requestBody, false, user.academyDomain ? academyDomain : undefined)\n } catch (error) {\n toast.error(error?.response?.data?.title || \"Switch academy failed\")\n }\n isLoading && dispatch(setLoading(false))\n }\n\n useEffect(() => {\n getAcademies()\n }, [user?.academyDomain, user?.email])\n\n useEffect(() => {\n isReFetchUserAcademies && getAcademies(false)\n }, [isReFetchUserAcademies])\n\n const selectedAcademy = useMemo(() => {\n return academyList.find(i => i.domain.trim().toLowerCase() === user?.academyDomain?.trim().toLowerCase())\n }, [user?.academyDomain, JSON.stringify(academyList)])\n\n return {\n selectedAcademy,\n dropdownOpen,\n academyList,\n toggleDropdown,\n handleSwitchAcademy,\n }\n}\n\nexport default useSwitchAcademy","import React, { FC } from \"react\"\nimport { GoArrowSwitch } from \"react-icons/go\"\nimport styles from \"../styles.module.scss\"\nimport {\n Dropdown,\n DropdownItem,\n DropdownMenu,\n DropdownToggle\n} from \"reactstrap\"\nimport useSwitchAcademy from \"../utils/hooks/useSwitchAcademy\"\nimport { Role } from \"../containers/Login/configs/constants\"\nimport { AcademyResponse } from \"../utils/types/academy\"\n\ninterface ITheAcademyDropdownProps {\n role?: Role\n navigate: (pathname: string) => void\n homeAcademyUrl: string\n homeUrl: string\n}\n\nconst TheAcademyDropdown: FC<ITheAcademyDropdownProps> = ({\n homeAcademyUrl,\n homeUrl,\n navigate,\n role\n}) => {\n const {\n dropdownOpen,\n academyList,\n toggleDropdown,\n handleSwitchAcademy,\n selectedAcademy\n } = useSwitchAcademy(role, navigate, homeAcademyUrl, homeUrl)\n\n const firstLetter = selectedAcademy?.name?.charAt(0)?.toUpperCase()\n return (\n <Dropdown\n isOpen={dropdownOpen}\n toggle={toggleDropdown}\n className={`${styles[\"dropdown-menu\"]} ${styles[\"dropdown-academy\"]}`}\n >\n <DropdownToggle\n className={`${styles[\"header-avatar\"]} d-flex align-items-center`}\n >\n <div className={`${styles[\"image-academy\"]}`}>\n {selectedAcademy?.image ? (\n <img\n src={selectedAcademy?.image}\n alt={selectedAcademy?.name}\n />\n ) : (\n <span>{firstLetter}</span>\n )}\n </div>\n <p\n className=\"text-start mb-0\"\n style={{\n fontSize: 14,\n fontWeight: 600,\n color: \"#5458D5\",\n minWidth: 150\n }}\n >\n {selectedAcademy?.name || \"No selected academy\"}\n </p>\n <div className={`${styles[\"switch-icon\"]}`}>\n <GoArrowSwitch size={14} />\n </div>\n </DropdownToggle>\n <DropdownMenu className={styles[\"dropdown-content-academy\"]}>\n {academyList.map((academy: AcademyResponse) => (\n <DropdownItem\n key={academy.id}\n className={`${styles[\"dropdown-academy-item\"]} px-0 py-0`}\n onClick={() => handleSwitchAcademy(academy)}\n >\n <div\n className={`${styles[\"dropdown-item-language\"]} ${styles[\"item-logout\"]} ${\n academy.id == selectedAcademy?.id\n ? styles[\"dropdown-item-language-active\"]\n : \"\"\n } d-flex align-items-center w-100`}\n >\n <span\n className={`mr-2 d-flex hover-opacity ${styles[\"image-academy\"]}`}\n >\n {academy.image ? (\n <img src={academy.image} />\n ) : (\n <span>\n {academy.name.charAt(0).toUpperCase()}\n </span>\n )}\n </span>\n {academy.name}\n </div>\n </DropdownItem>\n ))}\n {\n !academyList.length &&\n <p className=\"px-2 text-center\">No academies available</p>\n }\n </DropdownMenu>\n </Dropdown>\n )\n}\n\nexport default TheAcademyDropdown\n","export default (time: number) => {\n const h = Math.floor(time / 60)\n const m = time % 60\n return `${h.toString().padStart(2, \"0\")}:${m\n .toString()\n .padStart(2, \"0\")}:00`\n}\n","import moment from \"moment\"\n\nexport default (time?: string) => {\n try {\n return moment(time).toISOString()\n } catch {\n return \"\"\n }\n}\n","const canAccess = (userRoles: any[], componentRoles: any[]) => {\n if (!Array.isArray(userRoles)) {\n return false\n }\n if (Array.isArray(componentRoles)) {\n const intersects = userRoles.filter(i => componentRoles.includes(i))\n return intersects.length > 0\n }\n return true\n}\n\nexport default canAccess\n","import React from \"react\"\nimport Select, { DropdownIndicatorProps, components } from 'react-select'\nimport { FaCaretDown } from \"react-icons/fa\";\nimport { useTranslation } from \"react-i18next\";\n\nconst DropdownIndicator = (props: DropdownIndicatorProps) => {\n return <components.DropdownIndicator {...props}>\n <FaCaretDown color=\"#5458D5\"/>\n </components.DropdownIndicator>\n}\n\nconst CustomOption = (props: any) => {\n return (\n <components.Option {...props}>\n <div style={{ fontSize: \"14px\", fontWeight: 500, }}>\n {props.data.label}\n </div>\n </components.Option>\n );\n };\n\nconst customStyles = {\n control: (baseStyles: any, state: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\",\n borderColor: state.isFocused ? '#5458D5' : '#C3C5FE'\n }),\n input: (baseStyles: any, _: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\"\n }),\n singleValue: (baseStyles: any) => ({\n ...baseStyles,\n fontSize: \"14px\",\n fontWeight: 700,\n color: \"#5458D5\"\n }),\n};\nconst CustomSelect = ({\n isDefault,\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const { t } = useTranslation()\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n return (\n <Select\n isDisabled={isDisabled}\n options={options}\n value={!isDefault ? (initialValues ?? null) : undefined}\n defaultValue={isDefault ? initialValues : undefined}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n components={{\n IndicatorSeparator: () => null,\n DropdownIndicator,\n Option: CustomOption\n }}\n styles={customStyles}\n placeholder={t(\"select_placeholder\")}\n {...rest}\n />\n )\n}\n\nexport default CustomSelect\n","\nimport React, { SVGProps } from \"react\"\n\nconst iconPersonNoActive = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10.395 2.01813C9.78691 1.36156 8.93753 1 8.00003 1C7.05753 1 6.20534 1.35937 5.60003 2.01187C4.98815 2.67156 4.69003 3.56813 4.76003 4.53625C4.89878 6.44625 6.35222 8 8.00003 8C9.64784 8 11.0988 6.44656 11.2397 4.53687C11.3107 3.5775 11.0107 2.68281 10.395 2.01813Z\"\n fill=\"#5458D5\"\n />\n <path\n d=\"M13.5001 15H2.50006C2.35608 15.0019 2.21349 14.9716 2.08267 14.9115C1.95185 14.8513 1.83609 14.7627 1.74381 14.6522C1.54068 14.4094 1.45881 14.0778 1.51943 13.7425C1.78318 12.2794 2.60631 11.0503 3.90006 10.1875C5.04943 9.42156 6.50537 9 8.00006 9C9.49474 9 10.9507 9.42188 12.1001 10.1875C13.3938 11.05 14.2169 12.2791 14.4807 13.7422C14.5413 14.0775 14.4594 14.4091 14.2563 14.6519C14.1641 14.7625 14.0483 14.8511 13.9175 14.9113C13.7867 14.9715 13.6441 15.0018 13.5001 15Z\"\n fill=\"#5458D5\"\n />\n </svg>\n )\n}\n\nexport default iconPersonNoActive\n","import React, { FC } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\n// import { Collapse } from \"reactstrap\";\n// import { Link } from \"react-router-dom\";\nimport { IChatItemWithActionProps } from \"./ChatItem\"\nimport IconPersonNoActive from \"../../assets/iconPersonNoActive\"\nimport { Box, Grid, Typography } from \"@mui/material\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport { useTranslation } from \"react-i18next\"\n\nconst ChatRightItem: FC<IChatItemWithActionProps> = ({\n content,\n createdAt,\n sender,\n showTimestamp,\n isStudent,\n showName,\n contentType\n}) => {\n const { t } = useTranslation()\n return (\n <div>\n {showTimestamp && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n textAlign={\"center\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n )}\n <Grid\n item\n xs={12}\n display={\"flex\"}\n justifyContent={\"flex-end\"}\n padding={\"4px 0\"}\n >\n <Box>\n {showName && isStudent && (\n <Box\n gap={\"8px\"}\n className={` ${styles[\"name-sender\"]}`}\n display={\"flex\"}\n alignItems={\"center\"}\n flexDirection={\"row\"}\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={700}\n fontSize={14}\n padding={\"4px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {sender?.fullName}\n </Typography>\n </Box>\n )}\n {contentType ? (\n <img\n src={content}\n style={{ backgroundRepeat: \"no-repeat\", width: \"200px\", height: \"200px\", position: \"relative\", backgroundSize: \"cover\", objectFit: \"cover\"}}\n />\n ) :\n (<div\n className={`${styles[\"wrap-content\"]} ${styles[\"content-chat-receiver\"]}`}\n style={{ float: \"inline-end\"}}\n >\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#fffff\"}\n >\n {content}\n </Typography>\n </div>)}\n </Box>\n </Grid>\n </div>\n )\n}\n\nexport default ChatRightItem\n","import React, { FC, Fragment } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\n// import { Collapse } from \"reactstrap\"\n// import { Link } from \"react-router-dom\"\nimport { IChatItemWithActionProps } from \"./ChatItem\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport { useTranslation } from \"react-i18next\"\nimport { Box, Grid, Typography } from \"@mui/material\"\n\nconst ChatLeftItem: FC<IChatItemWithActionProps> = ({\n content,\n sender,\n createdAt,\n showTimestamp,\n isStudent,\n showName,\n contentType\n}) => {\n const { t } = useTranslation()\n\n return (\n <div>\n {showTimestamp && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n textAlign={\"center\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n )}\n <Grid item xs={12} padding={\"4px 0\"}>\n {showName && (\n <Box gap={\"4px\"} display={\"flex\"} padding={\"4px\"} flexDirection={\"row\"} className={`${styles[\"name-sender\"]}`}>\n {isStudent ? (\n <Fragment>\n <Typography\n fontWeight={500}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#97A1AF\"}\n >\n {t(\"counselor\")}\n </Typography>\n <Typography\n fontWeight={700}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#97A1AF\"}\n >\n {sender?.fullName}\n </Typography>\n </Fragment>\n ) : (\n <Fragment>\n <Typography\n fontWeight={700}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {sender?.fullName}\n </Typography>\n <Typography\n fontWeight={500}\n fontSize={14}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {t(\"student\")}\n </Typography>\n </Fragment>\n )}\n </Box>\n )}\n <Box padding={\"4px 0px\"}></Box>\n {contentType ? (\n <img\n src={content}\n style={{ backgroundRepeat: \"no-repeat\", width: \"200px\", height: \"200px\", position: \"relative\", backgroundSize: \"cover\", objectFit: \"cover\"}}\n />\n ) :\n (<div\n className={`${styles[\"wrap-content\"]} ${styles[\"content-chat-sender\"]}`}\n >\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#414E62\"}\n >\n {content}\n </Typography>\n </div>)}\n </Grid>\n </div>\n )\n}\n\nexport default ChatLeftItem\n","import { FC, Fragment } from \"react\"\nimport ChatRightItem from \"./ChatRightItem\"\nimport ChatLeftItem from \"./ChatLeftItem\"\nimport React from \"react\"\nimport { StudentsConversationResponse } from \"./configs/types\"\n// import styles from \"./styles/chatStyles.module.scss\"\n\nexport interface IChatItemProps {\n id?: number\n isMe?: boolean\n avatar?: string\n content?: string\n createdAt: string\n sender?: StudentsConversationResponse\n isRead: boolean\n contentType?: number\n}\n\nexport interface IChatItemWithActionProps extends IChatItemProps {\n onReTrySendMessage?: () => void\n showTimestamp?: boolean\n showName?: boolean\n isStudent?: boolean\n}\n\nexport enum ChatItemType {\n Default,\n Exam,\n Class\n}\n\nconst ChatItem: FC<IChatItemWithActionProps> = props => {\n const { isMe } = props\n return (\n <Fragment>\n {isMe ? <ChatRightItem {...props} /> : <ChatLeftItem {...props} />}\n </Fragment>\n )\n}\n\nexport default ChatItem\n","import { ExamStatus } from \"./constants\"\n\nexport type ConversationResponse = {\n id: number\n student: UserResponse\n teacher: UserResponse\n lastMessage: MessageResponse\n totalUnReadMessage: number\n}\n\nexport type ConversationsResponse = {\n id: number\n studentExamSessionId: number\n studentId: number\n question: ConversationQuestion\n isCompleted: boolean\n completedAt: string\n totalUnReadMessage: number\n lastMessage: string | null\n examTitle: string\n examId: number\n examSessionId: number\n duration: string\n startTime: string\n examCreatedAt: string\n createdAt: string\n teacherName: string\n}\n\nexport type ConversationQuestion = {\n id: number\n title: string\n articleNumber: number\n questionOrder: number\n}\n\nexport type UserResponse = {\n id: number\n fullName: string\n avatar: string\n}\n\nexport type ConversationFilter = {\n currentPage: number\n pageSize: number\n textSearch: string\n hasConversation?: boolean\n studentId?: number\n sortColumnName?: string,\n sortColumnDirection?: string\n}\n\nexport type ExamResponse = {\n id: number\n examId: number\n title: string\n code: string\n description: string\n type: string\n createdBy: {\n id: number,\n phoneNumber: string,\n email: string,\n avatar: string,\n fullName: string,\n schoolName: string\n },\n teacher: {\n id: number,\n phoneNumber?: string,\n email: string,\n avatar: string,\n fullName: string,\n schoolName: string\n },\n imageUrl: string\n questionCount: number\n duration: string\n createdAt: Date\n examCreatedAt: Date\n startTime: Date\n status: number\n totalStudentsJoined: number\n}\n\nexport type MessageFilter = {\n currentPage?: number\n pageSize?: number\n textSearch?: string\n sortColumnDirection?: OrderBy\n sortColumnName?: MessageSortBy\n examId?: number\n beforeDate?: string\n totalItems?: number\n totalPages?: number\n}\n\nexport enum MessageSortBy {\n CreatedAt = \"CreatedAt\"\n}\n\nexport enum OrderBy {\n ASC = \"ASC\",\n DESC = \"DESC\"\n} \n\nexport enum StudentSortBy {\n CreatedAt = \"CreatedAt\",\n FullName = \"FullName\"\n}\n\nexport enum StudentOrderBy {\n ASC = \"ASC\",\n DESC = \"DESC\"\n}\n\nexport type MessageResponse = {\n id?: number\n conversationId?: number\n content: string\n isRead: boolean\n readAt?: string\n createdAt: string\n sender?: StudentsConversationResponse\n}\n\nexport type UploadFileResponse = {\n fileName?: any\n uploaded: number\n url: string\n}\n\nexport type StudentsConversationResponse = {\n id: number\n avatar: string\n grade: string\n email?: string\n major?: string\n fullName: string\n parentName?: string\n schoolName?: string\n}\n\nexport type MessageRequest = {\n content: string\n examId?: number\n parentId?: number\n parentContent?: string\n examTitle?: string\n examCode?: string\n contentType?: number\n}\n\nexport enum MessageAction {\n Default,\n Took\n}\n\nexport enum MessageSourceType {\n Default,\n Exam,\n Class\n}\n\nexport type ExamFilter = {\n currentPage: number\n pageSize: number\n sortColumnName: string\n textSearch: string\n sortColumnDirection: string\n statuses?: ExamStatus[]\n}\n\nexport type Option = {\n value: number\n label: string\n}\n\nexport enum MessageStatus {\n Default = \"Sent\",\n Sending = \"Sending...\",\n SentError = \"Sent fail, Retry\"\n}","import { ConversationFilter, MessageFilter, MessageSortBy, OrderBy } from \"./types\";\n\nexport enum ExamStatus {\n Default = \"Default\",\n Pending = \"Pending\",\n Inprogress = \"Inprogress\",\n Completed = \"Completed\"\n}\n\nexport enum Roles {\n Student = \"Student\",\n Teacher = \"Teacher\",\n Admin = \"Admin\"\n}\n\n\nexport const CONVERSATION_DEFAULT_FILTER: ConversationFilter = {\n currentPage: 1,\n pageSize: -1,\n textSearch: \"\"\n}\n\nexport const MESSAGE_DEFAULT_FILTER: MessageFilter = {\n currentPage: 1,\n pageSize: 15,\n textSearch: \"\",sortColumnDirection: OrderBy.DESC,\n sortColumnName: MessageSortBy.CreatedAt\n}","import React, { FC, useMemo } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport ChatItem, { IChatItemProps } from \"./ChatItem\"\nimport { Roles } from \"./configs/constants\"\n\nexport interface IChatListProps {\n messages?: IChatItemProps[]\n onReTrySendMessage?: () => void\n roles: Array<String>\n}\ninterface Props extends IChatListProps {\n listItemRef: React.RefObject<HTMLUListElement>\n}\n\ntype prevSender = string | undefined\n\nconst ChatList: FC<Props> = ({\n messages = [],\n roles,\n onReTrySendMessage,\n listItemRef\n}) => {\n const filterMessage = useMemo(()=>{\n let prevTime = 0;\n let prevSender: prevSender;\n return messages.map((message) => {\n const currentTime = new Date(message.createdAt).getTime();\n const showTimestamp = !prevTime || (currentTime - prevTime) > (20 * 60 * 1000);\n const showName = message.sender?.fullName !== prevSender;\n prevSender = message.sender?.fullName;\n prevTime = currentTime;\n return { ...message, showTimestamp, showName };\n \n });},[JSON.stringify(messages)])\n\n const isStudent = roles?.includes(Roles.Student)\n\n return (\n <ul\n ref={listItemRef}\n className={`${styles[\"list\"]} ${styles[\"padding-content\"]} d-flex h-100 flex-column mb-0 ${!filterMessage?.length ? 'justify-content-center': ''}`}\n >\n {!filterMessage?.length && (\n <li className=\"text-muted text-center fst-italic fs-6\">\n No message\n </li>\n )}\n {!!filterMessage?.length &&\n filterMessage.map((message: IChatItemProps) => (\n <ChatItem\n key={message.id}\n {...message}\n isStudent={isStudent}\n onReTrySendMessage={onReTrySendMessage}\n />\n ))}\n </ul>\n )\n}\n\nexport default ChatList\n","import React from \"react\"\nimport type { SVGProps } from 'react';\n\nconst iconSendMessage = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.8934 7.09539L14.8884 7.0932L1.54219 1.55758C1.42993 1.51059 1.30778 1.49217 1.18666 1.50395C1.06554 1.51573 0.949225 1.55734 0.848125 1.62508C0.741311 1.69507 0.653573 1.79052 0.592805 1.90283C0.532037 2.01515 0.500145 2.14081 0.5 2.26852V5.80883C0.50006 5.98341 0.561019 6.15249 0.67237 6.28695C0.783722 6.42141 0.938491 6.5128 1.11 6.54539L8.38906 7.89133C8.41767 7.89675 8.44348 7.91199 8.46205 7.93441C8.48062 7.95683 8.49078 7.98503 8.49078 8.01414C8.49078 8.04325 8.48062 8.07145 8.46205 8.09387C8.44348 8.1163 8.41767 8.13153 8.38906 8.13695L1.11031 9.48289C0.938851 9.5154 0.784092 9.60667 0.67269 9.74101C0.561288 9.87534 0.500219 10.0443 0.5 10.2188V13.7598C0.499917 13.8817 0.530111 14.0018 0.587871 14.1092C0.645632 14.2166 0.729152 14.3079 0.830938 14.3751C0.953375 14.4564 1.09706 14.4999 1.24406 14.5001C1.34626 14.5 1.4474 14.4795 1.54156 14.4398L14.8875 8.9357L14.8934 8.93289C15.0731 8.85569 15.2262 8.72751 15.3337 8.56421C15.4413 8.40092 15.4986 8.20968 15.4986 8.01414C15.4986 7.81861 15.4413 7.62736 15.3337 7.46407C15.2262 7.30077 15.0731 7.1726 14.8934 7.09539Z\"\n fill=\"white\"\n />\n </svg>\n )\n}\n\nexport default iconSendMessage\n","import React, { ChangeEvent, FC, KeyboardEvent, useRef } from \"react\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport { Box, Button, Grid, Typography } from \"@mui/material\"\nimport IconSendMessenger from \"../../assets/iconSendMessenger\"\nimport { useTranslation } from \"react-i18next\"\nimport { FaImage } from \"react-icons/fa\"\nimport { IoCloseOutline } from \"react-icons/io5\"\nexport interface IInputChatProps {\n text: string\n onSubmit: () => void\n onChangeInput: (text: string) => void\n isCompleted?: boolean\n handleUploadImage: (file: File) => void\n selectedFile: {\n content: string\n }\n handleDeleteSelectedImage: () => void\n}\n\ninterface Props extends IInputChatProps {\n inputRef: React.RefObject<HTMLInputElement>\n}\nconst InputChat: FC<Props> = ({ text, inputRef, onChangeInput, onSubmit, isCompleted, handleUploadImage, selectedFile, handleDeleteSelectedImage }) => {\n const { t } = useTranslation();\n const fileInputRef = useRef<HTMLInputElement>(null);\n const handleSubmit = () => {\n onSubmit()\n }\n\n const handleInputChange = (event: ChangeEvent<HTMLInputElement>) => {\n onChangeInput(event.target.value)\n \n }\n\n const handleKeyPressEnter = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\"){\n handleSubmit()\n return\n }\n }\n\n const handleSelectedFile = (e: any) => {\n const { files } = e.target;\n handleUploadImage(files[0])\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\"\n }\n }\n\n return (\n <Grid item xs={12} padding={\"16px\"}>\n <Box display={\"flex\"} flexDirection={\"row\"} gap={\"24px\"}>\n <Box\n display={\"flex\"}\n flexDirection={\"column\"}\n gap={\"7px\"}\n width={\"100%\"}\n >\n <Box display={\"flex\"} border={\"1px solid #97A1AF\"} borderRadius={\"6px\"} flexDirection={\"column\"}>\n { selectedFile && <div style={{ position: \"relative\", margin: \"10px\", width: \"fit-content\"}}>\n <img src={selectedFile?.content} style={{ backgroundRepeat: \"no-repeat\", width: \"100px\", height: \"100px\", backgroundSize: \"cover\"}}/>\n <div style={{ position: \"absolute\", right: 0, top: 0, cursor: \"pointer\"}} onClick={handleDeleteSelectedImage}>\n <IoCloseOutline color=\"#fff\" size={30}/>\n </div>\n </div>}\n <input\n className={styles[\"input-chat\"]}\n style={{ border: \"none\"}}\n placeholder={t(\"send_message\")}\n ref={inputRef}\n value={text}\n width={\"100%\"}\n onKeyPress={handleKeyPressEnter}\n onChange={handleInputChange}\n disabled={isCompleted}\n />\n </Box>\n <Typography\n fontWeight={500}\n fontSize={\"10px\"}\n lineHeight={\"11.93px\"}\n color={\"#97A1AF\"}\n >\n 안내 텍스트입니다.\n </Typography>\n </Box>\n \n <Box\n display={\"flex\"}\n justifyContent={\"flex-end\"}\n alignItems={\"flex-start\"}\n gap={\"8px\"}\n >\n <Button\n variant=\"outlined\"\n component=\"label\"\n >\n <FaImage />\n <input\n type=\"file\"\n hidden\n ref={fileInputRef}\n accept=\"image/png, image/gif, image/jpeg\"\n onChangeCapture={handleSelectedFile}\n />\n </Button>\n <Button\n variant=\"contained\"\n sx={{ bgcolor: isCompleted ? \"#EBEBFF !important\": \"#5458D5 !important\"}}\n className={styles[\"btn-send\"]}\n disabled={isCompleted}\n onClick={handleSubmit}\n >\n <IconSendMessenger />\n <Typography\n fontWeight={700}\n fontSize={\"13px\"}\n lineHeight={\"15.51px\"}\n >\n {t(\"button.send\")}\n </Typography>\n </Button>\n </Box>\n </Box>\n </Grid>\n )\n}\nexport default InputChat\n","import React, { SVGProps } from \"react\"\n\nconst iconChecked = ({ width = \"16\", height = \"16\", color }: SVGProps<SVGSVGElement>) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 16 16\"\n fill={color}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 1.5C4.41594 1.5 1.5 4.41594 1.5 8C1.5 11.5841 4.41594 14.5 8 14.5C11.5841 14.5 14.5 11.5841 14.5 8C14.5 4.41594 11.5841 1.5 8 1.5ZM11.3828 5.82156L7.18281 10.8216C7.13674 10.8764 7.07941 10.9208 7.01471 10.9516C6.95001 10.9823 6.87945 10.9989 6.80781 11H6.79938C6.72929 11 6.66 10.9852 6.59599 10.9567C6.53198 10.9282 6.47468 10.8865 6.42781 10.8344L4.62781 8.83438C4.5821 8.78589 4.54654 8.72876 4.52322 8.66633C4.4999 8.60391 4.4893 8.53745 4.49203 8.47087C4.49477 8.40429 4.51078 8.33892 4.53914 8.27862C4.56749 8.21831 4.60761 8.16429 4.65715 8.11971C4.70668 8.07514 4.76463 8.04091 4.82757 8.01905C4.89052 7.99719 4.95721 7.98813 5.02371 7.9924C5.09021 7.99668 5.15518 8.01421 5.21481 8.04396C5.27444 8.0737 5.32752 8.11507 5.37094 8.16562L6.78625 9.73812L10.6172 5.17844C10.7031 5.07909 10.8247 5.01754 10.9556 5.00711C11.0866 4.99668 11.2164 5.03819 11.317 5.12268C11.4175 5.20717 11.4808 5.32784 11.4931 5.45862C11.5055 5.5894 11.4658 5.71977 11.3828 5.82156Z\"\n fill=\"#5458D5\"\n />\n </svg>\n )\n}\n\nexport default iconChecked\n","import { api, apiUpload } from \"../../../configs/api\"\nimport { BASE_URL } from \"../../../utils/constants\"\nimport { ConversationFilter, MessageFilter, MessageRequest } from \"../configs/types\"\n\nconst CONVERSATION_URL = `${BASE_URL}/api/conversation`\n\nexport const getListConversation = (query: ConversationFilter) =>\n api.get(`${CONVERSATION_URL}`, {\n params: query\n })\n\nexport const createConversation = (studentId: number) =>\n api.post(`${CONVERSATION_URL}`, {\n targetUserId: `${studentId}`\n })\n\nexport const apiAddMessage = (conversationId: number, message: MessageRequest) =>\n api.post(`${CONVERSATION_URL}/${conversationId}/messages`, message)\n\nexport const getMessagesByConversation = (conversationId: number, filter: MessageFilter) =>\n api.get(`${CONVERSATION_URL}/${conversationId}/messages`, {\n params: filter\n })\n\nexport const completeConversation = (conversationId: number) =>\n api.post(`${CONVERSATION_URL}/${conversationId}/finish`)\n\n\nexport const apiMarkReadMessage = (conversationId: number, messageId: number) =>\n api.put(`${CONVERSATION_URL}/${conversationId}/messages/${messageId}/mark-read`)\n\nexport const apiGetConversationByUserId = (userId: number) =>\n api.get(`${CONVERSATION_URL}/users/${userId}`)\n \nexport const apiUploadFile = (file: FormData) =>\n apiUpload.post(`${BASE_URL}/api/file/upload`, file )","import { useState } from \"react\"\nimport { setLoading } from \"../../../redux/commons/action\";\nimport { toast } from \"react-toastify\";\nimport { completeConversation } from \"../apiClient/conversationService\";\n\nconst useDialog = () => {\n const [openConfirmDialog, setOpenConfirmDialog] = useState<boolean>(false);\n\n const toggleConfirmDialog = () => {\n setOpenConfirmDialog((state) => !state);\n };\n\n const handleConfirm = async(conversationId: number) => {\n setLoading(true)\n try {\n await completeConversation(conversationId)\n toggleConfirmDialog()\n toast.success(\"Complete conversation success\")\n } catch (error) {\n toast.error(\"Failed to complete conversation\")\n }\n setLoading(false)\n }\n\n\n return {\n openConfirmDialog,\n toggleConfirmDialog,\n handleConfirm\n }\n}\n\nexport default useDialog","import { FC, useMemo } from \"react\"\nimport React from \"react\"\nimport { Box, Grid, Typography } from \"@mui/material\"\nimport IconPersonNoActive from \"../../assets/iconPersonNoActive\"\nimport IconChecked from \"../../assets/iconChecked\"\nimport { ConfirmDialog } from \"../Dialogs/ConfirmDialog\"\nimport useDialog from \"./hooks/useDialog\"\nimport { useTranslation } from \"react-i18next\"\nimport { Roles } from \"./configs/constants\"\nimport utcToLocalTime from \"../../utils/utcToLocalTime\"\nimport moment from \"moment\"\n\nexport interface IExamOption {\n id: number\n code: string\n title: string\n createdAt: string\n startTime: string\n}\nexport interface IChatHeaderProps {\n fullName?: string\n examTitle?: string\n createdAt?: string\n durationExam?: string\n questionOrder?: number\n conversationId?: number\n isCompleted?: boolean\n teacherName?: string\n roles?: Array<string>\n}\nconst ChatHeader: FC<IChatHeaderProps> = ({\n fullName,\n examTitle,\n questionOrder,\n conversationId,\n isCompleted,\n durationExam,\n createdAt,\n teacherName,\n roles\n}) => {\n const { openConfirmDialog, toggleConfirmDialog, handleConfirm } =\n useDialog()\n const { t } = useTranslation()\n\n const isStudent = roles?.includes(Roles.Student)\n const filterDurationExam = useMemo(() => {\n if (!durationExam) return\n return moment.duration(durationExam)\n }, [durationExam])\n\n const renderHeader = () => {\n return isStudent ? (\n <Grid\n item\n xs={12}\n borderTop={\"1px solid #E4E7EC\"}\n borderBottom={\"1px solid #E4E7EC\"}\n minHeight={\"64px\"}\n padding={\"16px 8px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n justifyContent={\"space-between\"}\n >\n <Box\n padding={\"8px 12px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n border={\"1px solid #EBEBFF\"}\n borderRadius={\"6px\"}\n >\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n flexDirection={\"row\"}\n gap={\"8px\"}\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={500}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {t(\"counselor\")}\n </Typography>\n </Box>\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n color={\"#5458D5\"}\n >\n {teacherName}\n </Typography>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"start\"}\n color={\"#5458D5\"}\n gap={\"6px\"}\n flexDirection={\"column\"}\n >\n <Typography\n fontWeight={600}\n fontSize=\"12px\"\n lineHeight=\"14.32px\"\n >\n {examTitle}\n </Typography>\n <Box display={\"flex\"} flexDirection={\"row\"} gap={\"4px\"}>\n <Typography\n fontWeight={600}\n fontSize={\"12px\"}\n lineHeight={\"14.2px\"}\n >\n LIVE 시험\n </Typography>\n {filterDurationExam && (\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n >\n {`${!!filterDurationExam.hours() ? `${filterDurationExam.hours()} ${t(\"hour\")}` : \"\"} ${!!filterDurationExam.minutes() ? `${filterDurationExam.minutes()} ${t(\"minute\")}` : \"\"} ${!!filterDurationExam.seconds() ? `${filterDurationExam.seconds()} ${t(\"second\")}` : \"\"}`}\n </Typography>\n )}\n </Box>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"6px\"}\n flexDirection={\"column\"}\n >\n <Typography\n fontWeight={700}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#5458D5\"}\n >\n {questionOrder != undefined ? t(\"problem_number_question\", {\n number: questionOrder + 1\n }) : t(\"class_inquiry\")}\n </Typography>\n <Typography\n fontWeight={500}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n color={\"#97A1AF\"}\n >\n {utcToLocalTime(createdAt, t(\"date_time_format\"))}\n </Typography>\n </Box>\n </Grid>\n ) : (\n <Grid\n item\n xs={12}\n borderTop={\"1px solid #E4E7EC\"}\n borderBottom={\"1px solid #E4E7EC\"}\n minHeight={\"64px\"}\n padding={\"16px 8px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n justifyContent={\"space-between\"}\n >\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n color={\"#5458D5\"}\n >\n <Box\n display=\"flex\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n gap=\"8px\"\n >\n <IconPersonNoActive />\n <Typography\n fontWeight={500}\n fontSize=\"14px\"\n lineHeight=\"16.71px\"\n >\n {t(\"student\")}\n </Typography>\n </Box>\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n >\n {fullName}\n </Typography>\n </Box>\n <Box\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"24px\"}\n color={\"#5458D5\"}\n >\n {examTitle && (\n <Typography\n fontWeight={600}\n fontSize={\"12px\"}\n lineHeight={\"14.32px\"}\n >\n {examTitle}\n </Typography>\n )}\n <Typography\n fontWeight={700}\n fontSize={\"14px\"}\n lineHeight={\"16.71px\"}\n >\n {questionOrder != undefined ? t(\"problem_number_question\", {\n number: questionOrder + 1\n }) : t(\"class_inquiry\")}\n </Typography>\n </Box>\n {!isCompleted ? (\n <div onClick={toggleConfirmDialog}>\n <Box\n padding={\"8px 12px\"}\n display={\"flex\"}\n alignItems={\"center\"}\n gap={\"8px\"}\n border={\"1px solid #5458D5\"}\n borderRadius={\"6px\"}\n >\n <IconChecked />\n <Typography\n fontWeight={700}\n fontSize={\"13px\"}\n lineHeight={\"15.51px\"}\n color={\"#5458D5\"}\n >\n 완료 처리\n </Typography>\n </Box>\n </div>\n )\n :\n <div></div>}\n </Grid>\n )\n }\n\n return (\n <Grid container>\n <Grid\n item\n xs={12}\n paddingLeft={\"32px\"}\n paddingTop={\"20px\"}\n paddingBottom={\"16px\"}\n minHeight={\"60px\"}\n >\n <Typography\n fontWeight={800}\n fontSize={\"20px\"}\n color={\"#5458D5\"}\n lineHeight={\"23.87px\"}\n >\n {t(\"question_and_answer\")}\n </Typography>\n </Grid>\n {renderHeader()}\n <ConfirmDialog\n open={openConfirmDialog}\n toggle={toggleConfirmDialog}\n text={\"정말로 이 채팅 베팅을 완료하시겠습니까?\"}\n onConfirm={() => handleConfirm(conversationId || 0)}\n title={t(\"confirmation\")}\n okText={t(\"yes\")}\n cancelText={t(\"no\")}\n />\n </Grid>\n )\n}\n\nexport default ChatHeader\n","import ChatList, { IChatListProps } from \"./ChatList\"\nimport InputChat, { IInputChatProps } from \"./InputChat\"\nimport ChatHeader, { IChatHeaderProps } from \"./ChatHeader\"\nimport styles from \"./styles/chatStyles.module.scss\"\nimport React, { FC, useEffect, useRef } from \"react\"\nimport { CircularProgress, Grid } from \"@mui/material\"\n\nexport interface IChatContainerProps {\n chatHeaderProps: IChatHeaderProps\n chatListProps: IChatListProps\n inputProps: IInputChatProps\n height?: string\n scrollOffset?: number\n isLoading?: boolean\n isScrollToEnd?: boolean\n onReachTop?: () => void\n onReachBottom?: () => void\n onEndScrollToEnd?: () => void\n}\n\nconst ChatContainer: FC<IChatContainerProps> = ({\n chatHeaderProps,\n chatListProps,\n inputProps,\n scrollOffset = 0,\n isLoading = false,\n isScrollToEnd,\n onReachTop,\n onReachBottom,\n onEndScrollToEnd\n}) => {\n const inputRef = useRef<HTMLInputElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n const listItemRef = useRef<HTMLUListElement>(null)\n const scrollRef = useRef<any>()\n const addEventTimeout = useRef<any>()\n\n const handleScroll = async () => {\n if (listRef.current) {\n const scrollTop = listRef.current.scrollTop\n const scrollHeight = listRef.current.scrollHeight\n const clientHeight = listRef.current.clientHeight\n if (scrollTop + clientHeight + scrollOffset >= scrollHeight) {\n onReachBottom?.()\n } else if (scrollTop <= scrollOffset) {\n const isSuccessLoad = await onReachTop?.()\n if (isSuccessLoad) {\n listRef.current.scrollTop = listRef.current.scrollHeight - scrollHeight\n }\n }\n }\n\n if (scrollRef.current) clearTimeout(scrollRef.current)\n }\n\n useEffect(() => {\n scrollRef.current && clearTimeout(scrollRef.current)\n addEventTimeout.current && clearTimeout(addEventTimeout.current)\n listRef.current?.removeEventListener(\"scroll\", handleScroll)\n if (isScrollToEnd && !isLoading && chatListProps.messages?.length) {\n listItemRef.current?.lastElementChild?.scrollIntoView({\n behavior: \"smooth\"\n })\n onEndScrollToEnd?.()\n\n addEventTimeout.current = setTimeout(() => {\n listRef.current?.addEventListener(\"scroll\", handleScroll)\n }, 800)\n } else listRef.current?.addEventListener(\"scroll\", handleScroll)\n return () => {\n listRef.current?.removeEventListener(\"scroll\", handleScroll)\n scrollRef.current && clearTimeout(scrollRef.current)\n addEventTimeout.current && clearTimeout(addEventTimeout.current)\n }\n }, [\n JSON.stringify(chatListProps.messages),\n scrollOffset,\n isLoading,\n onEndScrollToEnd,\n isScrollToEnd\n ])\n\n useEffect(() => {\n onReachBottom?.()\n }, [JSON.stringify(chatListProps.messages)])\n\n return (\n <Grid container>\n <ChatHeader {...chatHeaderProps} />\n <div\n ref={listRef}\n className={`flex-grow-1 ${styles[\"body\"]}`}\n style={{\n height: \"60vh\",\n overflowY: \"scroll\",\n background: \"#F9FAFB\"\n }}\n >\n {isLoading && (\n <div style={{ height: \"100%\", width: \"100%\"}} className=\"d-flex justify-content-center align-items-center\">\n <CircularProgress />\n </div>\n )}\n <ChatList {...chatListProps} listItemRef={listItemRef} />\n </div>\n <InputChat {...inputProps} inputRef={inputRef} />\n </Grid>\n )\n}\n\nexport default ChatContainer\n","import { useState } from \"react\"\nimport { MESSAGE_DEFAULT_FILTER } from \"../configs/constants\"\nimport { MessageResponse, MessageFilter } from \"../configs/types\"\nimport { getMessagesByConversation } from \"../apiClient/conversationService\"\nimport { toast } from \"react-toastify\";\n\nconst useMessageList = () => {\n const [messages, setMessages] = useState<MessageResponse[]>([])\n const [messageFilter, setMessageFilter] = useState<MessageFilter>(MESSAGE_DEFAULT_FILTER)\n const [isLoading, setLoading] = useState<boolean>(false)\n\n const getMessageList = async (conversationId: number) => {\n setLoading(true)\n try {\n const filter = {\n ...messageFilter,\n }\n const res = await getMessagesByConversation(conversationId, filter)\n setMessages((prev) => [...res.data.items?.reverse(), ...prev])\n setMessageFilter((prev) => ({ ...prev, totalItems: res.data.totalItems, totalPages: res.data.totalPages }))\n } catch (error) {\n toast.error(\"Fail to fetch data!\")\n }\n setLoading(false)\n }\n\n const handleLoadMore = async(conversationId: number) => {\n if (isLoading) return\n const filter = {\n ...messageFilter,\n currentPage: (messageFilter?.currentPage || 1) + 1,\n }\n setMessageFilter(filter)\n setLoading(true)\n try {\n const res = await getMessagesByConversation(conversationId, filter)\n setMessages((prev) => {\n const data = [...res.data.items?.reverse(), ...prev]\n const dataFilter = new Set(data)\n return Array.from(dataFilter)\n })\n if(res.data.items){\n setMessageFilter((prev) => ({ ...prev, totalItems: res.data.totalItems, totalPages: res.data.totalPages }))\n }\n } catch (error) {\n toast.error(\"Fail to fetch data!\")\n return \n }\n setLoading(false)\n return true\n }\n\n const resetMessages = () => {\n setMessageFilter(MESSAGE_DEFAULT_FILTER)\n setMessages([])\n }\n\n return {\n isLoading,\n messageFilter,\n messages,\n getMessageList,\n setMessages,\n resetMessages,\n handleLoadMore,\n }\n}\n\nexport default useMessageList","import { useRef, useState, useEffect, useMemo } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { PUSHER_CONFIG, getAccessToken, BASE_URL, AcademyHeaders } from \"../../../utils/constants\";\nimport { apiAddMessage, apiUploadFile } from \"../apiClient/conversationService\";\nimport { ConversationsResponse, MessageResponse, MessageRequest, StudentsConversationResponse } from \"../configs/types\";\nimport Pusher, { Channel } from \"pusher-js\";\nimport useMessageList from \"./useMessageList\";\nimport { toast } from \"react-toastify\";\nimport { IChatItemProps } from \"../ChatItem\";\n\ninterface Props {\n conversation?: ConversationsResponse;\n student?: StudentsConversationResponse\n}\n\nconst useChatContainer = (props: Props) => {\n const { conversation, student } = props;\n const pusher = useRef<Pusher>();\n const channel = useRef<Channel>();\n const channelName = useRef<string>();\n const loadingRef = useRef<boolean>(false);\n\n const infoUser = useSelector((state: any) => state?.common?.user || {});\n const academyDomain = infoUser?.academyDomain\n const roles = useSelector((state: any) => state?.common?.user?.roles || []);\n\n const [selectedConversation, setSelectedConversation] = useState<ConversationsResponse>();\n const [selectedFile, setSelectedFile] = useState<MessageRequest | null>();\n const [message, setMessage] = useState<MessageRequest>();\n const [isScrollToEnd, setScrollToEnd] = useState<boolean>(true)\n\n const {\n isLoading: isLoadingMessages,\n messages,\n messageFilter,\n getMessageList,\n resetMessages,\n setMessages,\n handleLoadMore\n } = useMessageList();\n\n const handleToggleScrollToEnd = () => {\n setScrollToEnd((state: boolean) => !state)\n }\n\n const handleAddMessage = async () => {\n if(loadingRef.current) return; //when loading not add 2 message\n loadingRef.current = true;\n if (!selectedConversation?.id ) return;\n setScrollToEnd(true)\n\n try {\n if(selectedFile?.content) {\n await apiAddMessage(selectedConversation?.id, {\n ...selectedFile,\n contentType: 1\n });\n }\n if(message?.content?.trim().length) {\n await apiAddMessage(selectedConversation?.id, {\n ...message,\n });\n }\n\n handleChangeInput('')\n setSelectedFile(null)\n\n } catch (error) {\n setMessages((state: MessageResponse[]) => {\n return [...state.filter(i => i?.id !== 0)]\n })\n toast.error(error.response?.data)\n }\n loadingRef.current = false;\n };\n\n const handleUploadImage = async (file: File) => {\n console.log({ file });\n if(!file) return \n try {\n var formData = new FormData();\n formData.append(\"upload\", file);\n const res = await apiUploadFile(formData);\n setSelectedFile({ content: res?.data?.url})\n } catch (error) {\n setMessages((state: MessageResponse[]) => {\n return [...state.filter(i => i?.id !== 0)]\n })\n toast.error(error.response?.data)\n }\n finally{\n return \n }\n }\n\n const handleChangeInput = (text: string) => {\n setMessage({\n content: text,\n });\n };\n\n const handleNewMessageSent = (data: MessageResponse) => {\n if(!data) return\n setScrollToEnd(true)\n setMessages((state: MessageResponse[]) => {\n return [...state, data]\n });\n };\n\n const handleCompletedConversation = (data: string) => {\n if(!data) return\n setSelectedConversation(JSON.parse(data))\n };\n\n const handleLoadMoreMessages = async() => {\n if (selectedConversation?.id === undefined) return;\n\n return await handleLoadMore(selectedConversation?.id)\n }\n\n const handleDeleteSelectedImage = () => {\n setSelectedFile(null)\n}\n\n const cleanupPusher = () => {\n pusher.current?.unbind(\"new-message-event\", handleNewMessageSent);\n channelName.current &&\n pusher.current &&\n pusher.current.unsubscribe(channelName.current);\n };\n\n useEffect(() => {\n if (\n PUSHER_CONFIG.cluster &&\n PUSHER_CONFIG.key &&\n academyDomain &&\n !!selectedConversation?.id\n ) {\n const token = getAccessToken();\n pusher.current = new Pusher(PUSHER_CONFIG.key, {\n cluster: PUSHER_CONFIG.cluster,\n authEndpoint: `${BASE_URL}/api/auth/pusher`,\n auth: {\n params: {},\n headers: {\n Authorization: `Bearer ${token}`,\n [AcademyHeaders]: academyDomain\n },\n },\n });\n channelName.current = `presence-conversation-channel-${selectedConversation?.id}`;\n channel.current = pusher.current.subscribe(channelName.current);\n pusher.current.bind(\"new-message-event\", handleNewMessageSent);\n pusher.current.bind(\"completed-conversation-event\", handleCompletedConversation);\n }\n return cleanupPusher;\n }, [selectedConversation?.id, academyDomain]);\n\n useEffect(() => {\n const getConversation = async () => {\n resetMessages()\n setScrollToEnd(true)\n if (!conversation?.id) return\n\n setSelectedConversation(conversation);\n };\n getConversation();\n }, [conversation?.id]);\n\n const getMessageConversation = async () => {\n if (selectedConversation?.id === undefined) return;\n \n getMessageList(selectedConversation?.id);\n };\n\n const handleConversationChange = () => {\n resetMessages()\n setScrollToEnd(true)\n }\n\n const messageList: IChatItemProps[] = useMemo(() => {\n const results = messages.map((i: MessageResponse) => {\n return {\n ...i,\n isMe: infoUser?.id === i.sender?.id,\n };\n });\n return results\n }, [\n JSON.stringify(messages),\n infoUser?.id,\n ]);\n\n useEffect(() => {\n getMessageConversation();\n }, [JSON.stringify(selectedConversation)]);\n\n return {\n chatHeaderProps: {\n fullName: student?.fullName,\n examTitle: selectedConversation?.examTitle,\n questionOrder: selectedConversation?.question?.questionOrder,\n conversationId: selectedConversation?.id,\n isCompleted: selectedConversation?.isCompleted,\n durationExam: selectedConversation?.duration,\n createdAt: selectedConversation?.createdAt,\n teacherName: selectedConversation?.teacherName,\n roles\n },\n chatListProps: {\n messages: messageList,\n onReTrySendMessage: handleAddMessage,\n roles,\n },\n inputProps: {\n selectedFile,\n text: message?.content || \"\",\n onChangeInput: handleChangeInput,\n onSubmit: handleAddMessage,\n handleDeleteSelectedImage,\n handleUploadImage,\n isCompleted: selectedConversation?.isCompleted\n },\n isScrollToEnd,\n isLoadingMessages,\n messageList,\n selectedConversation,\n messageFilter,\n handleToggleScrollToEnd,\n handleLoadMoreMessages,\n getMessageList,\n setMessage,\n resetMessages: handleConversationChange,\n getMessageConversation,\n };\n};\n\nexport default useChatContainer;\n","import Pusher, { Channel } from \"pusher-js\"\nimport { useSelector } from \"react-redux\"\nimport { AcademyHeaders, BASE_URL, PUSHER_CONFIG } from \"../../../utils/constants\"\nimport { useEffect, useRef } from \"react\"\nimport getAccessToken from \"../../../utils/getAccessToken\"\nimport { ConversationResponse } from \"../configs/types\"\nconst usePusherConversation = (onNewMessageConversation?: (data: ConversationResponse) => void, onReadMessageConversation?: (id: number, total: number) => void) => {\n const pusher = useRef<Pusher>()\n const channel = useRef<Channel>()\n const channelName = useRef<string>()\n\n const user = useSelector((state: any) => state?.common?.user)\n const userId = user?.id\n const academyDomain = user?.academyDomain\n\n const handleNewMessageConversationCreated = (data: ConversationResponse) => {\n onNewMessageConversation?.(data)\n }\n\n const handleReadMessageConversation = (data: ConversationResponse) => {\n onReadMessageConversation?.(data.id, data.totalUnReadMessage)\n }\n\n const cleanupPusher = () => {\n channel.current && channel.current.unbind(\"message-conversation-event\", handleNewMessageConversationCreated);\n channel.current && channel.current.unbind(\"message-conversation-read-event\", handleReadMessageConversation)\n channelName.current &&\n pusher.current &&\n pusher.current.unsubscribe(channelName.current);\n };\n\n useEffect(() => {\n if (\n PUSHER_CONFIG.cluster &&\n PUSHER_CONFIG.key &&\n academyDomain &&\n !!userId\n ) {\n const token = getAccessToken()\n pusher.current = new Pusher(PUSHER_CONFIG.key, {\n cluster: PUSHER_CONFIG.cluster,\n authEndpoint: `${BASE_URL}/api/auth/pusher`,\n auth: {\n params: {},\n headers: {\n Authorization: `Bearer ${token}`,\n [AcademyHeaders]: academyDomain\n }\n }\n })\n channelName.current = `presence-conversation-channel-userId-${userId}`\n \n channel.current = pusher.current.subscribe(channelName.current)\n channel.current.bind(\n \"message-conversation-event\",\n handleNewMessageConversationCreated\n )\n channel.current.bind(\n \"message-conversation-read-event\",\n handleReadMessageConversation\n )\n }\n return cleanupPusher\n }, [userId, academyDomain])\n return {}\n}\n\nexport default usePusherConversation\n","import React from \"react\"\nimport CreatableSelect from 'react-select/creatable';\n\nconst CustomCreatable = ({\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n \n return (\n <CreatableSelect\n isClearable\n isDisabled={isDisabled}\n options={options}\n value={initialValues}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n {...rest}\n\n />\n )\n}\n\nexport default CustomCreatable\n","import React from \"react\"\nimport AsyncSelect from \"react-select\"\n\nconst CustomAsyncSelect = ({\n isDefault,\n defaultValue,\n options,\n isDisabled,\n scrollBottom,\n value,\n isMulti,\n ...rest\n}: any) => {\n const initialValues = Array.isArray(value) ? options.filter((i: any)=> value.includes(i.value)) : isMulti ? options.filter((i: any) => i.value == value) : options.find((i: any) => i.value == value)\n \n return (\n <AsyncSelect\n isDisabled={isDisabled}\n options={options}\n value={!isDefault ? initialValues : undefined}\n defaultValue={isDefault ? initialValues : undefined}\n menuPlacement={scrollBottom ? \"top\" : \"auto\"}\n isMulti={isMulti}\n {...rest}\n\n />\n )\n}\n\nexport default CustomAsyncSelect\n","import { Exam } from \"./types\";\n\nexport const DURATION_OPTIONS = Array.from({ length: 120 }, (_, i) => i + 1);\nexport const SCORE_OPTIONS = Array.from({ length: 10 }, (_, i) => i + 1);\nexport const QUESTION_OPTIONS = Array.from({ length: 10 }, (_, i) => i + 1);\nexport const ANSWER_OPTIONS = Array.from({ length: 9 }, (_, i) => i + 2);\nexport const DEFAULT_SCORE = 2\nexport const DEFAULT_ANSWER_COUNT = 5\n\nexport const DEFAULT_EXAM: Exam = {\n questions: [\n {\n article: 1,\n correctAnswers: [1],\n numberOfAnswers: DEFAULT_ANSWER_COUNT,\n score: DEFAULT_SCORE,\n questionOrder: 1\n }\n ],\n title: \"\",\n duration: 1\n}","import React, { FC } from 'react'\nimport { FormGroup, Input, Label } from \"reactstrap\"\nimport CustomSelect from \"../../../components/Selects/CustomSelect\"\n// import { useTranslation } from 'react-i18next'\nimport styles from \"../styles/styles.module.scss\"\nimport { DEFAULT_SCORE, SCORE_OPTIONS } from '../configs/constants'\n\nexport interface QuestionViewProps{\n index: number\n question: any\n answerCount: number\n isDisabled?: boolean\n onChangeCorrectAnswers: (value: any, index: number) => void\n onChangeScoreAnswer: (value: number, index: number) => void\n}\nconst QuestionView: FC<QuestionViewProps> = ({\n index,\n question,\n answerCount,\n isDisabled,\n onChangeCorrectAnswers,\n onChangeScoreAnswer\n}) => {\n // const { t } = useTranslation()\n \n const scoreOptions = SCORE_OPTIONS.map(i => ({\n label: DEFAULT_SCORE === i ? `${i}점 (기본값)` : `${i}점`,\n value: i\n }))\n\n return <div className=\"d-flex justify-content-between\">\n <div className=\"d-flex flex-grow-1\">\n <div className={`${styles[\"question-title\"]} me-2`}>\n 문제 {question.questionOrder + 1}번\n </div>\n <div className=\"d-flex flex-grow-1\">\n {\n Array.from({ length: answerCount }, (_, i) => i + 1).map(i => (\n <FormGroup className=\"d-flex flex-column px-4\" key={i}>\n <Label htmlFor={`answer-${i}`} className={`${styles[\"question-label\"]}`}>{i}번</Label>\n <Input\n id={`answer-${i}`}\n type={\"radio\"}\n checked={question.correctAnswers.includes(i)}\n onChange={() => onChangeCorrectAnswers(i, index)}\n disabled={isDisabled}\n />\n </FormGroup>\n ))\n }\n </div>\n </div>\n <div className=\"d-flex align-items-center\">\n <FormGroup className=\"mx-3\" style={{\n width: \"140px\"\n }}>\n <CustomSelect\n value={question.score}\n options={scoreOptions}\n onChange={(value: any) => onChangeScoreAnswer(value.value, index)}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </div>\n </div>\n}\n\nexport default QuestionView","import React, { FC } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { PiDotsNineLight } from \"react-icons/pi\"\nimport { Col, FormGroup, Label, Row } from \"reactstrap\"\nimport CustomSelect from \"../../../components/Selects/CustomSelect\"\nimport styles from \"../styles/styles.module.scss\"\nimport QuestionView from \"./QuestionView\"\nimport { ANSWER_OPTIONS, QUESTION_OPTIONS } from \"../configs/constants\"\n\nexport interface ArticleGroupViewProps {\n categoryOptions: any[]\n article: number\n questionCount: number\n categoryId?: number\n answerCount: number\n questions: any\n isMultiple?: boolean\n isActive?: boolean\n isDisabled?: boolean\n onChangeQuestionCount: (article: number, questionCount: number, answerCount: number) => void\n onChangeCategory: (article: number, categoryId: number) => void\n onChangeAnswerCount: (article: number, newAnswerCount: number, answerCount: number) => void\n onChangeCorrectAnswers: (article: number, index: number, answer: number) => void\n onChangeScoreAnswer: (article: number, index: number, score: number) => void\n}\nconst ArticleGroupView: FC<ArticleGroupViewProps> = ({\n categoryOptions,\n article,\n questions,\n answerCount,\n questionCount,\n categoryId,\n isActive,\n isDisabled,\n onChangeQuestionCount,\n onChangeCategory,\n onChangeAnswerCount,\n onChangeCorrectAnswers,\n onChangeScoreAnswer\n}) => {\n const { t } = useTranslation()\n\n const handleChangeQuestionCount = (value: any) => {\n onChangeQuestionCount(article, value?.value, answerCount)\n }\n\n const handleChangeCategory = (value: any) => {\n onChangeCategory(article, value?.value)\n }\n \n const handleChangeAnswerCount = (value: any) => {\n onChangeAnswerCount(article, value?.value, answerCount)\n }\n\n const handleChangeCorrectAnswers = (value: any, index: number) => {\n onChangeCorrectAnswers(article, index, value)\n }\n\n const handleChangeScoreAnswer = (value: number, index: number) => {\n onChangeScoreAnswer(article, index, value)\n }\n\n const questionOptions = QUESTION_OPTIONS.map(i => ({\n label: `${i}개`,\n value: i\n }))\n\n const answerOptions = ANSWER_OPTIONS.map(i => ({\n label: `${i}번`,\n value: i\n }))\n\n return (\n <div className={`d-flex ${styles[\"question\"]} ${isActive ? styles[\"question--active\"] : \"\"}`}>\n <div className=\"py-1\">\n <PiDotsNineLight size={18}/>\n </div>\n <div className=\"px-4\">\n <Row>\n <Col xs={12}>\n <p className={`mb-0 ${styles[\"question-article\"]}`}>문항</p>\n <p className={`text-center ${styles[\"question-article\"]}`}>{article}</p>\n </Col>\n </Row>\n </div>\n <div className=\"flex-grow-1\">\n <Row>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"question_count\" className={`${styles[\"question-label\"]}`}>\n {t(\"question_count\")}\n </Label>\n <CustomSelect\n inputId=\"question_count\"\n value={questionCount}\n options={questionOptions}\n onChange={handleChangeQuestionCount}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"category\" className={`${styles[\"question-label\"]}`}>{t(\"category\")}</Label>\n <CustomSelect\n inputId=\"category\"\n value={categoryId}\n options={categoryOptions}\n onChange={handleChangeCategory}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n <FormGroup>\n <Label htmlFor=\"answer_count\" className={`${styles[\"question-label\"]}`}>\n {t(\"answer_count\")}\n </Label>\n <CustomSelect\n inputId=\"answer_count\"\n value={answerCount}\n options={answerOptions}\n onChange={handleChangeAnswerCount}\n isDisabled={isDisabled}\n />\n </FormGroup>\n </Col>\n <Col xs={3}>\n </Col>\n </Row>\n <div>\n {\n questions.map((q: any, index: number) => (\n <QuestionView\n key={index}\n question={q}\n answerCount={answerCount}\n index={index}\n onChangeCorrectAnswers={handleChangeCorrectAnswers}\n onChangeScoreAnswer={handleChangeScoreAnswer}\n isDisabled={isDisabled}\n />\n ))\n }\n </div>\n </div>\n </div>\n )\n}\n\nexport default ArticleGroupView\n","import { DEFAULT_ANSWER_COUNT, DEFAULT_SCORE, DURATION_OPTIONS } from \"../configs/constants\"\nimport { ArticleGroup, Exam, Question } from \"../configs/types\"\nimport { ChangeEvent, useMemo } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport _ from \"lodash\"\n\ninterface Props {\n exam: Exam\n onChangeExam: (value: Exam) => void\n}\n\nconst useExamDetailView = (props: Props) => {\n const { exam, onChangeExam } = props\n\n const { t } = useTranslation()\n const handleChangeQuestionCount = (\n article: number,\n questionCount: number,\n answerCount: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const prevQuestions = examQuestions.filter(i => i.article < +article)\n const nextQuestions = examQuestions.filter(i => i.article > +article)\n const lastOrder = questions[questions.length - 1].questionOrder\n if (questions.length === questionCount) return\n if (questions.length < questionCount) {\n const additionalQuestions: Question[] = Array.from({\n length: questionCount - questions.length\n }).map((_, index) => ({\n article: +article,\n correctAnswers: [1],\n numberOfAnswers: answerCount,\n categoryId: questions[0]?.categoryId,\n score: DEFAULT_SCORE,\n questionOrder: lastOrder + index + 1\n }))\n const newQuestions = [\n ...prevQuestions,\n ...questions,\n ...additionalQuestions,\n ...nextQuestions.map(i => ({\n ...i,\n questionOrder: i.questionOrder + questionCount - questions.length\n }))\n ]\n\n onChangeExam({\n ...exam,\n questions: [...newQuestions]\n })\n } else {\n const remainQuestions = questions.slice(0, questionCount)\n const newQuestions = [\n ...prevQuestions,\n ...remainQuestions,\n ...nextQuestions.map(i => ({\n ...i,\n questionOrder: i.questionOrder - questions.length + questionCount\n }))\n ]\n\n onChangeExam({\n ...exam,\n questions: [...newQuestions]\n })\n }\n }\n\n const handleChangeCategory = (article: number, categoryId: number) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n categoryId\n }))\n ]\n })\n }\n\n const handleChangeAnswerCount = (\n article: number,\n newAnswerCount: number,\n answerCount: number\n ) => {\n if (!exam) return\n if (newAnswerCount === answerCount) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n if (answerCount < newAnswerCount) {\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n numberOfAnswers: newAnswerCount\n }))\n ]\n })\n } else {\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.map(q => ({\n ...q,\n numberOfAnswers: newAnswerCount,\n correctAnswers: q.correctAnswers?.filter(\n i => i <= newAnswerCount\n )\n }))\n ]\n })\n }\n }\n\n const handleChangeCorrectAnswers = (\n article: number,\n index: number,\n answer: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n const selectedQuestion = questions[index]\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.slice(0, index),\n {\n ...selectedQuestion,\n correctAnswers: [answer]\n },\n ...questions.slice(index + 1)\n ]\n })\n }\n\n const handleChangeScoreAnswer = (\n article: number,\n index: number,\n score: number\n ) => {\n if (!exam) return\n const examQuestions = exam.questions\n const questions = examQuestions.filter(i => i.article === +article)\n const otherQuestions = examQuestions.filter(i => i.article !== +article)\n const selectedQuestion = questions[index]\n if (score === selectedQuestion.score) return\n onChangeExam({\n ...exam,\n questions: [\n ...otherQuestions,\n ...questions.slice(0, index),\n {\n ...selectedQuestion,\n score\n },\n ...questions.slice(index + 1)\n ]\n })\n }\n\n const handleChangeDuration = (value: any) => {\n if (!exam) return\n onChangeExam({\n ...exam,\n duration: value?.value\n })\n }\n\n const handleChangeTitle = (e: ChangeEvent<HTMLInputElement>) => {\n if (!exam) return\n onChangeExam({\n ...exam,\n title: e.target.value\n })\n }\n\n const handleAddArticle = () => {\n if (!exam) return\n const maxArticle = _.maxBy(exam.questions, \"article\")?.article || 0\n const maxOrder = _.maxBy(exam.questions, \"questionOrder\")?.questionOrder || 0\n onChangeExam({\n ...exam,\n questions: [\n ...exam.questions,\n {\n article: maxArticle + 1,\n correctAnswers: [1],\n numberOfAnswers: DEFAULT_ANSWER_COUNT,\n score: DEFAULT_SCORE,\n questionOrder: maxOrder + 1\n }\n ]\n })\n }\n\n const examGroupByArticle: ArticleGroup[] = useMemo(() => {\n if (!exam) return []\n const articles = []\n const groupedArticle = _.groupBy(exam.questions, \"article\")\n for (const key in groupedArticle) {\n if (Object.prototype.hasOwnProperty.call(groupedArticle, key)) {\n const questions: Question[] = groupedArticle[key]\n articles.push({\n article: +key,\n categoryId: questions.find(i => !!i.categoryId)?.categoryId,\n answerCount:\n _.maxBy(questions, \"numberOfAnswers\")\n ?.numberOfAnswers || DEFAULT_ANSWER_COUNT,\n questionCount: questions.length,\n questions\n })\n }\n }\n return _.sortBy(articles, \"article\")\n }, [JSON.stringify(exam)])\n \n const durationOptions = useMemo(() => {\n const options = DURATION_OPTIONS.map((i) => (\n {\n label: `${i}분`,\n value: i\n }\n ));\n if(!!exam.duration && exam.duration > DURATION_OPTIONS[DURATION_OPTIONS.length - 1]) return [...options, {\n label: `${exam.duration}분`,\n value: exam.duration\n }]\n return options\n }, [exam.duration])\n \n return {\n t,\n durationOptions,\n examGroupByArticle,\n handleAddArticle,\n handleChangeScoreAnswer,\n handleChangeTitle,\n handleChangeDuration,\n handleChangeCorrectAnswers,\n handleChangeAnswerCount,\n handleChangeQuestionCount,\n handleChangeCategory\n }\n}\n\nexport default useExamDetailView\n","import React from 'react';\nimport { FC } from \"react\"\nimport { ExamDetailViewProps } from '../configs/interfaces';\nimport CustomSelect from '../../../components/Selects/CustomSelect';\nimport ArticleGroupView from '../components/ArticleGroupView';\nimport { FaPlusCircle } from 'react-icons/fa';\nimport styles from \"../styles/styles.module.scss\"\nimport useExamDetailView from '../hooks/useExamDetailView';\nimport { ArticleGroup } from '../configs/types';\nimport stylesGlobal from '../../../styles.module.scss';\n\nconst ExamDetailView: FC<ExamDetailViewProps> = ({\n className = \"\",\n categoryOptions,\n exam,\n isUsingMui = true,\n isDisabled,\n onChangeExam\n}) => {\n const {\n t,\n durationOptions,\n examGroupByArticle,\n handleAddArticle,\n handleChangeScoreAnswer,\n handleChangeTitle,\n handleChangeDuration,\n handleChangeCorrectAnswers,\n handleChangeAnswerCount,\n handleChangeQuestionCount,\n handleChangeCategory\n } = useExamDetailView({\n exam,\n onChangeExam\n })\n\n return <div className={`${className} ${stylesGlobal[\"custom-row\"]}`}>\n <div className={stylesGlobal[\"custom-col-5\"]}>\n <div className='mb-3'>\n <label className={`${stylesGlobal[\"form-label\"]} ${styles[\"question-label\"]}`} htmlFor=\"title\">{t(\"title\")}</label>\n {/* <Input disabled={isDisabled} className={`w-100 rounded-2 ${styles[\"question-input\"]}`} value={exam.title} id=\"title\" placeholder={t(\"enter_title\")} onChange={handleChangeTitle}/> */}\n <input disabled={isDisabled} className={`${stylesGlobal[\"form-control\"]}`} value={exam.title} id=\"title\" placeholder={t(\"enter_title\")} onChange={handleChangeTitle}/>\n </div>\n </div>\n <div className={stylesGlobal[\"custom-col-3\"]}>\n <div className='mb-3'>\n <label className={`${stylesGlobal[\"form-label\"]} ${styles[\"question-label\"]}`} htmlFor=\"duration\">{t(\"duration\")}</label>\n <CustomSelect\n inputId=\"duration\"\n value={exam.duration}\n options={durationOptions}\n onChange={handleChangeDuration}\n isDisabled={isDisabled}\n />\n </div>\n </div>\n {/* <div className={stylesGlobal[\"custom-col-4\"]}></div> */}\n {\n examGroupByArticle.map((i: ArticleGroup, index: number) => (\n <div key={i.article} className={`${stylesGlobal[\"custom-col-12\"]} ${index === 0 && !isUsingMui ? \"mt-3\" : \"\"} ${!isUsingMui ? \"mb-4\" : \"\"}`}>\n <ArticleGroupView\n {...i}\n categoryOptions={categoryOptions}\n isActive={index === examGroupByArticle.length - 1}\n onChangeQuestionCount={handleChangeQuestionCount}\n onChangeCategory={handleChangeCategory}\n onChangeAnswerCount={handleChangeAnswerCount}\n onChangeCorrectAnswers={handleChangeCorrectAnswers}\n onChangeScoreAnswer={handleChangeScoreAnswer}\n isDisabled={isDisabled}\n />\n </div>\n ))\n }\n <div className={stylesGlobal[\"custom-col-12\"]}>\n {/* <Button disabled={isDisabled} className={`w-100 d-flex justify-content-center align-items-center ${styles[\"question-btn\"]}`} color=\"primary\" outline onClick={handleAddArticle}>\n <FaPlusCircle className=\"me-2\"/>\n 문항 추가하기\n </Button> */}\n <button disabled={isDisabled} className={`${stylesGlobal[\"btn-outline-primary\"]} w-100 d-flex justify-content-center align-items-center ${styles[\"question-btn\"]} mt-3`} onClick={handleAddArticle}>\n <FaPlusCircle className=\"me-2\"/>\n 문항 추가하기\n </button>\n </div>\n </div>\n}\n\nexport default ExamDetailView","import { useSelector } from \"react-redux\"\nimport { getAcademyDomain } from \"../constants\"\nimport { useEffect } from \"react\"\n\nconst useAutoAcademyDomain = (\n logout: Function,\n history: any,\n superUrls: string[],\n homeUrl: string,\n homeAcademyUrl: string\n) => {\n const searchParams = new URLSearchParams(window.location.search)\n const user = useSelector((state: any) => state?.common?.user)\n\n const initialAcademySearchParam = () => {\n const paramAcademyDomain = searchParams.get(\"domain\")\n const domain = getAcademyDomain()\n const pathname = window.location.pathname.toLowerCase()\n if (!user) return\n const { academyDomain } = user\n if (!academyDomain) {\n if (!superUrls.some(i => pathname.startsWith(i))) {\n pushTo({\n pathname: homeUrl,\n search: \"\"\n })\n }\n if(domain)\n {\n searchParams.append(\"domain\", domain)\n pushTo({\n pathname: homeUrl,\n search: \"\"\n })\n }\n } else {\n if (superUrls.some(i => pathname.startsWith(i))) {\n pushTo({\n pathname: homeAcademyUrl,\n search: \"\"\n })\n }\n if (\n paramAcademyDomain &&\n academyDomain.trim().toLocaleLowerCase() !=\n paramAcademyDomain?.trim().toLocaleLowerCase()\n ) {\n logout()\n }\n if (!paramAcademyDomain && academyDomain) {\n searchParams.append(\"domain\", academyDomain)\n pushTo({\n ...window.location,\n search: searchParams.toString()\n })\n }\n }\n }\n\n const pushTo = (data: any) => {\n if (history.push) history.push(data)\n else history(data)\n }\n\n useEffect(() => {\n initialAcademySearchParam()\n }, [window.location.pathname, user?.academyDomain])\n}\n\nexport default useAutoAcademyDomain\n","import { createBrowserHistory } from \"history\"\nconst historyCore = createBrowserHistory()\n\nimport { setLoading, setAlert, setUser, setLanguage, setReFetchUserAcademies } from \"./redux/commons/action\"\nimport { BASE_URL, SUPER_ADMIN_BASE_URL, ACCESS_TOKEN, PUSHER_CONFIG, EXAM_CHANNEL, EXAM_STUDENT_CHANNEL, DATE_MIN_VALUE, DATE_TIME_MIN_VALUE, ACADEMY_DOMAIN, getAcademyDomain, AcademyHeaders } from \"./utils/constants\"\nimport utcToLocalTime from \"./utils/utcToLocalTime\"\nimport Login from \"./containers/Login/views/Login\"\nimport store from \"./store\"\n\nimport NotFound from \"./components/Commons/NotFound\"\nimport Loading from \"./components/Loading/Loading\"\nimport LayoutContext from \"./layouts/LayoutContext\"\nimport { api, apiUpload } from \"./configs/api\"\nimport { ConfirmDialog } from \"./components/Dialogs/ConfirmDialog\"\nimport CommonDialog from \"./components/Dialogs/CommonDialog\"\nimport CommonAlert from \"./components/Alerts/CommonAlert\"\nimport formatTime from \"./utils/formatTime\"\nimport diffFromNow from \"./utils/diffFromNow\"\nimport CustomPagination from \"./components/Paginations/CustomPagination\"\nimport useGoogleSignOut from \"./utils/hooks/useGoogleSignOut\"\nimport { ExamEvent } from \"./utils/types\"\nimport i18n from \"./i18n\"\nimport TheLanguageDropdown from \"./layouts/TheLanguageDropdown\"\nimport TheAcademyDropdown from \"./layouts/TheAcademyDropdown\"\nimport { useTranslation, I18nextProvider } from \"react-i18next\"\nimport minutesToTimeSpan from \"./utils/minutesToTimeSpan\"\nimport toISOString from \"./utils/toISOString\"\nimport canAccessRoute from \"./utils/canAccessRoute\"\nimport CustomSelect from \"./components/Selects/CustomSelect\"\nimport getAccessToken from \"./utils/getAccessToken\"\nimport ChatContainer, { IChatContainerProps } from \"./components/Chats/ChatContainer\"\nimport { ChatItemType, IChatItemProps } from \"./components/Chats/ChatItem\"\nimport { IChatHeaderProps } from \"./components/Chats/ChatHeader\"\nimport { IInputChatProps } from \"./components/Chats/InputChat\"\nimport useChatContainer from \"./components/Chats/hooks/useChatContainer\"\nimport { ConversationResponse } from \"./components/Chats/configs/types\"\nimport usePusherConversation from \"./components/Chats/hooks/usePusherConversation\"\nimport { ToastContainer, toast } from \"react-toastify\"\nimport { Role } from \"./containers/Login/configs/constants\"\nimport useLanguage from \"./utils/hooks/useLanguage\"\nimport { LANGUAGES } from \"./configs/constants\"\nimport CustomCreatable from \"./components/Selects/CustomCreatable\"\nimport moment from \"moment\"\nimport CustomAsyncSelect from \"./components/Selects/CustomAsyncSelect\"\nimport ExamDetailView from \"./containers/Exams/views/ExamDetailView\"\nimport { ExamDetailViewProps } from \"./containers/Exams/configs/interfaces\"\nimport { Exam, Question, ArticleGroup } from \"./containers/Exams/configs/types\"\nimport { useAutoAcademyDomain, useLogin } from \"./utils/hooks\"\nimport { LoginAccessTokenRequest, LoginRequest } from \"./utils/types/login\"\nimport useSwitchAcademy from \"./utils/hooks/useSwitchAcademy\"\nimport * as ChatTypes from \"./components/Chats/configs/types\"\n\nexport {\n diffFromNow,\n formatTime,\n utcToLocalTime,\n setLoading,\n BASE_URL,\n SUPER_ADMIN_BASE_URL,\n ACCESS_TOKEN,\n Login,\n store,\n historyCore,\n setAlert,\n setUser,\n Loading,\n NotFound,\n LayoutContext,\n api,\n apiUpload,\n ConfirmDialog,\n CommonDialog,\n CommonAlert,\n CustomPagination,\n useGoogleSignOut,\n PUSHER_CONFIG,\n ExamEvent,\n EXAM_CHANNEL,\n EXAM_STUDENT_CHANNEL,\n // language\n setLanguage,\n i18n,\n TheLanguageDropdown,\n TheAcademyDropdown,\n useTranslation,\n I18nextProvider,\n DATE_MIN_VALUE,\n DATE_TIME_MIN_VALUE,\n ACADEMY_DOMAIN,\n minutesToTimeSpan,\n toISOString,\n canAccessRoute,\n CustomSelect,\n CustomAsyncSelect,\n getAccessToken,\n ChatContainer,\n IChatContainerProps,\n IChatItemProps,\n IChatHeaderProps,\n IInputChatProps,\n ChatItemType,\n useChatContainer,\n ConversationResponse,\n usePusherConversation,\n ToastContainer,\n toast,\n Role,\n useLanguage,\n useSwitchAcademy,\n LANGUAGES,\n CustomCreatable,\n moment,\n ExamDetailView,\n ExamDetailViewProps,\n Exam,\n Question,\n ArticleGroup,\n getAcademyDomain,\n useLogin,\n useAutoAcademyDomain,\n LoginAccessTokenRequest,\n LoginRequest,\n setReFetchUserAcademies,\n ChatTypes,\n AcademyHeaders\n}\n"],"names":["setLoading","createAction","setAlert","setUser","setLanguage","reset","setReFetchUserAcademies","GOOGLE_RECAPTCHA_KEY","process","env","REACT_APP_GOOGLE_RECAPTCHA_KEY","GOOGLE_CLIENT_ID","REACT_APP_GOOGLE_CLIENT_ID","GOOGLE_RECAPTCHA_ID","REACT_APP_GOOGLE_RECAPTCHA_ID","GOOGLE_RECAPTCHA_SECRET","REACT_APP_GOOGLE_RECAPTCHA_SECRET","BASE_URL","REACT_APP_BASE_URL","SUPER_ADMIN_BASE_URL","REACT_APP_SUPER_ADMIN_BASE_URL","PUSHER_CONFIG","cluster","REACT_APP_PUSHER_CONFIG_CLUSTER","key","REACT_APP_PUSHER_CONFIG_KEY","ACCESS_TOKEN","ACADEMY_DOMAIN","AcademyHeaders","DATE_MIN_VALUE","DATE_TIME_MIN_VALUE","EXAM_CHANNEL","EXAM_STUDENT_CHANNEL","getAccessToken","localStorage","getItem","err","getAcademyDomain","encodeParams","params","Object","keys","filter","map","Array","isArray","i","encodeURIComponent","join","time","FORMAT","moment","utc","local","format","_unused","AuthenticationMessage","Role","api","axios","create","baseURL","timeout","headers","paramsSerializer","apiUpload","forEach","interceptors","request","use","config","token","searchParams","URLSearchParams","window","location","search","paramDomain","get","academyDomainStorage","academyDomain","Authorization","setItem","error","Promise","reject","response","console","log","_error$response","status","_error$response2","removeItem","href","AUTH_URL","AUTH_SUPER_ADMIN_URL","getInfo","getSuperAdminInfoFromWeb","apiLoginGoogle","body","post","apiLoginGoogleSuperAdmin","apiLoginWithAccessToken","domain","_headers","useGoogleSignOut","props","dispatch","useDispatch","onLogoutSuccess","onFailure","handleLogoutSuccess","handleLogoutFailure","_useGoogleLogout","useGoogleLogout","clientId","signOut","loaded","handleSignOut","isRemoveDomainStorage","ERROR_MESSAGE","useLogin","onNavigate","homeAcademyUrl","homeUrl","registerUrl","_useTranslation","useTranslation","t","_useGoogleSignOut","handleLoginGoogle","data","isLogout","isStudent","role","Student","resolve","handleLogin","then","loginResponse","result","_temp","e","handleLoginAccessToken","_temp2","apiLogin","_temp3","_catch","isFirstLogin","user","isAcademy","needToRegister","redirectUrl","redirectLoginUser","_error$response$data","_error$response2$data","_error$response3","message","undefined","title","alert","_temp4","_extends","schema","yup","email","required","password","rememberMe","BlockLogin","_ref","defaultInfo","_ref$role","_useLogin","onSuccessGoogle","res","accessToken","_res$profileObj","profileObj","imageUrl","name","tokenObj","id_token","googleId","infoLogin","fullName","onFailureGoogle","React","Formik","initialValues","validationSchema","onSubmit","formikProps","handleSubmit","Row","className","styles","Col","Form","src","GoogleLogin","buttonText","onSuccess","cookiePolicy","isSignedIn","captcha","_useState","useState","openLogin","setOpenLogin","_useState2","infoUser","setInfoUser","toggle","useCallback","_useState3","isShowPassword","setIsShowPassword","useEffect","start","gapi","client","init","scope","load","Login","rest","_objectWithoutPropertiesLoose","_excluded","lg","md","xs","this","global","initialState","isLoading","type","isReFetchUserAcademies","commonReducer","createReducer","builder","addCase","state","action","payload","language","_state","_action","rootReducer","combineReducers","common","store","configureStore","reducer","middleware","getDefaultMiddleware","serializableCheck","concat","logger","TITLE","NotFound","document","loadingStyle","minWidth","minHeight","position","top","left","zIndex","backgroundColor","display","justifyContent","alignItems","Loading","useSelector","style","LayoutContext","children","_state$common","roles","resetAuth","checkRoleUser","includes","JSON","stringify","loadInfo","info","Admin","Fragment","ConfirmDialog","open","text","_ref$cancelText","cancelText","_ref$okText","okText","isDelete","_ref$title","onConfirm","confirmText","confirmTextValue","setConfirmTextValue","handleConfirm","handleChangeConfirmText","target","value","handlePaste","preventDefault","isValid","trim","Modal","isOpen","centered","ModalHeader","ModalBody","Input","onChange","placeholder","onPaste","invalid","valid","ModalFooter","Button","color","onClick","disabled","CommonDialog","_ref$size","size","onClose","backdrop","CommonAlert","useRef","onDismiss","current","clearTimeout","_alert$message","length","setTimeout","_alert$message2","Alert","ORIGINAL_FORMAT","unitOfTime","targetTime","now","diff","CustomPagination","currentPage","totalPage","onChangePage","Pagination","PaginationItem","PaginationLink","previous","active","page","next","ExamEvent","i18n","initReactI18next","lng","fallbackLng","interpolation","escapeValue","resources","ko","translation","lang_ko","en","lang_en","DEFAULT_LANGUAGE_INDEX","LANGUAGES","code","shortName","nativeName","image","momentLangCode","useLanguage","defaultLanguage","navigator","dropdownOpen","setDropdownOpen","setItemLanguage","prevState","changeLanguageApp","lang","find","changeLanguage","locale","currentLanguage","useMemo","currentLang","TheLanguageDropdown","_useLanguage","Dropdown","DropdownToggle","textTransform","IoChevronDown","fontSize","marginLeft","marginTop","DropdownMenu","index","DropdownItem","width","marginRight","ACADEMY_URL","SUPER_ADMIN_ACADEMY_URL","getAcademyList","getUserAcademies","switchAcademy","academyId","useSwitchAcademy","navigate","toggleDropdown","academyList","setAcademyList","_state$common2","getAcademies","isSuperAdminUser","isSuperAdminRole","items","handleSwitchAcademy","toast","tile","selectedAcademy","id","requestBody","_temp5","_user$academyDomain","toLowerCase","TheAcademyDropdown","_useSwitchAcademy","firstLetter","_selectedAcademy$name","_selectedAcademy$name2","charAt","toUpperCase","alt","fontWeight","GoArrowSwitch","academy","h","Math","floor","m","toString","padStart","toISOString","canAccess","userRoles","componentRoles","intersects","DropdownIndicator","components","FaCaretDown","CustomOption","Option","label","customStyles","control","baseStyles","borderColor","isFocused","input","_","singleValue","CustomSelect","isDefault","defaultValue","options","isDisabled","scrollBottom","isMulti","Select","menuPlacement","IndicatorSeparator","iconPersonNoActive","_ref$width","_ref$height","height","viewBox","fill","xmlns","d","ChatRightItem","content","createdAt","sender","showTimestamp","showName","contentType","Typography","lineHeight","textAlign","utcToLocalTime","Grid","item","padding","Box","gap","flexDirection","IconPersonNoActive","backgroundRepeat","backgroundSize","objectFit","ChatLeftItem","ChatItemType","ChatItem","isMe","MessageSortBy","OrderBy","StudentSortBy","StudentOrderBy","MessageAction","MessageSourceType","MessageStatus","ExamStatus","Roles","MESSAGE_DEFAULT_FILTER","pageSize","textSearch","sortColumnDirection","DESC","sortColumnName","CreatedAt","ChatList","messages","_ref$messages","onReTrySendMessage","listItemRef","filterMessage","prevTime","prevSender","currentTime","Date","getTime","_message$sender","_message$sender2","ref","iconSendMessage","InputChat","inputRef","onChangeInput","isCompleted","handleUploadImage","selectedFile","handleDeleteSelectedImage","fileInputRef","handleInputChange","event","handleKeyPressEnter","handleSelectedFile","files","border","borderRadius","margin","right","cursor","IoCloseOutline","onKeyPress","variant","component","FaImage","hidden","accept","onChangeCapture","sx","bgcolor","IconSendMessenger","iconChecked","CONVERSATION_URL","apiAddMessage","conversationId","getMessagesByConversation","completeConversation","apiUploadFile","file","useDialog","openConfirmDialog","setOpenConfirmDialog","toggleConfirmDialog","success","ChatHeader","examTitle","questionOrder","durationExam","teacherName","_useDialog","filterDurationExam","duration","renderHeader","borderTop","borderBottom","hours","minutes","seconds","number","IconChecked","container","paddingLeft","paddingTop","paddingBottom","ChatContainer","chatHeaderProps","chatListProps","inputProps","_ref$scrollOffset","scrollOffset","_ref$isLoading","isScrollToEnd","onReachTop","onReachBottom","onEndScrollToEnd","listRef","scrollRef","addEventTimeout","handleScroll","scrollTop","scrollHeight","clientHeight","isSuccessLoad","_listRef$current","removeEventListener","_chatListProps$messag","_listItemRef$current","_listItemRef$current$","lastElementChild","scrollIntoView","behavior","_listRef$current2","addEventListener","_listRef$current3","_listRef$current4","overflowY","background","CircularProgress","useMessageList","setMessages","messageFilter","setMessageFilter","getMessageList","prev","_res$data$items","reverse","totalItems","totalPages","handleLoadMore","_exit","_res$data$items2","dataFilter","Set","from","resetMessages","useChatContainer","conversation","student","pusher","channel","channelName","loadingRef","_state$common2$user","selectedConversation","setSelectedConversation","setSelectedFile","setMessage","_useState4","setScrollToEnd","_useMessageList","isLoadingMessages","handleToggleScrollToEnd","handleAddMessage","handleChangeInput","_message$content","_temp6","_finally","formData","FormData","append","_res$data","url","handleNewMessageSent","handleCompletedConversation","parse","handleLoadMoreMessages","cleanupPusher","_pusher$current","unbind","unsubscribe","Pusher","authEndpoint","auth","subscribe","bind","getConversation","getMessageConversation","handleConversationChange","messageList","results","_i$sender","_selectedConversation","question","usePusherConversation","onNewMessageConversation","onReadMessageConversation","userId","handleNewMessageConversationCreated","handleReadMessageConversation","totalUnReadMessage","CustomCreatable","CreatableSelect","isClearable","CustomAsyncSelect","AsyncSelect","DURATION_OPTIONS","SCORE_OPTIONS","QUESTION_OPTIONS","ANSWER_OPTIONS","DEFAULT_SCORE","DEFAULT_ANSWER_COUNT","QuestionView","answerCount","onChangeCorrectAnswers","onChangeScoreAnswer","scoreOptions","FormGroup","Label","htmlFor","checked","correctAnswers","score","ArticleGroupView","categoryOptions","article","questions","questionCount","categoryId","isActive","onChangeQuestionCount","onChangeCategory","onChangeAnswerCount","handleChangeQuestionCount","handleChangeCategory","handleChangeAnswerCount","handleChangeCorrectAnswers","handleChangeScoreAnswer","questionOptions","answerOptions","PiDotsNineLight","inputId","q","useExamDetailView","exam","onChangeExam","examQuestions","prevQuestions","nextQuestions","lastOrder","additionalQuestions","_questions$","numberOfAnswers","newQuestions","remainQuestions","slice","otherQuestions","newAnswerCount","_q$correctAnswers","answer","selectedQuestion","handleChangeDuration","handleChangeTitle","handleAddArticle","maxArticle","_$maxBy","maxBy","maxOrder","_$maxBy2","examGroupByArticle","articles","groupedArticle","groupBy","prototype","hasOwnProperty","call","_questions$find","_$maxBy3","push","sortBy","durationOptions","ExamDetailView","_ref$className","_ref$isUsingMui","isUsingMui","_useExamDetailView","stylesGlobal","FaPlusCircle","useAutoAcademyDomain","logout","history","superUrls","initialAcademySearchParam","paramAcademyDomain","pathname","some","startsWith","pushTo","toLocaleLowerCase","historyCore","createBrowserHistory"],"mappings":"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CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,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"}
|