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