mario-core 2.9.301-release → 2.9.302-release

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -10,14 +10,14 @@ var reactRouterDom = require('react-router-dom');
10
10
  var reactRedux = require('react-redux');
11
11
  var formik = require('formik');
12
12
  var yup = require('yup');
13
- var msalBrowser = require('@azure/msal-browser');
13
+ var reactGoogleRecaptchaV3 = require('react-google-recaptcha-v3');
14
+ var GoogleLogin = _interopDefault(require('react-google-login'));
15
+ var Select = _interopDefault(require('react-select'));
14
16
  var toolkit = require('@reduxjs/toolkit');
15
17
  var axios = _interopDefault(require('axios'));
16
18
  var amplitude = _interopDefault(require('amplitude-js'));
17
19
  var moment = _interopDefault(require('moment'));
18
- var reactGoogleRecaptchaV3 = require('react-google-recaptcha-v3');
19
- var GoogleLogin = _interopDefault(require('react-google-login'));
20
- var Select = _interopDefault(require('react-select'));
20
+ var msalBrowser = require('@azure/msal-browser');
21
21
  var gi = require('react-icons/gi');
22
22
  var react = require('@coreui/react');
23
23
  var cg = require('react-icons/cg');
@@ -37167,14 +37167,23 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
37167
37167
  return it.next.bind(it);
37168
37168
  }
37169
37169
 
37170
- var getAccessToken = (function () {
37171
- try {
37172
- var isSessionUserBrowser = sessionStorage.getItem(IS_USER_SESSION_BROWSER);
37173
- return !isSessionUserBrowser ? localStorage.getItem(ACCESS_TOKEN) : sessionStorage.getItem(ACCESS_TOKEN);
37174
- } catch (err) {
37175
- return null;
37176
- }
37177
- });
37170
+ var CustomSelector = function CustomSelector(_ref) {
37171
+ var defaultValue = _ref.defaultValue,
37172
+ options = _ref.options,
37173
+ isDisabled = _ref.isDisabled,
37174
+ scrollBottom = _ref.scrollBottom,
37175
+ rest = _objectWithoutPropertiesLoose(_ref, ["defaultValue", "options", "isDisabled", "scrollBottom"]);
37176
+
37177
+ var initValue = defaultValue !== null && typeof defaultValue !== "undefined" ? options.find(function (option) {
37178
+ return option.value === defaultValue;
37179
+ }) || null : null;
37180
+ return React__default.createElement(Select, Object.assign({
37181
+ isDisabled: isDisabled,
37182
+ options: options,
37183
+ value: initValue,
37184
+ menuPlacement: scrollBottom ? "top" : "auto"
37185
+ }, rest));
37186
+ };
37178
37187
 
37179
37188
  var setLoading = toolkit.createAction("common/setLoading");
37180
37189
  var setModal = toolkit.createAction("common/setModal");
@@ -37211,6 +37220,15 @@ var encodeParams = (function (params) {
37211
37220
  }).join('&');
37212
37221
  });
37213
37222
 
37223
+ var getAccessToken = (function () {
37224
+ try {
37225
+ var isSessionUserBrowser = sessionStorage.getItem(IS_USER_SESSION_BROWSER);
37226
+ return !isSessionUserBrowser ? localStorage.getItem(ACCESS_TOKEN) : sessionStorage.getItem(ACCESS_TOKEN);
37227
+ } catch (err) {
37228
+ return null;
37229
+ }
37230
+ });
37231
+
37214
37232
  var api = axios.create({
37215
37233
  baseURL: BASE_URL,
37216
37234
  timeout: 0,
@@ -37344,14 +37362,131 @@ var createPassword = function createPassword(data) {
37344
37362
  return api.post(ACCOUNT_URL + "/createPassword", data);
37345
37363
  };
37346
37364
 
37347
- var SCHOOL_URL = BASE_URL + "/api/school";
37348
- var getSchoolSettings = function getSchoolSettings() {
37349
- return api.get(SCHOOL_URL + "/settings");
37350
- };
37351
- var getInfo$1 = function getInfo() {
37352
- return api.get(SCHOOL_URL + "/info");
37365
+ var BlockSelectTeacher = function BlockSelectTeacher(_ref) {
37366
+ var defaultValue = _ref.defaultValue,
37367
+ isDisabled = _ref.isDisabled,
37368
+ openModal = _ref.openModal,
37369
+ onSubmit = _ref.onSubmit,
37370
+ token = _ref.token,
37371
+ email = _ref.email;
37372
+
37373
+ var _useState = React.useState(false),
37374
+ modal = _useState[0],
37375
+ setModal = _useState[1];
37376
+
37377
+ React.useEffect(function () {
37378
+ setModal(openModal);
37379
+ }, [openModal]);
37380
+ var dispatch = reactRedux.useDispatch();
37381
+
37382
+ var _useState2 = React.useState([]),
37383
+ teachers = _useState2[0],
37384
+ setTeachers = _useState2[1];
37385
+
37386
+ var _useState3 = React.useState(""),
37387
+ searchString = _useState3[0],
37388
+ setSearchString = _useState3[1];
37389
+
37390
+ var _useState4 = React.useState(""),
37391
+ teacherEmail = _useState4[0],
37392
+ setTeacherEmail = _useState4[1];
37393
+
37394
+ var _useState5 = React.useState(false),
37395
+ isLoading = _useState5[0],
37396
+ setLoading = _useState5[1];
37397
+
37398
+ var timeout = React.useRef();
37399
+
37400
+ var toggle = function toggle() {
37401
+ setModal(!modal);
37402
+ dispatch(setIsLoginGoogle(!modal));
37403
+ };
37404
+
37405
+ var loadData = React.useCallback(function () {
37406
+ try {
37407
+ var _temp3 = function _temp3() {
37408
+ setLoading(false);
37409
+ };
37410
+
37411
+ setLoading(true);
37412
+
37413
+ var _temp4 = _catch(function () {
37414
+ var data = {
37415
+ token: token,
37416
+ email: email
37417
+ };
37418
+ return Promise.resolve(getAllLoginTeacher(data)).then(function (res) {
37419
+ setTeachers(res.data);
37420
+ });
37421
+ }, function (err) {
37422
+ var _err$response, _err$response$data;
37423
+
37424
+ dispatch(setAlert({
37425
+ type: "danger",
37426
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
37427
+ }));
37428
+ });
37429
+
37430
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
37431
+ } catch (e) {
37432
+ return Promise.reject(e);
37433
+ }
37434
+ }, [searchString]);
37435
+ React.useEffect(function () {
37436
+ timeout && timeout.current && clearTimeout(timeout.current);
37437
+
37438
+ if (!searchString || searchString.trim().length < 2) {
37439
+ setTeachers([]);
37440
+ } else {
37441
+ timeout.current = setTimeout(loadData, 300);
37442
+ }
37443
+ }, [searchString]);
37444
+ var options = teachers.map(function (teacher) {
37445
+ return {
37446
+ label: teacher.fullName + " (" + teacher.email + ")",
37447
+ value: teacher.teacherId
37448
+ };
37449
+ });
37450
+
37451
+ var onChangeTeacher = function onChangeTeacher(e) {
37452
+ setTeacherEmail(e.value);
37453
+ };
37454
+
37455
+ var customSelector = {
37456
+ control: function control(styles) {
37457
+ return _extends({}, styles, {
37458
+ borderRadius: "10px"
37459
+ });
37460
+ }
37461
+ };
37462
+ return React__default.createElement(reactstrap.Modal, {
37463
+ isOpen: modal
37464
+ }, React__default.createElement(reactstrap.ModalHeader, null, " Sign in "), React__default.createElement(reactstrap.ModalBody, null, React__default.createElement("h6", null, "You are logging in as a student, please select teacher"), React__default.createElement(CustomSelector, {
37465
+ styles: customSelector,
37466
+ options: options,
37467
+ inputValue: searchString,
37468
+ onInputChange: function onInputChange(inputValue) {
37469
+ return setSearchString(inputValue);
37470
+ },
37471
+ isLoading: isLoading,
37472
+ placeholder: "Type 2 characters to search",
37473
+ value: defaultValue,
37474
+ onChange: onChangeTeacher,
37475
+ isDisabled: isDisabled
37476
+ })), React__default.createElement(reactstrap.ModalFooter, null, React__default.createElement(reactstrap.Button, {
37477
+ color: "primary",
37478
+ onClick: function onClick() {
37479
+ onSubmit(teacherEmail);
37480
+ toggle();
37481
+ }
37482
+ }, "Finish"), ' ', React__default.createElement(reactstrap.Button, {
37483
+ color: "secondary",
37484
+ onClick: toggle
37485
+ }, "Cancel")));
37353
37486
  };
37354
37487
 
37488
+ var BlockSelectTeacher$1 = React.forwardRef(BlockSelectTeacher);
37489
+
37355
37490
  var TypeLogin;
37356
37491
 
37357
37492
  (function (TypeLogin) {
@@ -37368,78 +37503,217 @@ var LoginType;
37368
37503
  LoginType[LoginType["Impersonate"] = 2] = "Impersonate";
37369
37504
  })(LoginType || (LoginType = {}));
37370
37505
 
37371
- var msalConfig = {
37372
- auth: {
37373
- clientId: "90c6897c-f17b-475e-a7a8-9a19651e0060",
37374
- authority: "https://login.microsoftonline.com/common",
37375
- redirectUri: window.location.origin + "/login"
37376
- },
37377
- cache: {
37378
- cacheLocation: "sessionStorage",
37379
- storeAuthStateInCookie: false
37380
- },
37381
- system: {
37382
- loggerOptions: {
37383
- loggerCallback: function loggerCallback(level, message, containsPii) {
37384
- if (containsPii) {
37385
- return;
37386
- }
37506
+ var schema = yup.object({
37507
+ email: yup.string().email("Email is invalid").required("Email is required"),
37508
+ password: yup.string().required("Password is required"),
37509
+ rememberMe: yup.boolean()
37510
+ });
37387
37511
 
37388
- switch (level) {
37389
- case msalBrowser.LogLevel.Error:
37390
- console.error(message);
37391
- return;
37512
+ var BlockLogin = function BlockLogin(_ref) {
37513
+ var defaultInfo = _ref.defaultInfo,
37514
+ userLogin = _ref.userLogin,
37515
+ school = _ref.school,
37516
+ isShowPassword = _ref.isShowPassword,
37517
+ setIsShowPassword = _ref.setIsShowPassword,
37518
+ fnIsCheckLogin = _ref.fnIsCheckLogin,
37519
+ isLoginGoogle = _ref.isLoginGoogle,
37520
+ submitLogin = _ref.submitLogin,
37521
+ infoUser = _ref.infoUser,
37522
+ googleClientId = _ref.googleClientId;
37392
37523
 
37393
- case msalBrowser.LogLevel.Info:
37394
- console.info(message);
37395
- return;
37524
+ var togglePasswordVisible = function togglePasswordVisible() {
37525
+ return setIsShowPassword(!isShowPassword);
37526
+ };
37396
37527
 
37397
- case msalBrowser.LogLevel.Verbose:
37398
- console.debug(message);
37399
- return;
37528
+ var dispatch = reactRedux.useDispatch();
37400
37529
 
37401
- case msalBrowser.LogLevel.Warning:
37402
- console.warn(message);
37403
- return;
37530
+ var _useGoogleReCaptcha = reactGoogleRecaptchaV3.useGoogleReCaptcha(),
37531
+ executeRecaptcha = _useGoogleReCaptcha.executeRecaptcha;
37404
37532
 
37405
- default:
37406
- return;
37407
- }
37533
+ var clickHandler = React.useCallback(function () {
37534
+ try {
37535
+ if (!executeRecaptcha) {
37536
+ console.log("execute recaptcha undefined");
37537
+ return Promise.resolve();
37408
37538
  }
37539
+
37540
+ return Promise.resolve(executeRecaptcha("login"));
37541
+ } catch (e) {
37542
+ return Promise.reject(e);
37409
37543
  }
37410
- }
37411
- };
37544
+ }, [executeRecaptcha]);
37545
+ var handleVerify = React.useCallback(function () {}, []);
37412
37546
 
37413
- var getStaticFileUrl = function getStaticFileUrl(url) {
37414
- var STAGE_DOMAIN = "https://stage2.marioforme.com";
37415
- var isStage = STAGE_DOMAIN === location.origin;
37416
- if (!url) return "";
37417
- if (isLocalhost && !isStage || url.startsWith("http")) return url;
37418
- if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
37419
- };
37547
+ var onSuccessGoogle = function onSuccessGoogle(res) {
37548
+ if (!!(res !== null && res !== void 0 && res.accessToken)) {
37549
+ var _res$profileObj = res.profileObj,
37550
+ email = _res$profileObj.email,
37551
+ familyName = _res$profileObj.familyName,
37552
+ givenName = _res$profileObj.givenName,
37553
+ imageUrl = _res$profileObj.imageUrl,
37554
+ name = _res$profileObj.name;
37555
+ var accessToken = res.accessToken;
37556
+ var googleId = res.googleId;
37420
37557
 
37421
- var getFileUrl = function getFileUrl(fileName) {
37422
- if (!fileName || !fileName.trim()) return "";
37423
- return BASE_URL + "/api/file/viewer?key=" + fileName;
37558
+ if (email.includes("@gmail")) {
37559
+ alert("The email address you used does not match the login information in the database. Please check that you are using your school assigned email address to log into MARIO for Me. If you have further trouble please notify your school site administrator");
37560
+ return;
37561
+ }
37562
+
37563
+ var infoLogin = {
37564
+ firstName: givenName,
37565
+ lastName: familyName,
37566
+ imageUrl: imageUrl,
37567
+ fullName: name,
37568
+ email: email,
37569
+ accessToken: accessToken,
37570
+ googleId: googleId
37571
+ };
37572
+ dispatch(setInforUserGoogle(infoLogin));
37573
+ fnIsCheckLogin(TypeLogin.Google, infoLogin, accessToken, clickHandler);
37574
+ }
37575
+ };
37576
+
37577
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(formik.Formik, {
37578
+ initialValues: defaultInfo,
37579
+ validationSchema: schema,
37580
+ onSubmit: function (values) {
37581
+ try {
37582
+ return Promise.resolve(_catch(function () {
37583
+ return Promise.resolve(clickHandler()).then(function (clickHandlerRes) {
37584
+ if (!clickHandlerRes) return;
37585
+ values.captcha = clickHandlerRes;
37586
+ values.loginType = LoginType.Default;
37587
+ userLogin(values);
37588
+ });
37589
+ }, function (err) {
37590
+ console.error(err);
37591
+ }));
37592
+ } catch (e) {
37593
+ return Promise.reject(e);
37594
+ }
37595
+ }
37596
+ }, function (formikProps) {
37597
+ var handleChange = formikProps.handleChange,
37598
+ handleBlur = formikProps.handleBlur,
37599
+ handleSubmit = formikProps.handleSubmit,
37600
+ values = formikProps.values,
37601
+ touched = formikProps.touched,
37602
+ errors = formikProps.errors,
37603
+ setFieldValue = formikProps.setFieldValue;
37604
+ var emailError = touched.email && errors.email;
37605
+ var passwordError = touched.password && errors.password;
37606
+ return React__default.createElement("div", {
37607
+ className: styles["box-login"] + " w-100"
37608
+ }, React__default.createElement(reactstrap.Form, {
37609
+ className: "" + styles["block-login"],
37610
+ onSubmit: handleSubmit
37611
+ }, React__default.createElement("div", {
37612
+ className: "" + styles["block-form"]
37613
+ }, React__default.createElement("div", {
37614
+ className: "d-flex align-items-center mb-4"
37615
+ }, React__default.createElement("img", {
37616
+ hidden: !(school !== null && school !== void 0 && school.schoolLogo),
37617
+ src: school === null || school === void 0 ? void 0 : school.schoolLogo,
37618
+ className: styles["school-icon"] + " mr-3"
37619
+ }), React__default.createElement("p", {
37620
+ className: styles["school-name"] + " mb-0"
37621
+ }, school.schoolName)), React__default.createElement("p", {
37622
+ className: "" + styles["title-login"]
37623
+ }, "Welcome Back!"), React__default.createElement("p", {
37624
+ className: styles["login-description"] + " mb-5"
37625
+ }, "Please enter your MARIO Education account details"), React__default.createElement(reactstrap.FormGroup, {
37626
+ className: "" + styles["form-user-name"]
37627
+ }, React__default.createElement(reactstrap.Input, {
37628
+ type: "text",
37629
+ name: "email",
37630
+ placeholder: "Email",
37631
+ value: values.email,
37632
+ onChange: handleChange,
37633
+ autocomplete: "email",
37634
+ onBlur: handleBlur("email"),
37635
+ required: true
37636
+ }), emailError && React__default.createElement(ErrorHandler, {
37637
+ text: errors.email
37638
+ })), React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(PasswordInput, {
37639
+ isShowPassword: isShowPassword,
37640
+ togglePasswordVisible: togglePasswordVisible,
37641
+ onChange: function onChange(e) {
37642
+ return setFieldValue("password", e.target.value);
37643
+ }
37644
+ }), passwordError && React__default.createElement(ErrorHandler, {
37645
+ text: errors.password
37646
+ })), React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptcha, {
37647
+ action: "login",
37648
+ onVerify: handleVerify
37649
+ })), React__default.createElement("div", {
37650
+ className: "d-flex justify-content-between"
37651
+ }, React__default.createElement("div", {
37652
+ className: "d-flex align-items-center"
37653
+ }, React__default.createElement("input", {
37654
+ type: "checkbox",
37655
+ checked: !values.isSessionUserBrowser,
37656
+ className: "" + styles["checkbox-keep-login"],
37657
+ onChange: function onChange() {
37658
+ return setFieldValue("isSessionUserBrowser", !values.isSessionUserBrowser);
37659
+ }
37660
+ }), React__default.createElement("p", {
37661
+ className: styles["label-keep-login"] + " mb-0 ml-2"
37662
+ }, "Keep me logged in")), React__default.createElement(reactRouterDom.Link, {
37663
+ to: "/forgot-password",
37664
+ className: "" + styles["link-to-login"]
37665
+ }, "Forgot password?")), React__default.createElement("button", {
37666
+ className: styles["btn-login"] + " mt-5",
37667
+ type: "submit"
37668
+ }, "LOG IN"), React__default.createElement("p", {
37669
+ className: styles["option-text"] + " my-3 text-center"
37670
+ }, "OR"), React__default.createElement(reactstrap.Row, {
37671
+ className: "mb-4"
37672
+ }, React__default.createElement(reactstrap.Col, {
37673
+ lg: 12,
37674
+ md: 12,
37675
+ xs: 12,
37676
+ className: "pr-md-3"
37677
+ }, !!googleClientId && React__default.createElement(GoogleLogin, {
37678
+ clientId: googleClientId,
37679
+ buttonText: "GOOGLE",
37680
+ onSuccess: onSuccessGoogle,
37681
+ cookiePolicy: "single_host_origin",
37682
+ className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
37683
+ }))), React__default.createElement("div", {
37684
+ className: "" + styles["btn-login-sso"]
37685
+ }, React__default.createElement("div", {
37686
+ className: styles["btn-login-with-sso"],
37687
+ onClick: function onClick() {
37688
+ return window.open("https://launchpad.classlink.com/login");
37689
+ }
37690
+ }, React__default.createElement("img", {
37691
+ src: "images/class-link-icon.png"
37692
+ }), React__default.createElement("p", null, "Sign-in with ClassLink"))))));
37693
+ }), isLoginGoogle && React__default.createElement(BlockSelectTeacher$1, {
37694
+ onSubmit: function onSubmit(e) {
37695
+ return submitLogin(e, clickHandler);
37696
+ },
37697
+ openModal: isLoginGoogle,
37698
+ token: infoUser.accessToken,
37699
+ email: infoUser.email
37700
+ }));
37424
37701
  };
37425
37702
 
37426
- var _sessionStorage$getIt;
37427
37703
  var defaultInfo = {
37428
37704
  email: "",
37429
- password: "",
37430
- captcha: "",
37431
- rememberMe: false,
37432
- isSessionUserBrowser: (_sessionStorage$getIt = !!sessionStorage.getItem(IS_USER_SESSION_BROWSER)) != null ? _sessionStorage$getIt : false
37705
+ captcha: ""
37433
37706
  };
37434
- var HOMEPAGE_TEACHER = "/home";
37435
- var HOMEPAGE_STUDENT = "/home";
37436
- var HOMEPAGE_ADMIN = "/admin/home";
37437
- var HOMEPAGE_PARENT = "/parent";
37438
- var HOMEPAGE_DISTRICT = "/admin/schools";
37439
- var HOMEPAGE_EDU_TEACHER = "/list-student";
37707
+ var DASHBOARD = "/";
37708
+ var LOGIN = "/login";
37440
37709
  var TITLE = "Log in";
37441
37710
 
37442
- var useLogin = function useLogin() {
37711
+ var useForgotPassword = function useForgotPassword() {
37712
+ var _query$get;
37713
+
37714
+ var query = new URLSearchParams(reactRouterDom.useLocation().search);
37715
+ var token = query.get("token");
37716
+ var key = (_query$get = query.get("key")) != null ? _query$get : "";
37443
37717
  var dispatch = reactRedux.useDispatch();
37444
37718
  var history = reactRouterDom.useHistory();
37445
37719
 
@@ -37447,67 +37721,41 @@ var useLogin = function useLogin() {
37447
37721
  openLogin = _useState[0],
37448
37722
  setOpenLogin = _useState[1];
37449
37723
 
37450
- var isLoginGoogle = reactRedux.useSelector(function (state) {
37451
- return state.common.isLoginGoogle;
37452
- });
37453
-
37454
- var _useState2 = React.useState(""),
37455
- googleClientId = _useState2[0],
37456
- setGoogleClientId = _useState2[1];
37457
-
37458
- var _useState3 = React.useState(""),
37459
- googleRecaptchaId = _useState3[0],
37460
- setGoogleRecaptchaId = _useState3[1];
37724
+ var toggle = React.useCallback(function () {
37725
+ setOpenLogin(!openLogin);
37726
+ }, [openLogin]);
37461
37727
 
37462
- var infoUser = reactRedux.useSelector(function (state) {
37463
- return state.common.inforUserGoogle;
37464
- });
37465
- var params = new URLSearchParams(location.search);
37466
- var loginClassLink = params.get("type") === "classlink";
37467
- var tokenClassLink = params.get("token");
37728
+ var _useState2 = React.useState(false),
37729
+ isShowNewPassword = _useState2[0],
37730
+ setIsShowNewPassword = _useState2[1];
37468
37731
 
37469
- var _useState4 = React.useState(false),
37470
- openModelAssign = _useState4[0];
37732
+ var _useState3 = React.useState(false),
37733
+ isShowReTypePassword = _useState3[0],
37734
+ setIsShowReTypePassword = _useState3[1];
37471
37735
 
37472
- var _useState5 = React.useState({
37473
- schoolName: "",
37474
- schoolLogo: ""
37736
+ var _useState4 = React.useState({
37737
+ token: "",
37738
+ password: "",
37739
+ reEnterPassword: "",
37740
+ email: "",
37741
+ userId: ""
37475
37742
  }),
37476
- school = _useState5[0],
37477
- setSchool = _useState5[1];
37478
-
37479
- var _useState6 = React.useState(),
37480
- msalInstance = _useState6[0],
37481
- setMsalInstance = _useState6[1];
37743
+ initialValues = _useState4[0],
37744
+ setInitialValues = _useState4[1];
37482
37745
 
37483
- var toggle = React.useCallback(function () {
37484
- setOpenLogin(!openLogin);
37485
- }, [openLogin]);
37746
+ var _useState5 = React.useState(true),
37747
+ validLink = _useState5[0],
37748
+ setValidLink = _useState5[1];
37486
37749
 
37487
- var _useState7 = React.useState(false),
37488
- isShowPassword = _useState7[0],
37489
- setIsShowPassword = _useState7[1];
37750
+ var _useGoogleReCaptcha = reactGoogleRecaptchaV3.useGoogleReCaptcha(),
37751
+ executeRecaptcha = _useGoogleReCaptcha.executeRecaptcha;
37490
37752
 
37491
37753
  React.useEffect(function () {
37492
37754
  document.title = TITLE;
37493
37755
  var token = getAccessToken();
37494
- if (!!token) history.push("/");
37495
- getInfoGoogle();
37496
- }, []);
37497
-
37498
- var handleCancelModelAssign = function handleCancelModelAssign() {
37499
- localStorage.removeItem(ACCESS_TOKEN);
37500
- sessionStorage.removeItem(ACCESS_TOKEN);
37501
- localStorage.removeItem("USER_EMAIL");
37502
- };
37503
-
37504
- React.useEffect(function () {
37505
- if (loginClassLink && tokenClassLink != "") {
37506
- loginAccountClassLink();
37507
- }
37756
+ if (!!token) history.push(DASHBOARD);
37508
37757
  }, []);
37509
-
37510
- var loginAccountClassLink = function loginAccountClassLink() {
37758
+ var forgotPasswordRequest = React.useCallback(function (data) {
37511
37759
  try {
37512
37760
  var _temp3 = function _temp3() {
37513
37761
  dispatch(setLoading(false));
@@ -37516,27 +37764,487 @@ var useLogin = function useLogin() {
37516
37764
  dispatch(setLoading(true));
37517
37765
 
37518
37766
  var _temp4 = _catch(function () {
37519
- var data = {
37520
- tokenClassLink: tokenClassLink
37521
- };
37522
- return Promise.resolve(apiInforUserClassLink(data)).then(function (res) {
37523
- var _res$data = res.data,
37524
- email = _res$data.email,
37525
- token = _res$data.token;
37526
- var dataUser = {
37527
- email: email,
37528
- rememberMe: false,
37529
- password: "default",
37530
- accessToken: token
37531
- };
37532
- return Promise.resolve(userLogin(dataUser)).then(function () {});
37767
+ return Promise.resolve(forgotPassword(data)).then(function () {
37768
+ history.push(LOGIN);
37769
+ dispatch(setAlert({
37770
+ type: "success",
37771
+ message: "A mail to reset password was sent"
37772
+ }));
37533
37773
  });
37534
37774
  }, function (err) {
37535
37775
  var _err$response, _err$response$data;
37536
37776
 
37537
37777
  dispatch(setAlert({
37538
37778
  type: "danger",
37539
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
37779
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message || "Error occured"
37780
+ }));
37781
+ localStorage.removeItem(ACCESS_TOKEN);
37782
+ sessionStorage.removeItem(ACCESS_TOKEN);
37783
+ });
37784
+
37785
+ return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
37786
+ } catch (e) {
37787
+ return Promise.reject(e);
37788
+ }
37789
+ }, []);
37790
+ var checkResetTokenRequest = React.useCallback(function (token, key) {
37791
+ try {
37792
+ var _temp7 = function _temp7() {
37793
+ dispatch(setLoading(false));
37794
+ };
37795
+
37796
+ dispatch(setLoading(true));
37797
+
37798
+ var _temp8 = _catch(function () {
37799
+ return Promise.resolve(checkResetToken(token, key)).then(function (res) {
37800
+ if (res.data) {
37801
+ setInitialValues(_extends({}, initialValues, {
37802
+ token: token,
37803
+ email: res.data
37804
+ }));
37805
+ } else {
37806
+ setValidLink(false);
37807
+ }
37808
+ });
37809
+ }, function () {
37810
+ setValidLink(false);
37811
+ });
37812
+
37813
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
37814
+ } catch (e) {
37815
+ return Promise.reject(e);
37816
+ }
37817
+ }, []);
37818
+ var resetPasswordRequest = React.useCallback(function (data) {
37819
+ try {
37820
+ var _temp11 = function _temp11() {
37821
+ dispatch(setLoading(false));
37822
+ };
37823
+
37824
+ dispatch(setLoading(true));
37825
+
37826
+ var _temp12 = _catch(function () {
37827
+ return Promise.resolve(resetPassword(_extends({}, data, {
37828
+ key: key
37829
+ }))).then(function () {
37830
+ history.push(LOGIN);
37831
+ dispatch(setAlert({
37832
+ type: "success",
37833
+ message: "Reset password sucessfully"
37834
+ }));
37835
+ });
37836
+ }, function (err) {
37837
+ var _err$response2, _err$response2$data;
37838
+
37839
+ dispatch(setAlert({
37840
+ type: "danger",
37841
+ message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message || "Error occured"
37842
+ }));
37843
+ localStorage.removeItem(ACCESS_TOKEN);
37844
+ sessionStorage.removeItem(ACCESS_TOKEN);
37845
+ });
37846
+
37847
+ return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
37848
+ } catch (e) {
37849
+ return Promise.reject(e);
37850
+ }
37851
+ }, []);
37852
+ var clickHandler = React.useCallback(function () {
37853
+ try {
37854
+ if (!executeRecaptcha) {
37855
+ console.log("execute recaptcha undefined");
37856
+ return Promise.resolve();
37857
+ }
37858
+
37859
+ return Promise.resolve(executeRecaptcha("forgetPass"));
37860
+ } catch (e) {
37861
+ return Promise.reject(e);
37862
+ }
37863
+ }, [executeRecaptcha]);
37864
+ var handleVerify = React.useCallback(function () {}, []);
37865
+ React.useEffect(function () {
37866
+ checkResetTokenRequest(token, key);
37867
+ }, []);
37868
+ return {
37869
+ defaultInfo: defaultInfo,
37870
+ forgotPasswordRequest: forgotPasswordRequest,
37871
+ checkResetTokenRequest: checkResetTokenRequest,
37872
+ validLink: validLink,
37873
+ resetPasswordRequest: resetPasswordRequest,
37874
+ openLogin: openLogin,
37875
+ toggle: toggle,
37876
+ isShowNewPassword: isShowNewPassword,
37877
+ setIsShowNewPassword: setIsShowNewPassword,
37878
+ isShowReTypePassword: isShowReTypePassword,
37879
+ setIsShowReTypePassword: setIsShowReTypePassword,
37880
+ clickHandler: clickHandler,
37881
+ handleVerify: handleVerify,
37882
+ initialValues: initialValues
37883
+ };
37884
+ };
37885
+
37886
+ var getStaticFileUrl = function getStaticFileUrl(url) {
37887
+ var STAGE_DOMAIN = "https://stage2.marioforme.com";
37888
+ var isStage = STAGE_DOMAIN === location.origin;
37889
+ if (!url) return "";
37890
+ if (isLocalhost && !isStage || url.startsWith("http")) return url;
37891
+ if (url.startsWith("/")) return "" + (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + url;else return (isStage ? STAGE_DOMAIN : MARIO_SUCCESS_BASE_URL) + "/" + url;
37892
+ };
37893
+
37894
+ var initialValues = {
37895
+ email: "",
37896
+ captcha: ""
37897
+ };
37898
+ var forgotPasswordSchema = yup.object({
37899
+ email: yup.string().email("Email is invalid").required("Email is required")
37900
+ });
37901
+
37902
+ var BlockForgetPassword = function BlockForgetPassword(_ref) {
37903
+ var school = _ref.school;
37904
+
37905
+ var _useForgotPassword = useForgotPassword(),
37906
+ forgotPasswordRequest = _useForgotPassword.forgotPasswordRequest,
37907
+ clickHandler = _useForgotPassword.clickHandler,
37908
+ handleVerify = _useForgotPassword.handleVerify;
37909
+
37910
+ return React__default.createElement(formik.Formik, {
37911
+ initialValues: initialValues,
37912
+ enableReinitialize: true,
37913
+ validationSchema: forgotPasswordSchema,
37914
+ onSubmit: function (values) {
37915
+ try {
37916
+ return Promise.resolve(clickHandler()).then(function (clickHandlerRes) {
37917
+ if (!clickHandlerRes) return;
37918
+ values.captcha = clickHandlerRes;
37919
+ forgotPasswordRequest(values);
37920
+ });
37921
+ } catch (e) {
37922
+ return Promise.reject(e);
37923
+ }
37924
+ }
37925
+ }, function (formikProps) {
37926
+ var handleChange = formikProps.handleChange,
37927
+ handleSubmit = formikProps.handleSubmit,
37928
+ values = formikProps.values,
37929
+ touched = formikProps.touched,
37930
+ errors = formikProps.errors;
37931
+ return React__default.createElement("div", {
37932
+ className: "" + styles["box-login"]
37933
+ }, React__default.createElement("div", {
37934
+ className: "" + styles["block-login"]
37935
+ }, React__default.createElement("div", {
37936
+ className: "" + styles["block-form"]
37937
+ }, React__default.createElement("div", {
37938
+ className: "d-flex align-items-center mb-4"
37939
+ }, React__default.createElement("img", {
37940
+ src: "" + getStaticFileUrl("/images/isb-icon.png"),
37941
+ className: styles["school-icon"] + " mr-3"
37942
+ }), React__default.createElement("p", {
37943
+ className: styles["school-name"] + " mb-0"
37944
+ }, school.schoolName)), React__default.createElement("p", {
37945
+ className: styles["title-login"] + " "
37946
+ }, "Forgot password"), React__default.createElement("p", {
37947
+ className: styles["recover-account"] + " mb-5"
37948
+ }, "Enter email to recover your account"), React__default.createElement("div", {
37949
+ className: "w-100"
37950
+ }, React__default.createElement(reactstrap.Input, {
37951
+ type: "text",
37952
+ name: "email",
37953
+ id: "email",
37954
+ placeholder: "Input email",
37955
+ onChange: handleChange,
37956
+ value: values.email
37957
+ }), touched.email && errors.email && React__default.createElement(ErrorHandler, {
37958
+ text: errors.email
37959
+ })), React__default.createElement(reactRouterDom.Link, {
37960
+ to: "/login",
37961
+ className: styles["link-to-login"] + " mt-2"
37962
+ }, "Return to login"), React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptcha, {
37963
+ action: "forgetPass",
37964
+ onVerify: handleVerify
37965
+ }), React__default.createElement(reactstrap.Col, {
37966
+ className: "p-0"
37967
+ }, React__default.createElement("button", {
37968
+ className: styles["btn-login"] + " mt-5",
37969
+ onClick: function onClick() {
37970
+ return handleSubmit();
37971
+ }
37972
+ }, "Continue")))));
37973
+ });
37974
+ };
37975
+
37976
+ var resetPasswordSchema = yup.object({
37977
+ password: yup.string().required("New password is required"),
37978
+ reEnterPassword: yup.string().required("Please re-enter new password").test("matching", "Passwords do not match", function () {
37979
+ return this.parent.password === this.parent.reEnterPassword;
37980
+ })
37981
+ });
37982
+
37983
+ var BlockResetPassword = function BlockResetPassword() {
37984
+ var _useForgotPassword = useForgotPassword(),
37985
+ validLink = _useForgotPassword.validLink,
37986
+ resetPasswordRequest = _useForgotPassword.resetPasswordRequest,
37987
+ isShowNewPassword = _useForgotPassword.isShowNewPassword,
37988
+ setIsShowNewPassword = _useForgotPassword.setIsShowNewPassword,
37989
+ isShowReTypePassword = _useForgotPassword.isShowReTypePassword,
37990
+ setIsShowReTypePassword = _useForgotPassword.setIsShowReTypePassword,
37991
+ initialValues = _useForgotPassword.initialValues;
37992
+
37993
+ return React__default.createElement(formik.Formik, {
37994
+ initialValues: initialValues,
37995
+ enableReinitialize: true,
37996
+ validationSchema: resetPasswordSchema,
37997
+ onSubmit: function onSubmit(values) {
37998
+ resetPasswordRequest(values);
37999
+ }
38000
+ }, function (formikProps) {
38001
+ var setFieldValue = formikProps.setFieldValue,
38002
+ handleSubmit = formikProps.handleSubmit,
38003
+ touched = formikProps.touched,
38004
+ errors = formikProps.errors,
38005
+ values = formikProps.values;
38006
+ return React__default.createElement(reactstrap.Row, {
38007
+ className: "" + styles["box-login"]
38008
+ }, React__default.createElement(reactstrap.Col, {
38009
+ className: "p-0"
38010
+ }, React__default.createElement("div", {
38011
+ className: "" + styles["block-login"]
38012
+ }, React__default.createElement("div", {
38013
+ className: "" + styles["block-form"]
38014
+ }, React__default.createElement("img", {
38015
+ src: "" + getStaticFileUrl("/images/horizontal-logo-blue.svg"),
38016
+ className: "" + styles["img-login-rectangle"]
38017
+ }), React__default.createElement("p", {
38018
+ className: "" + styles["title-login"]
38019
+ }, "Reset Password"), React__default.createElement("div", {
38020
+ className: "w-100"
38021
+ }, validLink ? React__default.createElement(React__default.Fragment, null, React__default.createElement(reactstrap.FormGroup, {
38022
+ className: "" + styles["form-user-name"]
38023
+ }, React__default.createElement(reactstrap.Input, {
38024
+ disabled: true,
38025
+ type: "text",
38026
+ name: "email",
38027
+ placeholder: "Email",
38028
+ value: values.email,
38029
+ autocomplete: "email",
38030
+ required: true,
38031
+ className: "" + styles["input"]
38032
+ })), React__default.createElement("div", {
38033
+ className: "" + styles["form-user-name"]
38034
+ }, React__default.createElement(PasswordInput, {
38035
+ isShowPassword: isShowNewPassword,
38036
+ togglePasswordVisible: function togglePasswordVisible() {
38037
+ return setIsShowNewPassword(!isShowNewPassword);
38038
+ },
38039
+ onChange: function onChange(e) {
38040
+ return setFieldValue("password", e.target.value);
38041
+ }
38042
+ }), touched.password && errors.password && React__default.createElement(ErrorHandler, {
38043
+ text: errors.password
38044
+ })), React__default.createElement("div", {
38045
+ className: "" + styles["form-user-name"]
38046
+ }, React__default.createElement(PasswordInput, {
38047
+ placeholder: "Confirm Password",
38048
+ isShowPassword: isShowReTypePassword,
38049
+ togglePasswordVisible: function togglePasswordVisible() {
38050
+ return setIsShowReTypePassword(!isShowReTypePassword);
38051
+ },
38052
+ onChange: function onChange(e) {
38053
+ return setFieldValue("reEnterPassword", e.target.value);
38054
+ }
38055
+ }), touched.reEnterPassword && errors.reEnterPassword && React__default.createElement(ErrorHandler, {
38056
+ text: errors.reEnterPassword
38057
+ }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement("p", {
38058
+ className: styles["recover-account"] + " mb-5"
38059
+ }, "Invalid reset password link"), React__default.createElement("p", {
38060
+ className: "w-100"
38061
+ }, "It may have been accessed before or expired or you have just tried to reset another account's password"))), validLink && React__default.createElement(reactstrap.Col, {
38062
+ className: "p-0"
38063
+ }, React__default.createElement("button", {
38064
+ className: styles["btn-login"] + " " + styles["btn-rounder"] + " mt-4",
38065
+ onClick: function onClick() {
38066
+ return handleSubmit();
38067
+ }
38068
+ }, "SET A NEW PASSWORD"))))), React__default.createElement(reactstrap.Col, {
38069
+ lg: 4,
38070
+ md: 4,
38071
+ className: "" + styles["img-box"]
38072
+ }, React__default.createElement("img", {
38073
+ src: getStaticFileUrl("/images/img-login.png"),
38074
+ className: "" + styles["img-login"]
38075
+ })));
38076
+ });
38077
+ };
38078
+
38079
+ var SCHOOL_URL = BASE_URL + "/api/school";
38080
+ var getSchoolSettings = function getSchoolSettings() {
38081
+ return api.get(SCHOOL_URL + "/settings");
38082
+ };
38083
+ var getInfo$1 = function getInfo() {
38084
+ return api.get(SCHOOL_URL + "/info");
38085
+ };
38086
+
38087
+ var msalConfig = {
38088
+ auth: {
38089
+ clientId: "90c6897c-f17b-475e-a7a8-9a19651e0060",
38090
+ authority: "https://login.microsoftonline.com/common",
38091
+ redirectUri: window.location.origin + "/login"
38092
+ },
38093
+ cache: {
38094
+ cacheLocation: "sessionStorage",
38095
+ storeAuthStateInCookie: false
38096
+ },
38097
+ system: {
38098
+ loggerOptions: {
38099
+ loggerCallback: function loggerCallback(level, message, containsPii) {
38100
+ if (containsPii) {
38101
+ return;
38102
+ }
38103
+
38104
+ switch (level) {
38105
+ case msalBrowser.LogLevel.Error:
38106
+ console.error(message);
38107
+ return;
38108
+
38109
+ case msalBrowser.LogLevel.Info:
38110
+ console.info(message);
38111
+ return;
38112
+
38113
+ case msalBrowser.LogLevel.Verbose:
38114
+ console.debug(message);
38115
+ return;
38116
+
38117
+ case msalBrowser.LogLevel.Warning:
38118
+ console.warn(message);
38119
+ return;
38120
+
38121
+ default:
38122
+ return;
38123
+ }
38124
+ }
38125
+ }
38126
+ }
38127
+ };
38128
+
38129
+ var getFileUrl = function getFileUrl(fileName) {
38130
+ if (!fileName || !fileName.trim()) return "";
38131
+ return BASE_URL + "/api/file/viewer?key=" + fileName;
38132
+ };
38133
+
38134
+ var _sessionStorage$getIt;
38135
+ var defaultInfo$1 = {
38136
+ email: "",
38137
+ password: "",
38138
+ captcha: "",
38139
+ rememberMe: false,
38140
+ isSessionUserBrowser: (_sessionStorage$getIt = !!sessionStorage.getItem(IS_USER_SESSION_BROWSER)) != null ? _sessionStorage$getIt : false
38141
+ };
38142
+ var HOMEPAGE_TEACHER = "/home";
38143
+ var HOMEPAGE_STUDENT = "/home";
38144
+ var HOMEPAGE_ADMIN = "/admin/home";
38145
+ var HOMEPAGE_PARENT = "/parent";
38146
+ var HOMEPAGE_DISTRICT = "/admin/schools";
38147
+ var HOMEPAGE_EDU_TEACHER = "/list-student";
38148
+ var TITLE$1 = "Log in";
38149
+
38150
+ var useLogin = function useLogin() {
38151
+ var dispatch = reactRedux.useDispatch();
38152
+ var history = reactRouterDom.useHistory();
38153
+
38154
+ var _useState = React.useState(false),
38155
+ openLogin = _useState[0],
38156
+ setOpenLogin = _useState[1];
38157
+
38158
+ var isLoginGoogle = reactRedux.useSelector(function (state) {
38159
+ return state.common.isLoginGoogle;
38160
+ });
38161
+
38162
+ var _useState2 = React.useState(""),
38163
+ googleClientId = _useState2[0],
38164
+ setGoogleClientId = _useState2[1];
38165
+
38166
+ var _useState3 = React.useState(""),
38167
+ googleRecaptchaId = _useState3[0],
38168
+ setGoogleRecaptchaId = _useState3[1];
38169
+
38170
+ var infoUser = reactRedux.useSelector(function (state) {
38171
+ return state.common.inforUserGoogle;
38172
+ });
38173
+ var params = new URLSearchParams(location.search);
38174
+ var loginClassLink = params.get("type") === "classlink";
38175
+ var tokenClassLink = params.get("token");
38176
+
38177
+ var _useState4 = React.useState(false),
38178
+ openModelAssign = _useState4[0];
38179
+
38180
+ var _useState5 = React.useState({
38181
+ schoolName: "",
38182
+ schoolLogo: ""
38183
+ }),
38184
+ school = _useState5[0],
38185
+ setSchool = _useState5[1];
38186
+
38187
+ var _useState6 = React.useState(),
38188
+ msalInstance = _useState6[0],
38189
+ setMsalInstance = _useState6[1];
38190
+
38191
+ var toggle = React.useCallback(function () {
38192
+ setOpenLogin(!openLogin);
38193
+ }, [openLogin]);
38194
+
38195
+ var _useState7 = React.useState(false),
38196
+ isShowPassword = _useState7[0],
38197
+ setIsShowPassword = _useState7[1];
38198
+
38199
+ React.useEffect(function () {
38200
+ document.title = TITLE$1;
38201
+ var token = getAccessToken();
38202
+ if (!!token) history.push("/");
38203
+ getInfoGoogle();
38204
+ }, []);
38205
+
38206
+ var handleCancelModelAssign = function handleCancelModelAssign() {
38207
+ localStorage.removeItem(ACCESS_TOKEN);
38208
+ sessionStorage.removeItem(ACCESS_TOKEN);
38209
+ localStorage.removeItem("USER_EMAIL");
38210
+ };
38211
+
38212
+ React.useEffect(function () {
38213
+ if (loginClassLink && tokenClassLink != "") {
38214
+ loginAccountClassLink();
38215
+ }
38216
+ }, []);
38217
+
38218
+ var loginAccountClassLink = function loginAccountClassLink() {
38219
+ try {
38220
+ var _temp3 = function _temp3() {
38221
+ dispatch(setLoading(false));
38222
+ };
38223
+
38224
+ dispatch(setLoading(true));
38225
+
38226
+ var _temp4 = _catch(function () {
38227
+ var data = {
38228
+ tokenClassLink: tokenClassLink
38229
+ };
38230
+ return Promise.resolve(apiInforUserClassLink(data)).then(function (res) {
38231
+ var _res$data = res.data,
38232
+ email = _res$data.email,
38233
+ token = _res$data.token;
38234
+ var dataUser = {
38235
+ email: email,
38236
+ rememberMe: false,
38237
+ password: "default",
38238
+ accessToken: token
38239
+ };
38240
+ return Promise.resolve(userLogin(dataUser)).then(function () {});
38241
+ });
38242
+ }, function (err) {
38243
+ var _err$response, _err$response$data;
38244
+
38245
+ dispatch(setAlert({
38246
+ type: "danger",
38247
+ message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
37540
38248
  }));
37541
38249
  });
37542
38250
 
@@ -37929,7 +38637,7 @@ var useLogin = function useLogin() {
37929
38637
  getSchoolInfo();
37930
38638
  }, []);
37931
38639
  return {
37932
- defaultInfo: defaultInfo,
38640
+ defaultInfo: defaultInfo$1,
37933
38641
  userLogin: userLogin,
37934
38642
  openLogin: openLogin,
37935
38643
  toggle: toggle,
@@ -37948,734 +38656,24 @@ var useLogin = function useLogin() {
37948
38656
  };
37949
38657
  };
37950
38658
 
37951
- var CustomSelector = function CustomSelector(_ref) {
37952
- var defaultValue = _ref.defaultValue,
37953
- options = _ref.options,
37954
- isDisabled = _ref.isDisabled,
37955
- scrollBottom = _ref.scrollBottom,
37956
- rest = _objectWithoutPropertiesLoose(_ref, ["defaultValue", "options", "isDisabled", "scrollBottom"]);
37957
-
37958
- var initValue = defaultValue !== null && typeof defaultValue !== "undefined" ? options.find(function (option) {
37959
- return option.value === defaultValue;
37960
- }) || null : null;
37961
- return React__default.createElement(Select, Object.assign({
37962
- isDisabled: isDisabled,
37963
- options: options,
37964
- value: initValue,
37965
- menuPlacement: scrollBottom ? "top" : "auto"
37966
- }, rest));
37967
- };
38659
+ var DASHBOARD$1 = "/";
38660
+ var LOGIN$1 = "/login";
38661
+ var TITLE$2 = "Log in";
37968
38662
 
37969
- var BlockSelectTeacher = function BlockSelectTeacher(_ref) {
37970
- var defaultValue = _ref.defaultValue,
37971
- isDisabled = _ref.isDisabled,
37972
- openModal = _ref.openModal,
37973
- onSubmit = _ref.onSubmit,
37974
- token = _ref.token,
37975
- email = _ref.email;
38663
+ var useCreatePassword = function useCreatePassword() {
38664
+ var dispatch = reactRedux.useDispatch();
38665
+ var history = reactRouterDom.useHistory();
38666
+ var search = location.search;
38667
+ var params = new URLSearchParams(search);
38668
+ var userId = params.get('userId');
37976
38669
 
37977
38670
  var _useState = React.useState(false),
37978
- modal = _useState[0],
37979
- setModal = _useState[1];
38671
+ isShowNewPassword = _useState[0],
38672
+ setIsShowNewPassword = _useState[1];
37980
38673
 
37981
- React.useEffect(function () {
37982
- setModal(openModal);
37983
- }, [openModal]);
37984
- var dispatch = reactRedux.useDispatch();
37985
-
37986
- var _useState2 = React.useState([]),
37987
- teachers = _useState2[0],
37988
- setTeachers = _useState2[1];
37989
-
37990
- var _useState3 = React.useState(""),
37991
- searchString = _useState3[0],
37992
- setSearchString = _useState3[1];
37993
-
37994
- var _useState4 = React.useState(""),
37995
- teacherEmail = _useState4[0],
37996
- setTeacherEmail = _useState4[1];
37997
-
37998
- var _useState5 = React.useState(false),
37999
- isLoading = _useState5[0],
38000
- setLoading = _useState5[1];
38001
-
38002
- var timeout = React.useRef();
38003
-
38004
- var toggle = function toggle() {
38005
- setModal(!modal);
38006
- dispatch(setIsLoginGoogle(!modal));
38007
- };
38008
-
38009
- var loadData = React.useCallback(function () {
38010
- try {
38011
- var _temp3 = function _temp3() {
38012
- setLoading(false);
38013
- };
38014
-
38015
- setLoading(true);
38016
-
38017
- var _temp4 = _catch(function () {
38018
- var data = {
38019
- token: token,
38020
- email: email
38021
- };
38022
- return Promise.resolve(getAllLoginTeacher(data)).then(function (res) {
38023
- setTeachers(res.data);
38024
- });
38025
- }, function (err) {
38026
- var _err$response, _err$response$data;
38027
-
38028
- dispatch(setAlert({
38029
- type: "danger",
38030
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message
38031
- }));
38032
- });
38033
-
38034
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
38035
- } catch (e) {
38036
- return Promise.reject(e);
38037
- }
38038
- }, [searchString]);
38039
- React.useEffect(function () {
38040
- timeout && timeout.current && clearTimeout(timeout.current);
38041
-
38042
- if (!searchString || searchString.trim().length < 2) {
38043
- setTeachers([]);
38044
- } else {
38045
- timeout.current = setTimeout(loadData, 300);
38046
- }
38047
- }, [searchString]);
38048
- var options = teachers.map(function (teacher) {
38049
- return {
38050
- label: teacher.fullName + " (" + teacher.email + ")",
38051
- value: teacher.teacherId
38052
- };
38053
- });
38054
-
38055
- var onChangeTeacher = function onChangeTeacher(e) {
38056
- setTeacherEmail(e.value);
38057
- };
38058
-
38059
- var customSelector = {
38060
- control: function control(styles) {
38061
- return _extends({}, styles, {
38062
- borderRadius: "10px"
38063
- });
38064
- }
38065
- };
38066
- return React__default.createElement(reactstrap.Modal, {
38067
- isOpen: modal
38068
- }, React__default.createElement(reactstrap.ModalHeader, null, " Sign in "), React__default.createElement(reactstrap.ModalBody, null, React__default.createElement("h6", null, "You are logging in as a student, please select teacher"), React__default.createElement(CustomSelector, {
38069
- styles: customSelector,
38070
- options: options,
38071
- inputValue: searchString,
38072
- onInputChange: function onInputChange(inputValue) {
38073
- return setSearchString(inputValue);
38074
- },
38075
- isLoading: isLoading,
38076
- placeholder: "Type 2 characters to search",
38077
- value: defaultValue,
38078
- onChange: onChangeTeacher,
38079
- isDisabled: isDisabled
38080
- })), React__default.createElement(reactstrap.ModalFooter, null, React__default.createElement(reactstrap.Button, {
38081
- color: "primary",
38082
- onClick: function onClick() {
38083
- onSubmit(teacherEmail);
38084
- toggle();
38085
- }
38086
- }, "Finish"), ' ', React__default.createElement(reactstrap.Button, {
38087
- color: "secondary",
38088
- onClick: toggle
38089
- }, "Cancel")));
38090
- };
38091
-
38092
- var BlockSelectTeacher$1 = React.forwardRef(BlockSelectTeacher);
38093
-
38094
- var schema = yup.object({
38095
- email: yup.string().email("Email is invalid").required("Email is required"),
38096
- password: yup.string().required("Password is required"),
38097
- rememberMe: yup.boolean()
38098
- });
38099
-
38100
- var BlockLogin = function BlockLogin(_ref) {
38101
- var defaultInfo = _ref.defaultInfo,
38102
- userLogin = _ref.userLogin,
38103
- school = _ref.school;
38104
-
38105
- var _useLogin = useLogin(),
38106
- isShowPassword = _useLogin.isShowPassword,
38107
- setIsShowPassword = _useLogin.setIsShowPassword,
38108
- fnIsCheckLogin = _useLogin.fnIsCheckLogin,
38109
- isLoginGoogle = _useLogin.isLoginGoogle,
38110
- submitLogin = _useLogin.submitLogin,
38111
- infoUser = _useLogin.infoUser,
38112
- googleClientId = _useLogin.googleClientId;
38113
-
38114
- var togglePasswordVisible = function togglePasswordVisible() {
38115
- return setIsShowPassword(!isShowPassword);
38116
- };
38117
-
38118
- var dispatch = reactRedux.useDispatch();
38119
-
38120
- var _useGoogleReCaptcha = reactGoogleRecaptchaV3.useGoogleReCaptcha(),
38121
- executeRecaptcha = _useGoogleReCaptcha.executeRecaptcha;
38122
-
38123
- var clickHandler = React.useCallback(function () {
38124
- try {
38125
- if (!executeRecaptcha) {
38126
- console.log("execute recaptcha undefined");
38127
- return Promise.resolve();
38128
- }
38129
-
38130
- return Promise.resolve(executeRecaptcha("login"));
38131
- } catch (e) {
38132
- return Promise.reject(e);
38133
- }
38134
- }, [executeRecaptcha]);
38135
- var handleVerify = React.useCallback(function () {}, []);
38136
-
38137
- var onSuccessGoogle = function onSuccessGoogle(res) {
38138
- if (!!(res !== null && res !== void 0 && res.accessToken)) {
38139
- var _res$profileObj = res.profileObj,
38140
- email = _res$profileObj.email,
38141
- familyName = _res$profileObj.familyName,
38142
- givenName = _res$profileObj.givenName,
38143
- imageUrl = _res$profileObj.imageUrl,
38144
- name = _res$profileObj.name;
38145
- var accessToken = res.accessToken;
38146
- var googleId = res.googleId;
38147
-
38148
- if (email.includes("@gmail")) {
38149
- alert("The email address you used does not match the login information in the database. Please check that you are using your school assigned email address to log into MARIO for Me. If you have further trouble please notify your school site administrator");
38150
- return;
38151
- }
38152
-
38153
- var infoLogin = {
38154
- firstName: givenName,
38155
- lastName: familyName,
38156
- imageUrl: imageUrl,
38157
- fullName: name,
38158
- email: email,
38159
- accessToken: accessToken,
38160
- googleId: googleId
38161
- };
38162
- dispatch(setInforUserGoogle(infoLogin));
38163
- fnIsCheckLogin(TypeLogin.Google, infoLogin, accessToken, clickHandler);
38164
- }
38165
- };
38166
-
38167
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(formik.Formik, {
38168
- initialValues: defaultInfo,
38169
- validationSchema: schema,
38170
- onSubmit: function (values) {
38171
- try {
38172
- return Promise.resolve(_catch(function () {
38173
- return Promise.resolve(clickHandler()).then(function (clickHandlerRes) {
38174
- if (!clickHandlerRes) return;
38175
- values.captcha = clickHandlerRes;
38176
- values.loginType = LoginType.Default;
38177
- userLogin(values);
38178
- });
38179
- }, function (err) {
38180
- console.error(err);
38181
- }));
38182
- } catch (e) {
38183
- return Promise.reject(e);
38184
- }
38185
- }
38186
- }, function (formikProps) {
38187
- var handleChange = formikProps.handleChange,
38188
- handleBlur = formikProps.handleBlur,
38189
- handleSubmit = formikProps.handleSubmit,
38190
- values = formikProps.values,
38191
- touched = formikProps.touched,
38192
- errors = formikProps.errors,
38193
- setFieldValue = formikProps.setFieldValue;
38194
- var emailError = touched.email && errors.email;
38195
- var passwordError = touched.password && errors.password;
38196
- return React__default.createElement("div", {
38197
- className: styles["box-login"] + " w-100"
38198
- }, React__default.createElement(reactstrap.Form, {
38199
- className: "" + styles["block-login"],
38200
- onSubmit: handleSubmit
38201
- }, React__default.createElement("div", {
38202
- className: "" + styles["block-form"]
38203
- }, React__default.createElement("div", {
38204
- className: "d-flex align-items-center mb-4"
38205
- }, React__default.createElement("img", {
38206
- hidden: !(school !== null && school !== void 0 && school.schoolLogo),
38207
- src: school === null || school === void 0 ? void 0 : school.schoolLogo,
38208
- className: styles["school-icon"] + " mr-3"
38209
- }), React__default.createElement("p", {
38210
- className: styles["school-name"] + " mb-0"
38211
- }, school.schoolName)), React__default.createElement("p", {
38212
- className: "" + styles["title-login"]
38213
- }, "Welcome Back!"), React__default.createElement("p", {
38214
- className: styles["login-description"] + " mb-5"
38215
- }, "Please enter your MARIO Education account details"), React__default.createElement(reactstrap.FormGroup, {
38216
- className: "" + styles["form-user-name"]
38217
- }, React__default.createElement(reactstrap.Input, {
38218
- type: "text",
38219
- name: "email",
38220
- placeholder: "Email",
38221
- value: values.email,
38222
- onChange: handleChange,
38223
- autocomplete: "email",
38224
- onBlur: handleBlur("email"),
38225
- required: true
38226
- }), emailError && React__default.createElement(ErrorHandler, {
38227
- text: errors.email
38228
- })), React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(PasswordInput, {
38229
- isShowPassword: isShowPassword,
38230
- togglePasswordVisible: togglePasswordVisible,
38231
- onChange: function onChange(e) {
38232
- return setFieldValue("password", e.target.value);
38233
- }
38234
- }), passwordError && React__default.createElement(ErrorHandler, {
38235
- text: errors.password
38236
- })), React__default.createElement(reactstrap.FormGroup, null, React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptcha, {
38237
- action: "login",
38238
- onVerify: handleVerify
38239
- })), React__default.createElement("div", {
38240
- className: "d-flex justify-content-between"
38241
- }, React__default.createElement("div", {
38242
- className: "d-flex align-items-center"
38243
- }, React__default.createElement("input", {
38244
- type: "checkbox",
38245
- checked: !values.isSessionUserBrowser,
38246
- className: "" + styles["checkbox-keep-login"],
38247
- onChange: function onChange() {
38248
- return setFieldValue("isSessionUserBrowser", !values.isSessionUserBrowser);
38249
- }
38250
- }), React__default.createElement("p", {
38251
- className: styles["label-keep-login"] + " mb-0 ml-2"
38252
- }, "Keep me logged in")), React__default.createElement(reactRouterDom.Link, {
38253
- to: "/forgot-password",
38254
- className: "" + styles["link-to-login"]
38255
- }, "Forgot password?")), React__default.createElement("button", {
38256
- className: styles["btn-login"] + " mt-5",
38257
- type: "submit"
38258
- }, "LOG IN"), React__default.createElement("p", {
38259
- className: styles["option-text"] + " my-3 text-center"
38260
- }, "OR"), React__default.createElement(reactstrap.Row, {
38261
- className: "mb-4"
38262
- }, React__default.createElement(reactstrap.Col, {
38263
- lg: 12,
38264
- md: 12,
38265
- xs: 12,
38266
- className: "pr-md-3"
38267
- }, !!googleClientId && React__default.createElement(GoogleLogin, {
38268
- clientId: googleClientId,
38269
- buttonText: "GOOGLE",
38270
- onSuccess: onSuccessGoogle,
38271
- cookiePolicy: "single_host_origin",
38272
- className: styles["btn-login-google"] + " p-0 mb-4 mb-md-0"
38273
- }))), React__default.createElement("div", {
38274
- className: "" + styles["btn-login-sso"]
38275
- }, React__default.createElement("div", {
38276
- className: styles["btn-login-with-sso"],
38277
- onClick: function onClick() {
38278
- return window.open("https://launchpad.classlink.com/login");
38279
- }
38280
- }, React__default.createElement("img", {
38281
- src: "images/class-link-icon.png"
38282
- }), React__default.createElement("p", null, "Sign-in with ClassLink"))))));
38283
- }), isLoginGoogle && React__default.createElement(BlockSelectTeacher$1, {
38284
- onSubmit: function onSubmit(e) {
38285
- return submitLogin(e, clickHandler);
38286
- },
38287
- openModal: isLoginGoogle,
38288
- token: infoUser.accessToken,
38289
- email: infoUser.email
38290
- }));
38291
- };
38292
-
38293
- var defaultInfo$1 = {
38294
- email: "",
38295
- captcha: ""
38296
- };
38297
- var DASHBOARD = "/";
38298
- var LOGIN = "/login";
38299
- var TITLE$1 = "Log in";
38300
-
38301
- var useForgotPassword = function useForgotPassword() {
38302
- var _query$get;
38303
-
38304
- var query = new URLSearchParams(reactRouterDom.useLocation().search);
38305
- var token = query.get("token");
38306
- var key = (_query$get = query.get("key")) != null ? _query$get : "";
38307
- var dispatch = reactRedux.useDispatch();
38308
- var history = reactRouterDom.useHistory();
38309
-
38310
- var _useState = React.useState(false),
38311
- openLogin = _useState[0],
38312
- setOpenLogin = _useState[1];
38313
-
38314
- var toggle = React.useCallback(function () {
38315
- setOpenLogin(!openLogin);
38316
- }, [openLogin]);
38317
-
38318
- var _useState2 = React.useState(false),
38319
- isShowNewPassword = _useState2[0],
38320
- setIsShowNewPassword = _useState2[1];
38321
-
38322
- var _useState3 = React.useState(false),
38323
- isShowReTypePassword = _useState3[0],
38324
- setIsShowReTypePassword = _useState3[1];
38325
-
38326
- var _useState4 = React.useState({
38327
- token: "",
38328
- password: "",
38329
- reEnterPassword: "",
38330
- email: "",
38331
- userId: ""
38332
- }),
38333
- initialValues = _useState4[0],
38334
- setInitialValues = _useState4[1];
38335
-
38336
- var _useState5 = React.useState(true),
38337
- validLink = _useState5[0],
38338
- setValidLink = _useState5[1];
38339
-
38340
- var _useGoogleReCaptcha = reactGoogleRecaptchaV3.useGoogleReCaptcha(),
38341
- executeRecaptcha = _useGoogleReCaptcha.executeRecaptcha;
38342
-
38343
- React.useEffect(function () {
38344
- document.title = TITLE$1;
38345
- var token = getAccessToken();
38346
- if (!!token) history.push(DASHBOARD);
38347
- }, []);
38348
- var forgotPasswordRequest = React.useCallback(function (data) {
38349
- try {
38350
- var _temp3 = function _temp3() {
38351
- dispatch(setLoading(false));
38352
- };
38353
-
38354
- dispatch(setLoading(true));
38355
-
38356
- var _temp4 = _catch(function () {
38357
- return Promise.resolve(forgotPassword(data)).then(function () {
38358
- history.push(LOGIN);
38359
- dispatch(setAlert({
38360
- type: "success",
38361
- message: "A mail to reset password was sent"
38362
- }));
38363
- });
38364
- }, function (err) {
38365
- var _err$response, _err$response$data;
38366
-
38367
- dispatch(setAlert({
38368
- type: "danger",
38369
- message: ((_err$response = err.response) === null || _err$response === void 0 ? void 0 : (_err$response$data = _err$response.data) === null || _err$response$data === void 0 ? void 0 : _err$response$data.title) || err.message || "Error occured"
38370
- }));
38371
- localStorage.removeItem(ACCESS_TOKEN);
38372
- sessionStorage.removeItem(ACCESS_TOKEN);
38373
- });
38374
-
38375
- return Promise.resolve(_temp4 && _temp4.then ? _temp4.then(_temp3) : _temp3(_temp4));
38376
- } catch (e) {
38377
- return Promise.reject(e);
38378
- }
38379
- }, []);
38380
- var checkResetTokenRequest = React.useCallback(function (token, key) {
38381
- try {
38382
- var _temp7 = function _temp7() {
38383
- dispatch(setLoading(false));
38384
- };
38385
-
38386
- dispatch(setLoading(true));
38387
-
38388
- var _temp8 = _catch(function () {
38389
- return Promise.resolve(checkResetToken(token, key)).then(function (res) {
38390
- if (res.data) {
38391
- setInitialValues(_extends({}, initialValues, {
38392
- token: token,
38393
- email: res.data
38394
- }));
38395
- } else {
38396
- setValidLink(false);
38397
- }
38398
- });
38399
- }, function () {
38400
- setValidLink(false);
38401
- });
38402
-
38403
- return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(_temp7) : _temp7(_temp8));
38404
- } catch (e) {
38405
- return Promise.reject(e);
38406
- }
38407
- }, []);
38408
- var resetPasswordRequest = React.useCallback(function (data) {
38409
- try {
38410
- var _temp11 = function _temp11() {
38411
- dispatch(setLoading(false));
38412
- };
38413
-
38414
- dispatch(setLoading(true));
38415
-
38416
- var _temp12 = _catch(function () {
38417
- return Promise.resolve(resetPassword(_extends({}, data, {
38418
- key: key
38419
- }))).then(function () {
38420
- history.push(LOGIN);
38421
- dispatch(setAlert({
38422
- type: "success",
38423
- message: "Reset password sucessfully"
38424
- }));
38425
- });
38426
- }, function (err) {
38427
- var _err$response2, _err$response2$data;
38428
-
38429
- dispatch(setAlert({
38430
- type: "danger",
38431
- message: ((_err$response2 = err.response) === null || _err$response2 === void 0 ? void 0 : (_err$response2$data = _err$response2.data) === null || _err$response2$data === void 0 ? void 0 : _err$response2$data.title) || err.message || "Error occured"
38432
- }));
38433
- localStorage.removeItem(ACCESS_TOKEN);
38434
- sessionStorage.removeItem(ACCESS_TOKEN);
38435
- });
38436
-
38437
- return Promise.resolve(_temp12 && _temp12.then ? _temp12.then(_temp11) : _temp11(_temp12));
38438
- } catch (e) {
38439
- return Promise.reject(e);
38440
- }
38441
- }, []);
38442
- var clickHandler = React.useCallback(function () {
38443
- try {
38444
- if (!executeRecaptcha) {
38445
- console.log("execute recaptcha undefined");
38446
- return Promise.resolve();
38447
- }
38448
-
38449
- return Promise.resolve(executeRecaptcha("forgetPass"));
38450
- } catch (e) {
38451
- return Promise.reject(e);
38452
- }
38453
- }, [executeRecaptcha]);
38454
- var handleVerify = React.useCallback(function () {}, []);
38455
- React.useEffect(function () {
38456
- checkResetTokenRequest(token, key);
38457
- }, []);
38458
- return {
38459
- defaultInfo: defaultInfo$1,
38460
- forgotPasswordRequest: forgotPasswordRequest,
38461
- checkResetTokenRequest: checkResetTokenRequest,
38462
- validLink: validLink,
38463
- resetPasswordRequest: resetPasswordRequest,
38464
- openLogin: openLogin,
38465
- toggle: toggle,
38466
- isShowNewPassword: isShowNewPassword,
38467
- setIsShowNewPassword: setIsShowNewPassword,
38468
- isShowReTypePassword: isShowReTypePassword,
38469
- setIsShowReTypePassword: setIsShowReTypePassword,
38470
- clickHandler: clickHandler,
38471
- handleVerify: handleVerify,
38472
- initialValues: initialValues
38473
- };
38474
- };
38475
-
38476
- var initialValues = {
38477
- email: "",
38478
- captcha: ""
38479
- };
38480
- var forgotPasswordSchema = yup.object({
38481
- email: yup.string().email("Email is invalid").required("Email is required")
38482
- });
38483
-
38484
- var BlockForgetPassword = function BlockForgetPassword(_ref) {
38485
- var school = _ref.school;
38486
-
38487
- var _useForgotPassword = useForgotPassword(),
38488
- forgotPasswordRequest = _useForgotPassword.forgotPasswordRequest,
38489
- clickHandler = _useForgotPassword.clickHandler,
38490
- handleVerify = _useForgotPassword.handleVerify;
38491
-
38492
- return React__default.createElement(formik.Formik, {
38493
- initialValues: initialValues,
38494
- enableReinitialize: true,
38495
- validationSchema: forgotPasswordSchema,
38496
- onSubmit: function (values) {
38497
- try {
38498
- return Promise.resolve(clickHandler()).then(function (clickHandlerRes) {
38499
- if (!clickHandlerRes) return;
38500
- values.captcha = clickHandlerRes;
38501
- forgotPasswordRequest(values);
38502
- });
38503
- } catch (e) {
38504
- return Promise.reject(e);
38505
- }
38506
- }
38507
- }, function (formikProps) {
38508
- var handleChange = formikProps.handleChange,
38509
- handleSubmit = formikProps.handleSubmit,
38510
- values = formikProps.values,
38511
- touched = formikProps.touched,
38512
- errors = formikProps.errors;
38513
- return React__default.createElement("div", {
38514
- className: "" + styles["box-login"]
38515
- }, React__default.createElement("div", {
38516
- className: "" + styles["block-login"]
38517
- }, React__default.createElement("div", {
38518
- className: "" + styles["block-form"]
38519
- }, React__default.createElement("div", {
38520
- className: "d-flex align-items-center mb-4"
38521
- }, React__default.createElement("img", {
38522
- src: "" + getStaticFileUrl("/images/isb-icon.png"),
38523
- className: styles["school-icon"] + " mr-3"
38524
- }), React__default.createElement("p", {
38525
- className: styles["school-name"] + " mb-0"
38526
- }, school.schoolName)), React__default.createElement("p", {
38527
- className: styles["title-login"] + " "
38528
- }, "Forgot password"), React__default.createElement("p", {
38529
- className: styles["recover-account"] + " mb-5"
38530
- }, "Enter email to recover your account"), React__default.createElement("div", {
38531
- className: "w-100"
38532
- }, React__default.createElement(reactstrap.Input, {
38533
- type: "text",
38534
- name: "email",
38535
- id: "email",
38536
- placeholder: "Input email",
38537
- onChange: handleChange,
38538
- value: values.email
38539
- }), touched.email && errors.email && React__default.createElement(ErrorHandler, {
38540
- text: errors.email
38541
- })), React__default.createElement(reactRouterDom.Link, {
38542
- to: "/login",
38543
- className: styles["link-to-login"] + " mt-2"
38544
- }, "Return to login"), React__default.createElement(reactGoogleRecaptchaV3.GoogleReCaptcha, {
38545
- action: "forgetPass",
38546
- onVerify: handleVerify
38547
- }), React__default.createElement(reactstrap.Col, {
38548
- className: "p-0"
38549
- }, React__default.createElement("button", {
38550
- className: styles["btn-login"] + " mt-5",
38551
- onClick: function onClick() {
38552
- return handleSubmit();
38553
- }
38554
- }, "Continue")))));
38555
- });
38556
- };
38557
-
38558
- var resetPasswordSchema = yup.object({
38559
- password: yup.string().required("New password is required"),
38560
- reEnterPassword: yup.string().required("Please re-enter new password").test("matching", "Passwords do not match", function () {
38561
- return this.parent.password === this.parent.reEnterPassword;
38562
- })
38563
- });
38564
-
38565
- var BlockResetPassword = function BlockResetPassword() {
38566
- var _useForgotPassword = useForgotPassword(),
38567
- validLink = _useForgotPassword.validLink,
38568
- resetPasswordRequest = _useForgotPassword.resetPasswordRequest,
38569
- isShowNewPassword = _useForgotPassword.isShowNewPassword,
38570
- setIsShowNewPassword = _useForgotPassword.setIsShowNewPassword,
38571
- isShowReTypePassword = _useForgotPassword.isShowReTypePassword,
38572
- setIsShowReTypePassword = _useForgotPassword.setIsShowReTypePassword,
38573
- initialValues = _useForgotPassword.initialValues;
38574
-
38575
- return React__default.createElement(formik.Formik, {
38576
- initialValues: initialValues,
38577
- enableReinitialize: true,
38578
- validationSchema: resetPasswordSchema,
38579
- onSubmit: function onSubmit(values) {
38580
- resetPasswordRequest(values);
38581
- }
38582
- }, function (formikProps) {
38583
- var setFieldValue = formikProps.setFieldValue,
38584
- handleSubmit = formikProps.handleSubmit,
38585
- touched = formikProps.touched,
38586
- errors = formikProps.errors,
38587
- values = formikProps.values;
38588
- return React__default.createElement(reactstrap.Row, {
38589
- className: "" + styles["box-login"]
38590
- }, React__default.createElement(reactstrap.Col, {
38591
- className: "p-0"
38592
- }, React__default.createElement("div", {
38593
- className: "" + styles["block-login"]
38594
- }, React__default.createElement("div", {
38595
- className: "" + styles["block-form"]
38596
- }, React__default.createElement("img", {
38597
- src: "" + getStaticFileUrl("/images/horizontal-logo-blue.svg"),
38598
- className: "" + styles["img-login-rectangle"]
38599
- }), React__default.createElement("p", {
38600
- className: "" + styles["title-login"]
38601
- }, "Reset Password"), React__default.createElement("div", {
38602
- className: "w-100"
38603
- }, validLink ? React__default.createElement(React__default.Fragment, null, React__default.createElement(reactstrap.FormGroup, {
38604
- className: "" + styles["form-user-name"]
38605
- }, React__default.createElement(reactstrap.Input, {
38606
- disabled: true,
38607
- type: "text",
38608
- name: "email",
38609
- placeholder: "Email",
38610
- value: values.email,
38611
- autocomplete: "email",
38612
- required: true,
38613
- className: "" + styles["input"]
38614
- })), React__default.createElement("div", {
38615
- className: "" + styles["form-user-name"]
38616
- }, React__default.createElement(PasswordInput, {
38617
- isShowPassword: isShowNewPassword,
38618
- togglePasswordVisible: function togglePasswordVisible() {
38619
- return setIsShowNewPassword(!isShowNewPassword);
38620
- },
38621
- onChange: function onChange(e) {
38622
- return setFieldValue("password", e.target.value);
38623
- }
38624
- }), touched.password && errors.password && React__default.createElement(ErrorHandler, {
38625
- text: errors.password
38626
- })), React__default.createElement("div", {
38627
- className: "" + styles["form-user-name"]
38628
- }, React__default.createElement(PasswordInput, {
38629
- placeholder: "Confirm Password",
38630
- isShowPassword: isShowReTypePassword,
38631
- togglePasswordVisible: function togglePasswordVisible() {
38632
- return setIsShowReTypePassword(!isShowReTypePassword);
38633
- },
38634
- onChange: function onChange(e) {
38635
- return setFieldValue("reEnterPassword", e.target.value);
38636
- }
38637
- }), touched.reEnterPassword && errors.reEnterPassword && React__default.createElement(ErrorHandler, {
38638
- text: errors.reEnterPassword
38639
- }))) : React__default.createElement(React__default.Fragment, null, React__default.createElement("p", {
38640
- className: styles["recover-account"] + " mb-5"
38641
- }, "Invalid reset password link"), React__default.createElement("p", {
38642
- className: "w-100"
38643
- }, "It may have been accessed before or expired or you have just tried to reset another account's password"))), validLink && React__default.createElement(reactstrap.Col, {
38644
- className: "p-0"
38645
- }, React__default.createElement("button", {
38646
- className: styles["btn-login"] + " " + styles["btn-rounder"] + " mt-4",
38647
- onClick: function onClick() {
38648
- return handleSubmit();
38649
- }
38650
- }, "SET A NEW PASSWORD"))))), React__default.createElement(reactstrap.Col, {
38651
- lg: 4,
38652
- md: 4,
38653
- className: "" + styles["img-box"]
38654
- }, React__default.createElement("img", {
38655
- src: getStaticFileUrl("/images/img-login.png"),
38656
- className: "" + styles["img-login"]
38657
- })));
38658
- });
38659
- };
38660
-
38661
- var DASHBOARD$1 = "/";
38662
- var LOGIN$1 = "/login";
38663
- var TITLE$2 = "Log in";
38664
-
38665
- var useCreatePassword = function useCreatePassword() {
38666
- var dispatch = reactRedux.useDispatch();
38667
- var history = reactRouterDom.useHistory();
38668
- var search = location.search;
38669
- var params = new URLSearchParams(search);
38670
- var userId = params.get('userId');
38671
-
38672
- var _useState = React.useState(false),
38673
- isShowNewPassword = _useState[0],
38674
- setIsShowNewPassword = _useState[1];
38675
-
38676
- var _useState2 = React.useState(false),
38677
- isShowReTypePassword = _useState2[0],
38678
- setIsShowReTypePassword = _useState2[1];
38674
+ var _useState2 = React.useState(false),
38675
+ isShowReTypePassword = _useState2[0],
38676
+ setIsShowReTypePassword = _useState2[1];
38679
38677
 
38680
38678
  var _useState3 = React.useState({
38681
38679
  password: "",
@@ -38907,7 +38905,14 @@ var Login = function Login(props) {
38907
38905
  googleRecaptchaId = _useLogin.googleRecaptchaId,
38908
38906
  handleCancelModelAssign = _useLogin.handleCancelModelAssign,
38909
38907
  school = _useLogin.school,
38910
- openModelAssign = _useLogin.openModelAssign;
38908
+ openModelAssign = _useLogin.openModelAssign,
38909
+ setIsShowPassword = _useLogin.setIsShowPassword,
38910
+ fnIsCheckLogin = _useLogin.fnIsCheckLogin,
38911
+ isLoginGoogle = _useLogin.isLoginGoogle,
38912
+ submitLogin = _useLogin.submitLogin,
38913
+ infoUser = _useLogin.infoUser,
38914
+ googleClientId = _useLogin.googleClientId,
38915
+ isShowPassword = _useLogin.isShowPassword;
38911
38916
 
38912
38917
  React.useEffect(function () {
38913
38918
  isLogin && (document.title = LOGIN_TITLE);
@@ -38936,7 +38941,14 @@ var Login = function Login(props) {
38936
38941
  defaultInfo: defaultInfo,
38937
38942
  onCancelModelAssign: handleCancelModelAssign,
38938
38943
  openModelAssign: openModelAssign,
38939
- school: school
38944
+ school: school,
38945
+ fnIsCheckLogin: fnIsCheckLogin,
38946
+ googleClientId: googleClientId,
38947
+ infoUser: infoUser,
38948
+ isLoginGoogle: isLoginGoogle,
38949
+ isShowPassword: isShowPassword,
38950
+ setIsShowPassword: setIsShowPassword,
38951
+ submitLogin: submitLogin
38940
38952
  }), isForgotPassword && React__default.createElement(BlockForgetPassword, {
38941
38953
  school: school
38942
38954
  })), isResetPassword && React__default.createElement(BlockResetPassword, null), isCreatePassword && React__default.createElement(BlockCreatePassword, null), React__default.createElement("a", {