{"version":3,"sources":["Assets/Images/DDS_Logo.jpg","Services/LoginServices.js","Constants/config.js","Constants/userRoles.js","helpers/utils.js","Components/Pages/LoginForm/useLoginForm.tsx","Components/Pages/LoginForm/Login.tsx","Components/Layout/Routes.tsx","Services/PublicServices.ts","helpers/axioConfiguration.js","Components/Pages/Dashboard/Dashboard.tsx","Services/ProviderServices.ts","Components/Pages/Providers/useProvidersList.tsx","Components/Pages/Providers/ProvidersList.tsx","Components/Pages/Providers/useProviderForm.tsx","Components/Pages/Providers/CreateProvider.tsx","Components/Pages/Providers/EditProvider.tsx","Services/AdminServices.ts","Components/Pages/Users/useChangePasswordForm.tsx","Components/Pages/Users/PublicChangePasswordForm.tsx","Components/Common/PublicComponents/PublicHomeNav.tsx","Components/Common/PublicComponents/PublicSkipContentLink.tsx","Components/Pages/PublicHome/PublicHome.tsx","Components/Pages/PublicProviderList/usePublicProviderList.tsx","Components/Pages/PublicProviderList/PublicProviderList.tsx","Components/Pages/PublicProviderList/PublicProviderDetail.tsx","Services/EmployerSpotlightPresentationServices.ts","Components/Common/CommonComponents/SimplePageBar.tsx","Components/Pages/EmployerSpotlightPresentation/PublicEmployerSpotlightPresentationList.tsx","Components/Pages/EmployerSpotlightPresentation/usePublicEmployerSpotlightPresentationList.tsx","Components/Pages/EmployerSpotlightPresentation/usePresentationForm.tsx","Components/Pages/EmployerSpotlightPresentation/CreatePresentationForm.tsx","Components/Pages/EmployerSpotlightPresentation/EditPresentationForm.tsx","Components/Pages/EmployerSpotlightPresentation/EmployerSpotlightPresentationList.tsx","Components/Pages/EmployerSpotlightPresentation/useEmployerSpotlightPresentationList.tsx","Components/Pages/EmployerSpotlightPresentation/useBookESPForm.tsx","Components/Pages/EmployerSpotlightPresentation/BookESPForm.tsx","Services/SpecialistMeetingServices.ts","Components/Pages/RSASpecialistMeeting/useRSASpecialistMeetingForm.tsx","Components/Pages/RSASpecialistMeeting/RSASpecialistMeetingForm.tsx","Components/Pages/RSAMeetingScheduler/TimeSlot.tsx","Components/Pages/RSAMeetingScheduler/RSAMeetingScheduler.tsx","Components/Pages/RSASpecialistMeeting/RSASpecialistMeetingRequestList.tsx","Components/Pages/RSASpecialistMeeting/useRSASpecialistMeetingRequestList.tsx","Components/Pages/ESPParticipants/ESPParticipantsList.tsx","Components/Pages/ESPParticipants/useESPParticipantsList.tsx","Components/Pages/ManageHomepageSections/SectionCard.tsx","Components/Pages/ManageHomepageSections/useManageHomepageSections.tsx","Components/Pages/ManageHomepageSections/ManageHomePageSections.tsx","Components/Pages/ManageHomepageSections/useEditHomepageSectionForm.tsx","Components/Pages/ManageHomepageSections/IconSelector.tsx","Components/Common/CommonComponents/NewCommonRichEditor.jsx","Components/Pages/ManageHomepageSections/EditHomepageSectionForm.tsx","Components/Pages/PublicCustomPages/PublicCustomPages.tsx","Services/WorkshopServices.ts","Components/Pages/Workshops/WorkshopList.tsx","Components/Pages/Workshops/useWorkshopList.tsx","Components/Pages/Workshops/useEditWorkshop.tsx","Components/Pages/Workshops/RegisteredJobSeekers.tsx","Components/Pages/Workshops/useRegisteredJobSeekers.tsx","Components/Pages/Workshops/EditWorkshopForm.tsx","Components/Pages/Workshops/PublicWorkshopList.tsx","Components/Pages/Workshops/usePublicWorkshopList.tsx","Components/Pages/Workshops/useBookWorkshopForm.tsx","Components/Pages/Workshops/BookWorkshopForm.tsx","Services/CASASTestingService.ts","Components/Pages/CASASTesting/CASASTestingList.tsx","Components/Pages/CASASTesting/useCASASTestingList.tsx","Components/Pages/CASASTesting/usePublicCASASTestingForm.tsx","Components/Pages/CASASTesting/PublicCASASTestingForm.tsx","Components/Pages/CASASTesting/EditCASASTestingForm.tsx","Services/EmploymentOpportunityService.ts","Components/Pages/EmploymentOpportunities/useEmployerPartnerForm.tsx","Components/Pages/EmploymentOpportunities/EditEmployerPartnerForm.tsx","Components/Pages/EmploymentOpportunities/EditEmployerOpportunitiesForm.tsx","Components/Pages/EmploymentOpportunities/useEditEmployerOpportunitiesForm.tsx","Components/Pages/EmploymentOpportunities/EmploymentOpportunities.tsx","Components/Pages/EmploymentOpportunities/PublicEmployerOpportunities.tsx","Components/Pages/ForgetPassword/useForgetPasswordForm.tsx","Components/Pages/ForgetPassword/ForgetPasswordForm.tsx","Components/Pages/ResetPassword/useResetPasswordForm.tsx","Components/Pages/ResetPassword/ResetPasswordForm.tsx","Components/Pages/Users/UsersList.tsx","Components/Pages/Users/useUsersList.tsx","Components/Pages/Users/useEditUserForm.tsx","Components/Pages/Users/EditUserForm.tsx","Components/Pages/About/About.tsx","Components/Pages/Contact/Contact.tsx","Components/Pages/Users/ChangePasswordForm.tsx","Components/Layout/Layout.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"names":["searchUsers","payload","mockMode","Promise","resolve","reject","setTimeout","status","data","axios","post","then","res","catch","err","response","getRolesList","test","get","getUserById","userId","isEmailExist","isUserNameExist","userRole","updateInLocalStorage","key","value","window","localStorage","setItem","removeInLocalStorage","removeItem","getLocalStorageItem","getItem","getUserFromLocalToken","accesstoken","AppConfig","jwt_decode","utils","clearLocalToken","saveLocalToken","console","log","Error","formatMoney","amount","decimalCount","decimal","thousands","Math","abs","isNaN","negativeSign","i","parseInt","Number","toFixed","toString","j","length","substr","replace","slice","formatTime","inputDate","timeFormat","momentObj","moment","isValid","format","getPaginationArray","total","activeNumber","showLength","marginLength","left","right","remain","leftExtend","_","range","min","push","rightExtend","concat","max","result","getFixedLengthText","text","textLength","substring","getGUID","u","Date","now","random","repeat","join","functionExist","testObject","formatPhoneNumber","str","cleaned","match","DownloadBlobExcelFileWithContentDisposition","fileName","undefined","disposition","headers","indexOf","matches","exec","error","blob","Blob","type","link","document","createElement","style","display","href","URL","createObjectURL","target","setAttribute","download","body","appendChild","click","remove","downloadICSFile","eventData","fileText","Component","name","properties","Property","components","transform","summary","parameters","VALUE","startTime","toDate","endTime","description","location","saveAs","isValidPhone","testTarget","myReg","formatCamelText","input","isCounselor","currUser","Roles","includes","isEmploymentCoordinator","isCoordinatorSupervisor","useLoginForm","useHistory","from","useLocation","state","pathname","defaultValues","userName","password","validations","values","a","promises","all","isSubmit","useRef","viewModel","Object","keys","forEach","React","createRef","initRefs","useState","setValues","errors","setErrors","touched","setTouched","debouncedValidateForm","debounce","validateForm","isLoading","setIsLoading","isSubmitting","setIsSubmitting","setIsValid","errorMessage","setErrorMessage","validationCount","validationTotal","touchAll","counterHit","currentError","isEmpty","login","cloneDeep","loginData","accessToken","token","refreshToken","jwtDecode","jumpTarget","process","currRoles","split","Swal","fire","icon","title","showConfirmButton","confirmButtonText","confirmButtonColor","footer","fieldName","newErrors","ref","newValue","fieldOnly","prevValue","LoginForm","handleChange","handleBlur","handleSubmit","errorText","Grid","textAlign","marginTop","verticalAlign","Column","maxWidth","minWidth","Form","size","loading","Segment","stacked","Image","src","logoImg","alt","centered","Header","as","color","Input","required","fluid","iconPosition","placeholder","onChange","event","onBlur","onKeyPress","Button","onClick","Message","negative","header","content","list","to","PrivateRoute","routeProps","useContext","AppContext","isLoggedIn","currentUser","redirectTarget","PublicRoute","urlCode","dummyResponse","somethingHere","axioConfig","requestMap","Map","interceptors","request","use","config","requestConfig","common","Accept","url","endsWith","Authorization","refresh_token","method","baseURL","keyString","set","JSON","stringify","isRefreshing","failedQueue","processQueue","has","responseURL","delete","payloadJson","originalRequest","_retry","toLowerCase","position","timer","toast","timerProgressBar","showCancelButton","errorReportPayload","errorCode","errorRequestURL","errorPayloadJSON","reportError","Dashboard","Container","className","marginBottom","columns","divided","Row","List","relaxed","Item","Icon","Content","getProviderList","totalRecords","dataTableData","providerId","providerName","providerType","providerCredential","trainingOffered","getMasterForProviderList","getFullMasterForProviderList","getProviderById","isCreate","useProvidersList","initialProviderCategoryId","saveState","statePropName","columnName","sortable","columnHeader","decorator","row","rowIndex","colIndex","masterData","categoryIdMap","providerCategoryId","pageSizeOptions","useMemo","searchRef","setMasterData","setProviderCategoryId","providerCredentialIds","setProviderCredentialIds","providerTraningsIds","setProviderTraningIds","providerTypeId","setProviderTypeId","pageSize","setPageSize","setTotalRecords","currentPage","setCurrentPage","sortColumnName","setSortColumnName","isDesc","setIsDesc","searchText","setSearchText","setData","providerCategoryText","getProviderCategoryText","providerCategorys","providerCategoriesMaster","item","handlePageSizeChange","providerTrainingIds","_fetchData","handlePaginationChange","newPageNumber","handleProviderCategoryChange","newProviderCategoryId","handleProviderCredentialsChange","newProviderCredentialIds","handleProviderTrainingsChange","newProviderTraingIds","handleProviderTypeChange","newProviderTypeId","handleSortChange","newSortColumnName","newIsDesc","newColumnName","handleSearchChangeFn","handleSearchChange","resetSearch","current","overwritePayload","_saveState","_fetchMasterData","callBack","newMasterData","providerCredentials","providerTranings","providerTypes","providerCategoriesOptions","map","index","id","displayName","unshift","providerCredentialsOptions","providerTrainingOptions","providerTypesOptions","currentPayload","stateName","_loadState","stateString","parse","useEffect","priviousState","ProvidersList","inputClassName","history","totalPages","ceil","paginationArray","width","labelPosition","top","Breadcrumb","Section","Divider","active","mobile","tablet","computer","Dropdown","selection","options","multiple","clearable","closeOnChange","search","Table","basic","striped","column","HeaderCell","Body","Cell","colSpan","col","Footer","overflowX","whiteSpace","inline","Menu","floated","pagination","disabled","useProviderForm","proivderId","useParams","newValues","providerPhone","fetchData","categoryId","websiteURL","credentialIds","trainingOfferIds","providerAddress","providerContact","providerEmail","startsWith","isValidEmail","newData","updateProvider","saveData","cancelButtonText","isConfirmed","deleteProviderById","isDeleted","CreateProvider","Field","label","Group","margin","control","Radio","checked","onClose","primary","goBack","EditProvider","handleDelete","getAllHomepageSections","getPublicHomepageSections","getHomepageSectionById","useChangePasswordForm","closePopup","currentPassword","newPassword","confirmPassword","changePassword","message","succeeded","reason","PublicChangePasswordForm","fontSize","PublicHomeNav","publicSiteURLActiveMap","navActiveitemName","setnavActiveitemName","setRenderTrigger","isModalOpen","setIsModalOpen","isInitilized","isMenuExpended","currentCategory","timerId","currLocation","navActiveClassName","hasDashboard","currPathName","sectionData","setSectionData","sections","handleFocus","itemName","getElementById","classList","add","previousNumber","clearTimeout","timeoutTime","height","$","toggleClass","e","innerWidth","onFocus","onMouseEnter","onMouseLeave","isHtmlContent","FullName","backgroundColor","Modal","dimmer","open","PublicSkipContentLink","PublicHome","PUBLIC_SITE_URL_ACTIVE_MAP","section","iconName","teaserText","homepageSectionId","usePublicProviderList","updateCounter","setUpdateCounter","getNoneEmptyProviderCategories","prevData","PublicProviderList","each","$this","this","highestBox","find","outerHeight","dataLoaded","minHeight","PublicProviderDetail","isFilterOpen","setIsFilterOpen","defaultProviderCategoryId","searchString","tempSplitResult","getProviderCategoryId","marginLeft","newurl","protocol","host","replaceState","path","changeURLSearchParams","previouseValue","padded","address","contact","email","phone","warning","getESPList","date","toISOString","EmployerSpotlightPresentationId","OrganizationName","PresentationTopic","PresentationDate","toDateString","StartTime","EndTime","PresentationModeCode","Location","Notes","getESPById","ESPId","isSuccess","failReason","getPresentationModeMaster","searchEmployerSpotlightPresentationParticipant","gridData","ExportEmployerSpotlightPresentationParticipant","responseType","SimplePageBar","handlePrevActive","handleNextActive","hasPrev","hasNext","PublicEmployerSpotlightPresentation","recordsPerPage","setRecordsPerPage","pageNum","setPageNum","sortByField","setSortByField","sortOrderDesc","setSortOrderDesc","isUpcoming","fromDate","reshapedData","_reshapeData","dateList","dateString","presentationDateTime","currDay","filter","temp","employerSpotlightPresentationId","organization","topic","usePublicEmployerSpotlightPresentation","handlePrevPage","handleNextPage","padding","attached","inverted","Placeholder","Line","image","Paragraph","dataRow","border","eventIndex","paddingTop","paddingBottom","usePresentationForm","newFormValues","organizationName","presentationTopic","presentationDescription","presenter","presentationDate","presentationModeCode","notes","_handleRequestCountChange","fetchMasterData","requestCount","setDataLoaded","_isValidDate","isBefore","_isValidTime","formatedStartTime","_addSpaceBeforeChar","formatedEndTime","today","submitSuccess","setSubmitSuccess","currDate","Description","saveESP","string","trim","s","dateText","CreatePresentationForm","TextArea","positive","EditPresentationForm","isPast","isSameOrAfter","EmployerSpotlightPresentation","yesterday","participantsCount","fromDateRef","toDateRef","setIsUpcoming","setFromDate","setToDate","handleIsUpcomingChange","newToDate","newFromDate","handleFromDateChange","hasError","fromDateMo","toDateMo","isAfter","handleToDateChange","resetFromDate","newTarget","resetToDate","useEmployerSpotlightPresentation","Label","ribbon","useBookESPForm","firstName","lastName","phoneNumber","confirmEmail","bookESPSpot","replaceAll","BookESPForm","handleDownloadCalendar","dangerouslySetInnerHTML","__html","searchSpecialistMeetingRequestList","something","getSpecialistMeetingMaster","EmploymentHelpTopicId","DisplayName","AskMoreInfo","MoreInfoText","getSpecialistMeetingListAssignedToMaster","getSpecialistMeetingRequestCoordinators","getCounselorsList","MRId","employmentSpecialistMeetingRequestId","requestedBy","preferredDateTime","comments","requestedDate","helpTopics","getTimeSlotData","selectedDate","startOf","endOfMonth","endOf","testData","isSameOrBefore","tempDay","meetingCount","getRandomInt","currMeeting","meetingDate","floor","useRSASpecialistMeetingForm","otherAssistanceOptionIndex","findIndex","otherAssistanceOption","splice","setCoordinatorMaster","coordinatorId","helpTopicIds","otherAssistance","preferedDateTime","getShouldDisplayOtherField","coordinatorMaster","PreferredTimes","RequestorComments","HelpTopics","topicId","OtherDescription","employmentHelpTopicId","askMoreInfo","postMeetingRequest","currValues","shouldDisplayOtherField","otherFieldText","moreInfoText","RSASpecialistMeetingForm","scrollTo","selectOnBlur","topicItem","Checkbox","targetIndex","TimeSlot","props","dayStartTime","dayEndTime","isReadOnly","isMousedown","setIsMousedown","selectedSlots","setSelectedSlots","setRenderCounter","slotArrayRef","selectedStartTime","selectedEndTime","newRenderData","getDataArray","endTimeOfDay","currTime","timeArray","slotData","tmepSlotData","isTaken","slotId","meetingId","meetingsList","meeting","meetingStartTime","meetingEndTime","slotStartTime","slotEndTime","isSame","meetingLength","diff","timeSlotDataArray","currIndex","rowFilledCount","currObj","timeSlots","supperScriptLable","reRender","handleMouseEnter","elementId","thisSlot","finishSelect","handleMouseLeaveWrapper","handleMouseUp","tagName","onTimeChange","removeEventListener","rowData","rowSlotsCount","slot","slotIndex","isSelected","meetingData","requesterName","onMouseDown","newMap","addEventListener","handleMouseDown","RSAMeetingScheduler","renderCounter","meetingRequestData","setMeetingRequestData","setComments","selectedDay","setSelectedDay","selectedSpecialistId","setSelectedSpecialistId","timeSlotData","setTimeSlotData","meetingTime","setMeetingTime","submittedSucess","setSubmittedSucess","monthEventData","isUserCoordinator","handleSpecailistChange","newId","_fetchTimeSlotData","getSpecialistMeetingRequestById","assignedTo","targetDate","staffId","setSlotData","clear","currKey","assignedToOptions","shouldShowTimeSlot","clientName","phomeNumber","assignedToName","alignItems","justifyContent","flexDirection","onDayClick","day","selected","outside","tempData","selectedDays","disabledDays","daysOfWeek","before","renderDay","modifiers","dateNumber","getDate","isToday","dataKey","classNameBase","fontWeight","fromMonth","onMonthChange","newMonth","handleMonthChange","info","newMeetingTime","success","newError","newPayload","saveRSAStaffSchedule","RSASpecialistMeetingRequestList","UserId","currentUserId","isPending","setIsPending","setAssignedTo","handleIsPendingChange","handleAssignedToChange","meetingSchedule","meetingRequestId","requestedOn","otherAssistnaceIndex","toLocaleLowerCase","otherAssistanceItem","useRSASpecialistMeetingRequestList","ESPParticipantsList","selectedParticipants","presentationData","setPresentationData","counselorId","setCounselorId","handleCounselorIdChange","handleSelectBoxClick","participantId","currParticipant","employerSpotlightPresentationParticipantId","exportToExcel","EmployerSpotlightPresentationParticipantId","newPresentationData","counselorIdOptions","useESPParticipantsList","float","SectionCard","isDragging","onDropEnter","draggingId","handleMousedown","sectionId","stopPropagation","preventDefault","nativeEvent","which","onMouseUp","useManageHomepageSections","sectionsData","setSectionsData","callback","_fatchData","displayOrder","SaveHomepageSectionDisplayOrder","ManageHomepageSections","saveOrder","dragData","initialOffsetLeft","initialOffsetTop","dragOffsetX","dragOffsetY","currWidth","currHeight","draggingDom","shadowDom","targetDom","offsetLeft","offsetTop","clientX","clientY","cssObj","getComputedStyle","clientRect","getBoundingClientRect","borderRadius","onMouseMove","mousePosition","removeChild","sourceIndex","tempSectionData","useEditHomepageSectionForm","pageContent","pageContentContext","saveHomepageSection","toastSuccessMessage","cancelButtonColor","deleteHomepageSectionById","IconSelector","isListOpen","setIsListOpen","selectedIconName","setSelectedIconName","inputKey","setInputKey","handleBackdropClick","inputElement","files","myData","FormData","append","response2","getIconListList","marginRight","accept","require","NewCommonRichEditor","messageListener","currValue","setupIFrame","iframe","srcdoc","texEditorId","sandbox","zIndex","parentNode","editerFrame","HTMLstring","payloadA","contentWindow","postMessage","summernote","initalSummerNote","toolbar","popover","table","disableGrammar","callbacks","dropdown","debounceTime","valueOf","isDivLoaded","setState","prevProps","payloadB","EditHomepageSectionForm","params","radio","handleonBlur","editorState","rawContent","hostname","PublicCustomPages","urlcode","getPageContent","getWorkshopList","getWorkshopTypeList","getWorkshopById","deleteJobSeekerById","getRegisteredJobSeekers","workshopId","exportWorkshopRegistrations","WorkshopList","workshopType","startDate","registeredJobSeekers","workshopTypeId","setWorkshopTypeId","handleWorkshopTypeChange","newWorkshopTypeId","newOptions","workshopTypeOptions","useWorkshopList","useEditWorkshopForm","WId","workshopDate","endDate","meetingInformation","workshopMode","meetingInformationContext","roomNumber","saveWorkshop","deleteWorkshopById","sendNotificationToJobSeekers","RegisteredJobSeekers","listData","handleExport","isListLoading","limitedHeight","hasData","GridColumn","maxHeight","overflowY","celled","fixed","singleLine","workshopRegistrationId","cursor","useRegisteredJobSeekers","EditWorkshopForm","handleSendEmail","handleDeleteJobSeeker","setIsPast","prevDate","isEdit","allowDeleteWorkshop","lastValue","jobseekerId","PublicWorkshopList","usePublicWorkshopList","useBookWorkshopForm","additionalInformation","bookWorkshop","BookWorkshopForm","workshopTypes","setWorkshopTypes","getCASASTesting","casaTestingId","searchCASASTesting","CASASTestingList","casastestingId","useCASASTestingList","usePublicCASASTestingForm","TId","firstname","lastname","casastestingCompleted","noShowForTesting","counselorComments","staffComments","counselorName","testingCompletedDate","registeredTime","saveCASASTesting","PublicCASASTestingForm","EditCASASTestingForm","phoneNUmber","FormField","saveEmploymentOpportunity","getEmployerPartners","partnerId","getEmploymentOpportunityCounselor","getEmploymentOpportunityAdmin","useEmployerPartnerForm","partnerData","employerPartnerId","website","saveEmployerPartner","deleteEmployerPartner","EditEmployerPartnerForm","EditEmployerOpportunitiesForm","isAdmin","rsaemploymentOpportunity","rsaemploymentOpportunityContext","recruitingHiringEvent","recruitingHiringEventContext","disabilityAwarenessMonthEvent","disabilityAwarenessMonthEventContext","registerRef","EmploymentOpportunityId","useEditEmployerOpportunitiesForm","ManageEmploymentOpportunities","defaultPartnerData","setListData","selectedPartnerData","setSelectedPartnerData","_closeModal","isModelOpen","modalTitle","PublicEmploymentOpportunities","useForgetPasswordForm","hostBase","origin","sendForgetPasswordEmail","ForgetPasswordForm","useResetPasswordForm","parms","currSearch","parts","uid","parseUserIdAndToken","resetPasswordWithToken","ResetPasswordForm","UsersList","roleName","setRoleName","handleRoleNameChange","useUsersList","useEditUserForm","UId","currentUserName","currentRoleName","setOriginalData","originalData","newUserName","newRoleName","updateUser","EditUserForm","PublicAbout","PublicContact","typeof","ChangePasswordForm","Layout","publicSiteURLList","children","isPublic","URLList","getIsPublic","rootElement","documentElement","stackable","logoImage","Home","Explore","About","Contact","createContext","defaults","App","alreadyLoggedin","user","isLoggedin","isStaff","basename","Provider","exact","isAuthorized","Login","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","jQuery","ReactDOM","render","StrictMode"],"mappings":"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","file":"static/js/main.e134f7cb.chunk.js","sourcesContent":["export default \"data:image/jpeg;base64,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\"","import axios from 'axios';\r\n\r\nexport function login(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n \"accessToken\": \"dummyToken\",\r\n \"refreshToken\": \"dummyToken\"\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/login`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function sendForgetPasswordEmail(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n \"accessToken\": \"dummyToken\",\r\n \"refreshToken\": \"dummyToken\"\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/forgetPassword`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function resetPasswordWithToken(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n \"accessToken\": \"dummyToken\",\r\n \"refreshToken\": \"dummyToken\"\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/resetPassword`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function changePassword(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n \"accessToken\": \"dummyToken\",\r\n \"refreshToken\": \"dummyToken\"\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/ChangePassword`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function searchUsers(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n \"accessToken\": \"dummyToken\",\r\n \"refreshToken\": \"dummyToken\"\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/SearchUser`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function getRolesList(mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n test: 'testDataHere'\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.get(`/Authentication/GetUserRolesList`)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function getUserById(userId, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n test: 'testDataHere'\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.get(`/Authentication/getUserById/${userId}`)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function updateUser(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n test: 'testDataHere'\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n if (payload.userId === 0) {\r\n return axios.post(`/Authentication/RegisterUser`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n } else {\r\n return axios.post(`/Authentication/updateUser`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n\r\n }\r\n}\r\n\r\nexport function isEmailExist(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n test: 'testDataHere'\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/isEmailExist`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n\r\nexport function isUserNameExist(payload, mockMode = false) {\r\n if (mockMode === true) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve({\r\n status: 200,\r\n data: {\r\n test: 'testDataHere'\r\n }\r\n });\r\n }, 2000);\r\n });\r\n } else {\r\n return axios.post(`/Authentication/isUserNameExist`, payload)\r\n .then(res => (res))\r\n .catch(err => (err.response));\r\n }\r\n}\r\n","export default {\r\n apiUrl: 'https://localhost:44307/api',\r\n ACCESS_TOKEN: 'dcsvrrapp_access_token',\r\n REFRESH_TOKEN: 'dcsvrrapp_refresh_token',\r\n ACCESS_TOKEN_PROP: 'accessToken',\r\n REFRESH_TOKEN_PROP: 'refreshToken',\r\n PROVIDER_LIST_STATE: 'PROVIDER_LIST_STATE',\r\n EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE: 'EMPLOYER_SPOTLIGHT_PRESENTION_LIST_STATE',\r\n RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE: 'RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE',\r\n PUBLIC_EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE: 'PUBLIC_EMPLOYER_SPOTLIGHT_PRESENTION_LIST_STATE',\r\n PUBLIC_PROVIDER_DETAIL_STATE: 'PUBLIC_PROVIDER_DETAIL_STATE',\r\n WORKSHOP_LIST_STATE:'WORKSHOP_LIST_STATE',\r\n CASASTESTING_LIST_STATE:'CASASTESTING_LIST_STATE',\r\n USER_LIST_STATE:'USER_LIST_STATE'\r\n };\r\n ","export const userRole = {\r\n Counselor : 'Counselor',\r\n Administrator: 'Administrator',\r\n 'RSA Staff' : 'RSA Staff',\r\n \"Employment Coordinator\": \"Employment Coordinator\",\r\n \"Coordinator Supervisor\": \"Coordinator Supervisor\"\r\n};","import jwt_decode from 'jwt-decode';\r\nimport AppConfig from '../Constants/config';\r\nimport { userRole } from '../Constants/userRoles';\r\nimport _ from \"lodash\";\r\nimport moment from 'moment';\r\nimport { saveAs } from 'file-saver';\r\nimport { Component, Property } from 'immutable-ics'\r\n\r\nfunction updateInLocalStorage(key, value) {\r\n window.localStorage.setItem(key, value);\r\n}\r\n\r\nfunction removeInLocalStorage(key) {\r\n window.localStorage.removeItem(key);\r\n}\r\n\r\nfunction getLocalStorageItem(key) {\r\n return window.localStorage.getItem(key);\r\n}\r\n\r\nfunction getUserFromLocalToken() {\r\n const accesstoken = getLocalStorageItem(AppConfig.ACCESS_TOKEN);\r\n if (accesstoken) {\r\n return jwt_decode(accesstoken);\r\n } else {\r\n return null;\r\n }\r\n}\r\n\r\nfunction clearLocalToken() {\r\n removeInLocalStorage(AppConfig.ACCESS_TOKEN);\r\n removeInLocalStorage(AppConfig.REFRESH_TOKEN);\r\n}\r\n\r\nfunction saveLocalToken(response) {\r\n console.log(response);\r\n if (response && response[AppConfig.ACCESS_TOKEN_PROP] && response[AppConfig.REFRESH_TOKEN_PROP]) {\r\n updateInLocalStorage(AppConfig.ACCESS_TOKEN, response[AppConfig.ACCESS_TOKEN_PROP]);\r\n updateInLocalStorage(AppConfig.REFRESH_TOKEN, response[AppConfig.REFRESH_TOKEN_PROP]);\r\n } else {\r\n throw new Error('Can not update local token with null value');\r\n }\r\n}\r\n\r\nfunction formatMoney(amount, decimalCount = 2, decimal = \".\", thousands = \",\") {\r\n decimalCount = Math.abs(decimalCount);\r\n decimalCount = isNaN(decimalCount) ? 2 : decimalCount;\r\n const negativeSign = amount < 0 ? \"-\" : \"\";\r\n const i = parseInt(\r\n (amount = Math.abs(Number(amount) || 0).toFixed(decimalCount))\r\n ).toString();\r\n const j = i.length > 3 ? i.length % 3 : 0;\r\n return (\r\n negativeSign +\r\n (j ? i.substr(0, j) + thousands : \"\") +\r\n i.substr(j).replace(/(\\d{3})(?=\\d)/g, `$1${thousands}`) +\r\n (decimalCount\r\n ? decimal +\r\n Math.abs(amount - i)\r\n .toFixed(decimalCount)\r\n .slice(2)\r\n : \"\")\r\n );\r\n}\r\n\r\nfunction formatPhoneNumber(str) {\r\n //Filter only numbers from the input\r\n let cleaned = ('' + str).replace(/\\D/g, '');\r\n if(cleaned.length > 10){\r\n cleaned = cleaned.substring(0,10);\r\n }\r\n\r\n //Check if the input is of correct length\r\n let match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/);\r\n\r\n if (match) {\r\n return '(' + match[1] + ') ' + match[2] + '-' + match[3]\r\n };\r\n\r\n return '';\r\n};\r\n\r\nfunction getPaginationArray(\r\n total,\r\n activeNumber,\r\n showLength = 1,\r\n marginLength = 0\r\n) {\r\n // this method will retrun an array that represent what should be showed in the pagination\r\n // example: total : 10. show count = 2 active number = 5 output:[3,4,5,6,7]\r\n if (total > 0) {\r\n let left = activeNumber - showLength >= 1 ? activeNumber - showLength : 1;\r\n let right =\r\n activeNumber + showLength <= total ? activeNumber + showLength : total;\r\n if (right - activeNumber < showLength) {\r\n // can expend on left\r\n const remain = showLength - (right - activeNumber);\r\n left = left - remain >= 1 ? left - remain : 1;\r\n } else if (activeNumber - left < showLength) {\r\n // can expend on right\r\n const remain = showLength - (activeNumber - left);\r\n right = right + remain <= total ? right + remain : total;\r\n }\r\n // expend left if not reached 0\r\n let leftExtend = [];\r\n if (left > marginLength + 2) {\r\n leftExtend = _.range(1, Math.min(marginLength + 2, left));\r\n leftExtend.push(\"...\");\r\n } else if (left >= marginLength + 1) {\r\n leftExtend = _.range(1, Math.min(marginLength + 2, left));\r\n }\r\n let rightExtend = [];\r\n if (right < total - marginLength - 1) {\r\n rightExtend.push(\"...\");\r\n rightExtend = rightExtend.concat(\r\n _.range(Math.max(total - marginLength - 1, right), total + 1)\r\n );\r\n } else if (right >= total - marginLength - 1 && right < total) {\r\n rightExtend = _.range(\r\n Math.max(total - marginLength, right + 1),\r\n total + 1\r\n );\r\n }\r\n const result = leftExtend\r\n .concat(_.range(left, right + 1))\r\n .concat(rightExtend);\r\n return result;\r\n }\r\n return [];\r\n}\r\n\r\nfunction getFixedLengthText(text = '', textLength = 40,) {\r\n if (!(text && typeof text === 'string' && text.length)) {\r\n return '';\r\n } else {\r\n return text.length > textLength ? text.substring(0, textLength - 3) + '...' : text;\r\n }\r\n}\r\n\r\nfunction formatTime(inputDate, timeFormat = 'MM/DD/YYYY') {\r\n if (typeof inputDate === 'string' || typeof inputDate === 'object') {\r\n let momentObj = moment(inputDate);\r\n if (momentObj.isValid()) {\r\n return momentObj.format(timeFormat);\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n}\r\n\r\nfunction getGUID() {\r\n let u = Date.now().toString(16) + Math.random().toString(16) + '0'.repeat(16);\r\n return [u.substr(0, 8), u.substr(8, 4), '4000-8' + u.substr(13, 3), u.substr(16, 12)].join('-');\r\n}\r\n\r\nfunction functionExist(testObject) {\r\n if (testObject && typeof testObject === 'function') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n}\r\n\r\nfunction DownloadBlobExcelFileWithContentDisposition(response, fileName) {\r\n fileName = fileName !== undefined ? fileName : \"result.xlsx\";\r\n try {\r\n var disposition = response.headers[\"content-disposition\"];\r\n if (disposition && disposition.indexOf(\"attachment\") !== -1) {\r\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n var matches = filenameRegex.exec(disposition);\r\n if (matches != null && matches.length > 0 && matches[1])\r\n fileName = matches[1].replace(/['\"]/g, \"\");\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n var blob = new Blob([response.data], {\r\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;\",\r\n });\r\n const link = document.createElement(\"a\");\r\n link.style.display = \"none\";\r\n link.href = window.URL.createObjectURL(blob);\r\n link.target = \"_blank\";\r\n link.setAttribute(\"download\", fileName);\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n}\r\n\r\nfunction downloadICSFile(eventData) {\r\n /*\r\n eventData: {\r\n startTime: string;\r\n endTime: string;\r\n summary: string;\r\n description: string;\r\n location: string;\r\n fileName?: string;\r\n };\r\n \r\n */\r\n\r\n const calendar = new Component({\r\n name: 'VCALENDAR',\r\n properties: [\r\n new Property({ name: 'VERSION', value: 2 }),\r\n new Property({ name: 'PRODID', value: 'DC DDS Virtural Resource Room' })\r\n ],\r\n components: [\r\n new Component({\r\n name: 'VEVENT',\r\n properties: [\r\n new Property({\r\n name: 'SUMMARY',\r\n transform: false,\r\n value: `${eventData.summary || 'Summary not specified'}`\r\n }),\r\n new Property({\r\n name: 'DTSTART',\r\n parameters: { VALUE: 'DATE-TIME' },\r\n value: moment(eventData.startTime).toDate()\r\n }),\r\n new Property({\r\n name: 'DTEND',\r\n parameters: { VALUE: 'DATE-TIME' },\r\n value: moment(eventData.endTime).toDate()\r\n }),\r\n new Property({\r\n name: 'DESCRIPTION;ENCODING=QUOTED-PRINTABLE',\r\n transform: false,\r\n value: `${eventData.description}`\r\n }),\r\n new Property({\r\n name: 'LOCATION',\r\n value: `${eventData.location}`\r\n }),\r\n ]\r\n })\r\n ]\r\n })\r\n const fileText = calendar.toString();\r\n var blob = new Blob([fileText], {type: \"text/plain;charset=utf-8\"});\r\n saveAs(blob, eventData.fileName || `Employer_Spotlight_Presentation_${moment(eventData.startTime || '').format('MM_DD_YYYY')}.ics`);\r\n //console.log(calendar.toString());\r\n}\r\n\r\nfunction isValidPhone(testTarget) {\r\n let myReg = /^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im;\r\n return myReg.test(testTarget);\r\n return myReg.test(testTarget);\r\n}\r\n\r\n\r\n\r\nfunction formatCamelText(input){\r\n\r\n let result = input.replace( /([A-Z])/g, \" $1\" );\r\n return result;\r\n}\r\n\r\nfunction isCounselor(){\r\n const currUser = getUserFromLocalToken();\r\n return currUser?.Roles?.includes(userRole.Counselor) ? true : false;\r\n}\r\n\r\nfunction isEmploymentCoordinator(){\r\n const currUser = getUserFromLocalToken();\r\n return currUser?.Roles?.includes(userRole[\"Employment Coordinator\"]) ? true : false;\r\n}\r\n\r\nfunction isCoordinatorSupervisor(){\r\n const currUser = getUserFromLocalToken();\r\n return currUser?.Roles?.includes(userRole[\"Coordinator Supervisor\"]) ? true : false;\r\n}\r\n\r\nexport const utils = {\r\n updateInLocalStorage,\r\n removeInLocalStorage,\r\n getLocalStorageItem,\r\n getUserFromLocalToken,\r\n clearLocalToken,\r\n saveLocalToken,\r\n formatMoney,\r\n formatTime,\r\n getPaginationArray,\r\n getFixedLengthText,\r\n getGUID,\r\n functionExist,\r\n formatPhoneNumber,\r\n DownloadBlobExcelFileWithContentDisposition,\r\n downloadICSFile,\r\n isValidPhone,\r\n formatCamelText,\r\n isCounselor,\r\n isEmploymentCoordinator,\r\n isCoordinatorSupervisor\r\n};","import React, { Component, Fragment, useEffect, useState, useRef } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport _ from 'lodash';\r\nimport Swal from 'sweetalert2';\r\nimport { login } from '../../../Services/LoginServices';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { userRole } from '../../../Constants/userRoles';\r\nimport jwtDecode from 'jwt-decode';\r\nimport { User } from '../../../Types/User';\r\n\r\nexport type LoginFormValues = {\r\n [key: string]: any;\r\n}\r\n\r\nexport type LoginFormRef = {\r\n [key: string]: React.RefObject\r\n}\r\n\r\nexport type LoginFormErrors = {\r\n [key: string]: string;\r\n}\r\n\r\nexport type LoginFormTouched = {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n}\r\n\r\nexport interface LocationState {\r\n from: {\r\n pathname: string;\r\n };\r\n }\r\n \r\n\r\n\r\nexport function useLoginForm() {\r\n\r\n let history = useHistory();\r\n let location = useLocation();\r\n \r\n let { from } = location.state || { from: { pathname: \"/\" } };\r\n const defaultValues: LoginFormValues = {\r\n userName: '',\r\n password: '',\r\n };\r\n const validations = {\r\n\r\n userName: async function (values: LoginFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.userName) {\r\n error = 'Please provide your user name';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n password: async function (values: LoginFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.password) {\r\n error = 'Please provide your password';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n\r\n }\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: LoginFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: LoginFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: LoginFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n function saveData(viewModel: LoginFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n login(newData, false).then((res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) {\r\n let loginData = {\r\n accessToken: res.data.token,\r\n refreshToken: res.data.token,\r\n };\r\n utils.saveLocalToken(loginData);\r\n let currUser: User = jwtDecode(res.data.token);\r\n let jumpTarget = `${process.env.REACT_APP_VIRTUAL_DIRECTORY}/dashboard`;\r\n if(currUser.Roles != null){\r\n let currRoles = currUser.Roles.split(',');\r\n if((currRoles.indexOf(userRole.Counselor) !== -1) || (currRoles.indexOf(userRole['Employment Coordinator']) !== -1)){\r\n jumpTarget = `${process.env.REACT_APP_VIRTUAL_DIRECTORY}`\r\n }\r\n\r\n }\r\n // handle page jump here\r\n setTimeout(() => {\r\n // will reload the app for auth to update.\r\n if(from.pathname && from.pathname != '/' && jumpTarget !== '/'){\r\n window.location.href = from.pathname;\r\n }else {\r\n window.location.href = jumpTarget;\r\n }\r\n \r\n }, 500);\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n setErrorMessage('Invalid user name or password.');\r\n }\r\n else {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${res && res.data ? res.data : \"No detail reason available.\"}`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (error.response && error.response.data && error.response.status === 500) {\r\n let footer = '';\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${error.response.data ? error.response.data : \"No detail reason available\"}`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(values: LoginFormValues, validations: ValidtionFunctions, fieldName: string | null = null) {\r\n let newErrors: LoginFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(() => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(() => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function handleBlur(fieldName: string) {\r\n if(errorMessage != null){\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n }\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if(errorMessage != null){\r\n setErrorMessage(null);\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n return [values, errors, touched, isLoading, isSubmitting, isValid,errorMessage, registerRef, handleChange, handleBlur, handleSubmit] as const;\r\n\r\n}\r\n","import React, { useRef } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { Button, Form, Grid, Header, Image, Message, Segment, Input } from 'semantic-ui-react';\r\nimport logoImg from '../../../Assets/Images/DDS_Logo.jpg';\r\nimport { useLoginForm } from './useLoginForm';\r\n\r\nconst LoginForm = () => {\r\n\r\n const [values, errors, touched, isLoading, isSubmitting, isValid, errorMessage, registerRef, handleChange, handleBlur, handleSubmit] = useLoginForm();\r\n function handleSubmitData() {\r\n handleSubmit();\r\n }\r\n\r\n //console.log(errors);\r\n const errorText: string[] = [];\r\n Object.keys(errors).forEach((key)=>{\r\n errorText.push(errors[key]);\r\n })\r\n return (\r\n \r\n \r\n
\r\n \r\n DDS Logo\r\n
\r\n DC Department on Disability Services Virtual Resource Room\r\n
\r\n
\r\n Website Members Login\r\n
\r\n {\r\n handleChange(data.value, 'userName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('userName') }\r\n }\r\n error={!(!errors.userName || !touched.userName) ? true : false}\r\n\r\n />\r\n {\r\n handleChange(data.value, 'password');\r\n }}\r\n onBlur={\r\n () => { handleBlur('password') }\r\n }\r\n onKeyPress = {(event: React.KeyboardEvent)=>{\r\n if(event.key === 'Enter'){\r\n handleSubmit();\r\n }\r\n\r\n }}\r\n error={!(!errors.password || !touched.password) ? true : false}\r\n />\r\n \r\n\r\n {\r\n errorMessage != null &&\r\n \r\n }\r\n {\r\n Object.keys(errors).length > 0 &&\r\n \r\n }\r\n
\r\n
\r\n\r\n\r\n \r\n Can't sign in? Forgot Password\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default LoginForm","import React, { useContext } from 'react';\r\nimport { Route, Redirect } from \"react-router-dom\";\r\nimport { AppContext, AppContextType } from '../../App';\r\nimport { RouteProps } from 'react-router';\r\nimport { LocationState } from '../Pages/LoginForm/useLoginForm';\r\nimport { useLocation } from 'react-router-dom';\r\n\r\nexport type ControlledRouteProps = {\r\n isAuthorized: boolean;\r\n redirectTarget?: string;\r\n} & RouteProps;\r\n\r\nexport function PrivateRoute ( { ...routeProps}: ControlledRouteProps ) {\r\n const { isLoggedIn, currentUser }: AppContextType = useContext(AppContext);\r\n let location = useLocation();\r\n if (isLoggedIn) {\r\n return ;\r\n }else {\r\n return ; \r\n }\r\n};\r\n\r\nexport function PublicRoute ( { ...routeProps}: ControlledRouteProps ) {\r\n return ; \r\n};","import axios from \"axios\";\r\n\r\nexport async function getPageContent(urlCode:string, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Public/GetPageContent/${urlCode}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport type ErrorReport = {\r\n errorCode: string,\r\n errorRequestURL: string,\r\n errorPayloadJSON: string | null,\r\n}\r\n\r\nexport async function reportError(payload: any, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Public/ReportError`, payload);\r\n return result;\r\n }\r\n}","import axios from 'axios';\r\nimport AppConfig from '../Constants/config';\r\nimport { utils } from './utils';\r\nimport Swal from 'sweetalert2';\r\nimport { reportError } from '../Services/PublicServices'\r\n\r\nexport const axioConfig = {\r\n configurateAxios: () => {\r\n // make a request recorder for error report\r\n let requestMap = new Map();\r\n\r\n // config request interceptor\r\n axios.interceptors.request.use(\r\n (config) => {\r\n \r\n const requestConfig = config;\r\n // Get the access token from locla storage\r\n const token = localStorage.getItem(AppConfig.ACCESS_TOKEN);\r\n const refreshToken = localStorage.getItem(AppConfig.REFRESH_TOKEN);\r\n // Add these headers for all requests\r\n requestConfig.headers['Content-Type'] = 'application/json';\r\n requestConfig.headers.common.Accept = 'application/json; charset=utf-8';\r\n // If the access token exists add it to the request headers\r\n if (token && !config.url.endsWith(\"RefreshToken\")) {\r\n requestConfig.headers.Authorization = `Bearer ${token}`;\r\n } else if (config.url.endsWith(\"RefreshToken\") && refreshToken) {\r\n requestConfig.headers.refresh_token = `${refreshToken}`;\r\n }\r\n\r\n // make a record for post request for the same url\r\n if(config.method === 'post'){\r\n let baseURL = config.baseURL;\r\n if(baseURL.endsWith('/')){\r\n baseURL = baseURL.substring(0, baseURL.length - 1);\r\n }\r\n let keyString = baseURL+config.url;\r\n //console.log(keyString);\r\n try {\r\n requestMap.set(keyString, JSON.stringify(config.data));\r\n } catch (error) {\r\n console.error(\"Unable to stringify request json data\");\r\n }\r\n \r\n \r\n }\r\n return requestConfig;\r\n },\r\n error => Promise.reject(error),\r\n );\r\n\r\n // for multiple requests\r\n let isRefreshing = false;\r\n let failedQueue = [];\r\n const processQueue = (error, token = null) => {\r\n failedQueue.forEach((Promise) => {\r\n if (error) {\r\n Promise.reject(error);\r\n } else {\r\n Promise.resolve(token);\r\n }\r\n });\r\n failedQueue = [];\r\n };\r\n\r\n // configuration for automatic use refresh token\r\n\r\n axios.interceptors.response.use(\r\n (response)=>{\r\n if(requestMap.has(response.request.responseURL)){\r\n requestMap.delete(response.request.responseURL);\r\n }\r\n return response;\r\n },\r\n (error) => {\r\n let payloadJson = '';\r\n //console.log(error.request.responseURL);\r\n if(requestMap.has(error.request.responseURL)){\r\n payloadJson = requestMap.get(error.request.responseURL);\r\n requestMap.delete(error.request.responseURL);\r\n }\r\n const originalRequest = error.config;\r\n if (error && error.response && error.response.status === 401 && window.location.pathname !== '/login') {\r\n utils.removeInLocalStorage(AppConfig.ACCESS_TOKEN);\r\n utils.removeInLocalStorage(AppConfig.REFRESH_TOKEN);\r\n Swal.fire({\r\n icon: 'warning',\r\n title: 'Login Required',\r\n text: 'Your login do not have access to this resource or your login has expired. Please re-login and try again.',\r\n confirmButtonText: 'OK',\r\n }).then(() => {\r\n window.location.href = '/login';\r\n });\r\n }\r\n else if (error && error.response && error.response.status === 401 && window.location.pathname !== '/login' && !originalRequest._retry) {\r\n if (originalRequest.url.indexOf('/Login/RefreshToken') !== -1) {\r\n utils.removeInLocalStorage(AppConfig.ACCESS_TOKEN);\r\n utils.removeInLocalStorage(AppConfig.REFRESH_TOKEN);\r\n window.location.href = '/login';\r\n } else if (originalRequest.url.toLowerCase().indexOf('/login/login') === -1) {\r\n if (isRefreshing) {\r\n return new Promise(((resolve, reject) => {\r\n failedQueue.push({ resolve, reject });\r\n })).then((token) => {\r\n originalRequest.headers.Authorization = `Bearer ${token}`;\r\n return axios(originalRequest);\r\n }).catch(error => error);\r\n }\r\n originalRequest._retry = true;\r\n isRefreshing = true;\r\n // Get the refresh token from local storage\r\n const refreshToken = localStorage.getItem(AppConfig.REFRESH_TOKEN);\r\n return new Promise(((resolve, reject) => {\r\n axios.post('/Login/RefreshToken', { refreshToken: refreshToken })\r\n .then(({ status, data }) => {\r\n if (status && status === 200) {\r\n localStorage.setItem(AppConfig.ACCESS_TOKEN, data[AppConfig.ACCESS_TOKEN_PROP]);\r\n localStorage.setItem(AppConfig.REFRESH_TOKEN, data[AppConfig.REFRESH_TOKEN_PROP]);\r\n //axios.defaults.headers.common.Authorization = `Bearer ${res.data[AppConfig.ACCESS_TOKEN_PROP]}`;\r\n //originalRequest.headers.Authorization = `Bearer ${res.data[AppConfig.ACCESS_TOKEN_PROP]}`;\r\n processQueue(null, data[AppConfig.ACCESS_TOKEN_PROP]);\r\n resolve(axios(originalRequest));\r\n } else {\r\n window.location = '/login';\r\n }\r\n })\r\n .catch((error) => {\r\n processQueue(error, null);\r\n reject(error);\r\n })\r\n .then(() => { isRefreshing = false; });\r\n }));\r\n }\r\n } else if (error && error.response && (error.response.status === 500 || error.response.status === 400 || error.response.status === 405)\r\n && !error.request.responseURL.toLowerCase().endsWith('reporterror')\r\n ) {\r\n // Handle 500 on gloable level\r\n let message = \"An unexpected error has occurred. Technical support has been notified. Please try again later.\";\r\n Swal.fire({\r\n icon: 'error',\r\n position: 'top-end',\r\n title: 'Internal Server Error',\r\n text: message,\r\n timer: 10000,\r\n toast: true,\r\n timerProgressBar: true,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n footer: 'If issue remains, please contact DDS office.'\r\n })\r\n \r\n let errorReportPayload = {\r\n errorCode: error.response.status.toString(),\r\n errorRequestURL: error.request.responseURL,\r\n errorPayloadJSON: payloadJson,\r\n };\r\n // sendout error report when render process is not that busy.\r\n setTimeout(() => {\r\n reportError(errorReportPayload);\r\n }, 0);\r\n\r\n }\r\n return Promise.reject(error);\r\n },\r\n );\r\n }\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {\r\n Container,\r\n Form,\r\n Grid,\r\n Header,\r\n List,\r\n Message,\r\n Segment,\r\n Input,\r\n} from \"semantic-ui-react\";\r\nimport { utils } from \"../../../helpers/utils\";\r\n\r\nexport function Dashboard() {\r\n const [isEmploymentCoordinator, setIsEmploymentCoordinator] =\r\n useState(utils.isEmploymentCoordinator() || utils.isCoordinatorSupervisor());\r\n return (\r\n \r\n
\r\n Dashboard\r\n
\r\n
\r\n {isEmploymentCoordinator && <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Employment Coordinator Meeting Request\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 {!isEmploymentCoordinator && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Employer Spotlight Presentation\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Employment Coordinator Meeting Request\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Job Seeker Workshops\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manage CASAS Testing\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 Providers\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manage DSS VRR Website Users\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Manage Home Page Sections\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Employment Opportunities\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","import axios, { AxiosResponse } from 'axios';\r\nimport { GetProviderListPayload } from '../Components/Pages/Providers/useProvidersList'\r\n\r\nexport async function getProviderList(payload: GetProviderListPayload, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 5,\r\n dataTableData: [\r\n {\r\n providerId: 1,\r\n providerName: 'Provider1',\r\n providerType: 'Vendor',\r\n providerCredential: 'Type A, Type B, Type C',\r\n trainingOffered: 'ServSafe'\r\n },\r\n {\r\n providerId: 2,\r\n providerName: 'Provider2',\r\n providerType: 'Vendor',\r\n providerCredential: 'Type A, Type B, Type C',\r\n trainingOffered: 'ServSafe'\r\n },\r\n {\r\n providerId: 3,\r\n providerName: 'Provider3',\r\n providerType: 'Vendor',\r\n providerCredential: 'Type A, Type B, Type C',\r\n trainingOffered: 'ServSafe'\r\n },\r\n {\r\n providerId: 4,\r\n providerName: 'Provider4',\r\n providerType: 'Vendor',\r\n providerCredential: 'Type A, Type B, Type C',\r\n trainingOffered: 'ServSafe'\r\n },\r\n {\r\n providerId: 5,\r\n providerName: 'Provider5',\r\n providerType: 'Vendor',\r\n providerCredential: 'Type A, Type B, Type C',\r\n trainingOffered: 'ServSafe'\r\n },\r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Provider/SearchProviders`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getMasterForProviderList( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetMaster`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getFullMasterForProviderList( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetFullMaster`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getProviderById( providerId:number, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/provider/${providerId}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getProviderCategories( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetProviderCategories`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getNoneEmptyProviderCategories( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetNoneEmptyProviderCategories`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function updateProvider( payload: any, isCreate:boolean, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n if(isCreate){\r\n let result = await axios.post(`/Provider/CreateProvider`,payload);\r\n return result;\r\n }else {\r\n let result = await axios.post(`/Provider/UpdateProvider`,payload);\r\n return result;\r\n }\r\n \r\n }\r\n}\r\n\r\nexport async function deleteProviderById( providerId:number, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.delete(`/provider/${providerId}`);\r\n return result;\r\n }\r\n}","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { DropdownProps } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\nimport { Link } from 'react-router-dom';\r\nimport { getProviderList, getMasterForProviderList } from '../../../Services/ProviderServices';\r\nimport { AxiosResponse } from 'axios';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\nimport { ProviderFormMasterData } from './useProviderForm';\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\n\r\nexport interface ColumnDefinition {\r\n columnName: string;\r\n sortable: boolean;\r\n columnHeader: string;\r\n decorator?: Function;\r\n}\r\n\r\nexport interface GetProviderListPayload {\r\n sortColumnName: string | null;\r\n isDesc: boolean;\r\n searchText: string | null;\r\n pageSize: number;\r\n currentPage: number;\r\n providerCategoryId?: number;\r\n providerTypeId?:number;\r\n providerCredentialIds?:number[];\r\n providerTrainingIds?:number[];\r\n}\r\n\r\nexport interface GetProviderListDataRow {\r\n providerId: number;\r\n providerCategoryId: number;\r\n providerName: string;\r\n providerType: string;\r\n providerCredential: string;\r\n trainingOffered: string;\r\n contact?: string;\r\n email?: string;\r\n phone?: string;\r\n websiteURL?: string;\r\n address? : string;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface GetProviderListData {\r\n totalRecords: number;\r\n dataTableData: GetProviderListDataRow[];\r\n}\r\n\r\nexport interface MasterDataItem {\r\n displayName: string;\r\n iconName?:string;\r\n id:number;\r\n}\r\n\r\nexport interface MasterData {\r\n providerCategorys: PageSizeOption[],\r\n providerCredentials: PageSizeOption[],\r\n providerTranings: PageSizeOption[],\r\n providerTypes: PageSizeOption[],\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n providerCategorys: MasterDataItem[],\r\n providerCredentials: MasterDataItem[],\r\n providerTranings: MasterDataItem[],\r\n providerTypes: MasterDataItem[],\r\n}\r\n\r\nexport function useProvidersList(initialProviderCategoryId:number = 0 ,saveState:boolean = true, statePropName?:string) {\r\n const columns: ColumnDefinition[] = [\r\n {\r\n columnName: 'providerName',\r\n sortable: false,\r\n columnHeader: 'Provider',\r\n decorator: (row: GetProviderListDataRow, data: GetProviderListDataRow[], rowIndex: number, colIndex: number) => {\r\n return ({row.providerName});\r\n },\r\n },\r\n {\r\n columnName: 'providerCategoryId',\r\n sortable: false,\r\n columnHeader: 'Provider Category',\r\n decorator: (row: GetProviderListDataRow, data: GetProviderListDataRow[], rowIndex: number, colIndex: number) => {\r\n if(masterData){\r\n return ({categoryIdMap.get(row.providerCategoryId) || ''});\r\n }else {\r\n return \"\";\r\n }\r\n },\r\n },\r\n {\r\n columnName: 'providerType',\r\n sortable: false,\r\n columnHeader: 'Provider Type',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'providerCredential',\r\n sortable: false,\r\n columnHeader: 'Credential',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'trainingOffered',\r\n sortable: false,\r\n columnHeader: 'Training Offered',\r\n decorator: undefined,\r\n },\r\n ];\r\n const pageSizeOptions = useMemo(() => {\r\n return [\r\n { key: 3, value: 3, text: '3' },\r\n { key: 5, value: 5, text: '5' },\r\n { key: 10, value: 10, text: '10' },\r\n { key: 15, value: 15, text: '15' },\r\n { key: 20, value: 20, text: '20' },\r\n { key: 50, value: 50, text: '50' },\r\n { key: 100, value: 100, text: '100' }\r\n ];\r\n }, []);\r\n\r\n const searchRef = useRef(null);\r\n const [masterData, setMasterData] = useState(null);\r\n const [providerCategoryId, setProviderCategoryId] = useState(0);\r\n const [providerCredentialIds, setProviderCredentialIds] = useState([]);\r\n const [providerTraningsIds, setProviderTraningIds] = useState([]);\r\n const [providerTypeId, setProviderTypeId] = useState(0);\r\n const [pageSize, setPageSize] = useState(10);\r\n const [totalRecords, setTotalRecords] = useState(0);\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [sortColumnName, setSortColumnName] = useState(null);\r\n const [isDesc, setIsDesc] = useState(true);\r\n const [searchText, setSearchText] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [categoryIdMap, setCategoryIdMap] = useState>(new Map());\r\n\r\n const providerCategoryText = getProviderCategoryText(providerCategoryId, masterData? masterData.providerCategorys : []);\r\n\r\n function getProviderCategoryText(providerCategoryId:number, providerCategoriesMaster: PageSizeOption[] ) {\r\n let result = '';\r\n providerCategoriesMaster.forEach((item)=>{\r\n if(item.value === providerCategoryId){\r\n result = item.text;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n const handlePageSizeChange: ((event: React.SyntheticEvent, data: DropdownProps) => void) | undefined = (event, data) => {\r\n setPageSize(data.value as number);\r\n const payload: GetProviderListPayload = {\r\n pageSize: data.value as number,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: currentPage,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handlePaginationChange: (newPageNumber: number) => void = (newPageNumber) => {\r\n setCurrentPage(newPageNumber);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: newPageNumber,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleProviderCategoryChange: (newProviderCategoryId: number) => void = (newProviderCategoryId) => {\r\n setProviderCategoryId(newProviderCategoryId);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: 1,\r\n providerCategoryId: newProviderCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleProviderCredentialsChange: (newProviderCredentialIds: number[]) => void = (newProviderCredentialIds) => {\r\n setProviderCredentialIds(newProviderCredentialIds);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: 1,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: newProviderCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleProviderTrainingsChange: (newProviderTraingIds: number[]) => void = (newProviderTraingIds) => {\r\n setProviderTraningIds(newProviderTraingIds);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: 1,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: newProviderTraingIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleProviderTypeChange: (newProviderTypeId: number) => void = (newProviderTypeId) => {\r\n setProviderTypeId(newProviderTypeId);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: 1,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: newProviderTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSortChange: (newSortColumnName: string) => void = (newSortColumnName) => {\r\n let newIsDesc = isDesc;\r\n let newColumnName = sortColumnName;\r\n if (newSortColumnName === sortColumnName) {\r\n newIsDesc = !newIsDesc;\r\n } else {\r\n newColumnName = newSortColumnName;\r\n }\r\n\r\n setIsDesc(newIsDesc);\r\n setSortColumnName(newColumnName);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: newColumnName,\r\n isDesc: newIsDesc,\r\n searchText: searchText,\r\n currentPage: 1,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSearchChangeFn: (event: React.SyntheticEvent) => void = (event) => {\r\n //setSearchText((event.target as HTMLInputElement).value);\r\n setSearchText((event.target as HTMLInputElement).value);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: (event.target as HTMLInputElement).value,\r\n currentPage: 1,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleSearchChange = _.debounce(handleSearchChangeFn, 1000);\r\n\r\n const resetSearch: (event: React.SyntheticEvent) => void = (event) => {\r\n if (searchRef.current !== null) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setCurrentPage(1);\r\n const payload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: null,\r\n currentPage: 1,\r\n providerCategoryId: providerCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const _fetchData: (overwritePayload?: GetProviderListPayload) => void = (overwritePayload) => {\r\n const defaultPayload: GetProviderListPayload = {\r\n pageSize: pageSize,\r\n sortColumnName: sortColumnName,\r\n isDesc: isDesc,\r\n searchText: searchText,\r\n currentPage: currentPage,\r\n providerCategoryId: initialProviderCategoryId,\r\n providerCredentialIds: providerCredentialIds,\r\n providerTrainingIds: providerTraningsIds,\r\n providerTypeId: providerTypeId,\r\n };\r\n let payload: GetProviderListPayload = defaultPayload;\r\n if (overwritePayload !== undefined) {\r\n payload = overwritePayload;\r\n }\r\n //console.log(payload);\r\n setIsLoading(true);\r\n if(saveState){\r\n _saveState(payload);\r\n }\r\n getProviderList(payload, false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as GetProviderListData;\r\n setData(data.dataTableData);\r\n setTotalRecords(data.totalRecords);\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n setIsLoading(true);\r\n getMasterForProviderList(false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response && response.status === 200 && response.data) {\r\n let data = response.data as MasterDataResponse;\r\n let newMasterData:MasterData = {\r\n providerCategorys: [],\r\n providerCredentials: [],\r\n providerTranings: [],\r\n providerTypes: []\r\n };\r\n \r\n let providerCategoriesOptions: PageSizeOption[] = data.providerCategorys.map((item,index)=>{\r\n categoryIdMap.set(item.id, item.displayName);\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.displayName\r\n }\r\n });\r\n providerCategoriesOptions.unshift({key: -1,value:0,text:'All'});\r\n \r\n let providerCredentialsOptions: PageSizeOption[] = data.providerCredentials.map((item,index)=>{\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.displayName\r\n }\r\n });\r\n \r\n let providerTrainingOptions: PageSizeOption[] = data.providerTranings.map((item,index)=>{\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.displayName\r\n }\r\n });\r\n \r\n let providerTypesOptions: PageSizeOption[] = data.providerTypes.map((item,index)=>{\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.displayName\r\n }\r\n });\r\n providerTypesOptions.unshift({key: -1,value:0,text:'All'});\r\n\r\n newMasterData.providerCategorys= providerCategoriesOptions;\r\n newMasterData.providerCredentials= providerCredentialsOptions;\r\n newMasterData.providerTranings= providerTrainingOptions;\r\n newMasterData.providerTypes= providerTypesOptions;\r\n setMasterData(newMasterData);\r\n\r\n }\r\n callBack();\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _saveState = (currentPayload: GetProviderListPayload) => {\r\n let stateName = statePropName || AppConfig.PROVIDER_LIST_STATE;\r\n if(saveState){\r\n utils.updateInLocalStorage(stateName, JSON.stringify(currentPayload));\r\n }\r\n }\r\n\r\n const _loadState = () => {\r\n let stateName = statePropName || AppConfig.PROVIDER_LIST_STATE;\r\n let stateString: string | null = utils.getLocalStorageItem(stateName);\r\n if (stateString && saveState) {\r\n return JSON.parse(stateString) as GetProviderListPayload;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n _fetchMasterData(() => {\r\n let priviousState: GetProviderListPayload | null = _loadState();\r\n \r\n if(initialProviderCategoryId !== 0){\r\n setProviderCategoryId(initialProviderCategoryId);\r\n }\r\n\r\n if (priviousState && saveState) {\r\n _fetchData(priviousState);\r\n setSortColumnName(priviousState.sortColumnName);\r\n setIsDesc(priviousState.isDesc);\r\n setSearchText(priviousState.searchText);\r\n setPageSize(priviousState.pageSize);\r\n setCurrentPage(priviousState.currentPage);\r\n setProviderCategoryId(priviousState.providerCategoryId || 0);\r\n setProviderCredentialIds(priviousState.providerCredentialIds || []);\r\n setProviderTraningIds(priviousState.providerTrainingIds || []);\r\n setProviderTypeId(priviousState.providerTypeId || 0);\r\n if (searchRef.current) {\r\n searchRef.current.value = priviousState.searchText || '';\r\n }\r\n } else {\r\n _fetchData();\r\n }\r\n });\r\n\r\n }, []);\r\n\r\n return [pageSize, totalRecords, currentPage,\r\n pageSizeOptions, searchRef, searchText, columns, data, isLoading, isDesc, sortColumnName,\r\n masterData,providerCategoryId,providerCategoryText,providerCredentialIds, providerTraningsIds, providerTypeId,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange,\r\n handleProviderCategoryChange, handleProviderCredentialsChange, handleProviderTrainingsChange, handleProviderTypeChange] as const;\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Container, Table, Menu, Header, Icon, Breadcrumb, Button, Segment, Dropdown, Grid } from 'semantic-ui-react';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { useProvidersList, ColumnDefinition } from './useProvidersList';\r\n\r\nexport function ProvidersList() {\r\n const inputClassName = 'ui icon input fluid search-input';\r\n const history = useHistory();\r\n const [pageSize, totalRecords, currentPage, pageSizeOptions, searchRef, searchText,\r\n columns, data, isLoading, isDesc, sortColumnName,\r\n masterData, providerCategoryId, providerCategoryText, providerCredentialIds, providerTraningsIds, providerTypeId,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange,\r\n handleProviderCategoryChange, handleProviderCredentialsChange, handleProviderTrainingsChange, handleProviderTypeChange] = useProvidersList();\r\n\r\n const totalPages: number = Math.ceil(totalRecords / pageSize);\r\n const paginationArray: (number | string)[] = utils.getPaginationArray(totalPages, currentPage);\r\n\r\n const handleCreateNewProvider = () => {\r\n history.push('/createProvider');\r\n };\r\n\r\n\r\n return (\r\n \r\n
\r\n
Providers
\r\n \r\n
\r\n
\r\n \r\n Home\r\n \r\n Providers\r\n \r\n\r\n \r\n \r\n \r\n
\r\n {\r\n searchText && \r\n }\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {\r\n handleProviderCategoryChange(data.value as number);\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleProviderTypeChange(data.value as number);\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleProviderCredentialsChange(data.value as number[]);\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleProviderTrainingsChange(data.value as number[]);\r\n }}\r\n />\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {\r\n columns.map((column: ColumnDefinition, index: number) => {\r\n return {\r\n if (column.sortable) {\r\n handleSortChange(column.columnName);\r\n }\r\n }}\r\n >\r\n
{column.columnHeader}\r\n {\r\n column.sortable &&\r\n \r\n }\r\n
\r\n
\r\n })\r\n }\r\n
\r\n
\r\n\r\n \r\n {\r\n data.length === 0 &&\r\n \r\n No data avaliable\r\n \r\n }\r\n {\r\n data.length > 0 &&\r\n data.map((row, rowIndex) => {\r\n return (\r\n \r\n {\r\n columns.map((col, colIndex) => {\r\n if (col.decorator) {\r\n return (\r\n {\r\n col.decorator(row, data, rowIndex, colIndex)\r\n }\r\n );\r\n } else {\r\n return {row[col.columnName]}\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 \r\n \r\n
\r\n \r\n Showing {(currentPage - 1) * pageSize + 1} to{\" \"}\r\n {currentPage * pageSize > totalRecords\r\n ? totalRecords\r\n : currentPage * pageSize}{\" \"}\r\n of\r\n {\" \"} {totalRecords} entries{\", \"}\r\n \r\n \r\n records per page\r\n
\r\n \r\n {\r\n handlePaginationChange(currentPage - 1);\r\n }}\r\n >\r\n \r\n \r\n {\r\n paginationArray.map((item: number | string, index: number) => {\r\n if (typeof item === 'string') {\r\n return {item}\r\n } else {\r\n return {\r\n handlePaginationChange(item as number);\r\n }}>{item}\r\n }\r\n })\r\n }\r\n = totalPages}\r\n onClick={(event) => {\r\n handlePaginationChange(currentPage + 1);\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}","import React, { Component, Fragment, useEffect, useState, useRef } from \"react\";\r\nimport { Link, useParams, useHistory } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport Swal from \"sweetalert2\";\r\nimport { login } from \"../../../Services/LoginServices\";\r\nimport {\r\n getFullMasterForProviderList,\r\n updateProvider,\r\n getProviderById,\r\n deleteProviderById,\r\n} from \"../../../Services/ProviderServices\";\r\nimport { utils } from \"../../../helpers/utils\";\r\nimport { AxiosResponse } from \"axios\";\r\n\r\nexport type ProviderFormValues = {\r\n [key: string]: any;\r\n};\r\n\r\nexport type ProviderFormRef = {\r\n [key: string]: React.RefObject;\r\n};\r\n\r\nexport type ProviderFormErrors = {\r\n [key: string]: string;\r\n};\r\n\r\nexport type ProviderFormTouched = {\r\n [key: string]: boolean;\r\n};\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n};\r\n\r\nexport type ProviderFormMasterData = {\r\n [key: string]: {\r\n id: number;\r\n displayName: string;\r\n iconName?: string | null;\r\n }[];\r\n};\r\n\r\nexport function useProviderForm(isCreate: boolean) {\r\n const history = useHistory();\r\n\r\n let { proivderId } = useParams<{ proivderId: string }>();\r\n\r\n useEffect(() => {\r\n fetchData(isCreate !== undefined ? isCreate : true);\r\n }, []);\r\n\r\n async function fetchData(isCreate: boolean, providerId?: number) {\r\n try {\r\n if (isCreate) {\r\n getFullMasterForProviderList().then((response) => {\r\n if (response.status === 200 && response.data) {\r\n let result: any = {};\r\n Object.keys(response.data as ProviderFormMasterData).forEach(\r\n (key) => {\r\n result[key] = (response.data as ProviderFormMasterData)[\r\n key\r\n ].map((item) => {\r\n return {\r\n text: item.displayName,\r\n value: item.id,\r\n key: item.id,\r\n };\r\n });\r\n }\r\n );\r\n setMasterData(result as ProviderFormMasterData);\r\n } else {\r\n throw new Error(\"Unable to fetch master data!\");\r\n }\r\n });\r\n } else {\r\n getFullMasterForProviderList().then((response) => {\r\n if (response.status === 200 && response.data) {\r\n let result: any = {};\r\n Object.keys(response.data as ProviderFormMasterData).forEach(\r\n (key) => {\r\n result[key] = (response.data as ProviderFormMasterData)[\r\n key\r\n ].map((item) => {\r\n return {\r\n text: item.displayName,\r\n value: item.id,\r\n key: item.id,\r\n };\r\n });\r\n }\r\n );\r\n setMasterData(result as ProviderFormMasterData);\r\n } else {\r\n throw new Error(\"Unable to fetch master data!\");\r\n }\r\n });\r\n // also get provider data\r\n if (proivderId) {\r\n const id: number = parseInt(proivderId);\r\n getProviderById(id, false).then((response) => {\r\n if (response && response.status === 200 && response.data) {\r\n console.log(response.data);\r\n console.log(values);\r\n let newValues: ProviderFormValues = _.cloneDeep(\r\n response.data\r\n ) as ProviderFormValues;\r\n delete newValues.providerId;\r\n newValues.providerPhone = utils.formatPhoneNumber(\r\n newValues.providerPhone\r\n );\r\n setValues(newValues);\r\n } else {\r\n throw new Error(\"Unable to fetch provider data!\");\r\n }\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n text: `Unable to get master data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: \"#1678c2\",\r\n }).then(() => {});\r\n }\r\n }\r\n\r\n const defaultValues: ProviderFormValues = {\r\n categoryId: 0,\r\n providerName: \"\",\r\n websiteURL: \"\",\r\n providerTypeId: 1,\r\n credentialIds: [],\r\n trainingOfferIds: [],\r\n providerAddress: \"\",\r\n providerContact: \"\",\r\n providerPhone: \"\",\r\n providerEmail: \"\",\r\n };\r\n const validations = {\r\n categoryId: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.categoryId) {\r\n error = \"Please select a category\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerName: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.providerName) {\r\n error = \"Please enter provider name\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n websiteURL: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n values.websiteURL &&\r\n !(\r\n values.websiteURL.startsWith(\"http://\") ||\r\n values.websiteURL.startsWith(\"https://\")\r\n )\r\n ) {\r\n error =\r\n 'Please enter a valid URL which start with \"http://\" or \"https://\"';\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerTypeId: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.providerTypeId) {\r\n error = \"Please select provider type\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n credentialIds: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.credentialIds && values.credentialIds.length > 0)) {\r\n error = \"Please select at least one credential\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n trainingOfferIds: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n !(values.trainingOfferIds && values.trainingOfferIds.length > 0)\r\n ) {\r\n error = \"Please select at least one training option\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerAddress: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerContact: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerPhone: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n values.providerPhone &&\r\n !utils.isValidPhone(values.providerPhone)\r\n ) {\r\n error =\r\n \"Please enter a valid phone number which conains at least 10 digits in any format\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n providerEmail: async function (values: ProviderFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n values.providerEmail &&\r\n isValidEmail(values.providerEmail) !== true\r\n ) {\r\n error = \"Please provide a valid email\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n };\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n //const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const debouncedValidateForm = validateForm;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n const [masterData, setMasterData] = useState(\r\n null\r\n );\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: ProviderFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: ProviderFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: ProviderFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n function handleDelete() {\r\n Swal.fire({\r\n text: \"Are you sure to delete this provider?\",\r\n title: \"Confirm Delete Provider\",\r\n icon: \"warning\",\r\n showCancelButton: true,\r\n cancelButtonText: \"Cancel\",\r\n showConfirmButton: true,\r\n confirmButtonText: \"Delete\",\r\n confirmButtonColor: \"red\",\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n setIsLoading(true);\r\n deleteProviderById(parseInt(proivderId)).then(\r\n (res) => {\r\n setIsLoading(false);\r\n if (res && res.status === 200) {\r\n if ((res.data as any).isDeleted === true) {\r\n Swal.fire({\r\n icon: \"success\",\r\n title: \"Provider deleted!\",\r\n toast: true,\r\n position: \"top-end\",\r\n timerProgressBar: true,\r\n timer: 5000,\r\n showConfirmButton: false,\r\n });\r\n history.push(\"/providers\");\r\n }\r\n } else {\r\n throw new Error(\"Failed to delete provider.\");\r\n }\r\n },\r\n (error) => {\r\n setIsLoading(false);\r\n throw new Error(\"Failed to delete provider.\");\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n function saveData(viewModel: ProviderFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n newData.providerId = isCreate ? 0 : parseInt(proivderId);\r\n newData.providerPhone = utils.formatPhoneNumber(newData.providerPhone);\r\n updateProvider(newData, isCreate).then(\r\n (res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) {\r\n Swal.fire({\r\n icon: \"success\",\r\n title:\r\n \"Provider \" +\r\n (isCreate ? \"created\" : \"updated\") +\r\n \" successfully\",\r\n text: \"\",\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: \"#1678c2\",\r\n }).then(() => {\r\n history.push(\"/providers\");\r\n });\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n setErrorMessage(\"Invalid user name or password.\");\r\n } else {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n text: `${\r\n res && res.data ? res.data : \"No detail reason available.\"\r\n }`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: \"#1678c2\",\r\n }).then(() => {});\r\n }\r\n },\r\n (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (\r\n error.response &&\r\n error.response.data &&\r\n error.response.status === 500\r\n ) {\r\n let footer = \"\";\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n text: `${\r\n error.response.data\r\n ? error.response.data\r\n : \"No detail reason available\"\r\n }`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }).then(() => {});\r\n }\r\n }\r\n );\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(\r\n values: ProviderFormValues,\r\n validations: ValidtionFunctions,\r\n fieldName: string | null = null\r\n ) {\r\n let newErrors: ProviderFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(\r\n () => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n },\r\n (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }\r\n );\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(\r\n () => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n },\r\n (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n function handleBlur(fieldName: string) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n };\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n if (fieldName === \"providerPhone\") {\r\n if (newValue && utils.isValidPhone(newValue)) {\r\n newValue = utils.formatPhoneNumber(newValue);\r\n newValue = utils.formatPhoneNumber(newValue);\r\n }\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n function isValidEmail(testTarget: string) {\r\n let myReg = /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}\\b/gi;\r\n return myReg.test(testTarget);\r\n }\r\n\r\n return [\r\n values,\r\n masterData,\r\n errors,\r\n touched,\r\n isLoading,\r\n isSubmitting,\r\n isValid,\r\n errorMessage,\r\n registerRef,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n handleDelete,\r\n ] as const;\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Container, Form, Checkbox, Header, Icon, Breadcrumb, Button, Grid, Dropdown, Radio, InputOnChangeData, DropdownItemProps, DropdownProps } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useProviderForm } from './useProviderForm';\r\n\r\nexport function CreateProvider() {\r\n\r\n let [values,masterData, errors, touched, isLoading, isSubmitting, isValid,errorMessage, registerRef, handleChange, handleBlur, handleSubmit] = useProviderForm(true);\r\n\r\n const history = useHistory();\r\n\r\n return \r\n
Create Provider
\r\n
\r\n \r\n Home\r\n \r\n Providers\r\n \r\n Create Provider\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n handleChange(data.value, 'categoryId');\r\n }}\r\n error={!(!errors.categoryId || !touched.categoryId) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.categoryId || !touched.categoryId) &&\r\n
{errors.categoryId}
\r\n }\r\n {\r\n handleChange(data.value, 'providerName');\r\n }}\r\n onBlur={\r\n () => {handleBlur('providerName'); }\r\n }\r\n error={!(!errors.providerName || !touched.providerName) ? true : false}\r\n />\r\n {\r\n !(!errors.providerName || !touched.providerName) &&\r\n
{errors.providerName}
\r\n }\r\n {\r\n handleChange(data.value, 'websiteURL');\r\n }}\r\n onBlur={\r\n () => {handleBlur('websiteURL'); }\r\n }\r\n error={!(!errors.websiteURL || !touched.websiteURL) ? true : false}\r\n \r\n />\r\n {\r\n !(!errors.websiteURL || !touched.websiteURL) &&\r\n
{errors.websiteURL}
\r\n }\r\n \r\n \r\n {\r\n masterData && masterData.providerTypes.map((item: DropdownItemProps, index: number)=>{\r\n return ({\r\n let newValue = (data as {value: any}).value;\r\n handleChange(newValue, 'providerTypeId');\r\n }}\r\n error={!(!errors.providerTypeId || !touched.providerTypeId) ? true : false}\r\n />);\r\n })\r\n }\r\n \r\n {\r\n !(!errors.providerTypeId || !touched.providerTypeId) &&\r\n
{errors.providerTypeId}
\r\n }\r\n \r\n \r\n {\r\n handleChange(data.value, 'credentialIds');\r\n }}\r\n onClose = {\r\n ()=>{handleBlur('credentialIds')}\r\n }\r\n error={!(!errors.credentialIds || !touched.credentialIds) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.credentialIds || !touched.credentialIds) &&\r\n
{errors.credentialIds}
\r\n }\r\n \r\n \r\n {\r\n let newValue = (data as {value: any}).value;\r\n handleChange(newValue, 'trainingOfferIds');\r\n }}\r\n onClose = {\r\n ()=>{handleBlur('trainingOfferIds')}\r\n }\r\n error={!(!errors.trainingOfferIds || !touched.trainingOfferIds) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.trainingOfferIds || !touched.trainingOfferIds) &&\r\n
{errors.trainingOfferIds}
\r\n }\r\n {\r\n handleChange(data.value, 'providerAddress');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerAddress') }\r\n }\r\n error={!(!errors.providerAddress || !touched.providerAddress) ? true : false}\r\n />\r\n {\r\n !(!errors.providerAddress || !touched.providerAddress) &&\r\n
{errors.providerAddress}
\r\n }\r\n {\r\n handleChange(data.value, 'providerContact');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerContact') }\r\n }\r\n error={!(!errors.providerContact || !touched.providerContact) ? true : false}\r\n />\r\n {\r\n !(!errors.providerContact || !touched.providerContact) &&\r\n
{errors.providerContact}
\r\n }\r\n {\r\n handleChange(data.value, 'providerPhone');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerPhone') }\r\n }\r\n error={!(!errors.providerPhone || !touched.providerPhone) ? true : false}\r\n />\r\n {\r\n !(!errors.providerPhone || !touched.providerPhone) &&\r\n
{errors.providerPhone}
\r\n }\r\n {\r\n handleChange(data.value, 'providerEmail');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerEmail') }\r\n }\r\n error={!(!errors.providerEmail || !touched.providerEmail) ? true : false}\r\n />\r\n {\r\n !(!errors.providerEmail || !touched.providerEmail) &&\r\n
{errors.providerEmail}
\r\n }\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 { Container, Form, Checkbox, Header, Icon, Breadcrumb, Button, Grid, Dropdown, Radio, InputOnChangeData, DropdownItemProps, DropdownProps } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useProviderForm } from './useProviderForm';\r\n\r\nexport function EditProvider() {\r\n\r\n let [values,masterData, errors, touched, isLoading, isSubmitting, isValid,errorMessage, registerRef, handleChange, handleBlur, handleSubmit, handleDelete] = useProviderForm(false);\r\n\r\n const history = useHistory();\r\n\r\n return \r\n
Edit Provider
\r\n
\r\n \r\n Home\r\n \r\n Providers\r\n \r\n Edit Provider\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {\r\n handleChange(data.value, 'categoryId');\r\n }}\r\n error={!(!errors.categoryId || !touched.categoryId) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.categoryId || !touched.categoryId) &&\r\n
{errors.categoryId}
\r\n }\r\n {\r\n handleChange(data.value, 'providerName');\r\n }}\r\n onBlur={\r\n () => {handleBlur('providerName'); }\r\n }\r\n error={!(!errors.providerName || !touched.providerName) ? true : false}\r\n />\r\n {\r\n !(!errors.providerName || !touched.providerName) &&\r\n
{errors.providerName}
\r\n }\r\n {\r\n handleChange(data.value, 'websiteURL');\r\n }}\r\n onBlur={\r\n () => {handleBlur('websiteURL'); }\r\n }\r\n error={!(!errors.websiteURL || !touched.websiteURL) ? true : false}\r\n \r\n />\r\n {\r\n !(!errors.websiteURL || !touched.websiteURL) &&\r\n
{errors.websiteURL}
\r\n }\r\n \r\n \r\n {\r\n masterData && masterData.providerTypes.map((item: DropdownItemProps, index: number)=>{\r\n return ({\r\n let newValue = (data as {value: any}).value;\r\n handleChange(newValue, 'providerTypeId');\r\n }}\r\n error={!(!errors.providerTypeId || !touched.providerTypeId) ? true : false}\r\n />);\r\n })\r\n }\r\n \r\n {\r\n !(!errors.providerTypeId || !touched.providerTypeId) &&\r\n
{errors.providerTypeId}
\r\n }\r\n \r\n \r\n {\r\n handleChange(data.value, 'credentialIds');\r\n }}\r\n onClose = {\r\n ()=>{handleBlur('credentialIds')}\r\n }\r\n error={!(!errors.credentialIds || !touched.credentialIds) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.credentialIds || !touched.credentialIds) &&\r\n
{errors.credentialIds}
\r\n }\r\n \r\n \r\n {\r\n let newValue = (data as {value: any}).value;\r\n handleChange(newValue, 'trainingOfferIds');\r\n }}\r\n onClose = {\r\n ()=>{handleBlur('trainingOfferIds')}\r\n }\r\n error={!(!errors.trainingOfferIds || !touched.trainingOfferIds) ? true : false}\r\n />\r\n \r\n {\r\n !(!errors.trainingOfferIds || !touched.trainingOfferIds) &&\r\n
{errors.trainingOfferIds}
\r\n }\r\n {\r\n handleChange(data.value, 'providerAddress');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerAddress') }\r\n }\r\n error={!(!errors.providerAddress || !touched.providerAddress) ? true : false}\r\n />\r\n {\r\n !(!errors.providerAddress || !touched.providerAddress) &&\r\n
{errors.providerAddress}
\r\n }\r\n {\r\n handleChange(data.value, 'providerContact');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerContact') }\r\n }\r\n error={!(!errors.providerContact || !touched.providerContact) ? true : false}\r\n />\r\n {\r\n !(!errors.providerContact || !touched.providerContact) &&\r\n
{errors.providerContact}
\r\n }\r\n {\r\n handleChange(data.value, 'providerPhone');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerPhone') }\r\n }\r\n error={!(!errors.providerPhone || !touched.providerPhone) ? true : false}\r\n />\r\n {\r\n !(!errors.providerPhone || !touched.providerPhone) &&\r\n
{errors.providerPhone}
\r\n }\r\n {\r\n handleChange(data.value, 'providerEmail');\r\n }}\r\n onBlur={\r\n () => { handleBlur('providerEmail') }\r\n }\r\n error={!(!errors.providerEmail || !touched.providerEmail) ? true : false}\r\n />\r\n {\r\n !(!errors.providerEmail || !touched.providerEmail) &&\r\n
{errors.providerEmail}
\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}","import axios from 'axios';\r\n\r\nexport async function getIconListList( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Admin/GetIconsList`);\r\n return result;\r\n }\r\n}\r\n\r\n\r\n\r\nexport async function getAllHomepageSections( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Admin/GetHomepageSections`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getPublicHomepageSections( mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Public/GetHomepageSections`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getHomepageSectionById(id: number | string, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Admin/GetHomepageSection/${id}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function deleteHomepageSectionById(id: number | string, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Admin/DeleteHomepageSection/${id}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function saveHomepageSection(payload:any, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Admin/SaveHomepageSection`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function SaveHomepageSectionDisplayOrder(payload:any, mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n somethingHere: \"no, nothing just test data\"\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 1000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Admin/SaveHomepageSectionDisplayOrder`, payload);\r\n return result;\r\n }\r\n}\r\n\r\n","import React, { Component, Fragment, useEffect, useState, useRef } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport _ from 'lodash';\r\nimport Swal from 'sweetalert2';\r\nimport { changePassword } from '../../../Services/LoginServices';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { userRole } from '../../../Constants/userRoles';\r\nimport jwtDecode from 'jwt-decode';\r\nimport { User } from '../../../Types/User';\r\n\r\nexport type ChangePasswordFormValues = {\r\n [key: string]: any;\r\n}\r\n\r\nexport type ChangePasswordFormRef = {\r\n [key: string]: React.RefObject\r\n}\r\n\r\nexport type ChangePasswordFormErrors = {\r\n [key: string]: string;\r\n}\r\n\r\nexport type ChangePasswordFormTouched = {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n}\r\n\r\nexport interface LocationState {\r\n from: {\r\n pathname: string;\r\n };\r\n }\r\n \r\n\r\n\r\nexport function useChangePasswordForm(closePopup: Function) {\r\n\r\n let history = useHistory();\r\n let location = useLocation();\r\n \r\n let { from } = location.state || { from: { pathname: \"/\" } };\r\n const defaultValues: ChangePasswordFormValues = {\r\n currentPassword: '',\r\n newPassword: '',\r\n confirmPassword:'',\r\n };\r\n const validations = {\r\n currentPassword: async function (values: ChangePasswordFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.currentPassword) {\r\n error = 'Please enter your current password';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n \r\n newPassword: async function (values: ChangePasswordFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.newPassword) {\r\n error = 'Please enter your new password';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n confirmPassword: async function (values: ChangePasswordFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.newPassword === values.confirmPassword)) {\r\n error = 'Two password does not match!';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n \r\n\r\n }\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: ChangePasswordFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: ChangePasswordFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: ChangePasswordFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n function saveData(viewModel: ChangePasswordFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n delete newData.confirmPassword;\r\n \r\n //console.log(parms);\r\n changePassword(newData, false).then((res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) { \r\n //console.log(res);\r\n if(res.data && res.data.succeeded === false){\r\n setIsValid(false);\r\n setErrorMessage(res.data.reason);\r\n }else if(res.data && res.data.succeeded === true){\r\n toastSuccessMessage('New password set!');\r\n closePopup();\r\n }\r\n\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n setErrorMessage('Invalid link.');\r\n }\r\n else {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${res && res.data ? utils.formatCamelText(res.data) : \"No detail reason available.\"}`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (error.response && error.response.data && error.response.status === 500) {\r\n let footer = '';\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${error.response.data ? utils.formatCamelText(error.response.data) : \"No detail reason available\"}`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(values: ChangePasswordFormValues, validations: ValidtionFunctions, fieldName: string | null = null) {\r\n let newErrors: ChangePasswordFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(() => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(() => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function handleBlur(fieldName: string) {\r\n if(errorMessage != null){\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n }\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if(errorMessage != null){\r\n setErrorMessage(null);\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n function toastSuccessMessage(message: string) {\r\n Swal.fire({\r\n icon: 'success',\r\n position: 'top-end',\r\n title: 'Success',\r\n text: message,\r\n timer: 10000,\r\n toast: true,\r\n timerProgressBar: true,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n })\r\n }\r\n\r\n return [values, errors, touched, isLoading, isSubmitting, isValid,errorMessage, registerRef, handleChange, handleBlur, handleSubmit] as const;\r\n\r\n}\r\n","import React, { useRef } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { Button, Form, Grid, Header, Image, Message, Segment, Input } from 'semantic-ui-react';\r\nimport logoImg from '../../../Assets/Images/DDS_Logo.jpg';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { useChangePasswordForm } from './useChangePasswordForm';\r\n\r\nexport type ChangePasswordFormProps = {\r\n closePopup: Function,\r\n}\r\nconst PublicChangePasswordForm: React.FC = ({ closePopup }) => {\r\n\r\n const [values, errors, touched, isLoading, isSubmitting, isValid, errorMessage, registerRef, handleChange, handleBlur, handleSubmit] = useChangePasswordForm(closePopup);\r\n function handleSubmitData() {\r\n handleSubmit();\r\n }\r\n\r\n //console.log(errors);\r\n const errorText: string[] = [];\r\n Object.keys(errors).forEach((key) => {\r\n errorText.push(errors[key]);\r\n })\r\n return (\r\n <>\r\n
\r\n \r\n \r\n {\r\n handleChange(data.value, 'currentPassword');\r\n }}\r\n onBlur={\r\n () => { handleBlur('currentPassword') }\r\n }\r\n >\r\n \r\n \r\n \r\n {\r\n handleChange(data.value, 'newPassword');\r\n }}\r\n onBlur={\r\n () => { handleBlur('newPassword') }\r\n }\r\n >\r\n \r\n \r\n \r\n {\r\n handleChange(data.value, 'confirmPassword');\r\n }}\r\n onBlur={\r\n () => { handleBlur('confirmPassword') }\r\n }\r\n onKeyPress={(event: React.KeyboardEvent) => {\r\n if (event.key === 'Enter') {\r\n handleSubmit();\r\n }\r\n \r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n {\r\n errorMessage != null &&\r\n \r\n }\r\n {\r\n Object.keys(errors).length > 0 &&\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default PublicChangePasswordForm","import React, { useState, useEffect, useRef, useContext } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Button, Icon, Modal } from 'semantic-ui-react';\r\nimport { AppContext, AppContextType } from '../../../App';\r\nimport { userRole } from '../../../Constants/userRoles';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { getPublicHomepageSections } from '../../../Services/AdminServices';\r\nimport { User } from '../../../Types/User';\r\nimport { SectionData } from '../../Pages/ManageHomepageSections/SectionCard';\r\nimport PublicChangePasswordForm from '../../Pages/Users/PublicChangePasswordForm';\r\n\r\ntype PublicHomeNavProps = {\r\n publicSiteURLActiveMap: { [key: string]: string[] }\r\n};\r\n\r\n\r\nexport const PublicHomeNav: React.FC = ({ publicSiteURLActiveMap }) => {\r\n const { isLoggedIn, currentUser }: AppContextType = useContext(AppContext);\r\n function handleToggleNav() {\r\n $('.nav-trigger').toggleClass('is-active');\r\n $('.header__content').toggleClass('is-visible');\r\n $('.wrapper').toggleClass('is-fixed');\r\n }\r\n const [navActiveitemName, setnavActiveitemName] = useState('');\r\n const [renderTrigger, setRenderTrigger] = useState(0);\r\n const [isModalOpen, setIsModalOpen] = useState(false);\r\n const isInitilized = useRef(false);\r\n const isMenuExpended = useRef(false);\r\n const currentCategory = useRef(null);\r\n const timerId = useRef(0);\r\n\r\n const currLocation = useLocation();\r\n const navActiveClassName = 'nav__current';\r\n\r\n const [currUser, setCurrUser] = useState(utils.getUserFromLocalToken() as (User | null));\r\n const hasDashboard: boolean | undefined = currUser?.Roles?.includes(userRole.Administrator) || currUser?.Roles?.includes(userRole['RSA Staff']) ||\r\n currUser?.Roles?.includes(userRole['Employment Coordinator']) || currUser?.Roles?.includes(userRole['Coordinator Supervisor']);\r\n\r\n useEffect(() => {\r\n const currPathName = currLocation.pathname;\r\n Object.keys(publicSiteURLActiveMap).forEach((key, index) => {\r\n let tempResult: boolean = false;\r\n publicSiteURLActiveMap[key].forEach((item) => {\r\n if (currPathName === item && navActiveitemName === '') {\r\n setnavActiveitemName(key);\r\n }\r\n });\r\n });\r\n }, []);\r\n\r\n const [sectionData, setSectionData] = useState([]);\r\n\r\n useEffect(() => {\r\n getPublicHomepageSections(false).then((response) => {\r\n if (response && response.data) {\r\n let data = (response.data as any).sections as SectionData[];\r\n setSectionData(data);\r\n } else {\r\n throw new Error('Unable to load sections data from server.');\r\n }\r\n });\r\n }, []);\r\n\r\n const handleLogout = () => {\r\n utils.clearLocalToken();\r\n setTimeout(() => {\r\n window.location.href = `${process.env.REACT_APP_VIRTUAL_DIRECTORY}`\r\n }, 200);\r\n }\r\n\r\n useEffect(() => {\r\n if (!isInitilized.current) {\r\n isInitilized.current = true;\r\n\r\n // $('.nav').on('click', '.has-dropdown a', function (event) {\r\n // let currentWidth = window.innerWidth;\r\n // if (currentWidth < 1024) {\r\n // var $this = $(this);\r\n // $this.siblings('ul').stop().slideToggle().parent().toggleClass('is-expanded');\r\n // event.preventDefault();\r\n // }\r\n // });\r\n }\r\n });\r\n\r\n const handleClick = (event: React.MouseEvent, itemName: string): void => {\r\n let currentWidth = window.innerWidth;\r\n if (currentWidth < 1024) {\r\n handleFocus(event, itemName);\r\n }\r\n }\r\n\r\n const handleFocus = (event: React.FocusEvent | React.MouseEvent, itemName: string): void => {\r\n if (isMenuExpended.current !== true) {\r\n const elementTarget = document.getElementById(`${itemName}-link`) as HTMLElement;\r\n elementTarget.classList.add('active');\r\n isMenuExpended.current = true;\r\n setRenderTrigger((previousNumber) => { return previousNumber + 1; });\r\n currentCategory.current = itemName;\r\n } else {\r\n if (timerId.current != 0) {\r\n if (currentCategory.current === itemName) {\r\n // under same sub-menu\r\n window.clearTimeout(timerId.current);\r\n }\r\n else {\r\n // focus changed to another nav menu\r\n window.clearTimeout(timerId.current);\r\n // de-active privious active nav menu\r\n const oldNavElement = document.getElementById(`${itemName}-link`) as HTMLElement;\r\n oldNavElement.classList.remove('active');\r\n const newNavElement = document.getElementById(`${itemName}-link`) as HTMLElement;\r\n newNavElement.classList.add('active');\r\n isMenuExpended.current = true;\r\n setRenderTrigger((previousNumber) => { return previousNumber + 1; });\r\n currentCategory.current = itemName;\r\n }\r\n }\r\n }\r\n }\r\n\r\n const handleBlur = (event: React.FocusEvent | React.MouseEvent, itemName: string): void => {\r\n let timeoutTime = 100;\r\n console.log(event.type);\r\n if (event.type === 'mouseleave') {\r\n timeoutTime = 750;\r\n }\r\n if (isMenuExpended.current) {\r\n timerId.current = window.setTimeout(() => {\r\n isMenuExpended.current = false;\r\n setRenderTrigger((previousNumber) => { return previousNumber + 1; });\r\n currentCategory.current = null;\r\n const oldNavElement = document.getElementById(`${itemName}-link`) as HTMLElement;\r\n oldNavElement.classList.remove('active');\r\n }, timeoutTime);\r\n }\r\n }\r\n\r\n\r\n return (<>\r\n
\r\n
\r\n
\r\n \r\n \"DDS\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 isLoggedIn && \r\n {currentUser?.FullName}\r\n {\r\n hasDashboard &&\r\n Dashboard \r\n }\r\n {\r\n currentUser?.Roles?.includes(userRole.Counselor) &&\r\n \r\n }\r\n { handleLogout() }}>Sign out \r\n \r\n }\r\n {\r\n !isLoggedIn && Login\r\n }\r\n
\r\n
\r\n
\r\n { setIsModalOpen(false) }}\r\n >\r\n Change Password\r\n \r\n {setIsModalOpen(false);}}\r\n />\r\n \r\n \r\n
\r\n );\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\n\r\n\r\nexport const PublicSkipContentLink: React.FC = () => {\r\n return (<>\r\n
\r\n
\r\n
\r\n Skip to Content\r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { PublicHomeNav } from \"../../Common/PublicComponents/PublicHomeNav\";\r\nimport { PublicSkipContentLink } from \"../../Common/PublicComponents/PublicSkipContentLink\";\r\nimport { PUBLIC_SITE_URL_ACTIVE_MAP } from \"../../../App\";\r\nimport { utils } from \"../../../helpers/utils\";\r\nimport { User } from \"../../../Types/User\";\r\nimport { userRole } from \"../../../Constants/userRoles\";\r\nimport { SectionData } from \"../ManageHomepageSections/SectionCard\";\r\nimport { getPublicHomepageSections } from \"../../../Services/AdminServices\";\r\n\r\nexport function PublicHome() {\r\n const [isCounselor, setIscounselor] = useState(\r\n utils.isCounselor() as boolean\r\n );\r\n\r\n const [isEmploymentCoordinator, setIsEmploymentCoordinator] =\r\n useState(utils.isEmploymentCoordinator() as boolean);\r\n\r\n const [sectionData, setSectionData] = useState([]);\r\n\r\n useEffect(() => {\r\n getPublicHomepageSections(false).then((response) => {\r\n if (response && response.data) {\r\n let data = (response.data as any).sections as SectionData[];\r\n setSectionData(data);\r\n } else {\r\n throw new Error(\"Unable to load sections data from server.\");\r\n }\r\n });\r\n }, []);\r\n return (\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

Virtual Resource Room

\r\n

\r\n Your resource for career exploration and education support,\r\n local degree and certificate programs, and finding a great\r\n job!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n

Explore * Prepare * Achieve!

\r\n
\r\n\r\n
\r\n
\r\n
\r\n
    \r\n {sectionData.map((section, index) => {\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n {section.isHtmlContent === true && (\r\n

    \r\n \r\n {section.title || \"\"}\r\n \r\n

    \r\n )}\r\n {section.isHtmlContent === false && (\r\n

    \r\n \r\n {section.title || \"\"}\r\n \r\n

    \r\n )}\r\n\r\n

    {section.teaserText || \"\"}

    \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 {(isCounselor || isEmploymentCoordinator) && (\r\n
\r\n
\r\n
\r\n

RSA VR Specialist Portal

\r\n\r\n

\r\n Arrange job seeker meetings with RSA Employment Coordinators,\r\n register job seekers for RSA Workshops and Employer\r\n Spotlight Presentations, and view employment opportunities\r\n offered by RSA employer partners and information on job\r\n fairs and other hiring events.\r\n

\r\n
\r\n\r\n
\r\n
\r\n
\r\n {(isCounselor || isEmploymentCoordinator) && (\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
\r\n

\r\n \r\n Arrange Job Seeker Meetings with an RSA\r\n Employment Coordinator\r\n \r\n

\r\n\r\n

\r\n Job seekers receive assistance with their\r\n resumes, interview preparation and mock\r\n interviews, researching employers, accessing\r\n local training and education opportunities,\r\n and searching and applying for jobs\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n {(isCounselor || isEmploymentCoordinator) && (\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
\r\n

\r\n \r\n Register Job Seekers for RSA Workshops\r\n \r\n

\r\n\r\n

\r\n RSA Workshops are a great opportunity for job\r\n seekers to build and improve their resumes and\r\n cover letters and sharpen their interviewing\r\n skills and work-related soft skills\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {isCounselor && (\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 \r\n RSA Employer Spotlight Presentations\r\n \r\n

\r\n

\r\n Learn about high-demand industries and\r\n occupations and opportunities offered by RSA\r\n employer partners and training providers and\r\n register job seekers for these highly\r\n informative presentations\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {isCounselor && (\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
\r\n

\r\n \r\n Employment Opportunities{\" \"}\r\n \r\n

\r\n\r\n

\r\n Learn about employment opportunities offered\r\n by RSA employer partners and receive\r\n information on job fairs and other hiring\r\n events!\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n {isCounselor && (\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
\r\n

\r\n \r\n CASAS Testing{\" \"}\r\n \r\n

\r\n\r\n

\r\n Learn about employment opportunities offered\r\n by RSA employer partners and receive\r\n information on job fairs and other hiring\r\n events!\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 );\r\n}\r\n","import { AxiosResponse } from 'axios';\r\nimport React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { getNoneEmptyProviderCategories } from '../../../Services/ProviderServices';\r\n\r\n\r\nexport type ProviderCategory = {\r\n id:number,\r\n displayName: string,\r\n iconName?: string,\r\n}\r\n\r\nexport type ProviderCategoryData = ProviderCategory[];\r\n\r\n\r\nexport function usePublicProviderList(){\r\n\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [data, setData] = useState([]);\r\n const [updateCounter, setUpdateCounter] = useState(0);\r\n\r\n useEffect(() => {\r\n _fetchData();\r\n }, []);\r\n\r\n const _fetchData: () => void = () => {\r\n if(!isLoading){\r\n setIsLoading(true);\r\n }\r\n getNoneEmptyProviderCategories(false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as ProviderCategoryData;\r\n setData(data);\r\n setUpdateCounter((prevData)=>{return prevData + 1;});\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n return [isLoading, data, updateCounter] as const;\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Segment } from 'semantic-ui-react';\r\nimport { PublicHomeNav } from '../../Common/PublicComponents/PublicHomeNav';\r\nimport { PublicSkipContentLink } from '../../Common/PublicComponents/PublicSkipContentLink';\r\nimport { PUBLIC_SITE_URL_ACTIVE_MAP } from '../../../App';\r\nimport { usePublicProviderList } from './usePublicProviderList';\r\n\r\nexport function PublicProviderList() {\r\n\r\n const [isLoading, data, updateCounter] = usePublicProviderList();\r\n\r\n useEffect(() => {\r\n equalizeHeightFeatures();\r\n }, [updateCounter]);\r\n\r\n function equalizeHeightFeatures() {\r\n $('.features').each(function () {\r\n var $this = $(this);\r\n var highestBox = 0;\r\n $this.find('.feature .feature__inner-content').each(function () {\r\n if ($(this) && ($(this).outerHeight() as number) > highestBox) {\r\n highestBox = $(this).outerHeight() as number;\r\n }\r\n });\r\n $this.find('.feature__inner').height(highestBox);\r\n });\r\n }\r\n\r\n const dataLoaded: boolean = !isLoading && data && data.length > 0;\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Local Training & Education Opportunities

\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {\r\n !dataLoaded &&\r\n \r\n\r\n \r\n }\r\n {\r\n dataLoaded &&\r\n
    \r\n {\r\n data.map((item, index) => {\r\n return (\r\n
  • \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n

    {item.displayName}

    \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 );\r\n}","import React, { useState, useEffect, useMemo } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { PublicHomeNav } from '../../Common/PublicComponents/PublicHomeNav';\r\nimport { Dropdown, Segment, Message, Grid, Button, Icon } from 'semantic-ui-react';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { PUBLIC_SITE_URL_ACTIVE_MAP } from '../../../App';\r\nimport { useProvidersList } from '../Providers/useProvidersList';\r\nimport { PublicSkipContentLink } from '../../Common/PublicComponents/PublicSkipContentLink';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\n\r\nexport function PublicProviderDetail() {\r\n const currLocation = useLocation();\r\n const currHistory = useHistory();\r\n const [isFilterOpen, setIsFilterOpen] = useState(false);\r\n const inputClassName = 'ui icon input public-site fluid search-input';\r\n const defaultProviderCategoryId = useMemo(() => { return getProviderCategoryId(currLocation.search) }, []);\r\n const [pageSize, totalRecords, currentPage, pageSizeOptions, searchRef, searchText,\r\n columns, data, isLoading, isDesc, sortColumnName,\r\n masterData, providerCategoryId, providerCategoryText, providerCredentialIds, providerTraningsIds, providerTypeId,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange,\r\n handleProviderCategoryChange, handleProviderCredentialsChange, handleProviderTrainingsChange, handleProviderTypeChange] = useProvidersList(defaultProviderCategoryId, false, AppConfig.PUBLIC_PROVIDER_DETAIL_STATE);\r\n\r\n const totalPages: number = Math.ceil(totalRecords / pageSize);\r\n const paginationArray: (number | string)[] = utils.getPaginationArray(totalPages, currentPage);\r\n\r\n function getProviderCategoryId(searchString: string = '') {\r\n let result = 0;\r\n if (searchString === '' || !searchString.includes('pcid=')) {\r\n return result;\r\n } else {\r\n try {\r\n let tempSplitResult = searchString.split('?pcid=');\r\n result = parseInt(tempSplitResult[1]);\r\n return result;\r\n } catch (error) {\r\n return result;\r\n }\r\n }\r\n }\r\n\r\n function changeURLSearchParams(newProviderCategoryId: number) {\r\n var newurl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + `?pcid=${newProviderCategoryId}`;\r\n window.history.replaceState({ path: newurl }, '', newurl);\r\n }\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Local Training & Education Opportunities

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Category

\r\n {\r\n handleProviderCategoryChange(data.value as number);\r\n changeURLSearchParams(data.value as number);\r\n }}\r\n />\r\n
\r\n \r\n {\r\n masterData !== null &&\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n searchText && \r\n }\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {\r\n handleProviderTypeChange(data.value as number);\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleProviderCredentialsChange(data.value as number[]);\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n handleProviderTrainingsChange(data.value as number[]);\r\n }}\r\n />\r\n \r\n
\r\n \r\n }\r\n {\r\n isLoading && data.length === 0 &&\r\n \r\n }\r\n {\r\n !isLoading && data.length > 0 &&\r\n
    \r\n {\r\n data.length > 0 &&\r\n data.map((item, rowIndex) => {\r\n return (\r\n
  • \r\n

    {item.providerName}

    \r\n {\r\n item.address &&\r\n

    \r\n {item.address}\r\n

    \r\n }\r\n {\r\n !item.address &&\r\n

    \r\n {\" \"}\r\n

    \r\n }\r\n
    \r\n
    Provider Type
    \r\n
    {item.providerType}
    \r\n
    Credential
    \r\n
    {item.providerCredential}
    \r\n
    \r\n
    \r\n
    Training Offered
    \r\n
    {item.trainingOffered}
    \r\n
    \r\n {\r\n item.contact &&\r\n
    \r\n
    Contact
    \r\n
    \r\n {item.contact}\r\n \r\n
    \r\n
    \r\n }\r\n {\r\n item.websiteURL &&\r\n <>\r\n
    \r\n
    \r\n Website\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 !isLoading && data.length === 0 &&\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 axios, { AxiosResponse } from 'axios';\r\nimport { GetESPPayload } from '../Components/Pages/EmployerSpotlightPresentation/useEmployerSpotlightPresentationList'\r\nimport { GetESPPLPayload } from '../Components/Pages/ESPParticipants/useESPParticipantsList';\r\n\r\nexport async function getESPList(payload: GetESPPayload, mockMode = true) {\r\n console.log(payload);\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 5,\r\n dataTableData: [\r\n {\r\n date: new Date().toISOString(),\r\n data: [\r\n {\r\n EmployerSpotlightPresentationId: 1,\r\n OrganizationName: 'OrganizationName 1',\r\n PresentationTopic: 'Hilton Presentation 1',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '10:00AM',\r\n EndTime: '11:00AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n {\r\n EmployerSpotlightPresentationId: 2,\r\n OrganizationName: 'OrganizationName 2',\r\n PresentationTopic: 'Hilton Presentation 2',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '11:30AM',\r\n EndTime: '11:45AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n {\r\n EmployerSpotlightPresentationId: 3,\r\n OrganizationName: 'OrganizationName 3',\r\n PresentationTopic: 'Hilton Presentation 3',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '2:30PM',\r\n EndTime: '2:55PM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n ]\r\n }\r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Spotlight/SearchEmployerSpotlightPresentation`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getESPById(ESPId: number, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n EmployerSpotlightPresentationId: 1,\r\n OrganizationName: 'OrganizationName 1',\r\n PresentationTopic: 'Hilton Presentation 1',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '10:00AM',\r\n EndTime: '11:00AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Spotlight/GetPresentationById/${ESPId}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function bookESPSpot(payload: any, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n isSuccess: true,\r\n failReason: '',\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Spotlight/SaveSpotlightParticipants`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getPresentationModeMaster(mockMode: boolean = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: [{\r\n \"presentationModeCode\": \"IP\",\r\n \"displayName\": \"In-person\"\r\n },\r\n {\r\n \"presentationModeCode\": \"OL\",\r\n \"displayName\": \"Online\"\r\n }]\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetPresentationModes`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function saveESP(payload:any, mockMode: boolean = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n isSuccess: true,\r\n failReason: '',\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Spotlight/SaveSpotlight`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function searchEmployerSpotlightPresentationParticipant(payload: GetESPPLPayload, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 0,\r\n gridData: [\r\n \r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Spotlight/SearchEmployerSpotlightPresentationParticipant`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function ExportEmployerSpotlightPresentationParticipant(payload: GetESPPLPayload, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 0,\r\n gridData: [\r\n \r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/Spotlight/ExportEmployerSpotlightPresentationParticipant`, payload, { responseType: 'arraybuffer'});\r\n return result;\r\n }\r\n}\r\n\r\n","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Button, Grid, Header, Icon, Breadcrumb, Segment, Input } from 'semantic-ui-react';\r\nimport moment from 'moment';\r\n\r\ntype SimplePageBarProps = {\r\n handlePrevActive: (event: React.MouseEvent) => void;\r\n handleNextActive: (event: React.MouseEvent) => void;\r\n hasPrev: boolean;\r\n hasNext: boolean;\r\n\r\n};\r\n\r\n\r\nexport const SimplePageBar: React.FC = ({handlePrevActive, handleNextActive, hasPrev, hasNext } ) => {\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n\r\n}","import React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { Container, Placeholder, Grid, Header, Icon, Breadcrumb, Segment, Input } from 'semantic-ui-react';\r\nimport moment from 'moment';\r\nimport { usePublicEmployerSpotlightPresentation } from './usePublicEmployerSpotlightPresentationList';\r\nimport { SimplePageBar } from '../../Common/CommonComponents/SimplePageBar';\r\n\r\n\r\nexport function PublicEmployerSpotlightPresentation() {\r\n\r\n const [recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange] = usePublicEmployerSpotlightPresentation();\r\n\r\n const totalPages: number = Math.ceil(totalRecords / recordsPerPage);\r\n const hasNext: boolean = !(pageNum >= totalPages);\r\n const hasPrev: boolean = pageNum > 1;\r\n\r\n const handlePrevPage = (event: React.MouseEvent) => {\r\n handlePaginationChange(pageNum - 1);\r\n }\r\n\r\n const handleNextPage = (event: React.MouseEvent) => {\r\n handlePaginationChange(pageNum + 1);\r\n }\r\n\r\n\r\n console.log(data);\r\n return (\r\n \r\n
Employer Spotlight Presentation
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentation\r\n \r\n \r\n \r\n {\r\n isLoading &&\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 \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n !isLoading && data && data.length >= 1 &&\r\n data.map((dataRow, rowIndex) => {\r\n return (\r\n
\r\n
\r\n {moment(dataRow.date).format('dddd, MMM D, YYYY')}\r\n
\r\n \r\n {\r\n dataRow.data && dataRow.data.length >= 1 &&\r\n dataRow.data.map((eventData:any, eventIndex: any) => {\r\n return (\r\n \r\n \r\n \r\n {moment(eventData.startTime).format('hh:mm A')}\r\n \r\n \r\n {eventData.organization + ' - ' + eventData.topic}\r\n {\r\n eventData.description &&\r\n

{eventData.description}

\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 );\r\n}","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { DropdownProps } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\nimport { Link } from 'react-router-dom';\r\nimport { getESPList } from '../../../Services/EmployerSpotlightPresentationServices';\r\nimport { AxiosResponse } from 'axios';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\n\r\nexport interface GetESPPayload {\r\n sortByField: string | null;\r\n sortOrderDesc: boolean;\r\n searchText: string | null;\r\n recordsPerPage: number;\r\n pageNum: number;\r\n isUpcoming: boolean;\r\n fromDate: string | null;\r\n toDate: string | null;\r\n\r\n}\r\n\r\nexport interface GetESPDataRow {\r\n [key: string]: any;\r\n description: string | null;\r\n employerSpotlightPresentationId: number | null;\r\n organization: string | null;\r\n participantsCount: number;\r\n presentationDateTime: string| null\r\n startTime: string | null;\r\n topic: string | null;\r\n}\r\n\r\nexport interface GetESPData {\r\n totalRecords: number;\r\n gridData: GetESPDataRow[];\r\n}\r\n\r\nexport interface ESPListData {\r\n date: string;\r\n data: ESPListDataRow[];\r\n};\r\n\r\nexport interface ESPListDataRow {\r\n employerSpotlightPresentationId: number | null;\r\n organization: string | null;\r\n topic: string | null;\r\n startTime: string | null;\r\n description: string | null;\r\n}\r\n\r\nexport interface MasterDataItem {\r\n displayName: string;\r\n iconName?: string;\r\n id: number;\r\n}\r\n\r\nexport interface MasterData {\r\n\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n\r\n}\r\n\r\nexport function usePublicEmployerSpotlightPresentation(saveState: boolean = true, statePropName?: string) {\r\n const pageSizeOptions = useMemo(() => {\r\n return [\r\n { key: 3, value: 3, text: '3' },\r\n { key: 5, value: 5, text: '5' },\r\n { key: 10, value: 10, text: '10' },\r\n { key: 15, value: 15, text: '15' },\r\n { key: 20, value: 20, text: '20' },\r\n { key: 50, value: 50, text: '50' },\r\n { key: 100, value: 100, text: '100' }\r\n ];\r\n }, []);\r\n\r\n const searchRef = useRef(null);\r\n const [masterData, setMasterData] = useState(null);\r\n const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n const [totalRecords, setTotalRecords] = useState(0);\r\n const [pageNum, setPageNum] = useState(1);\r\n const [sortByField, setSortByField] = useState(null);\r\n const [sortOrderDesc, setSortOrderDesc] = useState(true);\r\n const [searchText, setSearchText] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [isUpcoming, setIsUpcoming] = useState(true);\r\n const [fromDate, setFromDate] = useState(null);\r\n const [toDate, seToDate] = useState(null);\r\n\r\n const handlePageSizeChange: ((event: React.SyntheticEvent, data: DropdownProps) => void) | undefined = (event, data) => {\r\n setRecordsPerPage(data.value as number);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: data.value as number,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handlePaginationChange: (newPageNumber: number) => void = (newPageNumber) => {\r\n setPageNum(newPageNumber);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: newPageNumber,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSortChange: (newSortColumnName: string) => void = (newSortColumnName) => {\r\n let newIsDesc = sortOrderDesc;\r\n let newColumnName = sortByField;\r\n if (newSortColumnName === sortByField) {\r\n newIsDesc = !newIsDesc;\r\n } else {\r\n newColumnName = newSortColumnName;\r\n }\r\n\r\n setSortOrderDesc(newIsDesc);\r\n setSortByField(newColumnName);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: newColumnName,\r\n sortOrderDesc: newIsDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSearchChangeFn: (event: React.SyntheticEvent) => void = (event) => {\r\n //setSearchText((event.target as HTMLInputElement).value);\r\n setSearchText((event.target as HTMLInputElement).value);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: (event.target as HTMLInputElement).value,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleSearchChange = _.debounce(handleSearchChangeFn, 1000);\r\n\r\n const resetSearch: (event: React.SyntheticEvent) => void = (event) => {\r\n if (searchRef.current !== null) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const _fetchData: (overwritePayload?: GetESPPayload) => void = (overwritePayload) => {\r\n const defaultPayload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isUpcoming: isUpcoming,\r\n fromDate: null,\r\n toDate: null\r\n };\r\n let payload: GetESPPayload = defaultPayload;\r\n if (overwritePayload !== undefined) {\r\n payload = overwritePayload;\r\n }\r\n //console.log(payload);\r\n setIsLoading(true);\r\n if (saveState) {\r\n _saveState(payload);\r\n }\r\n getESPList(payload, false).then((result) => {\r\n setIsLoading(false);\r\n //console.log(result);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as GetESPData;\r\n let reshapedData= _reshapeData(data);\r\n setData(reshapedData);\r\n setTotalRecords(data.totalRecords);\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n // there is no master data at the moment, but reserve this slot for possible future use.\r\n callBack();\r\n }\r\n\r\n const _reshapeData = (data: GetESPData): ESPListData[]=>{\r\n let dateList = new Map();\r\n const timeFormat = 'M/D/yyyy'\r\n let result: ESPListData[] = [];\r\n if(data.totalRecords > 0){\r\n data.gridData.forEach((item)=>{\r\n let dateString = item.presentationDateTime?.split(' ')[0] || '';\r\n if(dateList.get(dateString) == null){\r\n dateList.set(dateString, 1);\r\n }\r\n });\r\n dateList.forEach((value, key,)=>{\r\n let currDay:ESPListData = {\r\n date: key,\r\n data: [],\r\n };\r\n data.gridData.filter((item)=>{\r\n return item.presentationDateTime?.startsWith(key);\r\n }).forEach((item)=>{\r\n let temp: ESPListDataRow = {\r\n employerSpotlightPresentationId: item.employerSpotlightPresentationId,\r\n organization: item.organization,\r\n topic: item.topic,\r\n startTime: item.startTime,\r\n description: item.description,\r\n };\r\n currDay.data.push(temp);\r\n });\r\n result.push(currDay);\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n const _saveState = (currentPayload: GetESPPayload) => {\r\n let stateName = statePropName || AppConfig.PUBLIC_EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE;\r\n if (saveState) {\r\n utils.updateInLocalStorage(stateName, JSON.stringify(currentPayload));\r\n }\r\n }\r\n\r\n const _loadState = () => {\r\n let stateName = statePropName || AppConfig.PUBLIC_EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE;\r\n let stateString: string | null = utils.getLocalStorageItem(stateName);\r\n if (stateString && saveState) {\r\n return JSON.parse(stateString) as GetESPPayload;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n _fetchMasterData(() => {\r\n let priviousState: GetESPPayload | null = _loadState();\r\n if (priviousState && saveState) {\r\n _fetchData(priviousState);\r\n setSortByField(priviousState.sortByField);\r\n setSortOrderDesc(priviousState.sortOrderDesc);\r\n setSearchText(priviousState.searchText);\r\n setRecordsPerPage(priviousState.recordsPerPage);\r\n setPageNum(priviousState.pageNum);\r\n if (searchRef.current) {\r\n searchRef.current.value = priviousState.searchText || '';\r\n }\r\n } else {\r\n _fetchData();\r\n }\r\n });\r\n\r\n }, []);\r\n\r\n return [recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange] as const;\r\n}","import React, { Component, Fragment, useEffect, useState, useRef } from 'react';\r\nimport { Link, useParams, useHistory } from 'react-router-dom';\r\nimport _ from 'lodash';\r\nimport Swal from 'sweetalert2';\r\nimport { getPresentationModeMaster, getESPById, saveESP } from '../../../Services/EmployerSpotlightPresentationServices';\r\nimport moment from 'moment';\r\n\r\n\r\nexport type PresentationFormValues = {\r\n [key: string]: any;\r\n}\r\n\r\nexport type PresentationFormRef = {\r\n [key: string]: React.RefObject\r\n}\r\n\r\nexport type PresentationFormErrors = {\r\n [key: string]: string;\r\n}\r\n\r\nexport type PresentationFormTouched = {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n}\r\n\r\nexport type PresentationFormMasterData = [\r\n {\r\n presentationModeCode: string,\r\n displayName: string\r\n }\r\n];\r\n\r\nexport type PresentationFormData = {\r\n employerSpotlightPresentationId: number;\r\n topic: string | null;\r\n presenter: string | null;\r\n description: string | null;\r\n presentationDate: string | null;\r\n startTime: string | null;\r\n endTime: string | null;\r\n presentationModeCode: string | null;\r\n location: string | null;\r\n notes: string | null;\r\n organization: string | null;\r\n}\r\n\r\nexport function usePresentationForm() {\r\n\r\n const history = useHistory();\r\n\r\n let { ESPId } = useParams<{ ESPId: string }>();\r\n\r\n useEffect(() => {\r\n if (ESPId) {\r\n fetchMasterData();\r\n fetchData(ESPId);\r\n requestCount.current = 2;\r\n } else {\r\n fetchMasterData();\r\n requestCount.current = 1;\r\n }\r\n\r\n }, []);\r\n\r\n async function fetchData(ESPId?: string) {\r\n try {\r\n //get ESP data by presentationId\r\n if (ESPId) {\r\n const id: number = parseInt(ESPId);\r\n getESPById(id, false).then((response) => {\r\n if (response && response.status === 200 && response.data) {\r\n let data = response.data as PresentationFormData;\r\n let newFormValues = _.cloneDeep(defaultValues);\r\n newFormValues.organizationName = data.organization;\r\n newFormValues.presentationTopic = data.topic;\r\n newFormValues.presentationDescription = data.description;\r\n newFormValues.presenter = data.presenter;\r\n newFormValues.presentationDate = moment(data.presentationDate).format('yyyy-MM-DD');\r\n newFormValues.startTime = moment( data.startTime).format('hh:mm A');\r\n newFormValues.endTime = moment( data.endTime).format('hh:mm A');\r\n newFormValues.presentationModeCode = data.presentationModeCode;\r\n newFormValues.location = data.location;\r\n newFormValues.notes= data.notes;\r\n setValues(newFormValues);\r\n _handleRequestCountChange('DONE');\r\n } else {\r\n throw new Error('Unable to fetch Employer Spotlight Presentation data!');\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n } catch (error) {\r\n _handleRequestCountChange('FAIL');\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `Unable to get data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n\r\n }\r\n async function fetchMasterData() {\r\n try {\r\n //get Presentation mode master\r\n\r\n getPresentationModeMaster(false).then((response) => {\r\n\r\n if (response && response.status === 200 && response.data) {\r\n let newData: PresentationFormMasterData = response.data as PresentationFormMasterData;\r\n setMasterData(newData);\r\n _handleRequestCountChange('DONE');\r\n } else {\r\n throw new Error('Unable to fetch Employer Spotlight Presentation Master data!');\r\n }\r\n\r\n })\r\n } catch (error) {\r\n _handleRequestCountChange('FAIL');\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `Unable to get master data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n function _handleRequestCountChange(type: 'DONE' | 'FAIL') {\r\n if (type === 'DONE') {\r\n requestCount.current -= 1;\r\n }\r\n if (requestCount.current === 0 && dataLoaded !== true) {\r\n setDataLoaded(true);\r\n }\r\n }\r\n\r\n const defaultValues: PresentationFormValues = {\r\n organizationName: '',\r\n presentationTopic: '',\r\n presentationDescription: '',\r\n presenter: '',\r\n presentationDate: '',\r\n startTime: '',\r\n endTime: '',\r\n presentationModeCode: 'OL',\r\n location: '',\r\n notes: '',\r\n };\r\n const validations = {\r\n\r\n organizationName: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.organizationName) {\r\n error = 'Please enter Organization Name';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n presentationTopic: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.presentationTopic) {\r\n error = 'Please enter Presentation Topic';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n presentationDescription: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n presenter: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n presentationDate: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.presentationDate) {\r\n error = 'Please enter Presentation Date';\r\n } else if (!_isValidDate(values.presentationDate)) {\r\n error = 'Please enter a valid date, format like \"mm/dd/yyyy\"';\r\n } else if (_isValidDate(values.presentationDate) && moment(values.presentationDate).isBefore(moment(), 'day')) {\r\n error = 'Presentation date should not early than today.'\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n startTime: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.startTime) {\r\n error = 'Please enter start time';\r\n } else if (!_isValidTime(values.startTime)) {\r\n error = 'Please enter a valid start time: format as \"09:00 AM\", and specify AM/PM'\r\n }\r\n\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n endTime: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.endTime) {\r\n error = 'Please enter end time'\r\n }\r\n else if (!_isValidTime(values.endTime)) {\r\n error = 'Please enter a valid end time: format as \"09:00 AM\", and specify AM/PM'\r\n } else if (_isValidTime(values.endTime) && _isValidTime(values.startTime)) {\r\n let formatedStartTime = _addSpaceBeforeChar(values.startTime);\r\n let formatedEndTime = _addSpaceBeforeChar(values.endTime);\r\n const today = moment().format('yyyy-MM-DD ');\r\n if (moment(today + formatedEndTime, 'YYYY-MM-DD hh:mm:ss a').isBefore(moment(today + formatedStartTime, 'YYYY-MM-DD hh:mm:ss a'), 'minute')) {\r\n error = 'End time should not earlier than start time'\r\n }\r\n\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n\r\n presentationModeCode: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.presentationModeCode) {\r\n error = 'Please select Presentation Mode';\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n location: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if(values.presentationModeCode !== 'OL' && !values.location){\r\n error = 'Please enter location when Presentation Mode is not \"Online\"'\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n notes: async function (values: PresentationFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n\r\n\r\n }\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n //const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const debouncedValidateForm = validateForm;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n const [masterData, setMasterData] = useState(null);\r\n const [submitSuccess, setSubmitSuccess] = useState(false);\r\n const requestCount = useRef(0);\r\n const [dataLoaded, setDataLoaded] = useState(false);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: PresentationFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: PresentationFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: PresentationFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n function saveData(viewModel: PresentationFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n if (ESPId) {\r\n newData.EmployerSpotlightPresentationId = parseInt(ESPId);\r\n } else {\r\n newData.EmployerSpotlightPresentationId = 0;\r\n }\r\n let currDate = viewModel.presentationDate + ' ';\r\n console.log(_addSpaceBeforeChar(viewModel.startTime));\r\n console.log(_addSpaceBeforeChar(viewModel.endTime));\r\n newData.startTime = moment(currDate + _addSpaceBeforeChar(viewModel.startTime)).format();\r\n newData.endTime = moment(currDate + _addSpaceBeforeChar(viewModel.endTime)).format();\r\n newData.Description = newData.presentationDescription;\r\n delete newData.presentationDescription;\r\n console.log(newData);\r\n saveESP(newData, false).then((res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) {\r\n setSubmitSuccess(true);\r\n //console.log(res);\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n\r\n }\r\n else {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${res && res.data ? res.data : \"No detail reason available.\"}`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (error.response && error.response.data && error.response.status === 500) {\r\n let footer = '';\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${error.response.data ? error.response.data : \"No detail reason available\"}`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(values: PresentationFormValues, validations: ValidtionFunctions, fieldName: string | null = null) {\r\n let newErrors: PresentationFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(() => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(() => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function handleBlur(fieldName: string) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n }\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n function isValidEmail(testTarget: string) {\r\n let myReg = /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}\\b/gi;\r\n return myReg.test(testTarget);\r\n }\r\n\r\n function _isValidTime(testTarget: string) {\r\n if (!(testTarget && typeof testTarget === 'string' && testTarget.length > 0)) {\r\n return false;\r\n }\r\n let string = testTarget.trim().toLowerCase();\r\n let myReg = /\\d{1,2}:\\d{1,2} *(am|pm){1}$/gi;\r\n let firstTest: boolean = myReg.test(string);\r\n if (firstTest) {\r\n string = _addSpaceBeforeChar(string);\r\n let testMo = moment(moment().format('yyyy-MM-DD ') + string);\r\n return testMo.isValid();\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n function _addSpaceBeforeChar(s: string): string {\r\n let result = s.toLowerCase();\r\n if (result.indexOf('am') !== -1 || result.indexOf('pm') !== -1) {\r\n let index = result.indexOf('am') == -1 ? result.indexOf('pm') : result.indexOf('am');\r\n if (index - 1 >= 0 && result[index - 1] != ' ') {\r\n result = result.slice(0, index)\r\n + ' '\r\n + result.slice(index);\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n function _isValidDate(dateText: string): boolean {\r\n if (!(dateText && typeof dateText === 'string' && dateText.length > 0)) {\r\n return false;\r\n } else {\r\n let testResult = moment(dateText);\r\n if (!testResult.isValid()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n\r\n return [values, masterData, errors, touched, isLoading, isSubmitting, isValid, submitSuccess, errorMessage, dataLoaded,\r\n registerRef, handleChange, handleBlur, handleSubmit] as const;\r\n\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Container, Form, Header, Icon, Breadcrumb, Button, Grid, Radio, Segment, Message } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { usePresentationForm } from './usePresentationForm';\r\nimport moment from 'moment';\r\n\r\nexport function CreatePresentationForm() {\r\n let [values, masterData, errors, touched, isLoading, isSubmitting, isValid, submitSuccess, errorMessage, dataLoaded,\r\n registerRef, handleChange, handleBlur, handleSubmit] = usePresentationForm();\r\n\r\n const history = useHistory();\r\n const today = moment().format('yyyy-MM-DD');\r\n\r\n function handleBackToList() {\r\n history.push('/employerSpotlightPresentationList');\r\n }\r\n return \r\n
New Spotlight Presentation
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentations\r\n \r\n New Spotlight Presentation\r\n \r\n\r\n \r\n {\r\n !submitSuccess &&\r\n \r\n
\r\n {\r\n handleChange(data.value, 'organizationName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('organizationName') }\r\n }\r\n error={!(!errors.organizationName || !touched.organizationName) ? true : false}\r\n />\r\n {\r\n !(!errors.organizationName || !touched.organizationName) &&\r\n
{errors.organizationName}
\r\n }\r\n {\r\n handleChange(data.value, 'presentationTopic');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationTopic') }\r\n }\r\n error={!(!errors.presentationTopic || !touched.presentationTopic) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationTopic || !touched.presentationTopic) &&\r\n
{errors.presentationTopic}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presentationDescription');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationDescription') }\r\n }\r\n error={!(!errors.presentationDescription || !touched.presentationDescription) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationDescription || !touched.presentationDescription) &&\r\n
{errors.presentationDescription}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presenter');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presenter') }\r\n }\r\n error={!(!errors.presenter || !touched.presenter) ? true : false}\r\n />\r\n {\r\n !(!errors.presenter || !touched.presenter) &&\r\n
{errors.presenter}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presentationDate');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationDate') }\r\n }\r\n error={!(!errors.presentationDate || !touched.presentationDate) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationDate || !touched.presentationDate) &&\r\n
{errors.presentationDate}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'startTime');\r\n }}\r\n onBlur={\r\n () => { handleBlur('startTime') }\r\n }\r\n placeholder='HH:MM AM/PM'\r\n error={!(!errors.startTime || !touched.startTime) ? true : false}\r\n />\r\n {\r\n !(!errors.startTime || !touched.startTime) &&\r\n
{errors.startTime}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'endTime');\r\n }}\r\n onBlur={\r\n () => { handleBlur('endTime') }\r\n }\r\n error={!(!errors.endTime || !touched.endTime) ? true : false}\r\n />\r\n {\r\n !(!errors.endTime || !touched.endTime) &&\r\n
{errors.endTime}
\r\n }\r\n \r\n \r\n {\r\n masterData && masterData.map((item: any, index: number) => {\r\n return ( {\r\n let newValue = (data as { value: any }).value;\r\n handleChange(newValue, 'presentationModeCode', false);\r\n }}\r\n error={!(!errors.presentationModeCode || !touched.presentationModeCode) ? true : false}\r\n />);\r\n })\r\n }\r\n \r\n {\r\n handleChange(data.value, 'location');\r\n }}\r\n onBlur={\r\n () => { handleBlur('location') }\r\n }\r\n error={!(!errors.location || !touched.location) ? true : false}\r\n />\r\n {\r\n !(!errors.location || !touched.location) &&\r\n
{errors.location}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'notes');\r\n }}\r\n onBlur={\r\n () => { handleBlur('notes') }\r\n }\r\n error={!(!errors.notes || !touched.notes) ? true : false}\r\n />\r\n {\r\n !(!errors.notes || !touched.notes) &&\r\n
{errors.notes}
\r\n }\r\n\r\n\r\n\r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n submitSuccess &&\r\n \r\n \r\n \r\n Success\r\n
Thank you for creating a new presentation. This presentation has been added to the upcoming presentation list.
\r\n
\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 { Container, Form, Header, Icon, Breadcrumb, Button, Grid, Radio, Table, Message } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { usePresentationForm } from './usePresentationForm';\r\nimport moment from 'moment';\r\n\r\nexport function EditPresentationForm() {\r\n let [values, masterData, errors, touched, isLoading, isSubmitting, isValid, submitSuccess, errorMessage, dataLoaded,\r\n registerRef, handleChange, handleBlur, handleSubmit] = usePresentationForm();\r\n\r\n const history = useHistory();\r\n const today = moment().format('yyyy-MM-DD');\r\n\r\n function handleBackToList() {\r\n history.push('/employerSpotlightPresentationList');\r\n }\r\n let isPast: boolean = false;\r\n if (values.presentationDate && moment().isSameOrAfter(moment(values.presentationDate), 'day')) {\r\n isPast = true;\r\n }\r\n return \r\n
Edit Spotlight Presentation
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentations\r\n \r\n Edit Spotlight Presentation\r\n \r\n\r\n \r\n {\r\n !submitSuccess && !isPast &&\r\n \r\n
\r\n {\r\n handleChange(data.value, 'organizationName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('organizationName') }\r\n }\r\n value={values.organizationName}\r\n error={!(!errors.organizationName || !touched.organizationName) ? true : false}\r\n />\r\n {\r\n !(!errors.organizationName || !touched.organizationName) &&\r\n
{errors.organizationName}
\r\n }\r\n {\r\n handleChange(data.value, 'presentationTopic');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationTopic') }\r\n }\r\n value={values.presentationTopic}\r\n error={!(!errors.presentationTopic || !touched.presentationTopic) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationTopic || !touched.presentationTopic) &&\r\n
{errors.presentationTopic}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presentationDescription');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationDescription') }\r\n }\r\n value={values.presentationDescription}\r\n error={!(!errors.presentationDescription || !touched.presentationDescription) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationDescription || !touched.presentationDescription) &&\r\n
{errors.presentationDescription}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presenter');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presenter') }\r\n }\r\n value={values.presenter}\r\n error={!(!errors.presenter || !touched.presenter) ? true : false}\r\n />\r\n {\r\n !(!errors.presenter || !touched.presenter) &&\r\n
{errors.presenter}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'presentationDate');\r\n }}\r\n onBlur={\r\n () => { handleBlur('presentationDate') }\r\n }\r\n error={!(!errors.presentationDate || !touched.presentationDate) ? true : false}\r\n />\r\n {\r\n !(!errors.presentationDate || !touched.presentationDate) &&\r\n
{errors.presentationDate}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'startTime');\r\n }}\r\n onBlur={\r\n () => { handleBlur('startTime') }\r\n }\r\n placeholder='HH:MM AM/PM'\r\n value={values.startTime}\r\n error={!(!errors.startTime || !touched.startTime) ? true : false}\r\n />\r\n {\r\n !(!errors.startTime || !touched.startTime) &&\r\n
{errors.startTime}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'endTime');\r\n }}\r\n onBlur={\r\n () => { handleBlur('endTime') }\r\n }\r\n value={values.endTime}\r\n error={!(!errors.endTime || !touched.endTime) ? true : false}\r\n />\r\n {\r\n !(!errors.endTime || !touched.endTime) &&\r\n
{errors.endTime}
\r\n }\r\n \r\n \r\n {\r\n masterData && masterData.map((item: any, index: number) => {\r\n return ( {\r\n let newValue = (data as { value: any }).value;\r\n handleChange(newValue, 'presentationModeCode', false);\r\n }}\r\n error={!(!errors.presentationModeCode || !touched.presentationModeCode) ? true : false}\r\n />);\r\n })\r\n }\r\n \r\n {\r\n handleChange(data.value, 'location');\r\n }}\r\n onBlur={\r\n () => { handleBlur('location') }\r\n }\r\n value={values.location}\r\n error={!(!errors.location || !touched.location) ? true : false}\r\n />\r\n {\r\n !(!errors.location || !touched.location) &&\r\n
{errors.location}
\r\n }\r\n\r\n {\r\n handleChange(data.value, 'notes');\r\n }}\r\n onBlur={\r\n () => { handleBlur('notes') }\r\n }\r\n value={values.notes}\r\n error={!(!errors.notes || !touched.notes) ? true : false}\r\n />\r\n {\r\n !(!errors.notes || !touched.notes) &&\r\n
{errors.notes}
\r\n }\r\n\r\n\r\n\r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n isPast &&\r\n <>\r\n \r\n \r\n \r\n Organization Name\r\n {values.organizationName}\r\n \r\n \r\n Presentation Topic\r\n {values.presentationTopic}\r\n \r\n \r\n Description\r\n {values.presentationDescription}\r\n \r\n \r\n Presenter\r\n {values.presenter}\r\n \r\n \r\n Presentation Date\r\n {values.presentationDate}\r\n \r\n \r\n Start Time\r\n {values.startTime}\r\n \r\n \r\n End Time\r\n {values.endTime}\r\n \r\n \r\n Presentation Mode\r\n {masterData && masterData.filter((item) => { return item.presentationModeCode == values.presentationModeCode })[0].displayName}\r\n \r\n \r\n Location\r\n {values.location}\r\n \r\n \r\n Notes\r\n {values.notes}\r\n \r\n \r\n
\r\n \r\n \r\n }\r\n {\r\n submitSuccess &&\r\n \r\n \r\n \r\n Success\r\n
Thank you for editing a presentation. This presentation has been updated.
\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 { Link, useHistory } from 'react-router-dom';\r\nimport { Container, Menu, Table, Header, Icon, Breadcrumb, Segment, Dropdown, Grid, Button, Input, Label, } from 'semantic-ui-react';\r\nimport moment from 'moment';\r\nimport { ColumnDefinition, useEmployerSpotlightPresentation } from './useEmployerSpotlightPresentationList';\r\nimport { SimplePageBar } from '../../Common/CommonComponents/SimplePageBar';\r\nimport { utils } from '../../../helpers/utils';\r\n\r\n\r\nexport function EmployerSpotlightPresentation() {\r\n\r\n const history = useHistory();\r\n const inputClassName = 'ui icon input fluid search-input';\r\n const [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n isUpcoming, fromDate, toDate, fromDateRef, toDateRef,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange, handleIsUpcomingChange,\r\n handleFromDateChange, handleToDateChange, resetFromDate, resetToDate\r\n ] = useEmployerSpotlightPresentation();\r\n\r\n const totalPages: number = Math.ceil(totalRecords / recordsPerPage);\r\n\r\n const paginationArray: (number | string)[] = utils.getPaginationArray(totalPages, pageNum);\r\n\r\n const handleCreateNewPresentation = () => {\r\n history.push('/createPresentation');\r\n };\r\n\r\n const yesterday = moment().add(-1, 'day').format('yyyy-MM-DD');\r\n const today = moment().format('yyyy-MM-DD');\r\n const tomorrow = moment().add(1, 'day').format('yyyy-MM-DD');\r\n\r\n return (\r\n \r\n
\r\n
Employer Spotlight Presentations
\r\n {\r\n isUpcoming &&\r\n \r\n }\r\n
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentations\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 if (event.target) {\r\n handleFromDateChange(event.target.value);\r\n }\r\n }}\r\n min={isUpcoming ? today: '0001-01-01'}\r\n max = {!isUpcoming ? yesterday : '9999-01-01'}\r\n //value={fromDate}\r\n />\r\n
\r\n {\r\n (isUpcoming ? (fromDate !== today ):(fromDate)) && \r\n }\r\n
\r\n \r\n \r\n
\r\n {\r\n if (event.target) {\r\n handleToDateChange(event.target.value);\r\n }\r\n }}\r\n min={isUpcoming ? today: '0001-01-01'}\r\n max={!isUpcoming ? yesterday : '9999-01-01'}\r\n //value={fromDate}\r\n />\r\n
\r\n {\r\n ( !isUpcoming ? (toDate !== yesterday ): (toDate)) && \r\n }\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n {\r\n searchText && \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 columns.map((column: ColumnDefinition, index: number) => {\r\n return {\r\n if (column.sortable) {\r\n handleSortChange(column.columnName);\r\n }\r\n }}\r\n >\r\n
{column.columnHeader}\r\n {\r\n column.sortable &&\r\n \r\n }\r\n
\r\n
\r\n })\r\n }\r\n
\r\n
\r\n\r\n \r\n {\r\n data.length === 0 &&\r\n \r\n No data avaliable\r\n \r\n }\r\n {\r\n data.length > 0 &&\r\n data.map((row, rowIndex) => {\r\n return (\r\n \r\n {\r\n columns.map((col, colIndex ) => {\r\n if (col.decorator) {\r\n return (\r\n {\r\n col.decorator(row, data, rowIndex, colIndex)\r\n }\r\n );\r\n } else {\r\n return {row[col.columnName]}\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 \r\n \r\n
\r\n \r\n Showing {Math.min((pageNum - 1) * recordsPerPage + 1, totalRecords)} to{\" \"}\r\n {pageNum * recordsPerPage > totalRecords\r\n ? totalRecords\r\n : pageNum * recordsPerPage}{\" \"}\r\n of\r\n {\" \"} {totalRecords} entries{\", \"}\r\n \r\n \r\n records per page\r\n
\r\n \r\n {\r\n handlePaginationChange(pageNum - 1);\r\n }}\r\n >\r\n \r\n \r\n {\r\n paginationArray.map((item: number | string, index: number) => {\r\n if (typeof item === 'string') {\r\n return {item}\r\n } else {\r\n return {\r\n handlePaginationChange(item as number);\r\n }}>{item}\r\n }\r\n })\r\n }\r\n = totalPages}\r\n onClick={(event) => {\r\n handlePaginationChange(pageNum + 1);\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}","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { DropdownProps } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\nimport { Link } from 'react-router-dom';\r\nimport { getESPList } from '../../../Services/EmployerSpotlightPresentationServices';\r\nimport { AxiosResponse } from 'axios';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\nimport moment from 'moment';\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\n\r\nexport interface GetESPPayload {\r\n sortByField: string | null;\r\n sortOrderDesc: boolean;\r\n searchText: string | null;\r\n recordsPerPage: number;\r\n pageNum: number;\r\n isUpcoming: boolean;\r\n fromDate: string | null;\r\n toDate: string | null;\r\n\r\n}\r\n\r\nexport interface GetESPDataRow {\r\n [key: string]: any;\r\n employerSpotlightPresentationId: number;\r\n organization: string | null;\r\n topic: string | null;\r\n presentationDateTime: string | null;\r\n startTime: string | null;\r\n}\r\n\r\nexport interface GetESPData {\r\n totalRecords: number;\r\n gridData: GetESPDataRow[];\r\n}\r\n\r\nexport interface MasterDataItem {\r\n displayName: string;\r\n iconName?: string;\r\n id: number;\r\n}\r\n\r\nexport interface MasterData {\r\n\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n\r\n}\r\n\r\nexport interface ColumnDefinition {\r\n columnName: string;\r\n sortable: boolean;\r\n columnHeader: string;\r\n decorator?: Function;\r\n}\r\n\r\nexport function useEmployerSpotlightPresentation(saveState: boolean = true, statePropName?: string) {\r\n const yesterday = moment().add(-1, 'day').format('yyyy-MM-DD');\r\n const today = moment().format('yyyy-MM-DD');\r\n const tomorrow = moment().add(1, 'day').format('yyyy-MM-DD');\r\n const columns: ColumnDefinition[] = [\r\n {\r\n columnName: 'organization',\r\n sortable: true,\r\n columnHeader: 'Organization',\r\n decorator: (row: GetESPDataRow, data: GetESPDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({row.organization});\r\n },\r\n },\r\n {\r\n columnName: 'topic',\r\n sortable: true,\r\n columnHeader: 'Topic',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'presentationDateTime',\r\n sortable: false,\r\n columnHeader: 'Date/time',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'participantsCount',\r\n sortable: true,\r\n columnHeader: 'Participants Count',\r\n decorator: (row: GetESPDataRow, data: GetESPDataRow[], rowIndex: number, colIndex: number ) => {\r\n if(row.participantsCount > 0){\r\n return ({row.participantsCount});\r\n }else {\r\n return '0';\r\n }\r\n },\r\n },\r\n ];\r\n\r\n const pageSizeOptions = useMemo(() => {\r\n return [\r\n { key: 3, value: 3, text: '3' },\r\n { key: 5, value: 5, text: '5' },\r\n { key: 10, value: 10, text: '10' },\r\n { key: 15, value: 15, text: '15' },\r\n { key: 20, value: 20, text: '20' },\r\n { key: 50, value: 50, text: '50' },\r\n { key: 100, value: 100, text: '100' }\r\n ];\r\n }, []);\r\n\r\n const searchRef = useRef(null);\r\n const fromDateRef = useRef(null);\r\n const toDateRef = useRef(null);\r\n const [masterData, setMasterData] = useState(null);\r\n const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n const [totalRecords, setTotalRecords] = useState(0);\r\n const [pageNum, setPageNum] = useState(1);\r\n const [sortByField, setSortByField] = useState(null);\r\n const [sortOrderDesc, setSortOrderDesc] = useState(true);\r\n const [searchText, setSearchText] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [isUpcoming, setIsUpcoming] = useState(true);\r\n const [fromDate, setFromDate] = useState(today);\r\n const [toDate, setToDate] = useState('');\r\n\r\n const handlePageSizeChange: ((event: React.SyntheticEvent, data: DropdownProps) => void) | undefined = (event, data) => {\r\n setRecordsPerPage(data.value as number);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: data.value as number,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handlePaginationChange: (newPageNumber: number) => void = (newPageNumber) => {\r\n setPageNum(newPageNumber);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: newPageNumber,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleIsUpcomingChange: (newValue: boolean) => void = (newValue) => {\r\n setIsUpcoming(newValue);\r\n setPageNum(1);\r\n let newToDate = toDate;\r\n let newFromDate = fromDate;\r\n if (newValue === false) {\r\n setFromDate('');\r\n setToDate(yesterday);\r\n newFromDate = '';\r\n newToDate = yesterday;\r\n if (fromDateRef.current !== null) {\r\n (fromDateRef.current as HTMLInputElement).value = '';\r\n }\r\n if (toDateRef.current !== null) {\r\n (toDateRef.current as HTMLInputElement).value = yesterday;\r\n }\r\n }else {\r\n setFromDate(today);\r\n setToDate('');\r\n newFromDate = today;\r\n newToDate = '';\r\n if (fromDateRef.current !== null) {\r\n (fromDateRef.current as HTMLInputElement).value = today;\r\n }\r\n if (toDateRef.current !== null) {\r\n (toDateRef.current as HTMLInputElement).value = '';\r\n }\r\n }\r\n\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: newValue,\r\n fromDate: newFromDate,\r\n toDate: newToDate\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleFromDateChange: (newValue: string) => void = (newValue) => {\r\n setFromDate(newValue);\r\n setPageNum(1);\r\n let hasError = false;\r\n let newToDate = toDate;\r\n if (_isValidDate(newValue) && isUpcoming) {\r\n let fromDateMo = moment(newValue);\r\n if (fromDateMo.isBefore(moment(), 'day')) {\r\n hasError = true;\r\n newValue = today;\r\n setFromDate(newValue);\r\n if (fromDateRef.current != null) {\r\n fromDateRef.current.value = newValue;\r\n }\r\n }\r\n }\r\n if (_isValidDate(newValue) && _isValidDate(newToDate)) {\r\n // check if to date is less than start date.\r\n let fromDateMo = moment(newValue);\r\n let toDateMo = moment(newToDate);\r\n if (fromDateMo.isAfter(toDateMo, 'day')) {\r\n newValue = fromDate;\r\n hasError = true;\r\n setFromDate(fromDate);\r\n if (fromDateRef.current != null) {\r\n fromDateRef.current.value = fromDate;\r\n }\r\n }\r\n }\r\n\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: newValue,\r\n toDate: newToDate\r\n };\r\n if (!hasError) {\r\n _fetchData(payload);\r\n }\r\n }\r\n const handleToDateChange: (newValue: string) => void = (newValue) => {\r\n setToDate(newValue);\r\n setPageNum(1);\r\n let hasError = false;\r\n let newToDate = newValue;\r\n if (_isValidDate(newValue) && !isUpcoming) {\r\n let toDateMo = moment(newValue);\r\n if (toDateMo.isAfter(moment(yesterday), 'day')) {\r\n hasError = true;\r\n newValue = yesterday;\r\n setToDate(newValue);\r\n if (toDateRef.current != null) {\r\n toDateRef.current.value = newValue;\r\n }\r\n }\r\n }\r\n if (_isValidDate(newValue) && _isValidDate(fromDate)) {\r\n // check if to date is less than start date.\r\n let fromDateMo = moment(fromDate);\r\n let toDateMo = moment(newValue);\r\n if (fromDateMo.isAfter(toDateMo, 'day')) {\r\n hasError = true;\r\n newToDate = toDate;\r\n setToDate(newToDate);\r\n if (toDateRef.current != null) {\r\n toDateRef.current.value = newToDate;\r\n }\r\n }\r\n }\r\n\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: newValue\r\n };\r\n if (!hasError) {\r\n _fetchData(payload);\r\n }\r\n }\r\n\r\n const resetFromDate: () => void = () => {\r\n let newTarget: string = '';\r\n if (isUpcoming) {\r\n newTarget = today;\r\n }\r\n if (fromDateRef.current != null) {\r\n fromDateRef.current.value = newTarget;\r\n }\r\n setFromDate(newTarget);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: newTarget,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n const resetToDate: () => void = () => {\r\n let newTarget: string = '';\r\n if (!isUpcoming) {\r\n newTarget = yesterday;\r\n }\r\n if (toDateRef.current != null) {\r\n toDateRef.current.value = newTarget;\r\n }\r\n setToDate(newTarget);\r\n \r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: newTarget\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n function _isValidDate(dateText: string): boolean {\r\n if (!(dateText && typeof dateText === 'string' && dateText.length > 0)) {\r\n return false;\r\n } else {\r\n let testResult = moment(dateText);\r\n if (!testResult.isValid()) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n }\r\n const handleSortChange: (newSortColumnName: string) => void = (newSortColumnName) => {\r\n let newIsDesc = sortOrderDesc;\r\n let newColumnName = sortByField;\r\n if (newSortColumnName === sortByField) {\r\n newIsDesc = !newIsDesc;\r\n } else {\r\n newColumnName = newSortColumnName;\r\n }\r\n\r\n setSortOrderDesc(newIsDesc);\r\n setSortByField(newColumnName);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: newColumnName,\r\n sortOrderDesc: newIsDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSearchChangeFn: (event: React.SyntheticEvent) => void = (event) => {\r\n //setSearchText((event.target as HTMLInputElement).value);\r\n setSearchText((event.target as HTMLInputElement).value);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: (event.target as HTMLInputElement).value,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleSearchChange = _.debounce(handleSearchChangeFn, 1000);\r\n\r\n const resetSearch: (event: React.SyntheticEvent) => void = (event) => {\r\n if (searchRef.current !== null) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const resetFilter: (event: React.SyntheticEvent) => void = (event) => {\r\n if (fromDateRef.current !== null) {\r\n (fromDateRef.current as HTMLInputElement).value = '';\r\n }\r\n if (toDateRef.current !== null) {\r\n (toDateRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setPageNum(1);\r\n const payload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n isUpcoming: isUpcoming,\r\n fromDate: '',\r\n toDate: ''\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n\r\n const _fetchData: (overwritePayload?: GetESPPayload) => void = (overwritePayload) => {\r\n const defaultPayload: GetESPPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isUpcoming: isUpcoming,\r\n fromDate: fromDate,\r\n toDate: toDate\r\n };\r\n\r\n let payload: GetESPPayload = defaultPayload;\r\n if (overwritePayload !== undefined) {\r\n payload = overwritePayload;\r\n }\r\n if (payload.fromDate === '') {\r\n payload.fromDate = null;\r\n }\r\n if (payload.toDate === '') {\r\n payload.toDate = null;\r\n }\r\n //console.log(payload);\r\n setIsLoading(true);\r\n if (saveState) {\r\n _saveState(payload);\r\n }\r\n getESPList(payload, false).then((result) => {\r\n setIsLoading(false);\r\n\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n\r\n let data = response.data as GetESPData;\r\n setData(data.gridData);\r\n setTotalRecords(data.totalRecords);\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n // there is no master data at the moment, but reserve this slot for possible future use.\r\n callBack();\r\n }\r\n\r\n const _saveState = (currentPayload: GetESPPayload) => {\r\n let stateName = statePropName || AppConfig.EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE;\r\n if (saveState) {\r\n utils.updateInLocalStorage(stateName, JSON.stringify(currentPayload));\r\n }\r\n }\r\n\r\n const _loadState = () => {\r\n let stateName = statePropName || AppConfig.EMPLOYERSPOTLIGHTPRESENTION_LIST_STATE;\r\n let stateString: string | null = utils.getLocalStorageItem(stateName);\r\n if (stateString && saveState) {\r\n return JSON.parse(stateString) as GetESPPayload;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n if (fromDateRef.current) {\r\n fromDateRef.current.value = fromDate;\r\n }\r\n if (toDateRef.current) {\r\n toDateRef.current.value = toDate;\r\n }\r\n _fetchMasterData(() => {\r\n let priviousState: GetESPPayload | null = _loadState();\r\n if (priviousState && saveState) {\r\n if(priviousState.isUpcoming && moment(priviousState.fromDate).isBefore(moment(),'day')){\r\n priviousState.fromDate = today;\r\n }\r\n if(!priviousState.isUpcoming && moment(priviousState.toDate).isSameOrAfter(moment(),'day')){\r\n priviousState.toDate = yesterday;\r\n }\r\n _fetchData(priviousState);\r\n setSortByField(priviousState.sortByField);\r\n setSortOrderDesc(priviousState.sortOrderDesc);\r\n setSearchText(priviousState.searchText);\r\n setRecordsPerPage(priviousState.recordsPerPage);\r\n setFromDate(priviousState.fromDate || '');\r\n setIsUpcoming(priviousState.isUpcoming);\r\n setToDate(priviousState.toDate || '');\r\n setPageNum(priviousState.pageNum);\r\n if (searchRef.current) {\r\n searchRef.current.value = priviousState.searchText || '';\r\n }\r\n if (fromDateRef.current) {\r\n fromDateRef.current.value = priviousState.fromDate || '';\r\n }\r\n if (toDateRef.current) {\r\n toDateRef.current.value = priviousState.toDate || '';\r\n }\r\n } else {\r\n _fetchData();\r\n }\r\n });\r\n\r\n }, []);\r\n\r\n return [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n isUpcoming, fromDate, toDate, fromDateRef, toDateRef,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange, handleIsUpcomingChange,\r\n handleFromDateChange, handleToDateChange, resetFromDate, resetToDate\r\n ] as const;\r\n}","import React, { Component, Fragment, useEffect, useState, useRef } from 'react';\r\nimport { Link, useParams, useHistory } from 'react-router-dom';\r\nimport _ from 'lodash';\r\nimport Swal from 'sweetalert2';\r\nimport { getESPById, bookESPSpot } from '../../../Services/EmployerSpotlightPresentationServices';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { CalendarEvent } from '../../../Types/CalendarEvent';\r\n\r\n\r\nexport type BookESPFormValues = {\r\n [key: string]: any;\r\n}\r\n\r\nexport type BookESPFormRef = {\r\n [key: string]: React.RefObject\r\n}\r\n\r\nexport type BookESPFormErrors = {\r\n [key: string]: string;\r\n}\r\n\r\nexport type BookESPFormTouched = {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n}\r\n\r\nexport type BookESPFormMasterData = {\r\n employerSpotlightPresentationId: number;\r\n organization: string | null;\r\n topic: string | null;\r\n presentationDate: string | null;\r\n startTime: string | null;\r\n endTime: string | null;\r\n presenter: string | null;\r\n presentationModeCode: string | null;\r\n location: string | null;\r\n notes: string | null;\r\n description: string | null;\r\n}\r\n\r\nexport function useBookESPForm() {\r\n const history = useHistory();\r\n\r\n let { ESPId } = useParams<{ ESPId: string }>();\r\n\r\n useEffect(() => {\r\n fetchData(ESPId);\r\n }, []);\r\n\r\n async function fetchData(ESPId?: string) {\r\n try {\r\n //get ESP data by presentationId\r\n if (ESPId) {\r\n const id: number = parseInt(ESPId);\r\n getESPById(id, false).then((response) => {\r\n\r\n if (response && response.status === 200 && response.data) {\r\n let newData:BookESPFormMasterData = response.data as BookESPFormMasterData;\r\n setMasterData(newData);\r\n } else {\r\n throw new Error('Unable to fetch Employer Spotlight Presentation data!');\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n } catch (error) {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `Unable to get data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n const defaultValues: BookESPFormValues = {\r\n\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n email: '',\r\n confirmEmail: '',\r\n\r\n };\r\n const validations = {\r\n\r\n firstName: async function (values: BookESPFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.firstName) {\r\n error = 'Please enter first name';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n lastName: async function (values: BookESPFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.lastName) {\r\n error = 'Please enter last name';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n phoneNumber: async function (values: BookESPFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n email: async function (values: BookESPFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.email && isValidEmail(values.email) === true)) {\r\n error = 'Please provide a valid email'\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n confirmEmail: async function (values: BookESPFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.confirmEmail && isValidEmail(values.confirmEmail) === true)) {\r\n error = 'Please provide a valid email'\r\n }else if(values.confirmEmail !== values.email){\r\n error = 'Email entries does not match'\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n\r\n }\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n //const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const debouncedValidateForm = validateForm;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n const [masterData, setMasterData] = useState(null);\r\n const [submitSuccess, setSubmitSuccess] = useState(false);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: BookESPFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: BookESPFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: BookESPFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n function saveData(viewModel: BookESPFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n newData.EmployerSpotlightPresentationId = parseInt(ESPId);\r\n delete newData.confirmEmail;\r\n bookESPSpot(newData,false).then((res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) {\r\n setSubmitSuccess(true);\r\n //console.log(res);\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n \r\n }\r\n else {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${res && res.data ? res.data : \"No detail reason available.\"}`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (error.response && error.response.data && error.response.status === 500) {\r\n let footer = '';\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `${error.response.data ? error.response.data : \"No detail reason available\"}`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n });\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(values: BookESPFormValues, validations: ValidtionFunctions, fieldName: string | null = null) {\r\n let newErrors: BookESPFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(() => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(() => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function handleBlur(fieldName: string) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n }\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n function isValidEmail(testTarget: string) {\r\n let myReg = /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}\\b/gi;\r\n return myReg.test(testTarget);\r\n }\r\n\r\n function handleDownloadCalendar(){\r\n if(masterData){\r\n let eventData: CalendarEvent = {\r\n startTime: masterData.startTime || '',\r\n endTime: masterData.endTime || '',\r\n summary: 'Employer Spotlight Presentation - ' + masterData.organization + ' - ' + masterData.topic,\r\n description: (masterData.description||\"\").replaceAll(\"\\n\", '=0D=0A'),\r\n location: (masterData.location || '').replaceAll(\"\\n\",' ')\r\n };\r\n utils.downloadICSFile(eventData);\r\n }\r\n }\r\n\r\n return [values, masterData, errors, touched, isLoading, isSubmitting, isValid, submitSuccess, errorMessage, registerRef, handleChange, handleBlur, handleSubmit, handleDownloadCalendar] as const;\r\n\r\n}\r\n","import React, { useState } from 'react';\r\nimport { Container, Form, Header, Icon, Breadcrumb, Button, Grid, Placeholder, Segment, Message } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useBookESPForm } from './useBookESPForm';\r\nimport moment from 'moment';\r\n\r\nexport function BookESPForm() {\r\n\r\n let [values, masterData, errors, touched, isLoading, isSubmitting, isValid, submitSuccess, errorMessage, registerRef, handleChange, handleBlur, handleSubmit, handleDownloadCalendar] = useBookESPForm();\r\n\r\n const history = useHistory();\r\n console.log(masterData);\r\n return \r\n
Book Your Employer Spotlight Presentation Spot
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentation\r\n \r\n Book Employer Spotlight Presentation Spot\r\n \r\n\r\n \r\n \r\n {\r\n !masterData &&\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 \r\n \r\n }\r\n {\r\n masterData &&\r\n \r\n
\r\n {masterData.organization + ' - ' + masterData.topic}\r\n
\r\n \r\n

\\r\\n\") }}>\r\n

\r\n \r\n \r\n Date\r\n {moment(masterData.startTime).format('dddd, MMM D, YYYY - hh:mm A')}{masterData.endTime ? ' to ' + moment(masterData.endTime).format('hh:mm A') : ''}\r\n \r\n \r\n Location\r\n {\r\n masterData.presentationModeCode !== 'OL' && masterData.location &&\r\n

\\r\\n\") }}>

\r\n }\r\n {\r\n masterData.presentationModeCode === 'OL' &&\r\n Online\r\n }\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n \r\n {\r\n !submitSuccess &&\r\n \r\n
\r\n {\r\n handleChange(data.value, 'firstName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('firstName') }\r\n }\r\n error={!(!errors.firstName || !touched.firstName) ? true : false}\r\n />\r\n {\r\n !(!errors.firstName || !touched.firstName) &&\r\n
{errors.firstName}
\r\n }\r\n {\r\n handleChange(data.value, 'lastName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('lastName') }\r\n }\r\n error={!(!errors.lastName || !touched.lastName) ? true : false}\r\n />\r\n {\r\n !(!errors.lastName || !touched.lastName) &&\r\n
{errors.lastName}
\r\n }\r\n {\r\n handleChange(data.value, 'phoneNumber');\r\n }}\r\n onBlur={\r\n () => { handleBlur('phoneNumber') }\r\n }\r\n error={!(!errors.phoneNumber || !touched.phoneNumber) ? true : false}\r\n />\r\n {\r\n !(!errors.phoneNumber || !touched.phoneNumber) &&\r\n
{errors.phoneNumber}
\r\n }\r\n {\r\n handleChange(data.value, 'email');\r\n }}\r\n onBlur={\r\n () => { handleBlur('email') }\r\n }\r\n error={!(!errors.email || !touched.email) ? true : false}\r\n />\r\n {\r\n !(!errors.email || !touched.email) &&\r\n
{errors.email}
\r\n }\r\n {\r\n handleChange(data.value, 'confirmEmail');\r\n }}\r\n onBlur={\r\n () => { handleBlur('confirmEmail') }\r\n }\r\n error={!(!errors.confirmEmail || !touched.confirmEmail) ? true : false}\r\n />\r\n {\r\n !(!errors.confirmEmail || !touched.confirmEmail) &&\r\n
{errors.confirmEmail}
\r\n }\r\n\r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n submitSuccess &&\r\n \r\n \r\n \r\n Success\r\n
Thank you for registering. A confirmation email has been sent to you and the participant.
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n}","import axios, { AxiosResponse } from 'axios';\r\nimport { TimeSlotDataPayload } from '../Components/Pages/RSAMeetingScheduler/RSAMeetingScheduler';\r\nimport moment from 'moment';\r\n\r\nexport async function getSpecialistMeetingList(payload: any, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 5,\r\n dataTableData: [\r\n {\r\n date: new Date().toISOString(),\r\n data: [\r\n {\r\n EmployerSpotlightPresentationId: 1,\r\n OrganizationName: 'OrganizationName 1',\r\n PresentationTopic: 'Hilton Presentation 1',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '10:00AM',\r\n EndTime: '11:00AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n {\r\n EmployerSpotlightPresentationId: 2,\r\n OrganizationName: 'OrganizationName 2',\r\n PresentationTopic: 'Hilton Presentation 2',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '11:30AM',\r\n EndTime: '11:45AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n {\r\n EmployerSpotlightPresentationId: 3,\r\n OrganizationName: 'OrganizationName 3',\r\n PresentationTopic: 'Hilton Presentation 3',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '2:30PM',\r\n EndTime: '2:55PM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n ]\r\n }\r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/EmployerSpotlightPresentation/SearchESP`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function searchSpecialistMeetingRequestList(payload: any, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n totalRecords: 5,\r\n dataTableData: [\r\n {\r\n date: new Date().toISOString(),\r\n data: [\r\n {\r\n something: 'test'\r\n }\r\n ]\r\n }\r\n ],\r\n }\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/EmployeeSpecialistMeeting/SearchEmploymentSpecialistMeetingRequest`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getSpecialistMeetingById(ESPId: number, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n EmployerSpotlightPresentationId: 1,\r\n OrganizationName: 'OrganizationName 1',\r\n PresentationTopic: 'Hilton Presentation 1',\r\n PresentationDate: new Date().toDateString(),\r\n StartTime: '10:00AM',\r\n EndTime: '11:00AM',\r\n PresentationModeCode: 'OL',\r\n Location: 'some good place to have a presentation',\r\n Notes: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old. Richard McClintock, a Latin professor at Hampden-Sydney College in Virginia, looked up one of the more obscure Latin words, consectetur, from a Lorem Ipsum passage, and going through the cites of the word in classical literature, discovered the undoubtable source. Lorem Ipsum comes from sections 1.10.32 and 1.10.33 of \"de Finibus Bonorum et Malorum\" (The Extremes of Good and Evil) by Cicero, written in 45 BC. This book is a treatise on the theory of ethics, very popular during the Renaissance. The first line of Lorem Ipsum, \"Lorem ipsum dolor sit amet..\", comes from a line in section 1.10.32.'\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/EmployerSpotlightPresentation/getESPById`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getSpecialistMeetingMaster(mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: [\r\n {\r\n EmploymentHelpTopicId: 1,\r\n DisplayName: 'Information on local degree and certificate programs',\r\n AskMoreInfo: false,\r\n MoreInfoText: null\r\n },\r\n {\r\n EmploymentHelpTopicId: 2,\r\n DisplayName: 'Resumes and cover letters',\r\n AskMoreInfo: false,\r\n MoreInfoText: null\r\n },\r\n {\r\n EmploymentHelpTopicId: 3,\r\n DisplayName: 'Searching and applying for jobs',\r\n AskMoreInfo: false,\r\n MoreInfoText: null\r\n },\r\n {\r\n EmploymentHelpTopicId: 4,\r\n DisplayName: 'Interview preparation and mock interviews',\r\n AskMoreInfo: false,\r\n MoreInfoText: null\r\n },\r\n {\r\n EmploymentHelpTopicId: 5,\r\n DisplayName: 'Other Assistance',\r\n AskMoreInfo: true,\r\n MoreInfoText: 'other assistance requested'\r\n },\r\n ],\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/Master/GetHelpTopics`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getSpecialistMeetingListAssignedToMaster(mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: [\r\n {\r\n id: 1,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 2,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 3,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 4,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n \r\n ],\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n // after the change that we decided that employmentCoorinator role is the one who actually been assigned to meet the client.\r\n let result = await axios.get(`/EmployeeSpecialistMeeting/GetEmploymentCoordinators`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getSpecialistMeetingRequestCoordinators(mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: [\r\n {\r\n id: 1,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 2,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 3,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n {\r\n id: 4,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n \r\n ],\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/EmployeeSpecialistMeeting/GetEmploymentCoordinators`);\r\n return result;\r\n }\r\n}\r\nexport async function getCounselorsList(mockMode = false) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: [\r\n {\r\n id: 1,\r\n displayName: 'Dummy data - API pending',\r\n },\r\n ],\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/EmployeeSpecialistMeeting/GetCounselors`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function postMeetingRequest(payload: any, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n isSuccess: true,\r\n failReason: '',\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/EmployeeSpecialistMeeting/SaveEmploymentSpecialistMeetingRequest`, payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getSpecialistMeetingRequestById(MRId: string, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n employmentSpecialistMeetingRequestId: '',\r\n requestedBy: '',\r\n preferredDateTime: '',\r\n comments: '',\r\n requestedDate: '',\r\n helpTopics: ['topic1','topic2']\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.get(`/EmployeeSpecialistMeeting/GetEmploymentSpecialistMeetingRequest/${MRId}`);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function saveRSAStaffSchedule(payload: any, mockMode = true) {\r\n const dummyResponse = {\r\n status: 200,\r\n data: {\r\n employmentSpecialistMeetingRequestId: '',\r\n requestedBy: '',\r\n preferredDateTime: '',\r\n comments: '',\r\n requestedDate: '',\r\n helpTopics: ['topic1','topic2']\r\n },\r\n };\r\n if (mockMode === true) {\r\n await new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/EmployeeSpecialistMeeting/SaveRSAStaffSchedule`,payload);\r\n return result;\r\n }\r\n}\r\n\r\nexport async function getTimeSlotData(payload: TimeSlotDataPayload, mockMode = true) {\r\n const startOfMonth = moment(payload.selectedDate).startOf('month');\r\n const endOfMonth = moment(payload.selectedDate).endOf('month');\r\n let currDay = moment(payload.selectedDate).startOf('month');\r\n //let monthArray: string[] = [];\r\n let testData:any[] = [];\r\n while(currDay.isSameOrBefore(endOfMonth,'day')){\r\n let tempDay = moment(currDay.format()).startOf('day');\r\n //monthArray.push(tempDay.format());\r\n let startTime = tempDay.add(9,'hour').format();\r\n let meetingCount = getRandomInt(4);\r\n for(let i=0;i {\r\n setTimeout(() => {\r\n resolve(null);\r\n }, 2000);\r\n });\r\n return dummyResponse;\r\n\r\n } else {\r\n let result = await axios.post(`/EmployeeSpecialistMeeting/GetRSAStaffScheduleInfo`,payload);\r\n return result;\r\n }\r\n}\r\n\r\nfunction getRandomInt(max:number) {\r\n return Math.floor(Math.random() * max);\r\n }","import React, { Component, Fragment, useEffect, useState, useRef } from \"react\";\r\nimport { Link, useParams, useHistory } from \"react-router-dom\";\r\nimport _ from \"lodash\";\r\nimport Swal from \"sweetalert2\";\r\nimport {\r\n getSpecialistMeetingMaster,\r\n postMeetingRequest,\r\n getSpecialistMeetingRequestCoordinators,\r\n} from \"../../../Services/SpecialistMeetingServices\";\r\nimport { utils } from \"../../../helpers/utils\";\r\n\r\nexport type RSASpecialistMeeingFormValues = {\r\n [key: string]: any;\r\n};\r\n\r\nexport type RSASpecialistMeeingFormRef = {\r\n [key: string]: React.RefObject;\r\n};\r\n\r\nexport type RSASpecialistMeeingFormErrors = {\r\n [key: string]: string;\r\n};\r\n\r\nexport type RSASpecialistMeeingFormTouched = {\r\n [key: string]: boolean;\r\n};\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n};\r\n\r\nexport type RSASpecialistMeeingFormMasterData =\r\n RSASpecialistMeeingFormMasterDataRow[];\r\n\r\nexport type RSASpecialistMeeingFormMasterDataRow = {\r\n employmentHelpTopicId: number;\r\n displayName: string | null;\r\n askMoreInfo: boolean | null;\r\n moreInfoText: string | null;\r\n};\r\n\r\nexport type MasterDataIdValueOption = {\r\n id: number,\r\n value: string,\r\n}\r\n\r\nexport type DropdownOption = {\r\n text: string,\r\n value: string | number,\r\n}\r\n\r\nexport function useRSASpecialistMeetingForm() {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, []);\r\n\r\n async function fetchData() {\r\n try {\r\n //get master data\r\n getSpecialistMeetingMaster(false).then((response) => {\r\n if (response && response.status === 200 && response.data) {\r\n let newData: RSASpecialistMeeingFormMasterData =\r\n response.data as RSASpecialistMeeingFormMasterData;\r\n let otherAssistanceOptionIndex: number = newData.findIndex((item) => {\r\n if (item.displayName?.toLowerCase().includes(\"assistance\")) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n });\r\n if (otherAssistanceOptionIndex !== -1) {\r\n let otherAssistanceOption = newData[otherAssistanceOptionIndex];\r\n newData.splice(otherAssistanceOptionIndex, 1);\r\n newData.push(otherAssistanceOption);\r\n }\r\n setMasterData(newData);\r\n } else {\r\n throw new Error(\r\n \"Unable to fetch Employer Spotlight Presentation data!\"\r\n );\r\n }\r\n });\r\n\r\n getSpecialistMeetingRequestCoordinators(false).then((response) => {\r\n if (response && response.status === 200 && response.data) {\r\n let newData: MasterDataIdValueOption[] =\r\n response.data as MasterDataIdValueOption[];\r\n setCoordinatorMaster(newData.map((item)=>{\r\n return {\r\n text: item.value,\r\n value: item.id\r\n }\r\n }));\r\n } else {\r\n throw new Error(\r\n \"Unable to fetch available employment coordinators' data!\"\r\n );\r\n }\r\n });\r\n } catch (error) {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n text: `Unable to get necessory data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: \"#1678c2\",\r\n }).then(() => {});\r\n }\r\n }\r\n\r\n const defaultValues: RSASpecialistMeeingFormValues = {\r\n firstName: \"\",\r\n lastName: \"\",\r\n phoneNumber: \"\",\r\n email: \"\",\r\n confirmEmail: \"\",\r\n coordinatorId: null,\r\n helpTopicIds: [],\r\n otherAssistance: \"\",\r\n preferedDateTime: \"\",\r\n comments: \"\",\r\n };\r\n const validations = {\r\n firstName: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.firstName) {\r\n error = \"Please enter first name\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n lastName: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.lastName) {\r\n error = \"Please enter last name\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n phoneNumber: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (values.phoneNumber && !utils.isValidPhone(values.phoneNumber)) {\r\n error = 'Please provide a valid phone number like: \"123 456 7890\"';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n email: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.email && isValidEmail(values.email) === true)) {\r\n error = \"Please provide a valid email\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n confirmEmail: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n !(values.confirmEmail && isValidEmail(values.confirmEmail) === true)\r\n ) {\r\n error = \"Please provide a valid email\";\r\n } else if (values.confirmEmail !== values.email) {\r\n error = \"Email entries does not match\";\r\n }\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n coordinatorId: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(!!values.coordinatorId && values.coordinatorId > 0)) {\r\n error = \"Please select an Employment Coordinator\";\r\n }\r\n \r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n helpTopicIds: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.helpTopicIds && values.helpTopicIds.length > 0)) {\r\n error = \"Please select at least one Help Topic\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n otherAssistance: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (\r\n getShouldDisplayOtherField(values.helpTopicIds, masterData) ===\r\n true &&\r\n !values.otherAssistance\r\n ) {\r\n error = \"Please enter other assistance requested\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n preferedDateTime: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.preferedDateTime) {\r\n error = \"Please enter Preferred Date Time\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n comments: async function (values: RSASpecialistMeeingFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.comments) {\r\n error = \"Please enter comments\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise((resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n };\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] =\r\n useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n //const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const debouncedValidateForm = validateForm;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n const [masterData, setMasterData] =\r\n useState([]);\r\n const [submitSuccess, setSubmitSuccess] = useState(false);\r\n const [coordinatorMaster, setCoordinatorMaster] = useState([]);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: RSASpecialistMeeingFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: RSASpecialistMeeingFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: RSASpecialistMeeingFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n\r\n function saveData(values: RSASpecialistMeeingFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(values);\r\n newData.PreferredTimes = newData.preferedDateTime;\r\n delete newData.preferedDateTime;\r\n newData.RequestorComments = newData.comments;\r\n delete newData.comments;\r\n newData.HelpTopics = newData.helpTopicIds.map((topicId: any) => {\r\n return {\r\n EmploymentHelpTopicId: topicId,\r\n OtherDescription: masterData.filter((item) => {\r\n return item.employmentHelpTopicId === topicId;\r\n })[0].askMoreInfo\r\n ? newData.otherAssistance\r\n : null,\r\n };\r\n });\r\n delete newData.helpTopicIds;\r\n delete newData.confirmEmail;\r\n delete newData.otherAssistance;\r\n newData.phoneNumber = utils.formatPhoneNumber(newData.phoneNumber);\r\n postMeetingRequest(newData, false).then(\r\n (res) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (res && res.status === 200) {\r\n setSubmitSuccess(true);\r\n //console.log(res);\r\n } else if (res && res.status === 401) {\r\n setIsValid(false);\r\n } else {\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n\r\n text: `${\r\n res && res.data\r\n ? // @ts-expect-error\r\n res.data.message\r\n ? // @ts-expect-error\r\n res.data.message\r\n : \"\"\r\n : \"No detail reason available.\"\r\n }`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: \"#1678c2\",\r\n }).then(() => {});\r\n }\r\n },\r\n (error) => {\r\n setIsLoading(false);\r\n setIsSubmitting(false);\r\n if (\r\n error.response &&\r\n error.response.data &&\r\n error.response.status === 500\r\n ) {\r\n let footer = \"\";\r\n Swal.fire({\r\n icon: \"error\",\r\n title: \"Error While Processing\",\r\n text: `${\r\n error.response.data.message\r\n ? error.response.data.message\r\n : \"No detail reason available\"\r\n }`,\r\n showConfirmButton: true,\r\n footer: footer,\r\n confirmButtonText: \"OK\",\r\n }).then(() => {});\r\n }\r\n }\r\n );\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(\r\n values: RSASpecialistMeeingFormValues,\r\n validations: ValidtionFunctions,\r\n fieldName: string | null = null\r\n ) {\r\n let newErrors: RSASpecialistMeeingFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(\r\n () => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n },\r\n (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }\r\n );\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(\r\n () => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n },\r\n (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }\r\n );\r\n });\r\n }\r\n }\r\n\r\n function handleBlur(fieldName: string) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n };\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n if (fieldName === \"phoneNumber\") {\r\n if (newValue && utils.isValidPhone(newValue)) {\r\n newValue = utils.formatPhoneNumber(newValue);\r\n newValue = utils.formatPhoneNumber(newValue);\r\n }\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n const getShouldDisplayOtherField = (\r\n currValues: number[],\r\n masterData: RSASpecialistMeeingFormMasterData\r\n ): boolean => {\r\n let result = false;\r\n masterData.forEach((item) => {\r\n if (item.askMoreInfo) {\r\n if (currValues.includes(item.employmentHelpTopicId)) {\r\n result = true;\r\n }\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n const shouldDisplayOtherField: boolean = getShouldDisplayOtherField(\r\n values.helpTopicIds,\r\n masterData\r\n );\r\n const otherFieldText: string | null = shouldDisplayOtherField\r\n ? masterData.filter((item) => {\r\n return item.askMoreInfo === true;\r\n })[0].moreInfoText\r\n : \"\";\r\n\r\n function isValidEmail(testTarget: string) {\r\n let myReg = /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}\\b/gi;\r\n return myReg.test(testTarget);\r\n }\r\n\r\n return [\r\n values,\r\n masterData,\r\n coordinatorMaster,\r\n errors,\r\n touched,\r\n isLoading,\r\n isSubmitting,\r\n isValid,\r\n submitSuccess,\r\n errorMessage,\r\n shouldDisplayOtherField,\r\n otherFieldText,\r\n registerRef,\r\n handleChange,\r\n handleBlur,\r\n handleSubmit,\r\n ] as const;\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { Container, Form, Header, Dropdown, Icon, Breadcrumb, Button, Grid, Placeholder, Checkbox, Message, TextArea } from 'semantic-ui-react';\r\nimport { Link } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport { useRSASpecialistMeetingForm } from './useRSASpecialistMeetingForm';\r\n\r\nimport _ from 'lodash';\r\n\r\nexport function RSASpecialistMeetingForm() {\r\n\r\n let [values, masterData,coordinatorMaster,\r\n errors, touched, isLoading, isSubmitting, isValid,\r\n submitSuccess, errorMessage, shouldDisplayOtherField, otherFieldText,\r\n registerRef, handleChange, handleBlur, handleSubmit] = useRSASpecialistMeetingForm();\r\n\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n window.setTimeout(()=>{\r\n window.scrollTo(0,0);\r\n },100);\r\n \r\n }, []);\r\n\r\n return \r\n
Meet with an RSA Employment Coordinator
\r\n
\r\n \r\n Home\r\n \r\n Schedule a meeting with an RSA Employment Coordinator\r\n \r\n \r\n {\r\n !(masterData && masterData.length >= 1) &&\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 \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n !submitSuccess && (masterData && masterData.length >= 1) &&\r\n \r\n \r\n
\r\n {\r\n handleChange(data.value, 'firstName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('firstName') }\r\n }\r\n error={!(!errors.firstName || !touched.firstName) ? true : false}\r\n />\r\n {\r\n !(!errors.firstName || !touched.firstName) &&\r\n
{errors.firstName}
\r\n }\r\n {\r\n handleChange(data.value, 'lastName');\r\n }}\r\n onBlur={\r\n () => { handleBlur('lastName') }\r\n }\r\n error={!(!errors.lastName || !touched.lastName) ? true : false}\r\n />\r\n {\r\n !(!errors.lastName || !touched.lastName) &&\r\n
{errors.lastName}
\r\n }\r\n {\r\n handleChange(data.value, 'phoneNumber');\r\n }}\r\n onBlur={\r\n () => { handleBlur('phoneNumber') }\r\n }\r\n error={!(!errors.phoneNumber || !touched.phoneNumber) ? true : false}\r\n />\r\n {\r\n !(!errors.phoneNumber || !touched.phoneNumber) &&\r\n
{errors.phoneNumber}
\r\n }\r\n {\r\n handleChange(data.value, 'email');\r\n }}\r\n onBlur={\r\n () => { handleBlur('email') }\r\n }\r\n error={!(!errors.email || !touched.email) ? true : false}\r\n />\r\n {\r\n !(!errors.email || !touched.email) &&\r\n
{errors.email}
\r\n }\r\n {\r\n handleChange(data.value, 'confirmEmail');\r\n }}\r\n onBlur={\r\n () => { handleBlur('confirmEmail') }\r\n }\r\n error={!(!errors.confirmEmail || !touched.confirmEmail) ? true : false}\r\n />\r\n {\r\n !(!errors.confirmEmail || !touched.confirmEmail) &&\r\n
{errors.confirmEmail}
\r\n }\r\n {\r\n coordinatorMaster && coordinatorMaster.length > 0 &&\r\n \r\n \r\n {\r\n let newValue = (data as { value: any }).value;\r\n handleChange(newValue, 'coordinatorId');\r\n }}\r\n onClose={\r\n () => { handleBlur('coordinatorId') }\r\n }\r\n error={!(!errors.coordinatorId || !touched.coordinatorId) ? true : false}\r\n />\r\n {\r\n !(!errors.coordinatorId || !touched.coordinatorId) &&\r\n
{errors.coordinatorId}
\r\n }\r\n
\r\n }\r\n
\r\n \r\n {\r\n masterData && masterData.map((topicItem, index) => {\r\n return (\r\n \r\n {\r\n let newValue = _.cloneDeep(values.helpTopicIds);\r\n if (!checked) {\r\n let targetIndex = newValue.indexOf(topicItem.employmentHelpTopicId);\r\n newValue.splice(targetIndex, 1);\r\n } else {\r\n newValue.push(topicItem.employmentHelpTopicId);\r\n }\r\n handleChange(newValue, 'helpTopicIds');\r\n }}\r\n />\r\n \r\n );\r\n })\r\n }\r\n {\r\n shouldDisplayOtherField &&\r\n <>\r\n {\r\n handleChange(data.value, 'otherAssistance');\r\n }}\r\n onBlur={\r\n () => { handleBlur('otherAssistance') }\r\n }\r\n error={!(!errors.otherAssistance || !touched.otherAssistance) ? true : false}\r\n />\r\n {\r\n !(!errors.otherAssistance || !touched.otherAssistance) &&\r\n
{errors.otherAssistance}
\r\n }\r\n \r\n }\r\n {\r\n !(!errors.helpTopicIds || !touched.helpTopicIds) &&\r\n
{errors.helpTopicIds}
\r\n }\r\n\r\n
\r\n \r\n \r\n
Please provide a few options.
\r\n {\r\n handleChange(data.value, 'preferedDateTime');\r\n }}\r\n onBlur={\r\n () => { handleBlur('preferedDateTime') }\r\n }\r\n error={!(!errors.preferedDateTime || !touched.preferedDateTime) ? true : false}\r\n />\r\n
\r\n {\r\n !(!errors.preferedDateTime || !touched.preferedDateTime) &&\r\n
{errors.preferedDateTime}
\r\n }\r\n {\r\n handleChange(data.value, 'comments');\r\n }}\r\n onBlur={\r\n () => { handleBlur('comments') }\r\n }\r\n error={!(!errors.comments || !touched.comments) ? true : false}\r\n />\r\n {\r\n !(!errors.comments || !touched.comments) &&\r\n
{errors.comments}
\r\n }\r\n\r\n\r\n \r\n \r\n \r\n
\r\n }\r\n {\r\n submitSuccess &&\r\n \r\n \r\n \r\n Success\r\n
Thank you. An RSA Employment Coordinator will contact the job seeker to confirm the appointment.
\r\n
\r\n Back to home page\r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n\r\n
\r\n}","import React, { useState, useEffect, useRef } from 'react';\r\nimport { Container, Form, Header, Icon, Breadcrumb, Table, Grid, Placeholder, Segment, Message, Dropdown } from 'semantic-ui-react';\r\nimport moment, { Moment } from 'moment';\r\nimport { render } from '@testing-library/react';\r\n\r\nexport interface TimeSlotData {\r\n label: string;\r\n supperScriptLable?: string;\r\n timeSlots: SlotData[];\r\n}\r\n\r\nexport interface SlotData {\r\n startTime: string;\r\n endTime: string;\r\n isTaken: boolean;\r\n slotId: string;\r\n meetingId?: number;\r\n meetingLength?: number;\r\n}\r\n\r\nexport interface TimeSlotProps {\r\n isReadOnly?: boolean;\r\n selectedDate: string;\r\n meetingsList: MeetingEvent[];\r\n onTimeChange?: Function;\r\n}\r\n\r\nexport interface MeetingEvent {\r\n meetingId: number;\r\n startTime: string;\r\n endTime: string;\r\n requesterName: string;\r\n}\r\n\r\nexport const TimeSlot: React.FC = (props: TimeSlotProps) => {\r\n const slotTimeInterval = 30;\r\n const rowSlotsCount = 2;\r\n const slotHeight = 2;\r\n const dayStartTime = '08:00 AM';\r\n const dayEndTime = '04:00 PM';\r\n const isReadOnly: boolean = props.isReadOnly || false;\r\n\r\n const [isMousedown, setIsMousedown] = useState(false);\r\n const [selectedSlots, setSelectedSlots] = useState>(new Map());\r\n const [takenSlotMap, setTakenSlotMap] = useState>(new Map());\r\n const [renderCounter, setRenderCounter] = useState(0);\r\n const slotArrayRef = useRef([]);\r\n const [data, setData] = useState();\r\n\r\n const selectedStartTime = useRef(moment(props.selectedDate + dayEndTime).add(1, 'minute').format());\r\n const selectedEndTime = useRef(moment(props.selectedDate + dayStartTime).add(-1,'minute').format());\r\n\r\n useEffect(() => {\r\n let newRenderData = getDataArray(props);\r\n setData(newRenderData);\r\n }, [props]);\r\n\r\n const getDataArray = (props: TimeSlotProps): TimeSlotData[] => {\r\n let startTimeOfDay: Moment = moment(props.selectedDate + dayStartTime);\r\n let endTimeOfDay: Moment = moment(props.selectedDate + dayEndTime);\r\n let currTime = moment(props.selectedDate + dayStartTime);\r\n let timeArray: string[] = [];\r\n if (currTime.isValid()) {\r\n while (currTime.isSameOrBefore(endTimeOfDay, 'minute')) {\r\n timeArray.push(currTime.format());\r\n currTime = currTime.add(slotTimeInterval, 'minute');\r\n }\r\n };\r\n let slotData = [];\r\n for (let i = 1; i < timeArray.length; i++) {\r\n let tmepSlotData: SlotData = {\r\n startTime: timeArray[i - 1],\r\n endTime: timeArray[i],\r\n isTaken: false,\r\n slotId: 'time-slot-' + (i - 1).toString(),\r\n meetingId: 0,\r\n };\r\n props.meetingsList.forEach((meeting)=>{\r\n let meetingStartTime = moment(meeting.startTime);\r\n let meetingEndTime = moment(meeting.endTime);\r\n let slotStartTime = moment(timeArray[i - 1]);\r\n let slotEndTime = moment(timeArray[i]);\r\n \r\n if(meetingStartTime.isSameOrBefore(slotStartTime) &&\r\n meetingEndTime.isSameOrAfter(slotEndTime)\r\n ){\r\n tmepSlotData.isTaken = true;\r\n }\r\n if(meetingStartTime.isSame(slotStartTime,'minute')){\r\n tmepSlotData.meetingId = meeting.meetingId;\r\n // compute meeting length\r\n tmepSlotData.meetingLength = Math.floor(meetingEndTime.diff(meetingStartTime, 'minute') / slotTimeInterval);\r\n }\r\n });\r\n slotData.push(tmepSlotData);\r\n }\r\n slotArrayRef.current = slotData;\r\n\r\n let timeSlotDataArray: TimeSlotData[] = [];\r\n let currIndex = 0;\r\n let rowFilledCount = 0;\r\n let currObj: TimeSlotData = {\r\n label: '',\r\n timeSlots: []\r\n };\r\n while (currIndex < slotData.length) {\r\n if (rowFilledCount === 0) {\r\n currObj = {\r\n label: moment(slotData[currIndex].startTime).format('h:mm'),\r\n supperScriptLable: moment(slotData[currIndex].startTime).format('A'),\r\n timeSlots: [],\r\n };\r\n }\r\n currObj.timeSlots.push(slotData[currIndex]);\r\n rowFilledCount += 1;\r\n if (rowFilledCount === rowSlotsCount) {\r\n timeSlotDataArray.push(currObj);\r\n rowFilledCount = 0;\r\n }\r\n currIndex += 1;\r\n }\r\n return timeSlotDataArray;\r\n }\r\n\r\n function reRender() {\r\n setRenderCounter((prevValue)=>{return prevValue + 1});\r\n }\r\n\r\n function handleMouseEnter(elementId: string, isTaken: boolean = false) {\r\n //console.log( (event.target as HTMLElement).id);\r\n let thisSlot = slotArrayRef.current.filter((item)=>{return item.slotId === elementId})[0];\r\n if (isMousedown && thisSlot.isTaken == false) {\r\n if(moment(thisSlot.startTime).isSameOrBefore(moment(selectedStartTime.current), 'minute')){\r\n selectedStartTime.current = thisSlot.startTime;\r\n }\r\n if(moment(thisSlot.endTime).isSameOrAfter(moment(selectedEndTime.current), 'minute')){\r\n selectedEndTime.current = thisSlot.endTime;\r\n }\r\n reRender();\r\n selectedSlots.set(elementId, true);\r\n } else {\r\n if (isTaken && selectedSlots.size > 0) {\r\n finishSelect();\r\n }\r\n }\r\n }\r\n\r\n function handleMouseDown(elementId:string) {\r\n let thisSlot = slotArrayRef.current.filter((item)=>{return item.slotId === elementId})[0];\r\n if ( thisSlot.isTaken == false) {\r\n // slot can not be already taken\r\n // set selected list to new.\r\n let newMap = new Map();\r\n newMap.set(elementId, true);\r\n setSelectedSlots(newMap);\r\n \r\n selectedStartTime.current = moment(props.selectedDate + dayEndTime).add(1, 'minute').format();\r\n selectedEndTime.current = moment(props.selectedDate + dayStartTime).add(-1, 'minute').format();\r\n\r\n setIsMousedown(true);\r\n let thisSlot = slotArrayRef.current.filter((item)=>{return item.slotId === elementId})[0];\r\n if(moment(thisSlot.startTime).isSameOrBefore(moment(selectedStartTime.current), 'minute')){\r\n selectedStartTime.current = thisSlot.startTime;\r\n }\r\n if(moment(thisSlot.endTime).isSameOrAfter(moment(selectedEndTime.current), 'minute')){\r\n selectedEndTime.current = thisSlot.endTime;\r\n }\r\n window.document.addEventListener('mouseup', handleMouseUp);\r\n window.document.getElementById('time-slot-wrapper')?.addEventListener('mouseleave', handleMouseLeaveWrapper);\r\n }\r\n\r\n }\r\n\r\n function handleMouseLeaveWrapper(event?: MouseEvent | React.MouseEvent){\r\n finishSelect();\r\n };\r\n\r\n function handleMouseUp(event?: MouseEvent) {\r\n if( event && (event.target as HTMLElement).tagName !== 'SPAN'\r\n && event && (event.target as HTMLElement).className == 'time-slot-slot-box selected'\r\n ){\r\n finishSelect();\r\n }\r\n }\r\n\r\n function finishSelect(){\r\n setIsMousedown(false);\r\n props.onTimeChange && props.onTimeChange({\r\n startTime: selectedStartTime.current,\r\n endTime: selectedEndTime.current\r\n });\r\n window.removeEventListener('mouseup', handleMouseUp);\r\n window.document.getElementById('time-slot-wrapper')?.removeEventListener('mouseleave', handleMouseLeaveWrapper);\r\n }\r\n\r\n useEffect(() => {\r\n return () => {\r\n window.document.removeEventListener('mouseup', handleMouseUp);\r\n }\r\n }, []);\r\n\r\n return
\r\n
Time Slots
\r\n {\r\n data && data.length > 0 &&\r\n data.map((rowData, rowIndex) => {\r\n return (\r\n
\r\n
\r\n {rowData.label}{rowData.supperScriptLable ? {rowData.supperScriptLable} : ''}\r\n
\r\n
\r\n {\r\n rowData.timeSlots.length > 0 && rowData.timeSlots.map((slot, slotIndex) => {\r\n let isSelected: boolean = selectedSlots.get(slot.slotId) !== undefined;\r\n let meetingData = undefined;\r\n if(slot.meetingId !== undefined){\r\n meetingData = props.meetingsList.filter((meeting)=>{return meeting.meetingId == slot.meetingId})[0];\r\n }\r\n if(slot.isTaken){\r\n return (\r\n
{handleMouseEnter(slot.slotId,true)}}\r\n >\r\n {\r\n slot.meetingId !== 0 &&\r\n
{handleMouseEnter(slot.slotId, true)}}\r\n >\r\n \r\n {\r\n meetingData && meetingData.requesterName && \r\n Meeting with {(meetingData as MeetingEvent)?.requesterName || ''}\r\n }\r\n \r\n
\r\n }\r\n
\r\n );\r\n }\r\n else {\r\n return (\r\n
{ \r\n if(!isReadOnly){\r\n handleMouseDown(slot.slotId)}\r\n }\r\n }\r\n onMouseEnter={()=>{handleMouseEnter(slot.slotId)}}\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 selectedSlots.size > 0 &&\r\n

You have selected: {moment(selectedStartTime.current).format('hh:mm A')} - {moment(selectedEndTime.current).format('hh:mm A')}

\r\n }\r\n \r\n
\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Container, Form, Header, Icon, Breadcrumb, Button, Grid, Placeholder, Segment, Message, Dropdown } from 'semantic-ui-react';\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport { useHistory, useLocation } from 'react-router';\r\nimport DayPicker, { DayModifiers, Modifier } from 'react-day-picker';\r\nimport 'react-day-picker/lib/style.css';\r\nimport moment from 'moment';\r\nimport { TimeSlot } from './TimeSlot';\r\nimport { getSpecialistMeetingListAssignedToMaster, getSpecialistMeetingRequestById, saveRSAStaffSchedule, getTimeSlotData } from '../../../Services/SpecialistMeetingServices';\r\nimport { AxiosResponse } from \"axios\";\r\nimport { utils } from \"../../../helpers/utils\";\r\nimport { CalendarEvent } from \"../../../Types/CalendarEvent\";\r\nimport { User } from \"../../../Types/User\";\r\nimport { userRole } from \"../../../Constants/userRoles\";\r\n\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\nexport interface MasterDataItem {\r\n value: string;\r\n id: number;\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n\r\n}\r\n\r\nexport interface MasterData {\r\n assignedToOptions: PageSizeOption[],\r\n}\r\n\r\nexport interface SMRData {\r\n employmentSpecialistMeetingRequestId: number;\r\n clientName: string;\r\n requestedBy: string;\r\n assignedTo: number;\r\n assignedToName: string;\r\n preferredDateTime: string;\r\n comments: string;\r\n requestedDate: string;\r\n helpTopics: string[];\r\n phomeNumber: string;\r\n email: string;\r\n}\r\n\r\nexport interface TimeSlotDataPayload {\r\n staffId: number;\r\n selectedDate: string;\r\n}\r\n\r\nexport interface TimeSlotData {\r\n meetingDate: string;\r\n startTime: string;\r\n endTime: string;\r\n requestedBy: string;\r\n}\r\n\r\nexport interface MeetingEvent {\r\n meetingId: number;\r\n meetingDate: string;\r\n startTime: string;\r\n endTime: string;\r\n requesterName: string;\r\n}\r\n\r\nexport interface MeetingTime {\r\n startTime: string;\r\n endTime: string;\r\n}\r\n\r\nexport function RSAMeetingScheduler() {\r\n const history = useHistory();\r\n const currUser: User | undefined= utils.getUserFromLocalToken() as (User | undefined);\r\n const isReadOnly = (currUser?.Roles?.includes(userRole['Employment Coordinator']) === true || \r\n currUser?.Roles?.includes(userRole.Counselor) === true\r\n ) ? false : true;\r\n let { MRId } = useParams<{ MRId: string }>();\r\n\r\n const [renderCounter, setRenderCounter] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [masterData, setMasterData] = useState();\r\n const [meetingRequestData, setMeetingRequestData] = useState();\r\n const [comments, setComments] = useState('');\r\n const [selectedDay, setSelectedDay] = useState(null);\r\n const [selectedSpecialistId, setSelectedSpecialistId] = useState(0);\r\n const [timeSlotData, setTimeSlotData] = useState([]);\r\n const [meetingTime, setMeetingTime] = useState(null);\r\n const [errorMessage, setErrorMessage] = useState([]);\r\n const [submittedSucess, setSubmittedSucess] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [monthEventData, setMonthEventData] = useState>(new Map());\r\n const [isUserCoordinator, setIsUserCoordinator] = useState((currUser?.Roles?.includes(userRole['Employment Coordinator']) === true) ? true : false);\r\n\r\n function handleDayClick(day: Date, data: DayModifiers) {\r\n if (day && data && !data.selected && !data.disabled && !data.outside) {\r\n setSelectedDay(day);\r\n // when day change, this day must already within current month's data\r\n let tempData = monthEventData.get(moment(day).format().split('T')[0]) || [];\r\n //console.log(tempData);\r\n setTimeSlotData(tempData);\r\n reRender();\r\n onDayChange();\r\n }\r\n }\r\n\r\n function reRender() {\r\n setRenderCounter((prevValue) => { return prevValue + 1 });\r\n }\r\n\r\n function handleSpecailistChange(newId: number) {\r\n setSelectedSpecialistId(newId);\r\n if (selectedDay) {\r\n _fetchTimeSlotData(selectedDay, newId, true,);\r\n } else {\r\n _fetchTimeSlotData(moment().toDate(), newId, true,);\r\n }\r\n setErrorMessage([]);\r\n }\r\n\r\n function onDayChange() {\r\n setMeetingTime(null);\r\n setErrorMessage([]);\r\n }\r\n\r\n function handleMonthChange(newMonth: Date) {\r\n _fetchTimeSlotData(newMonth, selectedSpecialistId, false);\r\n }\r\n\r\n function renderDay(date: Date, modifiers: DayModifiers) {\r\n const dateNumber = date.getDate();\r\n const isToday: boolean = moment().isSame(moment(date), 'day');\r\n const dataKey = moment(date).format().split('T')[0];\r\n let currDayList = monthEventData.get(dataKey) || [];\r\n let meetingCount = currDayList.length;\r\n let classNameBase = 'my-day-container ';\r\n if (meetingCount === 0) {\r\n classNameBase += 'empty';\r\n } else if (meetingCount >= 1) {\r\n classNameBase += 'partial-taken';\r\n }\r\n return (\r\n
\r\n {dateNumber}\r\n {\r\n isToday &&\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n setIsLoading(true);\r\n getSpecialistMeetingListAssignedToMaster(false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response && response.status === 200 && response.data) {\r\n let data = response.data as MasterDataItem[];\r\n let newMasterData: MasterData = {\r\n assignedToOptions: []\r\n };\r\n\r\n let assignedToOptions: PageSizeOption[] = data.map((item, index) => {\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.value\r\n }\r\n });\r\n newMasterData.assignedToOptions = assignedToOptions;\r\n setMasterData(newMasterData);\r\n }\r\n callBack();\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchData: () => void = () => {\r\n\r\n //console.log(payload);\r\n setIsLoading(true);\r\n\r\n getSpecialistMeetingRequestById(MRId, false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as SMRData;\r\n setMeetingRequestData(data);\r\n if(data && data.assignedTo && data.assignedTo > 0){\r\n setTimeout(()=>{\r\n handleSpecailistChange(data.assignedTo);\r\n }, 200);\r\n }\r\n \r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchTimeSlotData: (targetDate: Date, staffId: number, setSlotData?: boolean) => void = (targetDate, staffId, setSlotData = false) => {\r\n //console.log(payload);\r\n setIsLoading(true);\r\n\r\n let payload: TimeSlotDataPayload = {\r\n staffId: staffId,\r\n selectedDate: moment(targetDate).format(),\r\n };\r\n getTimeSlotData(payload, false).then((result) => {\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as TimeSlotData[];\r\n let newData: MeetingEvent[] = data.map((item, index) => {\r\n return {\r\n meetingId: index + 1,\r\n meetingDate: item.meetingDate,\r\n startTime: item.startTime,\r\n endTime: item.endTime,\r\n requesterName: item.requestedBy,\r\n };\r\n });\r\n //console.log(newData);\r\n monthEventData.clear();\r\n if (newData.length > 0) {\r\n newData.forEach((meeting) => {\r\n let currKey = meeting.meetingDate.split('T')[0];\r\n if (monthEventData.get(currKey) == null) {\r\n monthEventData.set(currKey, [meeting]);\r\n } else {\r\n monthEventData.get(currKey)?.push(meeting);\r\n }\r\n });\r\n };\r\n if (setSlotData === true) {\r\n setTimeSlotData(monthEventData.get(moment(selectedDay || '').format().split('T')[0]) || []);\r\n reRender();\r\n }\r\n }\r\n setIsLoading(false);\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n _fetchData();\r\n _fetchMasterData();\r\n }, []);\r\n\r\n function hasError() {\r\n let newError = [];\r\n if (!(selectedSpecialistId && selectedSpecialistId > 0)) {\r\n newError.push('Please select an Employment Coordinator');\r\n }\r\n if (!selectedDay) {\r\n newError.push('Please select a meeting date');\r\n }\r\n if ((selectedSpecialistId && selectedSpecialistId > 0) && meetingTime == null) {\r\n newError.push('Please select meeting start time and end time');\r\n }\r\n setErrorMessage(newError);\r\n return !(newError.length === 0);\r\n }\r\n\r\n function handleSaving() {\r\n let result = hasError();\r\n if (result === false) {\r\n let newPayload = {\r\n employmentSpecialistMeetingRequestId: MRId,\r\n assignedTo: selectedSpecialistId,\r\n meetingDate: moment(selectedDay || '').format(),\r\n startTime: meetingTime?.startTime,\r\n endTime: meetingTime?.endTime,\r\n comments: comments,\r\n };\r\n setIsSubmitting(true);\r\n saveRSAStaffSchedule(newPayload, false).then((result) => {\r\n setIsSubmitting(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200) {\r\n setSubmittedSucess(true);\r\n }\r\n }, (error) => {\r\n setIsSubmitting(false);\r\n console.log(error);\r\n });\r\n }\r\n }\r\n\r\n const shouldShowTimeSlot: boolean = (selectedDay != null && selectedSpecialistId != 0 ? true : false);\r\n\r\n\r\n const handleDownloadCalendar=()=>{\r\n if(submittedSucess){\r\n let eventData: CalendarEvent = {\r\n startTime: moment((meetingTime?.startTime)).format(),\r\n endTime: moment(meetingTime?.endTime).format(),\r\n summary: 'Meeting for ' + (masterData?.assignedToOptions.filter((item) => { return item.value == selectedSpecialistId })[0].text),\r\n description: 'RSA Employment Coordinator Meeting for job seeker: ' + meetingRequestData?.requestedBy,\r\n location: 'Not specified.',\r\n };\r\n utils.downloadICSFile(eventData);\r\n }\r\n }\r\n \r\n return \r\n
RSA Employment Coordinator Meeting Scheduler
\r\n
\r\n \r\n Home\r\n \r\n RSA Employment Coordinator Meeting Requests\r\n \r\n RSA Employment Coordinator Meeting Scheduler\r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Client Name\r\n
\r\n
\r\n {meetingRequestData?.clientName}\r\n
\r\n
\r\n
\r\n
\r\n Requested By\r\n
\r\n
\r\n {meetingRequestData?.requestedBy}\r\n
\r\n
\r\n
\r\n
\r\n Help Topic\r\n
\r\n
\r\n {meetingRequestData?.helpTopics.join(', ')}\r\n
\r\n
\r\n
\r\n
\r\n Preferred Date and Time\r\n
\r\n
\r\n
\\r\\n\") }}>
\r\n
\r\n
\r\n
\r\n
\r\n Comments\r\n
\r\n
\r\n
\\r\\n\") }}>
\r\n
\r\n
\r\n
\r\n
\r\n Requested date\r\n
\r\n
\r\n {moment(meetingRequestData?.requestedDate).format('MMMM D, YYYY')}\r\n
\r\n
\r\n
\r\n
\r\n Phone\r\n
\r\n
\r\n {utils.formatPhoneNumber(meetingRequestData?.phomeNumber)}\r\n
\r\n
\r\n
\r\n
\r\n Email\r\n
\r\n
\r\n {meetingRequestData?.email}\r\n
\r\n
\r\n
\r\n
\r\n {\r\n !submittedSucess &&\r\n <>\r\n \r\n \r\n \r\n {\r\n !isUserCoordinator && \r\n {\r\n handleSpecailistChange(value as number);\r\n }}\r\n placeholder='Select an specialist'\r\n options={masterData ? masterData.assignedToOptions : []}\r\n />\r\n }\r\n {\r\n isUserCoordinator && \r\n <>\r\n
{meetingRequestData?.assignedToName || \"\"}
\r\n \r\n }\r\n
\r\n {\r\n selectedSpecialistId > 0 &&\r\n <>\r\n

\r\n Select a meeting date
\r\n

\r\n \r\n
\r\n {\r\n handleMonthChange(newMonth);\r\n }}\r\n />\r\n {\r\n selectedDay != null &&\r\n You have selected: {moment(selectedDay).format('dddd, MMMM DD, YYYY')}\r\n }\r\n \r\n
\r\n
\r\n Available\r\n
\r\n Partially taken\r\n
\r\n
\r\n
\r\n
\r\n \r\n }\r\n {\r\n !(selectedSpecialistId > 0) &&\r\n \r\n

Please select a specialist first.

\r\n
\r\n }\r\n
\r\n {\r\n shouldShowTimeSlot &&\r\n \r\n \r\n {\r\n setMeetingTime(newMeetingTime);\r\n setErrorMessage([]);\r\n }}\r\n />\r\n \r\n \r\n }\r\n {\r\n !shouldShowTimeSlot &&\r\n \r\n \r\n \r\n

Please select a meeting date to show the time slot.

\r\n
\r\n
\r\n
\r\n }\r\n\r\n \r\n }\r\n {\r\n submittedSucess &&\r\n <>\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n The meeting has been scheduled for {moment(selectedDay).format('dddd, MMMM D, YYYY')},\r\n {moment((meetingTime?.startTime)).format(' hh:mm A')} to {moment(meetingTime?.endTime).format('hh:mm A')}\r\n , with Employment Coordinator {masterData?.assignedToOptions.filter((item) => { return item.value == selectedSpecialistId })[0].text}.\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 shouldShowTimeSlot && meetingTime != null && !submittedSucess &&\r\n \r\n \r\n \r\n \r\n The meeting will be scheduled for {moment(selectedDay).format('dddd, MMMM D, YYYY')},\r\n {moment(meetingTime.startTime).format(' hh:mm A')} to {moment(meetingTime.endTime).format('hh:mm A')}\r\n , with Employment Coordinator {masterData?.assignedToOptions.filter((item) => { return item.value == selectedSpecialistId })[0].text}.\r\n \r\n \r\n \r\n \r\n }\r\n {\r\n errorMessage && errorMessage.length > 0 &&\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n {\r\n !submittedSucess && \r\n \r\n
\r\n {\r\n !isReadOnly &&\r\n ( {\r\n setComments(value as string);\r\n }}\r\n disabled={isSubmitting}\r\n />)\r\n }\r\n {\r\n !isReadOnly &&\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 { Link } from 'react-router-dom';\r\nimport { Container, Menu, Table, Header, Icon, Breadcrumb, Segment, Dropdown, Grid, Button, Input, Label, } from 'semantic-ui-react';\r\nimport moment from 'moment';\r\nimport { ColumnDefinition, useRSASpecialistMeetingRequestList } from './useRSASpecialistMeetingRequestList';\r\nimport { utils } from '../../../helpers/utils';\r\n\r\n\r\nexport function RSASpecialistMeetingRequestList() {\r\n\r\n const inputClassName = 'ui icon input fluid search-input';\r\n const [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n isPending, assignedTo, handleAssignedToChange, masterData,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange, handleIsPendingChange,\r\n ] = useRSASpecialistMeetingRequestList();\r\n\r\n const totalPages: number = Math.ceil(totalRecords / recordsPerPage);\r\n\r\n const paginationArray: (number | string)[] = utils.getPaginationArray(totalPages, pageNum);\r\n\r\n return (\r\n \r\n
\r\n
RSA Employment Coordinator Meeting Requests
\r\n
\r\n
\r\n \r\n Home\r\n \r\n RSA Employment Coordinator Meeting Requests\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 !isPending && masterData &&\r\n <>\r\n \r\n {\r\n handleAssignedToChange(data.value as number);\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 searchText && \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 columns.map((column: ColumnDefinition, index: number) => {\r\n return {\r\n if (column.sortable) {\r\n handleSortChange(column.columnName);\r\n }\r\n }}\r\n >\r\n
{column.columnHeader}\r\n {\r\n column.sortable &&\r\n \r\n }\r\n
\r\n
\r\n })\r\n }\r\n
\r\n
\r\n\r\n \r\n {\r\n data.length === 0 &&\r\n \r\n No data avaliable\r\n \r\n }\r\n {\r\n data.length > 0 &&\r\n data.map((row, rowIndex) => {\r\n return (\r\n \r\n {\r\n columns.map((col, colIndex) => {\r\n if (col.decorator) {\r\n return (\r\n {\r\n col.decorator(row, data, rowIndex, colIndex)\r\n }\r\n );\r\n } else {\r\n return {row[col.columnName]}\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 Showing {Math.min((pageNum - 1) * recordsPerPage + 1, totalRecords)} to{\" \"}\r\n {pageNum * recordsPerPage > totalRecords\r\n ? totalRecords\r\n : pageNum * recordsPerPage}{\" \"}\r\n of\r\n {\" \"} {totalRecords} entries{\", \"}\r\n \r\n \r\n records per page\r\n
\r\n \r\n {\r\n handlePaginationChange(pageNum - 1);\r\n }}\r\n >\r\n \r\n \r\n {\r\n paginationArray.map((item: number | string, index: number) => {\r\n if (typeof item === 'string') {\r\n return {item}\r\n } else {\r\n return {\r\n handlePaginationChange(item as number);\r\n }}>{item}\r\n }\r\n })\r\n }\r\n = totalPages}\r\n onClick={(event) => {\r\n handlePaginationChange(pageNum + 1);\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}","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { DropdownProps } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\nimport { Link } from 'react-router-dom';\r\nimport { searchSpecialistMeetingRequestList , getSpecialistMeetingListAssignedToMaster} from '../../../Services/SpecialistMeetingServices';\r\nimport { AxiosResponse } from 'axios';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\nimport moment from 'moment';\r\nimport { User } from '../../../Types/User';\r\nimport { userRole } from \"../../../Constants/userRoles\";\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\n\r\nexport interface GetSMRPayload {\r\n sortByField: string | null;\r\n sortOrderDesc: boolean;\r\n searchText: string | null;\r\n recordsPerPage: number;\r\n pageNum: number;\r\n isPending: boolean;\r\n assignedTo: number;\r\n}\r\n\r\nexport interface GetSMRDataRow {\r\n [key: string]: any;\r\n meetingRequestId: number;\r\n requestedBy: string | undefined;\r\n requestedOn: string | undefined;\r\n helpTopics: string[];\r\n assignedTo: string | undefined;\r\n meetingSchedule: string | undefined;\r\n}\r\n\r\nexport interface GetSMRData {\r\n totalRecords: number;\r\n gridData: GetSMRDataRow[];\r\n}\r\n\r\nexport interface MasterDataItem {\r\n value: string;\r\n id: number;\r\n}\r\n\r\nexport interface MasterData {\r\n assignedToOptions: PageSizeOption[],\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n \r\n}\r\n\r\nexport interface ColumnDefinition {\r\n columnName: string;\r\n sortable: boolean;\r\n columnHeader: string;\r\n decorator?: Function;\r\n}\r\n\r\nexport function useRSASpecialistMeetingRequestList(saveState: boolean = true, statePropName?: string) {\r\n const currUser: User | undefined= utils.getUserFromLocalToken() as (User | undefined);\r\n const pageSizeOptions = useMemo(() => {\r\n return [\r\n { key: 3, value: 3, text: '3' },\r\n { key: 5, value: 5, text: '5' },\r\n { key: 10, value: 10, text: '10' },\r\n { key: 15, value: 15, text: '15' },\r\n { key: 20, value: 20, text: '20' },\r\n { key: 50, value: 50, text: '50' },\r\n { key: 100, value: 100, text: '100' }\r\n ];\r\n }, []);\r\n\r\n const searchRef = useRef(null);\r\n const [masterData, setMasterData] = useState();\r\n const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n const [totalRecords, setTotalRecords] = useState(0);\r\n const [pageNum, setPageNum] = useState(1);\r\n const [sortByField, setSortByField] = useState(null);\r\n const [sortOrderDesc, setSortOrderDesc] = useState(true);\r\n const [searchText, setSearchText] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [currentUserId, setCurrentUserId] = useState((currUser && currUser.UserId) ? currUser.UserId : \"0\");\r\n const [isUserCoordinator, setIsUserCoordinator] = useState((currUser?.Roles?.includes(userRole['Employment Coordinator']) === true) ? true : false);\r\n\r\n const [isPending, setIsPending] = useState(true);\r\n const [assignedTo, setAssignedTo] = useState(0);\r\n\r\n const handlePageSizeChange: ((event: React.SyntheticEvent, data: DropdownProps) => void) | undefined = (event, data) => {\r\n setRecordsPerPage(data.value as number);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: data.value as number,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handlePaginationChange: (newPageNumber: number) => void = (newPageNumber) => {\r\n setPageNum(newPageNumber);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: newPageNumber,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleIsPendingChange: (newValue: boolean) => void = (newValue) => {\r\n setIsPending(newValue);\r\n setAssignedTo(0);\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isPending: newValue,\r\n assignedTo: 0,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleAssignedToChange: (newValue: number) => void = (newValue) => {\r\n setAssignedTo(newValue);\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isPending: isPending,\r\n assignedTo: newValue\r\n };\r\n _fetchData(payload);\r\n }\r\n \r\n const handleSortChange: (newSortColumnName: string) => void = (newSortColumnName) => {\r\n let newIsDesc = sortOrderDesc;\r\n let newColumnName = sortByField;\r\n if (newSortColumnName === sortByField) {\r\n newIsDesc = !newIsDesc;\r\n } else {\r\n newColumnName = newSortColumnName;\r\n }\r\n\r\n setSortOrderDesc(newIsDesc);\r\n setSortByField(newColumnName);\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: newColumnName,\r\n sortOrderDesc: newIsDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSearchChangeFn: (event: React.SyntheticEvent) => void = (event) => {\r\n //setSearchText((event.target as HTMLInputElement).value);\r\n setSearchText((event.target as HTMLInputElement).value);\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: (event.target as HTMLInputElement).value,\r\n pageNum: 1,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleSearchChange = _.debounce(handleSearchChangeFn, 1000);\r\n\r\n const resetSearch: (event: React.SyntheticEvent) => void = (event) => {\r\n if (searchRef.current !== null) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const resetFilter: (event: React.SyntheticEvent) => void = (event) => {\r\n setSearchText(null);\r\n if(searchRef.current){\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setPageNum(1);\r\n const payload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n isPending: isPending,\r\n assignedTo: assignedTo,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n\r\n const _fetchData: (overwritePayload?: GetSMRPayload) => void = (overwritePayload) => {\r\n const defaultPayload: GetSMRPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n isPending: isPending,\r\n assignedTo: 0,\r\n };\r\n\r\n let payload: GetSMRPayload = defaultPayload;\r\n if (overwritePayload !== undefined) {\r\n payload = overwritePayload;\r\n }\r\n \r\n setIsLoading(true);\r\n if (saveState) {\r\n _saveState(payload);\r\n }\r\n searchSpecialistMeetingRequestList(payload, false).then((result) => {\r\n setIsLoading(false);\r\n\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n\r\n let data = response.data as GetSMRData;\r\n //console.log(data);\r\n setData(data.gridData);\r\n setTotalRecords(data.totalRecords);\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n setIsLoading(true);\r\n getSpecialistMeetingListAssignedToMaster(false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response && response.status === 200 && response.data) {\r\n let data = response.data as MasterDataItem[];\r\n let newMasterData:MasterData = {\r\n assignedToOptions:[]\r\n };\r\n \r\n let assignedToOptions: PageSizeOption[] = data.map((item,index)=>{\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.value\r\n }\r\n });\r\n assignedToOptions.unshift({key: -1,value:0,text:'Any'});\r\n newMasterData.assignedToOptions= assignedToOptions;\r\n setMasterData(newMasterData);\r\n }\r\n callBack();\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _saveState = (currentPayload: GetSMRPayload) => {\r\n let stateName = AppConfig.RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE + \"_id_\" +currentUserId.toString();\r\n if (saveState) {\r\n utils.updateInLocalStorage(stateName, JSON.stringify(currentPayload));\r\n }\r\n }\r\n\r\n const _loadState = () => {\r\n let stateName = AppConfig.RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE + \"_id_\" + currentUserId.toString();\r\n let stateString: string | null = utils.getLocalStorageItem(stateName);\r\n if (stateString && saveState) {\r\n return JSON.parse(stateString) as GetSMRPayload;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n _fetchMasterData(() => {\r\n let priviousState: GetSMRPayload | null = _loadState();\r\n if (priviousState && saveState) {\r\n _fetchData(priviousState);\r\n setSortByField(priviousState.sortByField);\r\n setSortOrderDesc(priviousState.sortOrderDesc);\r\n setSearchText(priviousState.searchText);\r\n setRecordsPerPage(priviousState.recordsPerPage);\r\n setIsPending(priviousState.isPending);\r\n setAssignedTo(priviousState.assignedTo);\r\n setPageNum(priviousState.pageNum);\r\n if (searchRef.current) {\r\n searchRef.current.value = priviousState.searchText || '';\r\n }\r\n \r\n } else {\r\n _fetchData();\r\n }\r\n });\r\n\r\n }, []);\r\n\r\n // column definition\r\n\r\n let columns: ColumnDefinition[];\r\n \r\n if(isPending){\r\n columns = [\r\n {\r\n columnName: 'clientName',\r\n sortable: false,\r\n columnHeader: 'Client name',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n if(!!row.meetingSchedule && row.meetingSchedule.length > 0){\r\n return ({row.clientName});\r\n }else {\r\n return ({row.clientName});\r\n }\r\n \r\n },\r\n },\r\n {\r\n columnName: 'requestedBy',\r\n sortable: false,\r\n columnHeader: 'Requested by',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({row.requestedBy ? row.requestedBy: 'Unknown'});\r\n },\r\n },\r\n {\r\n columnName: 'assignedTo',\r\n sortable: false,\r\n columnHeader: 'Employment coordinator',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({row.assignedTo ? row.assignedTo: 'Unassigned'});\r\n },\r\n },\r\n {\r\n columnName: 'requestedOn',\r\n sortable: false,\r\n columnHeader: 'Requested on',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({moment(row.requestedOn).format('MM/DD/yyyy')});\r\n },\r\n },\r\n {\r\n columnName: 'helpTopics',\r\n sortable: false,\r\n columnHeader: 'Help topic',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n let otherAssistnaceIndex = row.helpTopics.findIndex((item)=>{\r\n return item.toLocaleLowerCase().includes('other');\r\n });\r\n if(otherAssistnaceIndex !== -1){\r\n let otherAssistanceItem = row.helpTopics[otherAssistnaceIndex];\r\n row.helpTopics.splice(otherAssistnaceIndex,1);\r\n row.helpTopics.push(otherAssistanceItem);\r\n }\r\n\r\n return ({row.helpTopics && row.helpTopics.length > 0 ? row.helpTopics.join(', '): ''});\r\n },\r\n },\r\n ];\r\n }else {\r\n columns = [\r\n {\r\n columnName: 'clientName',\r\n sortable: false,\r\n columnHeader: 'Client name',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n if(!!row.meetingSchedule && row.meetingSchedule.length > 0 && row.meetingSchedule !== ' - '){\r\n return ({row.clientName});\r\n }else {\r\n return ({row.clientName});\r\n }\r\n \r\n },\r\n },\r\n {\r\n columnName: 'requestedBy',\r\n sortable: false,\r\n columnHeader: 'Requested by',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({row.requestedBy ? row.requestedBy: 'Unknown'});\r\n },\r\n },\r\n {\r\n columnName: 'requestedOn',\r\n sortable: false,\r\n columnHeader: 'Requested on',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({moment(row.requestedOn).format('MM/DD/yyyy')});\r\n },\r\n },\r\n {\r\n columnName: 'helpTopics',\r\n sortable: false,\r\n columnHeader: 'Help topic',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n let otherAssistnaceIndex = row.helpTopics.findIndex((item)=>{\r\n return item.toLocaleLowerCase().includes('other');\r\n });\r\n if(otherAssistnaceIndex !== -1){\r\n let otherAssistanceItem = row.helpTopics[otherAssistnaceIndex];\r\n row.helpTopics.splice(otherAssistnaceIndex,1);\r\n row.helpTopics.push(otherAssistanceItem);\r\n }\r\n return ({row.helpTopics && row.helpTopics.length > 0 ? row.helpTopics.join(', '): ''});\r\n },\r\n },\r\n {\r\n columnName: 'assignedTo',\r\n sortable: false,\r\n columnHeader: 'Employment coordinator',\r\n decorator: (row: GetSMRDataRow, data: GetSMRDataRow[], rowIndex: number, colIndex: number ) => {\r\n return ({row.assignedTo ? row.assignedTo: 'Unassigned'});\r\n },\r\n },\r\n {\r\n columnName: 'meetingSchedule',\r\n sortable: false,\r\n columnHeader: 'Meeting Schedule',\r\n decorator: undefined,\r\n },\r\n ];\r\n }\r\n\r\n return [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n isPending, assignedTo, handleAssignedToChange, masterData,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange, handleIsPendingChange,\r\n ] as const;\r\n}","import React from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Container, Menu, Table, Header, Icon, Breadcrumb, Segment, Dropdown, Grid, Placeholder, Button, Label, } from 'semantic-ui-react';\r\nimport moment from 'moment';\r\nimport { ColumnDefinition, useESPParticipantsList } from './useESPParticipantsList';\r\nimport { utils } from '../../../helpers/utils';\r\n\r\n\r\nexport function ESPParticipantsList() {\r\n\r\n const history = useHistory();\r\n const inputClassName = 'ui icon input fluid search-input';\r\n const [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n assignedTo, handleCounselorIdChange, masterData, presentationData,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange, exportToExcel\r\n ] = useESPParticipantsList();\r\n\r\n const totalPages: number = Math.ceil(totalRecords / recordsPerPage);\r\n\r\n const paginationArray: (number | string)[] = utils.getPaginationArray(totalPages, pageNum);\r\n return (\r\n \r\n
\r\n
Employer Spotlight Presentation - Participants
\r\n
\r\n
\r\n \r\n Home\r\n \r\n Employer Spotlight Presentations\r\n \r\n Employer Spotlight Presentation Participants\r\n \r\n \r\n {\r\n !(presentationData && presentationData.description) &&\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 \r\n \r\n \r\n \r\n }\r\n {\r\n presentationData && presentationData.description &&\r\n \r\n \r\n
\r\n {presentationData.organization + ' - ' + presentationData.topic}\r\n
\r\n \r\n

\\r\\n\") }}>\r\n

\r\n \r\n \r\n Date\r\n {presentationData.presentationDateTime}\r\n \r\n \r\n Location\r\n {\r\n presentationData.presentationModeCode == 'OL' &&\r\n Online\r\n }\r\n {\r\n presentationData.presentationModeCode !== 'OL' &&\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 masterData &&\r\n <>\r\n \r\n {\r\n handleCounselorIdChange(data.value as number);\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
\r\n \r\n \r\n \r\n \r\n {\r\n columns.map((column: ColumnDefinition, index: number) => {\r\n return {\r\n if (column.sortable) {\r\n handleSortChange(column.columnName);\r\n }\r\n }}\r\n >\r\n
{column.columnHeader}\r\n {\r\n column.sortable &&\r\n \r\n }\r\n
\r\n
\r\n })\r\n }\r\n
\r\n
\r\n\r\n \r\n {\r\n data.length === 0 &&\r\n \r\n No data avaliable\r\n \r\n }\r\n {\r\n data.length > 0 &&\r\n data.map((row, rowIndex) => {\r\n return (\r\n \r\n {\r\n columns.map((col, colIndex) => {\r\n if (col.decorator) {\r\n return (\r\n {\r\n col.decorator(row, data, rowIndex, colIndex)\r\n }\r\n );\r\n } else {\r\n return {row[col.columnName]}\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 \r\n \r\n
\r\n \r\n Showing {Math.min((pageNum - 1) * recordsPerPage + 1, totalRecords)} to{\" \"}\r\n {pageNum * recordsPerPage > totalRecords\r\n ? totalRecords\r\n : pageNum * recordsPerPage}{\" \"}\r\n of\r\n {\" \"} {totalRecords} entries{\", \"}\r\n \r\n \r\n records per page\r\n
\r\n \r\n {\r\n handlePaginationChange(pageNum - 1);\r\n }}\r\n >\r\n \r\n \r\n {\r\n paginationArray.map((item: number | string, index: number) => {\r\n if (typeof item === 'string') {\r\n return {item}\r\n } else {\r\n return {\r\n handlePaginationChange(item as number);\r\n }}>{item}\r\n }\r\n })\r\n }\r\n = totalPages}\r\n onClick={(event) => {\r\n handlePaginationChange(pageNum + 1);\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}","import React, { useState, useRef, useMemo, useEffect } from 'react';\r\nimport { Checkbox, DropdownProps } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\nimport { Link, useParams } from 'react-router-dom';\r\nimport { getCounselorsList } from '../../../Services/SpecialistMeetingServices';\r\nimport { searchEmployerSpotlightPresentationParticipant, ExportEmployerSpotlightPresentationParticipant } from '../../../Services/EmployerSpotlightPresentationServices';\r\nimport { AxiosResponse } from 'axios';\r\nimport { utils } from '../../../helpers/utils';\r\nimport AppConfig from '../../../Constants/config';\r\nimport moment from 'moment';\r\n\r\nexport interface PageSizeOption {\r\n key: number;\r\n value: string | number;\r\n text: string;\r\n}\r\n\r\nexport interface GetESPPLPayload {\r\n sortByField: string | null;\r\n sortOrderDesc: boolean;\r\n searchText: string | null;\r\n recordsPerPage: number;\r\n pageNum: number;\r\n counselorId: number;\r\n EmployerSpotlightPresentationId?: string;\r\n EmployerSpotlightPresentationParticipantId? : string[];\r\n}\r\n\r\nexport interface GetESPPLDataRow {\r\n [key: string]: any;\r\n counselor: number;\r\n email: string | undefined;\r\n employerSpotlightPresentationParticipantId: string | undefined;\r\n name: string[];\r\n phone: string | undefined;\r\n}\r\n\r\nexport interface GetESPPLData {\r\n participantsCount: number;\r\n gridData: GetESPPLDataRow[];\r\n description: string;\r\n location: string;\r\n organization: string;\r\n presentationDateTime: string;\r\n presentationModeCode: string;\r\n topic: string;\r\n}\r\n\r\nexport interface MasterDataItem {\r\n value: string;\r\n id: number;\r\n}\r\n\r\nexport interface MasterData {\r\n counselorIdOptions: PageSizeOption[],\r\n}\r\n\r\nexport interface PresentationData {\r\n description: string;\r\n location: string;\r\n organization: string;\r\n presentationDateTime: string;\r\n presentationModeCode: string;\r\n topic: string;\r\n}\r\n\r\nexport interface MasterDataResponse {\r\n\r\n}\r\n\r\nexport interface ColumnDefinition {\r\n columnName: string;\r\n sortable: boolean;\r\n columnHeader: string;\r\n decorator?: Function;\r\n}\r\n\r\nexport function useESPParticipantsList(saveState: boolean = true, statePropName?: string) {\r\n\r\n let { ESPId } = useParams<{ ESPId: string }>();\r\n\r\n const pageSizeOptions = useMemo(() => {\r\n return [\r\n { key: 3, value: 3, text: '3' },\r\n { key: 5, value: 5, text: '5' },\r\n { key: 10, value: 10, text: '10' },\r\n { key: 15, value: 15, text: '15' },\r\n { key: 20, value: 20, text: '20' },\r\n { key: 50, value: 50, text: '50' },\r\n { key: 100, value: 100, text: '100' }\r\n ];\r\n }, []);\r\n\r\n const searchRef = useRef(null);\r\n const [masterData, setMasterData] = useState();\r\n const [recordsPerPage, setRecordsPerPage] = useState(10);\r\n const [totalRecords, setTotalRecords] = useState(0);\r\n const [pageNum, setPageNum] = useState(1);\r\n const [sortByField, setSortByField] = useState(null);\r\n const [sortOrderDesc, setSortOrderDesc] = useState(true);\r\n const [searchText, setSearchText] = useState(null);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [selectedParticipants, setSelectedParticipants] = useState>(new Map());\r\n\r\n const [presentationData, setPresentationData] = useState(\r\n {\r\n description: '',\r\n location: '',\r\n organization: '',\r\n presentationDateTime: '',\r\n presentationModeCode: '',\r\n topic: '',\r\n },\r\n );\r\n const [counselorId, setCounselorId] = useState(0);\r\n\r\n const handlePageSizeChange: ((event: React.SyntheticEvent, data: DropdownProps) => void) | undefined = (event, data) => {\r\n setRecordsPerPage(data.value as number);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: data.value as number,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handlePaginationChange: (newPageNumber: number) => void = (newPageNumber) => {\r\n setPageNum(newPageNumber);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: newPageNumber,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleCounselorIdChange: (newValue: number) => void = (newValue) => {\r\n setCounselorId(newValue);\r\n setPageNum(1);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n counselorId: newValue\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSortChange: (newSortColumnName: string) => void = (newSortColumnName) => {\r\n let newIsDesc = sortOrderDesc;\r\n let newColumnName = sortByField;\r\n if (newSortColumnName === sortByField) {\r\n newIsDesc = !newIsDesc;\r\n } else {\r\n newColumnName = newSortColumnName;\r\n }\r\n\r\n setSortOrderDesc(newIsDesc);\r\n setSortByField(newColumnName);\r\n setPageNum(1);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: newColumnName,\r\n sortOrderDesc: newIsDesc,\r\n searchText: searchText,\r\n pageNum: 1,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSearchChangeFn: (event: React.SyntheticEvent) => void = (event) => {\r\n //setSearchText((event.target as HTMLInputElement).value);\r\n setSearchText((event.target as HTMLInputElement).value);\r\n setPageNum(1);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: (event.target as HTMLInputElement).value,\r\n pageNum: 1,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n const handleSearchChange = _.debounce(handleSearchChangeFn, 1000);\r\n\r\n const resetSearch: (event: React.SyntheticEvent) => void = (event) => {\r\n if (searchRef.current !== null) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setSearchText(null);\r\n setPageNum(1);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const resetFilter: (event: React.SyntheticEvent) => void = (event) => {\r\n setSearchText(null);\r\n if (searchRef.current) {\r\n (searchRef.current as HTMLInputElement).value = '';\r\n }\r\n setPageNum(1);\r\n const payload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: null,\r\n pageNum: 1,\r\n counselorId: counselorId,\r\n };\r\n _fetchData(payload);\r\n }\r\n\r\n const handleSelectBoxClick: (newValue: boolean, participantId: string) => void = (newValue, participantId)=>{\r\n if(newValue === true){\r\n let currParticipant = data.filter((item)=>{\r\n return item.employerSpotlightPresentationParticipantId == participantId;\r\n })[0];\r\n if(currParticipant){\r\n selectedParticipants.set(participantId, currParticipant);\r\n }\r\n }else {\r\n let currParticipant = data.filter((item)=>{\r\n return item.employerSpotlightPresentationParticipantId == participantId;\r\n })[0];\r\n if(currParticipant){\r\n selectedParticipants.delete(participantId);\r\n }\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n const exportToExcel: () => void = () => {\r\n const defaultPayload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n counselorId: counselorId,\r\n EmployerSpotlightPresentationParticipantId: []\r\n };\r\n\r\n let payload: GetESPPLPayload = defaultPayload;\r\n selectedParticipants.forEach((item)=>{\r\n if(payload.EmployerSpotlightPresentationParticipantId){\r\n payload.EmployerSpotlightPresentationParticipantId.push((item.employerSpotlightPresentationParticipantId || 0) .toString()); \r\n }\r\n });\r\n //console.log(payload);\r\n \r\n payload.EmployerSpotlightPresentationId = ESPId;\r\n if(payload.EmployerSpotlightPresentationParticipantId && payload.EmployerSpotlightPresentationParticipantId?.length > 0){\r\n setIsLoading(true);\r\n ExportEmployerSpotlightPresentationParticipant(payload, false).then((result) => {\r\n setIsLoading(false);\r\n \r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n utils.DownloadBlobExcelFileWithContentDisposition(response, `SpotlightParticipants_${moment().format('MM_dd_yyyy_HH_mm_ss')}.xlsx`);\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n \r\n }\r\n\r\n\r\n\r\n const _fetchData: (overwritePayload?: GetESPPLPayload) => void = (overwritePayload) => {\r\n const defaultPayload: GetESPPLPayload = {\r\n recordsPerPage: recordsPerPage,\r\n sortByField: sortByField,\r\n sortOrderDesc: sortOrderDesc,\r\n searchText: searchText,\r\n pageNum: pageNum,\r\n counselorId: 0,\r\n };\r\n\r\n let payload: GetESPPLPayload = defaultPayload;\r\n if (overwritePayload !== undefined) {\r\n payload = overwritePayload;\r\n }\r\n //console.log(payload);\r\n setIsLoading(true);\r\n if (saveState) {\r\n _saveState(payload);\r\n }\r\n payload.EmployerSpotlightPresentationId = ESPId;\r\n searchEmployerSpotlightPresentationParticipant(payload, false).then((result) => {\r\n setIsLoading(false);\r\n\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response.status === 200 && response.data) {\r\n\r\n let data = response.data as GetESPPLData;\r\n setData(data.gridData);\r\n setTotalRecords(data.gridData.length);\r\n if (!(presentationData && presentationData.description)) {\r\n let newPresentationData: PresentationData = {\r\n description: data.description,\r\n location: data.location,\r\n organization: data.organization,\r\n presentationDateTime: data.presentationDateTime,\r\n topic: data.topic,\r\n presentationModeCode: data.presentationModeCode,\r\n };\r\n setPresentationData(newPresentationData);\r\n }\r\n }\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _fetchMasterData: (callback?: Function) => void = (callBack = () => { }) => {\r\n setIsLoading(true);\r\n getCounselorsList(false).then((result) => {\r\n setIsLoading(false);\r\n let response: AxiosResponse = result as AxiosResponse;\r\n if (response && response.status === 200 && response.data) {\r\n let data = response.data as MasterDataItem[];\r\n let newMasterData: MasterData = {\r\n counselorIdOptions: []\r\n };\r\n\r\n let counselorIdOptions: PageSizeOption[] = data.map((item, index) => {\r\n return {\r\n key: index,\r\n value: item.id,\r\n text: item.value,\r\n }\r\n });\r\n counselorIdOptions.unshift({ key: -1, value: 0, text: 'Any' });\r\n\r\n newMasterData.counselorIdOptions = counselorIdOptions;\r\n setMasterData(newMasterData);\r\n\r\n }\r\n callBack();\r\n }, (error) => {\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n const _saveState = (currentPayload: GetESPPLPayload) => {\r\n let stateName = statePropName || AppConfig.RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE;\r\n if (saveState) {\r\n utils.updateInLocalStorage(stateName, JSON.stringify(currentPayload));\r\n }\r\n }\r\n\r\n const _loadState = () => {\r\n let stateName = statePropName || AppConfig.RSA_SPECIALLIST_MEETING_REQUEST_LIST_STATE;\r\n let stateString: string | null = utils.getLocalStorageItem(stateName);\r\n if (stateString && saveState) {\r\n return JSON.parse(stateString) as GetESPPLPayload;\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n _fetchMasterData(() => {\r\n let priviousState: GetESPPLPayload | null = _loadState();\r\n if (priviousState && saveState) {\r\n _fetchData(priviousState);\r\n setSortByField(priviousState.sortByField);\r\n setSortOrderDesc(priviousState.sortOrderDesc);\r\n setSearchText(priviousState.searchText);\r\n setRecordsPerPage(priviousState.recordsPerPage);\r\n setCounselorId(priviousState.counselorId);\r\n setPageNum(priviousState.pageNum);\r\n if (searchRef.current) {\r\n searchRef.current.value = priviousState.searchText || '';\r\n }\r\n\r\n } else {\r\n _fetchData();\r\n }\r\n });\r\n\r\n }, []);\r\n\r\n // column definition\r\n\r\n let columns: ColumnDefinition[];\r\n\r\n columns = [\r\n {\r\n columnName: 'select',\r\n sortable: false,\r\n columnHeader: 'Select',\r\n decorator: (row: GetESPPLDataRow, data: GetESPPLDataRow[], rowIndex: number, colIndex: number) => {\r\n return ({ \r\n let newValue = checked || false;\r\n handleSelectBoxClick(newValue, row.employerSpotlightPresentationParticipantId || '');}}\r\n />);\r\n },\r\n },\r\n {\r\n columnName: 'name',\r\n sortable: false,\r\n columnHeader: 'Name',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'counselor',\r\n sortable: false,\r\n columnHeader: 'Counselor',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'email',\r\n sortable: false,\r\n columnHeader: 'Email address',\r\n decorator: undefined,\r\n },\r\n {\r\n columnName: 'phone',\r\n sortable: false,\r\n columnHeader: 'Phone number',\r\n decorator: (row: GetESPPLDataRow, data: GetESPPLDataRow[], rowIndex: number, colIndex: number) => {\r\n return ({utils.formatPhoneNumber(row.phone)});\r\n },\r\n },\r\n ];\r\n\r\n return [columns, recordsPerPage, totalRecords, pageNum,\r\n pageSizeOptions, searchRef, searchText, data, isLoading, sortOrderDesc, sortByField,\r\n counselorId, handleCounselorIdChange, masterData, presentationData,\r\n handlePageSizeChange, handleSearchChange, resetSearch, handlePaginationChange, handleSortChange,exportToExcel,\r\n ] as const;\r\n}","import React, { useRef } from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Image, Breadcrumb, Grid, Header, Button, Icon, Segment, Card } from 'semantic-ui-react';\r\n\r\ntype SectionCardProps = {\r\n sectionData: SectionData;\r\n onMouseDown: Function;\r\n onDropEnter: Function;\r\n isDragging: React.RefObject;\r\n draggingId: React.RefObject;\r\n}\r\n\r\nexport type SectionData = {\r\n title: string,\r\n teaserText: string,\r\n backgroundColor: string,\r\n displayOrder: number,\r\n homepageSectionId: number,\r\n iconName: number,\r\n url: string,\r\n isHtmlContent: boolean,\r\n pageContent?: string,\r\n pageContentContext? : string,\r\n};\r\n\r\nexport const SectionCard: React.FC = ({isDragging, onMouseDown, sectionData, onDropEnter, draggingId}) => {\r\n const history = useHistory();\r\n \r\n const cardDom = useRef();\r\n\r\n function handleMousedown(event: React.MouseEvent, sectionId: number){\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if(event.nativeEvent.which === 1){\r\n onMouseDown(event.nativeEvent, sectionId);\r\n }\r\n }\r\n\r\n function onMouseEnter(event: React.MouseEvent){\r\n event.stopPropagation();\r\n event.preventDefault();\r\n if(isDragging.current === true && draggingId.current !== sectionData.homepageSectionId){\r\n onDropEnter(sectionData.homepageSectionId);\r\n }\r\n };\r\n \r\n return (\r\n
{\r\n handleMousedown(event, sectionData.homepageSectionId);\r\n }}\r\n onMouseEnter={onMouseEnter}\r\n >\r\n\r\n \r\n
\r\n {sectionData.title}\r\n
\r\n

{sectionData.teaserText}

\r\n
{\r\n event.stopPropagation();event.preventDefault();\r\n history.push(`/editHomepageSection/${sectionData.homepageSectionId}`)}}\r\n onMouseUp = {(e: React.MouseEvent)=>{\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }}\r\n >\r\n \r\n
\r\n {/*
\r\n {`Display order: ${sectionData.displayOrder}`}\r\n
*/}\r\n
\r\n );\r\n}","import React, {useEffect, useRef, useState} from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport Swal from 'sweetalert2';\r\nimport { getAllHomepageSections, SaveHomepageSectionDisplayOrder } from '../../../Services/AdminServices';\r\nimport { SectionData } from './SectionCard';\r\n\r\nexport function useManageHomepageSections() {\r\n \r\n const [sectionsData, setSectionsData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n function _fatchData(callback: Function = ()=>{}){\r\n setIsLoading(true);\r\n getAllHomepageSections(false).then((response)=>{\r\n setIsLoading(false);\r\n callback((response.data as any ).sections);\r\n }).catch((error)=>{\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n\r\n function saveOrder(){\r\n // re-write all order number and save.\r\n for(let i=0;i{\r\n console.log(response);\r\n toastSuccessMessage('All changes saved.');\r\n });\r\n }\r\n function toastSuccessMessage(message: string) {\r\n Swal.fire({\r\n icon: 'success',\r\n position: 'top-end',\r\n title: 'Success',\r\n text: message,\r\n timer: 5000,\r\n toast: true,\r\n timerProgressBar: true,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n _fatchData((newData:any)=>{\r\n setSectionsData([...newData]);\r\n });\r\n }, []);\r\n\r\n return [sectionsData, isLoading, setSectionsData, saveOrder] as const;\r\n}","import React, { useState, useRef, MouseEvent as ReactMouseEvent } from 'react';\r\nimport { Link, useHistory } from 'react-router-dom';\r\nimport { Container, Breadcrumb, Grid, Header, Button, Icon, Segment, Input } from 'semantic-ui-react';\r\nimport { SectionCard, SectionData } from './SectionCard';\r\nimport { useManageHomepageSections } from './useManageHomepageSections';\r\n\r\ntype DragData = {\r\n initialOffsetLeft: number;\r\n initialOffsetTop: number;\r\n dragOffsetX: number;\r\n dragOffsetY: number;\r\n currWidth: number;\r\n currHeight: number;\r\n}\r\n\r\nexport function ManageHomepageSections() {\r\n const history = useHistory();\r\n const defaultDragData: DragData = {\r\n initialOffsetLeft: 0,\r\n initialOffsetTop: 0,\r\n dragOffsetX: 0,\r\n dragOffsetY: 0,\r\n currWidth: 0,\r\n currHeight: 0\r\n }\r\n\r\n const [sectionsData, isLoading, setSectionsData, saveOrder] = useManageHomepageSections();\r\n\r\n const dragData = useRef(defaultDragData);\r\n const draggingDom = useRef(null);\r\n const shadowDom = useRef(null);\r\n const isDragging = useRef(false);\r\n const draggingId = useRef(0);\r\n\r\n\r\n\r\n const handleCreateNewSection = (event: ReactMouseEvent) => {\r\n history.push('/editHomepageSection/0');\r\n };\r\n\r\n function handleMousedown(e: MouseEvent, sectionId: number) {\r\n let targetDom = document.getElementById(`section-card-${sectionId}`);\r\n draggingDom.current = targetDom;\r\n draggingId.current = sectionId;\r\n if (targetDom) {\r\n targetDom.classList.add('in-drag');\r\n dragData.current.initialOffsetLeft = targetDom.offsetLeft;\r\n dragData.current.initialOffsetTop = targetDom.offsetTop;\r\n isDragging.current = true;\r\n dragData.current.dragOffsetX = 0 - e.clientX;\r\n dragData.current.dragOffsetY = 0 - e.clientY;\r\n const cssObj = window.getComputedStyle(targetDom, null);\r\n //console.log(cssObj.width);\r\n //console.log(cssObj.height);\r\n //console.log(targetDom.offsetLeft);\r\n //console.log(targetDom.offsetTop);\r\n //console.log(dragData.current.dragOffsetX);\r\n //console.log(dragData.current.dragOffsetY);\r\n //console.log(e.clientX);\r\n //console.log(e.clientY);\r\n //console.log(targetDom.getBoundingClientRect());\r\n let clientRect: DOMRect = targetDom.getBoundingClientRect();\r\n dragData.current.currWidth = parseInt(cssObj.width);\r\n dragData.current.currHeight = parseInt(cssObj.height); \r\n shadowDom.current = document.createElement('div');\r\n shadowDom.current.style.position = 'fixed';\r\n shadowDom.current.style.left = `${clientRect.left}px`;\r\n shadowDom.current.style.borderRadius = '18px';\r\n shadowDom.current.style.top = `${clientRect.top}px`;\r\n shadowDom.current.style.height = `${clientRect.height}px`;\r\n shadowDom.current.style.width = `${clientRect.width}px`;\r\n shadowDom.current.style.border = `1px dashed red`;\r\n document.body.appendChild(shadowDom.current);\r\n document.addEventListener('mousemove', onMouseMove);\r\n document.addEventListener('mouseup', onMouseUp);\r\n }\r\n }\r\n\r\n function onMouseMove(this: Document, e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n //console.log(e);\r\n let mousePosition = {\r\n x: e.clientX,\r\n y: e.clientY\r\n };\r\n if (draggingDom.current != null) {\r\n draggingDom.current.style.left = (mousePosition.x + dragData.current.dragOffsetX) + 'px';\r\n draggingDom.current.style.top = (mousePosition.y + dragData.current.dragOffsetY) + 'px';\r\n }\r\n }\r\n\r\n function onMouseUp(this: Document, e: MouseEvent): void {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n if (isDragging.current === true) {\r\n isDragging.current = false;\r\n if (shadowDom.current) {\r\n document.body.removeChild(shadowDom.current);\r\n }\r\n if(draggingDom.current){\r\n draggingDom.current.style.top = '0px';\r\n draggingDom.current.style.left = '0px';\r\n draggingDom.current.classList.remove('in-drag');\r\n }\r\n draggingId.current = 0;\r\n shadowDom.current = null;\r\n document.removeEventListener('mouseup', onMouseUp);\r\n document.removeEventListener('mousemove', onMouseMove);\r\n saveOrder();\r\n }\r\n }\r\n\r\n function onDropEnter(sectionId: number) {\r\n let sourceIndex = -1;\r\n for(let i=0;i\r\n \r\n
Manage Home Page Sections
\r\n \r\n
\r\n \r\n Home\r\n \r\n Manage Home Page Sections\r\n \r\n
\r\n {\r\n sectionsData && sectionsData.length > 0 && sectionsData.map((item: SectionData, index) => {\r\n return \r\n })\r\n }\r\n
\r\n\r\n
\r\n );\r\n}","import React, { Component, Fragment, useEffect, useState, useRef } from 'react';\r\nimport { Link, useParams, useHistory } from 'react-router-dom';\r\nimport _ from 'lodash';\r\nimport Swal from 'sweetalert2';\r\nimport { login } from '../../../Services/LoginServices';\r\nimport { utils } from '../../../helpers/utils';\r\nimport { saveHomepageSection, getHomepageSectionById, deleteHomepageSectionById } from '../../../Services/AdminServices';\r\n\r\nexport type HomepageSectionFormValues = {\r\n [key: string]: any;\r\n}\r\n\r\nexport type HomepageSectionFormRef = {\r\n [key: string]: React.RefObject\r\n}\r\n\r\nexport type HomepageSectionFormErrors = {\r\n [key: string]: string;\r\n}\r\n\r\nexport type HomepageSectionFormTouched = {\r\n [key: string]: boolean;\r\n}\r\n\r\nexport type ValidtionFunctions = {\r\n [key: string]: Function;\r\n}\r\n\r\nexport type HomepageSectionFormMasterData = {\r\n [key: string]: {\r\n id: number,\r\n displayName: string,\r\n iconName?: string | null,\r\n }[]\r\n}\r\n\r\nexport function useEditHomepageSectionForm(isCreate: boolean) {\r\n let { sectionId } = useParams<{ sectionId: string }>();\r\n const history = useHistory();\r\n useEffect(() => {\r\n fetchData(isCreate !== undefined ? isCreate : true);\r\n }, []);\r\n\r\n async function fetchData(isCreate: boolean, providerId?: number) {\r\n try {\r\n if (isCreate) {\r\n console.log('creating mode');\r\n } else {\r\n // also get provider data\r\n if (sectionId) {\r\n const dataId: number = parseInt(sectionId);\r\n getHomepageSectionById(dataId).then((response) => {\r\n console.log(response.data);\r\n if (response.data) {\r\n setValues(response.data as HomepageSectionFormValues);\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n } catch (error) {\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `Unable to get master data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n const defaultValues: HomepageSectionFormValues = {\r\n title: '',\r\n teaserText: '',\r\n iconName: '',\r\n backgroundColor: '',\r\n isHtmlContent: true,\r\n pageContent: '',\r\n pageContentContext: '',\r\n url: '',\r\n };\r\n const validations = {\r\n\r\n title: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.title) {\r\n error = 'Please enter title';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n teaserText: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.teaserText) {\r\n error = 'Please provide teaser text.';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n iconName: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.iconName) {\r\n error = 'Please select an icon';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n backgroundColor: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.backgroundColor && values.backgroundColor.length > 0)) {\r\n error = 'Please provide background color';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n isHtmlContent: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!(values.isHtmlContent === false || values.isHtmlContent === true)) {\r\n error = 'Please select content type';\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n pageContent: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n pageContentContext: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n url: async function (values: HomepageSectionFormValues) {\r\n // Do validation here\r\n // two promises, one for local, one for async, usually serverside.\r\n let error: string | null = null;\r\n let promises = [\r\n new Promise((resolve, reject) => {\r\n // local validation logic here.\r\n if (!values.url) {\r\n error = \"Please provide a valid url\";\r\n }\r\n if (error != null) {\r\n reject(error);\r\n } else {\r\n resolve(null);\r\n }\r\n }),\r\n new Promise(\r\n (resolve, reject) => {\r\n // do server validation logic here.\r\n resolve(null);\r\n }\r\n ),\r\n ];\r\n let result = await Promise.all(promises);\r\n return result;\r\n },\r\n\r\n }\r\n\r\n let isSubmit = false;\r\n const debounceTime = 250;\r\n const ref = useRef(initRefs(defaultValues));\r\n const [values, setValues] = useState(defaultValues);\r\n const [errors, setErrors] = useState({});\r\n const [touched, setTouched] = useState({});\r\n //const debouncedValidateForm = _.debounce(validateForm, debounceTime);\r\n const debouncedValidateForm = validateForm;\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const [errorMessage, setErrorMessage] = useState(null);\r\n const [masterData, setMasterData] = useState(null);\r\n\r\n let validationCount = 0;\r\n let validationTotal = 1;\r\n\r\n function initRefs(viewModel: HomepageSectionFormValues) {\r\n if (viewModel == null) {\r\n return {};\r\n } else {\r\n let result: HomepageSectionFormRef = {};\r\n Object.keys(viewModel).forEach((key) => {\r\n result[key] = React.createRef();\r\n });\r\n return result;\r\n }\r\n }\r\n\r\n function registerRef(ref: HTMLElement | null) {\r\n console.log(ref);\r\n console.log(typeof ref);\r\n }\r\n\r\n function touchAll() {\r\n let keys = Object.keys(defaultValues);\r\n keys.forEach((key) => {\r\n touched[key] = true;\r\n });\r\n setTouched(touched);\r\n }\r\n\r\n function counterHit(currentError: HomepageSectionFormErrors) {\r\n validationCount += 1;\r\n // we did not handle timeout problem, but it will in future\r\n if (validationCount === validationTotal) {\r\n validationCount = 0;\r\n if (_.isEmpty(currentError)) {\r\n setIsValid(true);\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n setIsLoading(true);\r\n saveData({ ...values });\r\n } else {\r\n setIsLoading(false);\r\n }\r\n } else {\r\n if (isSubmit === true) {\r\n isSubmit = false;\r\n }\r\n if (isValid !== false) {\r\n setIsValid(false);\r\n }\r\n setIsLoading(false);\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n function saveData(viewModel: HomepageSectionFormValues) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n let newData = _.cloneDeep(viewModel);\r\n newData.homepageSectionId = isCreate ? 0 : parseInt(sectionId);\r\n //console.log(newData);\r\n saveHomepageSection(newData, false).then((response) => {\r\n console.log(response);\r\n setIsSubmitting(false);\r\n setTimeout(() => {\r\n history.push('/manageHomepageSections');\r\n }, 200);\r\n toastSuccessMessage('All changes saved.');\r\n\r\n }).catch((error) => {\r\n setIsSubmitting(false);\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n function toastSuccessMessage(message: string) {\r\n Swal.fire({\r\n icon: 'success',\r\n position: 'top-end',\r\n title: 'Success',\r\n text: message,\r\n timer: 5000,\r\n toast: true,\r\n timerProgressBar: true,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n })\r\n }\r\n\r\n function resetForm() {\r\n Object.keys(defaultValues).forEach((key, index) => {\r\n let temp = ref.current[key].current;\r\n if (temp != null) {\r\n // not implemented yet\r\n }\r\n });\r\n setValues(defaultValues);\r\n setIsLoading(false);\r\n setTouched({});\r\n setErrors({});\r\n }\r\n\r\n async function handleSubmit() {\r\n touchAll();\r\n setIsLoading(true);\r\n validateForm(values, validations, null);\r\n isSubmit = true;\r\n }\r\n\r\n function validateForm(values: HomepageSectionFormValues, validations: ValidtionFunctions, fieldName: string | null = null) {\r\n let newErrors: HomepageSectionFormErrors = {};\r\n setIsLoading(true);\r\n if (fieldName != null) {\r\n // only validate the changing field.Keep current errors info\r\n newErrors = errors;\r\n validationTotal = 1;\r\n validationCount = 0;\r\n validations[fieldName](values).then(() => {\r\n delete newErrors[fieldName];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[fieldName] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n } else {\r\n // if this validate is not trigered by input control change, validate all.\r\n let keys = Object.keys(defaultValues);\r\n validationTotal = keys.length > 0 ? keys.length : 0;\r\n validationCount = 0;\r\n keys.forEach((key) => {\r\n validations[key](values).then(() => {\r\n delete newErrors[key];\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n }, (error: string) => {\r\n newErrors[key] = error;\r\n setErrors(newErrors);\r\n counterHit(newErrors);\r\n });\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n function handleBlur(fieldName: string) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n setTimeout(() => {\r\n setTouched((prevValue) => {\r\n return {\r\n ...prevValue,\r\n [fieldName]: true,\r\n }\r\n });\r\n validateForm(values, validations, null);\r\n }, 250);\r\n }\r\n\r\n function handleChange(newValue: any, fieldName: string, fieldOnly = true) {\r\n if (errorMessage != null) {\r\n setErrorMessage(null);\r\n }\r\n if (fieldName === 'providerPhone') {\r\n if (newValue && utils.isValidPhone(newValue)) {\r\n newValue = utils.formatPhoneNumber(newValue);\r\n newValue = utils.formatPhoneNumber(newValue);\r\n }\r\n }\r\n values[fieldName] = newValue;\r\n setValues(values);\r\n if (!(touched[fieldName] != null)) {\r\n setTouched({ ...touched, [fieldName]: true });\r\n }\r\n debouncedValidateForm(values, validations, fieldOnly ? fieldName : null);\r\n }\r\n\r\n function isValidEmail(testTarget: string) {\r\n let myReg = /\\b[\\w\\.-]+@[\\w\\.-]+\\.\\w{2,4}\\b/gi;\r\n return myReg.test(testTarget);\r\n }\r\n\r\n function handleDelete() {\r\n const homepageSectionId: number = isCreate ? 0 : parseInt(sectionId);\r\n if (homepageSectionId !== 0) {\r\n Swal.fire({\r\n title: 'Confirm Deletion',\r\n text: \"Would you like to delete this section?\",\r\n icon: 'warning',\r\n showCancelButton: true,\r\n cancelButtonColor: 'lightgray',\r\n confirmButtonText: 'Delete',\r\n cancelButtonText: 'Cancel',\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n setIsSubmitting(true);\r\n setIsLoading(true);\r\n setErrorMessage(null);\r\n deleteHomepageSectionById(homepageSectionId, false).then((res) => {\r\n if (res && res.status === 200) {\r\n setTimeout(() => {\r\n history.push('/manageHomepageSections');\r\n }, 200);\r\n toastSuccessMessage('Section deleted.');\r\n }\r\n }).catch((error) => {\r\n setIsSubmitting(false);\r\n setIsLoading(false);\r\n console.log(error);\r\n });\r\n }\r\n })\r\n }\r\n }\r\n\r\n\r\n\r\n return [values, masterData, errors, touched, isLoading, isSubmitting, isValid, errorMessage, registerRef, handleChange, handleBlur, handleSubmit,handleDelete] as const;\r\n\r\n}\r\n","import React, { useEffect, useState, useRef } from 'react';\r\nimport { Link, useHistory, useParams } from 'react-router-dom';\r\nimport { Container, Breadcrumb, Grid, Header, Button, Icon, Image, Form, Input } from 'semantic-ui-react';\r\nimport { getIconListList } from '../../../Services/AdminServices';\r\nimport Swal from 'sweetalert2';\r\nimport axios from 'axios';\r\ntype IconSelectorProps = {\r\n onChange: Function;\r\n value: string;\r\n}\r\n\r\ntype IconListResponse = string[];\r\n\r\n\r\nexport const IconSelector: React.FC = (props) => {\r\n\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isListOpen, setIsListOpen] = useState(false);\r\n const [selectedIconName, setSelectedIconName] = useState(props.value);\r\n const [inputKey, setInputKey] = useState(0);\r\n\r\n useEffect(() => {\r\n if(props.value && props.value !== selectedIconName){\r\n setSelectedIconName(props.value);\r\n }\r\n }, [props.value]);\r\n\r\n function handleLoadIcon() {\r\n _fatchData();\r\n setIsListOpen(true);\r\n }\r\n\r\n function resetFileInput() {\r\n setInputKey((prevValue) => {\r\n return prevValue + 1;\r\n });\r\n }\r\n\r\n function handleUploadIcon() {\r\n let inputElement: HTMLElement | null = document.getElementById('icon-uploader');\r\n if (inputElement) {\r\n inputElement.click();\r\n }\r\n }\r\n\r\n function handleBackdropClick() {\r\n setIsListOpen(false);\r\n }\r\n\r\n function handleChange() {\r\n let inputElement: HTMLElement | null = document.getElementById('icon-uploader');\r\n if (inputElement) {\r\n let files = (inputElement as HTMLInputElement).files;\r\n if (files && files.length > 0) {\r\n let myData = new FormData();\r\n myData.append('file', files[0]);\r\n myData.append('replace', \"false\");\r\n setIsLoading(true);\r\n axios({\r\n method: \"post\",\r\n url: \"/Admin/UploadIcon\",\r\n data: myData,\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n })\r\n .then(function (response) {\r\n //handle success\r\n //console.log(response);\r\n setIsLoading(false);\r\n if (response.data === true) {\r\n Swal.fire({\r\n title: 'Replace File?',\r\n text: \"File with same name already exist, would you like to replace it?\",\r\n icon: 'warning',\r\n showCancelButton: true,\r\n cancelButtonText: 'Cancel',\r\n confirmButtonColor: '#3085d6',\r\n confirmButtonText: 'Replace'\r\n }).then((result) => {\r\n if (result.isConfirmed) {\r\n let newData = new FormData();\r\n // @ts-expect-error files[0] sure exist.\r\n newData.append('file', files[0]);\r\n newData.append('replace', \"true\");\r\n setIsLoading(true);\r\n axios({\r\n method: \"post\",\r\n url: \"/Admin/UploadIcon\",\r\n data: newData,\r\n headers: { \"Content-Type\": \"multipart/form-data\" },\r\n }).then((response2) => {\r\n setIsLoading(false);\r\n toastSuccessMessage('File upload completed.');\r\n });\r\n }else {\r\n // canceled\r\n }\r\n })\r\n } else {\r\n toastSuccessMessage('File upload completed.');\r\n }\r\n resetFileInput();\r\n })\r\n .catch(function (response) {\r\n //handle error\r\n console.log(response);\r\n setIsLoading(false);\r\n });\r\n }\r\n }\r\n }\r\n\r\n function toastSuccessMessage(message: string) {\r\n Swal.fire({\r\n icon: 'success',\r\n position: 'top-end',\r\n title: 'Success',\r\n text: message,\r\n timer: 5000,\r\n toast: true,\r\n timerProgressBar: true,\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n })\r\n }\r\n\r\n function handleSelectItem(iconName: string) {\r\n console.log(iconName);\r\n setSelectedIconName(iconName);\r\n }\r\n\r\n function _fatchData() {\r\n try {\r\n setIsLoading(true);\r\n getIconListList().then((response) => {\r\n setIsLoading(false);\r\n if (response.status === 200 && response.data) {\r\n let data = response.data as IconListResponse;\r\n if (data.length > 0) {\r\n setData(data);\r\n }\r\n\r\n } else {\r\n throw new Error('Unable to fetch icon list data!');\r\n }\r\n });\r\n } catch (error) {\r\n setIsLoading(false);\r\n Swal.fire(\r\n {\r\n icon: 'error',\r\n title: 'Error While Processing',\r\n text: `Unable to get master data for the form.`,\r\n showConfirmButton: true,\r\n confirmButtonText: \"OK\",\r\n confirmButtonColor: '#1678c2'\r\n }\r\n ).then(() => {\r\n });\r\n }\r\n\r\n }\r\n\r\n return (
\r\n {\r\n selectedIconName !== '' &&\r\n
\r\n {selectedIconName}\r\n
\r\n }\r\n {\r\n selectedIconName !== '' &&\r\n \r\n }\r\n \r\n
Or
\r\n \r\n {\r\n isListOpen &&\r\n
\r\n
{\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }}>\r\n

Select an icon

\r\n\r\n
\r\n
\r\n {\r\n data.map((item, index) => {\r\n return
{ handleSelectItem(item) }}\r\n >\r\n \r\n
{item}
\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 handleChange()\r\n }}>\r\n
\r\n\r\n
);\r\n}","import React from 'react';\r\nimport { Segment } from 'semantic-ui-react';\r\nimport _ from 'lodash';\r\n\r\nvar $ = require(\"jquery\");\r\n\r\nclass NewCommonRichEditor extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n const debounceTime = props.debounceTime || 500;\r\n this.currValue = props.value || null;\r\n this.editerFrame = null;\r\n let texEditorId = new Date().valueOf().toString() + '-texteditor';\r\n this.state = {\r\n isDivLoaded: false,\r\n texEditorId: texEditorId,\r\n };\r\n this.handleChange = _.debounce(this.handleChange, debounceTime);\r\n }\r\n\r\n messageListener = (event)=>{\r\n if(event && event.data){\r\n if(typeof event.data === 'string'){\r\n let data = JSON.parse(event.data);\r\n if(data.type === \"ON_CHANGE\"){\r\n this.handleChange(data.value);\r\n this.currValue = data.value;\r\n }else if(data.type === \"ON_BLUR\"){\r\n if(this.props.onBlur && typeof this.props.onBlur === 'function'){\r\n this.props.onBlur();\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n setupIFrame = ()=>{\r\n const iframe = document.createElement(\"iframe\");\r\n iframe.srcdoc = `\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 \r\n `;\r\n iframe.sandbox = \"allow-scripts\";\r\n iframe.style.width = \"100%\";\r\n iframe.style.minHeight = '500px';\r\n iframe.style.zIndex = 10;\r\n let parentNode = document.getElementById(`${this.state.texEditorId + \"-container\"}`);\r\n if(parentNode != null){\r\n parentNode.appendChild(iframe);\r\n this.editerFrame = iframe;\r\n };\r\n // using event listener to handle the \r\n window.addEventListener('message', this.messageListener);\r\n \r\n if(this.props.value){\r\n let HTMLstring = this.props.value;\r\n if(this.editerFrame != null){\r\n setTimeout(()=>{\r\n let payloadA = {\r\n type: \"CODE\",\r\n value: HTMLstring,\r\n }; \r\n this.editerFrame.contentWindow.postMessage(JSON.stringify(payloadA),\"*\");\r\n $(`#${this.state.texEditorId}`).summernote('code', HTMLstring);\r\n },200); \r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n setTimeout(() => {\r\n this.setState({\r\n isDivLoaded: true,\r\n });\r\n this.setupIFrame();\r\n }, 500);\r\n }\r\n\r\n \r\n\r\n componentDidUpdate(prevProps){\r\n if(prevProps.value !== this.props.value && this.props.value !== this.currValue){\r\n if(this.editerFrame != null){\r\n let payloadA = {\r\n type: \"RESET\",\r\n value: \"\",\r\n };\r\n let payloadB = {\r\n type: \"CODE\",\r\n value:this.props.value,\r\n };\r\n this.editerFrame.contentWindow.postMessage(JSON.stringify(payloadA),\"*\");\r\n this.editerFrame.contentWindow.postMessage(JSON.stringify(payloadB),\"*\");\r\n }\r\n }\r\n }\r\n\r\n handleChange = (content)=>{\r\n //console.log(content);\r\n if(this.props.onChange && typeof this.props.onChange === 'function'){\r\n this.props.onChange(content);\r\n }\r\n }\r\n\r\n componentWillUnmount(){\r\n window.removeEventListener('message', this.messageListener);\r\n }\r\n\r\n initalSummerNote = ()=>{\r\n $(`#${this.state.texEditorId}`).summernote(\r\n {\r\n height:300,\r\n toolbar: [\r\n ['style', ['style']],\r\n ['font', ['bold', 'underline', 'clear']],\r\n ['color', ['color']],\r\n ['para', ['ul', 'ol', 'paragraph']],\r\n ['table', ['table']],\r\n ['insert', ['link', 'picture']],\r\n ['view', ['fullscreen', 'codeview', 'help']],\r\n ],\r\n popover: {\r\n image: [\r\n ['image', ['resizeFull', 'resizeHalf', 'resizeQuarter', 'resizeNone']],\r\n ['float', ['floatLeft', 'floatRight', 'floatNone']],\r\n ['remove', ['removeMedia']]\r\n ],\r\n link: [\r\n ['link', ['linkDialogShow', 'unlink']]\r\n ],\r\n table: [\r\n ['add', ['addRowDown', 'addRowUp', 'addColLeft', 'addColRight']],\r\n ['delete', ['deleteRow', 'deleteCol', 'deleteTable']],\r\n ],\r\n },\r\n disableGrammar: true,\r\n callbacks: {\r\n onChange: (content)=>{\r\n this.handleChange(content);\r\n this.currValue = content;\r\n },\r\n onBlur: ()=>{\r\n if(this.props.onBlur && typeof this.props.onBlur === 'function'){\r\n this.props.onBlur();\r\n }\r\n }\r\n }\r\n }\r\n );\r\n $('.dropdown-toggle').dropdown();\r\n $('div.note-editable').height(300);\r\n \r\n \r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n {\r\n this.state.isDivLoaded && \r\n
\r\n }\r\n {\r\n !this.state.isDivLoaded && \r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default NewCommonRichEditor;","import React, { MouseEvent } from 'react';\r\nimport { Link, useHistory, useParams } from 'react-router-dom';\r\nimport { Container, Breadcrumb, Grid, Header, Button, Icon, Segment, Form, Input, Checkbox } from 'semantic-ui-react';\r\nimport { useEditHomepageSectionForm } from './useEditHomepageSectionForm';\r\nimport { IconSelector } from './IconSelector';\r\nimport { convertToRaw } from 'draft-js';\r\nimport NewCommonRichEditor from '../../Common/CommonComponents/NewCommonRichEditor';\r\n\r\n\r\nexport function EditHomepageSectionForm() {\r\n const history = useHistory();\r\n\r\n let params: any = useParams<{ sectionId: string }>();\r\n let sectionId: number = parseInt(params.sectionId);\r\n const isCreate: boolean = sectionId === 0;\r\n\r\n const [values, masterData, errors, touched, isLoading, isSubmitting, isValid, errorMessage, registerRef, handleChange, handleBlur, handleSubmit, handleDelete] = useEditHomepageSectionForm(isCreate);\r\n\r\n return \r\n
{isCreate ? 'Create' : 'Edit'} Home Page Section
\r\n
\r\n \r\n Home\r\n \r\n Manage Home Page Sections\r\n \r\n {isCreate ? 'Create' : 'Edit'} Home Page Section\r\n \r\n \r\n \r\n
\r\n {\r\n handleChange(data.value, 'title');\r\n }}\r\n onBlur={\r\n () => { handleBlur('title'); }\r\n }\r\n error={!(!errors.title || !touched.title) ? true : false}\r\n />\r\n {\r\n !(!errors.title || !touched.title) &&\r\n
{errors.title}
\r\n }\r\n {\r\n handleChange(data.value, 'teaserText');\r\n }}\r\n onBlur={\r\n () => { handleBlur('teaserText'); }\r\n }\r\n error={!(!errors.teaserText || !touched.teaserText) ? true : false}\r\n\r\n />\r\n {\r\n !(!errors.teaserText || !touched.teaserText) &&\r\n
{errors.teaserText}
\r\n }\r\n\r\n \r\n \r\n {\r\n handleChange(selectedIconName, 'iconName');\r\n }}\r\n value={values.iconName}\r\n >\r\n {\r\n !(!errors.iconName || !touched.iconName) &&\r\n
{errors.iconName}
\r\n }\r\n
\r\n {\r\n handleChange(event.target.value, 'backgroundColor');\r\n }}\r\n value={values.backgroundColor}\r\n onBlur={\r\n () => { handleBlur('backgroundColor') }\r\n }\r\n >\r\n {\r\n !(!errors.backgroundColor || !touched.backgroundColor) &&\r\n
{errors.backgroundColor}
\r\n }\r\n \r\n Selected content type:\r\n \r\n \r\n {\r\n handleChange(value === 'true', 'isHtmlContent');\r\n }}\r\n />\r\n \r\n \r\n {\r\n handleChange(value === 'true', 'isHtmlContent');\r\n }}\r\n />\r\n \r\n {\r\n values.isHtmlContent === true &&\r\n <>\r\n \r\n \r\n {\r\n handleChange(newValue, 'pageContent');\r\n }}\r\n handleonBlur={(event: any, editorState: any, rawContent: any) => {\r\n handleBlur('pageContent');\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleChange(data.value, 'url');\r\n }}\r\n onBlur={\r\n () => { handleBlur('url') }\r\n }\r\n error={!(!errors.url || !touched.url) ? true : false}\r\n />\r\n {\r\n !(!errors.url || !touched.url) &&\r\n
{errors.url}
\r\n }\r\n
\r\n \r\n }\r\n {\r\n values.isHtmlContent === false &&\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n handleChange(data.value, 'url');\r\n }}\r\n onBlur={\r\n () => { handleBlur('url') }\r\n }\r\n error={!(!errors.url || !touched.url) ? true : false}\r\n />\r\n {\r\n !(!errors.url || !touched.url) &&\r\n
{errors.url}
\r\n }\r\n
\r\n \r\n }\r\n\r\n\r\n\r\n \r\n {\r\n !isCreate &&\r\n \r\n }\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n}","import React, { useState, useEffect } from \"react\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport { Segment } from \"semantic-ui-react\";\r\nimport { PublicHomeNav } from \"../../Common/PublicComponents/PublicHomeNav\";\r\nimport { PublicSkipContentLink } from \"../../Common/PublicComponents/PublicSkipContentLink\";\r\nimport { PUBLIC_SITE_URL_ACTIVE_MAP } from \"../../../App\";\r\nimport { getPageContent } from \"../../../Services/PublicServices\";\r\nimport { SectionData } from \"../ManageHomepageSections/SectionCard\";\r\nimport { unset } from \"lodash\";\r\n\r\nexport function PublicCustomPages() {\r\n let { urlcode } = useParams<{ urlcode: string }>();\r\n const htmlHeaders = ``;\r\n const htmlAfters = ``;\r\n useEffect(() => {\r\n setIsLoading(true);\r\n getPageContent(urlcode, false)\r\n .then((response) => {\r\n setIsLoading(false);\r\n if (response && response.data) {\r\n let newData = response.data as SectionData;\r\n setSectionData(newData);\r\n } else {\r\n throw new Error(\"Unable to get data from server.\");\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }, []);\r\n\r\n const [sectionData, setSectionData] = useState(null);\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const dataLoaded: boolean = sectionData !== null;\r\n\r\n const pageHTML =\r\n htmlHeaders +\r\n (sectionData != null ? sectionData.pageContent : \"\") +\r\n htmlAfters;\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{(sectionData && sectionData.title) || \"\"}

\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {!dataLoaded && (\r\n \r\n )}\r\n {\r\n dataLoaded && (\r\n
\r\n
\r\n
\r\n )\r\n //