{"version":3,"sources":["components/shared/services/authentication.service.js","components/authentication/Login.js","components/BootstrapNavbar.js","components/shared/ViewportProvider.js","components/pages/images/mdShulInside.jpg","components/shared/services/utilservice.js","components/pages/images/future_shul.jpg","components/shared/services/hebcalAPIservice.js","components/shared/homeComponents/ZmanimDlg.js","components/shared/homeComponents/HebrewDateInfo.js","components/shared/services/postAdService.js","components/shared/Controls/ColorPickerDlg.js","components/shared/Controls/PostAdEditor.js","components/shared/services/classifiedAdService.js","components/pages/ads/ShowImageDlg.js","components/pages/ads/ImageViewer.js","components/pages/ads/MainPageAdsDisplay.js","components/pages/Home.js","components/pages/PayPal.js","components/pages/PayPalConfirm.js","components/authentication/RegistrationConfirm.js","components/shared/Util.js","components/shared/TelephoneEntry.js","components/shared/FirstNameEntry.js","components/shared/LastNameEntry.js","components/authentication/Register.js","components/authentication/ForgotCredentials.js","components/authentication/Activate.js","components/shared/services/donationService.js","components/pages/content/UserDonations.js","components/authentication/PasswordReset.js","components/authentication/PasswordResetWasSent.js","components/pages/ContactUs.js","components/pages/Help.js","components/pages/ContactUsSuccess.js","components/pages/admin/MenageRoles.js","components/pages/admin/UsersInRole.js","components/shared/services/projectsService.js","components/pages/admin/Projects/MenageProjects.js","components/pages/content/Projects.js","components/pages/admin/Projects/MenageUserProjects.js","components/pages/admin/Projects/MenageContractorProjects.js","components/pages/admin/Schedule/DayEventDlg.js","components/shared/services/schedulerService.js","components/pages/admin/Schedule/CopyDayEventsDlg.js","components/pages/admin/Schedule/DayScheduler.js","components/pages/admin/Schedule/WeekScheduler.js","components/pages/admin/Schedule/Scheduler.js","components/pages/Account.js","components/pages/admin/TestIPN.js","components/pages/content/ShuleScheduleCalendar.js","components/pages/content/ShulSchedule.js","components/pages/ads/WelcomePost.js","components/shared/Controls/IncrementDecrementCounter.js","components/pages/ads/HomePagePost.js","components/pages/admin/ads/HomepageAds.js","components/shared/Controls/RadioBtn.js","components/pages/ads/ClassifiedAdPostDesktop.js","components/pages/ads/ClassifiedPostHomeDesktop.js","components/pages/ads/ClassifiedAdPostMobile.js","components/pages/ads/ClassifiedPostHomeMobile.js","components/pages/ads/ClassifiedPostHome.js","components/pages/ads/ClassifiedPosted.js","components/pages/ads/ConfirmClassifiedAd.js","components/pages/admin/ads/ClassifiedAdsAdmin.js","components/pages/ads/ClassifiedRemoveSuccess.js","components/shared/Controls/ImageSlider.js","components/pages/ads/ClassifiedsCategoryViewer.js","components/pages/ads/ClassifiedsMainViewer.js","components/pages/ads/ClassifiedsAdViewer.js","components/pages/ads/HomePagePosted.js","components/pages/ads/ConfirmMainPagePost.js","components/pages/admin/variables/ConfigVariables.js","components/pages/admin/PayPal/PayPalAdmin.js","App.js","reportWebVitals.js","index.js"],"names":["SERVER_URL","process","SHUL","username","password","a","localStorage","removeItem","data","JSON","stringify","userID","source","fetch","method","body","headers","then","helperUtil","handleErrors","response","console","log","json","status","token","user","jwt","setItem","catch","error","isExpired","getItem","exp","Date","now","email","path","window","location","origin","toString","userName","baseUrl","result","emailAlreadyPresent","emailExistsInContacts","userIDAlreadyPresent","generalStatus","errors","firstName","subject","lastName","roles","role","id","roleId","authenticationService","login","logout","isUserLoggedIn","getUserFirstName","FirstName","resetPassword","resetCredentials","getUserEmail","Email","sendContactUs","getUserRoles","Roles","isAdministrator","includes","getAllRoles","addRole","deleteRole","getUsersInRole","getUserID","ContactID","isSuperUser","LoginComponent","props","isFormValidated","state","isUserIDValid","isPasswordValid","renderRegisterLink","isRegisterRoute","to","onClick","href","renderUserIdLabel","class","style","color","renderPasswordLabel","handleUserIdChange","event","userId","target","value","setState","length","handlePasswordChange","renderUserDonations","pathname","handleSubmit","preventDefault","closeModal","tokenHandler","hasErrors","renderError","showLogin","helloComponent","bind","this","createBrowserHistory","Modal","show","onHide","Header","closeButton","Title","Body","name","placeholder","onChange","className","type","Footer","Button","variant","disabled","React","Component","BootstrapNavbar","useState","setShowLogin","loggedInFirstName","setLoggedInFirstName","useLocation","isPublicRouter","handleLogin","openModal","handleLogout","reload","CustomToggle","forwardRef","ref","children","Nav","Link","e","CustomMenu","labeledBy","setValue","aria-labelledby","FormControl","autoFocus","Children","toArray","filter","child","toLowerCase","startsWith","handleSelectDropDown","renderSuperUserDropDown","key","label","Dropdown","Item","eventKey","onSelect","Navbar","bg","collapseOnSelect","expand","Toggle","aria-controls","Collapse","renderYourDonations","renderAccount","as","Menu","zIndex","renderAdminDropDown","renderHome","useViewport","innerWidth","width","setWidth","innerHeight","height","setHeight","useEffect","handleWindowResize","addEventListener","removeEventListener","title","description","url","configName","prop1","configVar","valueStr","accountInfo","telephone","address","jewishName","utilService","markPage","getAccount","modifyProfile","getDateFormatted","date","lclDate","dateFnsFormat","getAddress","isJsonString","str","parse","isEmailPatternValid","emailValue","pattern","RegExp","undefined","test","getVariableForEntity","getDonatePhysicalAddress","TZID","ZIP","scheduleEvents","isObjectQualityGood","format","dayFormattedString","jBasicDateInfo","zmanim","hebcalAPIservice","getDateTimes","getDateZmanim","getWeeklySchedule","ZmanimDlg","onClose","showModal","currentDate","borderBottom","borderTop","formatDayDate","scrollable","Table","striped","hover","size","TableRow","TableCell","align","chatzotNightTime","chatzotNight","alotHaShacharTime","alotHaShachar","misheyakirTime","misheyakir","misheyakirMachmirTime","misheyakirMachmir","dawnTime","dawn","sunriseTime","sunrise","sofZmanShmaTime","sofZmanShma","sofZmanTfillaTime","sofZmanTfilla","chatzotTime","chatzot","minchaGedolaTime","minchaGedola","minchaKetanaTime","minchaKetana","plagHaMinchaTime","plagHaMincha","sunsetTime","sunset","tzeit42minTime","tzeit42min","tzeit50minTime","tzeit50min","tzeit72minTime","tzeit72min","hebrewDayInfo","HebrewDayInfo","gregorianDate","setGregorianDate","dayString","setDayString","zmanimString","setZmanimString","showZmanimDlg","setShowZmanimDlg","setZmanim","populateZmanim","useCallback","jDayZmanimString","dayFormatted","fetchData","handleDateChange","handleAddDay","setDate","getDate","populateOnDateChange","handleSubtractDay","handleMarqueeClick","renderGregorianDate","LocalizationProvider","dateAdapter","AdapterDateFns","DatePicker","renderInput","TextField","onZmanimDlgClose","border","colSpan","background","Text","View","flex","flexDirection","justifyContent","renderZmanim","usertID","duration","startDate","isHTML","isEditor","isAdminPost","isAuthenticated","postAdObject","getPostAdObject","apiResponse","postAd","durationDays","getDurationDays","postAds","dataToSend","getPostAdObjectFromRespose","contactID","imageId","image","postedAd","isApproved","isAdminApproved","formData","FormData","append","axios","post","res","endDate","getTime","entity","userEmail","isActive","dateRange","getStartEndDates","contactId","uuid","v1","file","postAdService","getPostAd","getActivePosts","approve","getApprovedPosts","confirmPost","getPostAdUnauthenticated","getUnauthenticatedPosts","addImageAuthenticated","deleteImage","loadImage","getAllPostAdImagesExceptFirstAuthenticated","repostAd","ColorPickerDlg","onColorPicked","onDefaultColorPicked","setColor","useRef","modalWidth","setModalWidth","current","offsetWidth","styles","StyleSheet","create","text","fontSize","lineHeight","fontWeight","letterSpacing","onDefault","onSubmit","alignItems","onChangeComplete","pickedColor","marginTop","marginRight","PostAdEditor","onRichTextEditorStateChanged","initialEditorState","isReadOnly","showColorPickerDlg","setShowColorPickerDlg","EditorState","createEmpty","editorState","setEditorState","editor","focusEditor","focus","styleMap","CODE","backgroundColor","fontFamily","padding","toggleBlockType","blockType","newState","RichUtils","toggleInlineStyle","inlineStyle","pickColorClick","BlockButton","onToggle","active","onMouseDown","renderBlockBtn","getBlockStyle","block","getType","INLINE_STYLES","BLOCK_TYPES","BlockStyleControls","selection","getSelection","getCurrentContent","getBlockForKey","getStartKey","map","InlineStyleControls","currentStyle","getCurrentInlineStyle","has","hex","code","fontSizes","handleFontSizeChange","onColorPickerDlgClose","options","renderEitorHeader","contentState","hasText","getBlockMap","first","blockStyleFn","customStyleMap","readOnly","spellCheck","renderEitor","adId","imgId","shortDescription","pageId","category","postData","ads","ad","images","classifiedAdService","addNewImage","cleanupIntermediaryAd","confirmAd","fetchClassifiedsForAdmin","approveAd","getForEdit","deleteAd","getFirstInCategories","getAd","getAllImagesExceptFirst","getAllForCategory","ShowImageDlg","imageIdToShow","setTitle","imageToShow","setImageToShow","onShowModal","onShow","maxHeight","overflowY","src","alt","renderImage","ImageViewer","setImageIdToShow","isShowImgDlg","setIsShowImgDlg","imageIndex","setImageIndex","isMobile","handleWindowSizeChange","onShowImgDlgClose","handleNextPic","handlePrevPic","renderNextBtn","iLength","renderPrevBtn","objectFit","renderCurrentImage","MainPageAdsDisplay","onFetchedPosts","activePosts","setActivePosts","getNumberOfPosts","posts","isThereAValidPost","getAllImages","i","numberOfImages","addImages","n","postImages","renderPostedAdDescription","dangerouslySetInnerHTML","__html","convertFromRaw","createWithContent","borderBottomWidth","borderTopWidth","renderName","fontStyle","renderAdmindAd","renderPostedAd","index","isAdminAd","activePost","getAdminPosts","adminPosts","marginBottom","renderAdminPosts","areThereNonAdminPosts","renderPosts","IsMobile","renderWelcomeName","renderWelcomeHebrew","renderAddress","renderHebrewDay","renderMemo","renderScheduleLink","renderStatusBar","MobileHome","showLogoPicture","setShowLogoPicture","areThereValidPosts","HousePic","container","logo","DesktopHome","height1","futureShul","alignSelf","Home","setEntity","setAddress","PayPal","donationValue","setDonationValue","isDonationValueValid","setIsDonationValueValid","isFractionalSubscription","setFractionalSubscription","isDonationTooSmall","setIsDonationTooSmall","isDonationEmpty","setIsDonationEmpty","isPurposeValid","setPurposeValid","purpose","setPurpose","isRecurring","setIsRecurring","isReurringMonthly","setIsRecurringMonthly","setIsRecurringYearly","purposes","setPurposes","isOtherPurposeSelected","setOtherPurposeSelected","donatePhysicalAddress","setDonatePhysicalAddress","isOnPayPalApprove","setOnPayPalApprove","approvedOrderDetails","setApprovedOrderDetails","defaultOptions","useMemo","lclOptions","jsonObj","donatePhysAddress","checkPurpose","checkDonationValue","isNaN","trim","donation","Number","handlePriceChange","handleOrderClicked","refreshDonationTooSmall","leftRowView","centerViewBelow","centerViewTop","handleAmountSelection","amount","handlePurposeChange","isOtherPuspose","handleRecurrencyChange","checked","handleOtherPurposeChange","paypalOnError","err","payPalOnApprove","actions","order","capture","details","orderID","paypalCreateOrder","purchase_units","currency_code","application_context","shipping_preference","layout","shape","paypalSubscribe","isDecimal","planID","subscription","plan_id","quantity","onRecurringMonthlyChange","decimalsLimit","prefix","onValueChange","renderPurposeValidLabel","renderFractionalSubscription","SafeAreaView","renderRecurringOptions","TextInput","autoCorrect","borderColor","onChangeText","renderOtherPurposeBox","intent","NOSHIPPING","currency","createSubscription","catchError","onError","onCancel","shippingPreference","createOrder","onApprove","renderPhysicalAddress","search","payer","given_name","referrer","renderPayPalOnApprove","PayPalConfirm","parsed","require","currSign","marginLeft","renderConfirm","RegistrationConfirmationComponent","getWeekRange","getDay","ok","Error","statusText","getDayOfTheWeek","getWeekRangeFormatted","htmlFormat","range","FORMAT","startDay","endDay","parseDate","locale","dateFnsParse","DateUtils","isDate","formatDate","telephoneEntry","TelephoneInput","onTelephoneChange","controlsStyle","isTelephoneInvalid","setIsTelephoneInvalid","isTelephoneWrongFormat","setIsTelephoneWrongFormat","tableStyle","renderTelephoneWrongFormat","renderTelephoneLabel","handleTelephoneChange","match","firstNameEntry","FirstNameInput","onFirstNameChange","isFirstNameValid","setFirstNameValid","handleFirstNameChange","renderFirstNameLabel","component","scope","required","lastNameEntry","LastNameInput","onLastNameChange","labelText","applyRegularExpression","isLastNameValid","setLastNameValid","placeHolder","handleLastNameChange","renderLastNameLabel","Register","handleUserIDChange","setUserId","setErrors","userAlreadyPresent","userIdTooShort","setIsUserIdValid","isAlreadyPresent","handleEmailChange","setEmail","invalidEmail","setIsEmailValid","checkUserResponse","handleConfirmPasswordChange","confirmPassword","setConfirmPassword","confirmPasswordDoesnotMatch","setConfirmPasswordValid","doPasswordsMatch","confirmPasswordDonotmatch","setPassword","passwordTooShort","setPasswordValid","submitting","setSubmitting","setTelephone","isTelephoneValid","setTelephoneValid","isUserIdValid","isEmailValid","isConfirmPasswordValid","setFirstName","setLastName","isConfirmationRedirect","setconfirmationRedirect","isValid","phone","ErrorsubmittingTheForm","confirmationEmailSent","errorsubmittingTheForm","renderRegistrationConfirmation","ForgotCredentials","setConfirmationRedirect","margin","Activate","isConfirmationSuccess","setIsConfirmationSuccess","isParseSuccess","setIsParseSuccess","isTokenExpired","setTokenExpired","setStatus","onload","onPageLoad","isEmailConfirmed","clientId","donations","donationService","getDonations","getPayPalTransations","getPayPalBalances","UserDonations","setStartDate","setEndDate","setDonations","total","setTotal","serverError","setServerError","populateInitialDonations","beginDate","getFullYear","reduce","v","populateInitialDate","initialDate","handleFilter","formatReturnedDate","renderDonation","textAlign","lastCharacter","slice","header","renderHeader","dayPickerProps","month","showWeekNumbers","todayButton","onDayChange","day","moment","renderStartDate","renderEndtDate","TableHead","TableBody","renderWelcomeHeader","PasswordReset","setToken","success","setsuccess","doMacth","confirmPasswordTooShort","failure","renderSuccess","PasswordResetWasSent","ContactUsComponent","renderContactUsSuccess","contactUsSuccess","handleFirstChange","handleSubjectChange","isSubjectValid","renderEmailLabel","renderSubjectLabel","renderTextArea","maxLength","renderUserEmail","renderFirstName","setUserLoggedIn","HelpComponent","ContactUsSuccess","MenageRoles","setRoles","isAddNewRole","setIsAddNewRole","newRole","setNewRole","selectedRole","setSelectedRole","fetchRoles","handleRole","handleDelete","confirmAlert","message","buttons","handleNewRoleChange","renderMainPage","renderAddRole","renderUsersInRole","UsersInRoles","users","setUsers","fetchUsers","projects","projectsService","getAllUsers","addContractorProject","getAllContractorProjects","deleteContractorProject","MenageProjects","renderUser","clickcounter","Projects","MenageUserProjects","handleAddProject","isAddNewProject","renderAddNewProject","ContractorProjects","setProjects","isAddProject","setIsAddProject","newProject","setNewProject","projectDescription","setProjectDescription","handleNewProjectChange","handleDescriptionChange","fetchContractorProjects","handleProject","deleteProject","project","DayEventDlg","dlgTitle","onDayEventSubmit","eventInfo","titlePlaceHolder","eventTime","setEventTime","onChangeDescription","handleTitleChange","getFullDateTime","eventDate","action","editDate","getMonth","getHours","getMinutes","getSeconds","isSubmitValid","formatEventTime","getFullDateTimeFormatted","formattedEventInfo","ID","Id","dateTimeStr","input","borderWidth","MobileTimePicker","newValue","params","DesktopTimePicker","multiline","editable","isCancelled","iscancelled","isAllDay","isallday","isWeek","scheduleEvent","dataDayEventsCopy","fromDate","toDate","schedulerService","addDayEvent","getDaySchedule","deleteEvent","updateDayEvent","updateWeekEvent","getWeeklyEvent","copyDayEvents","CopyDayEventsDlg","datesArray","setDatesArray","updateState","forceUpdate","buildForwardCalendarArray","list","addedDate","toLocaleString","copied","isError","push","renderDate","copyDate","htmlFor","handleSubmitClick","dates","d","next7DaysClick","find","getDlgTitle","dayScheduler","DayScheduler","isDaySchedule","showDayEventDlg","setShowDayEventDlg","eventAction","setEventAction","events","setEvents","currentEvent","setCurrentEvent","fullDayEventId","setFullDayEventId","showCopyDayEventsDlg","setShowCopyDayEventsDlg","getEvents","shulEvents","allDay","onDayEventDlgSubmit","renderEvent","dayEvent","eventText","handleDayEventClick","handleDeleteEvent","renderEvents","filteredEvents","removeFullDay","button","paddingVertical","paddingHorizontal","borderRadius","elevation","act","handleEditAdd","handleEditEvent","handleCopyDayEventsClick","lclEventId","currEnentInfo","handleFullDayEventClick","allDayId","onDayEventDlgClose","onCopyDayEventsSubmit","onCopyDayEventsDlgClose","renderDayEventDlg","visibility","renderDaySchedule","weekScheduler","WeekScheduler","setIsHTML","getWeekly","weeklyEvent","handleUpdateClick","renderRange","Scheduler","scheduledDay","setScheduledDay","scheduleDay","setScheduleDay","scheduleWeek","setScheduleWeek","daySchedulerKey","setDaySchedulerKey","months","getMonthName","formatTitleDate","renderScheduledDate","renderDayScheduler","onDayRangeChanged","onWeekRangeChanged","RadioButton","onPress","Grid","spacing","xs","sm","renderTable","Account","initialFirstName","setInitialFirstName","setJewishName","isJewishNameValid","setJewishNameValid","isAddressValid","setIsAddressValid","isUpdateError","setUpdateError","changeFirstName","changeLastName","changeJewishName","changeTelephone","lclAccount","submitChanges","renderUpdateError","geocodeByAddress","results","getLatLng","latLng","Geocode","setApiKey","setLanguage","lat","lng","fromLatLng","formatted_address","getInputProps","suggestions","getSuggestionItemProps","loading","suggestion","cursor","TestIPN","ShuleScheduleCalendar","calendarEvents","setCalendarEvents","setLoading","setWeeklyEvent","transformCalendarEvents","days","transformWeeklyEvent","weekEvent","fetchWeeklySchedule","calendarEvent","renderDay","calendarDay","handleAddWeek","getNextStartWeekDate","handleSubtractWeek","getPreviousStartWeekDate","previousDay","nextDay","eventsLoadedText","renderWeekly","renderCalendarEvents","ShulSchedule","WelcomePost","onAuthenticated","titleText","welcomeText","welcomeNameText","renderWelcomeMemo","IncrementDecrementCounter","maxUnits","onCounterChanged","initialCount","isWeeks","counter","setCounter","renderDaysWording","wording","handleIncrementCounter","maxNum","count","handleDecrementCounter","HomePagePost","isUserAuthenticated","setIsUserAuthenticated","errorText","setErrorText","dateValid","setDateValid","textValid","setTextValid","setIsMobile","setDuration","setApiResponse","setInitialEditorState","rangeDates","setRangeDates","initialDurationDays","setInitialDurationDays","setHTMLPreviewString","showPostWarning","setShowPostWarning","setIsAdminPost","setName","isNameValid","setIsNameValid","isPosting","setPosting","timerRef","isUnAuthenticatedPosted","setIsUnAuthenticatedPosted","editToken","setEditToken","inputFile","isUploadingImage","setIsUploadingImage","showFileExtensionWarning","setShowFileExtensionWarning","showImageUploadError","setShowImageUploadError","timerFileExtensionRef","timerImageUploadErrorRef","listInputPics","setListInputPics","isDeletingImage","setIsDeletingImageageIdToShow","clearTimeout","updateBtnView","getInitialEditorState","isDateValid","entityMap","blocks","depth","inlineStyleRanges","entityRanges","recalculateDatesRange","utilservice","fetchUnauthenticated","getInitialUnauthenticatedEditorState","initialState","ContentState","createFromText","getPlainText","fetchPostPage","today","editorText","isTextValid","html","getHTMLFromEditor","handleNameChange","onUploadFileClick","click","onAddFile","files","extension","split","pop","setTimeout","hideExtensionWarning","stopPropagation","hideImageUploadError","renderInputPictures","renderThumbnailImage","thmbnail","onCancelPicture","renderAttachFile","convertToRaw","hidePost","convertToHTML","styleToHTML","blockToHTML","entityToHTML","originalText","handleIsAdmin","picRemoved","element","handleIsHTML","dummyAsync","renderHTMLBtn","renderAdminCheckBox","onDurationChannged","handleInputTextChange","inputText","localeCompare","words","Boolean","isScreenMobile","queryString","edit","renderApiValidation","renderRangeDates","renderMobile","renderPostAdEditor","accept","display","renderFileExtensionWarning","renderImageUploadError","renderDeletingImage","renderEmail","renderHTMLPreview","renderReadOnlyPreview","renderPostWarning","renderUnAuthenticatedPosted","HomepageAds","unauthenticatedPosts","allPosts","handleApproveClick","renderAdminApproveBtn","statusColor","renderThumbnails","thumbnails","renderMoveForwardBtn","handleRepostClick","renderAd","isAdCurrent","renderActieAds","RadioBtn","ClassifiedAdPostDesktop","editPageId","editMode","setShortDescription","isAdAdded","setIsAdAdded","isUploadingImageError","setIsUploadingImageError","setIsTelephoneValid","ispostedSuccess","setPostedSuccess","timerErrorTextRef","isModified","setIsModified","initialDuration","setInitialDuration","isEditting","setIsEditting","isRemoveSuccess","setIsRemoveSuccess","miscellaneousText","setMiscellaneousText","onUnload","returnValue","durationWeeks","hideErrorText","handleShortDescriptionChange","InitWindowStyles","root","rowContainer","textLeft","textInput","textBtn","attachFileBtnView","onPostClick","onRemoveClick","overlayClassName","renderUploadingImage","renderUploadingImageError","numberOfWords","renderRemoveButton","renderMiscellaneous","renderValidation","renderPostedSuccess","renderRemoveSuccess","ClassifiedPostHomeDesktop","onSectionChanged","section","handleSectionChange","ClassifiedAdPostMobile","errorDuration","setErrorDuration","setDescription","setIsPosting","hideDurationError","renderDurationValidation","onDurationFocusOut","replace","onBlur","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","numberOfLines","ClassifiedPostHomeMobile","renderTitle","DropdownButton","menuVariant","Divider","ClassifiedPostHome","setSection","setEditPageId","setEditMode","ClassifiedPosted","renderPosted","ConfirmClassifiedAd","isActivating","setIsActivating","setIsError","ClassifiedAdsAdmin","activeAds","setActiveAds","updatedAds","obj","renderIsEmailConfirmed","flag","ClassifiedRemoveSuccess","renderRemoved","ImageSlider","slides","t","renderSlides","ClassifiedsCategoryViewer","verboseCategory","setVerboseCategory","setAds","isLoading","setIsLoading","viewAdID","setViewAdID","isAdSelected","setIsAdSelected","getAndSetVerboseCategory","handleSelectedFirstAd","onAddPostClick","renderContent","TouchableHighlight","renderAdDescription","renderIsLoading","renderCompressedContent","renderAdContent","renderNoAds","ClassifiedsMainViewer","setCategory","initialAds","setInitialAds","initialAdID","setInitialAdID","isInitialAdSelected","setIsInitialAdSelected","isInitialMode","setInitialMode","handlePostClick","handleBackBtnClick","handleCategorySelection","ctg","renderInitialCategoryAd","displayCategory","getCategory","renderBackBtn","renderCategoryDropdown","renderInitialAds","renderCategoryViewer","ClassifiedsAdViewer","setAd","setImages","isShowNextBtn","setShowNextBtn","isShowPrevBtn","setShowPrevBtn","lclImages","firstImage","allImgsExceptFirst","j","renderShortDescription","renderDescription","renderLoading","renderTelephone","HomePagePosted","ConfirmMainPagePost","ConfigVariables","descendingStringComparator","b","orderBy","toUpperCase","descendingComparator","descendingNumberComparator","headCells","numeric","disablePadding","EnhancedTableHead","onRequestSort","aligalign","headCell","sortDirection","TableSortLabel","direction","property","Box","sx","visuallyHidden","EnhancedTableToolbar","numSelected","Toolbar","pl","pr","bgcolor","theme","alpha","palette","primary","main","activatedOpacity","Typography","Tooltip","IconButton","PayPalAdmin","startTransactionsDate","setTransactionsStartDate","endTransactionsDate","setTransactionsEndDate","isGettingTransactions","setIsGettingTransactions","selected","setSelected","setOrder","setOrderBy","page","setPage","rowsPerPage","setRowsPerPage","rows","setRows","balance","setBalance","availableBalance","handleRequestSort","handleSelectAllClick","newSelected","handleChangePage","newPage","handleChangeRowsPerPage","parseInt","emptyRows","Math","max","visibleRows","array","comparator","stabilizedThis","el","sort","stableSort","getComparator","renderStartTransactionsDateCalendar","renderEndTransactionsDateCalendar","handleGetPayPalTransactionsClick","arr","transactions","payerFullName","transactionAmount","transactionSubject","transactioDate","transactionInitiationDate","fee","feeAmount","renderCurrentBalance","Paper","mb","TableContainer","minWidth","onSelectAllClick","rowCount","row","isItemSelected","indexOf","labelId","selectedIndex","concat","handleClick","tabIndex","TablePagination","rowsPerPageOptions","onPageChange","onRowsPerPageChange","App","routesMap","publicRoutes","tokenParam","isPublicRouterHandler","router","RegistrationConfirm","Help","UsersInRole","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","document","getElementById"],"mappings":"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","file":"static/js/main.719e0462.chunk.js","sourcesContent":["import helperUtil from 'util'\r\nimport jwt from 'jwt-decode'\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const authenticationService = {\r\n login,\r\n isExpired,\r\n logout,\r\n isUserLoggedIn,\r\n getUserFirstName,\r\n resetPassword,\r\n resetCredentials,\r\n getUserEmail,\r\n sendContactUs,\r\n getUserRoles,\r\n isAdministrator,\r\n getAllRoles,\r\n addRole,\r\n deleteRole,\r\n getUsersInRole,\r\n getUserID,\r\n isSuperUser\r\n};\r\n\r\nasync function login(username, password) {\r\n localStorage.removeItem('token');\r\n const data = JSON.stringify({ password: password, userID: username, source: SHUL});\r\n await fetch(SERVER_URL + 'api/UserLogin/', { method: 'PUT', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response); \r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(!data.status || !data.token)\r\n { \r\n return;\r\n }\r\n\r\n const user = jwt(data.token); // decode your token here\r\n console.log(user);\r\n localStorage.setItem('token', data.token);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nfunction getUserFirstName() {\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return null;\r\n }\r\n\r\n const user = jwt(token);\r\n console.log('getUserFirstName we have a token. token.FirstName ' + user.FirstName)\r\n return user.FirstName;\r\n};\r\n\r\nfunction getUserEmail() {\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return null;\r\n }\r\n\r\n const user = jwt(token);\r\n console.log('getUserFirstName we have a token. token.Email ' + user.Email)\r\n return user.Email;\r\n};\r\n\r\nfunction getUserID() {\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return null;\r\n }\r\n\r\n const user = jwt(token);\r\n console.log('getUserID we have a token. token.UserID ' + user.ContactID)\r\n return user.ContactID;\r\n};\r\n\r\nfunction getUserRoles() {\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return null;\r\n }\r\n\r\n const user = jwt(token);\r\n console.log('user roles ' + user.Roles)\r\n return user.Roles;\r\n};\r\n\r\nfunction isSuperUser(){\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return false;\r\n }\r\n\r\n const user = jwt(token);\r\n if(!user.Roles)\r\n {\r\n return false;\r\n }\r\n\r\n return user.Roles.includes('SuperUser');\r\n}\r\n\r\nfunction isAdministrator(){\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) { \r\n return false;\r\n }\r\n\r\n const user = jwt(token);\r\n if(!user.Roles)\r\n {\r\n return false;\r\n }\r\n\r\n return user.Roles.includes('Administrator');\r\n}\r\n\r\nfunction isUserLoggedIn() {\r\n var token = localStorage.getItem('token');\r\n \r\n if (!token) {\r\n return false;\r\n }\r\n\r\n return !isExpired();\r\n};\r\n\r\nfunction isExpired() {\r\n var token = localStorage.getItem('token');\r\n if (!token) {\r\n return true;\r\n }\r\n\r\n const user = jwt(token);\r\n\r\n if (!user.exp) {\r\n console.log(\"something is wrong with the token\");\r\n return true;\r\n }\r\n\r\n return Date.now() > token.exp;\r\n};\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('token');\r\n}\r\n\r\nasync function resetPassword(email){\r\n console.log('sending reset password request');\r\n const path = window.location.origin.toString();\r\n const data = JSON.stringify({ email: email, userName: '', baseUrl: path + '/passwordReset', source: SHUL});\r\n let result = ' ';\r\n\r\n await fetch(SERVER_URL + 'api/RegisterUser/RequestPasswordReset', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data); \r\n if(!data.emailAlreadyPresent || !data.emailExistsInContacts || !data.userIDAlreadyPresent){\r\n result = 'Email was not found';\r\n }\r\n }).catch(function(error) {\r\n console.log(error);\r\n result = 'There was an error during submission';\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function resetCredentials(email, token, password){\r\n const data = JSON.stringify({ email: email, token: token, password: password});\r\n let result = ' ';\r\n console.log('sending password reset');\r\n console.log(data);\r\n\r\n await fetch(SERVER_URL + 'api/RegisterUser/PasswordReset', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.generalStatus){\r\n \r\n }\r\n if(data.errors){\r\n result = data.errors;\r\n }\r\n\r\n if(!data.generalStatus){\r\n result = 'There was an error during submission'; \r\n }\r\n }).catch(function(error) {\r\n console.log(error);\r\n result = 'There was an error during submission';\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function sendContactUs(email, firstName, subject){\r\n const data = JSON.stringify({ firstName: firstName, lastName: firstName, email: email, subject: subject, source: 'contracting'});\r\n let result = ' ';\r\n\r\n await fetch(SERVER_URL + 'api/Contacts/ContactUs', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(!data.status){\r\n result = 'There was an error during submission'; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = 'There was an error during submission';\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function getAllRoles() {\r\n let roles = {};\r\n\r\n await fetch(SERVER_URL + 'api/RoleManagement/getAllRoles/')\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n roles = data;\r\n //console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return roles;\r\n}\r\n\r\nasync function addRole(role) {\r\n const data = JSON.stringify({ role: role, id: null});\r\n let result = false;\r\n console.log('sending add role');\r\n console.log(data);\r\n\r\n await fetch(SERVER_URL + 'api/UserProfile/AddRole', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n result = data;\r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function deleteRole(id) {\r\n const data = JSON.stringify({ role: null, id: id});\r\n let result = false;\r\n console.log('sending delete role');\r\n console.log(data);\r\n\r\n await fetch(SERVER_URL + 'api/UserProfile/DeleteRole', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n result = data;\r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function getUsersInRole(roleId) {\r\n let roles = {};\r\n\r\n await fetch(SERVER_URL + 'api/RoleManagement/getUsersForRole/' + roleId)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n roles = data;\r\n //console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return roles;\r\n}\r\nexport default authenticationService;","import React from 'react'\r\nimport Modal from 'react-bootstrap/Modal'\r\nimport Button from 'react-bootstrap/Button'\r\nimport { Link } from 'react-router-dom'\r\nimport { createBrowserHistory } from \"history\";\r\nimport './Register.css';\r\nimport './Login.css';\r\nimport authenticationService from '../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nclass LoginComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n showLogin : false,\r\n userId : '',\r\n password : '',\r\n isUserIDValid: false,\r\n isPasswordValid: false,\r\n hasErrors: false,\r\n renderUserDonations: false\r\n } \r\n window.helloComponent = this;\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n console.log('calling LoginComponent constructor');\r\n }\r\n\r\n openModal() {\r\n console.log(\"calling open modal\");\r\n this.setState({\r\n showLogin : true,\r\n password: ''\r\n });\r\n }\r\n\r\n isRegisterRoute() {\r\n let history = createBrowserHistory();\r\n let currentRoute = history.location.pathname;\r\n return currentRoute === '/register';\r\n }\r\n\r\n closeModal() {\r\n this.setState({\r\n showLogin : false\r\n });\r\n }\r\n\r\n isFormValidated = () => {\r\n return (this.state.isUserIDValid && this.state.isPasswordValid);\r\n }\r\n\r\n renderRegisterLink = () => {\r\n if (!this.isRegisterRoute()) {\r\n return {window.location.href=\"/register\"}}>Register;\r\n }\r\n }\r\n\r\n renderUserIdLabel = () => {\r\n if (!this.state.isUserIDValid) {\r\n return
;\r\n } \r\n return
;\r\n }\r\n\r\n renderPasswordLabel = () => {\r\n if (!this.state.isPasswordValid) {\r\n return
;\r\n } \r\n return
;\r\n }\r\n\r\n handleUserIdChange =(event) => {\r\n let userId = event.target.value;\r\n this.setState({\r\n userId : userId\r\n });\r\n if (!!!(userId) || userId.length < 4){\r\n this.setState({\r\n isUserIDValid : false\r\n });\r\n return;\r\n }\r\n this.setState({\r\n isUserIDValid : true\r\n });\r\n }\r\n\r\n handlePasswordChange = (event) => {\r\n let password = event.target.value;\r\n this.setState({\r\n password : password\r\n });\r\n if (!!!(password) || password.length < 7){\r\n this.setState({\r\n isPasswordValid : false\r\n });\r\n return;\r\n }\r\n this.setState({\r\n isPasswordValid : true\r\n });\r\n }\r\n\r\n renderUserDonations = () => {\r\n if (!this.state.renderUserDonations) {\r\n return;\r\n }\r\n \r\n if(window.location.pathname === '/'){\r\n return;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n handleSubmit = async(event) => {\r\n event.preventDefault();\r\n\r\n await authenticationService.login(this.state.userId, this.state.password);\r\n var token = localStorage.getItem('token');\r\n if(token) {\r\n this.closeModal();\r\n if(this.props.tokenHandler){\r\n this.props.tokenHandler(token);\r\n }\r\n\r\n this.setState({\r\n renderUserDonations: true\r\n });\r\n return;\r\n }\r\n\r\n this.setState({\r\n hasErrors : true \r\n });\r\n }\r\n\r\n renderError = () => {\r\n let error = this.state.hasErrors;\r\n if(error)\r\n return
;\r\n }\r\n \r\n render() {\r\n return (\r\n
\r\n \r\n \r\n Please enter your user name and password\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 {this.renderError()}\r\n \r\n \r\n
\r\n {this.renderUserIdLabel()}\r\n
\r\n \r\n
\r\n
\r\n {this.renderPasswordLabel()}\r\n
\r\n \r\n
\r\n
\r\n {window.location.href=\"/forgotCredentials\"}}>Forgot user name or password\r\n
\r\n
\r\n
\r\n \r\n {this.renderRegisterLink()}\r\n \r\n \r\n
\r\n {this.renderUserDonations()}\r\n
\r\n );\r\n }\r\n}\r\nexport default LoginComponent;","import { Navbar,Nav } from 'react-bootstrap'\r\nimport { useLocation } from 'react-router-dom'\r\nimport LoginComponent from './authentication/Login';\r\nimport React, { useState } from 'react';\r\nimport authenticationService from './shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport FormControl from '@material-ui/core/FormControl';\r\n\r\nfunction BootstrapNavbar(props) {\r\n\r\n const [showLogin, setShowLogin] = useState(false);\r\n const [loggedInFirstName, setLoggedInFirstName] = useState('');\r\n const location = useLocation();\r\n console.log(location.pathname);\r\n const tokenHandler = props.tokenHandler;\r\n const isPublicRouter = props.isPublicRouter; \r\n\r\n const handleLogin = event => {\r\n setShowLogin(true);\r\n window.helloComponent.openModal();\r\n }\r\n\r\n const handleLogout = event => {\r\n authenticationService.logout();\r\n setShowLogin(false);\r\n setLoggedInFirstName(null);\r\n window.location.reload();\r\n }\r\n\r\n const renderHome = () => {\r\n console.log(\"checking if \" + location.pathname + \" is public router\");\r\n if(isPublicRouter(location.pathname)){\r\n console.log(location.pathname + \" is public router\");\r\n return;\r\n }\r\n\r\n if (!loggedInFirstName) {\r\n console.log(location.pathname);\r\n console.log(\"redirecting home\");\r\n return ;\r\n }\r\n }\r\n\r\n const isUserLoggedIn = () => {\r\n if(!authenticationService.isUserLoggedIn()){\r\n return false;\r\n }\r\n\r\n if(!loggedInFirstName){\r\n var firstName = authenticationService.getUserFirstName();\r\n if(!firstName){\r\n return false;\r\n }\r\n\r\n setLoggedInFirstName(authenticationService.getUserFirstName());\r\n }\r\n \r\n return true;\r\n }\r\n\r\n const renderLogin = () => {\r\n if (!isUserLoggedIn()) {\r\n return Login;\r\n }\r\n\r\n return Logout {loggedInFirstName}; \r\n }\r\n\r\n const renderYourDonations = () => {\r\n if (!isUserLoggedIn()) {\r\n return;\r\n }\r\n \r\n return Your donations; \r\n }\r\n\r\n const renderAccount = () => {\r\n if (!isUserLoggedIn()) {\r\n return;\r\n }\r\n \r\n return Profile; \r\n }\r\n \r\n const CustomToggle = React.forwardRef(({ children, onClick }, ref) => (\r\n {\r\n e.preventDefault();\r\n onClick(e);\r\n }}\r\n >\r\n {children}\r\n ▼\r\n \r\n ));\r\n \r\n // forwardRef again here!\r\n // Dropdown needs access to the DOM of the Menu to measure it\r\n const CustomMenu = React.forwardRef(\r\n ({ children, style, className, 'aria-labelledby': labeledBy }, ref) => {\r\n const [value, setValue] = useState('');\r\n \r\n return (\r\n \r\n setValue(e.target.value)}\r\n value={value}\r\n />\r\n
    \r\n {React.Children.toArray(children).filter(\r\n (child) =>\r\n !value || child.props.children.toLowerCase().startsWith(value),\r\n )}\r\n
\r\n \r\n );\r\n },\r\n );\r\n\r\n const handleSelectDropDown=(e)=>{\r\n switch(e) {\r\n case 'Roles':\r\n console.log(e);\r\n window.location.href=\"/menageRoles\"\r\n return;\r\n case 'MenageProjects':\r\n window.location.href=\"/menageProjects\"\r\n console.log(e); \r\n return;\r\n case 'ContractorProjects':\r\n window.location.href=\"/contractorProjects\"\r\n console.log(e); \r\n return;\r\n case 'TestIPN':\r\n window.location.href=\"/testIPN\"\r\n console.log(e);\r\n return;\r\n case 'ManageSchedule':\r\n window.location.href=\"/scheduler\"\r\n console.log(e);\r\n return;\r\n case 'PostOnHomePage':\r\n window.location.href=\"/homepagepost/\"\r\n console.log(e);\r\n return;\r\n case 'HomepageAds':\r\n window.location.href=\"/homepageAds\"\r\n console.log(e);\r\n return;\r\n case 'ClassifiedAdsAdmin':\r\n window.location.href=\"/classifiedAdsAdmin\"\r\n console.log(e);\r\n return; \r\n case \"ClassifiedPostHome\":\r\n window.location.href = \"/classifiedPostHome\"\r\n console.log(e);\r\n return;\r\n case 'CfgVar':\r\n window.location.href=\"/configVariables\"\r\n console.log(e);\r\n return;\r\n case 'PayPalAdmin':\r\n window.location.href=\"/payPalAdmin\"\r\n console.log(e);\r\n return;\r\n default:\r\n return;\r\n }\r\n }\r\n\r\n const renderSuperUserDropDown = (key, label) => {\r\n if(!authenticationService.isSuperUser()){\r\n console.log('not a super user');\r\n return;\r\n }\r\n\r\n return(\r\n {label}\r\n );\r\n }\r\n\r\n const renderAdminDropDown = () => {\r\n if(!authenticationService.isUserLoggedIn() || !authenticationService.isAdministrator()){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n Admin\r\n \r\n \r\n {renderSuperUserDropDown(\"Roles\",\"Roles\")}\r\n {renderSuperUserDropDown(\"MenageProjects\", \"User Projects\")}\r\n {renderSuperUserDropDown(\"ContractorProjects\", \"Contractor Projects\")}\r\n Manage Schedule\r\n Homepage Ads\r\n Classifieds\r\n {renderSuperUserDropDown(\"TestIPN\", \"Test IPN (Developer Only)\")}\r\n {renderSuperUserDropDown(\"CfgVar\", \"Config Variables\")}\r\n PayPal Admin \r\n \r\n \r\n );\r\n }\r\n\r\n const renderPostDropDown = () => {\r\n return (\r\n \r\n \r\n Post\r\n \r\n \r\n Post on Home Page\r\n Post classified\r\n \r\n \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 {renderHome()}\r\n
\r\n )\r\n}\r\nexport default BootstrapNavbar","import React from 'react'\r\n\r\nconst useViewport = () => {\r\n const [width, setWidth] = React.useState(window.innerWidth);\r\n // Add a second state variable \"height\" and default it to the current window height\r\n const [height, setHeight] = React.useState(window.innerHeight);\r\n \r\n React.useEffect(() => {\r\n const handleWindowResize = () => {\r\n setWidth(window.innerWidth);\r\n // Set the height in state as well as the width\r\n setHeight(window.innerHeight);\r\n }\r\n \r\n window.addEventListener(\"resize\", handleWindowResize);\r\n return () => window.removeEventListener(\"resize\", handleWindowResize);\r\n }, []);\r\n \r\n // Return both the height and width\r\n return { width, height };\r\n }\r\n export default useViewport","export default __webpack_public_path__ + \"static/media/mdShulInside.20c7a5be.jpg\";","import helperUtil from 'util'\r\nimport authenticationService from './authentication.service'\r\nimport dateFnsFormat from 'date-fns/format';\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const utilService = {\r\n markPage,\r\n getAccount,\r\n modifyProfile,\r\n getDateFormatted,\r\n getAddress,\r\n isJsonString,\r\n isEmailPatternValid,\r\n getVariableForEntity,\r\n getDonatePhysicalAddress\r\n};\r\n\r\nasync function markPage(title, description) {\r\n let url = 'api/ConfigVariable/updateHomePageCounter/Generic/CounterMD/IndexPage';\r\n if(SHUL === 'OS'){\r\n url = 'api/ConfigVariable/UpdateHomePageCounter';\r\n }\r\n\r\n await fetch(SERVER_URL + url)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n}\r\n\r\nasync function getVariableForEntity(configName, prop1) {\r\n let url = 'api/ConfigVariable/getVariableByCombination/' + configName + '/' + prop1 + '/' + SHUL;\r\n console.log('about to call ' + SERVER_URL + url);\r\n let configVar = null;\r\n\r\n await fetch(SERVER_URL + url)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n if(data !== null && data.configVar !== null){\r\n configVar = data.configVar.valueStr;\r\n }\r\n console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return configVar;\r\n}\r\n\r\nasync function getAccount() {\r\n const id = authenticationService.getUserID();\r\n let accountInfo = {};\r\n\r\n await fetch(SERVER_URL + 'api/SourceContact/getContactByID/' + id)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){ \r\n return response.json();\r\n }).then(function(data) {\r\n accountInfo = data;\r\n console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return accountInfo;\r\n}\r\n\r\nasync function modifyProfile(firstName, \r\n lastName,\r\n telephone,\r\n address,\r\n jewishName,\r\n id,\r\n email){\r\n const data = JSON.stringify({ \r\n id: id,\r\n firstName: firstName, \r\n lastName: lastName, \r\n telephone: telephone, \r\n email: email, \r\n address: address,\r\n jewishName: jewishName});\r\n \r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/SourceContact/ModifySourceContact', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.status){\r\n result = true; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n \r\n return result;\r\n}\r\n\r\nfunction getDateFormatted(date) {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n}\r\n\r\nasync function getAddress() {\r\n console.log('about to call getAddress ' + SERVER_URL + 'api/ConfigVariable/getVariableByCombination/Generic/Address/' + SHUL);\r\n let address;\r\n\r\n await fetch(SERVER_URL + 'api/ConfigVariable/getVariableByCombination/Generic/Address/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n if(!data){\r\n console.log('not ok response');\r\n return '';\r\n }\r\n\r\n console.log(data);\r\n console.log(data.configVar.valueStr);\r\n address = data.configVar.valueStr;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return address;\r\n}\r\n\r\nasync function getDonatePhysicalAddress(){\r\n console.log('about to call getAddress ' + SERVER_URL + 'api/ConfigVariable/getVariableByCombination/Generic/DonatePhysicalAddress/' + SHUL);\r\n let address;\r\n\r\n await fetch(SERVER_URL + 'api/ConfigVariable/getVariableByCombination/Generic/DonatePhysicalAddress/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n if(!data){\r\n console.log('not ok response');\r\n return '';\r\n }\r\n\r\n console.log(data);\r\n console.log(data.configVar.valueStr);\r\n address = data.configVar.valueStr;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return address;\r\n}\r\n\r\nfunction isEmailPatternValid(emailValue){\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n if(!emailValue || emailValue === undefined || emailValue === null || emailValue.length < 4){\r\n return false;\r\n }\r\n\r\n if (!pattern.test(emailValue)) {\r\n return false;\r\n }\r\n\r\n return true; \r\n}\r\n\r\nfunction isJsonString(str){\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n\r\nexport default utilService;","export default __webpack_public_path__ + \"static/media/future_shul.0a996360.jpg\";","import helperUtil from 'util'\r\n\r\nconst LONGITUDE = process.env.REACT_APP_LONGITUDE;\r\nconst LATITUDE = process.env.REACT_APP_LATITUDE;\r\nconst TZID = process.env.REACT_APP_TZID;\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst ZIP = process.env.REACT_APP_ZIP;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const hebcalAPIservice = {\r\n getDateTimes,\r\n getDateZmanim,\r\n getWeeklySchedule\r\n};\r\n\r\nasync function getWeeklySchedule(date) {\r\n console.log('about to call getDateTimes ' + SERVER_URL + 'api/ShulSchedule/getWeeklySchedule/' + SHUL + '/' + date);\r\n let scheduleEvents = {};\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/getWeeklySchedule/' + SHUL + '/' + date)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.isObjectQualityGood)\r\n {\r\n scheduleEvents = data;\r\n }\r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return scheduleEvents;\r\n}\r\n\r\nasync function getDateTimes(date, format) {\r\n console.log('about to call getDateTimes ' + SERVER_URL + 'api/JewishTimes/getJDateInfo/' + date + '/' + format + '/' + LONGITUDE + '/' + LATITUDE + '/' + TZID);\r\n let dayFormattedString = '';\r\n\r\n //await fetch(SERVER_URL + 'api/JewishTimes/getJDateInfo/' + '09-11-2021' + '/' + format)\r\n await fetch(SERVER_URL + 'api/JewishTimes/getJDateInfo/' + date + '/' + format + '/' + LONGITUDE + '/' + LATITUDE + '/' + TZID)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n //console.log(data);\r\n if(data.isObjectQualityGood)\r\n {\r\n dayFormattedString = data.jBasicDateInfo;\r\n }\r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return dayFormattedString;\r\n}\r\n\r\nasync function getDateZmanim(date) {\r\n console.log('about to call getJDateZmanim ' + SERVER_URL + 'api/JewishTimes/getJDateZmanim/' + date + '/' + ZIP);\r\n let zmanim = null;\r\n\r\n //await fetch(SERVER_URL + 'api/JewishTimes/getJDateInfo/' + '09-11-2021' + '/' + format)\r\n await fetch(SERVER_URL + 'api/JewishTimes/getJDateZmanim/' + date + '/' + ZIP)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.isObjectQualityGood)\r\n {\r\n zmanim = data;\r\n }\r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return zmanim;\r\n}\r\n\r\nexport default hebcalAPIservice","import Modal from 'react-bootstrap/Modal'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport Table from 'react-bootstrap/Table'\r\nimport {TableRow, TableCell} from '@material-ui/core';\r\n\r\nexport function ZmanimDlg({onClose, showModal, zmanim, currentDate}) {\r\n \r\n const closeModal = () => {\r\n console.log('closeModal');\r\n onClose();\r\n }\r\n\r\n const formatDayDate = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy EEEE';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {formatDayDate(currentDate)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {zmanim.chatzotNightTime}\r\n \r\n \r\n {zmanim.chatzotNight}\r\n \r\n \r\n \r\n \r\n {zmanim.alotHaShacharTime}\r\n \r\n \r\n {zmanim.alotHaShachar}\r\n \r\n \r\n \r\n \r\n {zmanim.misheyakirTime}\r\n \r\n \r\n {zmanim.misheyakir}\r\n \r\n \r\n \r\n \r\n {zmanim.misheyakirMachmirTime}\r\n \r\n \r\n {zmanim.misheyakirMachmir}\r\n \r\n \r\n \r\n \r\n {zmanim.dawnTime}\r\n \r\n \r\n {zmanim.dawn}\r\n \r\n \r\n \r\n \r\n {zmanim.sunriseTime}\r\n \r\n \r\n {zmanim.sunrise}\r\n \r\n \r\n \r\n \r\n {zmanim.sofZmanShmaTime}\r\n \r\n \r\n {zmanim.sofZmanShma}\r\n \r\n \r\n \r\n \r\n {zmanim.sofZmanTfillaTime}\r\n \r\n \r\n {zmanim.sofZmanTfilla}\r\n \r\n \r\n \r\n \r\n {zmanim.chatzotTime}\r\n \r\n \r\n {zmanim.chatzot}\r\n \r\n \r\n \r\n \r\n {zmanim.minchaGedolaTime}\r\n \r\n \r\n {zmanim.minchaGedola}\r\n \r\n \r\n \r\n \r\n {zmanim.minchaKetanaTime}\r\n \r\n \r\n {zmanim.minchaKetana}\r\n \r\n \r\n \r\n \r\n {zmanim.plagHaMinchaTime}\r\n \r\n \r\n {zmanim.plagHaMincha}\r\n \r\n \r\n \r\n \r\n {zmanim.sunsetTime}\r\n \r\n \r\n {zmanim.sunset}\r\n \r\n \r\n \r\n \r\n {zmanim.tzeit42minTime}\r\n \r\n \r\n {zmanim.tzeit42min}\r\n \r\n \r\n \r\n \r\n {zmanim.tzeit50minTime}\r\n \r\n \r\n {zmanim.tzeit50min}\r\n \r\n \r\n \r\n \r\n {zmanim.tzeit72minTime}\r\n \r\n \r\n {zmanim.tzeit72min}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ZmanimDlg;","import React, { useState, useCallback } from 'react';\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport hebcalAPIservice from '../services/hebcalAPIservice'\r\nimport { Text, View } from 'react-native';\r\nimport ArrowForwardIos from '@material-ui/icons/ArrowForwardIos';\r\nimport '../../pages/Home.css';\r\nimport Table from 'react-bootstrap/Table'\r\nimport ArrowBackIos from '@material-ui/icons/ArrowBackIos';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport ZmanimDlg from './ZmanimDlg'\r\nimport useViewport from '../ViewportProvider'\r\nimport DatePicker from '@material-ui/lab/DatePicker';\r\nimport AdapterDateFns from '@material-ui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@material-ui/lab/LocalizationProvider';\r\nimport TextField from \"@material-ui/core/TextField\";\r\n\r\nexport const hebrewDayInfo = {\r\n HebrewDayInfo\r\n};\r\n\r\nexport function HebrewDayInfo({format}) {\r\n const [gregorianDate, setGregorianDate] = useState(new Date());\r\n const [dayString, setDayString] = useState('');\r\n const [zmanimString, setZmanimString] = useState('');\r\n const [showZmanimDlg, setShowZmanimDlg] = useState(false);\r\n const [zmanim, setZmanim] = useState('');\r\n \r\n const populateZmanim = useCallback(async (date) => {\r\n let zmanim = await hebcalAPIservice.getDateZmanim(formatDayDate(date));\r\n if(!zmanim){\r\n return;\r\n }\r\n setZmanim(zmanim);\r\n setZmanimString(zmanim.jDayZmanimString);\r\n }, [])\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n console.log('fetching calendar daa ' + format)\r\n let dayFormatted = await hebcalAPIservice.getDateTimes(formatDayDate(new Date()), format);\r\n setDayString(dayFormatted);\r\n populateZmanim(new Date());\r\n }\r\n fetchData();\r\n \r\n }, [format, populateZmanim]);\r\n\r\n function IsMobile(){\r\n const { width } = useViewport();\r\n const breakpoint = 620;\r\n \r\n return width < breakpoint;\r\n }\r\n\r\n const formatDayDate = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const handleDateChange = async (date) => {\r\n setZmanimString('');\r\n let dayFormatted = await hebcalAPIservice.getDateTimes(formatDayDate(date), format); \r\n setDayString(dayFormatted);\r\n setGregorianDate(date); \r\n populateZmanim(date);\r\n };\r\n\r\n const handleAddDay = async () => {\r\n let currentDate = gregorianDate; \r\n setZmanimString('');\r\n currentDate.setDate(currentDate.getDate() + 1);\r\n await populateOnDateChange(currentDate);\r\n };\r\n\r\n const handleSubtractDay = async () => {\r\n let currentDate = gregorianDate; \r\n setZmanimString('');\r\n currentDate.setDate(currentDate.getDate() - 1);\r\n await populateOnDateChange(currentDate);\r\n };\r\n\r\n const populateOnDateChange = async (date) => {\r\n let dayFormatted = await hebcalAPIservice.getDateTimes(formatDayDate(date), format); \r\n setDayString(dayFormatted);\r\n setGregorianDate(date);\r\n populateZmanim(date);\r\n }\r\n\r\n const handleMarqueeClick = async () => {\r\n setShowZmanimDlg(true); \r\n }\r\n\r\n const renderGregorianDate = () => {\r\n return \r\n\r\n }\r\n />\r\n \r\n \r\n }\r\n\r\n const renderZmanim = () => {\r\n if(zmanimString === undefined || zmanimString === null || zmanimString.length < 2){\r\n return;\r\n }\r\n\r\n return
\r\n \r\n Tap the date for detailed zmanin, arrows to move between days.\r\n \r\n
\r\n }\r\n\r\n const renderZmanimDlg = () => {\r\n return \r\n }\r\n\r\n function onZmanimDlgClose() {\r\n console.log('calling on close');\r\n setShowZmanimDlg(false); \r\n }\r\n\r\n const renderCurrentDayInfo = () => {\r\n if(IsMobile()){\r\n return ( \r\n \r\n \r\n {renderGregorianDate()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
handleMarqueeClick()}>\r\n {dayString}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
); \r\n }\r\n\r\n return \r\n \r\n \r\n {renderGregorianDate()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
handleMarqueeClick()}>\r\n {dayString}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n }\r\n \r\n return (\r\n
\r\n {renderZmanimDlg()}\r\n {renderCurrentDayInfo()}\r\n {renderZmanim()}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default hebrewDayInfo;","import dateFnsFormat from 'date-fns/format';\r\nimport helperUtil from 'util'\r\nimport uuid from 'react-native-uuid';\r\nimport axios from \"axios\";\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const postAdService = {\r\n postAd,\r\n getPostAd,\r\n getActivePosts,\r\n approve,\r\n getApprovedPosts,\r\n confirmPost,\r\n getPostAdUnauthenticated,\r\n getUnauthenticatedPosts,\r\n addImageAuthenticated,\r\n deleteImage,\r\n loadImage,\r\n getAllPostAdImagesExceptFirstAuthenticated,\r\n repostAd\r\n};\r\n\r\nasync function postAd(usertID, duration, startDate, description, isHTML, email, isEditor, isAdminPost, name, isAuthenticated, token) {\r\n let postAdObject = getPostAdObject(usertID, duration, startDate, description, isHTML, email, isEditor, isAdminPost, name, isAuthenticated, token);\r\n\r\n const apiResponse = {\r\n status: false,\r\n error: null\r\n };\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/PostAd', {\r\n method: 'POST', body: postAdObject, headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n }).then(helperUtil.handleErrors)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n if(data.errors){\r\n apiResponse.status = false;\r\n }\r\n else{\r\n apiResponse.status = data.status;\r\n apiResponse.error = data.error;\r\n }\r\n }).catch(function (error) {\r\n console.log(error);\r\n apiResponse.status = false;\r\n apiResponse.error = 'Server request error';\r\n });\r\n\r\n return apiResponse;\r\n}\r\n\r\nasync function getPostAdUnauthenticated(token){\r\n let postAd = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetPostAdUnauthenticated/' + token)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAd = data;\r\n postAd.durationDays = getDurationDays(postAd);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAd;\r\n}\r\n\r\nasync function getPostAd(usertID) {\r\n let postAd = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetPostAd/' + usertID + '/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAd = data;\r\n postAd.durationDays = getDurationDays(postAd);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAd;\r\n}\r\n\r\nasync function getUnauthenticatedPosts(){\r\n let postAds = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetUnauthenticatedAds/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAds = data;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAds;\r\n}\r\n\r\nasync function repostAd(postAd){\r\n const dataToSend = getPostAdObjectFromRespose(postAd);\r\n\r\n const apiResponse = {\r\n status: false,\r\n error: null\r\n };\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/RePostAd', {\r\n method: 'POST', body: dataToSend, headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n }).then(helperUtil.handleErrors)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n if(data.errors){\r\n apiResponse.status = false;\r\n }\r\n else{\r\n apiResponse.status = data.status;\r\n apiResponse.error = data.error;\r\n }\r\n }).catch(function (error) {\r\n console.log(error);\r\n apiResponse.status = false;\r\n apiResponse.error = 'Server request error';\r\n });\r\n\r\n return apiResponse;\r\n}\r\n\r\nasync function getAllPostAdImagesExceptFirstAuthenticated(postAd){\r\n let postAds = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetAllImagesExceptFirstAuthenticated/' + postAd.id + '/' + postAd.contactID + '/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAds = data;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAds;\r\n}\r\n\r\nasync function loadImage(imageId) {\r\n let image = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/getImage/' + imageId)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n if(!data){\r\n console.log('not ok response');\r\n return false;\r\n }\r\n image = data;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n image = null;\r\n });\r\n\r\n return image;\r\n}\r\n\r\nasync function getActivePosts() {\r\n let postAds = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetActiveAds/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAds = data;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAds;\r\n}\r\n\r\nasync function approve(postedAd, isApproved) {\r\n postedAd.isAdminApproved = isApproved;\r\n\r\n const data = getPostAdObjectFromRespose(postedAd);\r\n\r\n const apiResponse = {\r\n status: false,\r\n error: null\r\n };\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/ApproveAd', {\r\n method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n }).then(helperUtil.handleErrors)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n apiResponse.status = data.status;\r\n apiResponse.error = data.error;\r\n }).catch(function (error) {\r\n console.log(error);\r\n apiResponse.status = false;\r\n apiResponse.error = 'Server request error';\r\n });\r\n\r\n return apiResponse;\r\n}\r\n\r\nasync function getApprovedPosts() {\r\n let postAds = null;\r\n\r\n await fetch(SERVER_URL + 'api/PostPageAd/GetApprovedAds/' + SHUL)\r\n .then(function (response) {\r\n return response.json();\r\n }).then(function (data) {\r\n postAds = data;\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n return postAds;\r\n}\r\n\r\nasync function confirmPost(id, name, email) {\r\n const formData = new FormData();\r\n formData.append(\"email\", email);\r\n formData.append(\"token\", id);\r\n formData.append(\"name\", name);\r\n\r\n try {\r\n const res = await axios.post(SERVER_URL + 'api/PostPageAd/ConfirmPost', formData);\r\n if(res.data){\r\n return res.data;\r\n }\r\n\r\n if(!res.data){\r\n console.log('not ok response confirmPost');\r\n return false;\r\n }\r\n } catch (ex) {\r\n console.log('exception');\r\n console.log(ex);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nconst getDurationDays = (postAd) => {\r\n try {\r\n const startDate = new Date(postAd.startDate);\r\n const endDate = new Date(postAd.endDate);\r\n\r\n var timeDiff = endDate.getTime() - startDate.getTime();\r\n\r\n // To calculate the no. of days between two dates\r\n var daysDiff = timeDiff / (1000 * 3600 * 24);\r\n\r\n return daysDiff + 1;\r\n }\r\n catch (e) {\r\n\r\n }\r\n\r\n return 1;\r\n}\r\n\r\nconst getStartEndDates = (startDate, duration) => {\r\n const endDate = new Date(startDate);\r\n endDate.setDate(startDate.getDate() + (duration - 1));\r\n\r\n const startDateFormatted = formatDayDate(startDate);\r\n const endDateFormatted = formatDayDate(endDate);\r\n\r\n return [startDateFormatted, endDateFormatted];\r\n}\r\n\r\nconst getPostAdObjectFromRespose = (postedAd) => {\r\n const data = JSON.stringify({\r\n startDate: postedAd.startDate,\r\n endDate: postedAd.endDate,\r\n contactID: postedAd.contactID,\r\n description: postedAd.description,\r\n isHTML: postedAd.isHTML,\r\n entity: SHUL,\r\n userEmail: postedAd.userEmail,\r\n isEditor: postedAd.isEditor,\r\n isAdminApproved: postedAd.isAdminApproved,\r\n lastName: postedAd.lastName,\r\n firstName: postedAd.firstName,\r\n id: postedAd.id,\r\n isActive: postedAd.isActive,\r\n isAdminPost: postedAd.isAdminPost,\r\n isAuthenticated: postedAd.isAuthenticated,\r\n email: postedAd.email\r\n });\r\n\r\n return data;\r\n}\r\n\r\nconst getPostAdObject = (usertID, duration, startDate, description, isHTML, email, isEditor, isAdminPost, name, isAuthenticated, token) => {\r\n const dateRange = getStartEndDates(startDate, duration);\r\n const contactId = !usertID || usertID === null || usertID === undefined ? '' : usertID;\r\n\r\n var id = isAuthenticated ? uuid.v1() : token;\r\n if(id === undefined || id === null || id.length < 1){\r\n id = uuid.v1();\r\n }\r\n\r\n const data = JSON.stringify({\r\n startDate: dateRange[0],\r\n endDate: dateRange[1],\r\n contactID: contactId,\r\n description: description,\r\n isHTML: isHTML,\r\n entity: SHUL,\r\n email: email,\r\n isEditor: isEditor,\r\n isAdminPost: isAdminPost,\r\n name: name,\r\n isAuthenticated: isAuthenticated,\r\n id: id,\r\n url: window.location.origin.toString()\r\n });\r\n \r\n return data;\r\n}\r\n\r\nasync function addImageAuthenticated(usertID, email, file) {\r\n \r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n formData.append(\"email\", email);\r\n formData.append(\"usertID\", usertID);\r\n formData.append(\"entity\", SHUL);\r\n formData.append(\"id\", uuid.v1()); \r\n\r\n try {\r\n const res = await axios.post(SERVER_URL + 'api/PostPageAd/AddImageAuthenticated', formData);\r\n if(res.data){\r\n return res.data;\r\n }\r\n\r\n if(!res.data){\r\n console.log('not ok response');\r\n return false;\r\n }\r\n } catch (ex) {\r\n console.log('exception');\r\n console.log(ex);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nasync function deleteImage(id) {\r\n const formData = new FormData();\r\n formData.append(\"id\", id); \r\n\r\n try {\r\n const res = await axios.post(SERVER_URL + 'api/PostPageAd/DeleteImage', formData);\r\n if(res.data){\r\n return res.data;\r\n }\r\n\r\n if(!res.data){\r\n console.log('not ok response');\r\n return false;\r\n }\r\n } catch (ex) {\r\n console.log('exception');\r\n console.log(ex);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nconst formatDayDate = (date) => {\r\n if (!date) {\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n}\r\nexport default postAdService;","import Modal from 'react-bootstrap/Modal'\r\nimport { View, Text, StyleSheet } from 'react-native';\r\nimport { CirclePicker } from 'react-color';\r\nimport '../../pages/Home.css';\r\nimport React, { useState, useRef, useEffect } from 'react';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\nexport function ColorPickerDlg({onClose, showModal, onColorPicked, onDefaultColorPicked}) {\r\n const [color, setColor] = useState('#fff');\r\n const ref = useRef(null);\r\n const [modalWidth, setModalWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setModalWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n const closeModal = () => {\r\n onClose();\r\n }\r\n\r\n const handleChangeComplete = (pickedColor) => {\r\n //console.log(pickedColor)\r\n setColor(pickedColor);\r\n };\r\n\r\n const styles = StyleSheet.create({ \r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n });\r\n\r\n const renderPickBtn = () => {\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 const onDefault = async () => {\r\n onDefaultColorPicked();\r\n }\r\n\r\n const onSubmit = async () => {\r\n onColorPicked(color);\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n Pick color\r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderPickBtn()}\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ColorPickerDlg;","import React, { useState } from 'react';\r\nimport { Editor, EditorState, RichUtils } from 'draft-js';\r\nimport { View } from 'react-native';\r\nimport './PostAdEditor.css';\r\nimport 'draft-js/dist/Draft.css';\r\nimport ColorPickerDlg from './ColorPickerDlg'\r\nimport Select from 'react-select'\r\n\r\nfunction PostAdEditor({onRichTextEditorStateChanged, initialEditorState, isReadOnly}) {\r\n const [showColorPickerDlg, setShowColorPickerDlg] = useState(false); \r\n const [editorState, setEditorState] = React.useState(EditorState.createEmpty());\r\n\r\n const editor = React.useRef(null);\r\n \r\n function focusEditor() {\r\n editor.current.focus();\r\n }\r\n\r\n React.useEffect(() => {\r\n focusEditor();\r\n \r\n if(initialEditorState !== null && initialEditorState !== undefined && initialEditorState){\r\n setEditorState(initialEditorState)\r\n }\r\n \r\n }, [initialEditorState]);\r\n\r\n const styleMap = {\r\n 'HIGHLIGHT': {\r\n 'color': '#17202A',\r\n },\r\n 'RED': {\r\n 'color': '#f44336',\r\n },\r\n 'RED1': {\r\n 'color': '#e91e63',\r\n },\r\n 'PURPLE': {\r\n 'color': '#9c27b0',\r\n },\r\n 'PURPLE1': {\r\n 'color': '#673ab7',\r\n },\r\n 'BLUE': {\r\n 'color': '#3f51b5',\r\n },\r\n 'BLUE1': {\r\n 'color': '#2196f3',\r\n },\r\n 'BLUE2': {\r\n 'color': '#03a9f4',\r\n },\r\n 'OLDHUE': {\r\n 'color': '#00bcd4',\r\n },\r\n 'OLDHUE1': {\r\n 'color': '#009688',\r\n },\r\n 'GREEN': {\r\n 'color': '#4caf50',\r\n },\r\n 'GREEN1': {\r\n 'color': '#8bc34a',\r\n },\r\n 'GREEN2': {\r\n 'color': '#cddc39',\r\n },\r\n 'YELLOW': {\r\n 'color': '#ffeb3b',\r\n },\r\n 'YELLOW1': {\r\n 'color': '#ffc107',\r\n },\r\n 'YELLOW2': {\r\n 'color': '#ff9800',\r\n },\r\n 'MARS': {\r\n 'color': '#ff5722',\r\n },\r\n 'BROWN': {\r\n 'color': '#795548',\r\n },\r\n 'GREY': {\r\n 'color': '#607d8b',\r\n },\r\n 'FONT_SIZE_12': {\r\n 'fontSize': '12px'\r\n },\r\n 'FONT_SIZE_14': {\r\n 'fontSize': '14px'\r\n },\r\n 'FONT_SIZE_16': {\r\n 'fontSize': '16px'\r\n },\r\n 'FONT_SIZE_18': {\r\n 'fontSize': '18px'\r\n },\r\n 'FONT_SIZE_20': {\r\n 'fontSize': '20px'\r\n },\r\n 'FONT_SIZE_22': {\r\n 'fontSize': '22px'\r\n },\r\n 'FONT_SIZE_24': {\r\n 'fontSize': '24px'\r\n },\r\n 'FONT_SIZE_26': {\r\n 'fontSize': '26px'\r\n },\r\n 'FONT_SIZE_28': {\r\n 'fontSize': '28px'\r\n },\r\n 'FONT_SIZE_30': {\r\n 'fontSize': '30px'\r\n },\r\n 'FONT_SIZE_36': {\r\n 'fontSize': '36px'\r\n },\r\n 'FONT_SIZE_42': {\r\n 'fontSize': '42px'\r\n },\r\n 'FONT_SIZE_48': {\r\n 'fontSize': '48px'\r\n },\r\n CODE: {\r\n backgroundColor: 'rgba(0, 0, 0, 0.05)',\r\n fontFamily: '\"Inconsolata\", \"Menlo\", \"Consolas\", monospace',\r\n fontSize: 16,\r\n padding: 2,\r\n }\r\n };\r\n\r\n const toggleBlockType = async (blockType) => {\r\n const newState = RichUtils.toggleBlockType(editorState, blockType);\r\n setEditorState(newState);\r\n if(onRichTextEditorStateChanged === null || onRichTextEditorStateChanged === undefined){\r\n return;\r\n }\r\n\r\n onRichTextEditorStateChanged(newState)\r\n }\r\n\r\n const toggleInlineStyle = async (inlineStyle) => {\r\n console.log('toggleInlineStyle ' + inlineStyle);\r\n\r\n if(inlineStyle === 'COLOR') {\r\n pickColorClick();\r\n return;\r\n }\r\n\r\n const newState = RichUtils.toggleInlineStyle(editorState, inlineStyle);\r\n setEditorState(newState);\r\n if(onRichTextEditorStateChanged === null || onRichTextEditorStateChanged === undefined){\r\n return;\r\n }\r\n\r\n onRichTextEditorStateChanged(newState);\r\n }\r\n\r\n function BlockButton(props) {\r\n const onToggle = async (e) => {\r\n e.preventDefault();\r\n props.onToggle(props.style)\r\n }\r\n \r\n const renderBlockBtn = () => {\r\n let className = 'RichEditor-styleButton';\r\n if (props.active) {\r\n className += ' RichEditor-activeButton';\r\n }\r\n\r\n return (\r\n \r\n {props.label}\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderBlockBtn()}\r\n
\r\n );\r\n }\r\n\r\n const getBlockStyle = (block) => {\r\n switch (block.getType()) {\r\n case 'blockquote':\r\n return 'RichEditor-blockquote';\r\n default: return null;\r\n }\r\n }\r\n\r\n var INLINE_STYLES = [\r\n {label: 'Bold', style: 'BOLD'},\r\n {label: 'Italic', style: 'ITALIC'},\r\n {label: 'Underline', style: 'UNDERLINE'},\r\n {label: 'Monospace', style: 'CODE'},\r\n {label: 'Color', style: 'COLOR'},\r\n ];\r\n\r\n const BLOCK_TYPES = [\r\n {label: 'H1', style: 'header-one'},\r\n {label: 'H2', style: 'header-two'},\r\n {label: 'H3', style: 'header-three'},\r\n {label: 'H4', style: 'header-four'},\r\n {label: 'H5', style: 'header-five'},\r\n {label: 'H6', style: 'header-six'},\r\n {label: 'Blockquote', style: 'blockquote'},\r\n {label: 'UL', style: 'unordered-list-item'},\r\n {label: 'OL', style: 'ordered-list-item'},\r\n {label: 'Code Block', style: 'code-block'},\r\n ];\r\n\r\n const BlockStyleControls = (props) => {\r\n const {editorState} = props;\r\n if(!editorState || editorState === undefined || editorState === null){\r\n return;\r\n }\r\n const selection = editorState.getSelection();\r\n const blockType = editorState\r\n .getCurrentContent()\r\n .getBlockForKey(selection.getStartKey())\r\n .getType();\r\n \r\n return (\r\n
\r\n \r\n {BLOCK_TYPES.map((type) =>\r\n \r\n )} \r\n \r\n
\r\n );\r\n };\r\n\r\n const InlineStyleControls = (props) => {\r\n if(!editorState || editorState === undefined || editorState === null){\r\n return;\r\n }\r\n\r\n const currentStyle = editorState.getCurrentInlineStyle();\r\n \r\n return (\r\n \r\n {INLINE_STYLES.map((type) =>\r\n \r\n )} \r\n \r\n );\r\n };\r\n\r\n const onDefaultColorPicked = (color) => {\r\n const newState = RichUtils.toggleInlineStyle(editorState, 'HIGHLIGHT');\r\n setEditorState(newState);\r\n setShowColorPickerDlg(false);\r\n if(onRichTextEditorStateChanged === null || onRichTextEditorStateChanged === undefined){\r\n return;\r\n }\r\n\r\n onRichTextEditorStateChanged(newState);\r\n }\r\n\r\n const onColorPicked = (color) => {\r\n console.log(color)\r\n console.log(color.hex)\r\n let code = 'HIGHLIGHT';\r\n\r\n switch(color.hex)\r\n {\r\n case '#f44336':\r\n code = 'RED'\r\n break;\r\n case '#e91e63':\r\n code = 'RED1'\r\n break;\r\n case '#9c27b0':\r\n code = 'PURPLE'\r\n break;\r\n case '#673ab7':\r\n code = 'PURPLE1'\r\n break;\r\n case '#3f51b5':\r\n code = 'BLUE'\r\n break;\r\n case '#2196f3':\r\n code = 'BLUE1'\r\n break;\r\n case '#03a9f4':\r\n code = 'BLUE2'\r\n break;\r\n case '#00bcd4':\r\n code = 'OLDHUE'\r\n break;\r\n case '#009688':\r\n code = 'OLDHUE1'\r\n break;\r\n case '#4caf50':\r\n code = 'GREEN'\r\n break;\r\n case '#8bc34a':\r\n code = 'GREEN1'\r\n break;\r\n case '#cddc39':\r\n code = 'GREEN2'\r\n break;\r\n case '#ffeb3b':\r\n code = 'YELLOW'\r\n break;\r\n case '#ffc107':\r\n code = 'YELLOW1'\r\n break;\r\n case '#ff9800':\r\n code = 'YELLOW2'\r\n break;\r\n case '#ff5722':\r\n code = 'MARS'\r\n break;\r\n case '#795548':\r\n code = 'BROWN'\r\n break;\r\n case '#607d8b':\r\n code = 'GREY'\r\n break;\r\n default:\r\n code = 'HIGHLIGHT'\r\n break;\r\n }\r\n\r\n setShowColorPickerDlg(false);\r\n const newState = RichUtils.toggleInlineStyle(editorState, code);\r\n setEditorState(newState);\r\n if(onRichTextEditorStateChanged === null || onRichTextEditorStateChanged === undefined){\r\n return;\r\n }\r\n\r\n onRichTextEditorStateChanged(newState);\r\n }\r\n\r\n const fontSizes = [\r\n { value: '12px', label: '12' },\r\n { value: '14px', label: '14' },\r\n { value: '16px', label: '16' },\r\n { value: '18px', label: '18' },\r\n { value: '20px', label: '20' },\r\n { value: '22px', label: '22' },\r\n { value: '24px', label: '24' },\r\n { value: '26px', label: '26' },\r\n { value: '28px', label: '28' },\r\n { value: '30px', label: '30' },\r\n { value: '36px', label: '36' },\r\n { value: '42px', label: '42' },\r\n { value: '48px', label: '48' },\r\n ]\r\n\r\n const handleFontSizeChange = value => {\r\n console.log(value);\r\n let code = '';\r\n focusEditor();\r\n\r\n switch(value.label)\r\n {\r\n case '12':\r\n code = 'FONT_SIZE_12'\r\n break;\r\n case '14':\r\n code = 'FONT_SIZE_14'\r\n break;\r\n case '16':\r\n code = 'FONT_SIZE_16'\r\n break;\r\n case '18':\r\n code = 'FONT_SIZE_18'\r\n break;\r\n case '20':\r\n code = 'FONT_SIZE_20'\r\n break;\r\n case '22':\r\n code = 'FONT_SIZE_22'\r\n break;\r\n case '24':\r\n code = 'FONT_SIZE_24'\r\n break;\r\n case '26':\r\n code = 'FONT_SIZE_26'\r\n break;\r\n case '28':\r\n code = 'FONT_SIZE_28'\r\n break;\r\n case '30':\r\n code = 'FONT_SIZE_30'\r\n break;\r\n case '36':\r\n code = 'FONT_SIZE_36'\r\n break;\r\n case '42':\r\n code = 'FONT_SIZE_42'\r\n break;\r\n case '48':\r\n code = 'FONT_SIZE_48'\r\n break;\r\n default:\r\n code = 'HIGHLIGHT'\r\n break;\r\n }\r\n\r\n const newState = RichUtils.toggleInlineStyle(editorState, code);\r\n setEditorState(newState);\r\n if(onRichTextEditorStateChanged === null || onRichTextEditorStateChanged === undefined){\r\n return;\r\n }\r\n\r\n onRichTextEditorStateChanged(newState);\r\n };\r\n\r\n const rendrFontSize = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderPhysicalAddress = () => {\r\n if(!donatePhysicalAddress || donatePhysicalAddress === null || donatePhysicalAddress === undefined || donatePhysicalAddress.length ===0){\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n\r\n const renderPayPalButtons = () => {\r\n if(isRecurring){\r\n console.log('recurring');\r\n return (\r\n \r\n \r\n );\r\n }\r\n console.log('non recurring');\r\n return (\r\n \r\n \r\n );\r\n }\r\n\r\n const paypalOnError = (err) => {\r\n console.log(\"Error: \" + err)\r\n }\r\n\r\n const renderPayPalOnApprove = () => {\r\n if (isOnPayPalApprove) {\r\n let amount = 0;\r\n let currency_code = 'USD';\r\n if(approvedOrderDetails.purchase_units != null && approvedOrderDetails.purchase_units.length > 0){\r\n amount = approvedOrderDetails.purchase_units[0].amount.value;\r\n currency_code = approvedOrderDetails.purchase_units[0].amount.currency_code;\r\n }\r\n\r\n return \r\n }\r\n}\r\n\r\n const payPalOnApprove = (data, actions) =>{\r\n // Capture the funds from the transaction\r\n return actions.order.capture().then(function(details) {\r\n // Show a success message to your buyer\r\n //alert(\"Transaction completed by \" + details.payer.name.given_name + \". Thank you!\" );\r\n setApprovedOrderDetails(details)\r\n setDonationValue(null);\r\n setOnPayPalApprove(true);\r\n \r\n // OPTIONAL: Call your server to save the transaction\r\n return fetch(\"/paypal-transaction-complete\", {\r\n method: \"post\",\r\n body: JSON.stringify({\r\n orderID: data.orderID\r\n })\r\n });\r\n });\r\n }\r\n\r\n const paypalCreateOrder = (data, actions) => {\r\n console.log(data);\r\n console.log(actions);\r\n if(!checkDonationValue() || !isDonationValueValid){\r\n console.log('donation is invalid')\r\n return;\r\n }\r\n if(!checkPurpose() || !isPurposeValid){\r\n console.log('purpose is invalid')\r\n return;\r\n }\r\n console.log('donation is valid')\r\n return actions.order.create({\r\n purchase_units: [{\r\n description: purpose,\r\n amount: {\r\n currency_code: \"USD\",\r\n value: donationValue\r\n }\r\n }],\r\n application_context: {\r\n shipping_preference: \"NO_SHIPPING\" // default is \"GET_FROM_FILE\"\r\n },\r\n style: {\r\n layout: 'vertical',\r\n color: 'blue',\r\n shape: 'pill',\r\n label: 'paypal'\r\n }\r\n });\r\n }\r\n\r\n const paypalSubscribe = (data, actions) => {\r\n if(!checkDonationValue() || !isDonationValueValid){\r\n console.log('donation is invalid')\r\n return;\r\n }\r\n if(!checkPurpose() || !isPurposeValid){\r\n console.log('purpose is invalid')\r\n return;\r\n }\r\n if(!checkFractionalSubscription()){\r\n setFractionalSubscription(true);\r\n return;\r\n }\r\n\r\n let planID = 'P-1RT872045T645393VMFGL2IQ';\r\n if(SHUL === 'MD'){\r\n planID = isReurringMonthly ? 'P-8W1837729U1811522MFGPGEA' : 'P-39546188XP231584XMGP6K7I';\r\n }\r\n\r\n console.log('donation is valid ' + donationValue)\r\n return actions.subscription.create({\r\n plan_id: planID,\r\n quantity: Number(donationValue),\r\n application_context: {\r\n shipping_preference: 'NO_SHIPPING'\r\n }\r\n });\r\n }; \r\n\r\n const isDecimal = (str) => {\r\n let value = Number(str);\r\n return(value % 1) !== 0;\r\n }\r\n\r\n const onRecurringMonthlyChange = (event) => {\r\n setIsRecurringYearly(false);\r\n setIsRecurringMonthly(true);\r\n }\r\n\r\n const onRecurringYearlyChange = (event) => {\r\n console.log(event.target.value);\r\n setIsRecurringYearly(true);\r\n setIsRecurringMonthly(false);\r\n }\r\n\r\n const renderRecurringOptions = () => {\r\n let isMobile = IsMobile();\r\n \r\n if(isRecurring && !isMobile) {\r\n if(SHUL === 'MD'){\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 return ( \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n if(isRecurring && isMobile){\r\n if(SHUL === 'MD'){\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 \r\n
\r\n
\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\r\n const renderRecurringCheckBox = () => {\r\n return (
\r\n \r\n \r\n
);\r\n }\r\n\r\n const renderMemo = () => {\r\n if(SHUL === 'MD'){\r\n return (\r\n
\r\n \r\n Please help us to continue our unbroken mesorah\r\n \r\n
\r\n );\r\n } \r\n }\r\n\r\n const renderStatusBar = () => { \r\n if(SHUL === 'OS'){\r\n return (
\r\n
\r\n Our Shul is a 501(c)(3) organization and all donations are tax-deductible.\r\n
    \r\n
  • Contact Us
  • \r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderMemo()}\r\n {renderCurrencyInput()}\r\n {renderPurposeValidLabel()}\r\n {renderDonationIsTooSmallLabel()}\r\n {renderFractionalSubscription()} \r\n {renderSuggestedDonations()} \r\n
\r\n
\r\n
\r\n {renderRecurringCheckBox()}\r\n {renderRecurringOptions()}\r\n
\r\n
\r\n
\r\n {renderPurposes()}\r\n
\r\n {renderOtherPurposeBox()}\r\n
\r\n {renderPayPalButtons()}\r\n {renderPhysicalAddress()}\r\n {renderStatusBar()}\r\n {renderPayPalOnApprove()}\r\n
\r\n );\r\n}\r\n\r\nexport default PayPal\r\n\r\n","import { View, Text } from 'react-native';\r\n\r\nfunction PayPalConfirm() {\r\n const renderConfirm = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n \r\n let isParsed = parsed && parsed.name && parsed.purpose && parsed.amount && parsed.currency_code;\r\n let currSign = '$';\r\n if(!isParsed){\r\n return(\r\n \r\n There was an error processing your transaction\r\n \r\n );\r\n }\r\n\r\n if(parsed.currency_code !== 'USD'){\r\n currSign = '';\r\n }\r\n\r\n return (\r\n \r\n Your donation of {currSign}{parsed.amount} has been received\r\n It will be applied toward {parsed.purpose}\r\n Thank you {parsed.name} for your support!\r\n \r\n );\r\n \r\n } \r\n\r\n return (\r\n
\r\n {renderConfirm()}\r\n
\r\n );\r\n}\r\n\r\nexport default PayPalConfirm","import React from 'react'\r\n\r\nclass RegistrationConfirmationComponent extends React.Component {\r\n render () {\r\n return (\r\n

Please check your email to follow a link to activate your registration

\r\n )\r\n }\r\n}\r\nexport default RegistrationConfirmationComponent;","import useViewport from '../shared/ViewportProvider'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport dateFnsParse from 'date-fns/parse';\r\nimport { DateUtils } from 'react-day-picker';\r\n\r\nexport const helperUtil = {\r\n handleErrors,\r\n getDayOfTheWeek,\r\n getWeekRange,\r\n IsMobile,\r\n getWeekRangeFormatted,\r\n getDateFormatted,\r\n parseDate,\r\n formatDate\r\n};\r\n\r\nfunction handleErrors(response) {\r\n if (!response.ok) {\r\n throw Error(response.statusText);\r\n }\r\n return response;\r\n}\r\n\r\nfunction getDayOfTheWeek(date) {\r\n var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Erev Shabbos','Shabbos'];\r\n \r\n return days[ date.getDay() ];\r\n}\r\n\r\nfunction getWeekRange(date) {\r\n let endDate = new Date(date.getTime());\r\n for(var i = 0; i < 7; i++){\r\n if(endDate.getDay() === 6){\r\n break;\r\n } \r\n endDate.setDate(endDate.getDate() + 1);\r\n }\r\n\r\n let startDate = new Date(date.getTime());\r\n for(i = 0; i < 7; i++){\r\n if(startDate.getDay() === 0){\r\n break;\r\n } \r\n startDate.setDate(startDate.getDate() - 1);\r\n }\r\n\r\n console.log(startDate)\r\n console.log(endDate)\r\n return [startDate, endDate];\r\n}\r\n\r\nfunction getWeekRangeFormatted(date, htmlFormat) {\r\n let range = getWeekRange(date);\r\n const FORMAT = htmlFormat ? 'MM-dd-yyyy' : 'MM/dd/yyyy';\r\n let startDay = dateFnsFormat(range[0], FORMAT);\r\n let endDay = dateFnsFormat(range[1], FORMAT);\r\n return [startDay, endDay];\r\n}\r\n\r\nfunction IsMobile() {\r\n const { width } = useViewport();\r\n const breakpoint = 620;\r\n \r\n return width < breakpoint;\r\n}\r\n\r\nfunction getDateFormatted(date, htmlFormat) {\r\n const FORMAT = htmlFormat ? 'MM-dd-yyyy' : 'MM/dd/yyyy';\r\n return dateFnsFormat(date, FORMAT);\r\n}\r\n\r\nfunction parseDate(str, format, locale) {\r\n const parsed = dateFnsParse(str, format, new Date(), { locale });\r\n if (DateUtils.isDate(parsed)) {\r\n return parsed;\r\n }\r\n return undefined;\r\n}\r\n\r\nfunction formatDate(date, format, locale) {\r\n return dateFnsFormat(date, format, { locale });\r\n}\r\nexport default helperUtil\r\n\r\n","import { useState } from 'react';\r\nimport '../authentication/Register.css';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nexport const telephoneEntry = {\r\n TelephoneInput\r\n};\r\n\r\nexport function TelephoneInput({onTelephoneChange, telephone, controlsStyle=\"table\"}) {\r\n const [isTelephoneInvalid, setIsTelephoneInvalid] = useState(false);\r\n const [isTelephoneWrongFormat, setIsTelephoneWrongFormat] = useState(false);\r\n const tableStyle = controlsStyle;\r\n\r\n const renderTelephoneWrongFormat = () => {\r\n if (isTelephoneWrongFormat) {\r\n return
Telephone format is invalid
;\r\n }\r\n return
; \r\n }\r\n\r\n const renderTelephoneLabel = () => {\r\n if (isTelephoneInvalid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const handleTelephoneChange = async(event) => {\r\n let value = event.target.value;\r\n setIsTelephoneWrongFormat(false);\r\n \r\n if(!value) {\r\n setIsTelephoneInvalid(false);\r\n onTelephoneChange(value, true);\r\n return;\r\n }\r\n\r\n if(value.length < 10 && value.length > 0){\r\n setIsTelephoneInvalid(true);\r\n onTelephoneChange(value, false);\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/);\r\n if (!value.match(pattern)) { \r\n setIsTelephoneWrongFormat(true);\r\n setIsTelephoneInvalid(true);\r\n onTelephoneChange(value, false);\r\n return;\r\n }\r\n\r\n onTelephoneChange(value, true);\r\n setIsTelephoneInvalid(false);\r\n }\r\n\r\n const renderTelephoneControls = () => {\r\n \r\n if(tableStyle === \"table\"){\r\n return (\r\n
\r\n \r\n \r\n {renderTelephoneLabel()} \r\n \r\n \r\n \r\n \r\n \r\n {renderTelephoneWrongFormat()}\r\n
\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n if(tableStyle === \"Table\"){\r\n return (\r\n
\r\n \r\n \r\n {renderTelephoneLabel()} \r\n \r\n \r\n \r\n \r\n \r\n {renderTelephoneWrongFormat()}\r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderTelephoneControls()}\r\n
\r\n );\r\n}\r\n\r\nexport default telephoneEntry;","import React, { useState } from 'react';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nexport const firstNameEntry = {\r\n FirstNameInput\r\n};\r\n\r\nexport function FirstNameInput({onFirstNameChange, name, controlsStyle=\"table\"}) {\r\n const [isFirstNameValid, setFirstNameValid] = useState(false);\r\n \r\n React.useEffect(() => {\r\n if(name && name.length > 0){\r\n setFirstNameValid(true);\r\n }\r\n }, [name]);\r\n\r\n const tableStyle = controlsStyle;\r\n\r\n const handleFirstNameChange = async(event) => {\r\n let value = event.target.value;\r\n \r\n if(!value){\r\n setFirstNameValid(false);\r\n onFirstNameChange(value, false);\r\n return;\r\n }\r\n \r\n if(value.length > 60){\r\n setFirstNameValid(false);\r\n onFirstNameChange(value, false);\r\n return;\r\n }\r\n var pattern = new RegExp(/^[A-Za-z .]+$/);\r\n if (!pattern.test(value)) {\r\n console.log('non-alpha');\r\n setFirstNameValid(false);\r\n onFirstNameChange(value, false);\r\n return;\r\n }\r\n\r\n setFirstNameValid(true);\r\n onFirstNameChange(value, true);\r\n }\r\n\r\n const renderFirstNameLabel = () => {\r\n if (!isFirstNameValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const renderFirstNameControls = () => {\r\n \r\n if(tableStyle === \"table\"){\r\n return (\r\n
\r\n \r\n \r\n {renderFirstNameLabel()} \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(tableStyle === \"Table\"){\r\n console.log('super jopa 22');\r\n return (\r\n
\r\n \r\n \r\n {renderFirstNameLabel()} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderFirstNameControls()}\r\n
\r\n );\r\n}\r\n\r\nexport default firstNameEntry;","import React, { useState } from 'react';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\n\r\nexport const lastNameEntry = {\r\n LastNameInput\r\n};\r\n\r\nexport function LastNameInput({onLastNameChange, \r\n name, \r\n labelText='Last Name',\r\n controlsStyle=\"table\", \r\n applyRegularExpression=true}) {\r\n const [isLastNameValid, setLastNameValid] = useState(true);\r\n const placeHolder = 'Enter ' + labelText + ' (optional)';\r\n\r\n const tableStyle = controlsStyle;\r\n\r\n const handleLastNameChange = async(event) => {\r\n let value = event.target.value;\r\n \r\n if(!value){\r\n setLastNameValid(true);\r\n onLastNameChange(value, true);\r\n return;\r\n }\r\n \r\n if(value.length > 60){\r\n setLastNameValid(false);\r\n onLastNameChange(value, false);\r\n return;\r\n }\r\n if(applyRegularExpression){\r\n var pattern = new RegExp(/^[A-Za-z .]+$/);\r\n if (!pattern.test(value)) {\r\n console.log('non-alpha');\r\n setLastNameValid(false);\r\n onLastNameChange(value, false);\r\n return;\r\n }\r\n }\r\n\r\n setLastNameValid(true);\r\n onLastNameChange(value, true);\r\n }\r\n\r\n const renderLastNameLabel = () => {\r\n if (!isLastNameValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const renderLastNameControls = () => { \r\n if(tableStyle === \"table\"){\r\n return (\r\n
\r\n \r\n \r\n {renderLastNameLabel()} \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(tableStyle === \"Table\"){\r\n console.log('super jopa 22');\r\n return (\r\n
\r\n \r\n \r\n {renderLastNameLabel()} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderLastNameControls()}\r\n
\r\n );\r\n}\r\n\r\nexport default lastNameEntry;","import React, { useState } from 'react';\r\nimport './Register.css';\r\nimport { View } from 'react-native';\r\nimport Button from 'react-bootstrap/Button';\r\nimport helperUtil from '../shared/Util'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport telephoneEntry from '../shared/TelephoneEntry'\r\nimport firstNameEntry from '../shared/FirstNameEntry'\r\nimport lastNameEntry from '../shared/LastNameEntry'\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nfunction Register() {\r\n console.log(SERVER_URL);\r\n \r\n const handleUserIDChange = async(event) => {\r\n let userId = event.target.value;\r\n setUserId(userId); \r\n\r\n if(!userId){\r\n userId = '';\r\n setErrors({userAlreadyPresent: null}) \r\n setErrors({userIdTooShort: null})\r\n setIsUserIdValid(true);\r\n return;\r\n }\r\n\r\n if(userId.length < 4){\r\n setErrors({userAlreadyPresent: null})\r\n setErrors({userIdTooShort: \"User Id should be at least 4 characters long\"})\r\n setIsUserIdValid(false);\r\n return;\r\n }\r\n\r\n setErrors({userIdTooShort: null})\r\n \r\n const result = await fetch(SERVER_URL + 'api/RegisterUser/isUser/' + userId);\r\n const isAlreadyPresent = await result.json();\r\n \r\n console.log('user is already present ' + isAlreadyPresent);\r\n if(isAlreadyPresent){\r\n setErrors({userAlreadyPresent: \"User \" + userId + \" is already present\"})\r\n setIsUserIdValid(false);\r\n return;\r\n }\r\n\r\n setIsUserIdValid(true);\r\n }\r\n\r\n const handleEmailChange = async(event) => {\r\n let email = event.target.value;\r\n setEmail(email); \r\n setErrors({invalidEmail: null});\r\n console.log(\"checking email\");\r\n \r\n if(!email){\r\n email = '';\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n if(email.length < 4){\r\n setErrors({invalidEmail: \"Invalid email\"})\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n if (!pattern.test(email)) {\r\n setErrors({invalidEmail: \"Invalid email\"})\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n \r\n \r\n console.log(\"checking user response\");\r\n let url = SERVER_URL + 'api/RegisterUser/getUserFromEmailUserIDCombination/' + email + \"/\" + (!userId ? '!' : userId);\r\n console.log(\"url\" + url);\r\n const result = await fetch(url); \r\n const checkUserResponse = await result.json();\r\n\r\n if(!checkUserResponse)\r\n {\r\n setErrors({invalidEmail: \"unfortunately, there seems to be a problem with the server at the moment. Please try again later\"})\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n if(checkUserResponse[\"emailAlreadyPresent\"])\r\n {\r\n setErrors({invalidEmail: \"There is already an email \" + email + \" registered with us\"});\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n if(checkUserResponse[\"userIDAlreadyPresent\"])\r\n {\r\n setErrors({invalidEmail: \"There is already a user \" + userId + \" registered with us\"});\r\n setIsUserIdValid(false);\r\n return;\r\n }\r\n\r\n console.log(checkUserResponse);\r\n\r\n setErrors({invalidEmail: null})\r\n setIsEmailValid(true);\r\n }\r\n\r\n const handleConfirmPasswordChange = async(event) => {\r\n let confirmPassword = event.target.value;\r\n setConfirmPassword(confirmPassword);\r\n setErrors({confirmPasswordDoesnotMatch: null});\r\n\r\n if(confirmPassword.length < 7){\r\n setConfirmPasswordValid(false);\r\n return;\r\n }\r\n\r\n if(!doPasswordsMatch(password, confirmPassword)){\r\n setConfirmPasswordValid(false);\r\n setErrors({confirmPasswordDoesnotMatch: 'passwords do not match'});\r\n return;\r\n }\r\n\r\n setConfirmPasswordValid(true);\r\n setErrors({confirmPasswordDoesnotMatch: null});\r\n }\r\n \r\n const doPasswordsMatch = (password, confirmPassword) => {\r\n console.log(password, confirmPassword);\r\n\r\n if(password === confirmPassword){\r\n setErrors({confirmPasswordDonotmatch: null});\r\n return true;\r\n }\r\n\r\n setErrors('Passwords do not match');\r\n return false;\r\n }\r\n\r\n const handlePasswordChange = async(event) => {\r\n let password = event.target.value;\r\n setPassword(password);\r\n setErrors({passwordTooShort: null})\r\n \r\n if(!password){\r\n password = '';\r\n setPasswordValid(false);\r\n return;\r\n }\r\n\r\n if(password.length < 7){\r\n setErrors({passwordTooShort: 'Password is too short'})\r\n setPasswordValid(false);\r\n return;\r\n }\r\n\r\n setPasswordValid(true);\r\n setConfirmPasswordValid(doPasswordsMatch(password, confirmPassword));\r\n }\r\n\r\n const renderUserIdlLabel = () => {\r\n if(!userId){\r\n return
;\r\n }\r\n \r\n if (!isUserIdValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const renderEmailLabel = () => {\r\n if (!isEmailValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const renderPasswordLabel = () => {\r\n if (!isPasswordValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const renderRegistrationConfirmation = () => {\r\n if (isConfirmationRedirect) {\r\n return ;\r\n }\r\n }\r\n\r\n const renderConfirmPasswordLabel = () => {\r\n if (!isConfirmPasswordValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const isFormValidated = () => {\r\n return (isFirstNameValid && isLastNameValid && isUserIdValid && isEmailValid) && isTelephoneValid && isPasswordValid && isConfirmPasswordValid && !submitting;\r\n }\r\n\r\n const [submitting, setSubmitting] = useState(false);\r\n const [userId, setUserId] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [telephone, setTelephone] = useState('');\r\n const [isTelephoneValid, setTelephoneValid] = useState(true);\r\n const [errors, setErrors] = useState({});\r\n const [isUserIdValid, setIsUserIdValid] = useState(true);\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [password, setPassword] = useState('');\r\n const [isPasswordValid, setPasswordValid] = useState('');\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [isConfirmPasswordValid, setConfirmPasswordValid] = useState('');\r\n const [firstName, setFirstName] = useState('');\r\n const [isFirstNameValid, setFirstNameValid] = useState(false);\r\n const [lastName, setLastName] = useState('');\r\n const [isLastNameValid, setLastNameValid] = useState(true);\r\n const [isConfirmationRedirect, setconfirmationRedirect] = useState(false);\r\n\r\n function changeTelephone(phone, isValid) {\r\n setTelephone(phone);\r\n setTelephoneValid(isValid);\r\n }\r\n\r\n function changeFirstName(name, isValid) {\r\n setFirstName(name);\r\n setFirstNameValid(isValid);\r\n }\r\n\r\n function changeLastName(name, isValid) {\r\n setLastName(name);\r\n setLastNameValid(isValid);\r\n }\r\n\r\n const handleSubmit = event => {\r\n event.preventDefault();\r\n setSubmitting(true);\r\n setErrors({ErrorsubmittingTheForm: null})\r\n let path = '';\r\n\r\n if (typeof window !== 'undefined') {\r\n path = window.location.origin.toString();\r\n }\r\n\r\n const source = SHUL === 'MD' ? \"mountaindaleshul\" : \"shul\";\r\n const data = JSON.stringify({ password: password, userID: userId, email: email, source: source, firstName: firstName, lastName: lastName, telephone: telephone, baseUrl: path + '/activateAccount'});\r\n console.log(data);\r\n\r\n //console.log(SERVER_URL + 'api/RegisterUser/');\r\n fetch(SERVER_URL + 'api/RegisterUser/', { method: 'PUT', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n setSubmitting(false);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(!data.status || !data.confirmationEmailSent)\r\n {\r\n setErrors({errorsubmittingTheForm: 'There was an error during the form submission'});\r\n return;\r\n }\r\n\r\n setconfirmationRedirect(true);\r\n }).catch(function(error) {\r\n console.log(error);\r\n setErrors({errorsubmittingTheForm: 'There was an error during the form submission'});\r\n setSubmitting(false); \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 \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 \r\n \r\n \r\n \r\n
\r\n

Register

\r\n
\r\n
\r\n {renderUserIdlLabel()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {errors[\"userAlreadyPresent\"]}\r\n {errors[\"userIdTooShort\"]} \r\n
\r\n {renderEmailLabel()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {errors[\"invalidEmail\"]} \r\n
\r\n {renderPasswordLabel()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {errors[\"passwordTooShort\"]}\r\n
\r\n {renderConfirmPasswordLabel()}\r\n
\r\n
\r\n \r\n
\r\n
\r\n {errors[\"confirmPasswordDoesnotMatch\"]}\r\n
\r\n {errors[\"errorsubmittingTheForm\"]}\r\n
\r\n
\r\n \r\n
\r\n {renderRegistrationConfirmation()} \r\n
\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\nexport default Register\r\n","import React, { useState } from 'react';\r\nimport './ForgotCredentials.css';\r\nimport Button from 'react-bootstrap/Button';\r\nimport authenticationService from '../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nfunction ForgotCredentials(props) {\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [email, setEmail] = useState('');\r\n const [errors, setErrors] = useState({});\r\n const [isConfirmationRedirect, setConfirmationRedirect] = useState(false); \r\n\r\n const handleEmailChange = async(event) => {\r\n let email = event.target.value;\r\n setEmail(email); \r\n setErrors({invalidEmail: null}); \r\n \r\n if(!email){\r\n email = '';\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n if(email.length < 4) {\r\n setErrors({invalidEmail: \"Invalid email\"})\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n if (!pattern.test(email)) {\r\n setErrors({invalidEmail: \"Invalid email\"})\r\n setIsEmailValid(false);\r\n return;\r\n }\r\n\r\n setErrors({invalidEmail: null})\r\n setIsEmailValid(true);\r\n }\r\n\r\n const renderEmailLabel = () => {\r\n if (!isEmailValid) {\r\n return
;\r\n } else {\r\n return
;\r\n }\r\n }\r\n\r\n const isFormValidated = () => {\r\n return isEmailValid;\r\n }\r\n\r\n const renderRegistrationConfirmation = () => {\r\n if (isConfirmationRedirect) {\r\n return ;\r\n }\r\n }\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n let result = await authenticationService.resetPassword(email);\r\n console.log(result);\r\n if(result.length > 1){\r\n setErrors({invalidEmail: result})\r\n setConfirmationRedirect(false);\r\n return;\r\n }\r\n\r\n setConfirmationRedirect(true);\r\n }\r\n\r\n return (\r\n
\r\n

Forgot credentials

\r\n {renderEmailLabel()}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {errors[\"invalidEmail\"]} \r\n {renderRegistrationConfirmation()}\r\n
\r\n )\r\n }\r\n export default ForgotCredentials","import { useState } from 'react';\r\nimport { Text } from 'react-native';\r\nimport helperUtil from '../shared/Util'\r\nimport LoginComponent from './Login';\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\n\r\nfunction Activate() {\r\n const [isConfirmationSuccess, setIsConfirmationSuccess] = useState(false); \r\n const [isParseSuccess, setIsParseSuccess] = useState(false);\r\n const [isTokenExpired, setTokenExpired] = useState(false);\r\n const [status, setStatus] = useState(true);\r\n const [showLogin, setShowLogin] = useState(false);\r\n \r\n const handleLogin = event => {\r\n setShowLogin(true);\r\n window.helloComponent.openModal(); \r\n }\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const renderInfo = () => {\r\n if(isConfirmationSuccess){\r\n return Your email has been successfully confirmed;\r\n }\r\n \r\n if (isParseSuccess && !isTokenExpired && status) {\r\n return We are trying to activate your account. Please stand by;\r\n }\r\n\r\n if(isTokenExpired){\r\n return Your token has expired\r\n }\r\n\r\n if(!isParseSuccess || !isConfirmationSuccess) {\r\n return There was an error during the activation. Please try again after some time or try to re-register\r\n }\r\n }\r\n\r\n const onPageLoad = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n\r\n if(!parsed || !parsed.email || !parsed.token) {\r\n setIsParseSuccess(false);\r\n return;\r\n }\r\n\r\n setIsParseSuccess(true);\r\n\r\n const data = JSON.stringify({ email: parsed.email, token: parsed.token, password: ''});\r\n\r\n fetch(SERVER_URL + 'api/RegisterUser/ActivateEmail/', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response); \r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.isTokenExpired){\r\n setTokenExpired(true);\r\n setStatus(false);\r\n return;\r\n }\r\n \r\n if(!data.isEmailConfirmed) {\r\n setTokenExpired(false);\r\n setIsConfirmationSuccess(false);\r\n setStatus(false);\r\n return;\r\n }\r\n\r\n if(!data.status)\r\n {\r\n setIsConfirmationSuccess(false);\r\n setStatus(false);\r\n setTokenExpired(false);\r\n console.log(data.status);\r\n return;\r\n }\r\n\r\n console.log(data.status);\r\n setTokenExpired(false);\r\n setIsConfirmationSuccess(true);\r\n setStatus(true);\r\n handleLogin();\r\n \r\n }).catch(function(error) {\r\n console.log(error);\r\n setStatus(false);\r\n });\r\n }\r\n\r\n return (\r\n
\r\n

\r\n {renderInfo()}\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default Activate","import helperUtil from 'util'\r\nimport authenticationService from './authentication.service'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport axios from \"axios\";\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const donationService = {\r\n getDonations,\r\n getPayPalTransations,\r\n getPayPalBalances\r\n};\r\n\r\nfunction formatDate(date) {\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(date, format);\r\n}\r\n\r\nasync function getDonations(startDate, endDate) {\r\n let clientId = authenticationService.getUserID();\r\n startDate = formatDate(startDate);\r\n endDate = formatDate(endDate);\r\n let donations = undefined;\r\n await fetch(SERVER_URL + 'api/ContactDonations/getDonations/' + clientId + '/' + startDate + \"/\" + endDate + \"/\" + SHUL)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n donations = data;\r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return donations;\r\n}\r\n\r\nasync function getPayPalBalances() {\r\n console.log('getPayPalBalances');\r\n\r\n let clientId = authenticationService.getUserID();\r\n \r\n const formData = new FormData();\r\n formData.append(\"userId\", clientId);\r\n formData.append(\"entity\", SHUL);\r\n\r\n try {\r\n const res = await axios.post(SERVER_URL + 'api/PayPalAdmin/GetBalances', formData);\r\n if(res.data){\r\n console.log('ok response');\r\n return res.data;\r\n }\r\n\r\n if(!res.data){\r\n console.log('not ok response');\r\n return false;\r\n }\r\n } catch (ex) {\r\n console.log('exception');\r\n console.log(ex);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nasync function getPayPalTransations(startDate, endDate) {\r\n console.log('getPayPalTransations');\r\n \r\n let clientId = authenticationService.getUserID();\r\n startDate = formatDate(startDate);\r\n endDate = formatDate(endDate);\r\n \r\n const formData = new FormData();\r\n formData.append(\"userId\", clientId);\r\n formData.append(\"startDate\", startDate);\r\n formData.append(\"endDate\", endDate);\r\n formData.append(\"entity\", SHUL);\r\n \r\n try {\r\n const res = await axios.post(SERVER_URL + 'api/PayPalAdmin/GetTransactions', formData);\r\n if(res.data){\r\n console.log('ok response');\r\n return res.data;\r\n }\r\n\r\n if(!res.data){\r\n console.log('not ok response');\r\n return false;\r\n }\r\n } catch (ex) {\r\n console.log('exception');\r\n console.log(ex);\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport default donationService","import React, { useState } from 'react';\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport 'react-day-picker/lib/style.css';\r\nimport DayPickerInput from 'react-day-picker/DayPickerInput'\r\nimport '../Home.css';\r\nimport moment from 'moment'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport Button from 'react-bootstrap/Button';\r\nimport donationService from '../../shared/services/donationService'\r\nimport Table from 'react-bootstrap/Table'\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport { Text } from 'react-native';\r\nimport {Link } from \"react-router-dom\";\r\nimport helperUtil from '../../shared/Util'\r\n\r\nfunction UserDonations() {\r\n const [firstName, setFirstName] = useState('');\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(new Date());\r\n const [donations, setDonations] = useState([]);\r\n const [total, setTotal] = useState(0);\r\n const [serverError, setServerError] = useState(false);\r\n\r\n React.useEffect(() => {\r\n const populateInitialDonations = async () => {\r\n let beginDate = new Date((new Date()).getFullYear(), 0, 1);\r\n let donations = await donationService.getDonations(beginDate, new Date());\r\n setServerError(false);\r\n if(donations === null || donations === undefined){\r\n setServerError(true);\r\n return;\r\n }\r\n setDonations(donations);\r\n let total = donations.reduce((result,v) => result += v.amount , 0 ); \r\n setTotal(total);\r\n }\r\n\r\n async function fetchData() {\r\n let firstName = authenticationService.getUserFirstName();\r\n setFirstName(firstName);\r\n populateInitialDate();\r\n await populateInitialDonations();\r\n }\r\n fetchData();\r\n \r\n }, []);\r\n\r\n const populateInitialDate = () => {\r\n let initialDate = new Date((new Date()).getFullYear(), 0, 1);\r\n setStartDate(initialDate);\r\n }\r\n\r\n const renderWelcomeHeader = () => {\r\n if(!authenticationService.isUserLoggedIn()){\r\n return ;\r\n }\r\n\r\n const handleFilter = async event => {\r\n event.preventDefault();\r\n let donations = await donationService.getDonations(startDate, endDate);\r\n setDonations(donations); \r\n console.log(donations);\r\n }\r\n\r\n const renderFilterButton = () => {\r\n return ();\r\n }\r\n\r\n const renderHeader = () => {\r\n if(!firstName || firstName.length === 0){\r\n return;\r\n }\r\n\r\n let lastCharacter = firstName.slice(-1);\r\n let header = firstName + (lastCharacter === 's' || lastCharacter === 'S' ? \"'\" : \"'s\");\r\n\r\n return

{header} recorded donations

;\r\n }\r\n\r\n const formatReturnedDate = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const renderStartDate = () => {\r\n const FORMAT = 'MM/dd/yyyy';\r\n if(!startDate){\r\n return;\r\n }\r\n\r\n return {\r\n if(moment.isDate(day)){\r\n setStartDate(day)\r\n } \r\n }\r\n } />; \r\n }\r\n\r\n const renderEndtDate = () => {\r\n const FORMAT = 'MM/dd/yyyy';\r\n return {\r\n if(moment.isDate(day)){\r\n setEndDate(day)\r\n }\r\n console.log(endDate)\r\n }\r\n } />; \r\n }\r\n\r\n const renderDonation = (donation, index) => {\r\n return (\r\n \r\n ${donation.amount}\r\n {formatReturnedDate(donation.date)}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderTable = () => {\r\n if(serverError){\r\n return (\r\n
\r\n There seems to be a problem on our end\r\n

\r\n Please Contact Us\r\n

\r\n );\r\n }\r\n\r\n if(!donations){\r\n return;\r\n }\r\n\r\n if(donations.length === 0){\r\n return (\r\n
\r\n

\r\n We currently cannot locate any donations recorded to you within the given date range\r\n

\r\n Please try to redefine the date range and try again\r\n

\r\n If you still having trouble please Contact Us\r\n

\r\n );\r\n } \r\n\r\n return (\r\n
\r\n

\r\n

\r\n \r\n \r\n \r\n Amout\r\n Date\r\n Total: ${total}\r\n \r\n \r\n \r\n {donations.map(renderDonation)}\r\n \r\n
\r\n

\r\n );\r\n }\r\n\r\n return (\r\n
\r\n
\r\n {renderHeader()} \r\n
\r\n
\r\n \r\n {renderStartDate()}\r\n
\r\n
\r\n \r\n {renderEndtDate()}\r\n
\r\n
\r\n {renderFilterButton()} \r\n
\r\n
\r\n {renderTable()} \r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderWelcomeHeader()}\r\n
\r\n );\r\n}\r\n\r\nexport default UserDonations;","import React, { useState } from 'react';\r\nimport Button from 'react-bootstrap/Button';\r\nimport authenticationService from '../shared/services/authentication.service'\r\nimport LoginComponent from './Login';\r\n\r\nfunction PasswordReset() {\r\n const [password, setPassword] = useState('');\r\n const [isPasswordValid, setPasswordValid] = useState(true);\r\n const [isParseSuccess, setIsParseSuccess] = useState(false);\r\n const [confirmPassword, setConfirmPassword] = useState('');\r\n const [isConfirmPasswordValid, setConfirmPasswordValid] = useState(true);\r\n const [errors, setErrors] = useState({});\r\n const [email, setEmail] = useState('');\r\n const [token, setToken] = useState('');\r\n const [success, setsuccess] = useState(false);\r\n const [showLogin, setShowLogin] = useState(false);\r\n\r\n const handleLogin = event => {\r\n setShowLogin(true);\r\n window.helloComponent.openModal(); \r\n }\r\n\r\n const handlePasswordChange = async(event) => {\r\n let password = event.target.value;\r\n setPassword(password);\r\n setErrors({passwordTooShort: null})\r\n \r\n if(!password){\r\n password = '';\r\n setPasswordValid(true);\r\n return;\r\n }\r\n \r\n if(password.length < 7){\r\n setErrors({passwordTooShort: 'Password is too short'})\r\n setPasswordValid(false);\r\n return;\r\n }\r\n \r\n setPasswordValid(true);\r\n let doMacth = doPasswordsMatch(password, confirmPassword);\r\n if(!doMacth){\r\n setErrors({confirmPasswordDoesnotMatch: \"Passwords do not match\"});\r\n }\r\n setConfirmPasswordValid(doMacth);\r\n }\r\n\r\n const handleConfirmPasswordChange = async(event) => {\r\n let confirmPassword = event.target.value;\r\n setConfirmPassword(confirmPassword);\r\n setErrors({confirmPasswordTooShort: null})\r\n \r\n if(!confirmPassword){\r\n confirmPassword = '';\r\n setConfirmPasswordValid(true);\r\n return;\r\n }\r\n \r\n if(confirmPassword.length < 7){\r\n setErrors({confirmPasswordTooShort: 'Confirm Password is too short'})\r\n setConfirmPasswordValid(false);\r\n return;\r\n }\r\n \r\n setConfirmPasswordValid(true);\r\n let doMacth = doPasswordsMatch(password, confirmPassword);\r\n if(!doMacth){\r\n setErrors({confirmPasswordDoesnotMatch: \"Passwords do not match\"});\r\n }\r\n setConfirmPasswordValid(doMacth);\r\n }\r\n\r\n const doPasswordsMatch = (password, confirmPassword) => {\r\n return password === confirmPassword; \r\n }\r\n\r\n const renderPasswordLabel = () => {\r\n if(!password || password.length === 0)\r\n {\r\n return
;\r\n } \r\n\r\n if (!isPasswordValid) {\r\n return
;\r\n } \r\n \r\n return
;\r\n \r\n }\r\n\r\n const renderSuccess = () => {\r\n if(success){\r\n console.log('renderSuccess');\r\n return (\r\n
\r\n
Your password was successfuly reset
\r\n \r\n
\r\n )\r\n }\r\n }\r\n\r\n const renderConfirmPasswordLabel = () => {\r\n if(!confirmPassword || confirmPassword.length === 0)\r\n {\r\n return
;\r\n } \r\n\r\n if (!isPasswordValid) {\r\n return
;\r\n } \r\n \r\n return
; \r\n }\r\n\r\n const isFormValidated = () => {\r\n if(!password || !confirmPassword || !isParseSuccess || !email || !token){\r\n return false;\r\n }\r\n\r\n return (isPasswordValid && isConfirmPasswordValid && doPasswordsMatch(password, confirmPassword));\r\n }\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const onPageLoad = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n\r\n if(!parsed || !parsed.email || !parsed.token) {\r\n setIsParseSuccess(false);\r\n return;\r\n }\r\n\r\n setIsParseSuccess(true);\r\n\r\n setEmail(parsed.email);\r\n setToken(parsed.token);\r\n }\r\n\r\n const handleSubmit = async event => {\r\n event.preventDefault();\r\n let result = await authenticationService.resetCredentials(email, token, password);\r\n console.log(result);\r\n if(result.length > 2){\r\n setErrors({failure: result})\r\n return;\r\n }\r\n\r\n setsuccess(true);\r\n handleLogin();\r\n console.log('success changing password');\r\n\r\n }\r\n\r\n return (\r\n
\r\n
\r\n

Reset Password

\r\n
\r\n {renderPasswordLabel()}\r\n \r\n {renderConfirmPasswordLabel()}\r\n \r\n

\r\n {errors[\"passwordTooShort\"]}\r\n {errors[\"confirmPasswordTooShort\"]}\r\n {errors[\"confirmPasswordDoesnotMatch\"]}\r\n {errors[\"failure\"]}\r\n
\r\n \r\n

\r\n {renderSuccess()}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default PasswordReset","import React from 'react'\r\n\r\nclass PasswordResetWasSent extends React.Component {\r\n render () {\r\n return (\r\n

Please check your email to follow a link to change the password

\r\n )\r\n }\r\n}\r\nexport default PasswordResetWasSent;","import React from 'react'\r\nimport authenticationService from '../shared/services/authentication.service'\r\nimport Textarea from 'react-expanding-textarea'\r\nimport './ContactUs.css';\r\nimport Button from 'react-bootstrap/Button'\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nclass ContactUsComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isUserLoggedIn : false,\r\n email : '',\r\n error : '',\r\n isEmailValid : false,\r\n subject : '',\r\n isSubjectValid : false,\r\n firstName : '',\r\n isFirstNameValid : false,\r\n contactUsSuccess : false\r\n };\r\n \r\n }\r\n\r\n renderContactUsSuccess = () => {\r\n if (this.state.contactUsSuccess) {\r\n return (); \r\n } \r\n }\r\n\r\n handleSubmit = async(event) => {\r\n event.preventDefault();\r\n\r\n let result = await authenticationService.sendContactUs(this.state.email, this.state.firstName, this.state.subject);\r\n if(!result || result.length < 2) {\r\n console.log('Successfully submitted');\r\n this.setState({contactUsSuccess : true});\r\n return;\r\n }\r\n\r\n console.log('Bad submission');\r\n this.setState({error : result});\r\n }\r\n\r\n componentDidMount() {\r\n this.setUserLoggedIn();\r\n console.log('calling componentDidMount');\r\n }\r\n\r\n setUserLoggedIn() { \r\n let isUserLoggedIn = authenticationService.isUserLoggedIn();\r\n if(isUserLoggedIn === this.state.isUserLoggedIn){\r\n return;\r\n }\r\n\r\n this.setState({isUserLoggedIn : isUserLoggedIn});\r\n if(isUserLoggedIn){\r\n let email = authenticationService.getUserEmail();\r\n let firstName = authenticationService.getUserFirstName();\r\n this.setState({email : email, firstName: firstName, isEmailValid : true, isFirstNameValid : true});\r\n }\r\n }\r\n\r\n renderError = () => {\r\n let error = this.state.error;\r\n if(error)\r\n return
;\r\n }\r\n\r\n handleEmailChange = async(event) => {\r\n let email = event.target.value;\r\n this.setState({email : email});\r\n this.setState({error : null});\r\n \r\n if(!email){\r\n this.setState({email : email, isEmailValid : false});\r\n return;\r\n }\r\n \r\n if(email.length < 4){\r\n this.setState({error : \"Invalid email\", isEmailValid : false});\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^((\"[\\w-\\s]+\")|([\\w-]+(?:\\.[\\w-]+)*)|(\"[\\w-\\s]+\")([\\w-]+(?:\\.[\\w-]+)*))(@((?:[\\w-]+\\.)*\\w[\\w-]{0,66})\\.([a-z]{2,6}(?:\\.[a-z]{2})?)$)|(@\\[?((25[0-5]\\.|2[0-4][0-9]\\.|1[0-9]{2}\\.|[0-9]{1,2}\\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\\]?$)/i);\r\n \r\n if (!pattern.test(email)) {\r\n this.setState({error : \"Invalid email\", isEmailValid : false});\r\n return;\r\n }\r\n \r\n this.setState({email : email, isEmailValid : true});\r\n }\r\n\r\n handleFirstChange = async(event) => {\r\n let firstName = event.target.value;\r\n this.setState({firstName : firstName});\r\n this.setState({error : null});\r\n \r\n if(!firstName){\r\n this.setState({firstName : firstName, isFirstNameValid : false});\r\n return;\r\n }\r\n \r\n if(firstName.length < 1){\r\n this.setState({isFirstNameValid : false});\r\n return;\r\n }\r\n\r\n this.setState({firstName : firstName, isFirstNameValid : true});\r\n }\r\n\r\n handleSubjectChange = async(event) => {\r\n let subject = event.target.value;\r\n this.setState({subject : subject});\r\n this.setState({error : null});\r\n \r\n if(!subject){\r\n this.setState({isSubjectValid : false});\r\n return;\r\n }\r\n \r\n if(subject.length < 4){\r\n this.setState({isSubjectValid : false});\r\n return;\r\n }\r\n\r\n this.setState({isSubjectValid : true});\r\n\r\n }\r\n\r\n renderEmailLabel = () => {\r\n if(!this.state.isEmailValid){\r\n console.log('invalid email');\r\n return (\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n );\r\n }\r\n\r\n renderSubjectLabel = () => {\r\n if(!this.state.isSubjectValid){\r\n return (\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n );\r\n }\r\n\r\n renderTextArea = () => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n renderUserEmail = () => {\r\n if(this.state.isUserLoggedIn){\r\n return (\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {this.renderEmailLabel()}\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n renderFirstNameLabel = () => {\r\n if(this.state.isUserLoggedIn){\r\n return;\r\n }\r\n\r\n if(!this.state.isFirstNameValid){\r\n return (\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n );\r\n }\r\n\r\n renderFirstName = () => {\r\n if(this.state.isUserLoggedIn){\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n {this.renderFirstNameLabel()}\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n isFormValidated = () => {\r\n return (this.state.isEmailValid && this.state.isSubjectValid && this.state.isFirstNameValid);\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n {this.renderFirstName()}\r\n {this.renderUserEmail()}\r\n {this.renderSubjectLabel()}\r\n {this.renderTextArea()}\r\n \r\n
\r\n
\r\n {this.renderError()}\r\n {this.renderContactUsSuccess()}\r\n
\r\n );\r\n }\r\n}\r\nexport default ContactUsComponent;","import React from 'react'\r\nimport { Text } from 'react-native';\r\nimport {Link } from \"react-router-dom\";\r\n\r\nclass HelpComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n \r\n } \r\n }\r\n\r\n handleSubmit = async(event) => {\r\n event.preventDefault();\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
We would certainly like to help you with any of your questions please click on the link below to contact us and somebody will get back to you
\r\n
    \r\n
  • Contact Us
  • \r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default HelpComponent;","import React from 'react'\r\n\r\nclass ContactUsSuccess extends React.Component {\r\n render () {\r\n return (\r\n
\r\n

Your inquiry has been submitted successfully

\r\n

Someone will contact you

\r\n
Thank you!
\r\n
\r\n )\r\n }\r\n}\r\nexport default ContactUsSuccess;","import React, { useState } from 'react';\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport './MenageRoles.css' \r\nimport Table from 'react-bootstrap/Table'\r\nimport AddCircle from '@material-ui/icons/AddCircle';\r\nimport Delete from '@material-ui/icons/Delete';\r\nimport Button from 'react-bootstrap/Button';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport 'react-confirm-alert/src/react-confirm-alert.css';\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nfunction MenageRoles() {\r\n const [roles, setRoles] = useState([]);\r\n const [isAddNewRole, setIsAddNewRole] = useState(false);\r\n const [newRole, setNewRole] = useState('');\r\n const [selectedRole, setSelectedRole] = useState('');\r\n \r\n React.useEffect(() => {\r\n\r\n async function fetchRoles() {\r\n let result = await authenticationService.getAllRoles();\r\n console.log(result);\r\n setRoles(result);\r\n }\r\n \r\n fetchRoles();\r\n }, []);\r\n\r\n const renderRole = (role, index) => {\r\n return (\r\n \r\n handleRole(role.id)}>{role.id}\r\n handleRole(role.id)}>{role.name}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const handleRole = (id) => {\r\n console.log(\"looking for \" + id)\r\n setSelectedRole(id);\r\n console.log('Selected role ');\r\n console.log( selectedRole);\r\n }\r\n\r\n const renderUsersInRole = () => {\r\n if(!selectedRole){\r\n return;\r\n }\r\n console.log('Trying to redirect to usersInRole');\r\n return ;\r\n }\r\n\r\n const deleteRole = async(id) => {\r\n console.log(\"deleting role \" + id)\r\n let result = await authenticationService.deleteRole(id);\r\n console.log(result);\r\n window.location.reload();\r\n }\r\n\r\n const handleDelete = async(id, name) => {\r\n confirmAlert({\r\n title: 'Confirm deletion',\r\n message: 'Are you sure to delete ' + name + '?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {deleteRole(id)}\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {console.log('no deletion called`')}\r\n }\r\n ]\r\n }); \r\n }\r\n\r\n const handleAddRole = () => {\r\n setIsAddNewRole(true);\r\n }\r\n\r\n const renderAddRole = () => {\r\n if(!isAddNewRole)\r\n {\r\n return;\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 const handleSubmit = async(event) => {\r\n event.preventDefault();\r\n let result = await authenticationService.addRole(newRole);\r\n console.log(result);\r\n window.location.reload();\r\n }\r\n\r\n const isFormValidated = () => {\r\n return newRole;\r\n }\r\n\r\n const handleNewRoleChange = async(event) => {\r\n let newRole = event.target.value;\r\n setNewRole(newRole); \r\n }\r\n\r\n const renderMainPage = (id) => {\r\n if(!authenticationService.isAdministrator()){\r\n return ;\r\n }\r\n } \r\n\r\n return (\r\n
\r\n {renderMainPage()}\r\n

Roles

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {roles.map(renderRole)}\r\n \r\n
IDName\r\n \r\n
\r\n {renderAddRole()}\r\n {renderUsersInRole()}\r\n
\r\n )\r\n}\r\n\r\nexport default MenageRoles","import React, { useState } from 'react';\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport './MenageRoles.css' \r\nimport Table from 'react-bootstrap/Table'\r\nimport 'react-confirm-alert/src/react-confirm-alert.css';\r\n\r\nfunction UsersInRoles(props) {\r\n //console.log(props.location.state.selectedRole);\r\n const [users, setUsers] = useState([]);\r\n let roleId = !props.location.state ? ' ' : props.location.state.selectedRole;\r\n \r\n React.useEffect(() => {\r\n if(!authenticationService.isUserLoggedIn()){\r\n return;\r\n }\r\n\r\n async function fetchUsers() {\r\n let result = await authenticationService.getUsersInRole(roleId);\r\n console.log(result);\r\n setUsers(result);\r\n }\r\n \r\n fetchUsers();\r\n }, [roleId]);\r\n\r\n const renderUser = (user, index) => {\r\n return (\r\n \r\n {index + 1}\r\n {user.userName}\r\n {user.email}\r\n \r\n )\r\n }\r\n\r\n return ( \r\n
\r\n

Users

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {users.map(renderUser)}\r\n \r\n
IDName
\r\n
\r\n )\r\n}\r\n\r\nexport default UsersInRoles","import helperUtil from 'util'\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\n\r\nexport const projectsService = {\r\n getAllUsers,\r\n addContractorProject,\r\n getAllContractorProjects,\r\n deleteContractorProject\r\n};\r\n\r\nasync function getAllUsers() {\r\n let users = {};\r\n\r\n await fetch(SERVER_URL + 'api/SourceContacts/getAll')\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n users = data;\r\n console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return users;\r\n}\r\n\r\nasync function addContractorProject(title, description) {\r\n const data = JSON.stringify({ title: title, description: description});\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ContractorProjects/AddContractorProject', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n result = data;\r\n }).catch(function(error) {\r\n console.log('There was an error during submission' + error);\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function deleteContractorProject(id) {\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ContractorProjects/deleteContractorProject/' + id)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n result = data;\r\n //console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function getAllContractorProjects() {\r\n let projects = {};\r\n\r\n await fetch(SERVER_URL + 'api/ContractorProjects/getAllContractorProjects/')\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n projects = data;\r\n console.log(data);\r\n }).catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return projects;\r\n}\r\n\r\nexport default projectsService;","import React from 'react'\r\nimport authenticationService from '../../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport projectsService from '../../../shared/services/projectsService'\r\nimport Table from 'react-bootstrap/Table'\r\nimport '../MenageRoles.css' \r\nimport { Link } from 'react-router-dom'\r\n\r\nclass MenageProjects extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n users : [],\r\n clickcounter: 1\r\n }\r\n \r\n }\r\n\r\n async componentDidMount() {\r\n this.setState({\r\n users : await projectsService.getAllUsers()\r\n });\r\n }\r\n\r\n renderUser = (user, index) => {\r\n return (\r\n \r\n {user.firstName}\r\n {user.email}\r\n \r\n );\r\n }\r\n showProjects(user) {\r\n console.log(user);\r\n \r\n \r\n }\r\n\r\n render() {\r\n if(!authenticationService.isAdministrator()){\r\n return ;\r\n }\r\n\r\n //console.log(\"UserDonations token \" + this.state.token);\r\n return (\r\n
\r\n Menage Projects\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.users.map(this.renderUser)}\r\n \r\n
IDName
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default MenageProjects;","import React from 'react'\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nclass Projects extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n firstName : '',\r\n email : ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n console.log(this.props.location.state.user);\r\n let user = this.props.location.state.user;\r\n this.setState({\r\n firstName : user.firstName\r\n });\r\n }\r\n\r\n renderWelcomeHeader() { \r\n return (\r\n
\r\n

{this.state.firstName}'s projects

\r\n
\r\n );\r\n }\r\n\r\n render() {\r\n if(!authenticationService.isUserLoggedIn()){\r\n return ;\r\n }\r\n\r\n //console.log(\"UserDonations token \" + this.state.token);\r\n return (\r\n
\r\n {this.renderWelcomeHeader()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Projects;","import React from 'react'\r\nimport authenticationService from '../../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport Table from 'react-bootstrap/Table'\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport AddCircle from '@material-ui/icons/AddCircle';\r\n\r\nclass MenageUserProjects extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n firstName : '',\r\n email : '',\r\n isAddNewProject: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n console.log(this.props.location.state.user);\r\n let user = this.props.location.state.user;\r\n this.setState({\r\n firstName : user.firstName\r\n });\r\n }\r\n\r\n renderWelcomeHeader() { \r\n return (\r\n
\r\n

Menage {this.state.firstName}'s projects

\r\n
\r\n );\r\n }\r\n\r\n handleAddProject = () => {\r\n this.setState({isAddNewProject : true});\r\n console.log('handleAddProject');\r\n }\r\n\r\n renderAddNewProject = () => {\r\n if(!this.state.isAddNewProject)\r\n {\r\n return;\r\n }\r\nconsole.log('renderAddNewProject');\r\n return (\r\n
\r\n Put your code here\r\n
\r\n )\r\n }\r\n\r\n render() {\r\n if(!authenticationService.isUserLoggedIn() || !authenticationService.isAdministrator()){\r\n return ;\r\n }\r\n\r\n return (\r\n
\r\n {this.renderWelcomeHeader()}\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 {this.renderAddNewProject()}\r\n
TitleDescription\r\n \r\n
\r\n

\r\n );\r\n }\r\n}\r\n\r\nexport default MenageUserProjects;","import React, { useState } from 'react';\r\nimport Table from 'react-bootstrap/Table'\r\nimport '../MenageRoles.css'\r\nimport AddCircle from '@material-ui/icons/AddCircle';\r\nimport Textarea from 'react-expanding-textarea'\r\nimport Button from 'react-bootstrap/Button'\r\nimport projectsService from '../../../shared/services/projectsService'\r\nimport Delete from '@material-ui/icons/Delete';\r\nimport Edit from '@material-ui/icons/Edit';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport authenticationService from '../../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\n\r\nfunction ContractorProjects() {\r\n const [projects, setProjects] = useState([]);\r\n const [isAddProject, setIsAddProject] = useState(false);\r\n const [newProject, setNewProject] = useState('');\r\n const [projectDescription, setProjectDescription] = useState('');\r\n\r\n const handleAddProject = () => {\r\n setIsAddProject(true);\r\n }\r\n\r\n const handleNewProjectChange = async(event) => {\r\n let newProject = event.target.value;\r\n setNewProject(newProject); \r\n }\r\n\r\n const handleDescriptionChange = async(event) => {\r\n let projectDescription = event.target.value;\r\n setProjectDescription(projectDescription); \r\n }\r\n\r\n const renderDescriptionTextArea = () => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const handleSubmit = async(event) => {\r\n event.preventDefault();\r\n let result = await projectsService.addContractorProject(newProject,projectDescription);\r\n console.log(result);\r\n if(result)\r\n {\r\n window.location.reload(); \r\n }\r\n }\r\n\r\n const isFormValidated = () => {\r\n return newProject && projectDescription;\r\n }\r\n\r\n const renderAddNewProject = () => {\r\n if(!isAddProject)\r\n {\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n \r\n {renderDescriptionTextArea()}\r\n

\r\n

\r\n \r\n
\r\n
\r\n )\r\n }\r\n\r\n React.useEffect(() => {\r\n\r\n async function fetchContractorProjects() {\r\n let result = await projectsService.getAllContractorProjects();\r\n console.log(result);\r\n setProjects(result);\r\n }\r\n \r\n fetchContractorProjects();\r\n }, []);\r\n\r\n const renderProject = (project, index) => {\r\n return (\r\n \r\n handleProject(project.id)}>{project.title}\r\n handleProject(project.id)}>{project.description}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const handleProject = (id) => {\r\n console.log(\"looking for \" + id)\r\n \r\n }\r\n\r\n const handleDelete = async (id, title) => {\r\n confirmAlert({\r\n title: 'Confirm deletion',\r\n message: 'Are you sure to delete ' + title + ' project?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {deleteProject(id)}\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {console.log('no deletion called`')}\r\n }\r\n ]\r\n });\r\n }\r\n\r\n const deleteProject = async (id) => {\r\n console.log(\"deleting \" + id);\r\n let result = await projectsService.deleteContractorProject(id);\r\n if(result)\r\n {\r\n window.location.reload(); \r\n }\r\n }\r\n\r\n const renderMainPage = (id) => {\r\n if(!authenticationService.isAdministrator()){\r\n return ;\r\n }\r\n } \r\n\r\n return (\r\n
\r\n {renderMainPage()}\r\n

Contractor Projects

\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {projects.map(renderProject)}\r\n \r\n {renderAddNewProject()}\r\n
TitleDescription\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default ContractorProjects","import Modal from 'react-bootstrap/Modal'\r\nimport { Text, View, SafeAreaView, StyleSheet, TextInput } from 'react-native';\r\nimport React, { useState } from 'react';\r\nimport useViewport from '../../../shared/ViewportProvider'\r\nimport AdapterDateFns from '@material-ui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@material-ui/lab/LocalizationProvider';\r\nimport MobileTimePicker from '@material-ui/lab/MobileTimePicker';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport DesktopTimePicker from '@material-ui/lab/DesktopTimePicker';\r\nimport Button from 'react-bootstrap/Button';\r\nimport UpdateSharp from '@material-ui/icons/UpdateOutlined';\r\nimport dateFnsFormat from 'date-fns/format';\r\n\r\nexport function DayEventDlg({onClose, showModal, dlgTitle, onDayEventSubmit, eventInfo}) {\r\n const titlePlaceHolder = \"Enter the event title\";\r\n const [eventTime, setEventTime] = useState(new Date('2018-01-01T00:00:00.000Z'));\r\n const [description, onChangeDescription] = useState('');\r\n const [title, setTitle] = useState('');\r\n\r\n const closeModal = () => {\r\n onClose();\r\n }\r\n\r\n const onShowModal = () => {\r\n onChangeDescription(eventInfo.description);\r\n if(eventInfo.action === 'edit') {\r\n console.log(eventInfo)\r\n setEventTime(eventInfo.editDate)\r\n setTitle(eventInfo.title)\r\n console.log(title)\r\n }\r\n } \r\n\r\n const handleTitleChange = async(event) => {\r\n let value = event.target.value;\r\n setTitle(value); \r\n }\r\n\r\n const getFullDateTime = () => {\r\n let eventDate = eventInfo.action === 'add' ? eventInfo.date : eventInfo.editDate;\r\n console.log(eventInfo)\r\n console.log(eventInfo.action)\r\n console.log(eventDate)\r\n let newDate = \r\n new Date(eventDate.getFullYear(), \r\n eventDate.getMonth(), \r\n eventDate.getDate(), \r\n eventTime.getHours(), \r\n eventTime.getMinutes(), \r\n eventTime.getSeconds()) \r\n return newDate;\r\n }\r\n\r\n const renderTimeControl = () => {\r\n if(IsMobile()){\r\n return (\r\n \r\n {\r\n setEventTime(newValue);\r\n }}\r\n renderInput={(params) => }\r\n />\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n setEventTime(newValue);\r\n }}\r\n renderInput={(params) => }\r\n />\r\n \r\n );\r\n }\r\n\r\n const isSubmitValid = () => {\r\n if(!title || title.length === 0){\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function IsMobile(){\r\n const { width } = useViewport();\r\n const breakpoint = 620;\r\n \r\n return width < breakpoint;\r\n }\r\n\r\n const formatEventTime = (eventTime) => {\r\n if(!eventTime){\r\n return '';\r\n }\r\n var lclDate = new Date(eventTime);\r\n const format = 'HH:mm';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const getFullDateTimeFormatted = () => {\r\n let date = getFullDateTime();\r\n if(!date){\r\n return null;\r\n }\r\n \r\n const format = 'MM/dd/yyyy HH:mm:ss';\r\n return dateFnsFormat(date, format);\r\n }\r\n\r\n const onSubmit = async () => {\r\n const formattedEventInfo = {\r\n action: eventInfo.action,\r\n ID: eventInfo.Id,\r\n title: title,\r\n eventTime: formatEventTime(eventTime),\r\n eventDate: getFullDateTime(),\r\n dateTimeStr: getFullDateTimeFormatted(),\r\n description: description };\r\n\r\n onDayEventSubmit(formattedEventInfo)\r\n }\r\n\r\n const renderUpdateBtn = () => {\r\n if(!IsMobile()){\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n const styles = StyleSheet.create({\r\n input: {\r\n height: 300,\r\n borderWidth: 1,\r\n padding: 10,\r\n },\r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n });\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {dlgTitle}\r\n \r\n \r\n \r\n \r\n Title: \r\n \r\n \r\n \r\n \r\n \r\n Event time: \r\n \r\n \r\n {renderTimeControl()}\r\n \r\n \r\n Description:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {renderUpdateBtn()}\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default DayEventDlg;","import helperUtil from 'util'\r\nimport uuid from 'react-native-uuid';\r\n\r\nconst SERVER_URL = process.env.REACT_APP_SERVER_URL;\r\nconst SHUL = process.env.REACT_APP_SHUL;\r\n\r\nexport const schedulerService = {\r\n addDayEvent,\r\n getDaySchedule,\r\n deleteEvent,\r\n updateDayEvent,\r\n updateWeekEvent,\r\n getWeeklyEvent,\r\n copyDayEvents\r\n};\r\n\r\nasync function addDayEvent(eventInfo) {\r\n const data = JSON.stringify({ \r\n id: eventInfo.ID,\r\n date: eventInfo.dateTimeStr, \r\n description: eventInfo.description, \r\n title: eventInfo.title, \r\n eventTime: eventInfo.eventTime, \r\n isCancelled: eventInfo.iscancelled,\r\n isAllDay: eventInfo.isallday,\r\n source: SHUL,\r\n isWeek: false,\r\n isHTML: false});\r\n\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/AddEvent', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.status){\r\n result = true; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n \r\n return result;\r\n}\r\n\r\nasync function getDaySchedule(date) {\r\n console.log('about to call getDaySchedule ' + SERVER_URL + 'api/ShulSchedule/getDaySchedule/' + SHUL + '/' + date);\r\n let scheduleEvents = {};\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/getDaySchedule/' + SHUL + '/' + date)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n scheduleEvents = data; \r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return scheduleEvents;\r\n}\r\n\r\nasync function deleteEvent(id) {\r\n let result = false;\r\n\r\n console.log('about to call getDaySchedule ' + SERVER_URL + 'api/ShulSchedule/DeleteEvent/' + id);\r\n \r\n await fetch(SERVER_URL + 'api/ShulSchedule/DeleteEvent/' + id)\r\n .then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response;\r\n }).then(function(data) {\r\n console.log(data);\r\n result = data; \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n\r\n return result;\r\n}\r\n\r\nasync function updateDayEvent(eventInfo) {\r\n const data = JSON.stringify({ \r\n id: eventInfo.ID,\r\n date: eventInfo.dateTimeStr, \r\n description: eventInfo.description, \r\n title: eventInfo.title, \r\n eventTime: eventInfo.eventTime, \r\n isCancelled: eventInfo.iscancelled,\r\n isAllDay: eventInfo.isallday,\r\n source: SHUL,\r\n isWeek: false,\r\n isHTML: false});\r\n\r\n console.log(data)\r\n\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/UpdateEvent', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.status){\r\n result = true; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n \r\n return result;\r\n}\r\n\r\nasync function updateWeekEvent(text, startDate, endDate, isHTML) {\r\n console.log(text + ' ' + startDate + ' ' + endDate + ' ' + isHTML);\r\n const data = JSON.stringify({ \r\n id: uuid.v1(),\r\n date: '', \r\n description: text, \r\n title: '', \r\n eventTime: '', \r\n isCancelled: false,\r\n isAllDay: false,\r\n source: SHUL,\r\n isWeek: true,\r\n isHTML: isHTML,\r\n startDate: startDate,\r\n endDate: endDate});\r\n\r\n console.log(data)\r\n\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/ManageWeeklyEvent', { method: 'POST', body: data, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data.status){\r\n result = true; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n \r\n return result;\r\n}\r\n\r\nasync function getWeeklyEvent(startDate, endDate) {\r\n console.log('about to call getWeeklyEvent ' + SERVER_URL + 'api/ShulSchedule/getWeeklyEvent/' + startDate + '/' + endDate + '/' + SHUL);\r\n let scheduleEvent = null;\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/getWeeklyEvent/' + startDate + '/' + endDate + '/' + SHUL)\r\n .then(function(response){\r\n return response.json();\r\n }).then(function(data) {\r\n console.log('getWeeklyEvent');\r\n console.log(data);\r\n scheduleEvent = data; \r\n })\r\n .catch(function(error) {\r\n console.log(error);\r\n });\r\n\r\n return scheduleEvent;\r\n}\r\n\r\nasync function copyDayEvents(date, data) {\r\n console.log('copyDayEvents');\r\n console.log('about to call api/ShulSchedule/DayEventsCopy ');\r\n\r\n const dataDayEventsCopy = JSON.stringify({ \r\n fromDate: date,\r\n toDate: data,\r\n entity: SHUL\r\n });\r\n\r\n let result = false;\r\n\r\n await fetch(SERVER_URL + 'api/ShulSchedule/DayEventsCopy', { method: 'POST', body: dataDayEventsCopy, headers: {\r\n 'Content-Type': 'application/json',\r\n }}).then(helperUtil.handleErrors)\r\n .then(function(response) { \r\n console.log(response);\r\n return response.json();\r\n }).then(function(data) {\r\n console.log(data);\r\n if(data){\r\n result = true; \r\n } \r\n }).catch(function(error) {\r\n console.log(error);\r\n result = false;\r\n });\r\n \r\n return result;\r\n}\r\nexport default schedulerService;","import Modal from 'react-bootstrap/Modal'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport React, { useState } from 'react';\r\nimport helperUtil from '../../../shared/Util'\r\nimport Button from 'react-bootstrap/Button';\r\nimport UpdateSharp from '@material-ui/icons/UpdateOutlined';\r\nimport { StyleSheet, Text, View } from 'react-native';\r\nimport SkipNext from '@material-ui/icons/SkipNext';\r\n\r\nexport function CopyDayEventsDlg({ showModal, onClose, date, onSubmit}) {\r\n const [datesArray, setDatesArray] = useState([]);\r\n const [, updateState] = React.useState();\r\n const forceUpdate = React.useCallback(() => updateState({}), []);\r\n\r\n const closeModal = () => {\r\n onClose();\r\n }\r\n\r\n const onShowModal = () => {\r\n buildForwardCalendarArray(date); \r\n }\r\n\r\n const getDlgTitle = () => {\r\n if (!date) {\r\n return 'Copy Day Events';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM/dd/yyyy';\r\n var dateFormatted = dateFnsFormat(lclDate, format);\r\n return 'Copy Events from ' + dateFormatted;\r\n }\r\n\r\n const buildForwardCalendarArray = (startDate) => {\r\n setDatesArray([]);\r\n var list = []\r\n var addedDate = new Date(startDate)\r\n const format = 'dd yyyy';\r\n for (var i = 0; i < 7; i++) {\r\n addedDate.setDate(addedDate.getDate() + 1);\r\n \r\n var dayOfWeek = helperUtil.getDayOfTheWeek(addedDate); \r\n var shortMonth = addedDate.toLocaleString('en-us', { month: 'short' });\r\n var dateFormatted = dateFnsFormat(addedDate, format);\r\n var title = dayOfWeek + ' ' + shortMonth + ' ' + dateFormatted;\r\n\r\n const data = {\r\n title: title,\r\n date: addedDate,\r\n checked: false,\r\n copied: false,\r\n isError: false\r\n };\r\n\r\n list.push(data);\r\n addedDate = new Date(addedDate);\r\n }\r\n setDatesArray(list); \r\n }\r\n \r\n const onCopyDateChecked = (copyDate, index) => {\r\n copyDate.checked = !copyDate.checked;\r\n if(!copyDate.checked) {\r\n copyDate.copied = false;\r\n copyDate.isError = false;\r\n }\r\n forceUpdate();\r\n }\r\n \r\n const renderDate = (date, index) => {\r\n return ( \r\n
\r\n onCopyDateChecked(date)} />\r\n \r\n
\r\n );\r\n }\r\n\r\n const renderDates = () => {\r\n return (
{ datesArray.map(renderDate) }
);\r\n }\r\n\r\n const handleSubmitClick = () => {\r\n for (let i = 0; i < datesArray.length; i++) {\r\n datesArray[i].copied = false;\r\n datesArray[i].isError = false;\r\n }\r\n\r\n var dates = datesArray.filter((d) => d.checked === true);\r\n onSubmit(dates); \r\n }\r\n\r\n const next7DaysClick = () => {\r\n var startDate = datesArray[datesArray.length - 1].date;\r\n buildForwardCalendarArray(startDate);\r\n }\r\n\r\n const isSubmitValid = () => {\r\n var date = datesArray.find((d) => d.checked === true);\r\n return (date);\r\n }\r\n\r\n const styles = StyleSheet.create({\r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n }\r\n });\r\n\r\n const renderButtons = () => {\r\n if (!helperUtil.IsMobile()) {\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 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 return (\r\n
\r\n \r\n \r\n \r\n {getDlgTitle()}\r\n \r\n \r\n \r\n {renderDates()}\r\n {renderButtons()}\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CopyDayEventsDlg;","import React, { useState, useCallback } from 'react';\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport '../../Home.css';\r\nimport { View, SafeAreaView, StyleSheet, TextInput, Text } from 'react-native';\r\nimport Button from 'react-bootstrap/Button';\r\nimport DayEventDlg from './DayEventDlg'\r\nimport AddCircle from '@material-ui/icons/AddCircle';\r\nimport UpdateSharp from '@material-ui/icons/UpdateOutlined';\r\nimport uuid from 'react-native-uuid';\r\nimport schedulerService from '../../../shared/services/schedulerService'\r\nimport Delete from '@material-ui/icons/Delete';\r\nimport Edit from '@material-ui/icons/Edit';\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport helperUtil from '../../../shared/Util'\r\nimport FileCopyRoundedIcon from '@material-ui/icons/FileCopyRounded';\r\nimport CopyDayEventsDlg from './CopyDayEventsDlg';\r\n\r\nexport const dayScheduler = {\r\n DayScheduler\r\n};\r\n\r\nexport function DayScheduler({ isDaySchedule, date }) {\r\n const [text, onChangeText] = React.useState(\"\");\r\n const [showDayEventDlg, setShowDayEventDlg] = useState(false);\r\n const [eventAction, setEventAction] = useState('');\r\n const [events, setEvents] = useState([]);\r\n const [currentEvent, setCurrentEvent] = useState({});\r\n const [fullDayEventId, setFullDayEventId] = useState('');\r\n const [showCopyDayEventsDlg, setShowCopyDayEventsDlg] = useState(false);\r\n \r\n const getEvents = useCallback(async () => {\r\n try {\r\n let shulEvents = await schedulerService.getDaySchedule(formatDayDate(date));\r\n setEvents(shulEvents);\r\n\r\n let allDay = shulEvents.find((e) => e.isAllDay === true);\r\n if (allDay) {\r\n onChangeText(allDay.description)\r\n }\r\n }\r\n catch (e) {\r\n\r\n }\r\n }, [date])\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n await getEvents()\r\n }\r\n fetchData();\r\n\r\n }, [getEvents]);\r\n\r\n const renderAddBtn = () => {\r\n if (!helperUtil.IsMobile()) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n const renderCopyEventsBtn = () => {\r\n if (!helperUtil.IsMobile()) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n const onDayEventDlgSubmit = async (eventInfo) => {\r\n setShowDayEventDlg(false);\r\n\r\n switch (eventInfo.action) {\r\n case 'add':\r\n await schedulerService.addDayEvent(eventInfo);\r\n break;\r\n case 'edit':\r\n console.log('editting event')\r\n console.log(eventInfo)\r\n await schedulerService.updateDayEvent(eventInfo)\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n await getEvents();\r\n console.log(events);\r\n }\r\n\r\n const renderUpdateBtn = () => {\r\n if (!helperUtil.IsMobile()) {\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n const renderEvent = (dayEvent) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n {dayEvent.title}\r\n \r\n \r\n \r\n \r\n {dayEvent.eventTime}\r\n \r\n \r\n \r\n \r\n {dayEvent.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 const removeFullDay = (events) => {\r\n try {\r\n return events.filter((e) => e.isAllDay === false)\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n const renderEvents = () => {\r\n if (!events || events.length === 0) {\r\n return;\r\n }\r\n\r\n let filteredEvents = removeFullDay(events);\r\n if (!filteredEvents || filteredEvents == null) {\r\n return (\r\n
\r\n
)\r\n }\r\n\r\n return (\r\n
\r\n {filteredEvents.map(renderEvent)}\r\n
)\r\n }\r\n\r\n const renderDaySchedule = () => {\r\n console.log('schedule to the day: ' + date);\r\n if (isDaySchedule) {\r\n return (\r\n
\r\n {renderEvents()}\r\n \r\n\r\n \r\n {renderAddBtn()}\r\n \r\n \r\n {renderCopyEventsBtn()}\r\n \r\n \r\n {renderUpdateBtn()}\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 return;\r\n }\r\n\r\n const styles = StyleSheet.create({\r\n input: {\r\n height: 300,\r\n marginLeft: 10,\r\n borderWidth: 1,\r\n padding: 10,\r\n },\r\n button: {\r\n alignItems: 'center',\r\n paddingVertical: 12,\r\n justifyContent: \"flex-end\",\r\n paddingHorizontal: 32,\r\n borderRadius: 4,\r\n elevation: 3,\r\n backgroundColor: 'black',\r\n width: 100\r\n },\r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n eventText: {\r\n marginLeft: 10,\r\n textAlign: 'left',\r\n backgroundColor: \"#F2F4F4\"\r\n }\r\n });\r\n\r\n const formatDayDate = (date) => {\r\n if (!date) {\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const renderDayEventDlg = () => {\r\n let dlgTitle;\r\n switch (eventAction) {\r\n case 'add':\r\n dlgTitle = 'Add event';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return \r\n }\r\n\r\n const renderCopyDayEventsDlg = () => {\r\n return \r\n }\r\n\r\n const handleDayEventClick = async (act, dayEvent) => {\r\n setEventAction(act);\r\n\r\n switch (act) {\r\n case 'add':\r\n handleEditAdd(act);\r\n return;\r\n case 'edit':\r\n handleEditEvent(act, dayEvent);\r\n return;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const handleCopyDayEventsClick = async () => {\r\n setShowCopyDayEventsDlg(true);\r\n }\r\n \r\n const handleEditAdd = (act) => {\r\n let lclEventId;\r\n lclEventId = uuid.v1();\r\n const currEnentInfo = {\r\n Id: lclEventId,\r\n action: act,\r\n description: '',\r\n date: date\r\n };\r\n\r\n setCurrentEvent(currEnentInfo);\r\n setShowDayEventDlg(true);\r\n }\r\n\r\n const handleEditEvent = (act, dayEvent) => {\r\n dayEvent.action = act;\r\n console.log(dayEvent.date);\r\n console.log(dayEvent.eventTime);\r\n var editDate = new Date(dayEvent.date + ' ' + dayEvent.eventTime);\r\n\r\n const currEnentInfo = {\r\n Id: dayEvent.id,\r\n action: act,\r\n description: dayEvent.description,\r\n date: dayEvent.date,\r\n eventTime: dayEvent.eventTime,\r\n isAllDay: dayEvent.isAllDay,\r\n isCancelled: dayEvent.isCancelled,\r\n source: dayEvent.source,\r\n title: dayEvent.title,\r\n editDate: editDate\r\n };\r\n\r\n setCurrentEvent(currEnentInfo);\r\n setShowDayEventDlg(true);\r\n }\r\n\r\n const getDateTimeFormatted = () => {\r\n const format = 'MM/dd/yyyy HH:mm:ss';\r\n return dateFnsFormat(date, format);\r\n }\r\n\r\n const deleteEvent = async (id) => {\r\n console.log(\"deleting event \" + id)\r\n let result = await schedulerService.deleteEvent(id);\r\n console.log(result);\r\n await getEvents();\r\n }\r\n\r\n const handleDeleteEvent = async (id, title) => {\r\n confirmAlert({\r\n title: 'Confirm deletion',\r\n message: 'Are you sure to delete ' + title + '?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => { deleteEvent(id) }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => { console.log('no deletion called`') }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n const handleFullDayEventClick = async () => {\r\n let iscancelled = false;\r\n if (!text || text.length === 0) {\r\n iscancelled = true;\r\n }\r\n\r\n let allDayId = fullDayEventId;\r\n if (!allDayId || allDayId.length === 0) {\r\n allDayId = uuid.v1();\r\n setFullDayEventId(allDayId);\r\n }\r\n\r\n const eventInfo = {\r\n action: 'add',\r\n ID: allDayId,\r\n title: '',\r\n eventTime: '',\r\n eventDate: date,\r\n dateTimeStr: getDateTimeFormatted(),\r\n description: text,\r\n iscancelled: iscancelled,\r\n isallday: true\r\n };\r\n\r\n\r\n await schedulerService.addDayEvent(eventInfo);\r\n }\r\n\r\n function onDayEventDlgClose() {\r\n console.log('calling on close');\r\n setShowDayEventDlg(false);\r\n }\r\n\r\n const onCopyDayEventsSubmit = async (dates) => {\r\n if (!dates) {\r\n return;\r\n }\r\n\r\n for (let i = 0; i < dates.length; i++) {\r\n if(dates[i].checked){\r\n console.log('checked');\r\n console.log(dates[i]);\r\n dates[i].copied = await schedulerService.copyDayEvents(date, dates[i].date);\r\n if(!dates[i].copied){\r\n dates[i].isError = true;\r\n }\r\n }\r\n } \r\n }\r\n\r\n function onCopyDayEventsDlgClose() {\r\n setShowCopyDayEventsDlg(false);\r\n }\r\n\r\n return (\r\n
\r\n {renderDayEventDlg()}\r\n {renderCopyDayEventsDlg()}\r\n {renderDaySchedule()}\r\n
\r\n );\r\n}\r\n\r\nexport default dayScheduler;","import { View, SafeAreaView, StyleSheet, TextInput, Text } from 'react-native';\r\nimport React, { useState, useCallback } from 'react';\r\nimport helperUtil from '../../../shared/Util'\r\nimport Button from 'react-bootstrap/Button';\r\nimport UpdateSharp from '@material-ui/icons/UpdateOutlined';\r\nimport schedulerService from '../../../shared/services/schedulerService'\r\n\r\nexport const weekScheduler = {\r\n WeekScheduler\r\n};\r\n\r\nexport function WeekScheduler({date}) {\r\n const [text, onChangeText] = React.useState(\"\");\r\n const [isHTML, setIsHTML] = useState(false);\r\n\r\n const styles = StyleSheet.create({\r\n input: {\r\n height: 300,\r\n marginLeft: 10,\r\n borderWidth: 1,\r\n padding: 10,\r\n },\r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n }\r\n });\r\n\r\n const getWeekly = useCallback(async () => {\r\n try {\r\n let range = helperUtil.getWeekRangeFormatted(date, true);\r\n let startDate = range[0];\r\n let endDate = range[1];\r\n let weeklyEvent = await schedulerService.getWeeklyEvent(startDate, endDate);\r\n if(weeklyEvent){\r\n onChangeText(weeklyEvent.description)\r\n console.log('weeklyEvent.isHTML')\r\n setIsHTML(weeklyEvent.isHTML) \r\n return;\r\n }\r\n\r\n onChangeText(' ')\r\n setIsHTML(false) \r\n }\r\n catch(e) {\r\n onChangeText(' ')\r\n setIsHTML(false)\r\n }\r\n }, [date])\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n await getWeekly() \r\n }\r\n fetchData();\r\n \r\n }, [getWeekly]);\r\n\r\n const renderRange = () => {\r\n let range = helperUtil.getWeekRangeFormatted(date, false);\r\n console.log(range)\r\n let startDay = range[0];\r\n let endDay = range[1];\r\n\r\n return(\r\n \r\n \r\n Week of: \r\n {startDay} - {endDay}\r\n \r\n \r\n );\r\n }\r\n\r\n const handleUpdateClick = async () => {\r\n let range = helperUtil.getWeekRangeFormatted(date, false);\r\n let startDate = range[0];\r\n let endDate = range[1];\r\n await schedulerService.updateWeekEvent(text, startDate, endDate, isHTML);\r\n await getWeekly()\r\n }\r\n\r\n const handleIsHTML = event => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n setIsHTML(value);\r\n };\r\n\r\n const renderUpdateBtn = () => {\r\n if(!helperUtil.IsMobile()){\r\n return \r\n }\r\n\r\n return \r\n }\r\n\r\n return (\r\n
\r\n {renderRange()}\r\n \r\n \r\n {renderUpdateBtn()} \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default weekScheduler;","import React, { useState } from 'react';\r\nimport authenticationService from '../../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport { RadioButton, Text } from 'react-native-paper';\r\nimport '../../Home.css';\r\nimport 'react-day-picker/lib/style.css';\r\nimport DayPickerInput from 'react-day-picker/DayPickerInput'\r\nimport moment from 'moment'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport dateFnsParse from 'date-fns/parse';\r\nimport { DateUtils } from 'react-day-picker';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport dayScheduler from './DayScheduler';\r\nimport weekScheduler from './WeekScheduler';\r\nimport { View } from 'react-native';\r\nimport helperUtil from '../../../shared/Util'\r\n\r\nfunction Scheduler() {\r\n const [scheduledDay, setScheduledDay] = useState(new Date());\r\n const [scheduleDay, setScheduleDay] = useState(true);\r\n const [scheduleWeek, setScheduleWeek] = useState(false);\r\n const [daySchedulerKey, setDaySchedulerKey] = useState(1);\r\n \r\n var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n \r\n }\r\n fetchData();\r\n \r\n }, []);\r\n\r\n const renderMainPage = (id) => {\r\n if(!authenticationService.isAdministrator()){\r\n return ;\r\n }\r\n }\r\n\r\n function formatDate(date, format, locale) {\r\n return dateFnsFormat(date, format, { locale });\r\n }\r\n\r\n function parseDate(str, format, locale) {\r\n const parsed = dateFnsParse(str, format, new Date(), { locale });\r\n if (DateUtils.isDate(parsed)) {\r\n return parsed;\r\n }\r\n return undefined;\r\n }\r\n\r\n const getDayName = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n return helperUtil.getDayOfTheWeek(date);\r\n }\r\n\r\n const getMonthName = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n \r\n return months[ date.getMonth() ];\r\n }\r\n\r\n const formatTitleDate = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'dd yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const renderScheduledDate = () => {\r\n const FORMAT = 'MM/dd/yyyy';\r\n return {\r\n if(moment.isDate(day)){\r\n setScheduledDay(day);\r\n setDaySchedulerKey(daySchedulerKey + 1);\r\n }\r\n console.log('scheduledDay ' + scheduledDay); \r\n }\r\n } />; \r\n }\r\n\r\n const renderTable = () => {\r\n return (
\r\n \r\n

{getDayName(scheduledDay)} {getMonthName(scheduledDay)} {formatTitleDate(scheduledDay)}

\r\n
\r\n {renderScheduledDate()}\r\n \r\n Day\r\n \r\n Week\r\n \r\n \r\n\r\n \r\n \r\n \r\n {renderDayScheduler()}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderDayScheduler = () => {\r\n if(scheduleWeek){\r\n return ;\r\n }\r\n\r\n return ;\r\n }\r\n\r\n const onDayRangeChanged = event => {\r\n setScheduleWeek(false);\r\n setScheduleDay(true);\r\n console.log('Day schedule is on')\r\n };\r\n\r\n const onWeekRangeChanged = event => {\r\n console.log('Week schedule is on')\r\n setScheduleWeek(true);\r\n setScheduleDay(false);\r\n };\r\n\r\n return (\r\n
\r\n {renderMainPage()}\r\n {renderTable()}\r\n
\r\n )\r\n}\r\n\r\nexport default Scheduler","import React, { useState } from 'react';\r\nimport utilService from '../shared/services/utilservice'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport authenticationService from '../shared/services/authentication.service'\r\nimport './Account.css';\r\nimport telephoneEntry from '../shared/TelephoneEntry'\r\nimport Button from 'react-bootstrap/Button';\r\nimport firstNameEntry from '../shared/FirstNameEntry'\r\nimport Geocode from \"react-geocode\";\r\nimport PlacesAutocomplete, {\r\n geocodeByAddress,\r\n getLatLng,\r\n } from 'react-places-autocomplete';\r\nimport lastNameEntry from '../shared/LastNameEntry'\r\nimport { confirmAlert } from 'react-confirm-alert';\r\n\r\nfunction Account() {\r\n const [initialFirstName, setInitialFirstName] = useState('');\r\n const [firstName, setFirstName] = useState('');\r\n const [isFirstNameValid, setFirstNameValid] = useState(false);\r\n const [lastName, setLastName] = useState('');\r\n const [isLastNameValid, setLastNameValid] = useState(true);\r\n const [telephone, setTelephone] = useState('');\r\n const [isTelephoneValid, setTelephoneValid] = useState(true);\r\n const [address, setAddress] = useState(null);\r\n const [jewishName, setJewishName] = useState('');\r\n const [isJewishNameValid, setJewishNameValid] = useState(true);\r\n const [isAddressValid, setIsAddressValid] = useState(true);\r\n const [email, setEmail] = useState('');\r\n const [userId, setUserId] = useState('');\r\n const [isUpdateError, setUpdateError] = useState(false);\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n const lclAccount = await utilService.getAccount();\r\n\r\n if(!lclAccount || !lclAccount.firstName){\r\n setFirstNameValid(false);\r\n }\r\n\r\n console.log(lclAccount);\r\n setInitialFirstName(lclAccount.firstName);\r\n setFirstName(lclAccount.firstName);\r\n setLastName(lclAccount.lastName);\r\n setTelephone(lclAccount.telephone);\r\n setEmail(lclAccount.email);\r\n setAddress(lclAccount.address);\r\n setUserId(lclAccount.id);\r\n setJewishName(lclAccount.jewishName);\r\n if(lclAccount.firstName && lclAccount.firstName.length > 0){\r\n setFirstNameValid(true);\r\n }\r\n }\r\n fetchData();\r\n \r\n }, []);\r\n\r\n function changeFirstName(name, isValid) {\r\n setFirstName(name);\r\n setFirstNameValid(isValid);\r\n setUpdateError(false);\r\n }\r\n\r\n function changeLastName(name, isValid) {\r\n setLastName(name);\r\n setLastNameValid(isValid);\r\n setUpdateError(false);\r\n }\r\n\r\n function changeJewishName(name, isValid) {\r\n setJewishName(name);\r\n setJewishNameValid(isValid);\r\n setUpdateError(false);\r\n }\r\n\r\n function changeTelephone(phone, isValid) {\r\n setTelephone(phone);\r\n setTelephoneValid(isValid);\r\n setUpdateError(false);\r\n }\r\n\r\n const submitChanges = async () => {\r\n setUpdateError(false);\r\n const result = await utilService.modifyProfile(firstName,\r\n lastName,\r\n telephone,\r\n address,\r\n jewishName,\r\n userId,\r\n email);\r\n\r\n if(!result){\r\n setUpdateError(true);\r\n return;\r\n }\r\n\r\n confirmAlert({\r\n title: 'Confirmation',\r\n message: 'Your update request has been successfuly submitted',\r\n buttons: [\r\n {\r\n label: 'Ok',\r\n onClick: () => {window.location.reload()}\r\n }\r\n ]\r\n });\r\n }\r\n\r\n const renderUpdateError = () => {\r\n if(isUpdateError){\r\n return

There was an error during submission

;\r\n }\r\n }\r\n\r\n const handleSubmit = event => {\r\n setUpdateError(false);\r\n event.preventDefault();\r\n if(!isAddressValid){\r\n confirmAlert({\r\n title: 'Confirm sudmission',\r\n message: 'You may have an invalid address. Are you sure you want to proceed?',\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => {submitChanges()}\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => {console.log('no deletion called`')}\r\n }\r\n ]\r\n });\r\n\r\n return;\r\n }\r\n\r\n submitChanges();\r\n }\r\n\r\n const isFormValidated = () => {\r\n return (isTelephoneValid && isFirstNameValid && isLastNameValid && isJewishNameValid);\r\n }\r\n\r\n const renderAccount = () => { \r\n if(!authenticationService.isUserLoggedIn()){\r\n return ;\r\n }\r\n\r\n const handleChange = address => {\r\n setUpdateError(false);\r\n setAddress(address);\r\n setIsAddressValid(false);\r\n };\r\n\r\n const handleSelect = address => {\r\n setAddress(address);\r\n geocodeByAddress(address)\r\n .then(results => getLatLng(results[0]))\r\n .then(latLng => {\r\n console.log('Success', latLng);\r\n Geocode.setApiKey('AIzaSyB-y6yWw7tzAtdgD7iRhmqrpMP1H9YH08c');\r\n Geocode.setLanguage(\"en\");\r\n console.log('Geocode ' + latLng.lat, latLng.lng);\r\n Geocode.fromLatLng(latLng.lat, latLng.lng).then(\r\n (response) => {\r\n const address = response.results[0].formatted_address;\r\n setAddress(address);\r\n setIsAddressValid(true);\r\n },\r\n (error) => {\r\n console.error(error);\r\n setIsAddressValid(false);\r\n }\r\n );\r\n } \r\n )\r\n .catch(error => {\r\n console.error('Error', error);\r\n setIsAddressValid(false);\r\n });\r\n };\r\n\r\n return
\r\n
\r\n

\r\n Your Profile {initialFirstName}\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
\r\n
\r\n \r\n
\r\n \r\n {({ getInputProps, suggestions, getSuggestionItemProps, loading }) => (\r\n
\r\n \r\n
\r\n {loading &&
Loading...
}\r\n {suggestions.map(suggestion => {\r\n const className = suggestion.active\r\n ? 'suggestion-item--active'\r\n : 'suggestion-item';\r\n // inline style for demonstration purpose\r\n const style = suggestion.active\r\n ? { backgroundColor: '#fafafa', cursor: 'pointer' }\r\n : { backgroundColor: '#ffffff', cursor: 'pointer' };\r\n return (\r\n \r\n {suggestion.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
\r\n {renderUpdateError()}\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 return (\r\n
\r\n {renderAccount()}\r\n
\r\n )\r\n}\r\n\r\nexport default Account","import React from 'react';\r\n\r\nfunction TestIPN() {\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 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 \r\n \r\n\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default TestIPN;","import React, { useState, useCallback } from 'react';\r\nimport '../Home.css';\r\nimport hebcalAPIservice from '../../shared/services/hebcalAPIservice'\r\nimport { Text, View } from 'react-native';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport DatePicker from '@material-ui/lab/DatePicker';\r\nimport AdapterDateFns from '@material-ui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@material-ui/lab/LocalizationProvider';\r\nimport ArrowForwardIos from '@material-ui/icons/ArrowForwardIos';\r\nimport ArrowBackIos from '@material-ui/icons/ArrowBackIos';\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport helperUtil from '../../shared/Util'\r\nimport schedulerService from '../../shared/services/schedulerService'\r\n\r\nfunction ShuleScheduleCalendar() {\r\n const [gregorianDate, setGregorianDate] = useState(new Date());\r\n const [calendarEvents, setCalendarEvents] = useState([]);\r\n const [loading, setLoading] = useState(false);\r\n const [weeklyEvent, setWeeklyEvent] = useState();\r\n\r\n const transformCalendarEvents = useCallback(async (scheduleEvents) => {\r\n setCalendarEvents(null);\r\n if(scheduleEvents === null || scheduleEvents === undefined || scheduleEvents.days === undefined || scheduleEvents.days === null){\r\n console.log('scheduleEvents unacceptible'); \r\n return;\r\n }\r\n\r\n setCalendarEvents(scheduleEvents.days);\r\n \r\n }, [])\r\n\r\n const transformWeeklyEvent = useCallback(async (weeklyEvent) => {\r\n if(!weeklyEvent){\r\n console.log('weeklyEvent unacceptible');\r\n setWeeklyEvent(null);\r\n return;\r\n }\r\n\r\n setWeeklyEvent(weeklyEvent);\r\n \r\n }, [])\r\n\r\n React.useEffect(() => {\r\n\r\n async function fetchWeeklySchedule() {\r\n try {\r\n setLoading(true);\r\n let scheduleEvents = await hebcalAPIservice.getWeeklySchedule(formatDayDate(gregorianDate)); \r\n transformCalendarEvents(scheduleEvents);\r\n let range = helperUtil.getWeekRangeFormatted(gregorianDate, true);\r\n let startDate = range[0];\r\n let endDate = range[1];\r\n let weekEvent = await schedulerService.getWeeklyEvent(startDate, endDate);\r\n transformWeeklyEvent(weekEvent);\r\n setLoading(false);\r\n }\r\n catch(e) {\r\n \r\n }\r\n }\r\n\r\n setWeeklyEvent(null);\r\n fetchWeeklySchedule();\r\n }, [gregorianDate, transformCalendarEvents, transformWeeklyEvent]);\r\n\r\n const formatDayDate = (date) => {\r\n if(!date){\r\n return '';\r\n }\r\n var lclDate = new Date(date);\r\n const format = 'MM-dd-yyyy';\r\n return dateFnsFormat(lclDate, format);\r\n }\r\n\r\n const handleDateChange = async (date) => {\r\n setGregorianDate(date); \r\n };\r\n\r\n const renderEvent = (calendarEvent, index) => {\r\n if(calendarEvent.isAllDay && (calendarEvent.description === null || calendarEvent.description === undefined || calendarEvent.description.length === 0)){\r\n return (\r\n
\r\n \r\n \r\n {calendarEvent.title}\r\n \r\n \r\n

\r\n

\r\n );\r\n }\r\n\r\n if(calendarEvent.isAllDay && (calendarEvent.description !== null || calendarEvent.description !== undefined || calendarEvent.description.length > 0)){\r\n return (\r\n
\r\n \r\n \r\n {calendarEvent.title}\r\n \r\n \r\n \r\n \r\n {calendarEvent.description}\r\n \r\n \r\n

\r\n

\r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n {calendarEvent.title}\r\n \r\n \r\n {calendarEvent.eventTime}\r\n \r\n \r\n {calendarEvent.description}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderDay = (calendarDay, index) => {\r\n if(calendarDay === undefined || calendarDay === null || calendarDay.events === undefined || calendarDay.events === null){\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n

\r\n \r\n \r\n {calendarDay.date}\r\n \r\n \r\n {calendarDay.events.map(renderEvent)} \r\n

\r\n );\r\n }\r\n\r\n const renderWeekly = () => {\r\n console.log('renderWeekly');\r\n if(!weeklyEvent){\r\n return;\r\n }\r\n\r\n if(!weeklyEvent.isHTML){\r\n return (\r\n
\r\n

\r\n \r\n \r\n {weeklyEvent.description}\r\n \r\n \r\n

\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 const handleAddWeek = async () => {\r\n let startDate = getNextStartWeekDate();\r\n setGregorianDate(startDate); \r\n }\r\n\r\n const handleSubtractWeek = async () => {\r\n let endDate = getPreviousStartWeekDate();\r\n setGregorianDate(endDate); \r\n }\r\n \r\n const getPreviousStartWeekDate = () => {\r\n let previousDay = new Date(gregorianDate.getTime());\r\n let endDate = new Date();\r\n\r\n for(var i = 0; i < 7; i++){\r\n previousDay.setDate(previousDay.getDate() - 1);\r\n var day = previousDay.getDay();\r\n if(day === 5){\r\n endDate = previousDay;\r\n break;\r\n } \r\n }\r\n\r\n return endDate;\r\n }\r\n\r\n const getNextStartWeekDate = () => {\r\n let nextDay = new Date(gregorianDate.getTime());\r\n let startDate = new Date();\r\n\r\n for(var i = 0; i < 7; i++){\r\n nextDay.setDate(nextDay.getDate() + 1);\r\n var day = nextDay.getDay();\r\n if(day === 0){\r\n startDate = nextDay;\r\n break;\r\n } \r\n }\r\n \r\n //console.log(startDate);\r\n return startDate;\r\n }\r\n\r\n const renderRange = () => {\r\n let range = helperUtil.getWeekRange(gregorianDate);\r\n //console.log(range)\r\n const FORMAT = 'MM/dd/yyyy';\r\n let startDay = dateFnsFormat(range[0], FORMAT);\r\n let endDay = dateFnsFormat(range[1], FORMAT);\r\n\r\n return(\r\n \r\n \r\n Week of: \r\n {startDay} - {endDay}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderCalendarEvents = () => {\r\n if(!calendarEvents || calendarEvents.length === 0){\r\n return;\r\n }\r\n\r\n return (
\r\n {calendarEvents.map(renderDay)} \r\n
);\r\n }\r\n \r\n const renderHeader = () => {\r\n return (\r\n \r\n Use arrows to move between weeks\r\n \r\n );\r\n }\r\n\r\n const renderGregorianDate = () => {\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 \r\n );\r\n }\r\n\r\n if((!calendarEvents || calendarEvents.length === 0) && (!weeklyEvent || !weeklyEvent.description || weeklyEvent.description.length === 0)){ \r\n let eventsLoadedText = !loading ? 'No scheduled events found for this week' : 'Loading...';\r\n return (\r\n
\r\n {renderGregorianDate()}\r\n {renderRange()}\r\n

\r\n {eventsLoadedText}\r\n

\r\n ); \r\n }\r\n\r\n return (\r\n
\r\n {renderHeader()}\r\n {renderGregorianDate()}\r\n {renderRange()}\r\n {renderWeekly()}\r\n

\r\n {renderCalendarEvents()}\r\n

\r\n );\r\n}\r\n\r\nexport default ShuleScheduleCalendar;","import ShuleScheduleCalendar from './ShuleScheduleCalendar'\r\n\r\nfunction ShulSchedule() { \r\n return (\r\n
\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default ShulSchedule;","import authenticationService from '../../shared/services/authentication.service'\r\nimport { useState } from 'react';\r\nimport { Text, View, StyleSheet } from 'react-native';\r\nimport helperUtil from '../../shared/Util'\r\n\r\nfunction WelcomePost({onAuthenticated}) {\r\n const [loggedInFirstName, setLoggedInFirstName] = useState('');\r\n\r\n const styles = StyleSheet.create({\r\n titleText: {\r\n fontSize: 20,\r\n fontWeight: \"bold\",\r\n justifyContent: \"center\", \r\n alignItems: 'center'\r\n },\r\n welcomeText: {\r\n fontSize: 18,\r\n fontWeight: \"bold\",\r\n justifyContent: \"center\", \r\n alignItems: 'center'\r\n }, \r\n welcomeNameText: {\r\n fontSize: 18,\r\n fontWeight: \"bold\",\r\n justifyContent: \"center\", \r\n alignItems: 'center',\r\n color: 'blue'\r\n }\r\n });\r\n\r\n const renderWelcomeMemo = () => {\r\n if(!isUserLoggedIn()){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n Hello\r\n {loggedInFirstName}!\r\n \r\n );\r\n }\r\n\r\n const isUserLoggedIn = () => {\r\n let isMobile = helperUtil.IsMobile();\r\n if(!authenticationService.isUserLoggedIn()){\r\n onAuthenticated(false, null, isMobile);\r\n return false;\r\n }\r\n \r\n if(!loggedInFirstName){\r\n var firstName = authenticationService.getUserFirstName();\r\n if(!firstName){\r\n onAuthenticated(false, null, isMobile);\r\n return false;\r\n }\r\n \r\n setLoggedInFirstName(authenticationService.getUserFirstName());\r\n onAuthenticated(true, authenticationService.getUserID(), isMobile, authenticationService.getUserEmail());\r\n }\r\n \r\n return true;\r\n }\r\n\r\n return (\r\n
\r\n {renderWelcomeMemo()}\r\n
\r\n );\r\n}\r\n\r\nexport default WelcomePost;","import React, { useState } from 'react';\r\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\r\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\r\nimport { View, Text } from 'react-native';\r\n\r\nfunction IncrementDecrementCounter({maxUnits, onCounterChanged, initialCount, isWeeks}) {\r\n const [counter, setCounter] = useState(initialCount);\r\n \r\n React.useEffect(() => {\r\n setCounter(initialCount);\r\n },[initialCount]);\r\n\r\n const renderDaysWording = () => {\r\n let wording = isWeeks ? 'weeks' : 'days';\r\n if(counter === 1){\r\n wording = isWeeks ? 'week' : 'day';\r\n }\r\n\r\n return(\r\n {wording}\r\n );\r\n }\r\n\r\n const renderControl = () => {\r\n return (\r\n \r\n Duration:\r\n \r\n \r\n {counter}\r\n \r\n \r\n {renderDaysWording()}\r\n \r\n );\r\n }\r\n \r\n const handleIncrementCounter = async () => {\r\n const maxNum = Number(maxUnits);\r\n\r\n if(counter === maxNum){\r\n return;\r\n }\r\n\r\n let count = counter + 1;\r\n setCounter(count)\r\n if(onCounterChanged){\r\n onCounterChanged(count)\r\n }\r\n }\r\n\r\n const handleDecrementCounter = async () => {\r\n if(counter === 1){\r\n return;\r\n }\r\n\r\n let count = counter - 1;\r\n setCounter(count)\r\n if(onCounterChanged){\r\n onCounterChanged(count)\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderControl()} \r\n
\r\n );\r\n}\r\n\r\nexport default IncrementDecrementCounter;\r\n","import WelcomePost from './WelcomePost'\r\nimport React, { useState, useRef } from 'react';\r\nimport { Text, View, SafeAreaView, TextInput, StyleSheet } from 'react-native';\r\nimport DatePicker from '@material-ui/lab/DatePicker';\r\nimport AdapterDateFns from '@material-ui/lab/AdapterDateFns';\r\nimport LocalizationProvider from '@material-ui/lab/LocalizationProvider';\r\nimport TextField from \"@material-ui/core/TextField\";\r\nimport Button from 'react-bootstrap/Button';\r\nimport UpdateSharp from '@material-ui/icons/UpdateOutlined';\r\nimport IncrementDecrementCounter from '../../shared/Controls/IncrementDecrementCounter'\r\nimport postAdService from '../../shared/services/postAdService'\r\nimport PostAdEditor from '../../shared/Controls/PostAdEditor'\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport { convertToRaw, convertFromRaw } from 'draft-js';\r\nimport { convertToHTML } from 'draft-convert';\r\nimport utilservice from '../../shared/services/utilservice'\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport AttachFile from '@material-ui/icons/AttachFile';\r\nimport Cancel from '@material-ui/icons/Cancel';\r\n\r\nfunction HomePagePost() {\r\n const [isUserAuthenticated, setIsUserAuthenticated] = useState(false);\r\n const [userId, setUserId] = useState(false);\r\n const [gregorianDate, setGregorianDate] = useState(new Date());\r\n const [errorText, setErrorText] = useState('');\r\n const [text, onChangeText] = React.useState(\"\");\r\n const [dateValid, setDateValid] = useState(true);\r\n const [textValid, setTextValid] = useState(false);\r\n const [isMobile, setIsMobile] = useState(true);\r\n const [isHTML, setIsHTML] = useState(false);\r\n const [duration, setDuration] = useState(1);\r\n const [email, setEmail] = useState('');\r\n const [apiResponse, setApiResponse] = useState({status: false, error: null});\r\n const [editorState, setEditorState] = React.useState(EditorState.createEmpty());\r\n const [initialEditorState, setInitialEditorState] = useState(false);\r\n const [rangeDates, setRangeDates] = useState([]);\r\n const [initialDurationDays, setInitialDurationDays] = useState(1);\r\n const [htmlPreviewString, setHTMLPreviewString] = React.useState('');\r\n const [showPostWarning, setShowPostWarning] = React.useState(false);\r\n const [isAdminPost, setIsAdminPost] = useState(false);\r\n const [name, setName] = React.useState('');\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [isNameValid, setIsNameValid] = useState(false);\r\n const [isPosting, setPosting] = useState(false);\r\n const timerRef = useRef(null); \r\n const wordsLimit = 300;\r\n const debugging = false;\r\n const [isUnAuthenticatedPosted, setIsUnAuthenticatedPosted] = useState(false);\r\n const [editToken, setEditToken] = React.useState('');\r\n const inputFile = useRef(null);\r\n const [isUploadingImage, setIsUploadingImage] = useState(false);\r\n const [showFileExtensionWarning, setShowFileExtensionWarning] = useState(false);\r\n const [showImageUploadError, setShowImageUploadError] = useState(false);\r\n const timerFileExtensionRef = useRef(null);\r\n const timerImageUploadErrorRef = useRef(null);\r\n const [listInputPics, setListInputPics] = React.useState([]);\r\n const [isDeletingImage, setIsDeletingImageageIdToShow] = useState(false);\r\n\r\n React.useEffect(() => { \r\n return () => clearTimeout(timerRef.current);\r\n }, []);\r\n\r\n const styles = StyleSheet.create({\r\n input: {\r\n height: 300,\r\n marginLeft: 0,\r\n borderWidth: 1,\r\n padding: 10,\r\n marginTop: 10\r\n },\r\n text: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n updateBtnView: {\r\n flex: 0.95, \r\n justifyContent: \"flex-end\", \r\n alignItems: 'center', \r\n flexDirection: \"row\", \r\n marginRight: 10, \r\n marginTop: 10\r\n }\r\n });\r\n\r\n const getInitialEditorState = async (userID) => {\r\n try {\r\n let postAd = await postAdService.getPostAd(userID);\r\n console.log(postAd)\r\n if(!postAd || !postAd.description){\r\n return null; \r\n }\r\n\r\n setGregorianDate(postAd.startDate);\r\n isDateValid(new Date(postAd.startDate));\r\n setRangeDates([postAd.startDate, postAd.endDate]);\r\n setInitialDurationDays(postAd.durationDays)\r\n setListInputPics(postAd.images);\r\n setIsAdminPost(postAd.isAdminPost);\r\n\r\n if(!postAd.isHTML && !postAd.isEditor){\r\n let contentState;\r\n contentState = {\r\n entityMap: {},\r\n blocks: [{\r\n key: '18ql9',\r\n text: postAd.description,\r\n type: 'unstyled',\r\n depth: 0,\r\n inlineStyleRanges: [],\r\n entityRanges: [],\r\n }],\r\n };\r\n \r\n if(isMobile){\r\n onChangeText(postAd.description);\r\n }\r\n\r\n return EditorState.createWithContent(convertFromRaw(contentState)) \r\n }\r\n\r\n if(!postAd.isHTML){\r\n const contentState = convertFromRaw(JSON.parse(postAd.description));\r\n const editorState = EditorState.createWithContent(contentState);\r\n return editorState;\r\n }\r\n\r\n setIsHTML(true);\r\n onChangeText(postAd.description);\r\n\r\n return null;\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n const recalculateDatesRange = (date, count) => {\r\n var result = new Date(date);\r\n result.setDate(result.getDate() + (count - 1));\r\n const startDate = utilservice.getDateFormatted(date);\r\n const endDate = utilservice.getDateFormatted(result);\r\n setRangeDates([startDate, endDate]); \r\n }\r\n\r\n const fetchUnauthenticated = async (token) => {\r\n try {\r\n const initialState = await getInitialUnauthenticatedEditorState(token);\r\n if(!initialState || initialState === undefined || initialState === null){\r\n return;\r\n }\r\n console.log(initialState)\r\n setInitialEditorState(initialState)\r\n setInitialEditorState(null) \r\n }\r\n catch(e) {\r\n \r\n }\r\n }\r\n const getInitialUnauthenticatedEditorState = async (token) => {\r\n try {\r\n let postAd = await postAdService.getPostAdUnauthenticated(token);\r\n console.log(postAd)\r\n if(!postAd || !postAd.description){\r\n setEditToken('');\r\n return null; \r\n }\r\n\r\n setEditToken(token);\r\n setGregorianDate(postAd.startDate);\r\n isDateValid(new Date(postAd.startDate));\r\n setRangeDates([postAd.startDate, postAd.endDate]);\r\n setInitialDurationDays(postAd.durationDays)\r\n \r\n if(!postAd.name || postAd.name === undefined || postAd.name === null || postAd.name.length < 1){\r\n setIsNameValid(false);\r\n }\r\n else{\r\n setIsNameValid(true);\r\n setName(postAd.name)\r\n }\r\n\r\n if(!postAd.email || postAd.email === undefined || postAd.email === null || postAd.email.length < 1){\r\n setIsEmailValid(false);\r\n }\r\n else{\r\n setIsEmailValid(true);\r\n setEmail(postAd.email)\r\n }\r\n \r\n let editorState;\r\n if(!utilservice.isJsonString(postAd.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(postAd.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(postAd.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n setUserId(postAd.id);\r\n console.log(postAd.id)\r\n\r\n if(isMobile){\r\n onChangeText(editorState.getCurrentContent().getPlainText('\\u0001'));\r\n }\r\n\r\n return editorState;\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n\r\n const fetchPostPage = async (userID) => {\r\n try {\r\n const initialState = await getInitialEditorState(userID);\r\n if(!initialState || initialState === undefined || initialState === null){\r\n return;\r\n }\r\n console.log(initialState)\r\n setInitialEditorState(initialState)\r\n setInitialEditorState(null)\r\n }\r\n catch(e) {\r\n \r\n }\r\n }\r\n\r\n const handleDateChange = async (date) => {\r\n setGregorianDate(date);\r\n \r\n if(!isDateValid(date)){\r\n return;\r\n }\r\n\r\n recalculateDatesRange(date, duration);\r\n }\r\n\r\n const isDateValid = (date) => {\r\n let now = new Date();\r\n let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n \r\n if(date.getTime() < today.getTime()){\r\n setErrorText('Please choose current or forward date');\r\n setDateValid(false);\r\n return false;\r\n }\r\n\r\n if(textValid){\r\n setErrorText(null);\r\n }\r\n else{\r\n setErrorText('Exceeded number of words');\r\n }\r\n\r\n setDateValid(true);\r\n return true;\r\n }\r\n\r\n const onRichTextEditorStateChanged = (state) => {\r\n setEditorState(state);\r\n const editorText = state.getCurrentContent().getPlainText('\\u0001');\r\n console.log(editorText)\r\n isTextValid(editorText)\r\n const html = getHTMLFromEditor();\r\n setHTMLPreviewString(html);\r\n }\r\n\r\n const renderGregorianDate = () => {\r\n return (\r\n \r\n \r\n }\r\n /> \r\n \r\n \r\n );\r\n }\r\n\r\n const renderPostAdEditor = () => {\r\n if(isMobile || isHTML){\r\n return;\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 const handleNameChange = async(value) => {\r\n setName(value);\r\n if(!value || value === undefined || value === null || value.length < 1){\r\n setIsNameValid(false);\r\n return;\r\n }\r\n \r\n setIsNameValid(true);\r\n }\r\n\r\n const handleEmailChange = async(value) => {\r\n setEmail(value);\r\n setIsEmailValid(utilservice.isEmailPatternValid(value));\r\n console.log(\"email \" + value);\r\n console.log(\"email \" + email);\r\n }\r\n\r\n const renderNameLabel = () => {\r\n if(!isNameValid){\r\n return (Name:\r\n * \r\n );\r\n }\r\n\r\n return Name:;\r\n }\r\n\r\n const renderEmailLabel = () => {\r\n if(!isEmailValid){\r\n return (Email:\r\n * \r\n );\r\n }\r\n\r\n return Email:;\r\n }\r\n\r\n const renderAttachLabel = () => {\r\n return Attach Pictures:;\r\n }\r\n\r\n const onUploadFileClick = () => {\r\n // `current` points to the mounted file input element\r\n inputFile.current.click();\r\n };\r\n\r\n const onAddFile = async (event) => {\r\n if(!event || !event.target || !event.target.files || event.target.files.length === 0){\r\n return;\r\n }\r\n\r\n var extension = event.target.files[0].name.split('.').pop()\r\n console.log(extension);\r\n switch(extension) {\r\n case 'JPG':\r\n case 'jpg':\r\n case 'GIF':\r\n case 'gif':\r\n case 'BMP':\r\n case 'bmp':\r\n case 'PNG':\r\n case 'png':\r\n break;\r\n default:\r\n setShowFileExtensionWarning(true);\r\n clearTimeout(timerFileExtensionRef.current);\r\n timerFileExtensionRef.current = setTimeout(hideExtensionWarning, 3000); \r\n return;\r\n }\r\n\r\n event.stopPropagation();\r\n event.preventDefault();\r\n var file = event.target.files[0];\r\n console.log(file);\r\n \r\n setIsUploadingImage(true);\r\n if(isUserAuthenticated){\r\n var data = await postAdService.addImageAuthenticated(userId, email, file);\r\n console.log(data);\r\n if(!data || data === undefined || data === null){\r\n setShowImageUploadError(true);\r\n clearTimeout(timerImageUploadErrorRef.current);\r\n timerImageUploadErrorRef.current = setTimeout(hideImageUploadError, 3000); \r\n }\r\n\r\n setListInputPics(data);\r\n }\r\n setIsUploadingImage(false);\r\n } \r\n\r\n const renderInputPictures = () => {\r\n if(!listInputPics || listInputPics.length === 0){\r\n return;\r\n }\r\n\r\n return (\r\n {listInputPics.map(renderThumbnailImage)}\r\n );\r\n }\r\n\r\n const renderThumbnailImage = (thmbnail) => {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n \r\n const hideExtensionWarning = () => {\r\n setShowFileExtensionWarning(false)\r\n timerFileExtensionRef.current = null;\r\n }\r\n\r\n const hideImageUploadError = () => {\r\n setShowImageUploadError(false)\r\n timerFileExtensionRef.current = null;\r\n }\r\n \r\n const renderImageUploadError = () => {\r\n if(!showImageUploadError){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n Image upload error \r\n \r\n \r\n );\r\n }\r\n\r\n const renderFileExtensionWarning = () => {\r\n if(!showFileExtensionWarning){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n Unsupported file format \r\n \r\n \r\n );\r\n }\r\n\r\n const renderAttachFile = () => {\r\n if(isUserAuthenticated){\r\n return (\r\n \r\n {renderAttachLabel()}\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n const renderAttachPicture = () => {\r\n return(\r\n
\r\n \r\n {renderAttachFile()}\r\n\r\n \r\n {renderInputPictures()}\r\n \r\n\r\n \r\n \r\n
\r\n ); \r\n }\r\n\r\n const renderName = () => {\r\n if(isUserAuthenticated){\r\n return;\r\n }\r\n\r\n return(\r\n
\r\n \r\n \r\n {renderNameLabel()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ); \r\n }\r\n\r\n const renderEmail = () => {\r\n if(isUserAuthenticated){\r\n return;\r\n }\r\n\r\n return(\r\n
\r\n \r\n \r\n {renderEmailLabel()}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ); \r\n }\r\n\r\n const renderHTMLPreview = () => {\r\n // only for debugging\r\n if(!debugging){\r\n return;\r\n }\r\n\r\n if(isHTML){\r\n return;\r\n }\r\n\r\n\r\n return (\r\n \r\n Preview\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n const renderPostWarning = () => {\r\n if(!showPostWarning){\r\n return;\r\n }\r\n\r\n if((isMobile || isHTML) && (!text || text === undefined || text.length === 0)){\r\n return;\r\n }\r\n\r\n if(!isMobile && !isHTML){\r\n const editorText = editorState.getCurrentContent().getPlainText('\\u0001');\r\n if(!editorText || editorText === undefined || editorText.length === 0){\r\n return;\r\n }\r\n }\r\n\r\n return (\r\n \r\n Thank you for your post. It will show up on the main page after the admin approval\r\n \r\n );\r\n }\r\n\r\n const renderUnAuthenticatedPosted = () => {\r\n if(!isUnAuthenticatedPosted){\r\n return;\r\n }\r\n\r\n return \r\n }\r\n\r\n const renderReadOnlyPreview = () => {\r\n if(!debugging){\r\n return;\r\n }\r\n\r\n if(!isUserAuthenticated || isHTML){\r\n return;\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 const handleUpdateClick = async () => {\r\n setApiResponse(null);\r\n setPosting(true);\r\n let data = text;\r\n\r\n //let html = '';\r\n if (!isHTML && !isMobile){ // editor\r\n const state = editorState.getCurrentContent();\r\n //html = getHTMLFromEditor();\r\n console.log('----------------html----------------');\r\n //console.log(html);\r\n const editorText = editorState.getCurrentContent().getPlainText('\\u0001');\r\n if (editorText.length < 2) {\r\n data = '';\r\n }\r\n else {\r\n data = JSON.stringify(convertToRaw(state));\r\n }\r\n console.log(\"----------------html----------------\"); \r\n console.log(data);\r\n }\r\n\r\n let response = await postAdService.postAd(userId, duration, new Date(gregorianDate), data, isMobile ? false : isHTML, email, isMobile ? false : !isHTML, isAdminPost, name, isUserAuthenticated, editToken);\r\n\r\n setPosting(false);\r\n\r\n console.log(response);\r\n if(!response.status){\r\n response.error = !response.error ? 'Server call error' : response.error;\r\n setApiResponse(response);\r\n return;\r\n }\r\n\r\n if(!isUserAuthenticated){\r\n setIsUnAuthenticatedPosted(true);\r\n }\r\n\r\n console.log(apiResponse);\r\n setShowPostWarning(true);\r\n clearTimeout(timerRef.current);\r\n timerRef.current = setTimeout(hidePost, 6000);\r\n }\r\n\r\n const hidePost = () => setShowPostWarning(false)\r\n\r\n const getHTMLFromEditor = () => {\r\n const state = editorState.getCurrentContent();\r\n const html = convertToHTML({\r\n styleToHTML: (style) => {\r\n switch(style){\r\n case 'HIGHLIGHT':\r\n return ;\r\n case 'RED':\r\n return ;\r\n case 'RED1':\r\n return ;\r\n case 'PURPLE':\r\n return ;\r\n case 'PURPLE1':\r\n return ;\r\n case 'BLUE':\r\n return ;\r\n case 'BLUE1':\r\n return ;\r\n case 'BLUE2':\r\n return ;\r\n case 'OLDHUE':\r\n return ;\r\n case 'OLDHUE1':\r\n return ;\r\n case 'GREEN':\r\n return ;\r\n case 'GREEN1':\r\n return ;\r\n case 'GREEN2':\r\n return ;\r\n case 'YELLOW':\r\n return ;\r\n case 'YELLOW1':\r\n return ;\r\n case 'YELLOW2':\r\n return ;\r\n case 'MARS':\r\n return ;\r\n case 'BROWN':\r\n return ;\r\n case 'GREY':\r\n return ;\r\n case 'FONT_SIZE_12':\r\n return ;\r\n case 'FONT_SIZE_14':\r\n return ;\r\n case 'FONT_SIZE_16':\r\n return ;\r\n case 'FONT_SIZE_18':\r\n return ;\r\n case 'FONT_SIZE_20':\r\n return ;\r\n case 'FONT_SIZE_22':\r\n return ;\r\n case 'FONT_SIZE_24':\r\n return ;\r\n case 'FONT_SIZE_26':\r\n return ;\r\n case 'FONT_SIZE_28':\r\n return ;\r\n case 'FONT_SIZE_30':\r\n return ;\r\n case 'FONT_SIZE_36':\r\n return ;\r\n case 'FONT_SIZE_42':\r\n return ;\r\n case 'FONT_SIZE_48':\r\n return ;\r\n case 'BOLD':\r\n return ;\r\n default:\r\n break;\r\n } \r\n },\r\n blockToHTML: (block) => {\r\n if (block.type === 'PARAGRAPH') {\r\n return ; \r\n }\r\n },\r\n entityToHTML: (entity, originalText) => {\r\n if (entity.type === 'LINK') {\r\n return {originalText};\r\n }\r\n return originalText;\r\n }\r\n })(state);\r\n\r\n return html;\r\n }\r\n\r\n const handleIsAdmin = async (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n setIsAdminPost(value);\r\n }\r\n\r\n const onCancelPicture = async (imageId) => {\r\n setIsDeletingImageageIdToShow(true);\r\n console.log(imageId);\r\n var result = await postAdService.deleteImage(imageId);\r\n if(result){\r\n var picRemoved = listInputPics.filter((element) => { return element.id !== imageId; })\r\n setListInputPics(picRemoved);\r\n }\r\n setIsDeletingImageageIdToShow(false);\r\n };\r\n\r\n const renderDeletingImage = () => {\r\n if(!isDeletingImage){\r\n return;\r\n }\r\n\r\n return (\r\n Deleting image \r\n );\r\n }\r\n \r\n const handleIsHTML = async (event) => {\r\n setApiResponse(null);\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value;\r\n setIsHTML(value);\r\n await dummyAsync();\r\n setInitialEditorState(editorState)\r\n setInitialEditorState(null)\r\n };\r\n\r\n const dummyAsync = async() => {\r\n console.log(editorState)\r\n }\r\n\r\n const isSubmitValid = () => {\r\n return dateValid && textValid && isNameValid && isEmailValid && !isPosting;\r\n }\r\n\r\n const renderHTMLBtn = () => {\r\n if(isMobile || !isUserAuthenticated){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderAdminCheckBox = () => {\r\n if (!authenticationService.isAdministrator()) {\r\n return;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderRangeDates = () => {\r\n if(rangeDates.length < 2){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n {rangeDates[0]} - {rangeDates[1]}\r\n \r\n );\r\n }\r\n\r\n const renderButtons = () => {\r\n if(!isMobile){\r\n return (\r\n \r\n
\r\n \r\n
\r\n \r\n {renderHTMLBtn()}\r\n {renderAdminCheckBox()}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n {renderHTMLBtn()}\r\n \r\n );\r\n }\r\n \r\n const onDurationChannged = async (count) => {\r\n setApiResponse(null);\r\n setDuration(count);\r\n recalculateDatesRange(gregorianDate, count);\r\n isDateValid(new Date(gregorianDate));\r\n }\r\n\r\n const renderHeaderText = () => {\r\n return (\r\n \r\n \r\n Please enter the date you would like your post to appear on the main page \r\n \r\n \r\n );\r\n }\r\n\r\n const handleInputTextChange = async (text) => {\r\n setApiResponse(null);\r\n onChangeText(text);\r\n isTextValid(text);\r\n }\r\n\r\n const isTextValid = (inputText) => {\r\n if(!inputText || inputText.length === 0){\r\n if(errorText !== null && errorText !== undefined && errorText.length > 0 && errorText.localeCompare('Exceeded number of words') === 0){\r\n setErrorText(null); \r\n }\r\n setTextValid(false);\r\n return false;\r\n }\r\n\r\n let words = inputText.split(' ').filter(Boolean);\r\n \r\n if(inputText && inputText.length > 0 && words.length > wordsLimit){\r\n setErrorText('Exceeded number of words');\r\n setTextValid(false);\r\n return false;\r\n }\r\n\r\n if(dateValid){\r\n setErrorText(null);\r\n }\r\n else{\r\n setErrorText('Please choose current or forward date');\r\n }\r\n\r\n setTextValid(true);\r\n return true;\r\n }\r\n\r\n const renderMobile = () => {\r\n if(!isMobile && !isHTML){\r\n return;\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 const renderApiValidation = () => {\r\n if(!apiResponse || !apiResponse.error){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n {apiResponse.error}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderAuthenticationValidation = () => {\r\n return (\r\n \r\n \r\n {errorText}\r\n \r\n \r\n );\r\n }\r\n\r\n const onAuthenticated = async (isAuthenticated, userId, isScreenMobile, userEmail) => {\r\n setIsUserAuthenticated(isAuthenticated);\r\n setIsMobile(isScreenMobile);\r\n if(isAuthenticated){\r\n setUserId(userId);\r\n setEmail(userEmail);\r\n setIsEmailValid(true);\r\n setIsNameValid(true);\r\n await fetchPostPage(userId);\r\n return;\r\n } \r\n }\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const onPageLoad = async () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n\r\n if(!parsed || !parsed.token || !parsed.edit) {\r\n return;\r\n }\r\n\r\n // potential edit\r\n if(parsed.edit === \"true\"){\r\n console.log(\"page is being editted\");\r\n await fetchUnauthenticated(parsed.token);\r\n setTextValid(true);\r\n setErrorText(null);\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n {renderHeaderText()}\r\n {renderGregorianDate()}\r\n {renderAuthenticationValidation()}\r\n {renderApiValidation()}\r\n {renderButtons()}\r\n {renderRangeDates()}\r\n {renderMobile()}\r\n {renderPostAdEditor()}\r\n {renderAttachPicture()}\r\n {renderFileExtensionWarning()}\r\n {renderImageUploadError()}\r\n {renderDeletingImage()}\r\n {renderName()}\r\n {renderEmail()}\r\n {renderHTMLPreview()}\r\n {renderReadOnlyPreview()}\r\n {renderPostWarning()}\r\n {renderUnAuthenticatedPosted()}\r\n
\r\n );\r\n}\r\n\r\nexport default HomePagePost;","import React, { useState } from 'react';\r\nimport postAdService from '../../../shared/services/postAdService'\r\nimport '../../Home.css';\r\nimport { Text, View } from 'react-native';\r\nimport { convertFromRaw } from 'draft-js';\r\nimport PostAdEditor from '../../../shared/Controls/PostAdEditor'\r\nimport { EditorState } from 'draft-js';\r\nimport authenticationService from '../../../shared/services/authentication.service'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport CheckCircle from '@material-ui/icons/CheckCircle';\r\nimport Button from 'react-bootstrap/Button';\r\n\r\nfunction HomepageAds() {\r\n const [activePosts, setActivePosts] = useState([]);\r\n const [, updateState] = React.useState();\r\n const forceUpdate = React.useCallback(() => updateState({}), []);\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n let posts;\r\n try{\r\n posts = await postAdService.getActivePosts();\r\n setActivePosts(posts);\r\n }\r\n catch(e){\r\n console.log(e);\r\n }\r\n\r\n try {\r\n let unauthenticatedPosts = await postAdService.getUnauthenticatedPosts();\r\n if(unauthenticatedPosts !== undefined && unauthenticatedPosts != null){\r\n if(posts !== undefined && posts != null){\r\n var allPosts = [...posts, ...unauthenticatedPosts];\r\n setActivePosts(allPosts);\r\n return;\r\n }\r\n }\r\n }\r\n catch(e){\r\n console.log(e);\r\n }\r\n }\r\n fetchData();\r\n\r\n }, []);\r\n\r\n const renderPostedAdDescription = (postedAd) => {\r\n if (!postedAd.isEditor && !postedAd.isHTML) {\r\n return {postedAd.description}\r\n }\r\n\r\n if (postedAd.isHTML && !postedAd.isEditor) {\r\n console.log(\"dangerouslySetInnerHTML\");\r\n return (
);\r\n }\r\n\r\n const contentState = convertFromRaw(JSON.parse(postedAd.description));\r\n const editorState = EditorState.createWithContent(contentState);\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const handleApproveClick = async (postedAd) => {\r\n const response = await postAdService.approve(postedAd, !postedAd.isAdminApproved);\r\n if (!response.status) {\r\n postedAd.isError = true;\r\n }\r\n else {\r\n postedAd.isError = undefined;\r\n }\r\n\r\n forceUpdate();\r\n }\r\n\r\n const renderAdminApproveBtn = (postedAd) => {\r\n if (postedAd.isError === undefined) {\r\n let statusColor = postedAd.isAdminApproved ? \"success\" : \"primary\";\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n const renderThumbnails = (postedAd) => {\r\n if(!postedAd.images || postedAd.images === undefined || postedAd.images.length === 0){\r\n return\r\n }\r\n\r\n var thumbnails = postedAd.images;\r\n return (\r\n {thumbnails.map(renderThumbnailImage)}\r\n \r\n );\r\n }\r\n\r\n const renderThumbnailImage = (thmbnail) => {\r\n if(!thmbnail.image || thmbnail.image === undefined){\r\n return;\r\n }\r\n\r\n return(\r\n \r\n \r\n );\r\n }\r\n\r\n const renderMoveForwardBtn = (postedAd) => {\r\n if(!postedAd || postedAd === null){\r\n return;\r\n }\r\n\r\n if(!postedAd.isAdminApproved){\r\n return;\r\n }\r\n\r\n let now = new Date();\r\n let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());\r\n\r\n let startDate = new Date(postedAd.startDate);\r\n \r\n if(startDate.getTime() === today.getTime()){\r\n return;\r\n }\r\n\r\n if(startDate.getTime() > today.getTime()){\r\n return;\r\n }\r\n\r\n if (postedAd.isError !== undefined){\r\n return;\r\n }\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n const isAdCurrent = (postedAd) => {\r\n if(!postedAd || postedAd === null){\r\n return false;\r\n }\r\n\r\n let now = new Date();\r\n let today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0);\r\n\r\n let startDate = new Date(postedAd.startDate);\r\n let endDate = new Date(postedAd.endDate);\r\n\r\n if(endDate.getTime() < today.getTime()){\r\n console.log('JOPA');\r\n return false;\r\n }\r\n\r\n if(startDate.getTime() > today.getTime()){\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const handleRepostClick = async (postedAd) => {\r\n postAdService.repostAd(postedAd);\r\n }\r\n\r\n const renderAd = (postedAd, index) => {\r\n return (\r\n
\r\n

\r\n \r\n \r\n {postedAd.firstName} {postedAd.lastName}\r\n \r\n \r\n {postedAd.startDate} - {postedAd.endDate}\r\n \r\n \r\n {renderPostedAdDescription(postedAd)}\r\n \r\n \r\n {renderAdminApproveBtn(postedAd)}\r\n \r\n \r\n {renderMoveForwardBtn(postedAd)}\r\n \r\n \r\n {renderThumbnails(postedAd)}\r\n

\r\n );\r\n }\r\n\r\n const renderPostedAd = (postedAd, index) => {\r\n if (postedAd === undefined || postedAd === null) {\r\n return;\r\n }\r\n\r\n if(isAdCurrent(postedAd) === true){\r\n return (\r\n
\r\n {renderAd(postedAd)}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderAd(postedAd)}\r\n
\r\n );\r\n }\r\n\r\n const renderActieAds = () => {\r\n if (!activePosts || activePosts.length === 0) {\r\n return;\r\n }\r\n\r\n return (
\r\n {activePosts.map(renderPostedAd)}\r\n
);\r\n }\r\n\r\n const renderMainPage = (id) => {\r\n if (!authenticationService.isAdministrator()) {\r\n return ;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderMainPage()}\r\n \r\n

Main page ads

\r\n
\r\n {renderActieAds()}\r\n
\r\n )\r\n}\r\n\r\nexport default HomepageAds","function RadioBtn({ label, value, onChange, checked }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default RadioBtn;","import { View, Text, TextInput, StyleSheet } from 'react-native';\r\nimport React, { useState, useRef, useMemo } from 'react';\r\nimport PostAdEditor from '../../shared/Controls/PostAdEditor'\r\nimport './ClassifiedAdPost.css';\r\nimport IncrementDecrementCounter from '../../shared/Controls/IncrementDecrementCounter'\r\nimport Button from 'react-bootstrap/Button';\r\nimport AttachFile from '@material-ui/icons/AttachFile';\r\nimport uuid from 'react-native-uuid';\r\nimport classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport ShowImageDlg from './ShowImageDlg'\r\nimport Cancel from '@material-ui/icons/Cancel';\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport { Navigate } from \"react-router-dom\";\r\nimport { convertToRaw, convertFromRaw } from 'draft-js';\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport utilService from '../../shared/services/utilservice'\r\n\r\nfunction ClassifiedAdPostDesktop({category,editPageId,editMode}) {\r\n const [title, setTitle] = useState('');\r\n const [shortDescription, setShortDescription] = useState('');\r\n const [listInputPics, setListInputPics] = React.useState([]);\r\n const inputFile = useRef(null);\r\n const [telephone, setTelephone] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [isAdAdded, setIsAdAdded] = useState(false);\r\n const [isUploadingImage, setIsUploadingImage] = useState(false);\r\n const [isUploadingImageError, setIsUploadingImageError] = useState(false);\r\n const [isShowImgDlg, setIsShowImgDlg] = useState(false);\r\n const [imageIdToShow, setImageIdToShow] = useState('');\r\n const [isDeletingImage, setIsDeletingImageageIdToShow] = useState(false);\r\n const timerFileExtensionRef = useRef(null);\r\n const [showFileExtensionWarning, setShowFileExtensionWarning] = React.useState(false);\r\n const [editorState, setEditorState] = React.useState(EditorState.createEmpty());\r\n const [errorText, setErrorText] = useState('');\r\n const [initialEditorState, setInitialEditorState] = useState(false);\r\n const [isTelephoneValid, setIsTelephoneValid] = useState(true);\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [ispostedSuccess, setPostedSuccess] = useState(false); \r\n const [duration, setDuration] = useState(1);\r\n const timerErrorTextRef = useRef(null);\r\n const [isModified, setIsModified] = useState(false);\r\n const [initialDuration, setInitialDuration] = useState(8);\r\n const [isEditting, setIsEditting] = useState(false);\r\n const [isRemoveSuccess, setIsRemoveSuccess] = useState(false);\r\n const [miscellaneousText, setMiscellaneousText] = useState('');\r\n \r\n // memorize the value\r\n // this is to avoid \"React Hook React.useEffect has missing dependencies\" warning\r\n const pageId = useMemo(() => {\r\n if(editPageId === null || editPageId.length === undefined || !editPageId || editPageId.length === 0){\r\n return uuid.v1();\r\n }\r\n\r\n return editPageId;\r\n }, [editPageId]);\r\n \r\n React.useEffect(() => {\r\n const onUnload = (event ) => {\r\n if(!isAdAdded && isModified){\r\n //classifiedAdService.cleanupIntermediaryAd(pageId);\r\n event.preventDefault();\r\n event.returnValue = 'Your changes will be lost';\r\n }\r\n };\r\n\r\n async function fetchData() {\r\n console.log('fetching data for edit');\r\n let ad = await classifiedAdService.getForEdit(editPageId);\r\n console.log('get for edit')\r\n if(ad){\r\n console.log(ad)\r\n setTitle(ad.title);\r\n setShortDescription(ad.shortDescription);\r\n\r\n if(ad.description && ad.description !== undefined && ad.description.length > 3){\r\n let editorState;\r\n if(!utilService.isJsonString(ad.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(ad.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(ad.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n setInitialEditorState(editorState);\r\n setEditorState(editorState);\r\n }\r\n\r\n setInitialDuration(ad.durationWeeks);\r\n setListInputPics(ad.thumbnails);\r\n setTelephone(ad.telephone);\r\n setEmail(ad.email);\r\n setIsEmailValid(utilService.isEmailPatternValid(ad.email));\r\n setIsEditting(true)\r\n }\r\n }\r\n \r\n if(editMode){\r\n fetchData();\r\n }\r\n \r\n console.log(\"mounted \" + pageId)\r\n clearTimeout(timerFileExtensionRef.current);\r\n clearTimeout(timerErrorTextRef.current);\r\n window.addEventListener(\"beforeunload\", onUnload);\r\n return () => window.removeEventListener(\"beforeunload\", onUnload);\r\n },[pageId,isAdAdded,isModified,editMode,editPageId]);\r\n\r\n const hideExtensionWarning = () => setShowFileExtensionWarning(false)\r\n const hideErrorText = () => setErrorText('')\r\n\r\n const handleTitleChange = async(value) => {\r\n setTitle(value);\r\n console.log(\"title \" + title);\r\n setIsModified(true);\r\n }\r\n\r\n const handleShortDescriptionChange = async(value) => {\r\n setShortDescription(value);\r\n isTextValid(value, 50)\r\n setIsModified(true);\r\n }\r\n\r\n const handleTelephoneChange = async(value) => {\r\n setTelephone(value);\r\n setIsTelephoneValid(true)\r\n setIsModified(true);\r\n\r\n if(!value || value.length === 0){\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/);\r\n if (!value.match(pattern)) { \r\n setIsTelephoneValid(false)\r\n return;\r\n }\r\n }\r\n\r\n const handleEmailChange = async(value) => {\r\n setEmail(value);\r\n setIsModified(true);\r\n\r\n console.log(value);\r\n if(!value || value === 0){\r\n return;\r\n }\r\n \r\n setIsEmailValid(utilService.isEmailPatternValid(value));\r\n }\r\n\r\n const InitWindowStyles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n flexDirection: \"column\",\r\n },\r\n rowContainer: {\r\n flex: 1, \r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n text: {\r\n flex: 0.3,\r\n textAlign: \"right\", \r\n marginRight: 10, \r\n marginLeft: 10\r\n },\r\n textLeft: {\r\n flex: 0.1,\r\n textAlign: \"left\", \r\n marginRight: 10, \r\n marginLeft: 10\r\n },\r\n textInput: {\r\n flex: 1,\r\n backgroundColor: 'white', \r\n borderColor: 'black',\r\n marginRight: 10\r\n },\r\n updateBtnView: {\r\n flex: 0.95, \r\n justifyContent: \"flex-end\", \r\n alignItems: 'center', \r\n flexDirection: \"row\", \r\n marginRight: 10, \r\n marginTop: 10\r\n },\r\n textBtn: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n attachFileBtnView: {\r\n flex: 1, \r\n justifyContent: \"flex-start\", \r\n alignItems: 'center', \r\n flexDirection: \"row\", \r\n marginRight: 10, \r\n marginTop: 10,\r\n marginLeft: 10\r\n }\r\n })\r\n\r\n const onShowPicture = (imageId) => {\r\n setIsShowImgDlg(true);\r\n setImageIdToShow(imageId);\r\n };\r\n\r\n const onCancelPicture = async (imageId) => {\r\n setIsDeletingImageageIdToShow(true)\r\n var result = await classifiedAdService.deleteImage(pageId, imageId);\r\n if(result){\r\n var picRemoved = listInputPics.filter((element) => { return element.id !== imageId; })\r\n setListInputPics(picRemoved);\r\n }\r\n setIsDeletingImageageIdToShow(false)\r\n };\r\n\r\n const onUploadFileClick = () => {\r\n // `current` points to the mounted file input element\r\n inputFile.current.click();\r\n };\r\n\r\n const onPostClick = async () => {\r\n let data = '';\r\n const state = editorState.getCurrentContent();\r\n const editorText = editorState.getCurrentContent().getPlainText('\\u0001');\r\n if (editorText.length < 2) {\r\n data = '';\r\n }\r\n else {\r\n data = JSON.stringify(convertToRaw(state));\r\n }\r\n\r\n let userId = undefined;\r\n if(authenticationService.isUserLoggedIn()){\r\n userId = authenticationService.getUserID();\r\n }\r\n\r\n var result = await classifiedAdService.postAd(title, \r\n shortDescription,\r\n data,\r\n pageId,\r\n telephone,\r\n email,\r\n userId,\r\n duration,\r\n category);\r\n \r\n if(result){\r\n setIsAdAdded(true);\r\n setPostedSuccess(true);\r\n return;\r\n }\r\n\r\n setErrorText('There was an error posting the ad. Please try again later');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideErrorText, 5000);\r\n \r\n setPostedSuccess(false);\r\n };\r\n\r\n const deleteAd = async () => {\r\n setMiscellaneousText('Trying to remove the ad\\r\\nPlease wait')\r\n var result = await classifiedAdService.deleteAd(pageId);\r\n if(!result){\r\n setErrorText('There was an error removing your ad');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideErrorText, 5000);\r\n setIsRemoveSuccess(false);\r\n return;\r\n }\r\n\r\n setIsRemoveSuccess(true);\r\n }\r\n\r\n const onRemoveClick = async () => {\r\n confirmAlert({\r\n title: 'Confirm deletion',\r\n message: 'Are you sure to delete your ad?',\r\n overlayClassName: \"overlay-custom-class-name\",\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => { deleteAd() }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => { console.log('no deletion called`') }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n const onAddFile = async (event) => {\r\n if(!event || !event.target || !event.target.files || event.target.files.length === 0){\r\n return;\r\n }\r\n\r\n var extension = event.target.files[0].name.split('.').pop()\r\n console.log(extension);\r\n switch(extension) {\r\n case 'JPG':\r\n case 'jpg':\r\n case 'GIF':\r\n case 'gif':\r\n case 'BMP':\r\n case 'bmp':\r\n case 'PNG':\r\n case 'png':\r\n break;\r\n default:\r\n setShowFileExtensionWarning(true);\r\n clearTimeout(timerFileExtensionRef.current);\r\n timerFileExtensionRef.current = setTimeout(hideExtensionWarning, 3000); \r\n return;\r\n }\r\n \r\n var imageId = uuid.v1();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n var file = event.target.files[0];\r\n console.log(file);\r\n \r\n setIsUploadingImage(true);\r\n setIsUploadingImageError(false);\r\n\r\n let response = await classifiedAdService.addNewImage(file, pageId, imageId);\r\n setIsUploadingImage(false);\r\n\r\n if(!response){\r\n setIsUploadingImageError(true);\r\n return;\r\n }\r\n \r\n setIsUploadingImageError(false);\r\n setListInputPics(response);\r\n setIsModified(true);\r\n }\r\n\r\n const renderThumbnailImage = (thmbnail) => {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderInputPictures = () => {\r\n if(!listInputPics || listInputPics.length === 0){\r\n return;\r\n }\r\n\r\n return (\r\n {listInputPics.map(renderThumbnailImage)}\r\n ); \r\n }\r\n\r\n const renderUploadingImage = () => {\r\n if(!isUploadingImage){\r\n return;\r\n }\r\n\r\n return (\r\n Uploading image \r\n );\r\n }\r\n\r\n const renderDeletingImage = () => {\r\n if(!isDeletingImage){\r\n return;\r\n }\r\n\r\n return (\r\n Deleting image \r\n );\r\n }\r\n\r\n const renderFileExtensionWarning = () => {\r\n if(!showFileExtensionWarning){\r\n return;\r\n }\r\n\r\n return (\r\n Unsupported file format \r\n );\r\n }\r\n\r\n const renderUploadingImageError = () => {\r\n if(!isUploadingImageError){\r\n return;\r\n }\r\n\r\n return (\r\n Error uploading image \r\n );\r\n }\r\n\r\n const renderShowImgDlg = () => {\r\n return \r\n }\r\n\r\n function onShowImgDlgClose() {\r\n setIsShowImgDlg(false);\r\n }\r\n\r\n const renderTitleLabel = () => {\r\n if(!title || title.length === 0){\r\n return ( \r\n Title:\r\n * \r\n \r\n )\r\n }\r\n return Title:\r\n }\r\n\r\n const renderTelephoneLabel = () => {\r\n if(!isTelephoneValid){\r\n return ( \r\n \r\n Telephone:\r\n * \r\n \r\n )\r\n }\r\n return (\r\n \r\n Telephone:\r\n \r\n\r\n );\r\n }\r\n\r\n const renderEmailLabel = () => {\r\n if(!isEmailValid){\r\n return (\r\n Email:\r\n *\r\n \r\n );\r\n }\r\n\r\n return (\r\n Email:\r\n );\r\n }\r\n\r\n const onRichTextEditorStateChanged = (state) => {\r\n setEditorState(state);\r\n const editorText = state.getCurrentContent().getPlainText('\\u0001');\r\n console.log(editorText)\r\n isTextValid(editorText, 2000);\r\n setIsModified(true);\r\n }\r\n\r\n const isTextValid = (inputText, numberOfWords) => {\r\n let words = inputText.split(' ').filter(Boolean);\r\n \r\n if(inputText && inputText.length > 0 && words.length > numberOfWords){\r\n setErrorText('Exceeded number of words');\r\n return false;\r\n }\r\n\r\n setErrorText('');\r\n return true;\r\n }\r\n\r\n const isFormValid = () => {\r\n if(!title || title.length === 0){\r\n return false;\r\n }\r\n\r\n if(errorText && errorText.length > 0){\r\n return false;\r\n }\r\n\r\n return isTelephoneValid && isEmailValid;\r\n }\r\n\r\n const renderPostedSuccess = () => {\r\n if (ispostedSuccess) {\r\n return \r\n }\r\n }\r\n\r\n const renderRemoveSuccess = () => {\r\n if (isRemoveSuccess) {\r\n return \r\n }\r\n }\r\n\r\n const renderMiscellaneous = () => {\r\n if(!miscellaneousText || miscellaneousText.length < 1){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n {miscellaneousText}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderValidation = () => {\r\n if(!errorText || errorText.length < 1){\r\n return;\r\n }\r\n \r\n return (\r\n \r\n \r\n {errorText}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderPostButton = () => {\r\n if(!isEditting){\r\n return (Post);\r\n }\r\n\r\n return (Update);\r\n }\r\n\r\n const renderRemoveButton = () => {\r\n if(!isEditting){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const onDurationChannged = async (count) => {\r\n setDuration(count);\r\n setIsModified(true);\r\n }\r\n \r\n const renderItems = () => {\r\n return(\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n {renderRemoveButton()}\r\n
\r\n \r\n \r\n {renderTitleLabel()}\r\n \r\n \r\n \r\n Short Description:\r\n \r\n \r\n \r\n \r\n \r\n Description\r\n \r\n \r\n \r\n \r\n \r\n Attach Pictures:\r\n \r\n \r\n \r\n \r\n {renderInputPictures()}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {renderUploadingImage()}\r\n {renderUploadingImageError()}\r\n {renderDeletingImage()}\r\n {renderFileExtensionWarning()}\r\n \r\n \r\n \r\n \r\n {renderTelephoneLabel()}\r\n \r\n \r\n \r\n \r\n \r\n {renderEmailLabel()}\r\n \r\n \r\n \r\n
\r\n ); \r\n }\r\n\r\n // main render\r\n return (\r\n
\r\n {renderMiscellaneous()}\r\n {renderValidation()}\r\n {renderItems()}\r\n {renderShowImgDlg()}\r\n {renderPostedSuccess()}\r\n {renderRemoveSuccess()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedAdPostDesktop;","import { View } from 'react-native';\r\nimport RadioBtn from '../../shared/Controls/RadioBtn'\r\nimport ClassifiedAdPostDesktop from './ClassifiedAdPostDesktop'\r\n\r\nfunction ClassifiedPostHomeDesktop({onSectionChanged, section, editPageId, editMode}) {\r\n \r\n const handleSectionChange = (event, value) => {\r\n onSectionChanged(value);\r\n };\r\n\r\n const renderRadioBtns = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderLinks = () => {\r\n return renderRadioBtns(); \r\n }\r\n\r\n const renderTitle = () => {\r\n return(\r\n \r\n

Classified

\r\n
\r\n );\r\n }\r\n\r\n const renderClassifiedAdPost = () => {\r\n if (section === \"RE\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"FS\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"SE\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"OT\") {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n // main render\r\n return (\r\n
\r\n {renderTitle()}\r\n {renderLinks()}\r\n {renderClassifiedAdPost()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedPostHomeDesktop;\r\n","import { View, Text, TextInput, StyleSheet } from 'react-native';\r\nimport React, { useState, useRef, useMemo } from 'react';\r\nimport './ClassifiedAdPost.css';\r\nimport Button from 'react-bootstrap/Button';\r\nimport AttachFile from '@material-ui/icons/AttachFile';\r\nimport uuid from 'react-native-uuid';\r\nimport classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport ShowImageDlg from './ShowImageDlg'\r\nimport Cancel from '@material-ui/icons/Cancel';\r\nimport { EditorState } from 'draft-js';\r\nimport { Navigate } from \"react-router-dom\";\r\nimport { convertFromRaw } from 'draft-js';\r\nimport authenticationService from '../../shared/services/authentication.service'\r\nimport { confirmAlert } from 'react-confirm-alert';\r\nimport utilService from '../../shared/services/utilservice'\r\n\r\nfunction ClassifiedAdPostMobile({category,editPageId,editMode}) {\r\n const [title, setTitle] = useState('');\r\n const [shortDescription, setShortDescription] = useState('');\r\n const [listInputPics, setListInputPics] = React.useState([]);\r\n const inputFile = useRef(null);\r\n const [telephone, setTelephone] = useState('');\r\n const [email, setEmail] = useState('');\r\n const [isAdAdded, setIsAdAdded] = useState(false);\r\n const [isUploadingImage, setIsUploadingImage] = useState(false);\r\n const [isUploadingImageError, setIsUploadingImageError] = useState(false);\r\n const [isShowImgDlg, setIsShowImgDlg] = useState(false);\r\n const [imageIdToShow, setImageIdToShow] = useState('');\r\n const [isDeletingImage, setIsDeletingImageageIdToShow] = useState(false);\r\n const timerFileExtensionRef = useRef(null);\r\n const [showFileExtensionWarning, setShowFileExtensionWarning] = React.useState(false);\r\n const [editorState, setEditorState] = React.useState(EditorState.createEmpty());\r\n const [errorText, setErrorText] = useState('');\r\n const [isTelephoneValid, setIsTelephoneValid] = useState(true);\r\n const [isEmailValid, setIsEmailValid] = useState(false);\r\n const [ispostedSuccess, setPostedSuccess] = useState(false); \r\n const [duration, setDuration] = useState(8);\r\n const timerErrorTextRef = useRef(null);\r\n const [isModified, setIsModified] = useState(false);\r\n const [isEditting, setIsEditting] = useState(false);\r\n const [isRemoveSuccess, setIsRemoveSuccess] = useState(false);\r\n const [miscellaneousText, setMiscellaneousText] = useState('');\r\n const [errorDuration, setErrorDuration] = useState('');\r\n const [description, setDescription] = useState('');\r\n const [isPosting, setIsPosting] = useState(false);\r\n \r\n // memorize the value\r\n // this is to avoid \"React Hook React.useEffect has missing dependencies\" warning\r\n const pageId = useMemo(() => {\r\n if(editPageId === null || editPageId.length === undefined || !editPageId || editPageId.length === 0){\r\n return uuid.v1();\r\n }\r\n\r\n return editPageId;\r\n }, [editPageId]);\r\n \r\n React.useEffect(() => {\r\n const onUnload = (event ) => {\r\n if(!isAdAdded && isModified){\r\n //classifiedAdService.cleanupIntermediaryAd(pageId);\r\n event.preventDefault();\r\n event.returnValue = 'Your changes will be lost';\r\n }\r\n };\r\n\r\n async function fetchData() {\r\n console.log('fetching data for edit');\r\n let ad = await classifiedAdService.getForEdit(editPageId);\r\n console.log('get for edit')\r\n if(ad){\r\n console.log(ad)\r\n setTitle(ad.title);\r\n setShortDescription(ad.shortDescription);\r\n\r\n if(ad.description && ad.description !== undefined && ad.description.length > 3){\r\n \r\n if(!utilService.isJsonString(ad.description)){\r\n setDescription(ad.description);\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(ad.description));\r\n const editorState = EditorState.createWithContent(contentState);\r\n setDescription(editorState.getCurrentContent().getPlainText('\\u0001'));\r\n }\r\n\r\n setEditorState(editorState);\r\n }\r\n\r\n setDuration(ad.durationWeeks);\r\n setListInputPics(ad.thumbnails);\r\n setTelephone(ad.telephone);\r\n setEmail(ad.email);\r\n setIsEmailValid(utilService.isEmailPatternValid(ad.email));\r\n setIsEditting(true)\r\n }\r\n }\r\n \r\n if(editMode){\r\n fetchData();\r\n }\r\n \r\n console.log(\"mounted \" + pageId)\r\n clearTimeout(timerFileExtensionRef.current);\r\n clearTimeout(timerErrorTextRef.current);\r\n window.addEventListener(\"beforeunload\", onUnload);\r\n return () => window.removeEventListener(\"beforeunload\", onUnload);\r\n },[pageId,isAdAdded,isModified,editMode,editPageId,editorState]);\r\n\r\n const hideExtensionWarning = () => setShowFileExtensionWarning(false)\r\n const hideErrorText = () => setErrorText('')\r\n const hideDurationError = () => setErrorDuration('')\r\n\r\n const handleTitleChange = async(value) => {\r\n setTitle(value);\r\n console.log(\"title \" + title);\r\n setIsModified(true);\r\n }\r\n\r\n const handleShortDescriptionChange = async(value) => {\r\n setShortDescription(value);\r\n isTextValid(value, 100)\r\n setIsModified(true);\r\n }\r\n\r\n const handleDescriptionChange = async(value) => {\r\n setDescription(value);\r\n setIsModified(true);\r\n }\r\n\r\n const handleTelephoneChange = async(value) => {\r\n setTelephone(value);\r\n setIsTelephoneValid(true)\r\n setIsModified(true);\r\n\r\n if(!value || value.length === 0){\r\n return;\r\n }\r\n\r\n var pattern = new RegExp(/^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/);\r\n if (!value.match(pattern)) { \r\n setIsTelephoneValid(false)\r\n return;\r\n }\r\n }\r\n\r\n const handleEmailChange = async(value) => {\r\n setEmail(value);\r\n setIsModified(true);\r\n\r\n console.log(value);\r\n if(!value || value === 0){\r\n return;\r\n }\r\n \r\n setIsEmailValid(utilService.isEmailPatternValid(value));\r\n }\r\n\r\n const InitWindowStyles = StyleSheet.create({\r\n root: {\r\n flex: 1,\r\n flexDirection: \"column\",\r\n },\r\n rowContainer: {\r\n flex: 1, \r\n flexDirection: \"row\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n },\r\n text: {\r\n flex: 0.3,\r\n textAlign: \"right\", \r\n marginRight: 10, \r\n marginLeft: 10\r\n },\r\n textLeft: {\r\n flex: 0.1,\r\n textAlign: \"left\", \r\n marginRight: 10, \r\n marginLeft: 10\r\n },\r\n textInput: {\r\n flex: 1,\r\n backgroundColor: 'white', \r\n borderColor: 'black',\r\n marginRight: 10\r\n },\r\n updateBtnView: {\r\n flex: 0.95, \r\n justifyContent: \"flex-end\", \r\n alignItems: 'center', \r\n flexDirection: \"row\", \r\n marginRight: 10, \r\n marginTop: 10\r\n },\r\n textBtn: {\r\n fontSize: 14,\r\n lineHeight: 16,\r\n fontWeight: 'bold',\r\n letterSpacing: 0.2,\r\n color: 'white',\r\n },\r\n attachFileBtnView: {\r\n flex: 1, \r\n justifyContent: \"flex-start\", \r\n alignItems: 'center', \r\n flexDirection: \"row\", \r\n marginRight: 10, \r\n marginTop: 10,\r\n marginLeft: 10\r\n }\r\n })\r\n\r\n const onShowPicture = (imageId) => {\r\n setIsShowImgDlg(true);\r\n setImageIdToShow(imageId)\r\n };\r\n\r\n const onCancelPicture = async (imageId) => {\r\n setIsDeletingImageageIdToShow(true)\r\n var result = await classifiedAdService.deleteImage(pageId, imageId);\r\n if(result){\r\n var picRemoved = listInputPics.filter((element) => { return element.id !== imageId; })\r\n setListInputPics(picRemoved);\r\n }\r\n setIsDeletingImageageIdToShow(false)\r\n };\r\n\r\n const onUploadFileClick = () => {\r\n // `current` points to the mounted file input element\r\n inputFile.current.click();\r\n };\r\n\r\n const onPostClick = async () => {\r\n let userId = undefined;\r\n if(authenticationService.isUserLoggedIn()){\r\n userId = authenticationService.getUserID();\r\n }\r\n\r\n setIsPosting(true);\r\n setMiscellaneousText('Uploading')\r\n var result = await classifiedAdService.postAd(title, \r\n shortDescription,\r\n description,\r\n pageId,\r\n telephone,\r\n email,\r\n userId,\r\n duration,\r\n category);\r\n \r\n setIsPosting(false);\r\n setMiscellaneousText('')\r\n if(result){\r\n setIsAdAdded(true);\r\n setPostedSuccess(true);\r\n return;\r\n }\r\n\r\n setErrorText('There was an error posting the ad. Please try again later');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideErrorText, 5000);\r\n \r\n setPostedSuccess(false);\r\n };\r\n\r\n const deleteAd = async () => {\r\n setMiscellaneousText('Trying to remove the ad\\r\\nPlease wait')\r\n var result = await classifiedAdService.deleteAd(pageId);\r\n if(!result){\r\n setErrorText('There was an error removing your ad');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideErrorText, 5000);\r\n setIsRemoveSuccess(false);\r\n return;\r\n }\r\n\r\n setIsRemoveSuccess(true);\r\n }\r\n\r\n const onRemoveClick = async () => {\r\n confirmAlert({\r\n title: 'Confirm deletion',\r\n message: 'Are you sure to delete your ad?',\r\n overlayClassName: \"overlay-custom-class-name\",\r\n buttons: [\r\n {\r\n label: 'Yes',\r\n onClick: () => { deleteAd() }\r\n },\r\n {\r\n label: 'No',\r\n onClick: () => { console.log('no deletion called`') }\r\n }\r\n ]\r\n });\r\n }\r\n\r\n const onAddFile = async (event) => {\r\n if(!event || !event.target || !event.target.files || event.target.files.length === 0){\r\n return;\r\n }\r\n\r\n var extension = event.target.files[0].name.split('.').pop()\r\n console.log(extension);\r\n switch(extension) {\r\n case 'JPG':\r\n case 'jpg':\r\n case 'GIF':\r\n case 'gif':\r\n case 'BMP':\r\n case 'bmp':\r\n case 'PNG':\r\n case 'png':\r\n break;\r\n default:\r\n setShowFileExtensionWarning(true);\r\n clearTimeout(timerFileExtensionRef.current);\r\n timerFileExtensionRef.current = setTimeout(hideExtensionWarning, 3000); \r\n return;\r\n }\r\n \r\n var imageId = uuid.v1();\r\n event.stopPropagation();\r\n event.preventDefault();\r\n var file = event.target.files[0];\r\n console.log(file);\r\n \r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n \r\n setIsUploadingImage(true);\r\n setIsUploadingImageError(false);\r\n\r\n let response = await classifiedAdService.addNewImage(file, pageId, imageId);\r\n setIsUploadingImage(false);\r\n\r\n if(!response){\r\n setIsUploadingImageError(true);\r\n return;\r\n }\r\n \r\n setIsUploadingImageError(false);\r\n setListInputPics(response);\r\n setIsModified(true);\r\n }\r\n\r\n const renderThumbnailImage = (thmbnail) => {\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderInputPictures = () => {\r\n if(!listInputPics || listInputPics.length === 0){\r\n return;\r\n }\r\n\r\n return (\r\n {listInputPics.map(renderThumbnailImage)}\r\n ); \r\n }\r\n\r\n const renderUploadingImage = () => {\r\n if(!isUploadingImage){\r\n return;\r\n }\r\n\r\n return (\r\n Uploading image \r\n );\r\n }\r\n\r\n const renderDeletingImage = () => {\r\n if(!isDeletingImage){\r\n return;\r\n }\r\n\r\n return (\r\n Deleting image \r\n );\r\n }\r\n\r\n const renderFileExtensionWarning = () => {\r\n if(!showFileExtensionWarning){\r\n return;\r\n }\r\n\r\n return (\r\n Unsupported file format \r\n );\r\n }\r\n\r\n const renderUploadingImageError = () => {\r\n if(!isUploadingImageError){\r\n return;\r\n }\r\n\r\n return (\r\n Error uploading image \r\n );\r\n }\r\n\r\n const renderShowImgDlg = () => {\r\n return \r\n }\r\n\r\n function onShowImgDlgClose() {\r\n setIsShowImgDlg(false);\r\n }\r\n\r\n const renderTitleLabel = () => {\r\n if(!title || title.length === 0){\r\n return ( \r\n Title:\r\n * \r\n \r\n )\r\n }\r\n return Title:\r\n }\r\n\r\n const renderTelephoneLabel = () => {\r\n if(!isTelephoneValid){\r\n return ( \r\n \r\n Telephone:\r\n * \r\n \r\n )\r\n }\r\n return (\r\n \r\n Telephone:\r\n \r\n\r\n );\r\n }\r\n\r\n const renderEmailLabel = () => {\r\n if(!isEmailValid){\r\n return (\r\n Email:\r\n *\r\n \r\n );\r\n }\r\n\r\n return (\r\n Email:\r\n );\r\n }\r\n\r\n const isTextValid = (inputText, numberOfWords) => {\r\n let words = inputText.split(' ').filter(Boolean);\r\n \r\n if(inputText && inputText.length > 0 && words.length > numberOfWords){\r\n setErrorText('Exceeded number of words');\r\n return false;\r\n }\r\n\r\n setErrorText('');\r\n return true;\r\n }\r\n\r\n const isFormValid = () => {\r\n if(isPosting){\r\n return false;\r\n }\r\n\r\n if(!title || title.length === 0){\r\n return false;\r\n }\r\n\r\n if(errorText && errorText.length > 0){\r\n return false;\r\n }\r\n\r\n if(duration <= 0 || duration > 12){\r\n return false;\r\n }\r\n\r\n if(errorDuration && errorDuration.length > 0){\r\n return false;\r\n }\r\n \r\n return isTelephoneValid && isEmailValid;\r\n }\r\n\r\n const renderPostedSuccess = () => {\r\n if (ispostedSuccess) {\r\n return \r\n }\r\n }\r\n\r\n const renderRemoveSuccess = () => {\r\n if (isRemoveSuccess) {\r\n return \r\n }\r\n }\r\n\r\n const renderMiscellaneous = () => {\r\n if(!miscellaneousText || miscellaneousText.length < 1){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n \r\n {miscellaneousText}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderValidation = () => {\r\n if(!errorText || errorText.length < 1){\r\n return;\r\n }\r\n \r\n return (\r\n \r\n \r\n {errorText}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderDurationValidation = () => {\r\n if(!errorDuration || errorDuration.length < 1){\r\n return;\r\n }\r\n \r\n return (\r\n \r\n \r\n {errorDuration}\r\n \r\n \r\n );\r\n }\r\n\r\n const renderPostButtonText = () => {\r\n if(!isEditting){\r\n return (Post);\r\n }\r\n\r\n return (Update);\r\n }\r\n\r\n const renderRemoveButton = () => {\r\n if(!isEditting){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const onDurationFocusOut = (e) => {\r\n if(duration <= 0){\r\n setErrorDuration('Must be at least 1 week duration');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideDurationError, 5000);\r\n setDuration(1);\r\n }\r\n }\r\n\r\n const onDurationChannged = (e) => {\r\n const value = e.target.value.replace(/\\D/g, \"\");\r\n console.log('onDurationChannged')\r\n clearTimeout(timerErrorTextRef.current);\r\n hideDurationError();\r\n\r\n if(value > 12){\r\n setErrorDuration('Maximum 12 weeks');\r\n clearTimeout(timerErrorTextRef.current);\r\n timerErrorTextRef.current = setTimeout(hideDurationError, 5000);\r\n return;\r\n }\r\n\r\n setDuration(value);\r\n console.log(value)\r\n //setIsModified(true);\r\n }\r\n\r\n const renderItems = () => {\r\n return(\r\n
\r\n \r\n \r\n \r\n \r\n {renderRemoveButton()}\r\n \r\n \r\n \r\n Duration (weeks):\r\n \r\n \r\n \r\n {renderDurationValidation()} \r\n \r\n {renderTitleLabel()}\r\n \r\n \r\n \r\n Short Description:\r\n \r\n \r\n \r\n Detailed Description:\r\n \r\n \r\n \r\n Attach Pictures:\r\n \r\n\r\n \r\n \r\n \r\n {renderInputPictures()}\r\n \r\n \r\n \r\n {renderUploadingImage()}\r\n {renderUploadingImageError()}\r\n {renderDeletingImage()}\r\n {renderFileExtensionWarning()}\r\n \r\n \r\n \r\n {renderTelephoneLabel()}\r\n \r\n \r\n \r\n {renderEmailLabel()}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n // main render\r\n return (\r\n
\r\n {renderMiscellaneous()}\r\n {renderValidation()}\r\n {renderItems()}\r\n {renderShowImgDlg()}\r\n {renderPostedSuccess()}\r\n {renderRemoveSuccess()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedAdPostMobile;","import { View, Text } from 'react-native';\r\nimport ClassifiedAdPostMobile from './ClassifiedAdPostMobile'\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\n\r\nfunction ClassifiedPostHomeMobile({onSectionChanged, section, editPageId, editMode}) {\r\n \r\n const renderCategoryDropdown = () => {\r\n return(\r\n \r\n onSectionChanged('SE')}>Services\r\n \r\n onSectionChanged('RE')}>Real Estate\r\n onSectionChanged('FS')}>For Sale\r\n \r\n onSectionChanged('OT')}>Other\r\n \r\n \r\n );\r\n }\r\n\r\n const renderLinks = () => {\r\n return renderCategoryDropdown(); \r\n }\r\n\r\n const renderTitle = () => {\r\n let category = '';\r\n\r\n switch (section) {\r\n case 'RE':\r\n category = \"Real Estate\";\r\n break;\r\n case 'FS':\r\n category = \"For Sale\";\r\n break;\r\n case 'SE':\r\n category = \"Services\";\r\n break;\r\n case 'OT':\r\n category = \"Other\";\r\n break;\r\n default:\r\n category = \"\";\r\n break; \r\n }\r\n\r\n if(category.length < 1){\r\n return(\r\n \r\n Post ad\r\n \r\n );\r\n }\r\n\r\n return(\r\n \r\n Posting ad in \r\n {category}\r\n \r\n );\r\n }\r\n\r\n const renderClassifiedAdPost = () => {\r\n if (section === \"RE\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"FS\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"SE\") {\r\n return (\r\n \r\n );\r\n }\r\n\r\n if (section === \"OT\") {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n // main render\r\n return (\r\n
\r\n {renderTitle()}\r\n {renderLinks()}\r\n {renderClassifiedAdPost()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedPostHomeMobile;\r\n","import React, { useState} from 'react';\r\nimport ClassifiedPostHomeDesktop from './ClassifiedPostHomeDesktop';\r\nimport ClassifiedPostHomeMobile from './ClassifiedPostHomeMobile';\r\n\r\nfunction ClassifiedPostHome() {\r\n const [section, setSection] = useState('');\r\n const [editPageId, setEditPageId] = useState('');\r\n const [editMode, setEditMode] = useState(false);\r\n const [width, setWidth] = useState(window.innerWidth);\r\n\r\n function handleWindowSizeChange() {\r\n setWidth(window.innerWidth);\r\n }\r\n\r\n React.useEffect(() => { \r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n }\r\n\r\n }, []);\r\n\r\n const isMobile = width <= 768;\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const onPageLoad = async () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n setEditPageId('');\r\n\r\n if(!parsed || !parsed.token || !parsed.category) {\r\n return;\r\n }\r\n \r\n console.log('parsed')\r\n setSection(parsed.category);\r\n setEditPageId(parsed.token);\r\n setEditMode(true);\r\n }\r\n\r\n const onSectionChanged = (value) => {\r\n setSection(value)\r\n }\r\n\r\n const renderDesktop = () => {\r\n return \r\n }\r\n\r\n const renderMobile = () => {\r\n return \r\n }\r\n\r\n const renderEnvironment = () => {\r\n if(!isMobile){\r\n return renderDesktop();\r\n }\r\n\r\n return renderMobile();\r\n }\r\n\r\n // main render\r\n return (\r\n
\r\n {renderEnvironment()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedPostHome;\r\n","import { View, Text } from 'react-native';\r\n\r\nfunction ClassifiedPosted() {\r\n const renderPosted = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n console.log('parsed');\r\n console.log(parsed.email);\r\n console.log(parsed.title);\r\n\r\n let isParsed = parsed && parsed.email && parsed.title;\r\n\r\n if(isParsed){\r\n return (\r\n \r\n Your classified ad titled {parsed.title} has been accepted\r\n We sent an email to {parsed.email}\r\n Please open the email and click on the link to confirm your submission\r\n Your ad will be posted after the admin approval\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n We are having trouble processing your request\r\n Please try again later\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderPosted()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedPosted;","import classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport { useState } from 'react';\r\nimport { View, Text } from 'react-native';\r\n\r\nfunction ConfirmClassifiedAd() {\r\n const [isConfirmationSuccess, setIsConfirmationSuccess] = useState(false); \r\n const [isParseSuccess, setIsParseSuccess] = useState(true);\r\n const [isActivating, setIsActivating] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const onPageLoad = async () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n\r\n if(!parsed || !parsed.email || !parsed.token) {\r\n setIsParseSuccess(false);\r\n return;\r\n }\r\n\r\n setIsActivating(true);\r\n\r\n var result = await classifiedAdService.confirmAd(parsed.email, parsed.token);\r\n setIsActivating(false);\r\n if(!result) {\r\n\r\n setIsError(true);\r\n return;\r\n }\r\n\r\n setIsConfirmationSuccess(true)\r\n }\r\n\r\n const renderInfo = () => {\r\n if(isConfirmationSuccess){\r\n return (\r\n \r\n Your email has been successfully confirmed\r\n Your ad will be displayed after the admin approval\r\n \r\n );\r\n }\r\n\r\n if(!isParseSuccess){\r\n return (\r\n \r\n There appears to be an unauthorized usage of this site\r\n Please use the site responsibly;\r\n \r\n );\r\n }\r\n\r\n if(isActivating){\r\n return (\r\n \r\n We are trying to confirm you email\r\n Please stand by\r\n \r\n );\r\n }\r\n\r\n if(isError){\r\n return (\r\n \r\n There was an error confirming your email\r\n We apologize for the inconvenience\r\n Please try again later\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderInfo()}\r\n
\r\n );\r\n}\r\n\r\nexport default ConfirmClassifiedAd;","import React, { useState } from 'react';\r\nimport classifiedAdService from '../../../shared/services/classifiedAdService'\r\nimport { Text, View } from 'react-native';\r\nimport PostAdEditor from '../../../shared/Controls/PostAdEditor'\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport { convertFromRaw } from 'draft-js';\r\nimport CheckCircle from '@material-ui/icons/CheckCircle';\r\nimport utilService from '../../../shared/services/utilservice'\r\n\r\nfunction ClassifiedAdsAdmin() {\r\n const [activeAds, setActiveAds] = useState([]);\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n let ads = await classifiedAdService.fetchClassifiedsForAdmin();\r\n setActiveAds(ads);\r\n }\r\n fetchData();\r\n\r\n }, []);\r\n\r\n const renderPostedAdDescription = (postedAd) => {\r\n if(!postedAd.description || postedAd.description === undefined || postedAd.description.length === 0){\r\n return;\r\n }\r\n\r\n let editorState;\r\n if(!utilService.isJsonString(postedAd.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(postedAd.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(postedAd.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n const handleApproveClick = async (postedAd) => {\r\n let response = await classifiedAdService.approveAd(postedAd.id);\r\n \r\n let updatedAds = \r\n activeAds.map(obj => {\r\n if (obj.id === postedAd.id) {\r\n return {...obj, isAdminApproved: response};\r\n }\r\n \r\n return obj;\r\n });\r\n\r\n setActiveAds(updatedAds) \r\n }\r\n\r\n const renderIsEmailConfirmed = (flag) => {\r\n let value = flag ? \"Yes\" : \"No\";\r\n\r\n if(flag){\r\n return (\r\n {value}\r\n \r\n );\r\n }\r\n\r\n return (\r\n {value}\r\n \r\n);\r\n }\r\n\r\n const renderAdminApproveBtn = (postedAd) => {\r\n if (postedAd.isError === undefined) {\r\n let statusColor = postedAd.isAdminApproved ? \"success\" : \"primary\";\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderPostedAd = (postedAd, index) => {\r\n if (postedAd === undefined || postedAd === null) {\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n

\r\n \r\n \r\n {postedAd.title}\r\n \r\n \r\n {postedAd.shortDescription}\r\n \r\n \r\n {renderPostedAdDescription(postedAd)}\r\n \r\n \r\n {postedAd.telephone}\r\n \r\n \r\n {postedAd.email}\r\n \r\n \r\n {postedAd.category}\r\n \r\n \r\n {postedAd.durationWeeks}\r\n \r\n \r\n {renderIsEmailConfirmed(postedAd.isEmailConfirmed)}\r\n \r\n \r\n {renderAdminApproveBtn(postedAd)}\r\n \r\n \r\n {renderThumbnails(postedAd)}\r\n

\r\n );\r\n }\r\n\r\n const renderThumbnails = (postedAd) => {\r\n if(!postedAd.thumbnails || postedAd.thumbnails === undefined || postedAd.thumbnails.length === 0){\r\n return\r\n }\r\n\r\n var thumbnails = postedAd.thumbnails;\r\n return (\r\n {thumbnails.map(renderThumbnailImage)}\r\n \r\n );\r\n }\r\n\r\n const renderThumbnailImage = (thmbnail) => {\r\n if(!thmbnail || thmbnail === undefined || !thmbnail.image){\r\n return;\r\n }\r\n\r\n return(\r\n \r\n \r\n );\r\n }\r\n\r\n const renderActieAds = () => {\r\n if (!activeAds || activeAds.length === 0) {\r\n return;\r\n }\r\n\r\n return (
\r\n \r\n \r\n Title\r\n \r\n \r\n Short Description\r\n \r\n \r\n Description\r\n \r\n \r\n Telephone\r\n \r\n \r\n Email\r\n \r\n \r\n Ctg\r\n \r\n \r\n Dur\r\n \r\n \r\n Confirmed\r\n \r\n \r\n \r\n \r\n \r\n {activeAds.map(renderPostedAd)}\r\n
);\r\n }\r\n\r\n return (\r\n
\r\n \r\n

Last 90 days

\r\n
\r\n {renderActieAds()}\r\n
\r\n )\r\n}\r\n\r\nexport default ClassifiedAdsAdmin\r\n","import { View, Text } from 'react-native';\r\n\r\nfunction ClassifiedRemoveSuccess() {\r\n const renderRemoved = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n console.log('parsed');\r\n console.log(parsed.email);\r\n console.log(parsed.title);\r\n\r\n let isParsed = parsed && parsed.email && parsed.title;\r\n\r\n if(isParsed){\r\n return (\r\n \r\n Your classified ad titled {parsed.title} has been removed\r\n The ad originally was created by the {parsed.email} email\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n We are having trouble processing your request\r\n Please try again later\r\n \r\n );\r\n }\r\n\r\n\r\n // main render\r\n return (\r\n
\r\n {renderRemoved()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedRemoveSuccess;","import React from 'react'\r\nimport './ImageSlider.css';\r\n\r\nconst ImageSlider = ({ slides }) => {\r\n const renderSlides = () => {\r\n if(!slides){\r\n return;\r\n }\r\n \r\n return(\r\n
\r\n {slides.map((t) =>\r\n (\r\n /\r\n ))}\r\n
\r\n );\r\n }\r\n \r\n return(\r\n
\r\n {renderSlides()}\r\n
\r\n );\r\n}\r\n\r\nexport default ImageSlider;","import React, { useState, useCallback } from 'react';\r\nimport { View, Text, TouchableHighlight } from 'react-native';\r\nimport classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport { convertFromRaw } from 'draft-js';\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport PostAdEditor from '../../shared/Controls/PostAdEditor'\r\nimport ImageSlider from '../../shared/Controls/ImageSlider'\r\nimport { Navigate } from \"react-router-dom\";\r\nimport utilService from '../../shared/services/utilservice'\r\n\r\nfunction ClassifiedsCategoryViewer({category}) {\r\n const [verboseCategory, setVerboseCategory] = useState('');\r\n const [ads, setAds] = useState([]);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [viewAdID, setViewAdID] = useState('');\r\n const [isAdSelected, setIsAdSelected] = useState(''); \r\n \r\n const getAndSetVerboseCategory = useCallback(async () => {\r\n switch (category) {\r\n case 'RE':\r\n setVerboseCategory(\"Real Estate\");\r\n break;\r\n case 'FS':\r\n setVerboseCategory(\"For Sale\");\r\n break;\r\n case 'SE':\r\n setVerboseCategory(\"Services\");\r\n break;\r\n default:\r\n setVerboseCategory(\"Other\");\r\n break; \r\n }\r\n }, [category])\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n console.log('ClassifiedsCategoryViewer ' + category);\r\n let ads = await classifiedAdService.getAllForCategory(category);\r\n console.log(ads)\r\n setAds(ads);\r\n setIsLoading(false);\r\n }\r\n getAndSetVerboseCategory();\r\n fetchData();\r\n\r\n }, [category, getAndSetVerboseCategory]);\r\n\r\n const renderCategoryTitle = () => {\r\n return(\r\n {verboseCategory}\r\n \r\n );\r\n }\r\n\r\n const renderThumbnails = (ad) => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderIsLoading = () => {\r\n if(!isLoading){\r\n return;\r\n }\r\n\r\n return(\r\n Loading. Please wait\r\n \r\n );\r\n }\r\n\r\n const handleSelectedFirstAd = async (ad) => {\r\n console.log(ad)\r\n setViewAdID(ad.id)\r\n setIsAdSelected(true)\r\n }\r\n\r\n const onAddPostClick = async (imageId) => {\r\n window.location.href = \"/classifiedPostHome\"\r\n }\r\n\r\n const renderNoAds = () => {\r\n if(isLoading || (ads && ads !== undefined && ads.length > 0)){\r\n return;\r\n }\r\n\r\n return (\r\n \r\n Currently there are no ads in '{verboseCategory}' category. \r\n \r\n Be the first one to add a post\r\n \r\n \r\n );\r\n }\r\n\r\n const renderAdContent = () => {\r\n if(!isAdSelected){\r\n return;\r\n }\r\n\r\n return \r\n }\r\n\r\n const renderContent = (ad) => {\r\n return( handleSelectedFirstAd(ad)}>\r\n \r\n {ad.title}\r\n {ad.shortDescription} \r\n {renderAdDescription(ad)}\r\n {renderThumbnails(ad)}\r\n \r\n \r\n \r\n );\r\n }\r\n const renderAdDescription = (ad) => {\r\n if(!ad || !ad.description || ad.description === undefined || ad.description.length < 3){\r\n return;\r\n }\r\n\r\n let editorState;\r\n if(!utilService.isJsonString(ad.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(ad.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(ad.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n return(\r\n \r\n );\r\n }\r\n\r\n const renderCompressedContent = () => {\r\n if(!ads || ads === undefined || ads === null || ads.length === 0){\r\n return;\r\n }\r\n\r\n return ( \r\n {ads.map(renderContent)} \r\n \r\n );\r\n }\r\n\r\n return(
\r\n {renderIsLoading()}\r\n {renderCategoryTitle()}\r\n {renderCompressedContent()}\r\n {renderAdContent()}\r\n {renderNoAds()}\r\n
\r\n\r\n );\r\n}\r\n\r\nexport default ClassifiedsCategoryViewer;","import React, { useState } from 'react';\r\nimport { View, Text, TouchableHighlight } from 'react-native';\r\nimport { Navigate } from \"react-router-dom\";\r\nimport Dropdown from 'react-bootstrap/Dropdown';\r\nimport DropdownButton from 'react-bootstrap/DropdownButton';\r\nimport classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport { convertFromRaw } from 'draft-js';\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport PostAdEditor from '../../shared/Controls/PostAdEditor'\r\nimport ImageSlider from '../../shared/Controls/ImageSlider'\r\nimport Button from 'react-bootstrap/Button';\r\nimport ClassifiedsCategoryViewer from \"./ClassifiedsCategoryViewer\"\r\nimport utilService from '../../shared/services/utilservice'\r\nimport KeyboardBackspace from '@material-ui/icons/KeyboardBackspace';\r\n\r\nfunction ClassifiedsMainViewer() {\r\n const [category, setCategory] = useState('');\r\n const [initialAds, setInitialAds] = useState([]);\r\n const [initialAdID, setInitialAdID] = useState('');\r\n const [isInitialAdSelected, setIsInitialAdSelected] = useState(false);\r\n const [isInitialMode, setInitialMode] = useState(true);\r\n const [isLoading, setIsLoading] = useState(true);\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n let ads = await classifiedAdService.getFirstInCategories();\r\n setInitialAds(ads);\r\n setIsLoading(false)\r\n }\r\n fetchData();\r\n\r\n }, []);\r\n\r\n const handlePostClick = async () => {\r\n window.location.href = \"/classifiedPostHome\"\r\n }\r\n\r\n const handleBackBtnClick = async () => {\r\n setCategory('');\r\n window.location.href=\"/classifiedsMainViewer\"\r\n }\r\n \r\n const handleCategorySelection = async (ctg) => {\r\n console.log('category ' + ctg);\r\n setCategory(ctg);\r\n setInitialMode(false);\r\n }\r\n\r\n const handleSelectedFirstAd = async (ad) => {\r\n console.log(ad)\r\n setInitialAdID(ad.id)\r\n setIsInitialAdSelected(true)\r\n }\r\n\r\n const getCategory = (ads, ctg) => {\r\n return ads.filter(ad => { return ad.category === ctg; })\r\n }\r\n\r\n const renderAdDescription = (ad) => {\r\n if(!ad || !ad.description || ad.description === undefined || ad.description.length < 3){\r\n return;\r\n }\r\n\r\n let editorState;\r\n if(!utilService.isJsonString(ad.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(ad.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(ad.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderInitialCategoryAd = (ctg, displayCategory) => {\r\n var ads = getCategory(initialAds, ctg);\r\n if(!ads || ads === undefined || ads.length === 0){\r\n return;\r\n }\r\n\r\n return(\r\n
\r\n \r\n handleCategorySelection(ads[0].category)}>\r\n {displayCategory}\r\n \r\n handleSelectedFirstAd(ads[0])}>\r\n \r\n {ads[0].title}\r\n {ads[0].shortDescription}\r\n {renderAdDescription(ads[0])} \r\n \r\n \r\n {renderThumbnails(ads[0])}\r\n \r\n
\r\n );\r\n }\r\n\r\n const renderThumbnails = (ad) => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n const renderIsLoading = () => {\r\n if(!isInitialMode || !isLoading){\r\n return;\r\n }\r\n\r\n return(\r\n Loading. Please wait...\r\n \r\n\r\n );\r\n }\r\n\r\n const renderInitialAds = () => {\r\n if(!isInitialMode || !initialAds || initialAds === undefined || initialAds.length === 0){\r\n return;\r\n }\r\n\r\n return (\r\n
\r\n {renderInitialCategoryAd('SE', 'Services')}\r\n {renderInitialCategoryAd('RE', 'Real Estate')}\r\n {renderInitialCategoryAd('FS', 'For Sale')}\r\n {renderInitialCategoryAd('OT', 'Other')}\r\n
\r\n\r\n ); \r\n }\r\n\r\n const renderBackBtn = () => {\r\n if(!category || category === undefined || category.length === 0){\r\n return;\r\n }\r\n\r\n return(\r\n \r\n \r\n );\r\n }\r\n\r\n const renderTopLevel = () => {\r\n return(\r\n
\r\n \r\n {renderCategoryDropdown()}\r\n {renderBackBtn()}\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderCategoryDropdown = () => {\r\n return(\r\n \r\n handleCategorySelection('SE')}>Services\r\n \r\n handleCategorySelection('RE')}>Real Estate\r\n handleCategorySelection('FS')}>For Sale\r\n \r\n handleCategorySelection('OT')}>Other\r\n \r\n \r\n );\r\n }\r\n\r\n const renderCategoryViewer = () => {\r\n if(isInitialMode){\r\n return;\r\n }\r\n\r\n return (\r\n );\r\n }\r\n\r\n const renderAdContent = () => {\r\n if(!isInitialMode){\r\n return;\r\n }\r\n\r\n if (isInitialAdSelected) {\r\n return \r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderTopLevel()}\r\n {renderIsLoading()}\r\n {renderInitialAds()}\r\n {renderAdContent()}\r\n {renderCategoryViewer()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedsMainViewer;","import classifiedAdService from '../../shared/services/classifiedAdService'\r\nimport React, { useState } from 'react';\r\nimport { View, Text } from 'react-native';\r\nimport ArrowForwardIos from '@material-ui/icons/ArrowForwardIos';\r\nimport ArrowBackIos from '@material-ui/icons/ArrowBackIos';\r\nimport PostAdEditor from '../../shared/Controls/PostAdEditor'\r\nimport { EditorState, ContentState } from 'draft-js';\r\nimport { convertFromRaw } from 'draft-js';\r\nimport utilService from '../../shared/services/utilservice'\r\n\r\nfunction ClassifiedsAdViewer() {\r\n const [ad, setAd] = useState({});\r\n const [images, setImages] = useState([]);\r\n const [imageIndex, setImageIndex] = useState(-1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isShowNextBtn, setShowNextBtn] = useState(false);\r\n const [isShowPrevBtn, setShowPrevBtn] = useState(false);\r\n const [width, setWidth] = useState(window.innerWidth);\r\n\r\n function handleWindowSizeChange() {\r\n setWidth(window.innerWidth);\r\n }\r\n\r\n React.useEffect(() => {\r\n async function fetchData() {\r\n setIsLoading(true)\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log('parsed');\r\n console.log(parsed.ad);\r\n\r\n let result = await classifiedAdService.getAd(parsed.ad);\r\n const lclImages = [];\r\n if(result && result !== undefined && result !== null && result.firstImage && result.firstImage !== null){\r\n lclImages[0] = result.firstImage;\r\n for(let i = 1; i < result.numberOfImages; i++){\r\n lclImages.push(null);\r\n }\r\n\r\n setImages(lclImages);\r\n setImageIndex(0);\r\n }\r\n\r\n setAd(result)\r\n setIsLoading(false)\r\n\r\n var allImgsExceptFirst = await classifiedAdService.getAllImagesExceptFirst(parsed.ad);\r\n if(!allImgsExceptFirst || allImgsExceptFirst === undefined || allImgsExceptFirst === null){\r\n return;\r\n }\r\n \r\n for(let j = 0; j < allImgsExceptFirst.length; j++){\r\n lclImages[j+1] = allImgsExceptFirst[j]; \r\n }\r\n\r\n if(lclImages.length > 1){\r\n setShowNextBtn(true);\r\n }\r\n setImages(lclImages); \r\n }\r\n fetchData();\r\n window.addEventListener('resize', handleWindowSizeChange);\r\n return () => {\r\n window.removeEventListener('resize', handleWindowSizeChange);\r\n }\r\n\r\n }, []);\r\n\r\n const isMobile = width <= 768;\r\n\r\n const handleNextPic = async () => {\r\n if(imageIndex + 1 >= images.length){\r\n setShowNextBtn(false);\r\n setShowPrevBtn(true);\r\n return;\r\n }\r\n\r\n var test = images[imageIndex + 1];\r\n if(test && test !== undefined && test !== null && test.image != null){\r\n setImageIndex(imageIndex + 1)\r\n setShowPrevBtn(true);\r\n if(imageIndex + 2 >= images.length){\r\n setShowNextBtn(false);\r\n }\r\n return;\r\n }\r\n \r\n setShowPrevBtn(true);\r\n setShowNextBtn(false);\r\n }\r\n\r\n const handlePrevPic = async () => {\r\n if(imageIndex <= 0){\r\n setShowPrevBtn(false);\r\n setShowNextBtn(true);\r\n return;\r\n }\r\n\r\n var test = images[imageIndex - 1];\r\n if(test && test !== undefined && test !== null && test.image != null){\r\n setImageIndex(imageIndex - 1)\r\n setShowNextBtn(true);\r\n if(imageIndex - 1 === 0){\r\n setShowPrevBtn(false);\r\n }\r\n return;\r\n }\r\n\r\n setShowPrevBtn(false);\r\n }\r\n\r\n const renderNextBtn = () => {\r\n if(!isShowNextBtn){\r\n return;\r\n }\r\n\r\n return(\r\n );\r\n }\r\n\r\n const renderPrevBtn = () => {\r\n if(!isShowPrevBtn){\r\n return;\r\n }\r\n\r\n return(\r\n );\r\n }\r\n\r\n const renderImage = () => {\r\n if(imageIndex === -1){\r\n return;\r\n }\r\n\r\n if(!isMobile){\r\n return( \r\n \r\n {renderPrevBtn()}\r\n \r\n \r\n \r\n {renderNextBtn()} \r\n \r\n \r\n );\r\n }\r\n\r\n return( \r\n \r\n {renderPrevBtn()}\r\n \r\n \r\n \r\n {renderNextBtn()} \r\n \r\n \r\n);\r\n }\r\n\r\n const renderTitle = () => {\r\n return(\r\n

{ad.title}

\r\n
\r\n );\r\n }\r\n\r\n const renderShortDescription = () => {\r\n if(!ad.shortDescription || ad.shortDescription === undefined || ad.shortDescription === null){\r\n return;\r\n }\r\n\r\n return(\r\n
{ad.shortDescription}
\r\n
\r\n );\r\n }\r\n\r\n const renderDescription = () => {\r\n if(!ad.description || ad.description === undefined || ad.description.length < 3){\r\n return;\r\n }\r\n\r\n let editorState;\r\n if(!utilService.isJsonString(ad.description)){\r\n editorState = EditorState.createWithContent(ContentState.createFromText(ad.description))\r\n }\r\n else{\r\n const contentState = convertFromRaw(JSON.parse(ad.description));\r\n editorState = EditorState.createWithContent(contentState);\r\n }\r\n\r\n return(\r\n \r\n \r\n );\r\n }\r\n\r\n const renderTelephone = () => {\r\n if(!ad.telephone || ad.telephone === undefined || ad.telephone.length < 3){\r\n return;\r\n }\r\n \r\n return(\r\n \r\n Telephone: \r\n \r\n \r\n {ad.telephone}\r\n \r\n );\r\n }\r\n\r\n const renderEmail = () => {\r\n if(!ad.email || ad.email === undefined || ad.email.length < 3){\r\n return;\r\n }\r\n \r\n return(\r\n \r\n Email: \r\n \r\n \r\n {ad.email}\r\n \r\n );\r\n }\r\n\r\n const renderLoading = () => {\r\n if(!isLoading){\r\n return;\r\n }\r\n\r\n return(\r\n
\r\n

Please wait

\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderTitle()}\r\n {renderShortDescription()}\r\n {renderDescription()}\r\n {renderLoading()}\r\n {renderImage()}\r\n {renderTelephone()}\r\n {renderEmail()}\r\n
\r\n );\r\n}\r\n\r\nexport default ClassifiedsAdViewer;","import { View, Text } from 'react-native';\r\n\r\nfunction HomePagePosted() {\r\n const renderPosted = () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n console.log('parsed');\r\n console.log(parsed.email);\r\n console.log(parsed.name);\r\n\r\n let isParsed = parsed && parsed.email && parsed.name;\r\n\r\n if(isParsed){\r\n return (\r\n \r\n Dear {parsed.name}\r\n We sent an email to {parsed.email}\r\n Please open the email and click on the link to confirm your submission\r\n Your ad will be posted after the admin approval\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n We are having trouble processing your request\r\n Please try again later\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderPosted()}\r\n
\r\n );\r\n}\r\n\r\nexport default HomePagePosted;","import { useState } from 'react';\r\nimport { View, Text } from 'react-native';\r\nimport postAdService from '../../shared/services/postAdService'\r\n\r\nfunction ConfirmMainPagePost() {\r\n const [isConfirmationSuccess, setIsConfirmationSuccess] = useState(false); \r\n const [isParseSuccess, setIsParseSuccess] = useState(true);\r\n const [isActivating, setIsActivating] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n\r\n window.onload = function (){\r\n onPageLoad(); \r\n }\r\n\r\n const onPageLoad = async () => {\r\n const queryString = require('query-string');\r\n const parsed = queryString.parse(window.location.search);\r\n console.log(parsed);\r\n\r\n if(!parsed || !parsed.token || !parsed.name || !parsed.email) {\r\n setIsParseSuccess(false);\r\n return;\r\n }\r\n\r\n setIsActivating(true);\r\n\r\n var result = await postAdService.confirmPost(parsed.token, parsed.name, parsed.email);\r\n setIsActivating(false);\r\n if(!result) {\r\n\r\n setIsError(true);\r\n return;\r\n }\r\n\r\n setIsConfirmationSuccess(true)\r\n }\r\n\r\n const renderInfo = () => {\r\n if(isConfirmationSuccess){\r\n return (\r\n \r\n Your email has been successfully confirmed\r\n Your post will be displayed after the admin approval\r\n \r\n );\r\n }\r\n\r\n if(!isParseSuccess){\r\n return (\r\n \r\n There appears to be an unauthorized usage of this site\r\n Please use the site responsibly;\r\n \r\n );\r\n }\r\n\r\n if(isActivating){\r\n return (\r\n \r\n We are trying to confirm you email\r\n Please stand by\r\n \r\n );\r\n }\r\n\r\n if(isError){\r\n return (\r\n \r\n There was an error confirming your email\r\n We apologize for the inconvenience\r\n Please try again later\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {renderInfo()}\r\n
\r\n );\r\n}\r\n\r\nexport default ConfirmMainPagePost;","function ConfigVariables() {\r\n return (\r\n
\r\n

\r\n Config Variables\r\n

\r\n
\r\n );\r\n}\r\n\r\nexport default ConfigVariables","import React, { useState } from 'react';\r\nimport { View, Text } from 'react-native';\r\nimport DayPickerInput from 'react-day-picker/DayPickerInput'\r\nimport dateFnsFormat from 'date-fns/format';\r\nimport helperUtil from '../../../shared/Util'\r\nimport moment from 'moment'\r\nimport Button from 'react-bootstrap/Button';\r\nimport donationService from '../../../shared/services/donationService'\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableSortLabel from '@material-ui/core/TableSortLabel';\r\nimport Box from '@material-ui/core/Box';\r\nimport { visuallyHidden } from '@material-ui/utils';\r\nimport PropTypes from 'prop-types';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { alpha } from '@material-ui/core/styles';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport FilterListIcon from '@material-ui/icons/FilterList';\r\nimport Paper from '@material-ui/core//Paper';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TablePagination from '@material-ui/core/TablePagination';\r\n\r\nfunction createData(id, name, amount, purpose, transactioDate, fee) {\r\n return {\r\n id,\r\n name,\r\n amount,\r\n purpose,\r\n transactioDate,\r\n fee,\r\n };\r\n }\r\n \r\n function descendingStringComparator(a, b, orderBy) {\r\n if(a === undefined || !a){\r\n return 0;\r\n }\r\n\r\n if (b.toUpperCase() < a.toUpperCase()) {\r\n return -1;\r\n }\r\n if (b.toUpperCase() > a.toUpperCase()) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n function descendingComparator(a, b, orderBy) {\r\n if (b[orderBy] < a[orderBy]) {\r\n return -1;\r\n }\r\n if (b[orderBy] > a[orderBy]) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n function descendingNumberComparator(a, b) {\r\n if (b < a) {\r\n return -1;\r\n }\r\n if (b > a) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n \r\n function getComparator(order, orderBy) {\r\n switch(orderBy) {\r\n case \"transactionAmount\":\r\n case \"fee\":\r\n return order === 'desc'\r\n ? (a, b) => descendingNumberComparator(Number(a.amount), Number(b.amount))\r\n : (a, b) => -descendingNumberComparator(Number(a.amount), Number(b.amount));\r\n case \"transactioDate\":\r\n return order === 'desc'\r\n ? (a, b) => descendingNumberComparator(Number(a.id), Number(b.id))\r\n : (a, b) => -descendingNumberComparator(Number(a.id), Number(b.id));\r\n case \"purpose\":\r\n return order === 'desc'\r\n ? (a, b) => descendingStringComparator(a.purpose, b.purpose)\r\n : (a, b) => -descendingStringComparator(a.purpose, b.purpose);\r\n default:\r\n return order === 'desc'\r\n ? (a, b) => descendingComparator(a, b, orderBy)\r\n : (a, b) => -descendingComparator(a, b, orderBy);\r\n } \r\n }\r\n \r\n // Since 2020 all major browsers ensure sort stability with Array.prototype.sort().\r\n // stableSort() brings sort stability to non-modern browsers (notably IE11). If you\r\n // only support modern browsers you can replace stableSort(exampleArray, exampleComparator)\r\n // with exampleArray.slice().sort(exampleComparator)\r\n function stableSort(array, comparator) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = comparator(a[0], b[0]);\r\n if (order !== 0) {\r\n return order;\r\n }\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map((el) => el[0]);\r\n }\r\n \r\n const headCells = [\r\n {\r\n id: 'name',\r\n numeric: false,\r\n disablePadding: true,\r\n label: 'Name',\r\n },\r\n {\r\n id: 'transactionAmount',\r\n numeric: true,\r\n disablePadding: false,\r\n label: 'Amount',\r\n },\r\n {\r\n id: 'purpose',\r\n numeric: true,\r\n disablePadding: false,\r\n label: 'Purpose',\r\n },\r\n {\r\n id: 'transactioDate',\r\n numeric: true,\r\n disablePadding: false,\r\n label: 'Trans Time',\r\n },\r\n {\r\n id: 'fee',\r\n numeric: true,\r\n disablePadding: false,\r\n label: 'Fee',\r\n },\r\n ];\r\n \r\n function EnhancedTableHead(props) {\r\n const { order, orderBy, onRequestSort } =\r\n props;\r\n const createSortHandler = (property) => (event) => {\r\n onRequestSort(event, property);\r\n };\r\n \r\n return (\r\n \r\n \r\n \r\n\r\n \r\n {headCells.map((headCell) => (\r\n \r\n \r\n {headCell.label}\r\n {orderBy === headCell.id ? (\r\n \r\n {order === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null}\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n }\r\n \r\n EnhancedTableHead.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n onRequestSort: PropTypes.func.isRequired,\r\n onSelectAllClick: PropTypes.func.isRequired,\r\n order: PropTypes.oneOf(['asc', 'desc']).isRequired,\r\n orderBy: PropTypes.string.isRequired,\r\n rowCount: PropTypes.number.isRequired,\r\n };\r\n \r\n function EnhancedTableToolbar(props) {\r\n const { numSelected } = props;\r\n \r\n return (\r\n 0 && {\r\n bgcolor: (theme) =>\r\n alpha(theme.palette.primary.main, theme.palette.action.activatedOpacity),\r\n }),\r\n }}\r\n >\r\n {numSelected > 0 ? (\r\n \r\n {numSelected} selected\r\n \r\n ) : (\r\n \r\n Transactions\r\n \r\n )}\r\n \r\n {numSelected > 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 )}\r\n \r\n );\r\n }\r\n \r\n EnhancedTableToolbar.propTypes = {\r\n numSelected: PropTypes.number.isRequired,\r\n };\r\n \r\n\r\nfunction PayPalAdmin() {\r\n const [startTransactionsDate, setTransactionsStartDate] = useState(new Date());\r\n const [endTransactionsDate, setTransactionsEndDate] = useState(new Date());\r\n const [isGettingTransactions, setIsGettingTransactions] = useState(false);\r\n const [selected, setSelected] = React.useState([]);\r\n const [order, setOrder] = React.useState('asc');\r\n const [orderBy, setOrderBy] = React.useState('calories');\r\n const [page, setPage] = React.useState(0);\r\n const [rowsPerPage, setRowsPerPage] = React.useState(25);\r\n const [rows, setRows] = useState([]);\r\n const [balance, setBalance] = useState('');\r\n \r\n React.useEffect(() => {\r\n async function fetchData() {\r\n populateInitialDate();\r\n getPayPalBalances();\r\n }\r\n fetchData();\r\n \r\n }, []);\r\n\r\n const renderTitle = () => {\r\n return (\r\n \r\n Pay Pal Admin \r\n \r\n );\r\n }\r\n \r\n const getPayPalBalances = async () => {\r\n let balance = await donationService.getPayPalBalances();\r\n console.log(balance.availableBalance);\r\n setBalance(balance.availableBalance);\r\n }\r\n\r\n const populateInitialDate = () => {\r\n let initialDate = new Date((new Date()).getFullYear(), 0, 1);\r\n setTransactionsStartDate(initialDate);\r\n }\r\n\r\n const renderStartTransactionsDate = () => {\r\n return (\r\n
\r\n \r\n \r\n Start Date: \r\n \r\n \r\n {renderStartTransactionsDateCalendar()}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const handleRequestSort = (event, property) => {\r\n const isAsc = orderBy === property && order === 'asc';\r\n setOrder(isAsc ? 'desc' : 'asc');\r\n setOrderBy(property);\r\n console.log(property)\r\n };\r\n \r\n const handleSelectAllClick = (event) => {\r\n if (event.target.checked) {\r\n const newSelected = rows.map((n) => n.id);\r\n setSelected(newSelected);\r\n return;\r\n }\r\n setSelected([]);\r\n };\r\n \r\n const handleClick = (event, id) => {\r\n const selectedIndex = selected.indexOf(id);\r\n let newSelected = [];\r\n \r\n if (selectedIndex === -1) {\r\n newSelected = newSelected.concat(selected, id);\r\n } else if (selectedIndex === 0) {\r\n newSelected = newSelected.concat(selected.slice(1));\r\n } else if (selectedIndex === selected.length - 1) {\r\n newSelected = newSelected.concat(selected.slice(0, -1));\r\n } else if (selectedIndex > 0) {\r\n newSelected = newSelected.concat(\r\n selected.slice(0, selectedIndex),\r\n selected.slice(selectedIndex + 1),\r\n );\r\n }\r\n setSelected(newSelected);\r\n };\r\n \r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n \r\n const handleChangeRowsPerPage = (event) => {\r\n setRowsPerPage(parseInt(event.target.value, 10));\r\n setPage(0);\r\n };\r\n \r\n const isSelected = (id) => selected.indexOf(id) !== -1;\r\n \r\n // Avoid a layout jump when reaching the last page with empty rows.\r\n const emptyRows =\r\n page > 0 ? Math.max(0, (1 + page) * rowsPerPage - rows.length) : 0;\r\n \r\n const visibleRows = React.useMemo(\r\n () =>\r\n stableSort(rows, getComparator(order, orderBy)).slice(\r\n page * rowsPerPage,\r\n page * rowsPerPage + rowsPerPage,\r\n ),\r\n [order, orderBy, page, rowsPerPage, rows],\r\n );\r\n\r\n \r\n const renderTransactions = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {visibleRows.map((row, index) => {\r\n const isItemSelected = isSelected(row.id);\r\n const labelId = `enhanced-table-checkbox-${index}`;\r\n\r\n return (\r\n handleClick(event, row.id)}\r\n tabIndex={-1}\r\n key={row.id}\r\n selected={isItemSelected}\r\n sx={{ cursor: 'pointer' }}\r\n >\r\n \r\n \r\n \r\n \r\n {row.name}\r\n \r\n {row.amount}\r\n {row.purpose}\r\n {row.transactioDate}\r\n {row.fee}\r\n \r\n );\r\n })}\r\n {emptyRows > 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 }\r\n\r\n const renderCurrentBalance = () => {\r\n if(!balance || balance.length === 0){\r\n return; \r\n }\r\n\r\n return (\r\n
\r\n \r\n Balance: \r\n ${balance} \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderEndTransactionsDate = () => {\r\n return (\r\n
\r\n \r\n \r\n End Date: \r\n \r\n \r\n {renderEndTransactionsDateCalendar()}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n const renderStartTransactionsDateCalendar = () => {\r\n const FORMAT = 'MM/dd/yyyy';\r\n if(!startTransactionsDate){\r\n return;\r\n }\r\n\r\n return {\r\n if(moment.isDate(day)){\r\n setTransactionsStartDate(day)\r\n } \r\n }\r\n } />; \r\n }\r\n\r\n const renderEndTransactionsDateCalendar = () => {\r\n const FORMAT = 'MM/dd/yyyy';\r\n \r\n return {\r\n if(moment.isDate(day)){\r\n setTransactionsEndDate(day)\r\n } \r\n }\r\n } />; \r\n }\r\n\r\n const handleGetPayPalTransactionsClick = async event => {\r\n event.preventDefault();\r\n setIsGettingTransactions(true);\r\n \r\n setRows([]);\r\n console.log(visibleRows.length);\r\n\r\n const arr = [];\r\n\r\n let transactions = await donationService.getPayPalTransations(startTransactionsDate, endTransactionsDate);\r\n console.log(transactions);\r\n setIsGettingTransactions(false);\r\n\r\n for (var i = 0; i < transactions.length; i++) { \r\n arr.push(createData(transactions[i].id, \r\n transactions[i].payerFullName, \r\n transactions[i].transactionAmount, \r\n transactions[i].transactionSubject, \r\n transactions[i].transactionInitiationDate, \r\n transactions[i].feeAmount)); \r\n }\r\n\r\n setRows(arr);\r\n\r\n console.log(arr);\r\n setOrderBy('id'); \r\n }\r\n\r\n const renderFilterButton = () => {\r\n if(!isGettingTransactions){\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n const renderTransactionsDateRangeChooser = () => {\r\n return(\r\n
\r\n {renderStartTransactionsDate()}\r\n {renderEndTransactionsDate()}\r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n {renderTitle()}\r\n {renderTransactionsDateRangeChooser()}\r\n {renderCurrentBalance()}\r\n {renderFilterButton()}\r\n {renderTransactions()}\r\n
\r\n );\r\n}\r\n\r\nexport default PayPalAdmin","import './App.css';\r\nimport { Routes, Route } from 'react-router-dom';\r\nimport BootstrapNavbar from './components/BootstrapNavbar'\r\nimport Home from './components/pages/Home';\r\nimport PayPal from './components/pages/PayPal';\r\nimport PayPalConfirm from './components/pages/PayPalConfirm';\r\nimport RegistrationConfirmationComponent from './components/authentication/RegistrationConfirm';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport Register from './components/authentication/Register';\r\nimport LoginComponent from './components/authentication/Login';\r\nimport ForgotCredentials from './components/authentication/ForgotCredentials';\r\nimport Activate from './components/authentication/Activate';\r\nimport UserDonations from './components/pages/content/UserDonations';\r\nimport { useState } from 'react';\r\nimport PasswordReset from './components/authentication/PasswordReset';\r\nimport PasswordResetWasSent from './components/authentication/PasswordResetWasSent';\r\nimport ContactUsComponent from './components/pages/ContactUs';\r\nimport HelpComponent from './components/pages/Help';\r\nimport ContactUsSuccess from './components/pages/ContactUsSuccess';\r\nimport MenageRoles from './components/pages/admin/MenageRoles';\r\nimport UsersInRole from './components/pages/admin/UsersInRole';\r\nimport MenageProjects from './components/pages/admin/Projects/MenageProjects';\r\nimport Projects from './components/pages/content/Projects';\r\nimport MenageUserProjects from './components/pages/admin/Projects/MenageUserProjects';\r\nimport ContractorProjects from './components/pages/admin/Projects/MenageContractorProjects';\r\nimport Scheduler from './components/pages/admin/Schedule/Scheduler';\r\nimport Account from './components/pages/Account';\r\nimport TestIPN from './components/pages/admin/TestIPN';\r\nimport ShulSchedule from './components/pages/content/ShulSchedule';\r\nimport HomePagePost from './components/pages/ads/HomePagePost';\r\nimport HomepageAds from './components/pages/admin/ads/HomepageAds';\r\nimport ClassifiedPostHome from './components/pages/ads/ClassifiedPostHome';\r\nimport ClassifiedPosted from './components/pages/ads/ClassifiedPosted';\r\nimport ConfirmClassifiedAd from './components/pages/ads/ConfirmClassifiedAd';\r\nimport ClassifiedAdsAdmin from './components/pages/admin/ads/ClassifiedAdsAdmin';\r\nimport ClassifiedRemoveSuccess from './components/pages/ads/ClassifiedRemoveSuccess';\r\nimport ClassifiedsMainViewer from './components/pages/ads/ClassifiedsMainViewer';\r\nimport ClassifiedsAdViewer from './components/pages/ads/ClassifiedsAdViewer';\r\nimport HomePagePosted from './components/pages/ads/HomePagePosted';\r\nimport ConfirmMainPagePost from './components/pages/ads/ConfirmMainPagePost';\r\nimport ConfigVariables from './components/pages/admin/variables/ConfigVariables';\r\nimport PayPalAdmin from './components/pages/admin/PayPal/PayPalAdmin'\r\n\r\nfunction App() {\r\n\r\n const routesMap = { register: \"/register\", \r\n registerConfirmation: \"/registerConfirmation\", \r\n activateAccount: \"/activateAccount\",\r\n home: \"/\",\r\n login: \"/login\",\r\n userDonations: '/userDonations',\r\n forgotCredentials: '/forgotCredentials',\r\n passwordReset: '/passwordReset',\r\n passwordResetWasSent: '/passwordResetWasSent',\r\n contactUs: '/contactUs',\r\n help: '/help',\r\n contactUsSuccess: '/contactUsSuccess',\r\n menageRoles: \"/menageRoles\",\r\n usersInRole: \"/usersInRole\",\r\n menageProjects: \"/menageProjects\",\r\n projects: \"/projects\",\r\n menageUserProjects: \"/menageUserProjects\",\r\n contractorProjects: \"/contractorProjects\",\r\n account: \"/account\",\r\n testIPN: \"/testIPN\",\r\n scheduler: \"/scheduler\",\r\n shulSchedule: \"/shulSchedule\",\r\n paypal: \"/paypal\",\r\n payPalConfirm: \"/payPalConfirm\",\r\n homepagepost: \"/homepagepost/\",\r\n homepageAds: \"/homepageAds\",\r\n classifiedPostHome: \"/classifiedPostHome/\",\r\n classifiedPostHomeLcl: \"/classifiedPostHome\",\r\n classifiedPosted: \"/classifiedPosted\",\r\n confirmClassifiedAd: \"/confirmClassifiedAd/\",\r\n classifiedAdsAdmin: \"/classifiedAdsAdmin\",\r\n classifiedRemoveSuccess: \"/classifiedRemoveSuccess\",\r\n classifiedsMainViewer: \"/classifiedsMainViewer\",\r\n classifiedsAdViewer: \"/classifiedsAdViewer\",\r\n homePagePosted: \"/homePagePosted\",\r\n confirmMainPagePost: \"/confirmMainPagePost/\",\r\n configVariables: \"/configVariables/\",\r\n payPalAdmin: \"/payPalAdmin\"};\r\n \r\n const publicRoutes = [routesMap.register, \r\n routesMap.login, \r\n routesMap.registerConfirmation, \r\n routesMap.activateAccount, \r\n routesMap.home,\r\n routesMap.forgotCredentials,\r\n routesMap.passwordReset,\r\n routesMap.passwordResetWasSent,\r\n routesMap.contactUs,\r\n routesMap.help,\r\n routesMap.contactUsSuccess,\r\n routesMap.shulSchedule,\r\n routesMap.paypal,\r\n routesMap.homepagepost,\r\n routesMap.homepageAds,\r\n routesMap.classifiedPostHome,\r\n routesMap.classifiedPosted,\r\n routesMap.confirmClassifiedAd,\r\n routesMap.classifiedRemoveSuccess,\r\n routesMap.classifiedsMainViewer,\r\n routesMap.classifiedsAdViewer,\r\n routesMap.classifiedPostHomeLcl,\r\n routesMap.homePagePosted,\r\n routesMap.confirmMainPagePost,\r\n routesMap.payPalConfirm]\r\n\r\n const isPublicRouter = (router) => {\r\n return publicRoutes.indexOf(router) > -1;\r\n }\r\n\r\n const handler = (tokenParam) => {\r\n console.log('tokenHandler called ' + tokenParam);\r\n if(token === tokenParam){\r\n return;\r\n }\r\n \r\n setToken(tokenParam);\r\n }\r\n\r\n const [token, setToken] = useState(null);\r\n const tokenHandler = handler;\r\n const isPublicRouterHandler = isPublicRouter;\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 } />\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 } /> \r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default App;","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { BrowserRouter } from \"react-router-dom\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}