{"version":3,"sources":["Components/Loader/loader.jsx","Components/Sidebar/sidebar.jsx","Components/PageWrapper/page-wrapper.jsx","Utils/history.js","Utils/api.js","Redux/login-slice.js","Components/Input/input.jsx","Components/Button/button.jsx","Redux/loader-slice.js","Components/Modal/modal.jsx","Utils/const.js","Pages/Login/OTPModal/otp-modal.jsx","Pages/Login/login.jsx","Pages/SignOut/signout.jsx","Components/Title/title.jsx","Components/Box/box.jsx","Redux/clients-slice.js","Components/Select/select.jsx","Pages/Admin/AdminHomePage/admin-home-page.jsx","Pages/Client/ClientHomePage/client-home-page.jsx","Pages/404/page404.jsx","Components/RoundedButton/rounded-button.jsx","Pages/Admin/ManageClients/AddClientBox/create-client-box.jsx","Pages/Admin/ManageClients/ClientBox/client-box.jsx","Components/CheckBox/checkbox.jsx","Pages/Admin/ManageClients/CreateClientModal/create-client-modal.jsx","Pages/Admin/ManageClients/manage-clients.jsx","Pages/Admin/ManageEnvironments/manage-environments.jsx","Redux/environment-slice.js","Pages/Admin/ManageClients/ClientProfile/CreateEnvironmentModal/create-environment-modal.jsx","Pages/Admin/ManageClients/ClientProfile/EnvironmentCard/CreateModeratorModal/create-moderator-modal.jsx","Pages/Admin/ManageClients/ClientProfile/EnvironmentCard/ToggleEnvironmentModal/toggle-environment-modal.jsx","Pages/Admin/ManageClients/ClientProfile/EnvironmentCard/EditModeratorModal/edit-moderator-modal.jsx","Pages/Admin/ManageClients/ClientProfile/UpdateDailyJobModal/update-daily-job-modal.jsx","Pages/Admin/ManageClients/ClientProfile/EnvironmentCard/environment-card.jsx","Pages/Admin/ManageClients/ClientProfile/UsersCard/EditUserModal/edit-add-user-modal.jsx","Pages/Admin/ManageClients/ClientProfile/UsersCard/SetActiveModal/set-active-modal.jsx","Pages/Admin/ManageClients/ClientProfile/UsersCard/users-card.jsx","Pages/Admin/ManageClients/ClientProfile/EditEnvironmentModal/edit-environment-modal.jsx","Pages/Admin/ManageClients/EditClientModal/edit-client-modal.jsx","Pages/Admin/ManageClients/ClientProfile/ToggleClientModal/toggle-client-modal.jsx","Pages/Admin/ManageClients/ClientProfile/client-profile.jsx","Pages/Login/ForgotPassword/forgot-password.jsx","Pages/Login/ChangePassword/change-password.jsx","App.js","Redux/store.js","reportWebVitals.js","i18n/index.js","index.js","Utils/func.js"],"names":["Loader","useSelector","state","loaderReducer","isActive","className","Sidebar","isAdmin","loginReducer","activeClassName","to","PageWrapper","props","children","createHashHistory","Api","axios","create","baseURL","doSignOut","createAsyncThunk","data","a","get","then","res","getLogin","post","getLoginOtp","CheckLogin","changePasswordReq","cangePasswordAction","loginSlice","createSlice","name","initialState","ini","isLoggedIn","clientId","clientName","firstName","lastName","userId","email","telephone","reducers","logIn","logOut","extraReducers","pending","action","fulfilled","rejected","payload","Success","PayLoad","Payload","IsAdmin","ClientId","ClientName","FirstName","LastName","UserId","Email","Telephone","actions","Input","value","required","Button","submit","type","loaderSlice","showLoader","hideLoader","Modal","isOpen","onClick","close","title","ReCaptchaV2SiteKey","OTPModal","executeRecaptcha","useGoogleReCaptcha","dispatch","useDispatch","history","useHistory","useState","reCaptchaV2Enabled","setreCaptchaV2Enabled","smsCode","setSmsCode","reCaptchaV2Token","setreCaptchaV2Token","doOtp","token","UserSMSCode","reCaptchaToken","reCaptchaV2","push","from","pathname","ErrorCode","alert","onSubmit","e","preventDefault","autoFocus","placeholder","onChange","target","sitekey","Login","location","username","setUsername","password","setPassword","useTranslation","t","i18n","otpModalOpen","setOtpModalOpen","useEffect","doLogin","Username","Password","SignOut","Title","Box","style","width","getClients","getClient","createClient","editClient","toggleClientActivation","getClientsStats","getNewClientsByDate","weeksAgo","editClientUser","userData","addClientUser","UpdateActiveClientUser","clientsSlice","clients","client","stats","newClients","Select","defaultValue","disabled","AdminHomePage","clientsReducer","selectedWeeksAgo","setSelectedWeeksAgo","catch","TotalClients","TotalPayingClients","TotalTrialClients","TotalEnvironments","TotalUsers","display","float","length","map","newClient","Id","Name","IsTrial","color","Date","CreatedOn","toLocaleDateString","WeekExpiresClients","DaysLeft","ClientHomePage","Page404","RoundedButton","primary","icon","iconstyle","CreateClientBox","ClientBox","Active","Type","ActiveUsers","UsersLimit","InactiveUsers","CheckBox","visibility","checked","CreateClientModal","initialClientDetails","MaxUsers","StartDate","ActiveUntil","initialClientUser","Firstname","Lastname","Role","clientDetails","setClientDetails","clientUser","setClientUser","Client","Users","currentChecked","label","padding","ManageClients","clientsRedux","setClients","clientsActivation","setClientsActivation","CreateClientModalOpen","setCreateClientModalOpen","selectedClientType","setSelectedClientType","changeClients","filter","prevActivation","cursor","marginRight","ManageEnvironments","createEnvironment","editEnvironment","getEnvironmentAutoLoginLink","envId","params","toggleEnvironmentActivation","createModerator","getModerator","updateModerator","sendFirstMessageToUser","sendChangePasswordMessageToUser","environmentSlice","autoLoginLink","CreateEnvironmentModal","initialEnvironmentDetails","Domain","LMS","OnBoarding","PreBoarding","Evaluation","EmailLogin","SMSLogin","Skills","LXPAI","CopyLxpAIBase","NumberOfAIInterviews","environmentDetails","setEnvironmentDetails","defaulLoginMethod","setDefaulLoginMethod","LXP","DefaultLoginMethod","parseInt","isClientTrial","CreateModeratorModal","loginUserFirstName","loginUserLastName","loginUserEmail","loginUserTelephone","initialModeratorDetails","LicenceId","environment","User","IdNumber","SendFirstMessage","moderatorDetails","setModeratorDetails","loginUserDetailsChecked","setLoginUserDetailsChecked","doCreateModerator","sendFirstMessageChecked","toggleLoginUserDetails","ToggleEnvironmentModal","textAlign","margin","EditModeratorModal","undefined","moderator","doUpdateModerator","ModeratorId","UpdateDailyJobModal","dayOfDailyJob","showDaysList","setShowDaysList","selectedDate","setSelectedDate","IsActive","DayNumber","EnvironmentCard","createModeratorModalOpen","setCreateModeratorModalOpen","setChosenModeratorId","chosenModerator","setChosenModerator","editModeratorModalOpen","setEditModeratorModalOpen","toggleEnvironmentModalOpen","setToggleEnvironmentModalOpen","environmentReducer","openUpdateDailyJobModal","setOpenUpdateDailyJobModal","Moderators","EnvId","window","open","listStyleType","moderatorId","loadModeratorDetails","FullName","onClickEdit","DayOfDailyJob","EditAddUserModal","setUserData","SetActiveModal","activeStatus","UsersCard","firstname","lastname","role","phone","openActiveModal","setOpenActiveModal","editAddUserModal","setEditAddUserModal","showActive","users","user","EditEnvironmentModal","EditClientModal","moment","format","min","ToggleClientModal","ClientProfile","createEnvironmentModalOpen","setCreateEnvironmentModalOpen","clientToEdit","setClientToEdit","environmentToEdit","setEnvironmentToEdit","editClientModalOpen","setEditClientModalOpen","toggleClientModalOpen","setToggleClientModalOpen","setShowActive","match","id","Environments","index","backgroundColor","ForgotPassword","setEmail","sent","setSent","setTimeout","ChangePassword","confirmPassword","setConfirmPassword","validPass","RegExp","trim","test","Token","NewPassword","fontSize","ProtectedRoute","Component","component","adminRoute","e404","render","path","withTranslation","isINI","finally","reCaptchaKey","useRecaptchaNet","exact","configureStore","reducer","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","resources","en","use","reactI18nextModule","init","lng","debug","fallbackLng","defaultNS","fallbackNS","interpolation","escapeValue","store","interceptors","request","config","isIE","document","documentMode","isEdge","StyleMedia","checkIEorEdge","parts","url","split","getTime","error","Promise","reject","response","status","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.833ec589.chunk.js","sourcesContent":["import React from \"react\";\r\nimport \"./loader.scss\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function Loader() {\r\n const isActive = useSelector((state) => state.loaderReducer.isActive);\r\n\r\n return isActive ? (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ) : null;\r\n}\r\n","import React from \"react\";\r\nimport \"./sidebar.scss\";\r\nimport { NavLink } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\nexport default function Sidebar() {\r\n const isAdmin = useSelector((state) => state.loginReducer.isAdmin);\r\n\r\n return (\r\n
\r\n
\r\n

HR+

\r\n
    \r\n
  • \r\n \r\n Home Page\r\n \r\n
  • \r\n\r\n {isAdmin ? (\r\n
  • \r\n \r\n Clients\r\n \r\n
  • \r\n ) : (\r\n
  • \r\n \r\n Client Profile\r\n \r\n
  • \r\n )}\r\n\r\n {/*
  • \r\n \r\n Environments\r\n \r\n
  • */}\r\n
  • \r\n SignOut\r\n
  • \r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Sidebar from \"../Sidebar/sidebar\";\r\nimport \"./page-wrapper.scss\";\r\n\r\nexport default function PageWrapper(props) {\r\n return (\r\n
\r\n \r\n
{props.children}
\r\n
\r\n );\r\n}\r\n","import { createHashHistory } from \"history\";\r\nexport default createHashHistory();\r\n","import axios from \"axios\";\r\nimport { checkIEorEdge } from \"./func\";\r\nimport history from \"./history\";\r\n//import store from \"../Redux/store\";\r\nimport { doSignOut } from \"../Redux/login-slice\";\r\n// ...\r\n\r\nconst Api = axios.create({\r\n baseURL: process.env.REACT_APP_SERVER_URL + \"/api/\",\r\n});\r\n\r\nconst IntegrateApiInterceptor = (store) => {\r\n const checkAuth = (status) => {\r\n if (status === 401) {\r\n // asd.push(\"/login\");\r\n store.dispatch(doSignOut());\r\n // history.push(\"/signout\"); ///send with some state\r\n }\r\n };\r\n Api.interceptors.request.use(\r\n function (config) {\r\n if (!checkIEorEdge()) return config;\r\n\r\n let url = config.url;\r\n let parts = url.split(\"?\");\r\n config.url =\r\n `${parts[0]}?ts=${new Date().getTime()}` +\r\n (parts.length > 1 ? `&${parts[1]}` : \"\");\r\n // Do something before request is sent\r\n return config;\r\n },\r\n function (error) {\r\n // Do something with request error\r\n return Promise.reject(error);\r\n }\r\n );\r\n Api.interceptors.response.use(\r\n function (response) {\r\n // Do something with response data\r\n return response;\r\n },\r\n function (error) {\r\n // Do something with response error\r\n if (error && error.response) {\r\n checkAuth(error.response.status);\r\n }\r\n return Promise.reject(error);\r\n }\r\n );\r\n};\r\nexport default Api;\r\nexport { IntegrateApiInterceptor };\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport Api from \"../Utils/api\";\r\nexport const doSignOut = createAsyncThunk(\"login/doSignOut\", async (data) => {\r\n return Api.get(\"/Login/SignOut\", data).then((res) => res.data);\r\n});\r\nexport const getLogin = createAsyncThunk(\"login/getLogin\", async (data) => {\r\n return Api.post(\"/Login/GetLogin\", data).then((res) => res.data);\r\n});\r\n\r\nexport const getLoginOtp = createAsyncThunk(\r\n \"login/getLoginOtp\",\r\n async (data) => {\r\n return Api.post(\"/Login/OTP\", data).then((res) => res.data);\r\n }\r\n);\r\nexport const CheckLogin = createAsyncThunk(\"login/CheckLogin\", async () => {\r\n return Api.get(\"/Login/CheckLogin\").then((res) => res.data);\r\n});\r\n\r\nexport const changePasswordReq = createAsyncThunk(\r\n \"login/changePasswordReq\",\r\n async (data) => {\r\n return Api.post(\"/Login/ChangePasswordReq\", data).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const cangePasswordAction = createAsyncThunk(\r\n \"login/changePasswordAction\",\r\n async (data) => {\r\n return Api.post(\"/Login/ChangePasswordAction\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const loginSlice = createSlice({\r\n name: \"login\",\r\n initialState: {\r\n ini: false,\r\n isLoggedIn: false,\r\n isAdmin: false,\r\n clientId: \"\",\r\n clientName: \"\",\r\n firstName: \"\",\r\n lastName: \"\",\r\n userId: \"\",\r\n email: \"\",\r\n telephone: \"\",\r\n },\r\n reducers: {\r\n logIn: (state) => {\r\n state.isLoggedIn = true;\r\n },\r\n logOut: (state) => {\r\n state.isLoggedIn = false;\r\n },\r\n },\r\n extraReducers: {\r\n [getLogin.pending]: (state, action) => {},\r\n [getLogin.fulfilled]: (state, action) => {},\r\n [getLogin.rejected]: (state, action) => {},\r\n [CheckLogin.rejected]: (state, action) => {\r\n state.ini = true;\r\n },\r\n [CheckLogin.fulfilled]: (state, action) => {\r\n //set all info. maybe use the logIn Reducer\r\n state.ini = true;\r\n if (action.payload.Success === true) {\r\n const PayLoad = action.payload.Payload;\r\n\r\n state.isLoggedIn = true;\r\n state.isAdmin = PayLoad.IsAdmin;\r\n state.clientId = PayLoad.ClientId;\r\n state.clientName = PayLoad.ClientName;\r\n state.firstName = PayLoad.FirstName;\r\n state.lastName = PayLoad.LastName;\r\n state.userId = PayLoad.UserId;\r\n state.email = PayLoad.Email;\r\n state.telephone = PayLoad.Telephone;\r\n }\r\n },\r\n [getLoginOtp.fulfilled]: (state, action) => {\r\n //set all info. maybe use the logIn Reducer\r\n if (action.payload.Success === true) {\r\n const PayLoad = action.payload.Payload;\r\n state.isLoggedIn = true;\r\n state.isAdmin = PayLoad.IsAdmin;\r\n state.clientId = PayLoad.ClientId;\r\n state.clientName = PayLoad.ClientName;\r\n state.firstName = PayLoad.FirstName;\r\n state.lastName = PayLoad.LastName;\r\n state.userId = PayLoad.UserId;\r\n state.email = PayLoad.Email;\r\n state.telephone = PayLoad.Telephone;\r\n }\r\n },\r\n [doSignOut.fulfilled]: (state, action) => {\r\n //set all info. maybe use the logIn Reducer\r\n if (action.payload.Success === true) state.isLoggedIn = false;\r\n },\r\n },\r\n});\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const { logIn, logOut } = loginSlice.actions;\r\n\r\nexport default loginSlice.reducer;\r\n","import React from \"react\";\r\nimport \"./input.scss\";\r\n\r\nexport default function Input(props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./button.scss\";\r\n\r\nexport default function Button({ submit, children, ...props }) {\r\n if (submit)\r\n return (\r\n \r\n );\r\n return (\r\n \r\n );\r\n}\r\n","import { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nexport const loaderSlice = createSlice({\r\n name: \"loader\",\r\n initialState: {\r\n isActive: false,\r\n },\r\n reducers: {\r\n showLoader: (state) => {\r\n state.isActive = true;\r\n },\r\n hideLoader: (state) => {\r\n state.isActive = false;\r\n },\r\n },\r\n});\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const { showLoader, hideLoader } = loaderSlice.actions;\r\n\r\nexport default loaderSlice.reducer;\r\n","import React from \"react\";\r\nimport \"./modal.scss\";\r\n\r\nexport default function Modal(props) {\r\n return props.isOpen ? (\r\n
\r\n
\r\n
\r\n \r\n ×\r\n \r\n

{props.title}

\r\n {props.children}\r\n
\r\n
\r\n ) : null;\r\n}\r\n","const EmailRegEx = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\nconst ServerUrl = process.env.REACT_APP_SERVER_URL;\r\nconst ReCaptchaSiteKey = \"6Lflob0UAAAAAL4PSwlY1IY-zNEJUr3YTx0imEL8\";\r\nconst ReCaptchaV2SiteKey = \"6LfmHboaAAAAALykcwXzK7z5y4add5kZIYd7sAU5\";\r\n\r\nexport { ServerUrl, EmailRegEx, ReCaptchaSiteKey, ReCaptchaV2SiteKey };\r\n","import React, { useState } from \"react\";\r\nimport \"./otp-modal.scss\";\r\n\r\n// Functions\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useHistory } from \"react-router\";\r\nimport { getLoginOtp, logIn } from \"../../../Redux/login-slice\";\r\nimport { hideLoader, showLoader } from \"../../../Redux/loader-slice\";\r\n\r\n// Components\r\nimport Input from \"../../../Components/Input/input\";\r\nimport Modal from \"../../../Components/Modal/modal\";\r\nimport Button from \"../../../Components/Button/button\";\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { ReCaptchaV2SiteKey } from \"../../../Utils/const\";\r\nexport default function OTPModal(props) {\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const [reCaptchaV2Enabled, setreCaptchaV2Enabled] = useState(false);\r\n const [smsCode, setSmsCode] = useState(\"\");\r\n const [reCaptchaV2Token, setreCaptchaV2Token] = useState(\"\");\r\n const onChangeRecaptchaV2 = (token) => {\r\n setreCaptchaV2Token(token);\r\n };\r\n const doOtp = async () => {\r\n let token;\r\n if (reCaptchaV2Enabled) token = reCaptchaV2Token;\r\n else token = await executeRecaptcha(\"SuperAdminLogin\");\r\n dispatch(showLoader());\r\n\r\n dispatch(\r\n getLoginOtp({\r\n UserSMSCode: smsCode,\r\n reCaptchaToken: token,\r\n reCaptchaV2: reCaptchaV2Enabled,\r\n })\r\n ).then((res) => {\r\n dispatch(hideLoader());\r\n\r\n if (res.payload.Success) {\r\n history.push(props.from.from.pathname);\r\n /*\r\n\r\n // Redirect after login\r\n const isAdmin = res.payload.Payload.IsAdmin;\r\n\r\n if (isAdmin) {\r\n history.push(\"/admin/home\");\r\n } else {\r\n history.push(\"/client/home\");\r\n }\r\n */\r\n } else {\r\n if (res.payload.ErrorCode == \"SuperAdmin.8220\") {\r\n alert(\"Robot Detection Error\");\r\n setreCaptchaV2Enabled(true);\r\n } else {\r\n alert(\"SMS code is incorrect\");\r\n }\r\n }\r\n });\r\n };\r\n return (\r\n {\r\n setSmsCode(\"\");\r\n props.close();\r\n }}\r\n isOpen={props.isOpen}\r\n className=\"otp-modal\"\r\n >\r\n {\r\n e.preventDefault();\r\n doOtp();\r\n }}\r\n >\r\n setSmsCode(e.target.value)}\r\n value={smsCode}\r\n />\r\n {reCaptchaV2Enabled && (\r\n <>\r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n {/* \r\n I did not receive a code\r\n */}\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./login.scss\";\r\n\r\n// Functions\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getLogin } from \"../../Redux/login-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport history from \"../../Utils/history\";\r\n\r\n// Components\r\nimport Input from \"../../Components/Input/input\";\r\nimport Button from \"../../Components/Button/button\";\r\nimport OTPModal from \"./OTPModal/otp-modal\";\r\nimport { hideLoader, showLoader } from \"../../Redux/loader-slice\";\r\nimport { useGoogleReCaptcha } from \"react-google-recaptcha-v3\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport { ReCaptchaV2SiteKey } from \"../../Utils/const\";\r\nimport { Link, NavLink } from \"react-router-dom\";\r\nexport default function Login({ location }) {\r\n const dispatch = useDispatch();\r\n const { executeRecaptcha } = useGoogleReCaptcha();\r\n const [username, setUsername] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const [otpModalOpen, setOtpModalOpen] = useState(false);\r\n const [reCaptchaV2Enabled, setreCaptchaV2Enabled] = useState(false);\r\n const [reCaptchaV2Token, setreCaptchaV2Token] = useState(\"\");\r\n const onChangeRecaptchaV2 = (token) => {\r\n setreCaptchaV2Token(token);\r\n };\r\n\r\n useEffect(() => {\r\n dispatch(hideLoader());\r\n }, []);\r\n const doLogin = async () => {\r\n let token;\r\n if (reCaptchaV2Enabled) token = reCaptchaV2Token;\r\n else token = await executeRecaptcha(\"SuperAdminLogin\");\r\n dispatch(showLoader());\r\n\r\n dispatch(\r\n getLogin({\r\n Username: username,\r\n Password: password,\r\n reCaptchaToken: token,\r\n reCaptchaV2: reCaptchaV2Enabled,\r\n })\r\n ).then((res) => {\r\n dispatch(hideLoader());\r\n\r\n if (res.payload.Success) {\r\n setOtpModalOpen(true);\r\n } else {\r\n if (res.payload.ErrorCode == \"SuperAdmin.8220\") {\r\n alert(\"Robot Detection Error\");\r\n setreCaptchaV2Enabled(true);\r\n } else {\r\n // alert(t(res.payload.ErrorCode));\r\n alert(\"Details are incorrect\");\r\n }\r\n }\r\n });\r\n };\r\n return (\r\n
\r\n
\r\n

Login

\r\n\r\n {\r\n e.preventDefault();\r\n doLogin();\r\n }}\r\n >\r\n setUsername(e.target.value)}\r\n />\r\n\r\n setPassword(e.target.value)}\r\n />\r\n {reCaptchaV2Enabled && (\r\n <>\r\n
\r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {/* \r\n Forgot Password?\r\n */}\r\n \r\n Forgot Password?\r\n \r\n {/* history.push(\"/admin/manage-clients/\")}\r\n >\r\n Forgot Password?\r\n */}\r\n
\r\n\r\n setOtpModalOpen(false)}\r\n from={location.state || { from: { pathname: \"/\" } }}\r\n />\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\n// Functions\r\nimport { useDispatch } from \"react-redux\";\r\nimport { Redirect } from \"react-router\";\r\nimport { doSignOut } from \"../../Redux/login-slice\";\r\n\r\nexport default function SignOut() {\r\n const dispatch = useDispatch();\r\n useEffect(() => {\r\n dispatch(doSignOut());\r\n }, []);\r\n return ;\r\n}\r\n","import React from \"react\";\r\nimport \"./title.scss\";\r\n\r\nexport default function Title(props) {\r\n return

{props.children}

;\r\n}\r\n","import React from \"react\";\r\nimport \"./box.scss\";\r\n\r\nexport default function Box(props) {\r\n return (\r\n
\r\n {props.children}\r\n
\r\n );\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport Api from \"../Utils/api\";\r\n\r\nexport const getClients = createAsyncThunk(\"clients/getClients\", async () => {\r\n return Api.get(\"/SuperAdmin/GetClients\").then((res) => res.data);\r\n});\r\n\r\nexport const getClient = createAsyncThunk(\r\n \"clients/getClient\",\r\n async (clientId) => {\r\n return Api.get(\"/Client/GetClient?Id=\" + clientId).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const createClient = createAsyncThunk(\r\n \"clients/createClient\",\r\n async (data) => {\r\n return Api.post(\"/SuperAdmin/CreateClient\", data).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const editClient = createAsyncThunk(\r\n \"clients/editClient\",\r\n async (data) => {\r\n return Api.post(\"/Client/UpdateClient\", data).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const toggleClientActivation = createAsyncThunk(\r\n \"clients/toggleClientActivation\",\r\n async (clientId) => {\r\n return Api.post(\r\n `/SuperAdmin/ToggleClientActivation?ClientId=${clientId}`\r\n ).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const updateClientUser = createAsyncThunk(\r\n \"clients/updateClientUser\",\r\n async (data) => {\r\n return Api.post(\"/Client/UpdateClientUser\", data).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const getClientsStats = createAsyncThunk(\r\n \"clients/getClientsStats\",\r\n async (clientId) => {\r\n return Api.get(\"/SuperAdmin/GetClientsStats\").then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const getNewClientsByDate = createAsyncThunk(\r\n \"clients/getNewClientsByDate\",\r\n async (weeksAgo) => {\r\n return Api.get(\"/SuperAdmin/GetNewClientsByDate?WeeksAgo=\" + weeksAgo).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const editClientUser = createAsyncThunk(\r\n \"/Client/UpdateClientUser\",\r\n async (userData) => {\r\n return Api.post(\"/Client/UpdateClientUser\", userData).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const addClientUser = createAsyncThunk(\r\n \"/Client/AddClientUser\",\r\n async (userData) => {\r\n return Api.post(\"/Client/AddClientUser\", userData).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const UpdateActiveClientUser = createAsyncThunk(\r\n \"/Client/UpdateActiveClientUser\",\r\n async (userData) => {\r\n return Api.post(\"/Client/UpdateActiveClientUser\", userData).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const clientsSlice = createSlice({\r\n name: \"clients\",\r\n initialState: {\r\n clients: [],\r\n client: {},\r\n stats: {},\r\n newClients: [],\r\n },\r\n reducers: {},\r\n extraReducers: {\r\n // Get Clients\r\n [getClients.fulfilled]: (state, action) => {\r\n state.clients = action.payload.Payload;\r\n },\r\n [getClients.rejected]: (state, action) => {},\r\n // GetClient\r\n [getClient.fulfilled]: (state, action) => {\r\n state.client = action.payload.Payload;\r\n },\r\n\r\n // GetClientsStats\r\n [getClientsStats.fulfilled]: (state, action) => {\r\n state.stats = action.payload.Payload;\r\n },\r\n\r\n // GetNewClientsByDate\r\n [getNewClientsByDate.fulfilled]: (state, action) => {\r\n state.newClients = action.payload.Payload;\r\n },\r\n },\r\n});\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const {} = clientsSlice.actions;\r\n\r\nexport default clientsSlice.reducer;\r\n","import React from \"react\";\r\nimport \"./select.scss\";\r\n\r\nexport default function Select(props) {\r\n return (\r\n \r\n );\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Title from \"../../../Components/Title/title\";\r\nimport Box from \"../../../Components/Box/box\";\r\nimport \"./admin-home-page.scss\";\r\nimport {\r\n getClientsStats,\r\n getNewClientsByDate,\r\n} from \"../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../Redux/loader-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Select from \"../../../Components/Select/select\";\r\nimport { useHistory } from \"react-router\";\r\n\r\nexport default function AdminHomePage() {\r\n const history = useHistory();\r\n const dispatch = useDispatch();\r\n const stats = useSelector((state) => state.clientsReducer.stats);\r\n const newClients = useSelector((state) => state.clientsReducer.newClients);\r\n\r\n const [newClientsWeeksAgo, setNewClientsTimeAgo] = useState(1);\r\n const [selectedWeeksAgo, setSelectedWeeksAgo] = useState(1);\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n useEffect(() => {\r\n dispatch(showLoader());\r\n dispatch(getClientsStats())\r\n .then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(hideLoader());\r\n // console.log(stats);\r\n } else {\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n })\r\n .catch(() => {});\r\n }, []);\r\n\r\n useEffect(() => {\r\n dispatch(getNewClientsByDate(selectedWeeksAgo))\r\n .then((res) => {\r\n if (res.payload.Success) {\r\n } else {\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n })\r\n .catch(() => {});\r\n }, [selectedWeeksAgo]);\r\n\r\n return (\r\n
\r\n Home Page\r\n \r\n

Statistics - Paying & Active

\r\n
\r\n
    \r\n
  • \r\n Total Clients: {stats.TotalClients}\r\n
  • \r\n
  • \r\n Paying Clients: {stats.TotalPayingClients}\r\n
  • \r\n
  • \r\n Trial Clients: {stats.TotalTrialClients}\r\n
  • \r\n
  • \r\n Total Environments: {stats.TotalEnvironments}\r\n
  • \r\n
  • \r\n Total Users: {stats.TotalUsers}\r\n
  • \r\n
\r\n
\r\n
\r\n \r\n

New Clients

\r\n setSelectedWeeksAgo(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n

\r\n
\r\n {newClients.length > 0\r\n ? newClients.map((newClient) => {\r\n return (\r\n \r\n history.push(\"/admin/manage-clients/\" + newClient.Id)\r\n }\r\n >\r\n \r\n

\r\n {newClient.Name}\r\n {newClient.IsTrial && (\r\n (Free Trial)\r\n )}\r\n

\r\n

\r\n Joined:{\" \"}\r\n {new Date(newClient.CreatedOn).toLocaleDateString()}\r\n

\r\n
\r\n
\r\n );\r\n })\r\n : \"No Results\"}\r\n
\r\n \r\n\r\n \r\n

Expires This Week

\r\n
\r\n
\r\n {stats.WeekExpiresClients && stats.WeekExpiresClients.length > 0\r\n ? stats.WeekExpiresClients.map((client) => {\r\n return (\r\n \r\n history.push(\"/admin/manage-clients/\" + client.Id)\r\n }\r\n >\r\n \r\n

\r\n {client.Name}\r\n {client.IsTrial && (\r\n (Free Trial)\r\n )}\r\n

\r\n

{client.DaysLeft} Days left

\r\n
\r\n
\r\n );\r\n })\r\n : \"No Results\"}{\" \"}\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport Title from \"../../../Components/Title/title\";\r\nimport \"./client-home-page.scss\";\r\n\r\nexport default function ClientHomePage() {\r\n return (\r\n
\r\n Home Page\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\nexport default function Page404() {\r\n return
OOPS!
;\r\n}\r\n","import React from \"react\";\r\nimport \"./rounded-button.scss\";\r\n\r\nexport default function RoundedButton(props) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport RoundedButton from \"../../../../Components/RoundedButton/rounded-button\";\r\nimport \"./create-client-box.scss\";\r\n\r\nexport default function CreateClientBox(props) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useHistory } from \"react-router\";\r\nimport \"./client-box.scss\";\r\n\r\nexport default function ClientBox(props) {\r\n const history = useHistory();\r\n\r\n return (\r\n history.push(\"/admin/manage-clients/\" + props.client.Id)}\r\n >\r\n

\r\n {props.client.Name}\r\n

\r\n
\r\n {props.client.Type === 2 && }\r\n {/* */}\r\n\r\n {/* {props.client.Active && } */}\r\n
\r\n

\r\n Active users:{\" \"}\r\n props.client.UsersLimit ? \"red\" : \"\",\r\n }}\r\n >\r\n {props.client.ActiveUsers}\r\n \r\n

\r\n

\r\n Inactive users: {props.client.InactiveUsers}\r\n

\r\n

\r\n Users limit: {props.client.UsersLimit}\r\n

\r\n \r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./checkbox.scss\";\r\n\r\nexport default function CheckBox({ disabled, onClick, ...props }) {\r\n return (\r\n {\r\n if (!disabled) onClick(e);\r\n }}\r\n {...props}\r\n >\r\n \r\n \r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport Button from \"../../../../Components/Button/button\";\r\nimport Input from \"../../../../Components/Input/input\";\r\nimport Modal from \"../../../../Components/Modal/modal\";\r\nimport { createClient, getClients } from \"../../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../Redux/loader-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport CheckBox from \"../../../../Components/CheckBox/checkbox\";\r\nimport Select from \"../../../../Components/Select/select\";\r\n\r\nexport default function CreateClientModal(props) {\r\n const dispatch = useDispatch();\r\n\r\n const initialClientDetails = {\r\n Name: \"\",\r\n MaxUsers: \"\",\r\n IsTrial: false,\r\n Type: \"\",\r\n StartDate: \"\",\r\n ActiveUntil: null,\r\n };\r\n\r\n const initialClientUser = {\r\n Email: \"\",\r\n Password: \"\",\r\n Firstname: \"\",\r\n Lastname: \"\",\r\n Telephone: \"\",\r\n Role: \"\",\r\n };\r\n\r\n const [clientDetails, setClientDetails] = useState(initialClientDetails);\r\n const [clientUser, setClientUser] = useState(initialClientUser);\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n return (\r\n \r\n

Client Details

\r\n {\r\n e.preventDefault();\r\n dispatch(showLoader());\r\n dispatch(\r\n createClient({ Client: clientDetails, Users: [clientUser] })\r\n ).then((res) => {\r\n if (res.payload.Success) {\r\n resetClientModal();\r\n props.close();\r\n\r\n dispatch(showLoader());\r\n dispatch(getClients()).then(() => dispatch(hideLoader()));\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error creating client\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }}\r\n >\r\n {\r\n const currentChecked = clientDetails.IsTrial;\r\n // setClientDetails({\r\n // ...clientDetails,\r\n // IsTrial: !currentChecked,\r\n // });\r\n if (!currentChecked) {\r\n setClientDetails({ ...clientDetails, IsTrial: true, Type: 1 });\r\n } else {\r\n setClientDetails({ ...clientDetails, IsTrial: false, Type: \"\" });\r\n }\r\n }}\r\n />{\" \"}\r\n Trial\r\n \r\n setClientDetails({ ...clientDetails, Name: e.target.value })\r\n }\r\n />\r\n \r\n setClientDetails({ ...clientDetails, MaxUsers: e.target.value })\r\n }\r\n />\r\n {\r\n if (e.target.value == 1) {\r\n setClientDetails({\r\n ...clientDetails,\r\n Type: e.target.value,\r\n IsTrial: true,\r\n });\r\n } else {\r\n setClientDetails({\r\n ...clientDetails,\r\n Type: e.target.value,\r\n IsTrial: false,\r\n });\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Start date:\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n StartDate: e.target.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n End date:\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n ActiveUntil: e.target.value,\r\n })\r\n }\r\n />\r\n
\r\n

Client User

\r\n \r\n setClientUser({ ...clientUser, Firstname: e.target.value })\r\n }\r\n />\r\n \r\n setClientUser({ ...clientUser, Lastname: e.target.value })\r\n }\r\n />\r\n \r\n setClientUser({ ...clientUser, Email: e.target.value })\r\n }\r\n />\r\n \r\n setClientUser({ ...clientUser, Password: e.target.value })\r\n }\r\n />\r\n \r\n setClientUser({ ...clientUser, Telephone: e.target.value })\r\n }\r\n />\r\n \r\n setClientUser({ ...clientUser, Role: e.target.value })\r\n }\r\n />\r\n {\r\n // dispatch(showLoader());\r\n // dispatch(\r\n // createClient({ Client: clientDetails, Users: [clientUser] })\r\n // ).then((res) => {\r\n // if (res.payload.Success) {\r\n // resetClientModal();\r\n // props.close();\r\n // dispatch(showLoader());\r\n // dispatch(getClients()).then(() => dispatch(hideLoader()));\r\n // } else {\r\n // dispatch(hideLoader());\r\n // // alert(\"Error creating client\");\r\n // alert(t(res.payload.ErrorCode));\r\n // }\r\n // });\r\n // }}\r\n >\r\n Submit\r\n \r\n \r\n
\r\n );\r\n\r\n function resetClientModal() {\r\n setClientDetails(initialClientDetails);\r\n setClientUser(initialClientUser);\r\n }\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Title from \"../../../Components/Title/title\";\r\nimport { getClients } from \"../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../Redux/loader-slice\";\r\nimport CreateClientBox from \"./AddClientBox/create-client-box\";\r\nimport ClientBox from \"./ClientBox/client-box\";\r\nimport CreateClientModal from \"./CreateClientModal/create-client-modal\";\r\nimport \"./manage-clients.scss\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport CheckBox from \"../../../Components/CheckBox/checkbox\";\r\nimport Select from \"../../../Components/Select/select\";\r\n\r\nexport default function ManageClients() {\r\n const dispatch = useDispatch();\r\n const clientsRedux = useSelector((state) => state.clientsReducer.clients);\r\n\r\n const [clients, setClients] = useState([]);\r\n const [clientsActivation, setClientsActivation] = useState(true);\r\n const [CreateClientModalOpen, setCreateClientModalOpen] = useState(false);\r\n const [selectedClientType, setSelectedClientType] = useState(\"2\");\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n useEffect(() => {\r\n dispatch(showLoader());\r\n\r\n dispatch(getClients())\r\n .then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(hideLoader());\r\n // setClients(res.payload.Payload);\r\n // changeClients();\r\n } else {\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n })\r\n .catch(() => {});\r\n }, []);\r\n\r\n useEffect(() => {\r\n changeClients();\r\n }, [selectedClientType, clientsRedux]);\r\n\r\n const changeClients = () => {\r\n if (selectedClientType === \"0\") {\r\n if (clientsActivation) {\r\n setClients(\r\n clientsRedux.filter(\r\n (client) =>\r\n client.Active && (client.Type == \"1\" || client.Type == \"2\")\r\n )\r\n );\r\n } else {\r\n setClients(\r\n clientsRedux.filter(\r\n (client) => client.Type == \"1\" || client.Type == \"2\"\r\n )\r\n );\r\n }\r\n } else {\r\n if (clientsActivation) {\r\n setClients(\r\n clientsRedux.filter(\r\n (client) => client.Type == selectedClientType && client.Active\r\n )\r\n );\r\n } else {\r\n setClients(\r\n clientsRedux.filter((client) => client.Type == selectedClientType)\r\n );\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n // if (clientsActivation) {\r\n // setClients(clients.filter((client) => client.Active));\r\n // } else {\r\n // setClients(clientsRedux);\r\n // }\r\n changeClients();\r\n }, [clientsActivation]);\r\n\r\n return (\r\n
\r\n Clients\r\n
\r\n {\r\n setClientsActivation((prevActivation) => !prevActivation);\r\n }}\r\n />\r\n {\r\n setClientsActivation((prevActivation) => !prevActivation);\r\n }}\r\n >\r\n Show only active\r\n \r\n setSelectedClientType(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

\r\n
\r\n setCreateClientModalOpen(true)} />\r\n\r\n {clients.map((client) => {\r\n return (\r\n \r\n );\r\n })}\r\n
\r\n setCreateClientModalOpen(false)}\r\n />\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport \"./manage-environments.scss\";\r\nimport Title from \"../../../Components/Title/title\";\r\n\r\nexport default function ManageEnvironments() {\r\n return (\r\n
\r\n Environments\r\n
\r\n );\r\n}\r\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\";\r\nimport Api from \"../Utils/api\";\r\n\r\nexport const createEnvironment = createAsyncThunk(\r\n \"environments/createEnvironment\",\r\n async (data) => {\r\n return Api.post(\"/Environment/CreateEnvironment\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const editEnvironment = createAsyncThunk(\r\n \"environments/updateEnvironment\",\r\n async (data) => {\r\n return Api.post(\"/Environment/UpdateEnvironment\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const removeEnvironment = createAsyncThunk(\r\n \"environments/removeEnvironment\",\r\n async (envId) => {\r\n return Api.post(`/Environment/RemoveEnvironment?Id=${envId}`).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const getEnvironmentAutoLoginLink = createAsyncThunk(\r\n \"environments/getEnvironmentAutoLoginLink\",\r\n async (data) => {\r\n return Api.get(\"/Environment/GetEnvironmentAutoLoginLink\", {\r\n params: data,\r\n }).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const toggleEnvironmentActivation = createAsyncThunk(\r\n \"environments/toggleEnvironmentActivation\",\r\n async (envId) => {\r\n return Api.post(\r\n `/Environment/ToggleEnvironmentActivation?Id=${envId}`\r\n ).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const createModerator = createAsyncThunk(\r\n \"environments/createModerator\",\r\n async (data) => {\r\n return Api.post(\"/Environment/CreateModerator\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const getModerator = createAsyncThunk(\r\n \"environments/getModerator\",\r\n async (data) => {\r\n return Api.get(\"/Environment/GetModerator\", {\r\n params: data,\r\n }).then((res) => res.data);\r\n }\r\n);\r\n\r\nexport const updateModerator = createAsyncThunk(\r\n \"environments/updateModerator\",\r\n async (data) => {\r\n return Api.post(\"/Environment/UpdateModerator\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const sendFirstMessageToUser = createAsyncThunk(\r\n \"environments/sendFirstMessageToUser\",\r\n async (data) => {\r\n return Api.post(\"/Environment/SendFirstMessageToUser\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const sendChangePasswordMessageToUser = createAsyncThunk(\r\n \"environments/sendChangePasswordMessageToUser\",\r\n async (data) => {\r\n return Api.post(\"/Environment/SendChangePasswordMessageToUser\", data).then(\r\n (res) => res.data\r\n );\r\n }\r\n);\r\n\r\nexport const environmentSlice = createSlice({\r\n name: \"environments\",\r\n initialState: {\r\n autoLoginLink: \"\",\r\n },\r\n reducers: {},\r\n extraReducers: {\r\n [getEnvironmentAutoLoginLink.fulfilled]: (state, action) => {\r\n if (action.payload.Success === true)\r\n state.autoLoginLink = action.payload.Payload;\r\n },\r\n },\r\n});\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const {} = environmentSlice.actions;\r\n\r\nexport default environmentSlice.reducer;\r\n","import React, { useState } from \"react\";\r\n// Functions\r\nimport \"./create-environment-modal.scss\";\r\nimport { useDispatch } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../Components/Button/button\";\r\nimport CheckBox from \"../../../../../Components/CheckBox/checkbox\";\r\nimport Input from \"../../../../../Components/Input/input\";\r\nimport Modal from \"../../../../../Components/Modal/modal\";\r\nimport Select from \"../../../../../Components/Select/select\";\r\nimport { hideLoader, showLoader } from \"../../../../../Redux/loader-slice\";\r\nimport { createEnvironment } from \"../../../../../Redux/environment-slice\";\r\nimport { getClient } from \"../../../../../Redux/clients-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function CreateEnvironmentModal(props) {\r\n const dispatch = useDispatch();\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const initialEnvironmentDetails = {\r\n Domain: \"\",\r\n LMS: false,\r\n OnBoarding: false,\r\n PreBoarding: false,\r\n Evaluation: false,\r\n // ChecklistModule: false,\r\n EmailLogin: false,\r\n SMSLogin: false,\r\n Skills: false,\r\n // HasExpirationDate: false,\r\n // ActiveUntil: \"\",\r\n ClientId: props.clientId,\r\n LXPAI: false,\r\n CopyLxpAIBase: false,\r\n NumberOfAIInterviews: \"\",\r\n };\r\n\r\n const [environmentDetails, setEnvironmentDetails] = useState(\r\n initialEnvironmentDetails\r\n );\r\n\r\n const [defaulLoginMethod, setDefaulLoginMethod] = useState(\"Email\");\r\n\r\n return (\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n doCreateEnvironment();\r\n setDefaulLoginMethod(\"Email\");\r\n }}\r\n >\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Domain: e.target.value,\r\n });\r\n }}\r\n />\r\n
\r\n {/* Active Until */}\r\n {/*
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n HasExpirationDate: !environmentDetails.HasExpirationDate,\r\n });\r\n }}\r\n />\r\n Expires\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n ActiveUntil: e.target.value,\r\n });\r\n }}\r\n />\r\n
*/}\r\n {/* Onboarding Checkbox */}\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n OnBoarding: !environmentDetails.OnBoarding,\r\n });\r\n }}\r\n />\r\n Onboarding\r\n
\r\n {/* Peva Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Evaluation: !environmentDetails.Evaluation,\r\n });\r\n }}\r\n />\r\n Performance Evaluation\r\n
\r\n {/* LXP Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n LXP: !environmentDetails.LXP,\r\n });\r\n }}\r\n />\r\n LXP\r\n
\r\n {/* LXP Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n LXPAI: !environmentDetails.LXPAI,\r\n });\r\n }}\r\n />\r\n LXP with AI\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Skills: !environmentDetails.Skills,\r\n });\r\n }}\r\n />\r\n Skills\r\n
\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n EmailLogin: !environmentDetails.EmailLogin,\r\n });\r\n }}\r\n />\r\n Email Login\r\n
\r\n {!props.isClientTrial && (\r\n <>\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n SMSLogin: !environmentDetails.SMSLogin,\r\n });\r\n }}\r\n />\r\n SMS Login\r\n \r\n )}\r\n {environmentDetails.SMSLogin && environmentDetails.EmailLogin && (\r\n
\r\n
\r\n setDefaulLoginMethod(e.target.value)}\r\n >\r\n \r\n \r\n \r\n
\r\n Default login method\r\n
\r\n
\r\n
\r\n )}\r\n {environmentDetails.LXPAI && (\r\n
\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n NumberOfAIInterviews: e.target.value,\r\n });\r\n }}\r\n type=\"number\"\r\n placeholder=\"Enter number of AI interviews\"\r\n />\r\n
\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n CopyLxpAIBase: !environmentDetails.CopyLxpAIBase,\r\n });\r\n }}\r\n />\r\n Copy AI skills\r\n
\r\n
\r\n )}\r\n {/* \r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n SMSLogin: e.target.value === \"SMS\" ? true : false,\r\n })\r\n }\r\n >\r\n \r\n \r\n */}\r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n function doCreateEnvironment() {\r\n // Check Fields\r\n // if (environmentDetails.Domain.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter sub-domain\");\r\n // } else\r\n if (\r\n environmentDetails.OnBoarding === false &&\r\n environmentDetails.Evaluation === false &&\r\n environmentDetails.LXP === false &&\r\n environmentDetails.Skills === false &&\r\n environmentDetails.LXPAI === false\r\n ) {\r\n alert(\"Please choose system\");\r\n } else if (\r\n environmentDetails.SMSLogin === false &&\r\n environmentDetails.EmailLogin === false\r\n ) {\r\n alert(\"Please choose login type\");\r\n } else {\r\n // Create Environment\r\n dispatch(showLoader());\r\n\r\n dispatch(\r\n createEnvironment({\r\n ...environmentDetails,\r\n ClientId: props.clientId,\r\n DefaultLoginMethod:\r\n environmentDetails.SMSLogin && environmentDetails.EmailLogin\r\n ? defaulLoginMethod === \"Email\"\r\n ? 1\r\n : 2\r\n : -1,\r\n NumberOfAIInterviews: environmentDetails.NumberOfAIInterviews\r\n ? parseInt(environmentDetails.NumberOfAIInterviews)\r\n : null,\r\n })\r\n ).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(getClient(props.clientId)).then(() => {\r\n dispatch(hideLoader());\r\n setEnvironmentDetails(initialEnvironmentDetails);\r\n props.close();\r\n });\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error creating environment\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\n// Functions\r\nimport \"./create-moderator-modal.scss\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../../Components/Button/button\";\r\nimport CheckBox from \"../../../../../../Components/CheckBox/checkbox\";\r\nimport Input from \"../../../../../../Components/Input/input\";\r\nimport Modal from \"../../../../../../Components/Modal/modal\";\r\nimport { createModerator } from \"../../../../../../Redux/environment-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../../../Redux/loader-slice\";\r\nimport { getClient } from \"../../../../../../Redux/clients-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function CreateModeratorModal(props) {\r\n const dispatch = useDispatch();\r\n\r\n const loginUserFirstName = useSelector(\r\n (state) => state.loginReducer.firstName\r\n );\r\n const loginUserLastName = useSelector((state) => state.loginReducer.lastName);\r\n const loginUserEmail = useSelector((state) => state.loginReducer.email);\r\n const loginUserTelephone = useSelector(\r\n (state) => state.loginReducer.telephone\r\n );\r\n\r\n const initialModeratorDetails = {\r\n LicenceId: props.environment.Id,\r\n User: {\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n Telephone: \"\",\r\n IdNumber: \"\",\r\n SendFirstMessage: false,\r\n },\r\n };\r\n\r\n const [moderatorDetails, setModeratorDetails] = useState(\r\n initialModeratorDetails\r\n );\r\n const [loginUserDetailsChecked, setLoginUserDetailsChecked] = useState(false);\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const toggleLoginUserDetails = () => {\r\n const sendFirstMessageChecked = moderatorDetails.User.SendFirstMessage;\r\n if (loginUserDetailsChecked) {\r\n initialModeratorDetails.User.SendFirstMessage = sendFirstMessageChecked;\r\n setModeratorDetails(initialModeratorDetails);\r\n setLoginUserDetailsChecked(false);\r\n } else {\r\n setModeratorDetails({\r\n LicenceId: props.environment.Id,\r\n User: {\r\n FirstName: loginUserFirstName,\r\n LastName: loginUserLastName,\r\n Email: loginUserEmail,\r\n Telephone: loginUserTelephone === null ? \"\" : loginUserTelephone,\r\n IdNumber: \"\",\r\n SendFirstMessage: sendFirstMessageChecked,\r\n },\r\n });\r\n setLoginUserDetailsChecked(true);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n doCreateModerator();\r\n }}\r\n >\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: {\r\n ...moderatorDetails.User,\r\n SendFirstMessage: !moderatorDetails.User.SendFirstMessage,\r\n },\r\n });\r\n }}\r\n />\r\n Send Welcome Notification\r\n
\r\n toggleLoginUserDetails()}\r\n />\r\n Use My Details\r\n

Moderator Details

\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, FirstName: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, LastName: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, Email: e.target.value },\r\n });\r\n }}\r\n type=\"email\"\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, Telephone: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, IdNumber: e.target.value },\r\n });\r\n }}\r\n />\r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n function doCreateModerator() {\r\n // Check Fields\r\n // if (moderatorDetails.User.FirstName.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter First Name\");\r\n // } else if (moderatorDetails.User.LastName.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Last Name\");\r\n // } else if (moderatorDetails.User.Email.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Email\");\r\n // } else if (moderatorDetails.User.Telephone.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Telephone\");\r\n // } else if (moderatorDetails.User.IdNumber.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter IdNumber\");\r\n // } else {\r\n\r\n dispatch(showLoader());\r\n const data = {};\r\n dispatch(createModerator(moderatorDetails)).then((res) => {\r\n if (res.payload.Success) {\r\n setModeratorDetails(initialModeratorDetails);\r\n setLoginUserDetailsChecked(false);\r\n dispatch(getClient(props.clientId));\r\n dispatch(hideLoader());\r\n props.close();\r\n } else {\r\n // console.log(\"res: \", res.payload.ErrorCode);\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n\r\n // alert(\"Error creating moderator\");\r\n }\r\n });\r\n // }\r\n }\r\n}\r\n","import React from \"react\";\r\n// Functions\r\nimport \"./toggle-environment-modal.scss\";\r\nimport { useDispatch } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../../Components/Button/button\";\r\nimport Modal from \"../../../../../../Components/Modal/modal\";\r\nimport { toggleEnvironmentActivation } from \"../../../../../../Redux/environment-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../../../Redux/loader-slice\";\r\nimport { getClient } from \"../../../../../../Redux/clients-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function ToggleEnvironmentModal(props) {\r\n const dispatch = useDispatch();\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n return (\r\n
\r\n \r\n
\r\n {props.environment.Active ? (\r\n \r\n {`Are you sure you want to turn off the environment ${\r\n props.environment.Domain + \".hrpluscloud.com\"\r\n }?`}\r\n \r\n ) : (\r\n \r\n {`Are you sure you want to turn on the environment ${\r\n props.environment.Domain + \".hrpluscloud.com\"\r\n }?`}\r\n \r\n )}\r\n
\r\n
\r\n \r\n {props.environment.Active ? \"Turn off\" : \"Turn on\"}\r\n \r\n props.close()}\r\n >\r\n Cancel\r\n \r\n
\r\n \r\n
\r\n );\r\n\r\n function doToggleEnvironment() {\r\n dispatch(showLoader());\r\n const data = {};\r\n dispatch(toggleEnvironmentActivation(props.environment.Id)).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(hideLoader());\r\n dispatch(getClient(props.clientId));\r\n props.close();\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error toggling environment\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\n// Functions\r\nimport \"./edit-moderator-modal.scss\";\r\nimport { useDispatch } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../../Components/Button/button\";\r\nimport Input from \"../../../../../../Components/Input/input\";\r\nimport Modal from \"../../../../../../Components/Modal/modal\";\r\nimport {\r\n updateModerator,\r\n sendFirstMessageToUser,\r\n sendChangePasswordMessageToUser,\r\n} from \"../../../../../../Redux/environment-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../../../Redux/loader-slice\";\r\nimport { getClient } from \"../../../../../../Redux/clients-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function EditModeratorModal(props) {\r\n const dispatch = useDispatch();\r\n\r\n const initialModeratorDetails = {\r\n LicenceId: props.environment.Id,\r\n User: {\r\n Id: \"\",\r\n FirstName: \"\",\r\n LastName: \"\",\r\n Email: \"\",\r\n Telephone: \"\",\r\n IdNumber: \"\",\r\n SendFirstMessage: false,\r\n },\r\n };\r\n\r\n const [moderatorDetails, setModeratorDetails] = useState(\r\n initialModeratorDetails\r\n );\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n useEffect(() => {\r\n if (props.moderator !== undefined) {\r\n setModeratorDetails({\r\n LicenceId: props.environment.Id,\r\n User: {\r\n Id: props.moderator.Id,\r\n FirstName: props.moderator.FirstName,\r\n LastName: props.moderator.LastName,\r\n Email: props.moderator.Email,\r\n Telephone: props.moderator.Telephone,\r\n IdNumber: props.moderator.IdNumber,\r\n },\r\n });\r\n }\r\n }, [props.moderator]);\r\n\r\n return (\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n doUpdateModerator();\r\n }}\r\n >\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, FirstName: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, LastName: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, Email: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, Telephone: e.target.value },\r\n });\r\n }}\r\n />\r\n {\r\n setModeratorDetails({\r\n ...moderatorDetails,\r\n User: { ...moderatorDetails.User, IdNumber: e.target.value },\r\n });\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n Submit\r\n \r\n \r\n \r\n
\r\n );\r\n\r\n function doSendFirstMessageToUser() {\r\n dispatch(showLoader());\r\n const data = {\r\n LicenceId: moderatorDetails.LicenceId,\r\n ModeratorId: moderatorDetails.User.Id,\r\n };\r\n dispatch(sendFirstMessageToUser(data)).then((res) => {\r\n if (res.payload.Success) {\r\n setModeratorDetails(initialModeratorDetails);\r\n dispatch(hideLoader());\r\n props.close();\r\n } else {\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n // alert(\"Error sending first message\");\r\n }\r\n });\r\n }\r\n\r\n function doSendChangePasswordMessageToUser() {\r\n dispatch(showLoader());\r\n const data = {\r\n LicenceId: moderatorDetails.LicenceId,\r\n ModeratorId: moderatorDetails.User.Id,\r\n };\r\n dispatch(sendChangePasswordMessageToUser(data)).then((res) => {\r\n if (res.payload.Success) {\r\n setModeratorDetails(initialModeratorDetails);\r\n dispatch(hideLoader());\r\n props.close();\r\n } else {\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n // alert(\"Error sending forgot password message\");\r\n }\r\n });\r\n }\r\n\r\n function doUpdateModerator() {\r\n // Check Fields\r\n // if (moderatorDetails.User.FirstName.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter First Name\");\r\n // } else if (moderatorDetails.User.LastName.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Last Name\");\r\n // } else if (moderatorDetails.User.Email.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Email\");\r\n // } else if (moderatorDetails.User.Telephone.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Telephone\");\r\n // } else if (moderatorDetails.User.IdNumber.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter IdNumber\");\r\n // } else {\r\n dispatch(showLoader());\r\n const data = {};\r\n dispatch(updateModerator(moderatorDetails)).then((res) => {\r\n if (res.payload.Success) {\r\n setModeratorDetails(initialModeratorDetails);\r\n dispatch(getClient(props.clientId));\r\n dispatch(hideLoader());\r\n props.close();\r\n } else {\r\n dispatch(hideLoader());\r\n alert(t(res.payload.ErrorCode));\r\n // alert(\"Error editing moderator\");\r\n }\r\n });\r\n // }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport Modal from \"../../../../../Components/Modal/modal\";\r\nimport { useState } from \"react\";\r\nimport CheckBox from \"../../../../../Components/CheckBox/checkbox\";\r\nimport Select from \"../../../../../Components/Select/select\";\r\nimport Button from \"../../../../../Components/Button/button\";\r\nimport Api from \"../../../../../Utils/api\";\r\nimport \"./update-daily-job-modal.scss\";\r\n\r\nexport default function UpdateDailyJobModal(props) {\r\n const [showDaysList, setShowDaysList] = useState(\r\n props.dayOfDailyJob != \"\" ? true : false\r\n );\r\n const [selectedDate, setSelectedDate] = useState(\r\n showDaysList ? props.dayOfDailyJob : \"4\"\r\n );\r\n return (\r\n
\r\n {\r\n props.close();\r\n setShowDaysList(props.dayOfDailyJob != \"\" ? true : false);\r\n setSelectedDate(\r\n props.dayOfDailyJob != \"\" ? props.dayOfDailyJob : \"4\"\r\n );\r\n }}\r\n >\r\n
\r\n setShowDaysList(!showDaysList)}\r\n />\r\n setShowDaysList(!showDaysList)}\r\n >\r\n Send daily job\r\n \r\n
\r\n
\r\n {showDaysList ? (\r\n
\r\n setSelectedDate(e.target.value)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ) : (\r\n \"\"\r\n )}\r\n
\r\n {\r\n Api.post(\"/Environment/UpdateDailyJobDate\", {\r\n LicenceId: props.environment.Id,\r\n IsActive: showDaysList ? \"true\" : \"false\",\r\n DayNumber: selectedDate,\r\n });\r\n props.close();\r\n setShowDaysList(showDaysList);\r\n setSelectedDate(showDaysList ? selectedDate : \"4\");\r\n }}\r\n >\r\n Confirm\r\n \r\n {\r\n props.close();\r\n setShowDaysList(props.dayOfDailyJob != \"\" ? true : false);\r\n setSelectedDate(\r\n props.dayOfDailyJob != \"\" ? props.dayOfDailyJob : \"4\"\r\n );\r\n }}\r\n >\r\n Cancel\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport RoundedButton from \"../../../../../Components/RoundedButton/rounded-button\";\r\nimport \"./environment-card.scss\";\r\nimport CreateModeratorModal from \"./CreateModeratorModal/create-moderator-modal\";\r\nimport ToggleEnvironmentModal from \"./ToggleEnvironmentModal/toggle-environment-modal\";\r\nimport EditModeratorModal from \"./EditModeratorModal/edit-moderator-modal\";\r\nimport {\r\n getEnvironmentAutoLoginLink,\r\n getModerator,\r\n} from \"../../../../../Redux/environment-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { combineReducers } from \"redux\";\r\nimport UpdateDailyJobModal, {\r\n updateDailyJobModal,\r\n} from \"../UpdateDailyJobModal/update-daily-job-modal\";\r\n\r\nexport default function EnvironmentCard(props) {\r\n const [createModeratorModalOpen, setCreateModeratorModalOpen] =\r\n useState(false);\r\n const [chosenModeratorId, setChosenModeratorId] = useState();\r\n const [chosenModerator, setChosenModerator] = useState();\r\n const [editModeratorModalOpen, setEditModeratorModalOpen] = useState(false);\r\n const [toggleEnvironmentModalOpen, setToggleEnvironmentModalOpen] =\r\n useState(false);\r\n\r\n const dispatch = useDispatch();\r\n const autoLoginLink = useSelector(\r\n (state) => state.environmentReducer.autoLoginLink\r\n );\r\n\r\n const [openUpdateDailyJobModal, setOpenUpdateDailyJobModal] = useState(false);\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const loadModeratorDetails = (moderatorId) => {\r\n // console.log(\"environment: \", props.environment.Id);\r\n // console.log(\"moderatorId: \", moderatorId);\r\n const data = {\r\n LicenceId: props.environment.Id,\r\n ModeratorId: moderatorId,\r\n };\r\n\r\n dispatch(getModerator(data)).then((res) => {\r\n if (res.payload.Success) {\r\n setChosenModerator(res.payload.Payload);\r\n setEditModeratorModalOpen(true);\r\n } else {\r\n alert(\"Error loading moderator\");\r\n }\r\n });\r\n };\r\n\r\n return (\r\n
\r\n {\r\n if (props.environment.Moderators.length === 0) {\r\n alert(\"please create Moderator first\");\r\n } else {\r\n const data = {\r\n EnvId: props.environment.Id,\r\n UserId: props.environment.Moderators[0].Id,\r\n };\r\n dispatch(getEnvironmentAutoLoginLink(data)).then((res) => {\r\n if (res.payload.Success) {\r\n // console.log(\"autoLoginLink: \", res.payload.Payload);\r\n window.open(res.payload.Payload, \"_blank\");\r\n } else {\r\n alert(\"Error: \", res.ErrorCode);\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n

{props.environment.Domain + \".hrpluscloud.com\"}

\r\n \r\n
    \r\n
  • \r\n Users: {props.environment.TotalUsers}\r\n
  • \r\n
  • \r\n Moderators:{\" \"}\r\n
      \r\n {props.environment.Moderators.map((moderator) => {\r\n return (\r\n {\r\n setChosenModeratorId(moderator.Id);\r\n loadModeratorDetails(moderator.Id);\r\n }}\r\n >\r\n {moderator.FullName}\r\n \r\n );\r\n })}\r\n
    \r\n
  • \r\n
\r\n
{\" \"}\r\n \r\n {\r\n setCreateModeratorModalOpen(true);\r\n }}\r\n />\r\n {/* setRemoveEnvironmentModalOpen(true)}\r\n /> */}\r\n {\r\n setOpenUpdateDailyJobModal(true);\r\n }}\r\n />\r\n {\r\n setToggleEnvironmentModalOpen(true);\r\n }}\r\n />\r\n {\r\n setCreateModeratorModalOpen(false);\r\n }}\r\n />\r\n {\r\n setEditModeratorModalOpen(false);\r\n }}\r\n />\r\n {\r\n setToggleEnvironmentModalOpen(false);\r\n }}\r\n />\r\n {\r\n setOpenUpdateDailyJobModal(false);\r\n }}\r\n />\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport \"../../EditEnvironmentModal/edit-environment-modal.scss\";\r\nimport \"./edit-add-user-modal.scss\";\r\n\r\nimport Modal from \"../../../../../../Components/Modal/modal\";\r\nimport Input from \"../../../../../../Components/Input/input\";\r\nimport Button from \"../../../../../../Components/Button/button\";\r\n\r\nimport { editClientUser } from \"../../../../../../Redux/clients-slice\";\r\nimport { addClientUser } from \"../../../../../../Redux/clients-slice\";\r\nimport { getClient } from \"../../../../../../Redux/clients-slice\";\r\n\r\nexport const EditAddUserModal = (props) => {\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n const dispatch = useDispatch();\r\n\r\n const [userData, setUserData] = useState({});\r\n useEffect(() => {\r\n setUserData(props.userData);\r\n }, [props.userData]);\r\n\r\n return (\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n if (props.type === \"Edit\") {\r\n dispatch(editClientUser(userData)).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(getClient(props.ClientId));\r\n props.close();\r\n } else {\r\n alert(t(\"Login.1030\"));\r\n }\r\n });\r\n } else {\r\n dispatch(\r\n addClientUser({ ...userData, ClientId: props.ClientId })\r\n ).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(getClient(props.ClientId));\r\n props.close();\r\n } else {\r\n alert(t(\"Login.1030\"));\r\n }\r\n });\r\n }\r\n }}\r\n >\r\n First Name\r\n
\r\n {\r\n setUserData({ ...userData, Firstname: e.target.value });\r\n }}\r\n />\r\n
\r\n Last Name\r\n
\r\n {\r\n setUserData({ ...userData, Lastname: e.target.value });\r\n }}\r\n />\r\n
\r\n Role\r\n
\r\n {\r\n setUserData({ ...userData, Role: e.target.value });\r\n }}\r\n />\r\n
\r\n Email\r\n
\r\n {\r\n setUserData({ ...userData, Email: e.target.value });\r\n }}\r\n />\r\n
\r\n Telephone\r\n
\r\n {\r\n setUserData({ ...userData, Telephone: e.target.value });\r\n }}\r\n />\r\n
\r\n {props.type === \"Add\" && (\r\n
\r\n Password\r\n\r\n
\r\n {\r\n setUserData({ ...userData, Password: e.target.value });\r\n }}\r\n />\r\n
\r\n
\r\n )}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n","import React from \"react\";\r\nimport Modal from \"../../../../../../Components/Modal/modal\";\r\nimport Button from \"../../../../../../Components/Button/button\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport { UpdateActiveClientUser } from \"../../../../../../Redux/clients-slice\";\r\nimport { getClient } from \"../../../../../../Redux/clients-slice\";\r\n\r\nexport const SetActiveModal = (props) => {\r\n const dispatch = useDispatch();\r\n\r\n return (\r\n \r\n

\r\n Are you sure that you want to{\" \"}\r\n {props.activeStatus ? \"delete\" : \"activate\"} the user?\r\n

\r\n
\r\n {\r\n e.preventDefault();\r\n dispatch(\r\n UpdateActiveClientUser({\r\n UserId: props.userId,\r\n Active: !props.activeStatus,\r\n })\r\n ).then(() => {\r\n dispatch(getClient(props.ClientId));\r\n props.close();\r\n });\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport \"../EnvironmentCard/environment-card.scss\";\r\nimport \"./user-card.scss\";\r\nimport { useState } from \"react\";\r\n\r\nimport { EditAddUserModal } from \"./EditUserModal/edit-add-user-modal\";\r\nimport { SetActiveModal } from \"./SetActiveModal/set-active-modal\";\r\nimport RoundedButton from \"../../../../../Components/RoundedButton/rounded-button\";\r\n\r\nexport const UsersCard = (props) => {\r\n const [userData, setUserData] = useState({\r\n Id: null,\r\n firstname: \"\",\r\n lastname: \"\",\r\n role: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n Active: false,\r\n });\r\n\r\n const [openActiveModal, setOpenActiveModal] = useState(false);\r\n const [editAddUserModal, setEditAddUserModal] = useState({\r\n open: false,\r\n type: \"\",\r\n });\r\n\r\n return (\r\n
\r\n {props.showActive && (\r\n {\r\n setEditAddUserModal({ open: true, type: \"Add\" });\r\n }}\r\n />\r\n )}\r\n {props.users && props.users.length > 0 && (\r\n
    \r\n
  • \r\n {props.users.map((user) => {\r\n return (\r\n \r\n {\r\n setEditAddUserModal({ open: true, type: \"Edit\" });\r\n setUserData({\r\n Id: user.Id,\r\n Firstname: user.FirstName ? user.FirstName : \"\",\r\n Lastname: user.LastName ? user.LastName : \"\",\r\n Role: user.Role ? user.Role : \"\",\r\n Email: user.Email ? user.Email : \"\",\r\n Telephone: user.Telephone ? user.Telephone : \"\",\r\n Active: user.Active,\r\n });\r\n }}\r\n >\r\n {user.FirstName + \" \" + user.LastName}\r\n \r\n {\r\n setEditAddUserModal({ open: true, type: \"Edit\" });\r\n setUserData({\r\n Id: user.Id,\r\n Firstname: user.FirstName ? user.FirstName : \"\",\r\n Lastname: user.LastName ? user.LastName : \"\",\r\n Role: user.Role ? user.Role : \"\",\r\n Email: user.Email ? user.Email : \"\",\r\n Telephone: user.Telephone ? user.Telephone : \"\",\r\n Active: user.Active,\r\n });\r\n }}\r\n disabled={!props.client.Active}\r\n />\r\n {\r\n setOpenActiveModal(true);\r\n setUserData({\r\n Id: user.Id,\r\n Active: user.Active,\r\n });\r\n }}\r\n />\r\n
\r\n );\r\n })}\r\n \r\n \r\n )}\r\n
\r\n {\r\n setEditAddUserModal({ open: false, type: \"\" });\r\n setUserData({\r\n Id: null,\r\n firstName: \"\",\r\n lastName: \"\",\r\n role: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n Active: false,\r\n });\r\n }}\r\n />\r\n\r\n {\r\n setOpenActiveModal(false);\r\n setUserData({\r\n Id: null,\r\n firstName: \"\",\r\n lastName: \"\",\r\n role: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n Active: false,\r\n });\r\n }}\r\n />\r\n \r\n );\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\n// Functions\r\nimport \"./edit-environment-modal.scss\";\r\nimport { useDispatch } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../Components/Button/button\";\r\nimport CheckBox from \"../../../../../Components/CheckBox/checkbox\";\r\nimport Input from \"../../../../../Components/Input/input\";\r\nimport Modal from \"../../../../../Components/Modal/modal\";\r\nimport Select from \"../../../../../Components/Select/select\";\r\nimport { hideLoader, showLoader } from \"../../../../../Redux/loader-slice\";\r\nimport { editEnvironment } from \"../../../../../Redux/environment-slice\";\r\nimport { getClient } from \"../../../../../Redux/clients-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function EditEnvironmentModal(props) {\r\n const dispatch = useDispatch();\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const initialEnvironmentDetails = props.environment;\r\n\r\n const [environmentDetails, setEnvironmentDetails] = useState(\r\n initialEnvironmentDetails\r\n );\r\n\r\n const [defaulLoginMethod, setDefaulLoginMethod] = useState(\r\n environmentDetails.DefaultLoginMethod === 1 ? \"Email\" : \"SMS\"\r\n );\r\n\r\n return (\r\n
\r\n \r\n {\r\n e.preventDefault();\r\n doEditEnvironment();\r\n setDefaulLoginMethod(\"Email\");\r\n }}\r\n >\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Domain: e.target.value,\r\n });\r\n }}\r\n />\r\n
\r\n {/* Active Until */}\r\n {/*
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n HasExpirationDate: !environmentDetails.HasExpirationDate,\r\n });\r\n }}\r\n />\r\n Expires\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n ActiveUntil: e.target.value,\r\n });\r\n }}\r\n />\r\n
*/}\r\n {/* Onboarding Checkbox */}\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n OnBoarding: !environmentDetails.OnBoarding,\r\n });\r\n }}\r\n />\r\n Onboarding\r\n
\r\n {/* Peva Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Evaluation: !environmentDetails.Evaluation,\r\n });\r\n }}\r\n />\r\n Performance Evaluation\r\n
\r\n {/* LXP Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n LXP: !environmentDetails.LXP,\r\n });\r\n }}\r\n />\r\n LXP\r\n
\r\n {/* LXP Checkbox */}\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n LXPAI: !environmentDetails.LXPAI,\r\n });\r\n }}\r\n />\r\n LXP with AI\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n Skills: !environmentDetails.Skills,\r\n });\r\n }}\r\n />\r\n Skills\r\n
\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n EmailLogin: !environmentDetails.EmailLogin,\r\n });\r\n }}\r\n />\r\n Email Login\r\n
\r\n {!props.isClientTrial && (\r\n <>\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n SMSLogin: !environmentDetails.SMSLogin,\r\n });\r\n }}\r\n />\r\n SMS Login\r\n \r\n )}\r\n {environmentDetails.SMSLogin && environmentDetails.EmailLogin && (\r\n
\r\n
\r\n setDefaulLoginMethod(e.target.value)}\r\n >\r\n \r\n \r\n \r\n
\r\n Default login method\r\n
\r\n
\r\n
\r\n )}\r\n {environmentDetails.LXPAI && (\r\n
\r\n
\r\n {\r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n NumberOfAIInterviews: e.target.value,\r\n });\r\n }}\r\n type=\"number\"\r\n placeholder=\"Enter number of AI interviews\"\r\n />\r\n
\r\n
\r\n )}\r\n {/* \r\n setEnvironmentDetails({\r\n ...environmentDetails,\r\n SMSLogin: e.target.value === \"SMS\" ? true : false,\r\n })\r\n }\r\n >\r\n \r\n \r\n */}\r\n \r\n Submit\r\n \r\n \r\n
\r\n
\r\n );\r\n\r\n function doEditEnvironment() {\r\n // console.log(\"environmentDetails.SMSLogin: \", environmentDetails.SMSLogin);\r\n // console.log(\r\n // \"environmentDetails.EmailLogin: \",\r\n // environmentDetails.EmailLogin\r\n // );\r\n\r\n // Check Fields\r\n // if (environmentDetails.Domain.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter sub-domain\");\r\n // } else\r\n if (\r\n environmentDetails.OnBoarding === false &&\r\n environmentDetails.Evaluation === false &&\r\n environmentDetails.LXP === false &&\r\n environmentDetails.Skills === false &&\r\n environmentDetails.LXPAI === false\r\n ) {\r\n alert(\"Please choose system\");\r\n } else if (\r\n environmentDetails.SMSLogin === false &&\r\n environmentDetails.EmailLogin === false\r\n ) {\r\n alert(\"Please choose login type\");\r\n } else {\r\n // Edit Environment\r\n dispatch(showLoader());\r\n\r\n dispatch(\r\n editEnvironment({\r\n ...environmentDetails,\r\n ClientId: props.clientId,\r\n DefaultLoginMethod:\r\n environmentDetails.SMSLogin && environmentDetails.EmailLogin\r\n ? defaulLoginMethod === \"Email\"\r\n ? 1\r\n : 2\r\n : -1,\r\n NumberOfAIInterviews: environmentDetails.NumberOfAIInterviews\r\n ? parseInt(environmentDetails.NumberOfAIInterviews)\r\n : null,\r\n })\r\n ).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(getClient(props.clientId)).then(() => {\r\n dispatch(hideLoader());\r\n setEnvironmentDetails(initialEnvironmentDetails);\r\n props.close();\r\n });\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error creating environment\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport Button from \"../../../../Components/Button/button\";\r\nimport Input from \"../../../../Components/Input/input\";\r\nimport Modal from \"../../../../Components/Modal/modal\";\r\nimport { editClient, getClient } from \"../../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../Redux/loader-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Select from \"../../../../Components/Select/select\";\r\n\r\nexport default function EditClientModal(props) {\r\n const dispatch = useDispatch();\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n const isAdmin = useSelector((state) => state.loginReducer.isAdmin);\r\n const client = useSelector((state) => state.clientsReducer.client);\r\n\r\n const initialClientDetails = {\r\n Id: \"\",\r\n Name: \"\",\r\n MaxUsers: \"\",\r\n Type: \"\",\r\n StartDate: \"\",\r\n ActiveUntil: null,\r\n };\r\n\r\n const initialClientUser = {\r\n Email: \"\",\r\n Password: \"\",\r\n Firstname: \"\",\r\n Lastname: \"\",\r\n Telephone: \"\",\r\n };\r\n\r\n const [clientDetails, setClientDetails] = useState(initialClientDetails);\r\n const [clientUser, setClientUser] = useState(initialClientUser);\r\n\r\n useEffect(() => {\r\n if (props.client !== undefined) {\r\n const client = props.client;\r\n setClientDetails({\r\n Id: client.Id,\r\n Name: client.Name,\r\n MaxUsers: client.MaxUsers,\r\n Type: client.Type,\r\n StartDate: moment(client.StartDate).format(\"YYYY-MM-DD\"),\r\n ActiveUntil: client.ActiveUntil\r\n ? moment(client.ActiveUntil).format(\"YYYY-MM-DD\")\r\n : null,\r\n });\r\n setClientUser({\r\n Id: client.Users[0].Id,\r\n Email: client.Users[0].Email,\r\n IdNumber: client.Users[0].IdNumber,\r\n Password: \"\",\r\n Firstname: client.Users[0].Firstname,\r\n Lastname: client.Users[0].Lastname,\r\n Telephone: client.Users[0].Telephone,\r\n });\r\n }\r\n }, [props.client]);\r\n\r\n return client.Users ? (\r\n \r\n {/*

Client Details

*/}\r\n {\r\n e.preventDefault();\r\n doEditClient();\r\n }}\r\n >\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n Name: e.target.value,\r\n })\r\n }\r\n />\r\n {isAdmin && (\r\n <>\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n MaxUsers: e.target.value,\r\n })\r\n }\r\n min={1}\r\n />\r\n {\r\n if (e.target.value == 1) {\r\n setClientDetails({\r\n ...clientDetails,\r\n Type: e.target.value,\r\n IsTrial: true,\r\n });\r\n } else {\r\n setClientDetails({\r\n ...clientDetails,\r\n Type: e.target.value,\r\n IsTrial: false,\r\n });\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Start date:\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n StartDate: e.target.value,\r\n })\r\n }\r\n />\r\n
\r\n
\r\n End date:\r\n \r\n setClientDetails({\r\n ...clientDetails,\r\n ActiveUntil: e.target.value,\r\n })\r\n }\r\n />\r\n
\r\n \r\n )}\r\n\r\n doEditClient()}\r\n >\r\n Submit\r\n \r\n \r\n
\r\n ) : null;\r\n\r\n function doEditClient() {\r\n // Check Fields\r\n // if (clientDetails.Name.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Client Name\");\r\n // } else if (clientDetails.MaxUsers.toString().replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Max Users\");\r\n // } else if (parseInt(clientDetails.MaxUsers) <= 0) {\r\n // alert(\"Max users number must be positive\");\r\n // }\r\n // else if (clientUser.Firstname.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter First Name\");\r\n // } else if (clientUser.Lastname.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Last Name\");\r\n // } else if (clientUser.Email.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Email\");\r\n // } else if (clientUser.Password.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Password\");\r\n // } else if (clientUser.Telephone.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Telephone\");\r\n // }\r\n dispatch(showLoader());\r\n dispatch(\r\n editClient({\r\n Client: clientDetails,\r\n // Users: [clientUser]\r\n })\r\n ).then((res) => {\r\n if (res.payload.Success) {\r\n resetClientModal();\r\n props.close();\r\n dispatch(showLoader());\r\n dispatch(getClient(clientDetails.Id)).then(() =>\r\n dispatch(hideLoader())\r\n );\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error editing client\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }\r\n\r\n function resetClientModal() {\r\n setClientDetails(initialClientDetails);\r\n setClientUser(initialClientUser);\r\n }\r\n}\r\n","import React from \"react\";\r\n// Functions\r\nimport \"./toggle-client-modal.scss\";\r\nimport { useDispatch } from \"react-redux\";\r\n// Components\r\nimport Button from \"../../../../../Components/Button/button\";\r\nimport Modal from \"../../../../../Components/Modal/modal\";\r\nimport {\r\n toggleClientActivation,\r\n getClient,\r\n} from \"../../../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../../Redux/loader-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\n\r\nexport default function ToggleClientModal(props) {\r\n const dispatch = useDispatch();\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n return (\r\n
\r\n \r\n
\r\n {props.client.Active ? (\r\n \r\n {`Are you sure you want to turn off the Client '${props.client.Name}'?`}\r\n \r\n ) : (\r\n \r\n {`Are you sure you want to turn on the Client '${props.client.Name}'?`}\r\n \r\n )}\r\n
\r\n
\r\n {/* {props.client.ActiveUntil} */}\r\n \r\n {props.client.Active ? \"Turn off\" : \"Turn on\"}\r\n \r\n props.close()}\r\n >\r\n Cancel\r\n \r\n
\r\n \r\n
\r\n );\r\n function doToggleClient() {\r\n dispatch(showLoader());\r\n dispatch(toggleClientActivation(props.client.Id)).then((res) => {\r\n if (res.payload.Success) {\r\n dispatch(hideLoader());\r\n dispatch(getClient(props.client.Id));\r\n props.close();\r\n } else {\r\n dispatch(hideLoader());\r\n // alert(\"Error toggling environment\");\r\n alert(t(res.payload.ErrorCode));\r\n }\r\n });\r\n }\r\n}\r\n","import React, { useEffect, useState } from \"react\";\r\nimport \"./client-profile.scss\";\r\n// Functions\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { getClient } from \"../../../../Redux/clients-slice\";\r\nimport { hideLoader, showLoader } from \"../../../../Redux/loader-slice\";\r\n// Components\r\nimport Box from \"../../../../Components/Box/box\";\r\nimport Title from \"../../../../Components/Title/title\";\r\nimport RoundedButton from \"../../../../Components/RoundedButton/rounded-button\";\r\nimport CreateEnvironmentModal from \"./CreateEnvironmentModal/create-environment-modal\";\r\nimport EnvironmentCard from \"./EnvironmentCard/environment-card\";\r\nimport { UsersCard } from \"./UsersCard/users-card\";\r\nimport EditEnvironmentModal from \"./EditEnvironmentModal/edit-environment-modal\";\r\nimport EditClientModal from \"../EditClientModal/edit-client-modal\";\r\nimport EditClientUserModal from \"./EditClientUserModal/edit-client-user-modal\";\r\nimport { EditAddUserModal } from \"./UsersCard/EditUserModal/edit-add-user-modal\";\r\nimport ToggleClientModal from \"./ToggleClientModal/toggle-client-modal\";\r\nimport Button from \"../../../../Components/Button/button\";\r\n\r\nexport default function ClientProfile(props) {\r\n const dispatch = useDispatch();\r\n\r\n const isAdmin = useSelector((state) => state.loginReducer.isAdmin);\r\n const clientId = useSelector((state) => state.loginReducer.clientId);\r\n const client = useSelector((state) => state.clientsReducer.client);\r\n\r\n const [createEnvironmentModalOpen, setCreateEnvironmentModalOpen] =\r\n useState(false);\r\n const [clientToEdit, setClientToEdit] = useState();\r\n const [environmentToEdit, setEnvironmentToEdit] = useState(\"\");\r\n const [editClientModalOpen, setEditClientModalOpen] = useState(false);\r\n const [toggleClientModalOpen, setToggleClientModalOpen] = useState();\r\n\r\n const [showActive, setShowActive] = useState(true);\r\n\r\n useEffect(() => {\r\n dispatch(showLoader());\r\n if (isAdmin) {\r\n dispatch(getClient(props.match.params.id)).then(() => {\r\n dispatch(hideLoader());\r\n });\r\n } else {\r\n dispatch(getClient(clientId)).then(() => {\r\n dispatch(hideLoader());\r\n });\r\n }\r\n }, []);\r\n\r\n return (\r\n
\r\n {client.Name}\r\n
\r\n {/* General Details */}\r\n \r\n

General Details

\r\n
\r\n
    \r\n {!client.Active &&
  • Inactive
  • }\r\n {client.IsTrial &&\r\n (client.DaysLeft > 0 ? (\r\n
  • Free Trial (expires in {client.DaysLeft} days)
  • \r\n ) : (\r\n
  • \r\n Free Trial (expired)\r\n
  • \r\n ))}\r\n
  • Joined: {new Date(client.CreatedOn).toLocaleDateString()}
  • \r\n
  • \r\n Start Date: {new Date(client.StartDate).toLocaleDateString()}\r\n
  • \r\n {client.ActiveUntil && (\r\n
  • \r\n End Date: {new Date(client.ActiveUntil).toLocaleDateString()}\r\n
  • \r\n )}\r\n\r\n
  • \r\n Usage: {client.TotalUsers}/{client.MaxUsers}{\" \"}\r\n Users\r\n
  • \r\n {/*
  • \r\n
      \r\n Users:{\" \"}\r\n {client.Users &&\r\n client.Users.map((User) => {\r\n return (\r\n {\r\n setClientUser(User);\r\n setEditClientUserModalOpen(true);\r\n }}\r\n >\r\n {User.FirstName} {User.LastName}\r\n \r\n );\r\n })}\r\n
    \r\n
  • */}\r\n
\r\n
\r\n {\r\n setClientToEdit(client);\r\n setEditClientModalOpen(true);\r\n }}\r\n />\r\n {isAdmin && (\r\n {\r\n setClientToEdit(client);\r\n setToggleClientModalOpen(true);\r\n }}\r\n />\r\n )}\r\n
\r\n {/* Environments */}\r\n \r\n

Environments

\r\n\r\n
{}
\r\n\r\n
\r\n {\r\n setCreateEnvironmentModalOpen(true);\r\n }}\r\n />\r\n\r\n {client.Environments &&\r\n client.Environments.map((environment, index) => (\r\n {\r\n setEnvironmentToEdit(environment);\r\n }\r\n // setEnvironmentToEdit(environment)\r\n }\r\n // }\r\n // clientId={client.Id}\r\n client={client}\r\n />\r\n ))}\r\n
\r\n\r\n {/* Transaction History */}\r\n
\r\n {/* \r\n

Transaction History

\r\n
\r\n
    \r\n
  • Date - Price
  • \r\n
\r\n
*/}\r\n\r\n {/* Users */}\r\n \r\n

Users

\r\n\r\n
{}
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\r\n setShowActive(true);\r\n }}\r\n >\r\n Contacts\r\n \r\n \r\n {\r\n setShowActive(false);\r\n }}\r\n >\r\n Contacts Archive\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n setCreateEnvironmentModalOpen(false)}\r\n />\r\n {environmentToEdit && (\r\n setEnvironmentToEdit(\"\")}\r\n />\r\n )}\r\n\r\n setEditClientModalOpen(false)}\r\n client={clientToEdit}\r\n />\r\n\r\n {/* setEditClientUserModalOpen(false)}\r\n /> */}\r\n\r\n setToggleClientModalOpen(false)}\r\n />\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport \"./forgot-password.scss\";\r\n\r\n// Functions\r\nimport { useDispatch } from \"react-redux\";\r\nimport { changePasswordReq } from \"../../../Redux/login-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n// Components\r\nimport Input from \"../../../Components/Input/input\";\r\nimport Button from \"../../../Components/Button/button\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function ForgotPassword(props) {\r\n const dispatch = useDispatch();\r\n const [email, setEmail] = useState(\"\");\r\n const [sent, setSent] = useState(false);\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n return (\r\n
\r\n
\r\n

Password Change

\r\n\r\n {\r\n e.preventDefault();\r\n // if (email.replace(/ /g, \"\") === \"\") {\r\n // alert(\"Please enter Email\");\r\n // } else {\r\n const data = {\r\n Email: email,\r\n };\r\n dispatch(changePasswordReq(data)).then((res) => {\r\n setSent(true);\r\n setTimeout(() => {\r\n props.history.push(\"/\");\r\n }, 5000);\r\n });\r\n // }\r\n }}\r\n >\r\n {sent ? (\r\n Password reset instructions sent to your email\r\n ) : (\r\n <>\r\n setEmail(e.target.value)}\r\n />\r\n \r\n \r\n Back to Login\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport \"./change-password.scss\";\r\n\r\n// Functions\r\nimport { useDispatch } from \"react-redux\";\r\nimport { cangePasswordAction } from \"../../../Redux/login-slice\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n// Components\r\nimport Input from \"../../../Components/Input/input\";\r\nimport Button from \"../../../Components/Button/button\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nexport default function ChangePassword(props) {\r\n const dispatch = useDispatch();\r\n const [sent, setSent] = useState(false);\r\n const [password, setPassword] = useState(\"\");\r\n const [confirmPassword, setConfirmPassword] = useState(\"\");\r\n\r\n // i18next\r\n const { t, i18n } = useTranslation(\"Errors\");\r\n\r\n return (\r\n
\r\n
\r\n

Choose new password

\r\n\r\n {\r\n e.preventDefault();\r\n const validPass = new RegExp(\r\n /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[a-zA-Z]).{8,}$/\r\n );\r\n if (password.trim() === \"\" || confirmPassword.trim() === \"\") {\r\n alert(\"Fill all fields\");\r\n } else if (!validPass.test(password)) {\r\n alert(\"Password is invalid\");\r\n } else if (password !== confirmPassword) {\r\n alert(\"Password doesn't match\");\r\n } else {\r\n const data = {\r\n UserId: props.match.params.UserId,\r\n Token: props.match.params.Token,\r\n NewPassword: password,\r\n };\r\n dispatch(cangePasswordAction(data)).then((res) => {\r\n setSent(true);\r\n setTimeout(() => {\r\n props.history.push(\"/\");\r\n }, 5000);\r\n });\r\n }\r\n }}\r\n >\r\n {sent ? (\r\n Password successfully changed\r\n ) : (\r\n <>\r\n \r\n The password must contain at least 8 characters, including one\r\n capital letter, one small letter and one digit\r\n \r\n setPassword(e.target.value)}\r\n />\r\n setConfirmPassword(e.target.value)}\r\n />\r\n \r\n \r\n Back to Login\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { Route, Switch, Router, Redirect } from \"react-router-dom\";\r\nimport { useSelector } from \"react-redux\";\r\nimport Loader from \"./Components/Loader/loader\";\r\nimport PageWrapper from \"./Components/PageWrapper/page-wrapper\";\r\nimport Login from \"./Pages/Login/login\";\r\nimport SignOut from \"./Pages/SignOut/signout\";\r\nimport AdminHomePage from \"./Pages/Admin/AdminHomePage/admin-home-page\";\r\nimport ClientHomePage from \"./Pages/Client/ClientHomePage/client-home-page\";\r\nimport Page404 from \"./Pages/404/page404\";\r\nimport ManageClients from \"./Pages/Admin/ManageClients/manage-clients\";\r\nimport ManageEnvironments from \"./Pages/Admin/ManageEnvironments/manage-environments\";\r\nimport ClientProfile from \"./Pages/Admin/ManageClients/ClientProfile/client-profile\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useEffect } from \"react\";\r\nimport { CheckLogin } from \"./Redux/login-slice\";\r\nimport history from \"./Utils/history\";\r\nimport { ReCaptchaSiteKey } from \"./Utils/const\";\r\nimport { GoogleReCaptchaProvider } from \"react-google-recaptcha-v3\";\r\nimport React from \"react\";\r\nimport { withTranslation } from \"react-i18next\";\r\nimport ForgotPassword from \"./Pages/Login/ForgotPassword/forgot-password\";\r\nimport ChangePassword from \"./Pages/Login/ChangePassword/change-password\";\r\nimport { hideLoader, showLoader } from \"./Redux/loader-slice\";\r\n\r\nfunction ProtectedRoute({ component: Component, adminRoute, e404, ...props }) {\r\n const isAdmin = useSelector((state) => state.loginReducer.isAdmin);\r\n const isLoggedIn = useSelector((state) => state.loginReducer.isLoggedIn);\r\n if (adminRoute && isAdmin != true) return ;\r\n return (\r\n \r\n isLoggedIn ? (\r\n \r\n ) : e404 ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n />\r\n );\r\n}\r\nfunction App() {\r\n const dispatch = useDispatch();\r\n const isLoggedIn = useSelector((state) => state.loginReducer.isLoggedIn);\r\n const isINI = useSelector((state) => state.loginReducer.ini);\r\n\r\n const isAdmin = useSelector((state) => state.loginReducer.isAdmin);\r\n useEffect(() => {\r\n dispatch(showLoader());\r\n\r\n dispatch(CheckLogin()).finally(() => {\r\n dispatch(hideLoader());\r\n });\r\n }, []);\r\n return (\r\n \r\n
\r\n \r\n {isINI && (\r\n \r\n {/**/}\r\n \r\n \r\n !isLoggedIn ? (\r\n \r\n ) : isAdmin ? (\r\n \r\n ) : (\r\n \r\n )\r\n }\r\n // component={Login}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n {/* Admin Routes */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Client Routes */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default withTranslation(\"Common\")(App);\r\n","import { configureStore } from \"@reduxjs/toolkit\";\r\nimport loaderReducer from \"./loader-slice\";\r\nimport clientsReducer from \"./clients-slice\";\r\nimport environmentReducer from \"./environment-slice\";\r\nimport loginReducer from \"./login-slice\";\r\n\r\nexport default configureStore({\r\n reducer: {\r\n loaderReducer,\r\n loginReducer,\r\n clientsReducer,\r\n environmentReducer,\r\n },\r\n});\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next as reactI18nextModule } from \"react-i18next\";\r\n//import intervalPlural from \"i18next-intervalplural-postprocessor\";\r\nimport * as en from \"./locales/en\";\r\n// import * as he from \"./locales/en\";\r\n// import * as es from \"./locales/es\";\r\n// import * as ar from \"./locales/ar\";\r\n// import * as de from \"./locales/de\";\r\n// import * as it from \"./locales/it\";\r\n// import * as fr from \"./locales/fr\";\r\n// import * as pl from \"./locales/pl\";\r\n// import * as pt_br from \"./locales/pt-BR\";\r\n// the translations\r\nconst resources = {\r\n en,\r\n // he,\r\n // ar,\r\n // es,\r\n // it,\r\n // fr,\r\n // de,\r\n // pt_br,\r\n // pl,\r\n};\r\n\r\ni18n\r\n .use(reactI18nextModule) // passes i18n down to react-i18next\r\n //.use(intervalPlural)\r\n .init({\r\n lng: \"en\",\r\n debug: false,\r\n resources,\r\n fallbackLng: \"en\",\r\n defaultNS: \"Common\",\r\n fallbackNS: \"Common\",\r\n\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss\r\n },\r\n });\r\n\r\nexport default i18n;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.scss\";\r\nimport App from \"./App\";\r\nimport store from \"./Redux/store\";\r\nimport { Provider } from \"react-redux\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport \"./i18n\";\r\nimport { IntegrateApiInterceptor } from \"./Utils/api\";\r\nIntegrateApiInterceptor(store);\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","const checkIEorEdge = function () {\r\n var isIE = /*@cc_on!@*/ false || !!document.documentMode;\r\n\r\n // Edge 20+\r\n var isEdge = !isIE && !!window.StyleMedia;\r\n return isIE || isEdge;\r\n};\r\n\r\nexport { checkIEorEdge };\r\n"],"sourceRoot":""}