{"version":3,"sources":["../node_modules/@stencil/core/internal/client lazy /^/.*$/ include: /.entry/.js$/ exclude: /.system/.entry/.js$/ groupOptions: {} namespace object","components/Footer/SponsorImages.tsx","components/Footer/Index.tsx","pages/CommonStyles/Text.tsx","components/Icons/IconBack.tsx","components/Header/Img.tsx","components/Header/LogoContainer.tsx","components/Header/LogoWrapper.tsx","components/Header/AccountProfileHeader.tsx","AppConfig.ts","constants.tsx","components/Menu/NavMenuContainer.tsx","components/Menu/NavMenuItem.tsx","util/api/fetchData.ts","redux/slices/userSlice.ts","redux/slices/signalrSlice.ts","components/Menu/StyledLink.tsx","components/Menu/Index.tsx","util/api/enpoints.ts","redux/slices/eventSlice.ts","redux/slices/auctionItemsSlice.ts","redux/slices/auctionItemDetailsSlice.ts","redux/slices/cartSlice.ts","components/Header/AuctionItemHeader.tsx","components/Header/EventWelcome.tsx","components/Header/LoginWelcome.tsx","components/Header/Wrapper.tsx","pages/CommonStyles/PageBodyContainer.tsx","pages/NotFound/NotFound.tsx","components/Header/Index.tsx","pages/AccountContact/Index.tsx","pages/CommonStyles/Button.tsx","pages/CommonStyles/ButtonItem.tsx","pages/AccountNotifications/StyledComponents.tsx","components/CheckBox/Index.tsx","pages/CommonStyles/FlexCol.tsx","pages/AuctionItems/styledComponents.ts","pages/AccountNotifications/Index.tsx","pages/CommonStyles/Form.tsx","pages/CommonStyles/InputsContainer.tsx","hooks/authenicationHook.tsx","pages/AccountProfile/Index.tsx","components/Icons/IconCard.tsx","pages/CommonStyles/FlexRow.tsx","components/Icons/IconLosingBid.tsx","components/Icons/IconWinningBidder.tsx","pages/AuctionItems/Index.tsx","pages/AuctionItems/CardViewItems.tsx","pages/AuctionItems/ListItems.tsx","pages/AuctionItems/SlideOutMenu.tsx","pages/AuctionItems/helpers.ts","redux/slices/ordersSlice.ts","pages/Checkout/Index.tsx","hooks/FormField.tsx","pages/CommonStyles/Label.tsx","pages/CreateAccount/Index.tsx","redux/middleware/signalr-middleware.ts","redux/slices/privacyPolicySlice.ts","redux/slices/messageSlice.ts","redux/slices/bidHistorySlice.ts","redux/slices/debugSlice.ts","redux/slices/notificationSlice.ts","redux/slices/SignalRItemsSlice.tsx","redux/slices/slideShowItemSlice.ts","redux/store.ts","pages/Event/Index.tsx","components/Icons/IconAdd.tsx","components/Icons/IconRemove.tsx","util/api/submitBid.ts","pages/ItemDetails/styledComponents.ts","pages/ItemDetails/CurrentBid.tsx","pages/ItemDetails/Img.tsx","pages/ItemDetails/Index.tsx","pages/CartPage/Index.tsx","pages/Login/Index.tsx","pages/MyAccount/Index.tsx","pages/MyOrders/Index.tsx","pages/OpenBids/Index.tsx","components/Icons/IconMinus.tsx","components/Icons/IconPlus.tsx","hooks/useCounter.tsx","pages/PlaceBid/Index.tsx","util/api/submitMaxBid.ts","pages/AutoBid/Index.tsx","pages/PrivacyPolicy/Index.tsx","pages/ResetPassword/Index.tsx","pages/ResetPasswordVerification/Index.tsx","pages/ResetPasswordAccount/Index.tsx","pages/ResetPasswordEmail/Index.tsx","pages/SetupAccount/StepOne.tsx","pages/SetupAccount/StepThree.tsx","pages/SetupAccount/StepTwo.tsx","pages/SetupAccount/Index.tsx","pages/Verification/Index.tsx","util/api/verifyAccount.ts","pages/VerifyAccount/Index.tsx","pages/CommonStyles/MainButtonItem.tsx","pages/CommonStyles/Theme.ts","pages/Welcome/Index.tsx","pages/Slideshow/SlideshowDetailPage.tsx","pages/Slideshow/Index.tsx","hooks/useResetEvent.tsx","util/formatHelpers.ts","pages/Store/RegistrationPage.tsx","pages/Store/RegisterPage.tsx","pages/Store/WelcomePage.tsx","pages/Store/Index.tsx","App.tsx","serviceWorker.ts","index.tsx","assets/img/svg/wave-blue.png","components/Header/AuctionSnap.png"],"names":["webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","module","exports","id","styled","div","SponsorImages","eventData","useSelector","state","event","useState","undefined","sponsorImage","setSponsorImage","sponsorImages","sponsorurl","useEffect","imageIndex","imageInterval","setInterval","length","clearInterval","style","maxHeight","minHeight","verticalAlign","backgroundColor","src","Footer","exact","path","eventcode","color","class","Text","props","important","theme","colors","primary","fontSize","width","flexWrap","height","textAlign","inlineSize","maxWidth","fontWeight","padding","borderRadius","margin","decoration","IconBack","xmlns","className","viewBox","fill","stroke","strokeLinecap","strokeLinejoin","strokeWidth","d","Img","components","navBarHeight","LogoContainer","LogoWrapper","waveBluePng","BackContainer","AccountProfileHeader","history","useHistory","useParams","eventResponse","isEventLoading","children","onClick","mypath","push","alt","logourl","getConfig","console","log","process","window","location","hostname","apiUrl","version","PROD_URL","getURL","mq","map","bp","usStates","name","abbreviation","NavMenuContainer","open","NavMenuItem","client","endpoint","body","customConfig","headers","config","method","JSON","stringify","fetch","response","json","data","ok","statusText","reject","message","get","post","put","initialState","firstname","lastname","userName","email","phoneNumber","addressInfo","lineOne","lineTwo","city","postalCode","error","redirect","isLoggedIn","accountstatus","accountSetupComplete","authorizebidder","bidderdisplaynumber","bidanonymously","allowtexting","userid","auctioncode","notifications","verifyEmail","createAsyncThunk","url","sendUserInfo","password","updateUserProfile","token","localStorage","getItem","Authorization","resetPassword","resetPasswordLink","forgotPassword","checkTokenOnRefresh","slice","createSlice","reducers","updateUserInfo","action","Object","payload","forEach","key","updateStateOnLogout","extraReducers","builder","addCase","user","parse","jsonString","setupcomplete","cellphone","address","address2","zip","useUserInfo","actions","connected","disconnected","reconnecting","newState","assign","Button","button","StyledLink","route","routeName","logout","dispatch","useDispatch","to","textDecoration","removeItem","type","MenuWrapper","Menu","menuOpen","setMenuOpen","accountStatus","useLocation","HOST","EVENT_ENDPOINT","LOGIN_URL","GUEST_LOGIN_URL","JOIN_EMAIL","USER_PROFILE","SLIDESHOW","joinCustomParams","customParams","join","getEndPoint","fetchEventData","parsedData","eventflag","eventname","eventopendatecst","eventcloseddatecst","eventbiddingopencst","eventbiddingclosedcst","eventopendate","eventcloseddate","eventbiddingopen","eventbiddingclosed","eventopendatecd","eventcloseddatecd","eventbiddingopencd","eventbiddingclosedcd","organizationphone","organizationemail","allowbillme","allowpayccfees","eventallowanonymousbidding","eventallowguestentry","ccfeespercent","welcomemessage","homemessage","contactus","addressrequired","ziprequired","status","creditcardiframe","javascriptfile","transcenterid","processorid","transactiontype","notificationcolumns","notificationrows","shownotificationsmenuitem","reset","cartreset","forcelogout","eventclosing","setEventReset","setCartReset","setForceLogout","setEventClosing","setEventCode","setAuctionCode","setAuctionIds","obj","hasKey","value","sortOptions","FEATURED_ITEMS","ENDING_SOON","ALPHA_ASC","ALPHA_DESC","PRICE_ASC","PRICE_DESC","auctionitems","tags","sortValue","handleToggleSuccess","itemid","meta","arg","updatedItem","find","item","watchlist","fetchAuctionItemsData","includethumbnail","toggleWatchlistItem","a","setSortValue","updateAuctionItems","newItems","updateItemOnBid","lastbid","bidamount","quantity","quantityavailable","numberofbids","numberOfbids","currentlywinningbid","accountbiddingon","updateItemMaxBid","accountisautobid","updateAutoBid","accountautobidamount","accountautobidincrement","itemUpdate","auctionitem","index","onlineauction","itemisliveonly","split","oneTag","indexTag","indexOf","trim","useAuctionItemsState","auctionItems","useSortValue","historyid","description","longdescription","itemnum","donatedby","fairmarketvalue","ispriceless","maxpurchasequantity","buyitnowonly","buyitnowavailable","buyitnowprice","currentbid","minimumbidincrease","bidstatus","unlimitedquantity","fetchAuctionItemDetailsData","parseInt","itemId","resetItemDetailsState","updateItemDetailsOnBid","updateItemDetailsHistoryId","auctionswon","auctionsopen","auctionsWonChecked","totalAmount","showccfees","ccfeespercentage","checkoutStatus","gemisvalid","fetchCartData","sendCheckoutData","updateCart","setInitialAuctionsWonChecked","newList","checked","setAllAuctionsChecked","setAuctionsWonCheckedItem","updateTotalAmount","amt","amount","resetStatus","resetTotalAmount","updateAuctionsWon","auctionsWonList","concat","AuctionItemsHeader","includeBack","backPath","cartState","cart","goToCart","setDays","setHours","setMins","setSeconds","setMessage","displayCountdown","setDisplayCountdown","displayBiddingClosed","setDisplayBiddingClsoed","displayLogo","setdisplayLogo","authorizeBidder","local","DateTime","localDateBiddingClosedString","fromISO","zone","setZone","zoneName","toString","checkThen","moment","checkNow","checkCalcSeconds","diff","checkDays","Math","floor","checkHoursLeft","checkHours","interval","now","calcSeconds","days","hoursLeft","hours","minutesLeft","minutes","remainingSeconds","pad","n","getEventUpdate","decoded","jwt_decode","slot","ion-button","icon","arrowBack","menuSharp","expand","hidden","cartOutline","background","position","right","top","logInOutline","EventNameContainer","WaveContainer","EventWelcome","showWelcomeMsg","userInfo","hideHamburgerMenu","page","dangerouslySetInnerHTML","__html","LoginWelcome","Wrapper","header","PageBodyContainer","alignItems","justifyContent","marginTop","NotFound","Header","auctionItemDetails","eventFetchState","title","logo","component","AccountContact","opacity","ButtonItem","PageWrapper","borderBottom","HiddenCheckbox","input","StyledCheckbox","checkedBackgroundColor","uncheckedBackgroundColor","CheckboxContainer","Icon","svg","Checkbox","visibility","points","CheckBox","handleCheckboxChange","param","onChange","FlexCol","filter","flex","FlexColAuction","FilterBox","isOpen","UL","ul","Span","span","AttributeLI","li","AttributeLabel","label","BackButton","SlideOutTitle","SortButton","HeaderButton","SearchBarContainer","HeartIconButton","inset","buyitnow","active","IconBackground","ErrorMessage","p","ListItemRow","guest","ListItemHeader","LastBidContainer","ListIconContainer","ListViewGrid","Input","MessageModal","onDismiss","inputRef","useRef","lines","marginBottom","display","current","size","AccountNotifications","useIonModal","role","dismiss","present","eventState","agreeToMessages","setagreeToMessages","cellPhone","setCellPhone","userStateNotifications","goBack","toastObj","setToast","formState","setFormState","getUserData","notificationState","itemColumn","keyValue","notificationrowid","onSave","skipCheck","onWillDismiss","ev","detail","notificationsData","rowObject","newCell","replace","responseJSON","onDidDismiss","cssClass","duration","itemRow","rowItems","onIonChange","preventDefault","target","copyState","placeholder","format","mask","customInput","Form","form","InputsContainer","useAuthRefresh","current_time","Date","exp","Select","Option","PostalCodeContainer","StateContainer","FlexRow","AccountProfile","userData","onSubmit","profileInfo","address1","userProfileInfo","defaultValue","isNumericString","selected","zIndex","IconCard","IconLosingBid","SlideOutState","Container","scale","IconWinningBidder","logoUsd","CardViewItems","items","getLocalDateString","dateString","itemStatus","closingTime","closingcst","closing","asDays","min","onWatchListClick","stopPropagation","stillOpen","getStatus","overflow","border","objectPosition","objectFit","imageurl","effect","transform","left","bottom","ribbon","heart","heartOutline","renderIcon","handleBuyItNowCard","ListViewItems","i","paddingLeft","renderIconOnList","flexDirection","justifyItems","tag","handleBuyItNowList","paddingRight","filtersConfig","SlideOutMenu","slideoutState","setSlideoutState","filtersState","setItemHasLiveOnly","auctionItemsTags","filteredValue","onClickAway","closed","filters","sort","funnel","includes","data-filter-type","chevronBackOutline","values","reducer","AuctionItemsPage","listView","setListView","filteredItems","setFilteredItems","searchedItems","setSearchedItems","sortedItems","setSortedItems","searchString","setSearchString","useReducer","dispatchComponent","auctionItemsFetchState","useFetchAuctionItems","cardView","useSavedListView","searchItems","toLowerCase","useFilterBySearchTerm","filteredList","filterConfig","f","some","filteredItem","filteredTags","newFL","self","findIndex","item1","useFilterByTagsAndFilters","alphaSortedItems","itemA","itemB","nameA","toUpperCase","nameB","endingSoonSortedItems","timeA","timeB","getTime","alreadyClosedSorted","biddingA","biddingB","priceSortedItems","priceA","priceB","useSortItems","handleNoResults","onIonRefresh","setTimeout","complete","refreshingSpinner","refreshingText","setItem","list","showCancelButton","marginLeft","reload","refreshOutline","dataset","filterType","justifySelf","borderTop","orderitems","fetchOrdersData","resetOrderStatus","CheckoutContainer","SpanImage","Image","img","ModalContent","BuyItNowContainer","CheckoutPopup","GoEmerchant","href","Checkout","params","selectedItems","setSelectedItems","cryptogram","setCryptogram","cartSelectedItem","Number","orders","storageItems","cartItems","calcAmountWon","itemsWon","reduce","acc","curr","totalWonAmount","paymentProcessFeesCheckbox","setPaymentProcessFeesCheckbox","isLoading","setIsLoading","additionalDonation","setAdditionalDonation","modalState","setModalState","goback","toastState","setToastState","orderTotal","setOrderTotal","donation","parseFloat","ccfee","script","document","createElement","setAttribute","appendChild","clickCheckout","itemIds","historyids","checkoutObj","ccfeesexactamount","additionaldonation","totalamount","emerchtoken","endpointMessage","addEventListener","processPayment","removeEventListener","firstpay","ccData","Helmet","rel","round","toFixed","data-transcenter-id","data-processor-id","data-transaction-type","data-manual-submit","String","addDonation","useFormFields","initialValues","formFields","setFormFields","createChangeHandler","prev","Label","connection","CreateAccountPage","elementScroll","getElementById","scroll","signalrState","signalr","userAccountStatus","userAccountSetupComplete","confirmPassword","errors","setErrors","confrimPassword","jsonInfo","setup","htmlFor","err","fetchPrivacyPolicy","privacypolicyData","setPrivacyEventCode","setPrivacyAuctionCode","privacypolicy","updateEventData","configureConnection","HubConnectionBuilder","withUrl","accessTokenFactory","withAutomaticReconnect","withHubProtocol","JsonHubProtocol","configureLogging","LogLevel","Debug","build","updateStoreOnResponse","store","msg","getState","userId","notificationStore","addNotification","insert","container","animationIn","animationOut","touchSlidingExit","swipe","timingFunction","delay","fade","showIcon","click","touch","startConnection","on","start","HubConnectionState","Connected","bind","createSignalrMiddleware","next","onclose","send","stop","fetchBidHistoryData","payloadData","setPayloadData","timeout","buttons","showNotification","resetNotification","signalRItems","resetSignalRItems","updateSignalRItems","fetchSlideshowItemsData","auctioneventid","auctionsiteid","activeAuctionItems","activeItem","updateSlideshowItemOnBid","updateActiveItem","updateActiveAuctionItems","middlewares","getDefaultMiddleware","rootReducer","combineReducers","signalrReducer","responseMessage","messageReducer","eventReducer","debugState","debugReducer","auctionItemsReducer","auctionItemDetailsSlice","bidHistory","bidHistorySlice","userReducer","cartSlice","ordersSlice","privacyPolicyReducer","notification","notificationReducer","signalRItemsSlice","slideshowItems","slideShowItemSlice","configureStore","middleware","createSignalRMiddleware","validateEmail","x","EventPage","pathname","loginguid","setHomeMessasge","passwordlessprocessURL","domainNames","isguest","axios","dataJson","processToken","emailInputRef","eventStatus","focus","onGuestLogin","emailErrors","result","redirectTo","jsonData","preeventtext","ref","autoFocus","IconAdd","IconRemove","submitBid","itemDetails","HighBidderTextContainer","LosingBidderTextContainer","IconContainer","StatusTextContainer","CurrentBid","currentBid","numOfBids","minimumBidIncrease","isPriceless","fairMarketValue","onMaxBid","React","bidUpdate","setBidUpdate","auctionItemDetailsState","highBidder","losingBidder","winner","checkAccountStatus","sizeXs","sizeSm","sizeMd","sizeLg","sizeXl","alignContent","gridTemplateColumns","play","paddingTop","createOutline","ItemDetailsPage","listen","scrollTo","itemArr","quantitySelected","setQuantitySelected","listState","setListState","buyItNow","setBuyItNow","popupBuyItNowCouner","setPopupBuyItNowCounter","bidHistoryData","userBidStatus","toggleListState","newVal","calcaulateTotal","total","clickPopupBuyItNow","bid","calcQuantityAvailable","calcQuantityAvailableDropdown","flexGrow","whiteSpace","num","calculateBidHistory","paddingBottom","paddinBottom","getDescription","biddername","ago","calculateTime","bidtimecst","initialBreakpoint","arr","buildQuantityList","CartPage","wonAmount","formattedLine","calcChecked","LinkContainer","LoginPage","passwordInputRef","disabled","LinkText","text","MyAccount","onContact","PageContainer","MyOrders","openItemId","setOpenItemId","ordersState","Fragment","checkoutid","pickupinstructions","fakeOpenItems","pickinstructions","OpenBids","itemsOpen","setItemsOpen","itemsOpenList","setItemsOpenList","itemSelectCount","setItemSelectCount","IconMinus","IconPlus","enableBackground","xmlSpace","xmlnsXlink","strokeMiterlimit","x1","x2","y1","y2","useCounter","initCount","count","setCount","BidContainer","NumberInput","ButtonContainer","applyFilter","PlaceBid","auctionItem","maximumBid","setCurrentLocalBid","currentDisplayLocalBid","setCurrentDisplayLocalBid","desiredBidIncrement","setDesiredBidIncrement","setMaximumBid","biddingPrice","lastBid","startingBid","numberOfBids","startingbid","currentLocalBid","bidAutomatically","setBidAutomatically","minimumBidToMake","handleSubmitBid","autobid","maxbid","increment","newLocalBid","allowautobid","newMaxBid","newDesiredBid","bidIncrease","submitMaxBid","AutoBid","PrivacyPolicy","privacyPolicyState","policyData","setPolicyData","clickGoBack","ResetPassword","stateeventcode","getAuctionCode","ResetPasswordVerification","setPassword","password2","setPassword2","padding-left","ResetPasswordAccount","domainName","ResetPasswordEmail","StepOne","cb","toastMsg","setToastMsg","Boolean","goToNextView","StateInputsContainer","StepThree","addressOne","addressTwo","goToPreviousView","handleFinish","Section","StepTwo","eventTextAlert","setEventTextAlert","setNotificationFormState","processToNextStep","handleSubmit","formNotificationState","totalSteps","InfoContainer","CurrentStep","SetupAccount","currentStepInView","setCurrentStepInView","onFinal","VerificationPage","verifyAccountPost","verifyToken","verifyTokenBody","VerifyAccount","checkEmailVerify","eventCode","MainButtonItem","logoWrapper","white","auctionRed","dropshadow","FlexColWelcome","FlexRowWelcome","handleRefresh","WelcomePage","goToBids","goToItems","mins","seconds","localDateBiddingOpen","localDateBiddingOpenString","eventFlag","eventBodyData","SlideshowDetailPage","animationRef","currencyFormat","offset","highbidder","SlideshowPage","handle","useFullScreenHandle","timeframe","pagecount","lstMessage","setListMessage","slideshowStateItems","auctionStateItems","activeStateItem","currentListItemCount","listItemsCount","currentListArray","handleBeginPlayAnimation","createAnimation","addElement","fromTo","easing","getHighBidderText","enter","expandOutline","quantityunlimited","getStatusText","useResetEvent","eventDataBody","formatter","Intl","NumberFormat","currency","formatMoney","RegistrationPage","storeData","setStoreData","groupName","setGroupName","groupId","groupModal","setGroupModal","messageModal","setMessageModal","guestId","guestName","guestModal","setGuestModal","registrationId","setRegistrationId","guestDefaultData","setGuestDefaultData","guestlist","guestfieldslist","guestlookuplist","selectedregistrationid","fieldListData","setFieldListData","overrideEdit","setOverrideEdit","guestid","currentGuest","setCurrentGuest","storeGroups","setStoreGroups","errorData","setErrorData","storeguestUrl","hascheckedout","getStoreGroups","newValues","field","fieldValue","fieldcontrol","fieldid","getStoreGuestData","copyDataObject","copyGuestFieldsList","guestFL","oeOv","fieldreadonly","groups","storeguestid","addNew","putStoreGuestData","renameGroupText","groupRenameUrl","groupid","groupname","submitData","fieldData","errorArray","guestData","fieldValueString","dataToAppend","fieldrequired","fieldlabel","updateGuestData","dataObj","newObject","newError","errorDataCopy","visible","currentTarget","guestmapList","existingguestid","existingguestname","editIcon","errorCheckObj","errorControl5","required","no-padding","options","filteredOptions","guests","lookupfieldid","guestListDataOption","lookupid","lookup","getFieldOptions","readOnly","overridereadonly","maxLength","fieldtextlength","boxSizing","outline","prefix","decimalsLimit","onValueChange","minLength","max","getGuestModal","heading","storeGuest","guestRows","storeguest","guestname","manageGuest","allowchangegroupname","getGroupItems","RegisterPage","selectedTab","setSelectedTab","setQuantityModal","itemQuantity","setItemQuantity","itemPrice","setItemPrice","promoCodeAmount","setPromoCodeAmount","promoCode","setPromoCode","subtotalTotal","setSubtotalTotal","ccTotal","setCCTotal","ccTotalFee","setCCTotalFee","finishCheckout","setFirstName","setLastName","setAddress1","setCity","setState","setZip","setEmail","paymentmethod","setPaymentMethod","cartitems","allowpaymentoffees","billme","discountamount","discountcode","hasdiscount","first","last","optionaltotal","subtotal","cartData","setCartData","getStoreSetup","storewelcomeeventname","storewelcomeheader","storewelcomeeventlogourl","storewelcomebuttonevent","storewelcomebuttonauction","storewelcomebuttoneventshow","storewelcomebuttonauctionshow","torewelcomefooter","storewelcomeauctionlink","tabs","parsedJson","quantityModal","maxquantity","maxQuantityPerTransModel","setMaxQuantityPerTransModal","storeCartAddItemUrl","cartItemUrl","storecartdiscount","checkoutUrl","prices","sections","section","itemdata","price","discount","getCartItems","lineamount","tab","tabname","goFinish","getDiscount","quantityUpdate","maxquantitypertransaction","quantityBlur","quantityremaining","itemname","goNext","saveAndContinue","hasNext","nextBool","getDiscountAmount","getDataItems","elems","isquantityunlimited","onBlur","quantityValue","priceUnformatted","pop","calcItemPrice","getCart","detailRows","intlConfig","locale","float","addAdditionalDonation","updatePromoCode","stateO","enabled","image","sectionheading","valid","validSectionData","cartButton","backButton","nextButton","hasBack","getButtons","HeaderWrapper","HeaderContainer","setRegister","object-fit","marginRight","Store","eventtype","iconList","Icons","library","add","App","processOfflineNotification","processOnlineNotification","removeAllNotifications","validateToken","setupIonicReact","mode","strict","forceRefresh","match","ReactDOM","render","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.776474df.chunk.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 130;","import React, { useEffect, useRef, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\n\nimport styled from \"@emotion/styled\";\n\nconst Container = styled.div`\n width: 100%;\n height: 100px;\n margin-top: 50px;\n padding: 5px;\n background-color: white;\n text-align: center;\n vertical-align: middle;\n`;\n\nconst SponsorImages: React.FC = () => {\n const eventData = useSelector((state: any) => state.event);\n const [sponsorImage, setSponsorImage] = useState(\n undefined\n );\n const sponsorImages = eventData.sponsorurl;\n\n useEffect(() => {\n // Init to first image\n let imageIndex = 0;\n setSponsorImage(sponsorImages[imageIndex]);\n const imageInterval = setInterval(() => {\n if (imageIndex < sponsorImages.length - 1) {\n imageIndex += 1;\n } else {\n imageIndex = 0;\n }\n setSponsorImage(sponsorImages[imageIndex]);\n }, 5000);\n return () => clearInterval(imageInterval);\n }, [sponsorImages]);\n\n return (\n \n\n );\n};\n\nexport default SponsorImages;\n","import React from \"react\"\nimport {Route, Switch} from \"react-router\"\nimport SponsorImages from \"./SponsorImages\"\nimport {useSelector} from \"react-redux\";\nimport {IonFooter, IonToolbar} from \"@ionic/react\";\nimport {Link} from \"react-router-dom\";\n\nconst Footer: React.FC = () => {\n const eventData = useSelector((state: any) => state.event)\n return (\n <>\n {(eventData && eventData?.sponsorurl && eventData?.sponsorurl?.length > 0) &&\n \n \n \n \n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n }\n \n )\n}\n\nexport default Footer\n","import styled from \"@emotion/styled\"\n\ntype Text = {\n important?: boolean\n fontSize?: number | string\n textAlign?: string\n fontWeight?: string | number\n padding?: string | any\n color?: string\n borderRadius?: string\n margin?: string\n backgroundColor?: string\n decoration?: string\n width?: string\n height?: string\n inlineSize?: string\n flexWrap?: string\n maxWidth?: string\n}\n\nconst Text = styled.div`\n color: ${(props) =>\n props.important\n ? props.theme.colors.important\n : props.color\n ? props.color\n : props.theme.colors.primary};\n font-size: ${(props) => props.fontSize || \"20px\"};\n width: ${(props) => props.width || \"unset\"};\n flex-wrap: ${(props) => props.flexWrap || \"unset\"};\n height: ${(props) => props.height || \"unset\"};\n text-align: ${(props) => props.textAlign || \"none\"};\n inline-size: ${(props) => props.inlineSize || \"unset\"};\n overflow-wrap: break-word;\n word-wrap: break-word;\n max-width: ${(props) => props.maxWidth || \"unset\"};\n font-weight: ${(props) => props.fontWeight || 400};\n padding: ${(props) => props.padding || \"unset\"};\n border-radius: ${(props) => props.borderRadius || \"unset\"};\n background-color: ${(props) => props.backgroundColor || \"unset\"};\n margin: ${(props) => props.margin || \"unset\"};\n text-decoration: ${(props) => props.decoration || \"\"};\n`\n\nexport default Text\n","import React from \"react\"\n\ntype Props = {\n height?: string\n width?: string\n}\n\nconst IconBack: React.FC = ({ height, width }) => {\n return (\n \n Chevron Back\n \n \n )\n}\n\nexport default IconBack\n","import styled from \"@emotion/styled\";\n\ntype ImgProps = {\n alt: string;\n src: any;\n height?: string | number;\n width?: string | number;\n margin?: string;\n borderRadius?: string;\n};\n// Max height and width need to be used for the image as the image is not always square. --jingles\nconst Img = styled(\"img\")`\n max-width: 300px;\n max-height: calc(${(props) => props.theme.components.navBarHeight} - 10px);\n margin: ${(props) => props.margin || \"unset\"};\n border-radius: ${(props) => props.borderRadius || \"unset\"};\n`;\n\nexport default Img;\n","import styled from \"@emotion/styled\";\n\nconst LogoContainer = styled.div`\n display: flex;\n align-items: center;\n height: ${(props) => props.theme.components.navBarHeight};\n`;\n\nexport default LogoContainer;\n","import styled from \"@emotion/styled\"\n\nconst LogoWrapper = styled.div`\n flex-grow: 1;\n display: flex;\n justify-content: center;\n`\nexport default LogoWrapper\n","import React, { PropsWithChildren } from \"react\";\nimport {useHistory, useParams} from \"react-router\";\n\nimport styled from \"@emotion/styled\";\n\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport Text from \"../../pages/CommonStyles/Text\";\nimport IconBack from \"../Icons/IconBack\";\nimport Img from \"./Img\";\nimport LogoContainer from \"./LogoContainer\";\nimport LogoWrapper from \"./LogoWrapper\";\n\ntype Props = {\n eventResponse: any;\n isEventLoading: boolean;\n showWelcomeMsg: boolean;\n userInfo?: any;\n title?: string;\n path?: string;\n};\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 40px;\n`;\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`;\n\nconst BackContainer = styled.div`\n height: ${(props) => props.theme.components.navBarHeight};\n display: flex;\n align-items: center;\n`;\n\ninterface Params {\n eventcode: string\n}\n\nconst AccountProfileHeader: React.FC> = (\n props: PropsWithChildren\n) => {\n const history = useHistory();\n const { eventcode } = useParams()\n const goBack = () => {\n const mypath = props.path ? props.path : '/' + eventcode + '/my-account';\n history.push(mypath);\n };\n\n const { eventResponse, isEventLoading, children } = props;\n return (\n <>\n {!isEventLoading && (\n <>\n \n \n Back\n \n \n \n \n \n \n {/*<>*/}\n {/* */}\n {/* */}\n {/* {props.title}*/}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n )}\n \n );\n};\n\nexport default AccountProfileHeader;\n","export const getConfig = () => {\n console.log(process.env)\n console.log(window.location.hostname)\n\n if (window.location.hostname === 'testapp.localhost') {\n console.log('Setting up for Local')\n return {\n apiUrl: 'https://testapi.auctionsnap.com:8443',\n version: 'Auction Snap 1.0.2',\n }\n }\n else if (window.location.hostname === 'staging1.auctionsnap.com' || window.location.hostname === 'staging2.auctionsnap.com') {\n console.log('Setting up for Staging')\n return {\n apiUrl: 'https://stagingapi.auctionsnap.com:8443',\n version: 'Auction Snap 1.0.2',\n }\n }\n else if (window.location.hostname === 'testapp.auctionsnap.com' || window.location.hostname === 'test1.auctionsnap.com') {\n console.log('Setting up for Dev')\n return {\n apiUrl: 'https://testapi.auctionsnap.com:8443',\n version: 'Auction Snap 1.0.2',\n }\n }\n else {\n console.log('Setting up for Live')\n return {\n apiUrl: 'https://api.auctionsnap.com:8443',\n version: 'AuctionSnap 1.0.2',\n }\n }\n}\n","// Constants\nimport {getConfig} from \"./AppConfig\";\n\nconst { apiUrl } = getConfig()\nexport const PROD_URL = apiUrl + \"/hubs/auction\"\n// export const DEV_URL = \"https://localhost:5001/hubs/auction\"\n\nexport function getURL(): string {\n return PROD_URL\n}\n\nconst breakpoints = [0, 480, 576, 768, 992, 1200]\n\nexport const mq = breakpoints.map((bp) => `@media (min-width: ${bp}px)`)\n\nexport const usStates = [\n { name: \"\", abbreviation: \"\" },\n { name: \"ALABAMA\", abbreviation: \"AL\" },\n { name: \"ALASKA\", abbreviation: \"AK\" },\n { name: \"ARIZONA\", abbreviation: \"AZ\" },\n { name: \"ARKANSAS\", abbreviation: \"AR\" },\n { name: \"CALIFORNIA\", abbreviation: \"CA\" },\n { name: \"COLORADO\", abbreviation: \"CO\" },\n { name: \"CONNECTICUT\", abbreviation: \"CT\" },\n { name: \"DELAWARE\", abbreviation: \"DE\" },\n { name: \"DISTRICT OF COLUMBIA\", abbreviation: \"DC\" },\n { name: \"FLORIDA\", abbreviation: \"FL\" },\n { name: \"GEORGIA\", abbreviation: \"GA\" },\n { name: \"GUAM\", abbreviation: \"GU\" },\n { name: \"HAWAII\", abbreviation: \"HI\" },\n { name: \"IDAHO\", abbreviation: \"ID\" },\n { name: \"ILLINOIS\", abbreviation: \"IL\" },\n { name: \"INDIANA\", abbreviation: \"IN\" },\n { name: \"IOWA\", abbreviation: \"IA\" },\n { name: \"KANSAS\", abbreviation: \"KS\" },\n { name: \"KENTUCKY\", abbreviation: \"KY\" },\n { name: \"LOUISIANA\", abbreviation: \"LA\" },\n { name: \"MAINE\", abbreviation: \"ME\" },\n { name: \"MARYLAND\", abbreviation: \"MD\" },\n { name: \"MASSACHUSETTS\", abbreviation: \"MA\" },\n { name: \"MICHIGAN\", abbreviation: \"MI\" },\n { name: \"MINNESOTA\", abbreviation: \"MN\" },\n { name: \"MISSISSIPPI\", abbreviation: \"MS\" },\n { name: \"MISSOURI\", abbreviation: \"MO\" },\n { name: \"MONTANA\", abbreviation: \"MT\" },\n { name: \"NEBRASKA\", abbreviation: \"NE\" },\n { name: \"NEVADA\", abbreviation: \"NV\" },\n { name: \"NEW HAMPSHIRE\", abbreviation: \"NH\" },\n { name: \"NEW JERSEY\", abbreviation: \"NJ\" },\n { name: \"NEW MEXICO\", abbreviation: \"NM\" },\n { name: \"NEW YORK\", abbreviation: \"NY\" },\n { name: \"NORTH CAROLINA\", abbreviation: \"NC\" },\n { name: \"NORTH DAKOTA\", abbreviation: \"ND\" },\n { name: \"OHIO\", abbreviation: \"OH\" },\n { name: \"OKLAHOMA\", abbreviation: \"OK\" },\n { name: \"OREGON\", abbreviation: \"OR\" },\n { name: \"PENNSYLVANIA\", abbreviation: \"PA\" },\n { name: \"RHODE ISLAND\", abbreviation: \"RI\" },\n { name: \"SOUTH CAROLINA\", abbreviation: \"SC\" },\n { name: \"SOUTH DAKOTA\", abbreviation: \"SD\" },\n { name: \"TENNESSEE\", abbreviation: \"TN\" },\n { name: \"TEXAS\", abbreviation: \"TX\" },\n { name: \"UTAH\", abbreviation: \"UT\" },\n { name: \"VERMONT\", abbreviation: \"VT\" },\n { name: \"VIRGINIA\", abbreviation: \"VA\" },\n { name: \"WASHINGTON\", abbreviation: \"WA\" },\n { name: \"WEST VIRGINIA\", abbreviation: \"WV\" },\n { name: \"WISCONSIN\", abbreviation: \"WI\" },\n { name: \"WYOMING\", abbreviation: \"WY\" },\n { name: \"ARMED FORCES IN EUROPE\", abbreviation: \"AE\" },\n { name: \"Armed Forces the Americas\", abbreviation: \"AA\" },\n { name: \"Armed Forces Pacific\", abbreviation: \"AP\" },\n { name: \"Virgin Islands\", abbreviation: \"VI\" },\n { name: \"United States Minor Outlying Islands\", abbreviation: \"UM\" },\n { name: \"Puerto Rico\", abbreviation: \"PR\" },\n { name: \"Madhya Pradesh\", abbreviation: \"MP\" },\n { name: \"Guam\", abbreviation: \"GU\" },\n { name: \"American Samoa\", abbreviation: \"AS\" },\n { name: \"Alberta\", abbreviation: \"AB\" },\n { name: \"British Columbia\", abbreviation: \"BC\" },\n { name: \"Manitoba\", abbreviation: \"MB\" },\n { name: \"Newfoundland and Labrador\", abbreviation: \"NL\" },\n { name: \"Northwest Territories\", abbreviation: \"NT\" },\n { name: \"Nova Scotia\", abbreviation: \"NS\" },\n { name: \"Nunavut\", abbreviation: \"NU\" },\n { name: \"Ontario\", abbreviation: \"ON\" },\n { name: \"Prince Edward Island\", abbreviation: \"PE\" },\n { name: \"Quebec\", abbreviation: \"QC\" },\n { name: \"Saskatchewan\", abbreviation: \"SK\" },\n { name: \"Yukon\", abbreviation: \"YT\" },\n]\n\nexport const paymentConfig = {\n url:\n \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js\",\n id: \"firstpay-script-cryptogram\",\n type: \"text/javascript\",\n dataTranscenter: 92754,\n dataProcessor: 70802,\n dataType: \"Credit\"\n}\n","import styled from \"@emotion/styled\";\n\nimport { mq } from \"../../constants\";\n\ntype NavProps = {\n open: boolean;\n};\n\nconst NavMenuContainer = styled.div`\n position: absolute;\n top: ${(props) => props.theme.components.navBarHeight};\n left: 0;\n background: #ffffff;\n width: 100%;\n height: 100%;\n ${mq[2]} {\n width: ${(props) => (props.open ? \"250px\" : 0)};\n }\n transform: translateX(${(props) => (props.open ? 0 : \"-100%\")});\n transition-property: transform;\n transition-duration: 250ms;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: hidden;\n font-size: 16px;\n font-weight: 300;\n`;\n\nexport default NavMenuContainer;\n","import styled from \"@emotion/styled\"\n\nconst NavMenuItem = styled.div`\n display: flex;\n color: #666666;\n border-bottom: 2px solid #f7f7f7;\n height: 53px;\n width: 100%;\n align-items: center;\n`\n\nexport default NavMenuItem\n","// A tiny wrapper around fetch(), borrowed from\n// https://kentcdodds.com/blog/replace-axios-with-a-simple-custom-fetch-wrapper\n\nexport async function client(\n endpoint: string,\n { body, ...customConfig }: any = {}\n) {\n const headers = { \"Content-Type\": \"application/json\" }\n\n const config = {\n method: customConfig.method,\n ...customConfig,\n headers: {\n ...headers,\n ...customConfig.headers\n }\n }\n\n if (body) {\n config.body = JSON.stringify(body)\n }\n\n let data\n try {\n const response = await window.fetch(endpoint, config)\n data = await response.json()\n if (response.ok) {\n return data\n }\n throw new Error(response.statusText)\n } catch (err) {\n return Promise.reject(err.message ? err.message : data)\n }\n}\n\nclient.get = function (endpoint: string, customConfig = {}) {\n return client(endpoint, { ...customConfig, method: \"GET\" })\n}\n\nclient.post = function (endpoint: string, body: any, customConfig = {}) {\n return client(endpoint, { ...customConfig, body, method: \"POST\" })\n}\n\nclient.put = function (endpoint: string, body: any, customConfig = {}) {\n return client(endpoint, { ...customConfig, body, method: \"PUT\" })\n}\n","import { useSelector } from \"react-redux\"\n\nimport { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nimport { client } from \"../../util/api/fetchData\"\nimport { AppState } from \"../store\"\n\ntype UserState = {\n userName: string | null\n firstname: string | null\n lastname: string | null\n email: string | null\n phoneNumber: number | null\n addressInfo: {\n lineOne: string | null\n lineTwo: string | null\n city: string | null\n state: string | null\n postalCode: number | null\n }\n error: any\n redirect: boolean\n isLoggedIn: boolean\n accountstatus: string\n accountSetupComplete: boolean\n authorizebidder: boolean\n bidderdisplaynumber: string\n bidanonymously: boolean\n allowtexting: boolean\n userid: any\n eventcode: string | null,\n notifications: [],\n}\n\nexport const initialState: UserState | any = {\n firstname: null,\n lastname: null,\n userName: null,\n email: \"\",\n phoneNumber: null,\n addressInfo: {\n lineOne: null,\n lineTwo: null,\n city: null,\n state: null,\n postalCode: null\n },\n error: null,\n redirect: false,\n isLoggedIn: false,\n accountstatus: \"\",\n accountSetupComplete: false,\n authorizebidder: true,\n bidderdisplaynumber: \"\",\n bidanonymously: false,\n allowtexting: false,\n userid: null,\n eventcode: null,\n auctioncode: null,\n notifications: null,\n}\n\nexport const verifyEmail = createAsyncThunk(\n \"user/verifyEmail\",\n async (config: any) => {\n const response = await client.post(config.url, {\n email: config.email,\n eventcode: config.eventcode,\n auctioncode: config.auctioncode\n })\n return response\n }\n)\n\nexport const sendUserInfo = createAsyncThunk(\n \"user/sendUserInfo\",\n async (config: any) => {\n const response = await client.post(config.url, {\n email: config.email,\n password: config.password,\n eventcode: config.eventcode,\n auctioncode: config.auctioncode\n })\n return response\n }\n)\n\nexport const updateUserProfile = createAsyncThunk(\n \"user/updateUserProfile\",\n async (config: any) => {\n const url = config.url\n const token = localStorage.getItem(\"token\")\n delete config.url\n const response = await client.put(\n url,\n {\n ...config\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n return response\n }\n)\n\nexport const resetPassword = createAsyncThunk(\n \"user/resetPassword\",\n async (config: any) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n config.url,\n {\n password: config.password,\n auctioncode: config.auctioncode\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n return response\n }\n)\n\nexport const resetPasswordLink = createAsyncThunk(\n \"user/resetPassword\",\n async (config: any) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n config.url,\n {\n password: config.password,\n token: config.id\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n return response\n }\n)\n\nexport const forgotPassword = createAsyncThunk(\n \"user/resetPassword\",\n async (config: any) => {\n const response = await client.post(config.url, {\n email: config.email,\n eventcode: config.eventcode,\n auctioncode: config.auctioncode\n })\n return response\n }\n)\n\nexport const checkTokenOnRefresh = createAsyncThunk(\n \"user/refreshBrowser\",\n async (config: any) => {\n const token = \"Bearer \" + localStorage.getItem(\"token\")\n const url = config.url\n delete config.url\n\n if (token) {\n const response = await client.get(url, {\n headers: {\n Authorization: token\n }\n })\n\n return response\n } else {\n return Promise.reject(\"Something wrong with the token or connection\")\n }\n }\n)\n\nexport const slice = createSlice({\n name: \"user\",\n initialState,\n reducers: {\n updateUserInfo: (state, action) => {\n Object.keys(action.payload).forEach((key) => {\n // tslint:disable-next-line\n // need typescript working for this\n if (key in state) {\n state[key] = action.payload[key]\n }\n })\n },\n updateStateOnLogout: (state) => {\n return {\n ...initialState,\n email: state.email,\n accountstatus: state.accountstatus,\n accountSetupComplete: state.accountSetupComplete\n }\n }\n },\n extraReducers: (builder) => {\n builder.addCase(\"user/refreshBrowser/pending\", (state, action) => {})\n builder.addCase(\"user/refreshBrowser/fulfilled\", (state, action: any) => {\n const user = JSON.parse(action.payload.jsonString)\n state.isLoggedIn = true\n state.lastname = user.lastname\n state.accountSetupComplete = user.setupcomplete\n state.bidanonymously = user.bidanonymously\n state.phoneNumber = user.cellphone\n state.allowtexting = user.allowtexting\n state.addressInfo.lineOne = user.address\n state.addressInfo.lineTwo = user.address2\n state.addressInfo.city = user.city\n state.addressInfo.state = user.state\n state.addressInfo.postalCode = user.zip\n state.eventcode = user.eventcode\n state.notifications = user.notifications\n\n Object.keys(user).forEach((key) => {\n // tslint:disable-next-line\n // need typescript working for this\n if (key in state) {\n state[key] = user[key]\n }\n })\n })\n builder.addCase(\"user/refreshBrowser/rejected\", (state, action: any) => {\n state.isLoggedIn = false\n })\n builder.addCase(\"user/sendUserInfo/pending\", (state, action) => {})\n builder.addCase(\"user/sendUserInfo/fulfilled\", (state, action: any) => {\n state.isLoggedIn = true\n })\n builder.addCase(\"user/sendUserInfo/rejected\", (state, action: any) => {\n console.log(action.error.message)\n })\n builder.addCase(\"user/verifyEmail/pending\", (state, action) => {})\n builder.addCase(\"user/verifyEmail/fulfilled\", (state, action: any) => {})\n builder.addCase(\"user/verifyEmail/rejected\", (state, action: any) => {\n state.redirect = true\n })\n builder.addCase(\"user/updateUserProfile/pending\", (state, action) => {})\n builder.addCase(\n \"user/updateUserProfile/fulfilled\",\n (state, action: any) => {\n const user = JSON.parse(action.payload.jsonString)\n state.isLoggedIn = true\n state.lastname = user.lastname\n state.accountSetupComplete = user.setupcomplete\n state.bidanonymously = user.bidanonymously\n state.authorizebidder = user.authorizebidder\n state.phoneNumber = user.cellphone\n state.allowtexting = user.allowtexting\n state.addressInfo.lineOne = user.address\n state.addressInfo.lineTwo = user.address2\n state.addressInfo.city = user.city\n state.addressInfo.state = user.state\n state.addressInfo.postalCode = user.zip\n state.eventcode = user.eventcode\n state.notifications = user.notifications\n\n Object.keys(user).forEach((key) => {\n // tslint:disable-next-line\n // need typescript working for this\n if (key in state) {\n state[key] = user[key]\n }\n })\n }\n )\n builder.addCase(\n \"user/updateUserProfile/rejected\",\n (state, action: any) => {}\n )\n }\n})\n\nexport const useUserInfo = () => useSelector((state: AppState) => state.user as UserState)\n\nexport const { updateUserInfo, updateStateOnLogout } = slice.actions\n\nexport default slice.reducer\n\n","import { createSlice } from '@reduxjs/toolkit';\n\nexport const slice = createSlice({\n name: 'signalr',\n initialState: {\n connected: false,\n disconnected: true,\n reconnecting: false\n },\n reducers: {\n connected: state => {\n let newState = state\n return Object.assign(newState, { connected: true, disconnected: false, reconnecting: false })\n },\n disconnected: state => {\n let newState = state\n return Object.assign(newState, { connected: false, disconnected: true, reconnecting: false })\n },\n reconnecting: state => {\n let newState = state\n return Object.assign(newState, { connected: false, disconnected: true, reconnecting: true })\n }\n }\n})\n\nexport const { connected, disconnected, reconnecting } = slice.actions\nexport default slice.reducer","import styled from \"@emotion/styled\"\nimport React from \"react\"\nimport { useDispatch } from \"react-redux\"\nimport { Link, useHistory } from \"react-router-dom\"\nimport { updateStateOnLogout } from \"../../redux/slices/userSlice\"\nimport {useParams} from \"react-router\";\nimport {disconnected} from \"../../redux/slices/signalrSlice\";\n\ntype LinkProps = {\n route: string\n routeName: string\n logout?: boolean\n}\n\nconst Button = styled.button`\n background: none;\n color: #666666;\n padding: 0;\n font-size: 16px;\n font-weight: 300;\n cursor: pointer;\n width: 100%;\n text-align: left;\n`\n\ninterface Params {\n eventcode: string\n}\n\n\nconst StyledLink: React.FC = ({\n route,\n routeName,\n logout = false\n}) => {\n const history = useHistory()\n const dispatch = useDispatch()\n const { eventcode } = useParams()\n const logUserOut = () => {\n dispatch(updateStateOnLogout())\n const token = localStorage.getItem(\"token\")\n localStorage.removeItem(\"token\")\n dispatch(disconnected())\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n\n history.push(route)\n }\n\n return (\n <>\n {!logout && (\n \n {routeName}\n \n )}\n {logout && }\n \n )\n}\n\nexport default StyledLink\n","import React, { useEffect, useState } from \"react\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {useLocation, useParams} from \"react-router\";\n\nimport styled from \"@emotion/styled\";\n\nimport NavMenuContainer from \"./NavMenuContainer\";\nimport NavMenuItem from \"./NavMenuItem\";\nimport StyledLink from \"./StyledLink\";\nimport ButtonItem from \"../../pages/CommonStyles/ButtonItem\";\nimport {updateStateOnLogout} from \"../../redux/slices/userSlice\";\nimport {disconnected} from \"../../redux/slices/signalrSlice\";\nimport {useHistory} from \"react-router-dom\";\n\nconst Slice = styled.div`\n width: 30px;\n height: 5px;\n background-color: #d2222d;\n margin: 6px 0;\n`;\nconst HamburgerContainer = styled.div`\n width: 40px;\n padding: 0 1rem;\n`;\nconst MenuWrapper = styled.div`\n z-index: 100;\n`;\n\ntype Props = {\n menuOpen: boolean\n setMenuOpen: any\n}\n\ninterface Params {\n eventcode: string\n}\n\nconst Menu: React.FC = ({ menuOpen, setMenuOpen }) => {\n const { eventcode } = useParams()\n // const [menuOpen, setMenuOpen] = useState(false);\n // const eventcode = useSelector((state: any) => state.event.eventcode);\n const isLoggedIn = useSelector((state: any) => state.user.isLoggedIn);\n const accountStatus = useSelector((state: any) => state.user.accountstatus);\n const location = useLocation();\n const dispatch = useDispatch()\n const history = useHistory()\n\n useEffect(() => {\n if (menuOpen) setMenuOpen(false);\n }, [location]);\n\n const toggleMenu = () => {\n setMenuOpen(!menuOpen);\n };\n\n const logUserOut = () => {\n dispatch(updateStateOnLogout())\n const token = localStorage.getItem(\"token\")\n localStorage.removeItem(\"token\")\n dispatch(disconnected())\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n\n history.push('/' + eventcode)\n }\n\n return (\n <>\n \n \n \n \n \n \n \n \n {accountStatus !== 'guest' &&\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n }\n\n{/* \n \n */}\n \n \n \n );\n};\n\nexport default Menu;\n","import {getConfig} from \"../../AppConfig\";\n\nconst { apiUrl } = getConfig()\nexport const HOST = apiUrl\nconst EVENT_ENDPOINT = HOST + \"/event/\"\nconst LOGIN_URL = HOST + \"/login/\"\nconst GUEST_LOGIN_URL = HOST + \"/guestlogin\"\nconst JOIN_EMAIL = HOST + \"/join\"\nexport const USER_PROFILE = \"/userprofile\"\nexport const CREATE_ACCOUNT = \"/create\"\nexport const FORGOT_PASSWORD = \"/forgotpassword\"\nexport const PASSWORD_RESET = \"/passwordreset\"\nexport const PASSWORD_RESET_LINK = \"/passwordresetlink\"\nexport const RESET_PASSWORD = \"/userpasswordreset\"\nexport const PRIVACY_POLICY = \"/privacypolicy\"\nexport const SLIDESHOW = \"/itemoverview\"\nexport const AUCTION_ITEMS_ENDPOINT = \"/auctionitems\"\nexport const WATCH_LIST = \"/watchlist\"\nexport const AUCTION_ITEM_DETAIL_ENDPOINT = \"/itemdetails\"\nexport const CART_ENDPOINT = \"/cart\"\nexport const ORDERS_ENDPOINT = \"/myorders\"\nexport const BID_HISTORY = \"/bidhistory\"\nexport const SUBMIT_BID = \"/submitbid\"\nexport const SUBMIT_MAX_BID = \"/maxbid\"\nexport const VERIFY_EMAIL = \"/verify\"\nexport const CHECKOUT_CART = \"/checkout\"\n\nconst joinCustomParams = (customParams: Array) => {\n return customParams.join(\"/\")\n}\n\nexport const getEndPoint = (\n type: string,\n customParams: Array = [\"\"]\n) => {\n switch (type) {\n case \"EVENT_ENDPOINT\":\n return EVENT_ENDPOINT + joinCustomParams(customParams)\n case AUCTION_ITEMS_ENDPOINT:\n return HOST + AUCTION_ITEMS_ENDPOINT\n case AUCTION_ITEM_DETAIL_ENDPOINT:\n return HOST + AUCTION_ITEM_DETAIL_ENDPOINT\n case \"LOGIN_URL\":\n return LOGIN_URL + joinCustomParams(customParams)\n case \"GUEST_LOGIN_URL\":\n return GUEST_LOGIN_URL + joinCustomParams(customParams)\n case \"JOIN_EMAIL\":\n return JOIN_EMAIL\n case BID_HISTORY:\n return HOST + BID_HISTORY\n case CREATE_ACCOUNT:\n return HOST + CREATE_ACCOUNT\n case USER_PROFILE:\n return HOST + USER_PROFILE\n case FORGOT_PASSWORD:\n return HOST + FORGOT_PASSWORD\n case PASSWORD_RESET:\n return HOST + PASSWORD_RESET\n case PASSWORD_RESET_LINK:\n return HOST + PASSWORD_RESET_LINK\n case RESET_PASSWORD:\n return HOST + RESET_PASSWORD\n case CART_ENDPOINT:\n return HOST + CART_ENDPOINT\n case ORDERS_ENDPOINT:\n return HOST + ORDERS_ENDPOINT\n case PRIVACY_POLICY:\n return HOST + PRIVACY_POLICY\n case SLIDESHOW:\n return HOST + SLIDESHOW\n case SUBMIT_BID:\n return HOST + SUBMIT_BID\n case SUBMIT_MAX_BID:\n return HOST + SUBMIT_MAX_BID\n case VERIFY_EMAIL:\n return HOST + VERIFY_EMAIL\n case CHECKOUT_CART:\n return HOST + CHECKOUT_CART\n case WATCH_LIST:\n return HOST + WATCH_LIST\n default:\n return \"\"\n }\n}\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\nimport { client } from \"../../util/api/fetchData\"\n\ntype EventState = {\n eventData: any\n eventflag: string\n eventname: string\n eventopendatecst: string\n eventcloseddatecst: string\n eventbiddingopencst: string\n eventbiddingclosedcst: string\n eventopendate: string\n eventcloseddate: string\n eventbiddingopen: string\n eventbiddingclosed: string\n eventopendatecd: string\n eventcloseddatecd: string\n eventbiddingopencd: string\n eventbiddingclosedcd: string\n organizationphone: string\n organizationemail: string\n allowbillme: Boolean\n allowpayccfees: Boolean\n eventallowanonymousbidding: Boolean\n eventallowguestentry: Boolean\n ccfeespercent: Boolean\n welcomemessage: string\n homemessage: string\n contactus: string\n logourl: string\n sponsorurl: any\n addressrequired: Boolean\n ziprequired: Boolean\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n eventcode: any\n auctioncode: any\n creditcardiframe: string\n javascriptfile: string\n transcenterid: string\n processorid: string\n transactiontype: string\n notificationcolumns: []\n notificationrows: []\n notifications: {\n shownotificationsmenuitem: Boolean\n }\n reset: Boolean\n cartreset: Boolean\n forcelogout: Boolean\n eventclosing: Boolean\n}\n\nconst initialState: EventState = {\n eventData: {},\n eventflag: \"\",\n eventname: \"\",\n eventopendatecst: \"\",\n eventcloseddatecst: \"\",\n eventbiddingopencst: \"\",\n eventbiddingclosedcst: \"\",\n eventopendate: \"\",\n eventcloseddate: \"\",\n eventbiddingopen: \"\",\n eventbiddingclosed: \"\",\n eventopendatecd: \"\",\n eventcloseddatecd: \"\",\n eventbiddingopencd: \"\",\n eventbiddingclosedcd: \"\",\n organizationphone: \"\",\n organizationemail: \"\",\n allowbillme: false,\n allowpayccfees: false,\n eventallowanonymousbidding: false,\n eventallowguestentry: false,\n ccfeespercent: false,\n welcomemessage: \"\",\n homemessage: \"\",\n contactus: \"\",\n logourl: \"\",\n sponsorurl: [],\n addressrequired: false,\n ziprequired: false,\n status: \"idle\",\n error: null,\n eventcode: null,\n auctioncode: null,\n creditcardiframe: \"\",\n javascriptfile: \"\",\n transcenterid: \"92754\",\n processorid: \"70802\",\n transactiontype: \"Sale\",\n notificationcolumns: [],\n notificationrows: [],\n notifications: {\n shownotificationsmenuitem: false,\n },\n reset: false,\n cartreset: false,\n forcelogout: false,\n eventclosing: false\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\n// export const fetchEventData = createAsyncThunk(\n// \"event/fetchEventData\",\n// async (url: string) => {\n// const response = await client.get(url)\n// const parsedData = JSON.parse(response.jsonString)\n// return parsedData\n// }\n// )\n\nexport const fetchEventData = createAsyncThunk(\n \"event/fetchEventData\",\n async (config: any) => {\n const response = await client.post(config.url, {\n email: config.email,\n password: config.password,\n eventcode: config.eventcode,\n auctioncode: config.auctioncode\n })\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"event\",\n initialState,\n reducers: {\n setEventReset: (state, action) => {\n state.reset = action.payload\n },\n setCartReset: (state, action) => {\n state.cartreset = action.payload\n },\n setForceLogout: (state, action) => {\n state.forcelogout = action.payload\n },\n setEventClosing: (state, action) => {\n state.eventclosing = action.payload\n },\n setEventCode: (state, action) => {\n state.eventcode = action.payload\n },\n setAuctionCode: (state, action) => {\n state.auctioncode = action.payload\n },\n setAuctionIds: (state, action) => {\n state.eventcode = action.payload.eventcode\n state.auctioncode = action.payload.auctioncode\n }\n },\n extraReducers: (builder) => {\n builder.addCase(\"event/fetchEventData/pending\", (state, action) => {\n state.status = \"loading\"\n })\n builder.addCase(\"event/fetchEventData/fulfilled\", (state, action: any) => {\n Object.keys(state).forEach(key => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n state[key] = value\n }\n }\n })\n state.status = \"succeeded\"\n state.eventData = action.payload\n })\n builder.addCase(\"event/fetchEventData/rejected\", (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n })\n }\n})\n\nexport const { setEventCode, setAuctionCode, setAuctionIds, setEventReset, setCartReset, setForceLogout, setEventClosing } = slice.actions\nexport default slice.reducer\n","import { useSelector } from \"react-redux\"\n\nimport { PayloadAction, createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nimport { client } from \"../../util/api/fetchData\"\nimport { AppState } from \"../store\"\nimport auctionItemDetailsSlice from \"./auctionItemDetailsSlice\";\n\nexport interface AuctionItem {\n rownumber: number\n itemid: number\n name: string\n description: string\n longdescription: string\n startingbid: number\n tags: string\n numberofbids: number\n lastbid: number\n open: string\n closing: string\n opencd: string\n opencst: string\n closingcd: string\n closingcst: string\n watchlist: boolean\n openforbid: boolean\n buyitnowavailable: boolean\n buyitnowonly: boolean\n allowautobid: boolean\n buyitnowprice: number\n bidstatus: string\n accountbiddingon: boolean\n currentlywinningbid: boolean\n itemisliveonly: boolean\n onlineauction: boolean\n imageurl: string\n unlimitedquantity: boolean\n maxpurchasequantity: number\n accountisautobid: boolean\n accountautobidamount: number\n accountautobidincrement: number\n}\n\ntype AuctionItemsState = {\n message: string\n auctionitems: AuctionItem[]\n tags: any\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n sortValue: string\n}\n\nexport const sortOptions = {\n FEATURED_ITEMS: \"Featured Items\",\n ENDING_SOON: \"Ending Soonest\",\n ALPHA_ASC: \"A to Z\",\n ALPHA_DESC: \"Z to A\",\n PRICE_ASC: \"Price Low to High\",\n PRICE_DESC: \"Price High to Low\",\n};\n\nconst initialState: AuctionItemsState = {\n message: \"\",\n auctionitems: [],\n tags: [],\n status: \"idle\",\n error: null,\n sortValue: sortOptions.FEATURED_ITEMS\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nconst handleToggleSuccess = (state: AuctionItemsState, action: any) => {\n const itemid = action?.meta?.arg?.itemid\n const updatedItem = state.auctionitems?.find((item) => item.itemid === itemid)\n if (updatedItem) {\n updatedItem.watchlist = !updatedItem?.watchlist\n }\n}\n\nexport const fetchAuctionItemsData = createAsyncThunk(\n \"auctionitems/fetchAuctionItemsData\",\n async (url: string) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n url,\n {\n includethumbnail: true\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const toggleWatchlistItem = createAsyncThunk(\n \"auctionitems/toggleWatchListItem\",\n async ({ url, itemid }: { url: string; itemid: number }) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n url,\n {\n itemid\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n const parsedData: {\n status: \"success\" | \"failure\"\n } = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"auctionitems\",\n initialState,\n reducers: {\n setSortValue: (state, {payload}: PayloadAction) => {\n state.sortValue = payload\n },\n updateAuctionItems: (state) => {\n const newItems = state.auctionitems.map((item: any) => {\n return {\n ...item\n\n }\n })\n state.auctionitems = newItems\n },\n updateItemOnBid: (state, action) => {\n const newItems = state.auctionitems.map((item: AuctionItem) => {\n if (item.itemid === action.payload.itemid) {\n return {\n ...item,\n lastbid: action.payload.bidamount,\n quantity: action.payload.quantity,\n quantityavailable: action.payload.quantity,\n numberofbids: action.payload.numberOfbids,\n currentlywinningbid: action.payload.currentlywinningbid,\n accountbiddingon: action.payload.accountbiddingon\n }\n } else {\n return item\n }\n })\n state.auctionitems = newItems\n },\n updateItemMaxBid: (state, action) => {\n const newItems = state.auctionitems.map((item: AuctionItem) => {\n if (item.itemid === action.payload.itemid) {\n return {\n ...item,\n accountisautobid: action.payload.accountisautobid,\n }\n } else {\n return item\n }\n })\n state.auctionitems = newItems\n },\n updateAutoBid: (state, action) => {\n const newItems = state.auctionitems.map((item: AuctionItem) => {\n if (item.itemid === action.payload.itemid) {\n const newItem = {\n ...item,\n accountisautobid: action.payload.accountisautobid,\n accountautobidamount: action.payload.accountautobidamount,\n accountautobidincrement: action.payload.accountautobidincrement,\n }\n return newItem\n } else {\n return item\n }\n })\n state.auctionitems = newItems\n },\n itemUpdate: (state, action) => {\n const newItems = state.auctionitems.map((item: AuctionItem) => {\n if (item.itemid === action.payload.itemid) {\n return {\n ...item,\n lastbid: action.payload.bidamount,\n quantity: action.payload.quantity,\n quantityavailable: action.payload.quantity,\n numberofbids: action.payload.numberOfbids\n }\n } else {\n return item\n }\n })\n state.auctionitems = newItems\n }\n },\n extraReducers: (builder) => {\n builder.addCase(\n \"auctionitems/fetchAuctionItemsData/pending\",\n (state, action) => {\n state.status = \"loading\"\n }\n )\n builder.addCase(\n \"auctionitems/fetchAuctionItemsData/fulfilled\",\n (state, action: any) => {\n Object.keys(state).forEach((key) => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n state[key] = value\n }\n }\n })\n state.auctionitems.forEach((auctionitem: any, index: any) => {\n auctionitem.onlineauction = !auctionitem.itemisliveonly\n if (auctionitem.tags) {\n auctionitem.tags.split(\",\").forEach((oneTag: any, indexTag: any) => {\n if (state.tags.indexOf(oneTag.trim()) === -1)\n state.tags.push(oneTag.trim())\n })\n }\n })\n state.status = \"succeeded\"\n }\n )\n builder.addCase(\n \"auctionitems/fetchAuctionItemsData/rejected\",\n (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n }\n )\n builder.addCase(\n \"auctionitems/toggleWatchListItem/fulfilled\",\n handleToggleSuccess\n )\n }\n})\n\nexport const { updateAuctionItems, updateItemOnBid, itemUpdate, setSortValue, updateItemMaxBid, updateAutoBid} = slice.actions\nexport default slice.reducer\n\nexport const useAuctionItemsState = () => {\n return useSelector((state: AppState) => state.auctionItems)\n}\n\nexport const useSortValue = () => {\n return useSelector((state: AppState) => state.auctionItems.sortValue)\n}\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nimport { client } from \"../../util/api/fetchData\"\n\ntype AuctionItemDetailsState = {\n message: string\n tags: any\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n itemid: string\n historyid: number\n name: string\n description: string\n longdescription: string\n itemnum: string\n donatedby: string\n fairmarketvalue: any\n ispriceless: any\n quantityavailable: any\n maxpurchasequantity: any\n buyitnowonly: any\n buyitnowavailable: any\n buyitnowprice: any\n currentbid: any\n minimumbidincrease: any\n bidstatus: any\n location: string\n unlimitedquantity: any\n accountisautobid: any\n accountautobidamount: any\n accountautobidincrement: any\n}\n\nconst initialState: AuctionItemDetailsState = {\n message: \"\",\n tags: [],\n status: \"idle\",\n error: null,\n itemid: \"\",\n historyid: null,\n name: \"\",\n description: \"\",\n longdescription: \"\",\n itemnum: \"\",\n donatedby: \"\",\n fairmarketvalue: 0,\n ispriceless: false,\n quantityavailable: \"\",\n maxpurchasequantity: 0,\n buyitnowonly: false,\n buyitnowavailable: false,\n buyitnowprice: \"\",\n currentbid: \"\",\n minimumbidincrease: \"\",\n bidstatus: \"\",\n location: \"\",\n unlimitedquantity: false,\n accountisautobid: false,\n accountautobidamount: 0,\n accountautobidincrement: 0\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nexport const fetchAuctionItemDetailsData = createAsyncThunk(\n \"auctionitemsdetail/fetchAuctionItemDetailsData\",\n async (config: any) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n config.url,\n {\n itemid: parseInt(config.itemId)\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"auctionItemDetails\",\n initialState,\n reducers: {\n resetItemDetailsState: (state) => {\n return {\n ...initialState\n }\n },\n updateItemDetailsOnBid: (state, action) => {\n if (state.itemid && state.itemid === action.payload.itemid) {\n return {\n ...state,\n currentbid: action.payload.bidamount,\n quantityavailable: action.payload.quantity\n }\n } else {\n return state\n }\n },\n updateItemDetailsHistoryId: (state, action) => {\n if (state.itemid && state.itemid === action.payload.itemid && action.payload.historyid) {\n return {\n ...state,\n historyid: action.payload.historyid\n }\n } else {\n return state\n }\n }\n },\n extraReducers: (builder) => {\n builder.addCase(\n \"auctionitemsdetail/fetchAuctionItemDetailsData/pending\",\n (state, action) => {\n state.status = \"loading\"\n }\n )\n builder.addCase(\n \"auctionitemsdetail/fetchAuctionItemDetailsData/fulfilled\",\n (state, action: any) => {\n Object.keys(state).forEach((key) => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n if (key !== 'historyid') {\n state[key] = value\n }\n // state[\"image\"] = await fetch('data:iamge/jpeg;base64, ${value}')\n }\n\n return\n }\n })\n state.status = \"succeeded\"\n }\n )\n builder.addCase(\n \"auctionitemsdetail/fetchAuctionItemDetailsData/rejected\",\n (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n }\n )\n }\n})\n\nexport const { updateItemDetailsOnBid } = slice.actions\nexport const { updateItemDetailsHistoryId, resetItemDetailsState } = slice.actions\n\nexport default slice.reducer\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nimport { CHECKOUT_CART, HOST } from \"../../util/api/enpoints\"\nimport { client } from \"../../util/api/fetchData\"\n\nexport type ItemWonList = {\n itemid: number\n historyid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n checked: boolean\n}\n\ntype CartState = {\n message: string\n auctionswon: any\n auctionsopen: any\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n auctionsWonChecked: null | ItemWonList[]\n totalAmount: any\n showccfees: any\n ccfeespercentage: any\n checkoutStatus: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n gemisvalid: any\n}\n\n/** Please remove below test item when you have something in items won\n * added for testing\n */\nconst initialState: CartState = {\n message: \"\",\n auctionswon: [],\n auctionsopen: [],\n status: \"idle\",\n error: null,\n auctionsWonChecked: null,\n totalAmount: 0,\n showccfees: false,\n ccfeespercentage: 0,\n checkoutStatus: \"idle\",\n gemisvalid: false\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nexport const fetchCartData = createAsyncThunk(\n \"cart/fetchCartData\",\n async (url: string) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.get(url, {\n headers: {\n Authorization: \"Bearer \" + token\n }\n })\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const sendCheckoutData = createAsyncThunk(\n \"cart/sendCheckoutData\",\n async (config: any) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n HOST + CHECKOUT_CART,\n {\n ...config\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n return response\n }\n)\n\nexport const slice = createSlice({\n name: \"cart\",\n initialState,\n reducers: {\n updateCart: (state) => {\n // const newItems = state.auctionitems.map((item: any) => {\n // return {\n // ...item,\n // watchlist: Math.random() < 0.5,\n // openforbid: Math.random() < 0.5\n // }\n // })\n // state.auctionitems = newItems\n },\n setInitialAuctionsWonChecked: (state) => {\n const newList = state.auctionswon.map((item: any) => ({\n ...item,\n checked: false\n }))\n state.auctionsWonChecked = newList\n },\n setAllAuctionsChecked: (state) => {\n const newList = state.auctionswon.map((item: any) => ({\n ...item,\n checked: true\n }))\n state.auctionsWonChecked = newList\n },\n setAuctionsWonCheckedItem: (state, action) => {\n if (state.auctionsWonChecked && state.auctionsWonChecked.length) {\n const newList = state.auctionsWonChecked?.map((item) => {\n if (item.historyid === action.payload.historyid) {\n return {\n ...item,\n checked: action.payload.checked\n }\n } else {\n return item\n }\n })\n return {\n ...state,\n auctionsWonChecked: newList\n }\n }\n },\n updateTotalAmount: (state, action) => {\n if (state.auctionsWonChecked && state.auctionsWonChecked.length) {\n const item = state.auctionsWonChecked.find(\n (item) => item.historyid === action.payload.historyid\n )\n if (item) {\n const amt = item.amount * item.quantity\n if (action.payload.checked) {\n state.totalAmount = state.totalAmount + amt\n } else {\n state.totalAmount = state.totalAmount - amt\n }\n }\n }\n },\n resetStatus: (state) => {\n return { ...initialState };\n },\n resetTotalAmount: (state, action) => {\n state.totalAmount = 0\n },\n updateAuctionsWon: (state, action) => {\n const auctionsWonList = state.auctionswon.concat(action.payload.item)\n state.auctionswon = auctionsWonList\n }\n },\n extraReducers: (builder) => {\n builder.addCase(\"cart/fetchCartData/pending\", (state, action) => {\n state.status = \"loading\"\n })\n builder.addCase(\"cart/fetchCartData/fulfilled\", (state, action: any) => {\n state.status = \"succeeded\"\n state.auctionswon = []\n\n Object.keys(state).forEach((key) => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n state[key] = value\n }\n }\n })\n if (state.auctionswon?.length === 0) {\n state.auctionsWonChecked = []\n }\n\n const newList = state.auctionswon.map((item: any) => ({\n ...item,\n checked: true\n }))\n state.auctionsWonChecked = newList\n })\n builder.addCase(\"cart/fetchCartData/rejected\", (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n })\n builder.addCase(\"checkout/sendCheckoutData/pending\", (state, action) => {})\n builder.addCase(\n \"checkout/sendCheckoutData/fulfilled\",\n (state, action) => {}\n )\n builder.addCase(\"user/updateStateOnLogout\", (state) => {\n return {...initialState}\n })\n }\n})\n\nexport const {\n updateCart,\n setInitialAuctionsWonChecked,\n setAuctionsWonCheckedItem,\n setAllAuctionsChecked,\n updateTotalAmount,\n updateAuctionsWon,\n resetTotalAmount,\n resetStatus\n} = slice.actions\nexport default slice.reducer\n","import React, {useEffect, useState} from \"react\"\nimport Menu from \"../Menu/Index\"\nimport Img from \"./Img\"\nimport LogoContainer from \"./LogoContainer\"\nimport LogoWrapper from \"./LogoWrapper\"\nimport Text from \"../../pages/CommonStyles/Text\"\nimport {IonBadge, IonButton, IonButtons, IonFab, IonFabButton, IonIcon, IonTitle, IonToolbar, IonItem} from \"@ionic/react\";\n\nimport {cartOutline} from \"ionicons/icons\";\nimport {useHistory, useParams} from \"react-router\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport moment from \"moment/moment\";\nimport IconBack from \"../Icons/IconBack\";\nimport { logInOutline, logOutOutline } from \"ionicons/icons\";\nimport {menuSharp, arrowBack} from \"ionicons/icons\";\nimport styled from \"@emotion/styled\";\nimport iconBack from \"../Icons/IconBack\";\nimport jwt_decode from \"jwt-decode\";\nimport {\n AUCTION_ITEM_DETAIL_ENDPOINT,\n AUCTION_ITEMS_ENDPOINT,\n CART_ENDPOINT,\n getEndPoint\n} from \"../../util/api/enpoints\";\nimport {fetchEventData, setAuctionCode, setEventClosing, setEventCode} from \"../../redux/slices/eventSlice\";\nimport {fetchAuctionItemsData} from \"../../redux/slices/auctionItemsSlice\";\nimport {fetchAuctionItemDetailsData} from \"../../redux/slices/auctionItemDetailsSlice\";\nimport {fetchCartData} from \"../../redux/slices/cartSlice\";\nimport {updateStateOnLogout} from \"../../redux/slices/userSlice\";\nimport {DateTime} from \"luxon\";\n// import Badge from '@mui/material/Badge';\n\ntype Props = {\n eventResponse: any\n includeBack?: boolean\n backPath?: string\n itemid?: any\n}\n\ninterface Params {\n eventcode: string\n}\n\nconst AuctionItemsHeader: React.FC = ({ eventResponse, includeBack, backPath, itemid}) => {\n const { eventcode } = useParams()\n const cartState = useSelector((state: any) => state.cart)\n const history = useHistory()\n const dispatch = useDispatch()\n\n const goBack = () => {\n history.push(backPath);\n }\n\n const goToCart = () => {\n history.push(\"/\" + eventcode + \"/Cart\")\n }\n\n const logout = () => {\n dispatch(updateStateOnLogout())\n localStorage.removeItem(\"token\")\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n history.push('/' + eventcode + '/login')\n }\n\n const eventData = useSelector((state: any) => state.event)\n const userInfo = useSelector((state: any) => state.user)\n const [days, setDays] = useState(undefined)\n const [hours, setHours] = useState(undefined)\n const [mins, setMins] = useState(undefined)\n const [seconds, setSeconds] = useState(undefined)\n const [message, setMessage] = useState(undefined)\n const [displayCountdown, setDisplayCountdown] = useState(undefined)\n const [displayBiddingClosed, setDisplayBiddingClsoed] = useState(undefined)\n const [displayLogo, setdisplayLogo] = useState(undefined)\n const accountStatus = useSelector((state: any) => state.user.accountstatus)\n const authorizeBidder = useSelector((state: any) => state.user.authorizebidder)\n\n // const eventBiddingClosed = eventData.eventbiddingclosed\n\n var local = DateTime.local()\n const centralBiddingClosed = DateTime.fromISO(eventData.eventbiddingclosedcst, {zone: 'America/Chicago'});\n const localDateBiddingClosed = centralBiddingClosed.setZone(local.zoneName)\n const localDateBiddingClosedString = localDateBiddingClosed.toString()\n const [biddingStatus, setBiddingStatus] = useState('open')\n const [menuOpen, setMenuOpen] = useState(false);\n\n useEffect(() => {\n const checkThen: any = moment(localDateBiddingClosedString)\n const checkNow: any = moment()\n const checkCalcSeconds = checkThen.diff(checkNow, 'seconds')\n const checkDays = Math.floor(checkCalcSeconds/24/60/60);\n const checkHoursLeft = Math.floor((checkCalcSeconds) - (checkDays*86400));\n const checkHours = Math.floor(checkHoursLeft/3600);\n\n if (checkDays >= 0 && checkDays < 1 && checkHours < 1) {\n const interval = setInterval(() => {\n const then: any = moment(localDateBiddingClosedString)\n const now: any = moment()\n // tslint:disable-next-line\n\n const calcSeconds = then.diff(now, 'seconds')\n const days = Math.floor(calcSeconds / 24 / 60 / 60);\n const hoursLeft = Math.floor((calcSeconds) - (days * 86400));\n const hours = Math.floor(hoursLeft / 3600);\n const minutesLeft = Math.floor((hoursLeft) - (hours * 3600));\n const minutes = Math.floor(minutesLeft / 60);\n const remainingSeconds = calcSeconds % 60;\n\n function pad(n) {\n return (n < 10 ? \"0\" + n : n);\n }\n\n console.log(pad(days) + \":\" + pad(hours) + \":\" + pad(minutes) + \":\" + pad(remainingSeconds))\n\n setHours(pad(hours))\n setDays(pad(days))\n setMins(pad(minutes))\n setSeconds(pad(remainingSeconds))\n\n // Countdown\n if (days >= 0 && days < 1 && hours < 1) {\n setDisplayBiddingClsoed(false)\n setdisplayLogo(false)\n setDisplayCountdown(true)\n if (minutes > 0) {\n setMessage(\"Bidding Closes in \" + pad(minutes) + \":\" + pad(remainingSeconds))\n } else {\n setMessage(\"Bidding Closes in \" + pad(remainingSeconds))\n }\n } else if (days < 0) {\n setDisplayCountdown(false)\n setdisplayLogo(false)\n setDisplayCountdown(false)\n setDisplayBiddingClsoed(true)\n\n if (cartState.auctionswon?.length > 0) {\n setMessage(\"Bidding Closed; Go to Checkout\")\n } else {\n setMessage('')\n setdisplayLogo(true)\n }\n\n getEventUpdate()\n clearInterval(interval)\n } else {\n setMessage('')\n setdisplayLogo(true)\n }\n\n\n }, 1000)\n return () => clearInterval(interval)\n }\n else if (checkDays < 0) {\n setDisplayCountdown(false)\n setdisplayLogo(false)\n setDisplayCountdown(false)\n setDisplayBiddingClsoed(true)\n\n if (cartState.auctionswon?.length > 0) {\n setMessage(\"Bidding Closed. Go to Checkout\")\n } else {\n setMessage('')\n setdisplayLogo(true)\n }\n } else {\n setMessage('')\n setdisplayLogo(true)\n }\n }, [localDateBiddingClosedString, cartState, eventData.eventclosing])\n\n const getEventUpdate = () => {\n let token = localStorage.getItem(\"token\")\n if (token && token !== \"undefined\") {\n const decoded: any = jwt_decode(token)\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: decoded.eventcode,\n auctioncode: decoded.auctioncode\n }\n dispatch(fetchEventData(eventData))\n dispatch(setEventCode(decoded.eventcode))\n dispatch(setAuctionCode(decoded.auctioncode))\n dispatch(fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT)))\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n if (itemid) {\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: itemid,\n })\n )\n }\n }\n }\n\n return (\n <>\n \n\n \n \n {includeBack ?\n {goBack()}}>\n \n \n :\n { setMenuOpen(!menuOpen) }}>\n \n \n \n }\n \n\n \n {authorizeBidder && displayCountdown &&\n \n {message}\n \n }\n {(authorizeBidder && displayBiddingClosed && message?.length > 0) &&\n // \n \n \n {message}\n \n \n }\n\n {(!authorizeBidder && accountStatus !== 'guest') ?\n \n \n Not authorized to bid. Contact the event organizer.\n \n \n :\n \n\n {(cartState?.auctionswon?.length === 0 && displayBiddingClosed) &&\n \n \n BIDDING CLOSED\n \n \n }\n\n {((cartState?.auctionswon?.length > 0)) &&\n \n \n \n \n {cartState?.auctionswon?.length > 0 &&\n {cartState?.auctionswon?.length > 0 ? cartState?.auctionswon?.length : 0}\n }\n \n \n }\n {/*{accountStatus !== 'guest' &&*/}\n {/* <>*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/*}*/}\n {accountStatus === 'guest' &&\n <>\n \n \n \n \n \n \n \n }\n \n \n )\n}\n\nexport default AuctionItemsHeader\n\n\n\n","import styled from \"@emotion/styled\"\nimport React from \"react\"\nimport Img from \"./Img\"\nimport LogoContainer from \"./LogoContainer\"\nimport LogoWrapper from \"./LogoWrapper\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\"\nimport Text from \"../../pages/CommonStyles/Text\"\nimport Menu from \"../Menu/Index\"\nimport {IonBadge, IonButton, IonIcon} from \"@ionic/react\";\nimport {cartOutline} from \"ionicons/icons\";\nimport {useSelector} from \"react-redux\";\nimport {useHistory, useParams} from \"react-router\";\n\ntype Props = {\n eventResponse: any\n isEventLoading: boolean\n showWelcomeMsg: boolean\n hideHamburgerMenu: boolean\n userInfo?: any\n page?: string\n}\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 40px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst EventWelcome: React.FC = (props: Props) => {\n const { eventcode } = useParams()\n\n const {\n eventResponse,\n isEventLoading,\n showWelcomeMsg,\n hideHamburgerMenu,\n userInfo,\n page\n } = props\n\n const cartState = useSelector((state: any) => state.cart)\n const history = useHistory()\n\n const goToCart = () => {\n history.push(\"/\" + eventcode + \"/Cart\")\n }\n\n return (\n <>\n {!isEventLoading && (\n <>\n \n \n \n \n \n {cartState?.auctionswon?.length > 0 &&\n \n \n \n {cartState?.auctionswon?.length > 1 &&\n {cartState?.auctionswon?.length > 0 ? cartState?.auctionswon?.length : 0}\n }\n \n }\n {!page && (\n \n {eventResponse.eventname && (\n \n {eventResponse.eventname}\n \n )}\n {userInfo && (\n \n Welcome, {userInfo.firstname} {userInfo.lastname}\n \n )}\n {showWelcomeMsg && (\n \n \n \n )}\n \n )}\n \n \n )}\n \n )\n}\n\nexport default EventWelcome\n","import styled from \"@emotion/styled\"\nimport React from \"react\"\nimport Img from \"./Img\"\nimport LogoContainer from \"./LogoContainer\"\nimport LogoWrapper from \"./LogoWrapper\"\nimport Menu from \"../Menu/Index\"\n\ntype Props = {\n eventResponse: any\n isEventLoading: boolean\n}\n\nconst LoginWelcome: React.FC = (props: Props) => {\n const {\n eventResponse,\n isEventLoading\n } = props\n return (\n <>\n {!isEventLoading && (\n <>\n \n \n \n \n \n \n )}\n \n )\n}\n\nexport default LoginWelcome\n","import styled from \"@emotion/styled\"\n\ntype WrapperProps = {\n height?: number | string\n}\n\nconst Wrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n background-color: ${(props) => props.theme.colors.header.background};\n /* flex-direction: column; */\n`\n\nexport default Wrapper\n","import styled from \"@emotion/styled\";\ntype Props = {\n justifyContent?: string;\n marginTop?: string | number;\n alignItems?: string;\n height?: string;\n};\nconst PageBodyContainer = styled.div`\n width: 100%;\n height: ${(props) => props.height || \"unset\"};\n align-items: ${(props) => props.alignItems || \"center\"};\n display: flex;\n flex-direction: column;\n justify-content: ${(props) => props.justifyContent || \"\"};\n margin-top: ${(props) => props.marginTop || \"\"};\n`;\n\nexport default PageBodyContainer;\n","import React from \"react\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\n\nconst NotFound: React.FC = () => {\n return (\n \n Error: Event Not Found\n \n Please check the link provided to you by the Organization\n \n \n )\n}\n\nexport default NotFound\n","import React from \"react\"\nimport { useSelector } from \"react-redux\"\nimport {Route, Switch, useParams} from \"react-router\"\n\nimport Text from \"../../pages/CommonStyles/Text\"\nimport AccountDetailsHeader from \"./AccountDetailsHeader\"\nimport AccountProfileHeader from \"./AccountProfileHeader\"\nimport AuctionItemsHeader from \"./AuctionItemHeader\"\nimport EventWelcome from \"./EventWelcome\"\nimport Img from \"./Img\"\nimport ItemDetailsHeader from \"./ItemDetailsHeader\"\nimport LoginWelcome from \"./LoginWelcome\"\nimport LogoContainer from \"./LogoContainer\"\nimport LogoWrapper from \"./LogoWrapper\"\nimport PlaceBidHeader from \"./PlaceBidHeader\"\nimport SecondaryHeader from \"./SecondaryHeader\"\nimport Wrapper from \"./Wrapper\"\nimport logo from \"./AuctionSnap.png\"\nimport NotFound from \"../../pages/NotFound/NotFound\";\n\nconst Header: React.FC = (props) => {\n const eventResponse = useSelector((state: any) => state.event.eventData)\n const itemid = useSelector((state: any) => state.auctionItemDetails.itemid);\n const eventFetchState = useSelector(\n (state: any) => state.event.status === \"loading\"\n )\n\n const user = useSelector((state: any) => state.user)\n\n return (\n \n {/* */}\n \n\n {/**/}\n {/* */}\n {/**/}\n \n {/**/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n {/* */}\n \n \n \n \n {/* */}\n \n \n \n \n \n \n \n \n \n \n \n \n \"auction-snap\"\n \n \n \n \n \n \n \n \n \n \n {/* */}\n \n \n {/**/}\n {/* /!* *!/*/}\n {/* */}\n {/**/}\n \n \n \n \n \n \n \n \n \n \"auction-snap\"\n \n \n \n \n \n )\n}\n\nexport default Header\n","import styled from \"@emotion/styled\"\nimport { Console } from \"console\"\nimport React from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport { useHistory } from \"react-router\"\nimport { isConstructorDeclaration } from \"typescript\"\nimport { resetPassword } from \"../../redux/slices/userSlice\"\nimport { getEndPoint, FORGOT_PASSWORD } from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport { Link } from \"react-router-dom\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst AccountContact: React.FC = () => {\n const eventData = useSelector((state: any) => state.event)\n\n return (\n \n \n \n Contact Us\n \n \n \n \n \n
\n \n \n )\n}\n\nexport default AccountContact\n","import styled from \"@emotion/styled\"\n\ntype Props = {\n height?: number | string\n width?: number | string\n backgroundColor?: string\n color?: string\n opacity?: number | string\n}\n\nconst Button = styled.button`\n align-self: center;\n opacity: ${(props) => props.opacity || 100.0};\n height: ${(props) => props.height || \"60px\"};\n border-radius: 24px;\n background-color: ${(props) =>\n props.backgroundColor || props.theme.colors.important};\n color: ${(props) => props.color || \"white\"};\n font-size: 20px;\n margin-top: 20px;\n margin-bottom: 40px;\n padding: 10px 60px;\n width: ${(props) => props.width};\n`\n\nexport default Button\n","import styled from \"@emotion/styled\"\nimport Button from \"./Button\"\nimport { mq } from \"../../constants\";\n\ntype ButtonItem = {\n width?: number | string\n}\n\nconst ButtonItem = styled(Button)`\n margin: 0;\n padding: 0;\n ${mq[0]} {\n width: ${(props) => props.width || \"100%\"};\n }\n ${mq[1]} {\n width: ${(props) => props.width || \"100%\"};\n }\n ${mq[2]} {\n width: ${(props) => props.width || \"80%\"};\n margin-left: 10%;\n }\n ${mq[3]} {\n width: ${(props) => props.width || \"30%\"};\n margin-left: ${(props) => props.width ? \"0%\" : \"35%\"};\n }\n`\nexport default ButtonItem\n","import styled from \"@emotion/styled\"\n\ntype ContainerProps = {\n borderBottom?: string\n}\n\ntype RightContainerProps = {\n justifyContent?: string\n}\n\nexport const PageWrapper = styled.div`\n padding: 0 16px;\n //max-width: 700px;\n margin: 0 auto;\n`\nexport const NotificationContainer = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n border-bottom: ${(props: ContainerProps) =>\n props.borderBottom || \"2px solid #dcdcdc\"};\n height: 64px;\n`\nexport const RightContainer = styled.div`\n display: flex;\n margin-left: auto;\n width: 136px;\n justify-content: ${(props: RightContainerProps) =>\n props.justifyContent || \"space-between\"};\n`\n\nexport const RightItemContainer = styled.div`\n width: 50px;\n height: 30px;\n display: flex;\n align-items: center;\n`\n","import React from \"react\";\n\nimport styled from \"@emotion/styled\";\n\ntype CheckboxProps = {\n checked: boolean;\n height?: string;\n width?: string;\n borderRadius?: string;\n checkedBackgroundColor: string;\n uncheckedBackgroundColor: string;\n};\n\nconst HiddenCheckbox = styled.input`\n border: 0;\n clip: rect(0 0 0 0);\n clippath: inset(50%);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n`;\nconst StyledCheckbox = styled.div`\n display: inline-block;\n width: ${(props) => props.width || \"16px\"};\n height: ${(props) => props.height || \"16px\"};\n background: ${(props) =>\n props.checked\n ? props.checkedBackgroundColor\n : props.uncheckedBackgroundColor};\n border-radius: ${(props) => props.borderRadius || \"3px\"};\n transition: all 150ms;\n border: ${(props) =>\n props.borderRadius && !props.checked\n ? `2px solid ${props.checkedBackgroundColor}`\n : \"none\"};\n`;\n\nconst CheckboxContainer = styled.div`\n display: flex;\n vertical-align: middle;\n`;\nconst Icon = styled.svg`\n fill: none;\n stroke: white;\n stroke-width: 2px;\n`;\n\nconst Checkbox = ({ className, checked, ...props }: any) => (\n \n \n \n \n \n \n \n \n);\n\nconst CheckBox: React.FC<{\n name: string;\n handleCheckboxChange: any;\n checked: boolean;\n filterType?: string;\n param: string;\n height?: string;\n width?: string;\n checkedBackgroundColor: string;\n uncheckedBackgroundColor: string;\n borderRadius?: string;\n id?: string | number;\n}> = ({ name, handleCheckboxChange, checked, param, ...props }) => {\n return (\n \n );\n};\n\nexport default CheckBox;\n","import styled from \"@emotion/styled\"\nimport { mq } from \"../../constants\"\n\ntype Props = {\n height?: string\n justifyContent?: string\n flexWrap?: string\n alignItems?: string\n padding?: string\n margin?: string\n border?: string\n borderRadius?: string\n backgroundColor?: string\n filter?: string\n width?: string\n flex?: string\n}\n/* move commented media queries to component */\n\nconst FlexCol = styled.div`\n display: flex;\n flex-direction: column;\n height: ${(props) => props.height || \"100px\"};\n justify-content: ${(props) => props.justifyContent || \"center\"};\n flex-wrap: ${(props) => props.flexWrap || \"wrap\"};\n align-items: ${(props) => props.alignItems || \"unset\"};\n padding: ${(props) => props.padding || \"unset\"};\n background-color: ${(props) => props.backgroundColor || \"unset\"};\n border-radius: ${(props) => props.borderRadius || \"unset\"};\n filter: ${(props) => props.filter || \"none\"};\n margin: ${(props) => props.margin || \"unset\"};\n width: ${(props) => props.width || \"unset\"};\n flex: ${(props) => props.flex || \"unset\"};\n`\nexport default FlexCol\n","import styled from \"@emotion/styled\";\n\nimport Img from \"../../components/Header/Img\";\nimport { mq } from \"../../constants\";\nimport FlexCol from \"../CommonStyles/FlexCol\";\nimport { UserBidStatus } from \"./Index\";\n\nexport const FlexColAuction = styled(FlexCol)`\n ${mq[0]} {\n margin: 10px;\n }\n ${mq[1]} {\n margin: 10px;\n }\n`;\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nexport const ImgWelcome = styled(Img)`\n max-width: unset;\n max-height: unset;\n object-fit: cover;\n object-position: center;\n`;\n\nexport const FilterBox = styled.div`\n position: absolute;\n padding: 0.5rem;\n background-color: white;\n right: 0;\n top: 0;\n bottom: 0;\n width: 280px;\n z-index: 100;\n overflow-y: auto;\n transform: translateX(\n ${(props: { isOpen: boolean }) => (props.isOpen ? 0 : \"100%\")}\n );\n transition: transform 250ms ease-in-out;\n overflow: auto;\n`;\n\nexport const UL = styled.ul`\n list-style-type: none;\n margin: 0;\n padding: 5px;\n`;\n\nexport const Span = styled.span`\n font-size: 14px;\n font-weight: 400;\n padding-left: 5px;\n`;\n\nexport const AttributeLI = styled.li`\n display: flex;\n height: 2.5rem;\n border-bottom: 1px solid #00000040;\n align-items: center;\n`;\n\nexport const AttributeLabel = styled.label`\n display: grid;\n grid-template-columns: auto 1fr;\n grid-gap: 5px;\n align-items: center;\n`;\n\nexport const BackButton = styled.button`\n position: absolute;\n top: 7px;\n left: 5px;\n background: none;\n outline: none;\n font-size: 14px;\n color: ${(props) => props.theme.colors.important};\n text-decoration: underline;\n padding: 3px;\n display: flex;\n align-items: center;\n`;\n\nexport const SlideOutTitle = styled.div`\n display: flex;\n justify-content: center;\n padding: 0.5rem;\n position: relative;\n`;\n\nexport const SortButton = styled.button`\n width: 100%;\n background: #e1e1e1;\n height: 2.5rem;\n margin: 0.5rem 0;\n padding: 0 1rem;\n border-radius: 3px;\n color: black;\n font-size: 14px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-radius: 5px;\n`;\n\nexport const HeaderButton = styled.button`\n width: 44px;\n height: 44px;\n padding: 0;\n background-color: ${(props: any) => props.color};\n border-radius: 10px;\n box-shadow: 0px 2px 5px #00000080;\n`;\n\nexport const SearchBarContainer = styled.div`\n display: grid;\n grid-template-columns: auto 1fr auto auto;\n background-color: #b6d9ee;\n height: 66px;\n width: 100%;\n align-items: center;\n padding: 0 12px;\n z-index: 99;\n top: 0px;\n`;\n\ntype HeartIconProp = {\n active: boolean;\n inset?: string;\n right?: string;\n top?: string;\n position?: string;\n width?: string;\n height?: string;\n buyitnow?: boolean;\n};\nexport const HeartIconButton = styled.button`\n position: ${(props: HeartIconProp) => props.position || \"absolute\"};\n top: ${(props: HeartIconProp) => props.top || props.inset || \"0\"};\n right: ${(props: HeartIconProp) => props.right || props.inset || \"0\"};\n width: ${(props: HeartIconProp) => props.width || \"36px\"};\n height: ${(props: HeartIconProp) => props.height || \"36px\"};\n opacity: ${(props: HeartIconProp) => props.buyitnow ? 0.10 : null};\n border-radius: 50%;\n background: ${(props: HeartIconProp) =>\n props.active ? \"transparent\" : \"white\"};\n box-shadow: ${(props: HeartIconProp) =>\n props.active ? \"none\" : \"0px 2px 5px #00000026\"};\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n`;\nexport const IconBackground = styled.div`\n position: ${(props: any) => props.position || \"absolute\"};\n top: ${(props: any) => props.inset || \"0\"};\n right: ${(props: any) => props.inset || \"0\"};\n width: ${(props: any) => props.width || \"28px\"};\n height: ${(props: any) => props.height || \"28px\"};\n border-radius: 50%;\n background: white;\n box-shadow: 0px 2px 5px #00000026;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 0;\n`;\n\nexport const ErrorMessage = styled.p`\n color: ${(props) => props.theme.colors.important};\n padding: 1rem;\n`;\n\ntype ListItemRowProps = {\n status: UserBidStatus;\n guest: boolean\n};\ntype ListItemHeaderRowProps = {\n guest: boolean\n};\nexport const ListItemRow = styled.div`\n display: grid;\n /* place-content: center; */\n align-items: center;\n grid-template-columns: ${(props: ListItemRowProps) => props.guest ? '1fr 6rem 4.5rem 3.5rem' : '2rem 1fr 6rem 4.5rem 3.5rem'};\n /* padding: 0.75rem 0.5rem; */\n grid-column-gap: 0.4rem;\n border-bottom: 1px solid #00000020;\n border: ${(props: ListItemRowProps) =>\n props.status === \"winner\" ? \"2px solid #1CD182\" : \"\"};\n background-color: ${(props: ListItemRowProps) =>\n props.status === \"winner\" ? \"#D1F9D9\" : \"transparent\"};\n border-radius: ${(props: ListItemRowProps) =>\n props.status === \"winner\" ? \"6px\" : \"0px\"};\n & > div {\n width: 100%;\n height: 100%;\n padding: 0.75rem 0rem;\n display: grid;\n align-items: center;\n }\n`;\n\nexport const ListItemHeader = styled.div`\n display: grid;\n place-content: center;\n align-items: center;\n grid-template-columns: ${(props: ListItemHeaderRowProps) => props.guest ? '1fr 6rem 4.5rem 3.5rem' : '2rem 1fr 6rem 4.5rem 3.5rem'};\n grid-column-gap: 0.4rem;\n border-bottom: 1px solid #00000020;\n padding: 0 0.25rem;\n\n & > div {\n width: 100%;\n height: 100%;\n padding: 0.75rem 0rem;\n display: grid;\n align-items: center;\n }\n`;\n\ntype LastBidContainerProps = {\n status: UserBidStatus;\n};\n\nexport const LastBidContainer = styled.div`\n border-radius: 16px;\n\n justify-self: start;\n position: relative;\n z-index: 1;\n /* padding: 3px; */\n ::before {\n content: \"\";\n border: ${(props: LastBidContainerProps) =>\n props.status === \"losingBidder\" ? \"1px solid #ff6f00\" : \"\"};\n background: ${(props: LastBidContainerProps) =>\n props.status === \"highBidder\" ? \"#1CD182\" : \"\"};\n border-radius: 16px;\n z-index: -1;\n position: absolute;\n top: -5px;\n bottom: -5px;\n left: -8px;\n right: -8px;\n }\n`;\n\nexport const ListIconContainer = styled.div`\n background-color: ${(props: ListItemRowProps) =>\n props.status === \"winner\" ? \"#1CD182\" : \"transparent\"};\n width: 100%;\n height: 100%;\n display: grid;\n place-items: center;\n`;\n\nexport const ListViewGrid = styled.div`\n display: grid;\n`;\n","import React, {useEffect, useRef, useState} from \"react\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {useHistory, useParams} from \"react-router\";\nimport {\n IonBackdrop,\n IonButton,\n IonCardTitle,\n IonCol, IonContent, IonFooter,\n IonGrid, IonHeader, IonItem, IonLabel,\n IonModal, IonPage,\n IonRow,\n IonText, IonTitle,\n IonToast,\n IonToggle, IonToolbar, useIonModal\n} from \"@ionic/react\";\n\nimport {\n checkTokenOnRefresh,\n updateUserInfo,\n updateUserProfile,\n useUserInfo,\n} from \"../../redux/slices/userSlice\";\nimport { USER_PROFILE, getEndPoint } from \"../../util/api/enpoints\";\nimport ButtonItem from \"../CommonStyles/ButtonItem\";\nimport Text from \"../CommonStyles/Text\";\nimport {\n NotificationContainer,\n PageWrapper,\n RightContainer,\n RightItemContainer,\n} from \"./StyledComponents\";\nimport styled from \"@emotion/styled\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport NumberFormat from \"react-number-format\";\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport {Span} from \"../AuctionItems/styledComponents\";\nimport {OverlayEventDetail} from \"@ionic/react/dist/types/components/react-component-lib/interfaces\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\n\nconst MessageModal = ({\n onDismiss,\n message,\n }: {\n onDismiss: (data?: string | null | undefined | number, role?: string) => void;\n message: string;\n}) => {\n const inputRef = useRef(null);\n return (\n \n \n \n Text Messaging Opt-In\n \n \n \n \n You have provided your phone number but have not checked the box to opt-in to event related text messages.\n \n \n Are you sure you sure you want to proceed?\n \n \n \n \n \n onDismiss(inputRef.current?.value, 'cancel')} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Go Back\n \n \n \n onDismiss(inputRef.current?.value, 'ok')} size=\"large\" style={{ width: '90%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Proceed without Text Messages\n \n \n \n \n \n );\n};\n\nconst AccountNotifications: React.FC = () => {\n const [present, dismiss] = useIonModal(MessageModal, {\n onDismiss: (data: string, role: string) => dismiss(data, role),\n message: '',\n });\n\n function openTextModal() {\n present({\n onWillDismiss: (ev: CustomEvent) => {\n if (ev.detail.role === 'ok') {\n onSave(true)\n }\n },\n });\n }\n\n const { eventcode } = useParams()\n const dispatch = useDispatch();\n const history = useHistory()\n const user = useUserInfo()\n const eventState = useSelector((state: any) => state.event)\n const [agreeToMessages, setagreeToMessages] = useState(false)\n const [cellPhone, setCellPhone] = useState('')\n const userStateNotifications = useSelector((state: any) => state.user.notifications)\n const [toastObj, setToast] = useState({ display: false, message: '', goBack: false });\n const [formState, setFormState] = useState();\n\n useEffect(() => {\n const getUserData = async () => {\n await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n }\n getUserData()\n }, [dispatch])\n\n useEffect(() => {\n\n if (user && user.phoneNumber) {\n setCellPhone(user.phoneNumber.toString())\n setagreeToMessages(user.allowtexting)\n }\n if (eventState && eventState?.notificationcolumns && userStateNotifications && userStateNotifications.length > 0) {\n let notificationState = {}\n eventState?.notificationcolumns.forEach((itemColumn) => {\n userStateNotifications?.forEach((item: any) => {\n const keyValue = `toggle${itemColumn.value}${item.notificationrowid}`\n notificationState = {\n ...notificationState,\n [keyValue]: item[itemColumn.value]\n }\n })\n })\n\n setFormState(notificationState);\n }\n\n }, [userStateNotifications, eventState]);\n\n const onToggleChange = (type) => (e) => {\n e.preventDefault()\n if (e?.target?.checked === undefined) {\n console.log('skip')\n }\n else {\n const keys = formState ? Object.keys(formState) : []\n if (keys && keys.length > 0) {\n let copyState = {...formState}\n copyState[type] = e?.target?.checked\n // console.log(Object.keys(copyState))\n setFormState(copyState)\n }\n }\n }\n\n const goBack = () => {\n console.log('goBack')\n if (toastObj.goBack) {\n const mypath = '/' + eventcode + '/my-account'\n history.push(mypath)\n }\n }\n\n const handleCheckboxChange = (e: any) => {\n setagreeToMessages(e.target.checked)\n }\n\n const onSave = async (skipCheck) => {\n if (!skipCheck && cellPhone && cellPhone.length > 0 && !agreeToMessages) {\n openTextModal()\n return\n }\n const url = getEndPoint(USER_PROFILE);\n\n const notificationsData = userStateNotifications.map((item: any) => {\n let rowObject = { \"notificationrowid\": item.notificationrowid, \"rownumber\": item.notificationrowid }\n eventState?.notificationcolumns.forEach((itemColumn) => {\n const keyValue = `toggle${itemColumn.value}${item.notificationrowid}`\n // console.log(keyValue)\n // console.log(formState[keyValue])\n rowObject[itemColumn.value] = formState[keyValue]\n })\n return rowObject\n })\n\n\n // console.log({ ...user, notifications: notificationsData, url })\n const newCell = cellPhone.replace(/\\D/g,'')\n const response: any = await dispatch(updateUserProfile({ ...user, cellphone: newCell, phoneNumber: newCell, allowtexting: agreeToMessages, notifications: notificationsData, url }));\n if (response.error) {\n setToast({ display: true, message: 'There is an error saving your notifications.', goBack: false })\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n console.log(responseJSON)\n\n dispatch(\n updateUserInfo({\n notifications: notificationsData\n })\n )\n\n if (responseJSON.status === \"success\") {\n setToast({ display: true, message: 'Successfully saved your notfications.', goBack: true })\n }\n else {\n setToast({ display: true, message: 'There is an error saving your notfications.', goBack: false })\n }\n }\n };\n\n return (\n \n \n \n Notifications\n \n \n \n goBack()}\n message={toastObj.message}\n cssClass={'custom-toast'}\n duration={3000}\n />\n \n \n \n {eventState?.notificationcolumns.map((itemColumn) => {\n return (\n \n {itemColumn.title}\n \n )})\n }\n \n \n {eventState?.notificationrows.map((itemRow) => {\n let rowItems = null\n\n rowItems = eventState?.notificationcolumns.map((itemColumn) => {\n if(itemRow[itemColumn.value]) {\n const checked = formState && formState[`toggle${itemColumn.value}${itemRow.notificationrowid}`]\n return (\n \n \n \n )\n }\n else {\n return (\n \n \n )\n }\n })\n\n\n const headerRow = (\n <>\n {itemRow.title}\n {rowItems}\n \n )\n return headerRow\n })}\n \n \n \n \n { setCellPhone(e.target.value) }}\n format=\"(###) ###-####\" mask=\"_\"\n customInput={Input}/>\n \n \n \n \n Text Messaging Opt-In\n \n \n \n \n {/**/}\n
\n \n I agree to receive text messages through the AuctionSnap platform for notifications and event messages\n
\n {/*
*/}\n
\n
\n \n \n At any time, text STOP to unsubscribe from all text messages through AuctionSnap. Standard messaging rates may apply. You can adjust your notification preferences above and within AuctionSnap under your account profile. \n \n \n
\n \n \n { onSave(false) }}>\n Save\n \n \n \n
\n );\n};\n\nexport default AccountNotifications;\n","import styled from \"@emotion/styled\"\nimport { mq } from \"../../constants\"\n\nconst Form = styled.form`\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n ${mq[0]} {\n justify-content: unset;\n overflow-y: auto;\n }\n ${mq[2]} {\n //justify-content: space-evenly;\n justify-content: unset;\n overflow-y: auto;\n }\n`\n\nexport default Form\n","import styled from \"@emotion/styled\"\n\nconst InputsContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 90%;\n margin-left: 12px;\n margin-right: 12px;\n margin-top: 10px;\n padding: 10px;\n`\n\nexport default InputsContainer\n","import React, { useEffect } from \"react\";\nimport {useHistory, useParams} from \"react-router\";\nimport {useDispatch} from \"react-redux\";\nimport jwt_decode from \"jwt-decode\";\nimport { updateStateOnLogout } from \"../redux/slices/userSlice\";\n\n\ninterface Params {\n eventcode: string\n}\n\nexport const useAuthRefresh = () => {\n const history = useHistory()\n const dispatch = useDispatch()\n const { eventcode } = useParams()\n\n const logout = () => {\n dispatch(updateStateOnLogout())\n const token = localStorage.getItem(\"token\")\n localStorage.removeItem(\"token\")\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n\n const decoded: any = jwt_decode(token)\n if (decoded.eventcode) {\n history.push('/' + decoded.eventcode)\n }\n else {\n console.log('push login AUTH')\n history.push('/' + eventcode + '/login/')\n }\n }\n\n useEffect(() => {\n const token = localStorage.getItem(\"token\")\n\n if (token) {\n var decoded: any = jwt_decode(token)\n var current_time = Date.now() / 1000;\n if (decoded.exp < current_time) {\n console.log('Token has expired!!!')\n logout()\n }\n else {\n console.log('not expired')\n }\n }\n else\n {\n console.log('no token - not-found (authenicationHook)')\n console.log('redirect - /' + eventcode)\n history.push('/' + eventcode)\n }\n })\n return;\n}\n\n\n","import React, {useEffect, useState} from \"react\"\nimport NumberFormat from \"react-number-format\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\n\nimport styled from \"@emotion/styled\"\nimport {IonToast} from \"@ionic/react\";\n\nimport { usStates } from \"../../constants\"\nimport {checkTokenOnRefresh, updateUserProfile} from \"../../redux/slices/userSlice\"\nimport {USER_PROFILE, getEndPoint} from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst Select = styled(\"select\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst Option = styled(\"option\")`\n box-sizing: border-box;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`\n\nconst PostalCodeContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 55%;\n margin-top: 10px;\n`\n\nconst StateContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 25%;\n margin-top: 10px;\n`\n\nconst FlexRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-around;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst AccountProfile: React.FC = () => {\n const { eventcode } = useParams()\n useAuthRefresh();\n\n const dispatch = useDispatch()\n const history = useHistory()\n const userData = useSelector((state: any) => state.user)\n const [toastObj, setToast] = useState({ display: false, message: '', goBack: false });\n\n useEffect(() => {\n const getUserData = async () => {\n await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n }\n getUserData()\n }, [dispatch])\n\n const goBack = () => {\n if (toastObj.goBack) {\n const mypath = '/' + eventcode + '/my-account'\n history.push(mypath)\n }\n }\n\n const onSubmit = async (e: any) => {\n e.preventDefault() \n if (e.target.firstname.value.length === 0) {\n return setToast({ display: true, message: 'Firstname is invalid.', goBack: false })\n }\n else if (e.target.lastname.value.length === 0) {\n return setToast({ display: true, message: 'Lastname is invalid.', goBack: false })\n }\n else if (e.target.cellphone.value) {\n e.target.cellphone.value = e.target.cellphone.value?.replace(/\\D/g,'')\n if (e.target.cellphone.value.length !== 10) {\n return setToast({ display: true, message: 'Phone number is invalid.', goBack: false })\n }\n }\n // else if (e.target.address1.value.length === 0) {\n // setToast({ display: true, message: 'Address 1 is invalid.', goBack: false })\n // }\n // else if (e.target.city.value.length === 0) {\n // setToast({ display: true, message: 'City is invalid.', goBack: false })\n // }\n // else if (e.target.state.value.length === 0) {\n // setToast({ display: true, message: 'State is invalid.', goBack: false })\n // }\n else if (e.target.zip.value.length === 0) {\n return setToast({ display: true, message: 'zip is invalid.', goBack: false })\n }\n\n const profileInfo = {\n firstname: e.target.firstname.value,\n lastname: e.target.lastname.value,\n address: e.target.address1.value,\n address2: e.target.address2.value, \n city: e.target.city.value,\n state: e.target.state.value,\n zip: e.target.zip.value,\n cellphone: e.target.cellphone.value\n }\n const url = getEndPoint(USER_PROFILE)\n const userProfileInfo = {\n url,\n ...profileInfo\n }\n try {\n const response: any = await dispatch(updateUserProfile(userProfileInfo))\n if (response.error) {\n setToast({ display: true, message: 'There is an error saving your profile.', goBack: false })\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n if (responseJSON.status === \"success\") {\n setToast({ display: true, message: 'Successfully saved your profile.', goBack: true })\n }\n else {\n setToast({ display: true, message: 'There is an error saving your profile.', goBack: false })\n }\n }\n } catch (err) {\n console.log(err)\n }\n }\n return (\n \n \n \n My Profile\n \n \n \n goBack()}\n message={toastObj.message}\n duration={3000}\n cssClass={'custom-toast'}\n />\n
\n\n \n Profile Email\n {userData.email}\n *First Name\n \n *Last Name\n \n Cell Phone\n \n \n Address Line 1\n \n Address Line 2\n \n City\n \n\n\n \n \n State\n \n {usStates.map((state, index) => {\n return (\n \n )\n })}\n \n \n \n *Postal Code\n \n \n \n\n \n *Required Fields\n \n
\n
\n )\n}\n\nexport default AccountProfile\n","import React from \"react\";\n\nexport const IconCard = ({ ...props }) => {\n return (\n \n \n \n \n \n );\n};\n","import styled from \"@emotion/styled\"\nimport { mq } from \"../../constants\"\n\ntype Props = {\n width?: string\n justifyContent?: string\n flexWrap?: string\n alignItems?: string\n padding?: string\n margin?: string\n border?: string\n borderRadius?: string\n height?: string\n backgroundColor?: string\n}\n/** Move media queries may be to components ? */\n\nconst FlexRow = styled.div`\n display: flex;\n width: ${(props) => props.width || \"100%\"};\n justify-content: ${(props) => props.justifyContent || \"center\"};\n flex-wrap: ${(props) => props.flexWrap || \"wrap\"};\n align-items: ${(props) => props.alignItems || \"unset\"};\n height: ${(props) => props.height || \"unset\"};\n padding: ${(props) => props.padding || \"unset\"};\n background-color: ${(props) => props.backgroundColor || \"unset\"};\n`\nexport default FlexRow\n","import React from \"react\";\n\nexport const IconLosingBid = ({ ...props }) => {\n return (\n \n \n \n );\n};\n","import { logoUsd } from \"ionicons/icons\";\nimport React from \"react\";\n\nimport styled from \"@emotion/styled\";\nimport { IonIcon } from \"@ionic/react\";\n\ntype Container = {\n scale: number;\n};\nconst Container = styled.div`\n background: #1cd182;\n border-radius: 50%;\n width: ${(props: Container) => props.scale * 17.6}px;\n height: ${(props: Container) => props.scale * 17.6}px;\n display: flex;\n place-content: center;\n place-items: center;\n position: relative;\n\n ::before {\n position: absolute;\n content: \"\";\n width: ${(props: Container) => props.scale * 9}px;\n height: ${(props: Container) => props.scale * 9}px;\n border-top: 2px solid #1cd182;\n border-left: 2px solid #1cd182;\n top: ${(props: Container) => props.scale * -6}px;\n /* right: 3.35px; */\n right: 22%;\n\n transform: rotate(45deg);\n }\n`;\n\ntype Props = {\n scale?: number;\n};\n\nexport const IconWinningBidder = ({ scale = 1 }: Props) => {\n return (\n \n \n \n );\n};\n","import { funnel, heart, list, refreshOutline } from \"ionicons/icons\";\nimport React, {useEffect, useState} from \"react\";\n\nimport {\n IonCol,\n IonIcon,\n IonRefresher,\n IonRefresherContent,\n IonRow,\n IonSearchbar,\n useIonViewDidEnter\n} from \"@ionic/react\";\n\nimport { IconCard } from \"../../components/Icons/IconCard\";\nimport {\n fetchAuctionItemsData,\n sortOptions,\n useAuctionItemsState,\n useSortValue\n} from \"../../redux/slices/auctionItemsSlice\";\nimport FlexRow from \"../CommonStyles/FlexRow\";\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\";\nimport Text from \"../CommonStyles/Text\";\nimport { CardViewItems } from \"./CardViewItems\";\nimport { ListViewItems } from \"./ListItems\";\nimport { SlideOutMenu } from \"./SlideOutMenu\";\nimport {\n useFetchAuctionItems,\n useFilterBySearchTerm,\n useFilterByTagsAndFilters,\n useFiltersReducer,\n useSavedListView,\n useSortItems,\n} from \"./helpers\";\nimport {\n HeaderButton, HeartIconButton,\n ListItemHeader,\n ListViewGrid,\n SearchBarContainer,\n} from \"./styledComponents\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {HubConnectionBuilder, JsonHubProtocol, HubConnection} from \"@microsoft/signalr\";\nimport {getURL} from \"../../constants\";\nimport {AUCTION_ITEMS_ENDPOINT, CART_ENDPOINT, getEndPoint} from \"../../util/api/enpoints\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {updateSignalRItems} from \"../../redux/slices/SignalRItemsSlice\";\nimport { withIonLifeCycle } from '@ionic/react';\nimport {fetchCartData} from \"../../redux/slices/cartSlice\";\nimport {Link} from \"react-router-dom\";\n\n\nexport interface AuctionItem {\n rownumber: number;\n itemid: number;\n name: string;\n description: string;\n tags: string;\n lastbid: number;\n open: string;\n closing: string;\n opencd: string;\n opencst: string\n closingcd: string;\n closingcst: string;\n watchlist: boolean;\n openforbid: boolean;\n buyitnowavailable: boolean;\n buyitnowonly: boolean;\n allowautobid: boolean;\n buyitnowprice: number;\n bidstatus: string;\n currentlywinningbid: boolean;\n accountbiddingon: boolean;\n quantityunlimited: boolean;\n imageurl: string;\n}\n\nexport enum SlideOutState {\n closed,\n filters,\n sort,\n}\n\nexport type UserBidStatus =\n | \"highBidder\"\n | \"losingBidder\"\n | \"winner\"\n | \"default\";\n\nconst AuctionItemsPage: React.FC = () => {\n const eventState = useSelector((state: any) => state.event)\n useAuthRefresh();\n const dispatch = useDispatch()\n\n useEffect(() => {\n dispatch(fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT)))\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }, [])\n\n const [listView, setListView] = useState(false);\n const [slideoutState, setSlideoutState] = useState(\n SlideOutState.closed\n );\n const [filteredItems, setFilteredItems] = useState([]);\n const [searchedItems, setSearchedItems] = useState([]);\n const [sortedItems, setSortedItems] = useState([]);\n const accountStatus = useSelector((state: any) => state.user.accountstatus);\n const [searchString, setSearchString] = useState(\"\");\n \n const [filtersState, dispatchComponent] = useFiltersReducer();\n const { status: auctionItemsFetchState, auctionitems: auctionItems } = useAuctionItemsState();\n\n\n useFetchAuctionItems();\n useSavedListView(setListView);\n useFilterBySearchTerm({ searchString, auctionItems, setSearchedItems });\n useFilterByTagsAndFilters({ filtersState, setFilteredItems, searchedItems });\n useSortItems({ filteredItems, setSortedItems });\n\n const toggleView = () => {\n localStorage.setItem(\"cardView\", listView ? \"card\" : \"list\");\n setListView(!listView);\n };\n\n const isAnyItemIsLiveOnly = () : boolean => {\n return auctionItems.some(item =>\n item.itemisliveonly === true\n )\n }\n\n const showHideFilters = () => {\n setSlideoutState(\n slideoutState === SlideOutState.closed\n ? SlideOutState.filters\n : SlideOutState.closed\n );\n };\n\n const renderCardItems = () => {\n const showSearchItems = searchString.length > 0;\n\n if (\n (showSearchItems && searchedItems.length === 0) ||\n (filtersState.tags.length > 0 && filteredItems.length === 0) ||\n (filtersState.filters.length > 0 && filteredItems.length === 0)\n )\n return handleNoResults(false);\n else {\n return (\n \n );\n }\n };\n\n const renderListItems = () => {\n const showSearchItems = searchString.length > 0;\n\n if (\n (showSearchItems && searchedItems.length === 0) ||\n (filtersState.tags.length > 0 && filteredItems.length === 0) ||\n (filtersState.filters.length > 0 && filteredItems.length === 0)\n )\n return handleNoResults(true);\n else {\n return (\n \n );\n }\n };\n\n const handleNoResults = (listView: boolean) => {\n if (listView) {\n return (\n \n \n No Results Found\n \n \n );\n } else {\n return (\n \n No Results Found\n \n );\n }\n };\n\n const onRefreshListClick = () => {\n window.location.reload();\n };\n\n const handleCheckboxChange = (event: any) => {\n const type = event.target.dataset.filterType;\n dispatchComponent({\n type: type,\n payload: {\n name: event.target.name,\n value: event.target.checked,\n },\n });\n };\n\n interface RefresherEventDetail {\n complete(): void;\n }\n\n const handleRefresh = (event: CustomEvent) => {\n setTimeout(() => {\n // Any calls to load data go here\n dispatch(\n fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT))\n )\n event.detail.complete();\n }, 1000);\n }\n\n\n\n return (\n <>\n \n \n \n\n \n \n {listView ? (\n \n ) : (\n \n )}\n \n setSearchString(e.detail.value)}\n showCancelButton=\"never\"\n >\n\n \n \n \n\n \n \n \n\n \n \n\n {/** Card View */}\n\n {!listView && (\n \n {renderCardItems()}\n \n )}\n\n {/** List View */}\n {listView && (\n <>\n \n \n {accountStatus !== 'guest' &&\n \n }\n {[\"Item\", \"Tags\", \"Bid\", \"Closing\"].map((header) => {\n return (\n \n {header}\n \n );\n })}\n \n {renderListItems()}\n \n \n )}\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n \n );\n};\n\nexport default AuctionItemsPage;\n","import { heart, heartOutline, ribbon } from \"ionicons/icons\"\nimport moment from \"moment\"\nimport React, {useEffect, useState} from \"react\"\nimport {useDispatch, useSelector} from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\nimport { LazyLoadImage } from 'react-lazy-load-image-component'\nimport 'react-lazy-load-image-component/src/effects/blur.css'\n\nimport { IonIcon, IonLoading, IonRow } from \"@ionic/react\"\n\nimport { IconLosingBid } from \"../../components/Icons/IconLosingBid\"\nimport { IconWinningBidder } from \"../../components/Icons/IconWinningBidder\"\nimport { toggleWatchlistItem } from \"../../redux/slices/auctionItemsSlice\"\nimport { WATCH_LIST, getEndPoint } from \"../../util/api/enpoints\"\nimport FlexRow from \"../CommonStyles/FlexRow\"\nimport Text from \"../CommonStyles/Text\"\nimport { theme } from \"../CommonStyles/Theme\"\nimport { AuctionItem, UserBidStatus } from \"./Index\"\nimport { ErrorMessage, FlexColAuction, HeartIconButton, IconBackground, ImgWelcome, LastBidContainer } from \"./styledComponents\"\nimport {DateTime} from \"luxon\";\n\ninterface Params {\n eventcode: string\n}\n\nexport const CardViewItems = ({ state, items }) => {\n const local = DateTime.local()\n const history = useHistory()\n const dispatch = useDispatch()\n const { eventcode } = useParams()\n const accountStatus = useSelector((state: any) => state.user.accountstatus);\n const onItemClick = (itemId: number) => {\n history.push(`/${eventcode}/auction-items/${itemId}`)\n }\n\n const getLocalDateString = (dateString) => {\n const centralDate = DateTime.fromISO(dateString,{zone: 'America/Chicago'})\n const localDate = centralDate.setZone(local.zoneName)\n const localDateString = localDate.toString()\n return localDateString\n }\n\n const itemStatus = (item: any) => {\n\n return (item.bidstatus === \"biddingclosed\" || (item.quantityavailable === 0 && item.unlimitedquantity === false))\n ? \"Closed\"\n : closingTime(getLocalDateString(item.closingcst))\n }\n\n const closingTime = (closing: string) => {\n const then: any = moment(closing)\n const now: any = moment()\n const diff = moment.duration(then.diff(now))\n var days = Math.floor(diff.asDays())\n var hours = diff.hours()\n var min = diff.minutes()\n if (days < 1){\n return `${hours}h ${min}m`\n }\n else if (days < 1 && hours < 1 && min < 1) {\n return `1m`\n }\n return `${days}d ${hours}h`\n }\n\n const handleBuyItNowCard = (status: UserBidStatus, item: any) => {\n if (item.quantityavailable > 0 || item.unlimitedquantity) {\n if (item.buyitnowavailable && item.buyitnowonly === false) {\n return (\n
\n \n \n ${item.lastbid}\n \n \n \n \n ${item.buyitnowprice} Buy Now\n \n \n {itemStatus(item)}\n \n \n
\n )\n }\n else if (item.buyitnowonly) {\n return (\n \n \n ${item.buyitnowprice} Buy Now\n \n \n {itemStatus(item)}\n \n \n )\n }\n else {\n if (item.itemisliveonly) {\n return (\n \n \n Live Auction\n \n \n {itemStatus(item)}\n \n \n )\n }\n else {\n return (\n \n \n ${item.lastbid}\n \n \n {itemStatus(item)}\n \n \n )\n }\n\n }\n }\n else {\n if (item.buyitnowavailable) {\n return (\n
\n \n \n SOLD OUT\n \n \n \n \n ${item.buyitnowprice} Buy Now\n \n \n {itemStatus(item)}\n \n \n
\n )\n }\n else {\n return (\n \n \n SOLD OUT\n \n \n {itemStatus(item)}\n \n \n )\n }\n }\n }\n\n if (state === \"loading\") {\n return (\n \n \n \n )\n }\n\n if (state === \"failed\") {\n return (\n \n Sorry, we are unable to fetch auction items at the moment.\n \n )\n }\n\n const onWatchListClick = (itemid: number) => (e: any) => {\n e.stopPropagation()\n dispatch(toggleWatchlistItem({ url: getEndPoint(WATCH_LIST), itemid }))\n }\n\n const renderIcon = (\n status: UserBidStatus = \"default\",\n item: AuctionItem\n ) => {\n if (status === \"winner\") {\n return (\n
\n
\n
\n \n
\n )\n }\n\n if (status === \"highBidder\") {\n return
\n \n
\n }\n\n if (status === \"losingBidder\") {\n return \n \n \n }\n\n if (accountStatus !== 'guest') {\n return (\n \n \n \n )\n }\n }\n\n const getStatus = (item: AuctionItem): UserBidStatus => {\n const stillOpen =\n moment().diff(moment(getLocalDateString(item.closingcst))) < 0\n\n if (item.currentlywinningbid && item.accountbiddingon && stillOpen) {\n return \"highBidder\"\n }\n\n if (item.currentlywinningbid && item.accountbiddingon && !stillOpen) {\n return \"winner\"\n }\n\n if (!item.currentlywinningbid && item.accountbiddingon) {\n return \"losingBidder\"\n }\n return \"default\"\n }\n\n return items?.map((item: AuctionItem) => {\n const status = getStatus(item)\n\n return (\n onItemClick(item.itemid)}\n key={item.itemid}\n color=\"#4c4c4c\"\n width=\"150px\"\n height=\"250px\"\n borderRadius=\"15px\"\n backgroundColor=\"#ffffff\"\n // filter={`drop-shadow(0px 3px 6px ${theme.colors.dropshadow})`} // Causes problems in Safari\n flexWrap=\"nowrap\"\n justifyContent=\"space-between\"\n style={{ position: \"relative\", overflow: 'hidden', border: status === 'winner' ? '3px solid #1CD182' : 'none' }}\n >\n \n attributes as props\n effect=\"blur\"\n />\n\n
\n {renderIcon(status, item)}\n
\n
\n\n \n {item.name}\n \n\n {state !== \"loading\" &&\n handleBuyItNowCard(status, item)\n }\n\n \n )\n })\n}\n\n\n","import { heart, heartOutline, logoUsd, ribbon } from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React from \"react\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {useHistory, useParams} from \"react-router\";\n\nimport {\n IonChip,\n IonCol,\n IonIcon,\n IonLabel,\n IonLoading,\n IonRow,\n} from \"@ionic/react\";\n\nimport { IconLosingBid } from \"../../components/Icons/IconLosingBid\";\nimport { IconWinningBidder } from \"../../components/Icons/IconWinningBidder\";\nimport { toggleWatchlistItem } from \"../../redux/slices/auctionItemsSlice\";\nimport { WATCH_LIST, getEndPoint } from \"../../util/api/enpoints\";\nimport Text from \"../CommonStyles/Text\";\nimport { AuctionItem, UserBidStatus } from \"./Index\";\nimport {\n ErrorMessage,\n HeartIconButton,\n LastBidContainer,\n ListIconContainer,\n ListItemRow,\n} from \"./styledComponents\";\nimport {DateTime} from \"luxon\";\n\ninterface Params {\n eventcode: string\n}\n\nexport const ListViewItems = ({ state, items }) => {\n const local = DateTime.local()\n const dispatch = useDispatch();\n const history = useHistory();\n const { eventcode } = useParams()\n const accountStatus = useSelector((state: any) => state.user.accountstatus);\n\n const getLocalDateString = (dateString) => {\n const centralDate = DateTime.fromISO(dateString,{zone: 'America/Chicago'})\n const localDate = centralDate.setZone(local.zoneName)\n const localDateString = localDate.toString()\n return localDateString\n }\n\n const closingTime = (closing: string) => {\n const then: any = moment(closing);\n const now: any = moment();\n const diff = moment.duration(then.diff(now));\n var days = Math.floor(diff.asDays());\n var hours = diff.hours();\n var min = diff.minutes()\n if (days < 1){\n return `${hours}h ${min}m`\n }\n else if (days < 1 && hours < 1 && min < 1) {\n return `1m`\n }\n return `${days}d ${hours}h`;\n };\n\n const itemStatus = (item: any) => {\n return (item.bidstatus === \"biddingclosed\" || (item.quantityavailable === 0 && item.unlimitedquantity === false))\n ? \"Closed\"\n : closingTime(getLocalDateString(item.closingcst));\n };\n\n const onWatchListClick = (itemid: number) => (e: any) => {\n e.stopPropagation();\n dispatch(toggleWatchlistItem({ url: getEndPoint(WATCH_LIST), itemid }));\n };\n\n const onItemClick = (itemId: number) => {\n history.push(`/${eventcode}/auction-items/${itemId}`);\n };\n\n const handleBuyItNowList = (item: any, status: UserBidStatus) => {\n if (item.quantityavailable > 0 || item.unlimitedquantity) {\n if (item.buyitnowavailable && item.buyitnowonly === false) {\n return (\n
\n \n \n \n \n ${item.lastbid}\n \n \n \n \n \n \n \n ${item.buyitnowprice}\n \n \n Buy Now\n \n \n \n
\n );\n } else if (item.buyitnowonly) {\n return (\n \n \n \n ${item.buyitnowprice}\n \n \n \n \n $$$\n \n \n \n );\n } else {\n if (item.itemisliveonly) {\n return (\n \n \n Live Auction\n \n \n )\n }\n else {\n return (\n \n \n ${item.lastbid}\n \n \n )\n }\n }\n }\n else {\n if (item.buyitnowavailable) {\n return (\n
\n \n \n \n \n SOLD OUT\n \n \n \n \n \n \n \n ${item.buyitnowprice}\n \n \n Buy Now\n \n \n \n
\n );\n } else {\n return (\n \n \n SOLD OUT\n \n \n );\n }\n }\n };\n\n const renderIconOnList = (\n status: UserBidStatus = \"default\",\n item: AuctionItem\n ) => {\n if (status === \"winner\") {\n return (\n \n );\n }\n\n if (status === \"highBidder\") {\n return ;\n }\n\n if (status === \"losingBidder\") {\n return ;\n }\n\n if (accountStatus !== 'guest') {\n return (\n \n \n \n );\n }\n\n };\n\n if (state === \"loading\") {\n return (\n \n \n \n );\n }\n\n if (state === \"failed\") {\n return (\n \n Sorry, we are unable to fetch auction items at the moment.\n \n );\n }\n\n return items.map((item: AuctionItem, i) => {\n const getStatus = (): UserBidStatus => {\n const stillOpen = \n moment().diff(moment(getLocalDateString(item.closingcst))) < 0\n if (item.currentlywinningbid && item.accountbiddingon && stillOpen) {\n return \"highBidder\"\n }\n if (item.currentlywinningbid && item.accountbiddingon && !stillOpen) {\n return \"winner\"\n }\n if (!item.currentlywinningbid && item.accountbiddingon) {\n return \"losingBidder\" \n }\n return \"default\"\n }\n const status = getStatus()\n return (\n onItemClick(item.itemid)}\n >\n {accountStatus !== 'guest' &&\n <>\n \n {renderIconOnList(status, item)}\n \n \n }\n\n
\n {item.name}\n
\n \n {item.tags &&\n item.tags.split(\",\").map((tag, i) => (\n \n \n {tag}\n \n \n ))}\n
\n
{handleBuyItNowList(item, status)}
\n
\n {itemStatus(item)}\n
\n \n );\n });\n};\n","import { chevronBackOutline, funnel } from \"ionicons/icons\";\nimport React, {useEffect} from \"react\";\nimport ClickAwayListener from \"react-click-away-listener\";\nimport { useDispatch } from \"react-redux\";\n\nimport { IonIcon, IonRadio, IonRadioGroup } from \"@ionic/react\";\n\nimport CheckBox from \"../../components/CheckBox/Index\";\nimport {\n setSortValue,\n sortOptions,\n useAuctionItemsState,\n useSortValue,\n} from \"../../redux/slices/auctionItemsSlice\";\nimport Text from \"../CommonStyles/Text\";\nimport { SlideOutState } from \"./Index\";\nimport {\n AttributeLI,\n AttributeLabel,\n BackButton,\n FilterBox,\n SlideOutTitle,\n SortButton,\n Span,\n UL,\n} from \"./styledComponents\";\n\n/**\n * Filters & Tags\n */\nexport let filtersConfig = [];\n\ntype Props = {\n slideoutState: SlideOutState;\n setSlideoutState: Function;\n handleCheckboxChange: Function;\n filtersState: any;\n setItemHasLiveOnly: boolean;\n};\nexport const SlideOutMenu = ({\n slideoutState,\n setSlideoutState,\n handleCheckboxChange,\n filtersState, setItemHasLiveOnly\n}: Props) => {\n const dispatch = useDispatch();\n const { tags: auctionItemsTags } = useAuctionItemsState();\n const sortValue = useSortValue();\n\n useEffect(() => {\n filtersConfig = [\n { param: \"watchlist\", name: \"Watchlist\", filteredValue: true },\n { param: \"accountbiddingon\", name: \"My Bids\", filteredValue: true }\n ]\n if (setItemHasLiveOnly) {\n filtersConfig.push({ param: \"itemisliveonly\", name: \"Live Auction Only\", filteredValue: true })\n }\n filtersConfig.push({ param: \"onlineauction\", name: \"Online Auction\", filteredValue: true })\n }, [])\n\n const handleClickAway = () => {\n if (slideoutState !== SlideOutState.closed) {\n setSlideoutState(SlideOutState.closed);\n }\n };\n return (\n \n \n {slideoutState === SlideOutState.filters ? (\n <>\n \n setSlideoutState(SlideOutState.closed)}\n >\n Done\n \n \n Filter\n
\n \n \n Sort\n \n setSlideoutState(SlideOutState.sort)}>\n {sortValue}\n \n \n \n Show Only\n \n
    \n {filtersConfig.map(\n (filter: { name: string; param: string, filteredValue: boolean }, index: number) => {\n return (\n \n \n \n \n {filter.name}\n \n \n \n );\n }\n )}\n
\n \n Tags\n \n
    \n {auctionItemsTags.map((tag: string, index: number) => {\n return (\n \n \n \n \n {tag}\n \n \n \n );\n })}\n
{\" \"}\n \n ) : (\n <>\n \n setSlideoutState(SlideOutState.filters)}\n >\n \n Back\n \n \n Sort\n \n \n\n
    \n \n {Object.values(sortOptions).map(\n (sort: string, index: number) => {\n return (\n dispatch(setSortValue(sort))}\n >\n \n \n \n {sort}\n \n \n \n );\n }\n )}\n \n
\n \n )}\n \n \n );\n};\n","import { useEffect, useReducer } from \"react\";\nimport { useDispatch } from \"react-redux\";\n\nimport {\n fetchAuctionItemsData,\n sortOptions,\n updateAuctionItems,\n useAuctionItemsState,\n useSortValue,\n} from \"../../redux/slices/auctionItemsSlice\";\nimport { AUCTION_ITEMS_ENDPOINT, getEndPoint } from \"../../util/api/enpoints\";\nimport { filtersConfig } from \"./SlideOutMenu\";\n\ntype CheckboxAction =\n | { type: \"filters\"; payload: { name: string; value: boolean } }\n | { type: \"tags\"; payload: { name: string; value: boolean } };\n\ntype CheckboxState = {\n filters: string[];\n tags: string[];\n};\n\nconst reducer = (state: CheckboxState, action: CheckboxAction) => {\n switch (action.type) {\n case \"filters\":\n if (action.payload.value === true) {\n const filters = state.filters.concat(action.payload.name);\n return {\n ...state,\n filters,\n };\n } else if (action.payload.value === false) {\n const filters = state.filters.filter(\n (filter: any) => filter !== action.payload.name\n );\n return {\n ...state,\n filters,\n };\n } else {\n return state;\n }\n case \"tags\":\n if (action.payload.value === true) {\n const tags = state.tags.concat(action.payload.name);\n return {\n ...state,\n tags,\n };\n } else if (action.payload.value === false) {\n const tags = state.tags.filter((tag) => tag !== action.payload.name);\n return {\n ...state,\n tags,\n };\n } else {\n return state;\n }\n default:\n return state;\n }\n};\n\nexport const useFiltersReducer = () => {\n const initialState: CheckboxState = {\n filters: [],\n tags: [],\n };\n\n return useReducer(reducer, initialState);\n};\n\nexport const useFilterByTagsAndFilters = ({\n filtersState,\n setFilteredItems,\n searchedItems,\n}) => {\n useEffect(() => {\n /**\n * case when both the filter arrays are empty\n * at that time display items simply will be auction items themselves\n */\n if (filtersState.tags.length === 0 && filtersState.filters.length <= 0) {\n setFilteredItems(searchedItems);\n }\n\n if (filtersState.filters.length > 0 && filtersState.tags.length <= 0) {\n let filteredList: any = [];\n filtersState.filters.forEach((filter) => {\n const filterConfig = filtersConfig.find((f) => f.param === filter);\n\n searchedItems.forEach((item: any) => {\n if (item[filter] === filterConfig.filteredValue) {\n const doesExist = filteredList.some(\n (filteredItem: any) => filteredItem.itemid === item.itemid\n );\n if (!doesExist) {\n filteredList.push(item);\n }\n }\n });\n });\n\n setFilteredItems(filteredList);\n }\n\n if (filtersState.tags.length > 0 && filtersState.filters.length <= 0) {\n let filteredTags: any = [];\n filtersState.tags.forEach((tag) => {\n searchedItems.forEach((item: any) => {\n if (item.tags.includes(tag)) {\n const doesExist = filteredTags.some(\n (filteredItem: any) => filteredItem.itemid === item.itemid\n );\n if (!doesExist) {\n filteredTags.push(item);\n }\n }\n });\n });\n setFilteredItems(filteredTags);\n }\n\n if (filtersState.filters.length > 0 && filtersState.tags.length > 0) {\n let filteredList: any = [];\n filtersState.filters.forEach((filter) => {\n const filterConfig = filtersConfig.find((f) => f.param === filter);\n searchedItems.forEach((item: any) => {\n if (item[filter] === filterConfig.filteredValue) {\n const doesExist = filteredList.some(\n (filteredItem: any) => filteredItem.itemid === item.itemid\n );\n if (!doesExist) {\n filteredList.push(item);\n }\n }\n });\n });\n let filteredTags: any = [];\n filtersState.tags.forEach((tag) => {\n searchedItems.forEach((item: any) => {\n if (item.tags.includes(tag)) {\n const doesExist = filteredTags.some(\n (filteredItem: any) => filteredItem.itemid === item.itemid\n );\n if (!doesExist) {\n filteredTags.push(item);\n }\n }\n });\n });\n\n let newList = filteredList.concat(filteredTags);\n const newFL = newList.filter(\n (item: any, index: any, self: any) =>\n index === self.findIndex((item1: any) => item1.itemid === item.itemid)\n );\n setFilteredItems(newFL);\n }\n }, [searchedItems, filtersState, setFilteredItems]);\n};\n\nexport const useFilterBySearchTerm = ({\n searchString,\n auctionItems,\n setSearchedItems,\n}) => {\n useEffect(() => {\n if (searchString) {\n const searchItems =\n auctionItems?.filter((item: any) =>\n item.name.toLowerCase().includes(searchString.toLowerCase())\n ) || [];\n setSearchedItems(searchItems);\n } else {\n setSearchedItems(auctionItems);\n }\n }, [searchString, auctionItems, setSearchedItems]);\n};\n\nexport const useSortItems = ({ filteredItems, setSortedItems }) => {\n const sortValue = useSortValue();\n\n useEffect(() => {\n if (sortValue === sortOptions.ALPHA_ASC) {\n const alphaSortedItems = [...filteredItems].sort((itemA, itemB) => {\n const nameA = itemA.name.toUpperCase(); // ignore upper and lowercase\n const nameB = itemB.name.toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n setSortedItems(alphaSortedItems);\n }\n if (sortValue === sortOptions.FEATURED_ITEMS) {\n const alphaSortedItems = filteredItems;\n setSortedItems(alphaSortedItems);\n }\n if (sortValue === sortOptions.ALPHA_DESC) {\n const alphaSortedItems = [...filteredItems].sort((itemA, itemB) => {\n const nameA = itemA.name.toUpperCase(); // ignore upper and lowercase\n const nameB = itemB.name.toUpperCase(); // ignore upper and lowercase\n if (nameA < nameB) {\n return 1;\n }\n if (nameA > nameB) {\n return -1;\n }\n return 0;\n });\n setSortedItems(alphaSortedItems);\n }\n if (sortValue === sortOptions.ENDING_SOON) {\n const endingSoonSortedItems = [...filteredItems].sort((itemA, itemB) => {\n const timeA = new Date(itemA.closing);\n const timeB = new Date(itemB.closing);\n if (timeA.getTime() <= timeB.getTime()) {\n return -1;\n }\n return 1;\n });\n const alreadyClosedSorted = [...endingSoonSortedItems].sort(\n (itemA, itemB) => {\n // Make sure already closed items are at the end\n const biddingA = itemA.bidstatus;\n const biddingB = itemB.bidstatus;\n\n if (biddingA < biddingB) {\n return 1;\n }\n if (biddingA > biddingB) {\n return -1;\n }\n return 0;\n }\n );\n setSortedItems(alreadyClosedSorted);\n }\n if (sortValue === sortOptions.PRICE_ASC) {\n const priceSortedItems = [...filteredItems].sort((itemA, itemB) => {\n const priceA = itemA.lastbid;\n const priceB = itemB.lastbid;\n if (priceA < priceB) {\n return -1;\n }\n if (priceA > priceB) {\n return 1;\n }\n return 0;\n });\n setSortedItems(priceSortedItems);\n }\n if (sortValue === sortOptions.PRICE_DESC) {\n const priceSortedItems = [...filteredItems].sort((itemA, itemB) => {\n const priceA = itemA.lastbid;\n const priceB = itemB.lastbid;\n if (priceA < priceB) {\n return 1;\n }\n if (priceA > priceB) {\n return -1;\n }\n return 0;\n });\n setSortedItems(priceSortedItems);\n }\n }, [filteredItems, setSortedItems, sortValue]);\n};\n\nexport const useFetchAuctionItems = () => {\n const { status: auctionItemsFetchState, auctionitems: auctionItems } =\n useAuctionItemsState();\n const dispatch = useDispatch();\n useEffect(() => {\n if (auctionItemsFetchState === \"idle\") {\n dispatch(fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT)));\n }\n if (auctionItemsFetchState === \"succeeded\") {\n dispatch(updateAuctionItems());\n }\n }, [dispatch, auctionItemsFetchState]);\n};\n\nexport const useSavedListView = (setListView) => {\n useEffect(() => {\n const cardView = localStorage.getItem(\"cardView\");\n setListView(cardView === \"list\" ? true : false);\n });\n};\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\nimport { client } from \"../../util/api/fetchData\"\n\ntype OrderState = {\n rownumber: number\n checkoutid: number\n itemid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickupinstructions: string\n status: string\n}\n\ntype OrdersState = {\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n orderitems: null | OrderState[]\n}\n\nconst initialState: OrdersState = {\n status: \"idle\",\n error: \"\",\n orderitems: []\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nexport const fetchOrdersData = createAsyncThunk(\n \"orders/fetchOrdersData\",\n async (url: string) => {\n const token = localStorage.getItem(\"token\")\n const response = await client.get(url, {\n headers: {\n Authorization: \"Bearer \" + token\n }\n })\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\n\nexport const slice = createSlice({\n name: \"orders\",\n initialState,\n reducers: {\n resetOrderStatus: (state) => {\n return { ...initialState };\n },\n },\n extraReducers: (builder) => {\n builder.addCase(\"orders/fetchOrdersData/pending\", (state, action) => {\n state.status = \"loading\"\n })\n builder.addCase(\"orders/fetchOrdersData/fulfilled\", (state, action: any) => {\n state.status = \"succeeded\"\n console.log(action.payload.orderitems)\n Object.keys(state).map((key) => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n state[key] = value\n }\n return\n }\n })\n })\n builder.addCase(\"orders/fetchOrdersData/rejected\", (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n })\n }\n})\n\nexport const {resetOrderStatus} = slice.actions\nexport default slice.reducer\n","import \"./iframe.css\"\n\nimport React, { useEffect, useState } from \"react\"\nimport { Helmet } from 'react-helmet'\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {IonBackdrop, IonLoading, IonModal} from \"@ionic/react\";\nimport styled from \"@emotion/styled\"\nimport {IonCol, IonGrid, IonRow, IonToast} from \"@ionic/react\"\n\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport {\n fetchCartData, resetStatus, resetTotalAmount,\n sendCheckoutData, setAllAuctionsChecked, setAuctionsWonCheckedItem, updateTotalAmount\n} from \"../../redux/slices/cartSlice\"\nimport {resetOrderStatus} from \"../../redux/slices/ordersSlice\";\nimport { CART_ENDPOINT, getEndPoint } from \"../../util/api/enpoints\"\nimport ButtonItem from \"../CommonStyles/ButtonItem\"\nimport Text from \"../CommonStyles/Text\"\nimport {useHistory, useParams} from \"react-router\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst CheckoutContainer = styled.div`\n //height: 100%;\n // margin-top:50px;\n width: 100%;\n overflow-y: auto;\n padding: 0 5px;\n\\`\n`\ntype CehckoutPopupProps = {\n open: boolean\n}\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nconst SpanImage = styled.span`\n margin-top: 5px;\n`\n\nconst Image = styled.img`\n height: 30px;\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n width: ${(props) => props.width || \"100%\"};\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\nconst BuyItNowContainer = styled.div`\n width: 100%;\n height: 100%;\n overflow-y: auto;\n background-color: #ffffff;\n border-radius: 30px 30px 0 0;\n`\nconst CheckoutPopup = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: #f2f2f2;\n height: ${(props) => (props.open ? \"300px\" : 0)};\n transition-duration: 1s;\n transition-property: height;\n border-radius: 30px 30px 0 0;\n`\n\ntype ItemWonList = {\n itemid: number\n historyid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n checked: boolean\n}\n\nconst GoEmerchant = () => {\n return (\n
\n Payment securely processed by: \n \"goEmerchant\n \n
\n )\n}\n\ninterface Params {\n eventcode: string\n orders: string\n historyid: string\n}\n\nconst Checkout = () => {\n const params = useParams();\n const dispatch = useDispatch()\n const history = useHistory()\n\n const [selectedItems, setSelectedItems] = useState([])\n const cartState = useSelector((state: any) => state.cart)\n const eventState = useSelector((state: any) => state.event)\n const [cryptogram, setCryptogram] = useState('');\n\n useEffect(() => {\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n\n return () => {\n dispatch(setAllAuctionsChecked())\n }\n }, [])\n\n useEffect(() => {\n var cartSelectedItem = []\n if (Number(params.historyid) > 0) {\n cartSelectedItem = cartState.auctionswon?.filter(\n (item: any) => Number(item.historyid) === Number(params.historyid)\n )\n }\n else if (cartState.auctionsWonChecked && cartState.auctionsWonChecked?.length > 0) {\n cartSelectedItem = cartState.auctionsWonChecked?.filter(\n (item: any) => item.checked\n )\n }\n else if (params.orders === '1') {\n const storageItems = localStorage.getItem('cartitems')\n if (storageItems) {\n const cartItems = JSON.parse(storageItems);\n if (cartItems && cartItems.length > 0) {\n console.log('processed cart')\n cartSelectedItem = cartItems\n }\n }\n }\n\n setSelectedItems(cartSelectedItem)\n }, [cartState])\n\n\n const calcAmountWon = (itemsWon: any) => {\n return itemsWon?.reduce((acc: any, curr: any) => {\n return acc + curr.amount * curr.quantity\n }, 0)\n }\n\n const calcQuantity = (itemsWon: any) => {\n return itemsWon?.reduce((acc: any, curr: any) => {\n return acc + curr.quantity\n }, 0)\n }\n\n const totalWonAmount = calcAmountWon(selectedItems)\n\n const getItems = (selItems: any) => {\n return selItems.map((item: ItemWonList) => {\n return (\n
\n \n \n \n \n \n \n ${(Math.round(item.amount * 100) / 100).toFixed(2)}\n \n \n \n \n \n \n {(item.itemnum && item.itemnum.length > 0) && '# ' + item.itemnum + ', Qty ' + item.quantity}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n });\n\n }\n\n const [paymentProcessFeesCheckbox, setPaymentProcessFeesCheckbox] = useState(\n false\n )\n const [isLoading, setIsLoading] = useState(\n false\n )\n\n const [additionalDonation, setAdditionalDonation] = useState(\n \"\"\n )\n\n const [modalState, setModalState] = useState({\n display: false,\n title: '',\n message: '',\n goBack: false\n })\n\n const [toastState, setToastState] = useState({\n display: false,\n goback: false,\n message: ''\n })\n\n const [orderTotal, setOrderTotal] = useState(0)\n const [paymentMethod, setPaymentMethod] = useState(\"creditCard\")\n\n // useEffect(() => {\n // setCryptogram('');\n // if (cartState.status === \"idle\") {\n // dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n // }\n // }, [cartState.status])\n\n // useEffect(() => {\n // if (cartState.auctionswon && cartState.auctionswon.length) {\n // if (cartState.auctionsWonChecked === null) {\n // dispatch(setInitialAuctionsWonChecked())\n // }\n // }\n // }, [cartState, dispatch])\n\n useEffect(() => {\n const donation =\n additionalDonation === \"\" ? 0 : parseFloat(additionalDonation.toString())\n if (paymentProcessFeesCheckbox) {\n const ccfee = cartState.ccfeespercentage / 100\n setOrderTotal(\n totalWonAmount + donation + (ccfee * (totalWonAmount + donation))\n )\n } else {\n setOrderTotal(totalWonAmount + donation)\n }\n }, [\n cartState.auctionsWonChecked,\n cartState.ccfeespercentage,\n additionalDonation,\n totalWonAmount,\n paymentProcessFeesCheckbox\n ])\n\n useEffect(() => {\n const script = document.createElement(\"script\")\n\n script.src = eventState.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n\n script.setAttribute(\"data-transcenter\", eventState.transcenterid)\n script.setAttribute(\"data-processor\", eventState.processorid)\n\n document.body.appendChild(script)\n }, [eventState])\n\n const changePaymentMethod = (e: any) => {\n setPaymentMethod(e.target.value)\n }\n\n const addAdditionalDonation = (e: any) => {\n if(e.target.value < 0){\n return\n }\n const donation = e.target.value\n setAdditionalDonation(donation)\n /**\n * How do we calculate this question\n */\n const addDonation = e.target.value === \"\" ? 0 : parseFloat(e.target.value)\n if (paymentProcessFeesCheckbox) {\n const ccfee = cartState.ccfeespercentage / 100\n const total = totalWonAmount + addDonation + ccfee * totalWonAmount\n setOrderTotal(\n total\n )\n } else {\n setOrderTotal(totalWonAmount + addDonation)\n }\n }\n\n const updateState = () => {\n dispatch(resetStatus())\n dispatch(resetOrderStatus())\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n const clickCheckout = async () => {\n setIsLoading(true)\n if (!cryptogram || cryptogram.length <= 0) {\n setIsLoading(false)\n return setToastState({ display: true, goback: false, message: `Please enter a valid credit card.`})\n }\n else {\n const itemIds = selectedItems.map((item: any) => item.itemid)\n const historyids = selectedItems.map((item: any) => item.historyid)\n const checkoutObj = {\n historyid: historyids,\n itemid: itemIds,\n ccfeesexactamount: paymentProcessFeesCheckbox ? Number((totalWonAmount + Number(additionalDonation)) * (cartState.ccfeespercentage / 100) * 100) / 100 : 0,\n additionaldonation: Number(additionalDonation),\n totalamount: orderTotal,\n emerchtoken: cryptogram\n }\n const response: any = await dispatch(sendCheckoutData(checkoutObj))\n const endpointMessage = JSON.parse(response.payload.jsonString)\n let title = 'An error has occurred!'\n let message = endpointMessage.message\n setIsLoading(false)\n if (endpointMessage.status === 'success') {\n localStorage.removeItem('cartitems')\n title = 'Thank you for your purchase!'\n message = \"You can view the pickup instructions in your order history!\"\n }\n // return setToastState({ display: true, goback: true, message: message})\n setModalState({\n display: true,\n title: title,\n message: message,\n goBack: true\n })\n\n updateState()\n setTimeout(() => {\n setModalState({\n display: false,\n title: '',\n message: '',\n goBack: false\n })\n\n if (endpointMessage.status === 'success') {\n if (params.orders === '1') {\n history.push('/' + params.eventcode + '/my-orders')\n } else {\n history.goBack()\n }\n }\n }, 3000)\n }\n }\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n }\n }\n }\n \n return (\n \n \n \n Checkout\n \n \n \n \n \n \n \n

{modalState.title}

\n

{modalState.message}

\n
\n
\n {\n if (toastState.goback) {\n history.goBack()\n }\n setToastState({\n display: false,\n goback: false,\n message: ''\n })\n }}\n cssClass={'custom-toast'}\n message={toastState.message}\n duration={3000}\n />\n \n \n \n {selectedItems && selectedItems.length > 0 && (\n
\n \n \n \n
\n \n Items Won ({selectedItems[0].quantity})\n \n \n ${(Math.round(calcAmountWon(selectedItems) * 100) / 100).toFixed(2)}\n \n
\n
\n
\n\n {getItems(selectedItems)}\n\n {/*{selectedItems.map((item: ItemWonList) => {\n return (\n \n \n \n \n \n \n \n ${(Math.round(item.amount * 100) / 100).toFixed(2)}\n \n \n \n \n \n \n #{item.itemnum}, Qty {item.quantity}\n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n })}\n*/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Additional Donation\n \n \n \n \n \n \n \n \n {cartState.showccfees &&\n \n \n \n \n \n Add {(Math.round(cartState.ccfeespercentage * 100) / 100).toFixed(2)}% to cover payment processing fees\n \n \n }\n\n \n \n {selectedItems &&\n \n \n
\n \n Subtotal ({calcQuantity(selectedItems)} items)\n \n
\n
\n \n
\n ${(Math.round(calcAmountWon(selectedItems) * 100) / 100).toFixed(2)}\n
\n
\n
\n }\n\n \n \n \n Additional Donations\n \n \n \n
\n \n ${additionalDonation === \"\" ? 0 : ((Number(additionalDonation) * 100) / 100).toFixed(2)}\n \n
\n
\n
\n {cartState.showccfees &&\n \n \n \n CC Fees\n \n \n \n
\n \n $\n {paymentProcessFeesCheckbox &&\n (Number((totalWonAmount + Number(additionalDonation)) * (cartState.ccfeespercentage / 100) * 100) / 100).toFixed(2)}\n {paymentProcessFeesCheckbox === false && 0}\n \n
\n
\n
\n }\n \n \n \n Order Total\n \n \n \n
\n ${ ((orderTotal * 100) / 100).toFixed(2) } \n
\n
\n
\n \n \n Checkout\n \n \n
\n
\n \n
\n )}\n
\n )\n}\n\nexport default Checkout\n","import { ChangeEvent, useState } from \"react\"\n\nconst useFormFields = (initialValues: any = {}) => {\n const [formFields, setFormFields] = useState(initialValues)\n\n const createChangeHandler = (key: any) => (\n e: ChangeEvent\n ) => {\n if (e.target.type === \"checkbox\") {\n const value = e.target.checked\n setFormFields((prev: any) => ({ ...prev, [key]: value }))\n } else {\n const value = e.target.value\n setFormFields((prev: any) => ({ ...prev, [key]: value }))\n }\n }\n return { formFields, createChangeHandler }\n}\n\nexport default useFormFields\n","import styled from \"@emotion/styled\"\ntype Props = {\n fontWeight?: number\n}\nconst Label = styled(\"label\")`\n font-size: 16px;\n color: ${(props) => props.theme.colors.important};\n text-align: left;\n margin: 8px 10px;\n font-weight: ${(props) => props.fontWeight || 400};\n`\n\nexport default Label\n","import styled from \"@emotion/styled\"\nimport React, { useEffect, useState } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\nimport { getURL } from \"../../constants\"\nimport useFormFields from \"../../hooks/FormField\"\nimport {checkTokenOnRefresh, sendUserInfo, updateUserInfo} from \"../../redux/slices/userSlice\"\nimport {getEndPoint, CREATE_ACCOUNT, USER_PROFILE} from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {fetchEventData} from \"../../redux/slices/eventSlice\";\nimport {Link} from \"react-router-dom\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst emailLabel = styled(\"label\")`\n font-size: 16px;\n color: ${(props) => props.theme.colors.important};\n text-align: left;\n margin: 8px 10px;\n font-weight: ${(props) => 400};\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst CreateAccountPage: React.FC = () => {\n const { eventcode } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n const event = useSelector((state: any) => state.event)\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n useEffect(() => {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: event.auctioncode\n }\n\n dispatch(\n fetchEventData(eventData)\n )\n }, [eventcode])\n\n const email = useSelector((state: any) => state.user.email)\n if (!email) {\n history.push('/' + eventcode)\n }\n const eventcodeState = useSelector((state: any) => state.event.eventcode)\n const signalrState = useSelector((state: any) => state.signalr)\n const userAccountStatus = useSelector(\n (state: any) => state.user.accountStatus\n )\n const userAccountSetupComplete = useSelector(\n (state: any) => state.user.accountSetupComplete\n )\n\n const { formFields, createChangeHandler } = useFormFields({\n password: \"\",\n confirmPassword: \"\"\n })\n\n const [errors, setErrors] = useState([])\n\n useEffect(() => {\n if (errors.length) {\n if (formFields.password === formFields.confirmPassword) {\n setErrors([])\n }\n }\n }, [formFields, errors])\n\n useEffect(() => {\n if (signalrState.connected) {\n history.push(\"/\" + eventcode + \"/verify-email\")\n }\n }, [signalrState, userAccountStatus, userAccountSetupComplete, history])\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n\n const password: string = formFields.password\n const confrimPassword: string = formFields.confirmPassword\n if (password !== confrimPassword) {\n setErrors([\"Passwords do not match\"])\n return\n } else {\n setErrors([])\n const url = getEndPoint(CREATE_ACCOUNT)\n const userInfo = {\n url,\n password,\n email,\n eventcode: eventcode,\n auctioncode:event.auctioncode\n }\n try {\n const response: any = await dispatch(sendUserInfo(userInfo))\n if (response.error) {\n throw new Error(\"Internal server Error\")\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonInfo)\n const token = responseJSON.token\n const accountstatus = responseJSON.accountstatus\n const setup = responseJSON.setupcomplete\n const userid = responseJSON.userid\n console.log(responseJSON)\n if (localStorage.getItem(\"token\")) {\n localStorage.removeItem(\"token\")\n }\n localStorage.setItem(\"token\", token)\n dispatch(\n updateUserInfo({\n accountstatus,\n accountSetupComplete: setup,\n userid,\n isLoggedIn: true\n })\n )\n\n await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n\n console.log(\"response from create account\", responseJSON)\n dispatch({\n type: \"TOKEN_CONNECT\",\n payload: {\n url: getURL(),\n token\n }\n })\n }\n } catch (err) {\n console.log(err)\n }\n }\n\n // }\n }\n return (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {/**/}\n {/* */}\n {/**/}\n \n \n\n
\n \n \n Email Address:\n \n \n {email}\n \n \n \n \n \n \n \n \n \n \n {errors.length > 0 &&\n errors.map((err) =>
Error : {err}
)}\n \n
\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n\n\n\n )\n}\n\nexport default CreateAccountPage\n","import {\n JsonHubProtocol,\n HubConnectionBuilder,\n LogLevel,\n HubConnection, HubConnectionState\n} from \"@microsoft/signalr\"\nimport { Store } from \"@reduxjs/toolkit\"\nimport { Store as notificationStore } from 'react-notifications-component';\nimport { updateEventData } from \"../slices/messageSlice\"\nimport { connected, disconnected, reconnecting } from \"../slices/signalrSlice\"\nimport {updateStateOnLogout, updateUserInfo} from \"../slices/userSlice\"\nimport {updateItemOnBid, itemUpdate, fetchAuctionItemsData} from \"../slices/auctionItemsSlice\"\nimport {fetchAuctionItemDetailsData, updateItemDetailsOnBid} from \"../slices/auctionItemDetailsSlice\"\nimport {setCartReset, setEventClosing, setEventReset, setForceLogout} from \"../slices/eventSlice\";\nimport {useSelector} from \"react-redux\";\nimport {fetchCartData} from \"../slices/cartSlice\";\nimport {CART_ENDPOINT, getEndPoint} from \"../../util/api/enpoints\";\n\nlet connection: HubConnection\n\nconst configureConnection = (action: any) => {\n const token = action.payload.token ? action.payload.token : null\n\n connection = new HubConnectionBuilder()\n .withUrl(action.payload.url, { accessTokenFactory: () => { return token as string } })\n .withAutomaticReconnect()\n .withHubProtocol(new JsonHubProtocol())\n .configureLogging(LogLevel.Debug)\n .build()\n}\n\nconst updateStoreOnResponse = (store: Store, msg: any) => {\n const parsedData = JSON.parse(msg.jsonString)\n console.log(parsedData)\n const state = store.getState()\n const eventcode = state.event?.eventData?.eventcode\n const auctioncode = state.event?.eventData?.auctioncode\n const eventData = state.event?.eventData\n const userId = state.user?.userid\n const email = state.user?.email\n const itemid = state.auctionItemDetails?.itemid\n\n switch (parsedData.type) {\n case \"eventrefresh\":\n if (eventData.eventcode === parsedData.eventcode && eventData.auctioncode === parsedData.auctioncode || parsedData.email === email) {\n store.dispatch(setEventReset(true))\n }\n break\n case \"cartrefresh\":\n if (userId === parsedData.userid) {\n store.dispatch(setCartReset(true))\n }\n break\n case \"eventcode\":\n store.dispatch(updateEventData(parsedData))\n break\n case \"emailValidation\":\n if (parsedData.status === \"valid\") {\n store.dispatch(\n updateUserInfo({\n accountstatus: \"verified\"\n })\n )\n }\n break\n case \"forcelogout\":\n console.log('forcelogout')\n store.dispatch(setForceLogout(true))\n break\n case \"itembid\":\n if (\n eventcode.toLowerCase() === parsedData.eventcode.toLowerCase() &&\n auctioncode.toLowerCase() === parsedData.auctioncode.toLowerCase() &&\n userId === parsedData.userid\n ) {\n store.dispatch(\n updateItemOnBid({\n ...parsedData\n })\n )\n store.dispatch(\n updateItemDetailsOnBid({\n ...parsedData\n })\n )\n }\n break\n case \"eventclosing\":\n if (eventData.eventcode === parsedData.eventcode && eventData.auctioncode === parsedData.auctioncode) {\n store.dispatch(setEventClosing(true))\n }\n break\n case \"itemupdate\":\n if (\n eventcode.toLowerCase() === parsedData.eventcode.toLowerCase() &&\n auctioncode.toLowerCase() === parsedData.auctioncode.toLowerCase()\n ) {\n store.dispatch(\n itemUpdate({\n ...parsedData\n })\n )\n if (parsedData.itemid === itemid) {\n store.dispatch(\n updateItemDetailsOnBid({\n ...parsedData\n })\n )\n }\n }\n break\n case \"updateUser\":\n store.dispatch(\n updateUserInfo({\n ...parsedData\n })\n )\n break\n case \"itemmessage\":\n if (\n eventcode.toLowerCase() === parsedData.eventcode.toLowerCase() &&\n auctioncode.toLowerCase() === parsedData.auctioncode.toLowerCase() &&\n userId === parsedData.userid\n ) {\n if (parsedData.itemid === itemid) {\n store.dispatch(\n updateItemOnBid({\n ...parsedData\n })\n )\n store.dispatch(\n updateItemDetailsOnBid({\n ...parsedData\n })\n )\n }\n if (parsedData && parsedData.message.length > 0) {\n notificationStore.addNotification({\n title: parsedData.message,\n // message: parsedData.message,\n type: \"info\",\n insert: \"bottom\",\n container: \"bottom-center\",\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\n width: 400,\n touchSlidingExit: {\n swipe: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0,\n },\n fade: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0\n }\n },\n dismiss: {\n duration: 0,\n showIcon: true,\n click: true,\n touch: true\n }\n });\n }\n }\n break\n case \"submitbid\":\n if (\n eventcode.toLowerCase() === parsedData.eventcode.toLowerCase() &&\n auctioncode.toLowerCase() === parsedData.auctioncode.toLowerCase() &&\n userId === parsedData.userid\n ) {\n store.dispatch(\n updateItemOnBid({\n ...parsedData\n })\n )\n store.dispatch(\n updateItemDetailsOnBid({\n ...parsedData\n })\n )\n }\n break\n case \"notification\":\n if (\n eventcode.toLowerCase() === parsedData.eventcode.toLowerCase() &&\n auctioncode.toLowerCase() === parsedData.auctioncode.toLowerCase()\n ) {\n // store.dispatch(showNotification({message:parsedData.message, isOpen: true}))\n console.log(parsedData)\n notificationStore.addNotification({\n title: parsedData.message,\n // message: parsedData.message,\n type: \"info\",\n insert: \"bottom\",\n container: \"bottom-center\",\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\n width: 400,\n touchSlidingExit: {\n swipe: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0,\n },\n fade: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0\n }\n },\n dismiss: {\n duration: 0,\n showIcon: true,\n click: true,\n touch: true\n }\n });\n }\n\n break\n default:\n console.log(\"Response does not contain appropriate type !!!\")\n }\n}\n\nconst startConnection = async (store: Store, action) => {\n try {\n\n connection.on(\"ReceiveJSON\", (msg: any) => {\n updateStoreOnResponse(store, msg)\n })\n\n // connection.onclose(async () => {\n // console.log('onclose')\n // await startConnection(store, action);\n // });\n\n await connection.start()\n if (connection.state === HubConnectionState.Connected) {\n store.dispatch(connected())\n }\n }\n catch (err) {\n setTimeout(startConnection.bind(store, action), 5000);\n }\n}\n\nconst createSignalrMiddleware = () => {\n return (store: any) => (next: any) => async (action: any) => {\n switch (action.type) {\n case \"CONNECT_SIGNALR\":\n configureConnection(action)\n connection.onclose(() => {\n store.dispatch(disconnected())\n })\n setTimeout(() => {}, 5000)\n break\n case \"SEND_MSG\":\n let state = store.getState()\n if (state.signalr.connected) {\n try {\n const message = JSON.stringify(action.payload)\n await connection?.send(\"SendJSON\", { jsonString: message })\n next(action)\n } catch (e) {\n console.log(e)\n }\n }\n break\n case \"TOKEN_CONNECT\":\n if (connection?.state === HubConnectionState.Connected) {\n connection?.stop()\n }\n configureConnection(action)\n startConnection(store, action)\n break\n /** do we stop signalr on logiut and reconnect ? */\n case \"DISCONNECT_SIGNALR\":\n store.dispatch(disconnected())\n if (connection) {\n connection.stop()\n }\n break\n default:\n return next(action)\n }\n }\n}\n\nexport default createSignalrMiddleware()\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\nimport { client } from \"../../util/api/fetchData\"\nimport { act } from \"react-dom/test-utils\"\n\ntype PrivacyPolicyState = {\n privacypolicyData: any\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n eventcode: any\n auctioncode: any\n}\n\nconst initialState: PrivacyPolicyState = {\n privacypolicyData: \"\",\n status: \"idle\",\n error: null,\n eventcode: null,\n auctioncode: null\n}\n\n\nexport const fetchPrivacyPolicy = createAsyncThunk(\n \"privacyPolicy/fetchPrivacyPolicy\",\n async ({ url, eventcode, auctioncode }: { url: string; eventcode: string, auctioncode: string }) => {\n const response = await client.post(url, {eventcode: eventcode, auctioncode: auctioncode})\n const parsedData = JSON.parse(response.jsonString)\n console.log(parsedData)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"privacyPolicy\",\n initialState,\n reducers: {\n setPrivacyEventCode: (state, action) => {\n state.eventcode = action.payload\n },\n setPrivacyAuctionCode: (state, action) => {\n state.auctioncode = action.payload\n },\n },\n extraReducers: (builder) => {\n builder.addCase(\"privacyPolicy/fetchPrivacyPolicy/pending\", (state, action) => {})\n builder.addCase(\"privacyPolicy/fetchPrivacyPolicy/fulfilled\", (state, action: any) => {\n state.privacypolicyData = action.payload.privacypolicy;\n })\n builder.addCase(\"privacyPolicy/fetchPrivacyPolicy/rejected\", (state, action: any) => {})\n }\n})\n\nexport const { setPrivacyEventCode, setPrivacyAuctionCode } = slice.actions\nexport default slice.reducer\n","import { createSlice } from \"@reduxjs/toolkit\"\n\nexport const slice = createSlice({\n name: \"responsemessage\",\n initialState: {\n eventData: \"\"\n },\n reducers: {\n updateEventData: (state, action) => {\n state.eventData = action.payload\n }\n }\n})\n\nexport const { updateEventData } = slice.actions\nexport default slice.reducer\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\nimport { client } from \"../../util/api/fetchData\"\n\ntype BidHistoryState = {\n message: string\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n itemid: string\n history: any\n}\n\nconst initialState: BidHistoryState = {\n message: \"\",\n status: \"idle\",\n error: null,\n itemid: \"\",\n history: null,\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nexport const fetchBidHistoryData = createAsyncThunk(\n \"bidhistory/bidHistoryData\",\n async (config: any ) => {\n\n const token = localStorage.getItem(\"token\")\n const response = await client.post(\n config.url,\n {\n itemid: parseInt(config.itemId)\n },\n {\n headers: {\n Authorization: \"Bearer \" + token\n }\n }\n )\n const parsedData = JSON.parse(response.jsonString)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"bidHistory\",\n initialState,\n reducers: {\n },\n extraReducers: (builder) => {\n builder.addCase(\n \"bidhistory/bidHistoryData/pending\",\n (state: BidHistoryState, action) => {\n state.status = \"loading\"\n }\n )\n builder.addCase(\n \"bidhistory/bidHistoryData/fulfilled\",\n (state: any, action: any) => {\n Object.keys(state).map((key) => {\n if (key === 'status' || key === 'error')\n return;\n state[key] = '';\n })\n Object.keys(state).map((key) => {\n if (key in action.payload) {\n if (hasKey(state, key)) {\n let value = action.payload[key]\n state[key] = value\n }\n\n return\n }\n })\n state.status = \"succeeded\"\n }\n )\n builder.addCase(\n \"bidhistory/bidHistoryData/rejected\",\n (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n }\n )\n }\n})\n\nexport default slice.reducer\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\nimport { client } from \"../../util/api/fetchData\"\n\ntype debugState = {\n payloadData: any\n}\n\nconst initialState: debugState = {\n payloadData: []\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\n\nexport const slice = createSlice({\n name: \"debugState\",\n initialState,\n reducers: {\n setPayloadData: (state, action) => {\n console.log(action.payload)\n state.payloadData.push(action.payload)\n }\n },\n extraReducers: (builder) => {\n }\n})\n\nexport const { setPayloadData } = slice.actions\nexport default slice.reducer\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\n\ntype NotifficationState = {\n message: string\n isOpen: boolean\n timeout: number\n buttons: []\n}\n\nconst initialState: NotifficationState = {\n message: \"\",\n isOpen: false,\n timeout: 3000,\n buttons: []\n}\n\nexport const slice = createSlice({\n name: \"notification\",\n initialState,\n reducers: {\n showNotification: (state, action) => {\n state.isOpen = true\n state.message = action.payload.message\n state.timeout = (action.payload?.timeout === null ? null : 3000)\n state.buttons = (action.payload?.buttons ? action.payload?.buttons : [])\n },\n resetNotification: (state) => {\n state.isOpen = false\n state.message = \"\"\n state.timeout = 0\n state.buttons = []\n }\n },\n extraReducers: (builder) => {\n }\n})\n\nexport const {\n showNotification,\n resetNotification\n} = slice.actions\nexport default slice.reducer\n","import { createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nexport interface SignalRItem {\n type: string;\n itemid: number;\n eventcode: string;\n auctioncode: string;\n bidamount: number;\n statusConnected: boolean;\n message: string;\n jsonMessage: string;\n}\n\ntype SignalRItemState = {\n signalRItems: SignalRItem[]\n}\n\nconst initialState: SignalRItemState = {\n signalRItems: []\n}\n\nexport const slice = createSlice({\n name: \"SignalRItems\",\n initialState,\n reducers: {\n resetSignalRItems: (state, action) => {\n state.signalRItems = []\n },\n updateSignalRItems: (state, action) => {\n const newItems = state.signalRItems.map((item: SignalRItem) => {\n return item\n })\n state.signalRItems = [...newItems, action.payload]\n }\n }\n})\n\nexport const { resetSignalRItems, updateSignalRItems } = slice.actions\nexport default slice.reducer","import { useSelector } from \"react-redux\"\n\nimport { PayloadAction, createAsyncThunk, createSlice } from \"@reduxjs/toolkit\"\n\nimport { client } from \"../../util/api/fetchData\"\nimport { AppState } from \"../store\"\nimport auctionItemDetailsSlice from \"./auctionItemDetailsSlice\";\n\nexport interface SSAuctionItem {\n rownumber: number\n itemid: number\n name: string\n description: string\n longdescription: string\n tags: string\n numberofbids: number\n startingbid: number\n lastbid: number\n open: string\n closing: string\n opencd: string\n closingcd: string\n bidstatus: string\n quantityavailable: number\n location: string\n imageurl: string\n donatedby: string\n fairmarketvalue: number\n buyitnowprice: number\n highbidder: string\n}\n\ntype SlideShowItemsState = {\n message: string\n token: string\n auctioneventid: number\n auctionsiteid: number\n auctionitems: SSAuctionItem[]\n activeAuctionItems: SSAuctionItem[]\n activeItem: SSAuctionItem\n status: \"idle\" | \"loading\" | \"succeeded\" | \"failed\"\n error: any\n}\n\n\nconst initialState: SlideShowItemsState = {\n message: \"\",\n token: \"\",\n auctioneventid: 0,\n auctionsiteid: 0,\n auctionitems: [],\n activeAuctionItems: [],\n activeItem: null,\n status: \"idle\",\n error: null,\n}\n\nfunction hasKey(obj: O, key: keyof any): key is keyof O {\n return key in obj\n}\nexport const fetchSlideshowItemsData = createAsyncThunk(\n \"slideshowitems/fetchSlideshowItemsData\",\n async (url: string) => {\n const response = await client.get(\n url, {}\n )\n const parsedData = JSON.parse(response.jsonString)\n console.log(parsedData)\n return parsedData\n }\n)\n\nexport const slice = createSlice({\n name: \"slideshowitems\",\n initialState,\n reducers: {\n updateSlideshowItemOnBid: (state, action) => {\n if (state.activeItem && state.activeItem.itemid === action.payload.itemid) {\n state.activeItem = {\n ...state.activeItem,\n lastbid: action.payload.bidamount,\n quantityavailable: action.payload.quantity,\n numberofbids: action.payload.numberOfbids,\n }\n }\n const newItems = state.auctionitems.map((item: SSAuctionItem) => {\n if (item.itemid === action.payload.itemid) {\n return {\n ...item,\n lastbid: action.payload.bidamount,\n quantityavailable: action.payload.quantity,\n numberofbids: action.payload.numberOfbids,\n }\n } else {\n return item\n }\n })\n state.auctionitems = newItems\n },\n updateActiveItem: (state, action) => {\n state.activeItem = action.payload\n },\n updateActiveAuctionItems: (state, action) => {\n state.activeAuctionItems = action.payload\n },\n },\n extraReducers: (builder) => {\n builder.addCase(\n \"slideshowitems/fetchSlideshowItemsData/pending\",\n (state, action) => {\n state.status = \"loading\"\n }\n )\n builder.addCase(\n \"slideshowitems/fetchSlideshowItemsData/fulfilled\",\n (state , action: any) => {\n state.auctionitems = action.payload.auctionitems\n state.activeItem = (action.payload.auctionitems && action.payload.auctionitems.length > 0 ? action.payload.auctionitems[0] : null)\n state.auctioneventid = action.payload.auctioneventid\n state.auctionsiteid = action.payload.auctionsiteid\n state.token = action.payload.token\n state.message = action.payload.message\n state.status = \"succeeded\"\n }\n )\n builder.addCase(\n \"slideshowitems/fetchSlideshowItemsData/rejected\",\n (state, action: any) => {\n state.status = \"failed\"\n state.error = action.error.message\n }\n )\n }\n})\n\nexport const { updateSlideshowItemOnBid, updateActiveItem, updateActiveAuctionItems } = slice.actions\nexport default slice.reducer\n","import { combineReducers, configureStore } from \"@reduxjs/toolkit\";\nimport { getDefaultMiddleware } from \"@reduxjs/toolkit\";\n\nimport createSignalRMiddleware from \"./middleware/signalr-middleware\";\nimport auctionItemDetailsSlice from \"./slices/auctionItemDetailsSlice\";\nimport auctionItemsReducer from \"./slices/auctionItemsSlice\";\nimport bidHistorySlice from \"./slices/bidHistorySlice\";\nimport cartSlice from \"./slices/cartSlice\";\nimport debugReducer from \"./slices/debugSlice\";\nimport eventReducer from \"./slices/eventSlice\";\nimport messageReducer from \"./slices/messageSlice\";\nimport privacyPolicyReducer from \"./slices/privacyPolicySlice\";\nimport signalrReducer from \"./slices/signalrSlice\";\nimport userReducer from \"./slices/userSlice\";\nimport notificationReducer from \"./slices/notificationSlice\";\nimport ordersSlice from \"./slices/ordersSlice\";\nimport signalRItemsSlice from \"./slices/SignalRItemsSlice\";\nimport slideShowItemSlice from \"./slices/slideShowItemSlice\";\n\n\nconst middlewares = getDefaultMiddleware();\n\nconst rootReducer = combineReducers({\n signalr: signalrReducer,\n responseMessage: messageReducer,\n event: eventReducer,\n debugState: debugReducer,\n auctionItems: auctionItemsReducer,\n auctionItemDetails: auctionItemDetailsSlice,\n bidHistory: bidHistorySlice,\n user: userReducer,\n cart: cartSlice,\n orders: ordersSlice,\n privacypolicy: privacyPolicyReducer,\n notification: notificationReducer,\n signalRItems: signalRItemsSlice,\n slideshowItems: slideShowItemSlice,\n});\n\nexport default configureStore({\n reducer: rootReducer,\n middleware: middlewares.concat(createSignalRMiddleware),\n});\n\nexport type AppState = ReturnType;\n","import styled from '@emotion/styled'\nimport { IonSpinner } from '@ionic/react'\nimport React, { useEffect, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Redirect, useHistory, useParams } from 'react-router'\nimport waveBluePng from '../../assets/img/svg/wave-blue.png'\nimport useFormFields from '../../hooks/FormField'\nimport {fetchEventData, setEventCode, setAuctionCode, setForceLogout} from '../../redux/slices/eventSlice'\nimport { setPrivacyEventCode } from '../../redux/slices/privacyPolicySlice'\nimport {sendUserInfo, updateStateOnLogout, updateUserInfo, verifyEmail} from '../../redux/slices/userSlice'\nimport { getEndPoint } from '../../util/api/enpoints'\nimport Button from '../CommonStyles/Button'\nimport Form from '../CommonStyles/Form'\nimport InputsContainer from '../CommonStyles/InputsContainer'\nimport Label from '../CommonStyles/Label'\nimport PageBodyContainer from '../CommonStyles/PageBodyContainer'\nimport Text from '../CommonStyles/Text'\nimport jwt_decode from \"jwt-decode\";\nimport {disconnected} from \"../../redux/slices/signalrSlice\";\nimport {Link} from \"react-router-dom\";\nimport {getURL} from \"../../constants\";\nimport store from \"../../redux/store\";\nimport axios from \"axios\";\nimport {getConfig} from \"../../AppConfig\";\n\ninterface Params {\n eventcode: string\n loginguid?: string\n}\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\n/* extract validators in a separate file */\n\nconst validateEmail = (email: string) => {\n const errors = []\n\n if (email.length < 5) {\n errors.push('Email should be at least 5 charcters long')\n }\n if (email.split('').filter((x) => x === '@').length !== 1) {\n errors.push('Email should contain a @')\n }\n if (email.indexOf('.') === -1) {\n errors.push('Email should contain at least one dot')\n }\n\n return errors\n}\n\nconst Input = styled('input')`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst EventPage: React.FC = () => {\n console.log(window.location.pathname)\n const { eventcode, loginguid } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n const event = useSelector((state: any) => state.event)\n const user = useSelector((state: any) => state.user)\n const token = localStorage.getItem(\"token\")\n const signalrState = useSelector((state: any) => state.signalr)\n const userAccountStatus = useSelector((state: any) => state.user.accountstatus)\n const [homemessage, setHomeMessasge] = useState('')\n\n const { apiUrl } = getConfig()\n const passwordlessprocessURL = `${apiUrl}/passwordlessprocess/`\n\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n\n if (token) {\n const decoded: any = jwt_decode(token)\n // Clear token and logout becuase the token eventcode does not match param eventcode\n console.log(eventcode)\n console.log(user.email)\n if ((decoded.eventcode.toString() !== eventcode.toString() || decoded.email !== user.email) && !decoded.isguest && !loginguid) {\n dispatch(updateStateOnLogout())\n localStorage.removeItem(\"token\")\n }\n }\n\n useEffect(() => {\n if (loginguid && loginguid.length > 0) {\n const url = passwordlessprocessURL + loginguid\n axios.get(url, {headers: {}}).then((response) => {\n if (response) {\n const dataJson = JSON.parse(response.data.jsonString)\n if (dataJson.status === 'expired') {\n setHomeMessasge(dataJson.message)\n }\n else {\n processToken(dataJson)\n history.push('/' + eventcode + '/welcome/')\n setHomeMessasge(event.homemessage)\n }\n }\n })\n }\n }, [loginguid])\n\n const emailInputRef = useRef()\n const { formFields, createChangeHandler } = useFormFields({\n email: ''\n })\n\n useEffect(() => {\n // console.log(\"SETFORCELOGOUT\")\n store.dispatch(setForceLogout(false))\n }, [])\n\n useEffect(() => {\n if (signalrState.connected) {\n if (userAccountStatus === 'guest') {\n history.push('/' + eventcode + '/welcome/')\n }\n }\n }, [signalrState, userAccountStatus])\n\n const [errors, setErrors] = useState([])\n dispatch(setEventCode(eventcode))\n dispatch(setAuctionCode(auctioncode))\n dispatch(setPrivacyEventCode(eventcode))\n const eventStatus = useSelector((state: any) => state.event.status)\n const eventData = useSelector((state: any) => state.event.eventData)\n\n // effect to focus the email address field\n useEffect(() => {\n if (emailInputRef.current) {\n emailInputRef.current.focus()\n }\n })\n\n useEffect(() => {\n if (eventStatus === 'idle') {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: auctioncode\n }\n dispatch(fetchEventData(eventData))\n }\n }, [eventStatus, eventcode, auctioncode])\n\n const onGuestLogin = async (e: any) => {\n e.preventDefault()\n\n const url = getEndPoint('GUEST_LOGIN_URL')\n const userInfo = {\n url,\n eventcode: event.eventcode,\n auctioncode: event.auctioncode\n }\n try {\n const response: any = await dispatch(sendUserInfo(userInfo))\n if (response.error) {\n throw new Error('Internal server Error')\n }\n else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonInfo)\n // console.log(responseJSON)\n if (responseJSON.status === 'success') {\n setErrors([])\n const token = responseJSON.token\n // console.log(token)\n const accountstatus = responseJSON.accountstatus\n if (localStorage.getItem('token')) {\n localStorage.removeItem('token')\n }\n localStorage.setItem('token', token)\n dispatch(\n updateUserInfo({\n accountstatus,\n authorizebidder: false,\n isLoggedIn: true,\n firstname: 'Guest'\n })\n )\n dispatch({\n type: 'TOKEN_CONNECT',\n payload: {\n url: getURL(),\n token: token\n }\n })\n console.log(localStorage.getItem('token'))\n console.log('finish')\n }\n else if (responseJSON.status === 'failure') {\n setErrors([responseJSON.message])\n }\n }\n } catch (err) {\n console.log(err)\n }\n }\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n\n const email: string = formFields.email\n const emailErrors = validateEmail(email)\n\n if (emailErrors.length > 0) {\n setErrors(() => emailErrors)\n } else {\n setErrors([])\n }\n\n if (emailErrors.length <= 0) {\n // call send userinfo\n const url = getEndPoint('JOIN_EMAIL')\n\n const result: any = await dispatch(verifyEmail({ url, email, eventcode, auctioncode }))\n if (result.error) {\n // add logic to say server failed to authenticate email !\n console.log('internal error failed to connect to the server !')\n return\n }\n const response = JSON.parse(result.payload.jsonString)\n const accountStatus = response.accountstatus\n let redirectTo = ''\n // should the routes match the status?\n if (accountStatus === 'exists') {\n redirectTo = '/' + eventcode.toLowerCase() + '/login'\n } else if (accountStatus === 'doesnotexist') {\n // Here we need to create an account\n redirectTo = '/' + eventcode + '/create-account/'\n }\n dispatch(updateUserInfo({ email }))\n history.push(redirectTo)\n }\n }\n\n const processToken = (jsonData) => {\n if (jsonData.status === 'success') {\n setErrors([])\n const token = jsonData.token\n const accountstatus = jsonData.accountstatus\n const setup = jsonData.setupcomplete\n const userid = jsonData.userid\n localStorage.setItem('token', token)\n dispatch(\n updateUserInfo({\n accountstatus,\n accountSetupComplete: setup,\n userid,\n firstname: jsonData.firstname,\n lastname: jsonData.lastname,\n authorizebidder: jsonData.authorizebidder,\n isLoggedIn: true,\n notifications: jsonData.notifications,\n eventcode: jsonData.eventcode,\n auctioncode: jsonData.auctioncode\n })\n )\n dispatch({\n type: 'TOKEN_CONNECT',\n payload: {\n url: getURL(),\n token: token\n }\n })\n }\n }\n\n return (\n <>\n {eventStatus === 'succeeded' && eventData.status === 'success' && (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {eventData.eventflag === \"eventnotopen\" ?\n \n \n \n :\n \n \n \n }\n\n \n \n\n {eventData.eventflag !== \"eventnotopen\" &&\n
\n {errors.length > 0 &&\n errors.map((err) =>
Error : {err}
)}\n \n \n \n \n \n\n {event.eventallowguestentry &&\n \n }\n
\n }\n
\n )}\n {eventStatus === 'loading' && (\n \n \n \n )}\n {(eventStatus === 'failed' || eventData.status === 'failure') && (\n \n )}\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n \n )\n}\n\nexport default EventPage\n","import React from \"react\"\n\ntype Props = {\n fill: string\n}\n\nconst IconAdd: React.FC = ({ fill }) => {\n return (\n \n Add Circle\n \n \n )\n}\n\nexport default IconAdd\n","import React from \"react\"\n\ntype Props = {\n fill: string\n}\n\nconst IconRemove: React.FC = ({ fill }) => {\n return (\n \n Remove Circle\n \n \n )\n}\n\nexport default IconRemove\n","import { getEndPoint, SUBMIT_BID } from \"./enpoints\"\nimport { client } from \"./fetchData\"\n\ntype ItemDetails = {\n itemid: number\n userid: number\n bid: number | string\n buyitnow: boolean\n autobid?: boolean\n maxbid?: number | string\n increment?: number | string\n quantity?: number\n}\n\nconst submitBid = (itemDetails: ItemDetails) => {\n const token = localStorage.getItem(\"token\")\n return client.post(getEndPoint(SUBMIT_BID), itemDetails, {\n headers: {\n Authorization: \"Bearer \" + token\n }\n })\n}\n\nexport { submitBid }\n","import styled from \"@emotion/styled\";\n\nimport { UserBidStatus } from \"../AuctionItems/Index\";\nimport {keyframes} from \"@emotion/react\";\n\ntype BuyItNowProps = {\n open: boolean;\n};\n\ntype AnimationProps = {\n play: boolean;\n};\n\nexport const PageContainer = styled.div`\n height: 100%;\n width: 100%;\n background: ${(props: { buyitnow: boolean }) =>\n props.buyitnow ? \"#b0afaf\" : null};\n overflow-y: auto;\n`;\n\nexport const BuyItNowContainer = styled.div`\n position: absolute;\n bottom: 0;\n width: 100%;\n background-color: #ffffff;\n height: ${(props) => (props.open ? \"300px\" : 0)};\n transition: all 0.5s ease-out;\n z-index: 10000;\n //transition-duration: 8s;\n //-webkit-transition: 0.2s;\n //-moz-transition: 0.2s;\n //-o-transition: 0.2s;\n //transition: 0.2s;\n //transition-property: height;\n border-radius: 30px 30px 0 0;\n`;\n\nexport const Select = styled(\"select\")`\n box-sizing: border-box;\n height: 50px;\n width: 50px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`;\nexport const Option = styled(\"option\")`\n box-sizing: border-box;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`;\n\nexport const HighBidderTextContainer = styled.div`\n background: #a3f2b2;\n border-radius: 16px;\n padding: 0.2rem 0.5rem;\n`;\n\nexport const LosingBidderTextContainer = styled.div`\n border-radius: 16px;\n border: 2px solid #ff6f00;\n padding: 0.2rem 0.5rem;\n`;\n\nexport const WinnerIconContainer = styled.div`\n background: #a3f2b2;\n border-radius: 50%;\n padding: 0.5rem;\n`;\n\nexport const IconContainer = styled(\"div\")`\n grid-row: 1/4;\n width: 100%;\n height: 100%;\n background: ${(props: { status: UserBidStatus }) =>\n props.status === \"winner\" ? \"#1CD182\" : null};\n display: grid;\n place-items: center;\n`;\n\n// const bounce = keyframes`\n// from, 20%, 53%, 80%, to {\n// transform: translate3d(0,0,0);\n// }\n//\n// 40%, 43% {\n// transform: translate3d(0, -30px, 0);\n// }\n//\n// 70% {\n// transform: translate3d(0, -15px, 0);\n// }\n//\n// 90% {\n// transform: translate3d(0,-4px,0);\n// }\n// `\n\n\nexport const StatusTextContainer = styled.div`\n margin-left: 0.5rem;\n display: grid;\n justify-items: start;\n grid-gap: 0.25rem;\n //border: 2px solid #ff6f00;\n`;\n\n// export const AnimatedTextContainer = styled.div`\n// animation: ${bounce} 1s ease infinite;\n// // animation-iteration-count: 1;\n// animation-play-state: ${(props) => (props.play ? 'running' : 'paused')};\n// `;","import \"./styles.css\";\nimport { ribbon, createOutline } from \"ionicons/icons\";\nimport React, {useEffect, useState} from \"react\";\n\nimport {IonButton, IonCol, IonIcon} from \"@ionic/react\";\n\nimport { IconLosingBid } from \"../../components/Icons/IconLosingBid\";\nimport { IconWinningBidder } from \"../../components/Icons/IconWinningBidder\";\nimport { UserBidStatus } from \"../AuctionItems/Index\";\nimport Text from \"../CommonStyles/Text\";\nimport ReactTextTransition, { presets } from \"react-text-transition\";\nimport {\n HighBidderTextContainer,\n IconContainer,\n LosingBidderTextContainer,\n StatusTextContainer\n} from \"./styledComponents\";\nimport {useSelector} from \"react-redux\";\nimport {AppState} from \"../../redux/store\";\nimport {css, keyframes} from \"@emotion/react\";\nimport styled from \"@emotion/styled\";\n\nexport const CurrentBid = ({\n currentBid,\n status, quantity,\n numOfBids,\n minimumBidIncrease,\n isPriceless,\n fairMarketValue,\n onMaxBid,\n accountisautobid,\n accountautobidamount,\n accountautobidincrement\n}: {\n currentBid: number;\n status: UserBidStatus;\n quantity: number;\n numOfBids: number;\n minimumBidIncrease: number;\n isPriceless: boolean;\n fairMarketValue: number;\n onMaxBid: any;\n accountisautobid: boolean;\n accountautobidamount: number;\n accountautobidincrement: number;\n}) => {\n const [bidUpdate, setBidUpdate] = React.useState(false);\n const auctionItemDetailsState = useSelector(\n (state: AppState) => state.auctionItemDetails\n );\n\n useEffect(() => {\n setBidUpdate(true);\n setTimeout(() => {\n setBidUpdate(false);\n }, 1000);\n }, [auctionItemDetailsState.currentbid])\n\n const renderIcon = () => {\n if (status === \"highBidder\") {\n return (\n
\n \n
\n );\n }\n if (status === \"losingBidder\") {\n return ;\n }\n if (status === \"winner\") {\n return (\n
\n \n
\n );\n }\n\n return null;\n };\n\n const renderText = () => {\n if (quantity > 0) {\n if (status === \"highBidder\") {\n return (\n <>\n
\n \n \n ${currentBid}\n \n \n
\n \n {numOfBids} Bids\n \n \n );\n }\n if (status === \"losingBidder\") {\n return (\n <>\n
\n \n \n ${currentBid}\n \n \n
\n \n {numOfBids} Bids\n \n \n );\n }\n\n return (\n <>\n
\n \n ${currentBid}\n \n
\n \n {numOfBids} Bids\n \n \n );\n\n\n }\n else if (quantity === 0) {\n return (\n \n SOLD OUT\n \n );\n }\n };\n\n const statusTextMap = {\n highBidder: \"Current High Bidder\",\n losingBidder: \"Current Low Bidder\",\n winner: \"Winner\",\n };\n\n const statusText = statusTextMap[status];\n\n const checkAccountStatus = () => {\n return (accountisautobid && status !== \"winner\" && status === \"highBidder\")\n }\n\n return (\n <>\n \n {renderIcon()}\n \n {statusText && (\n \n {statusText}\n \n )}\n {renderText()}\n \n \n {checkAccountStatus() &&\n \n \n \n Your max bid: ${accountautobidamount}\n \n \n \n \n }\n \n {(isPriceless) && (\n \n \"Priceless\"\n \n )}\n {(!isPriceless && fairMarketValue > 0) && (\n \n ${fairMarketValue}\n )}\n {(!isPriceless && fairMarketValue > 0) && (\n \n Fair Market Value\n \n )}\n {(!isPriceless && fairMarketValue <= 0) && (\n \n ${minimumBidIncrease}\n )}\n {(!isPriceless && fairMarketValue <= 0) && (\n \n Min Bid Increase\n \n )}\n \n \n\n );\n}\n\n","import styled from \"@emotion/styled\";\n\ntype Props = {\n src: any;\n alt: string;\n buyitnow: boolean;\n};\n\nconst Img = styled(\"img\")`\n object-fit: contain;\n object-position: center;\n opacity: ${(props: { buyitnow: boolean }) => props.buyitnow ? 0.10 : null};\n height: 250px;\n width: 100%;\n\n @media screen and (min-width: 768px) {\n object-fit: contain;\n height: 350px;\n }\n @media screen and (min-width: 900px) {\n height: 450px;\n }\n`;\nexport default Img;\n","import {heart, heartOutline, refreshOutline} from \"ionicons/icons\";\nimport moment from \"moment\";\nimport React, { useEffect, useState } from \"react\";\nimport Moment from \"react-moment\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useHistory, useParams } from \"react-router\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {IonCol, IonContent, IonGrid, IonIcon, IonModal, IonRefresher, IonRefresherContent, IonRow} from \"@ionic/react\";\n\nimport IconAdd from \"../../components/Icons/IconAdd\";\nimport IconRemove from \"../../components/Icons/IconRemove\";\nimport { fetchAuctionItemDetailsData, updateItemDetailsHistoryId, resetItemDetailsState } from \"../../redux/slices/auctionItemDetailsSlice\";\nimport {fetchAuctionItemsData, toggleWatchlistItem} from \"../../redux/slices/auctionItemsSlice\";\nimport { fetchBidHistoryData } from \"../../redux/slices/bidHistorySlice\";\nimport {\n setAuctionsWonCheckedItem,\n setInitialAuctionsWonChecked,\n updateAuctionsWon,\n updateTotalAmount,\n resetTotalAmount, resetStatus, fetchCartData\n} from \"../../redux/slices/cartSlice\";\nimport {resetOrderStatus} from \"../../redux/slices/ordersSlice\";\nimport store, { AppState } from \"../../redux/store\";\nimport {\n AUCTION_ITEM_DETAIL_ENDPOINT,\n BID_HISTORY,\n WATCH_LIST,\n getEndPoint, AUCTION_ITEMS_ENDPOINT, CART_ENDPOINT,\n} from \"../../util/api/enpoints\";\nimport { submitBid } from \"../../util/api/submitBid\";\nimport { UserBidStatus } from \"../AuctionItems/Index\";\nimport { HeartIconButton } from \"../AuctionItems/styledComponents\";\nimport ButtonItem from \"../CommonStyles/ButtonItem\";\nimport Text from \"../CommonStyles/Text\";\nimport { CurrentBid } from \"./CurrentBid\";\nimport Img from \"./Img\";\nimport {\n BuyItNowContainer,\n Option,\n PageContainer,\n Select,\n} from \"./styledComponents\";\nimport {updateStateOnLogout} from \"../../redux/slices/userSlice\";\nimport {disconnected} from \"../../redux/slices/signalrSlice\";\nimport {Link} from \"react-router-dom\";\nimport {DateTime} from \"luxon\";\nimport styled from \"@emotion/styled\";\nimport {OverlayEventDetail} from \"@ionic/react/dist/types/components/react-component-lib/interfaces\";\n\ntype Params = {\n eventcode: string\n id: string;\n};\n\nconst ModalContent = styled.div`\n margin-top: 10px;\n margin-left: 10px;\n margin-right: 10px;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\nconst ItemDetailsPage: React.FC = () => {\n const eventState = useSelector((state: any) => state.event)\n const local = DateTime.local()\n useAuthRefresh();\n\n const getLocalDateString = (dateString) => {\n const centralDate = DateTime.fromISO(dateString,{zone: 'America/Chicago'})\n const localDate = centralDate.setZone(local.zoneName)\n const localDateString = localDate.toString()\n return localDateString\n }\n\n const accountStatus = useSelector((state: any) => state.user.accountstatus);\n useEffect(() => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }, [])\n\n const dispatch = useDispatch();\n const history = useHistory();\n const params = useParams();\n const userId = useSelector((state: any) => state.user.userid);\n const authorizebidder = useSelector((state: any) => state.user.authorizebidder)\n\n history.listen((location, action) => {\n window.scrollTo(0, 0)\n })\n\n const itemArr = useSelector((state: any) =>\n state.auctionItems.auctionitems.filter(\n (item: any) => item.itemid === parseInt(params.id)\n )\n );\n\n const [quantitySelected, setQuantitySelected] = useState(1);\n const item = itemArr[0];\n\n const [listState, setListState] = useState({\n itemDetails: false,\n bidHistory: false,\n });\n\n const [buyItNow, setBuyItNow] = useState(false);\n const [popupBuyItNowCouner, setPopupBuyItNowCounter] = useState(0);\n\n const auctionItemDetailsState = useSelector(\n (state: AppState) => state.auctionItemDetails\n );\n\n const currentBidState = useSelector(\n (state: AppState) => state.auctionItemDetails.currentbid\n );\n\n useEffect(() => {\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, [auctionItemDetailsState.currentbid])\n\n const bidHistoryData = useSelector((state: any) => state.bidHistory);\n\n const stillOpen = item?.closingcst ? moment().diff(moment(getLocalDateString(item.closingcst))) < 0 : true\n var userBidStatus: UserBidStatus = \"default\"\n if (item && auctionItemDetailsState.quantityavailable > 0) {\n if (item.currentlywinningbid && item.accountbiddingon && stillOpen) {\n userBidStatus = \"highBidder\"\n }\n else if (item.currentlywinningbid && item.accountbiddingon && !stillOpen) {\n userBidStatus = \"winner\"\n }\n else if (!item.currentlywinningbid && item.accountbiddingon) {\n userBidStatus = \"losingBidder\"\n }\n }\n\n const calculateTime = (ago: string) => {\n const then: any = moment(ago)\n const now: any = moment()\n const diff = moment.duration(now.diff(then))\n var minutes = Math.floor(diff.minutes())\n var hours = diff.hours()\n var days = diff.days()\n return `${days}d ${hours}h ${minutes}m`;\n };\n\n const closingTime = (closing: string) => {\n const then: any = moment(closing);\n const now: any = moment();\n const diff = moment.duration(then.diff(now));\n var days = Math.floor(diff.asDays());\n var hours = diff.hours();\n var min = diff.minutes()\n if (days < 1) {\n return `${hours}h ${min}m`\n }\n else if (days < 1 && hours < 1 && min < 1) {\n return `1m`\n }\n return `${days}d ${hours}h`;\n };\n\n const calculateBidHistory = () => {\n var num = 0;\n if (item.numberofbids > 0) {\n num = item.numberofbids;\n } else if (bidHistoryData && bidHistoryData.history) {\n num = bidHistoryData.history.length;\n }\n return num;\n };\n\n useEffect(() => {\n /**\n * why do we need this if condition commenting out for now\n */\n // if (parseInt(auctionItemDetailsState.itemid) !== parseInt(params.id)) {}\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, [params.id]);\n\n const toggleListState = (name: any, newVal: boolean) => {\n const { itemDetails, bidHistory } = listState;\n\n if (name === \"itemDetails\") {\n if (newVal === true) {\n if (bidHistory) {\n setListState({ itemDetails: newVal, bidHistory: false });\n } else {\n setListState({ itemDetails: newVal, bidHistory });\n }\n } else {\n setListState({ itemDetails: newVal, bidHistory });\n }\n } else if (name === \"bidHistory\") {\n if (newVal === true) {\n if (itemDetails) {\n setListState({ itemDetails: false, bidHistory: newVal });\n } else {\n setListState({ bidHistory: newVal, itemDetails });\n }\n } else {\n setListState({ bidHistory: newVal, itemDetails });\n }\n }\n };\n\n const placeBid = () => {\n if (item?.quantityavailable > 0 || item?.unlimitedquantity) {\n history.push(\"/\" + params.eventcode + \"/place-bid/\" + params.id );\n }\n };\n\n const logout = () => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n dispatch(updateStateOnLogout())\n const token = localStorage.getItem(\"token\")\n localStorage.removeItem(\"token\")\n dispatch(disconnected())\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n\n history.push('/' + params.eventcode)\n }\n const clickBuyItNow = (e: any) => {\n if (item?.quantityavailable > 0 || item?.unlimitedquantity) {\n e.stopPropagation()\n setBuyItNow(!buyItNow);\n }\n };\n\n const changeQuantitySelected = (e: any) => {\n setQuantitySelected(e.target.value);\n };\n\n const buildQuantityList = () => {\n const arr = [];\n for (let i = 1; i <= calcQuantityAvailableDropdown(auctionItemDetailsState); i++) {\n arr.push(\n \n );\n }\n return arr;\n };\n\n const calcaulateTotal = () => {\n const total = quantitySelected * auctionItemDetailsState.buyitnowprice;\n return (Math.round(total * 100) / 100).toFixed(2);\n };\n\n const getDescription = (item) => {\n if (item.longdescription && item.longdescription.length > 0) {\n return item.longdescription\n }\n else {\n return item.description\n }\n }\n\n const clickPopupBuyItNow = async () => {\n setPopupBuyItNowCounter(popupBuyItNowCouner + 1);\n if (popupBuyItNowCouner === 0) {\n const response = await submitBid({\n itemid: item.itemid,\n userid: userId,\n bid: auctionItemDetailsState.currentbid,\n buyitnow: true,\n quantity: Number(quantitySelected),\n });\n const responseJSON = JSON.parse(response.jsonString)\n dispatch(resetStatus())\n dispatch(resetOrderStatus())\n if (responseJSON && responseJSON.historyid) {\n store.dispatch(\n updateItemDetailsHistoryId({\n itemid: item.itemid,\n historyid: responseJSON.historyid\n })\n )\n }\n }\n }\n\n const calcQuantityAvailable = (auctionItemDetailsState: any) => {\n return auctionItemDetailsState.quantityavailable\n }\n\n const calcQuantityAvailableDropdown = (auctionItemDetailsState: any) => {\n if (item?.unlimitedquantity) {\n return item?.maxpurchasequantity\n }\n else {\n if (auctionItemDetailsState.quantityavailable > item?.maxpurchasequantity && item?.maxpurchasequantity > 0) {\n return item?.maxpurchasequantity\n }\n else {\n return auctionItemDetailsState.quantityavailable\n }\n }\n }\n\n const continueBidding = () => {\n setBuyItNow(false);\n setPopupBuyItNowCounter(0);\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n };\n\n const closePopup = () => {\n setBuyItNow(false);\n setPopupBuyItNowCounter(0);\n };\n\n const onWatchListClick = (itemid: number) => (e: any) => {\n e.stopPropagation();\n dispatch(toggleWatchlistItem({ url: getEndPoint(WATCH_LIST), itemid }));\n };\n\n const onRefreshListClick = (itemid: number) => (e: any) => {\n e.stopPropagation();\n window.location.reload();\n };\n\n const goToCheckout = () => {\n // console.log(auctionItemDetailsState)\n // dispatch(\n // updateAuctionsWon({\n // item: {\n // itemid: auctionItemDetailsState.itemid,\n // historyid: auctionItemDetailsState.historyid,\n // name: auctionItemDetailsState.name,\n // description: auctionItemDetailsState.description,\n // itemnum: auctionItemDetailsState.itemnum,\n // quantity: quantitySelected,\n // amount: auctionItemDetailsState.buyitnowprice,\n // // amount: item.amount,\n // location: \"\",\n // pickinstructions: \"\",\n // checked: true,\n // },\n // })\n // );\n // dispatch(setInitialAuctionsWonChecked());\n //\n // dispatch(\n // setAuctionsWonCheckedItem({\n // id: auctionItemDetailsState.itemid,\n // checked: true,\n // })\n // );\n //\n // // Must reset the cart amount for buy it now of it duplicates the total\n // dispatch(resetTotalAmount({}))\n // dispatch(\n // updateTotalAmount({ id: auctionItemDetailsState.itemid, checked: true })\n // );\n\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n\n // history.push(\"/\" + params.eventcode + \"/checkout-item/\" + auctionItemDetailsState.historyid);\n history.push(\"/\" + params.eventcode + \"/cart\");\n };\n\n interface RefresherEventDetail {\n complete(): void;\n }\n\n const onMaxBid = () => {\n // if (item?.quantityavailable > 0 || item?.unlimitedquantity) {\n history.push(\"/\" + params.eventcode + \"/auto-bid/\" + params.id );\n // }\n }\n\n const handleRefresh = (event: CustomEvent) => {\n\n setTimeout(() => {\n // dispatch(\n // resetItemDetailsState()\n // )\n // dispatch(\n // fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT))\n // )\n // dispatch(\n // fetchAuctionItemDetailsData({\n // url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n // itemId: params.id,\n // })\n // );\n // dispatch(\n // fetchBidHistoryData({\n // url: getEndPoint(BID_HISTORY),\n // itemId: params.id,\n // })\n // );\n \n window.location.reload();\n event.detail.complete();\n }, 1000);\n }\n\n function onWillDismiss(ev: CustomEvent) {\n setBuyItNow(false);\n setPopupBuyItNowCounter(0);\n }\n\n const checkAccountStatus = () => {\n return (auctionItemDetailsState.accountisautobid && userBidStatus !== \"winner\" && userBidStatus === \"highBidder\")\n }\n\n return (\n <>\n \n \n \n \n {item && (\n <>\n \n \n \n {accountStatus !== 'guest' &&\n \n \n \n }\n \n \n \n \n \n\n {/** Name and price row */}\n \n \n \n {auctionItemDetailsState.name}\n \n \n \n 0\n ? \"12px\"\n : \"14px\"\n }\n fontWeight={\n auctionItemDetailsState.quantityavailable > 0\n ? \"300\"\n : \"900\"\n }\n color={\n auctionItemDetailsState.quantityavailable > 0\n ? \"#666666\"\n : \"#000000\"\n }\n textAlign=\"right\"\n >\n {item.bidstatus === \"biddingclosed\"\n ? \"Bidding Closed\"\n : item?.quantityavailable > 0 || item?.unlimitedquantity\n ? closingTime(getLocalDateString(item.closingcst))\n : \"Sold Out\"}\n \n \n \n {auctionItemDetailsState.donatedby &&(\n Donated By: {auctionItemDetailsState.donatedby})}\n \n \n \n {item?.unlimitedquantity === true\n ? \"Unlimited Quantity\"\n : \"\"}\n\n {item?.unlimitedquantity === false\n ? calcQuantityAvailable(auctionItemDetailsState) + \" Available\"\n : \"\"}\n \n \n \n\n {/**Tags Row */}\n \n {item.tags && item.tags.split(\",\").map((tag: any) => (\n \n \n {tag}\n \n \n ))}\n \n\n {/** MISC */}\n\n \n \n \n {auctionItemDetailsState.description}\n \n \n \n\n {/** Group 1 */}\n {!auctionItemDetailsState.buyitnowonly && (\n \n \n \n )}\n\n {/** GROUP 2 */}\n {((auctionItemDetailsState.buyitnowavailable ||\n auctionItemDetailsState.buyitnowonly)) && (\n \n \n \n ${auctionItemDetailsState.buyitnowprice}\n \n \n \n \n {/**/}\n {/* {(auctionItemDetailsState.ispriceless) && (\"Priceless\")}*/}\n {/* {(!auctionItemDetailsState.ispriceless && auctionItemDetailsState.fairmarketvalue > 0) && (*/}\n {/* '$' + auctionItemDetailsState.fairmarketvalue*/}\n {/* )}*/}\n {/**/}\n \n \n )}\n {(auctionItemDetailsState.buyitnowavailable ||\n auctionItemDetailsState.buyitnowonly) && (\n \n \n \n Buy It Now\n \n \n \n \n {/**/}\n {/* Fair Market Value*/}\n {/*\n {/* fontSize=\"12px\"*/}\n {/* color=\"#666666\"*/}\n {/*>*/}\n {/* Fair Market Value*/}\n {/**/}\n \n \n )}\n\n {!checkAccountStatus() && item.buyitnowonly === false && item.bidstatus === \"biddingopen\"\n && authorizebidder && !item.itemisliveonly && (\n \n \n 0\n ? \"100.0\"\n : \"0.55\"\n }\n height=\"45px\"\n >\n Place Bid\n \n \n \n )}\n\n {(!authorizebidder && accountStatus !== 'guest') &&\n \n \n \n Not authorized to bid. Contact the event organizer.\n \n \n \n }\n\n {authorizebidder && item.itemisliveonly && (\n \n \n \n Live Auction\n \n \n \n )}\n\n {checkAccountStatus() && (\n \n \n 0\n ? \"100.0\"\n : \"0.55\"\n }\n height=\"45px\"\n >\n Update Max Bid\n \n \n \n )}\n\n {accountStatus === 'guest' &&\n \n \n \n Log In to Bid\n \n \n \n }\n\n {(auctionItemDetailsState.buyitnowavailable ||\n auctionItemDetailsState.buyitnowonly) && !item.itemisliveonly &&\n auctionItemDetailsState.bidstatus === \"biddingopen\" && authorizebidder && (\n \n \n 0 || item?.unlimitedquantity\n ? \"100.0\"\n : \"0.55\")\n }\n color={\n item.buyitnowonly \n ? \"#ffffff\"\n : \"#C21807\"}\n >\n Buy It Now\n \n \n \n )}\n\n {/** Item Details Grid */}\n \n toggleListState(\"itemDetails\", !listState.itemDetails)\n }\n >\n \n \n \n Item Details\n \n \n \n {!listState.itemDetails && }\n {listState.itemDetails && (\n \n )}\n \n \n {/** Details */}\n {listState.itemDetails && (\n <>\n {auctionItemDetailsState.itemnum &&(\n \n \n \n Item Number\n \n \n \n \n {auctionItemDetailsState.itemnum}\n \n \n \n )}\n \n \n \n Quantity\n \n \n \n \n {item?.unlimitedquantity && (\"Unlimited\")}\n {!item?.unlimitedquantity && (item?.quantityavailable + \" Available\" )}\n \n \n \n\n \n \n \n Closing Time\n \n \n \n \n \n {getLocalDateString(item.closingcst)}\n \n \n \n \n\n {item.location &&(\n \n \n \n Item Location\n \n \n \n \n {item.location}\n \n \n \n )}\n {(auctionItemDetailsState.fairmarketvalue || auctionItemDetailsState.ispriceless) &&\n \n \n \n Fair Market Value\n \n \n \n \n {(auctionItemDetailsState.ispriceless) && (\"Priceless\")}\n {(!auctionItemDetailsState.ispriceless) && (\n '$' + auctionItemDetailsState.fairmarketvalue\n )}\n \n \n \n }\n {/** Description */}\n\n {(item.description?.length > 0 || item.longdescription?.length > 0) && (\n \n \n \n Item Description\n \n \n \n \n {getDescription(item)}\n \n \n \n )}\n \n )}\n \n \n \n \n\n {/** Bid History Grid */}\n \n toggleListState(\"bidHistory\", !listState.bidHistory)\n }\n >\n \n \n \n Bid History\n \n \n \n {!listState.bidHistory && }\n {listState.bidHistory && (\n \n )}\n \n \n {listState.bidHistory && (\n <>\n {bidHistoryData &&\n bidHistoryData.history &&\n bidHistoryData.history.map((item: any) => (\n \n \n \n {item.biddername}\n \n \n \n {calculateTime(getLocalDateString(item.bidtimecst))} ago\n \n \n \n \n \n ${item.amount}\n \n \n \n ))}\n \n )}\n \n \n )}\n \n\n {/*Buy it Now popup */}\n {buyItNow &&\n <>\n {popupBuyItNowCouner < 1 && (\n <>\n onWillDismiss(ev)}>\n \n \n \n \n \n \n How many would you like to buy?\n \n \n \n \n \n \n {auctionItemDetailsState.name}\n \n \n \n \n {item?.unlimitedquantity ? ('Unlimited Quantity')\n : (calcQuantityAvailable(auctionItemDetailsState) + ' Available')}\n \n \n \n\n \n \n \n \n {buildQuantityList()}\n \n \n \n \n \n\n \n \n \n \n Subtotal({quantitySelected})\n \n \n \n \n ${calcaulateTotal()}\n \n \n \n \n\n \n \n \n \n Order Total\n \n \n \n \n \n ${calcaulateTotal()}\n \n \n \n \n \n\n \n \n \n Confirm Purchase\n \n \n \n \n \n \n )}\n {popupBuyItNowCouner === 1 && (\n onWillDismiss(ev)}>\n \n \n \n \n \n Thanks for your purchase\n \n \n \n\n \n \n \n This item has now been added your cart. You can pay for it\n now, or pay for it later.\n \n \n \n\n \n \n \n Continue Bidding\n \n \n \n Go to Cart\n \n \n \n \n \n )}\n \n }\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n \n );\n};\n\nexport default ItemDetailsPage;\n","import styled from \"@emotion/styled\"\nimport {IonCol, IonGrid, IonRefresher, IonRefresherContent, IonRow} from \"@ionic/react\"\nimport React, { useEffect, useState } from \"react\"\nimport {useHistory, useParams} from \"react-router\"\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport ButtonItem from \"../CommonStyles/ButtonItem\"\nimport Text from \"../CommonStyles/Text\"\nimport {IonToast} from \"@ionic/react\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {\n fetchCartData,\n setAllAuctionsChecked,\n setAuctionsWonCheckedItem,\n updateTotalAmount\n} from \"../../redux/slices/cartSlice\"\nimport { CART_ENDPOINT, getEndPoint } from \"../../util/api/enpoints\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {Link} from \"react-router-dom\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\ntype ItemWon = {\n itemid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n}\n\ntype ItemWonList = {\n itemid: number\n historyid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n checked: boolean\n}\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst CartPage: React.FC = () => {\n const eventState = useSelector((state: any) => state.event)\n const { eventcode } = useParams()\n useAuthRefresh()\n\n const history = useHistory()\n const dispatch = useDispatch()\n\n useEffect(() => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0, 0)\n }\n }, [])\n\n const cartState = useSelector((state: any) => state.cart)\n\n useEffect(() => {\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n }, [cartState.status])\n\n useEffect(() => {\n if (cartState.status === \"success\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n }, [])\n\n useEffect(() => {\n if (cartState.auctionswon && cartState.auctionswon.length > 0) {\n if (cartState.auctionsWonChecked === null) {\n dispatch(setAllAuctionsChecked())\n }\n }\n }, [cartState])\n\n const handleCheckboxChange = (e: any) => {\n const historyid = parseInt(e.target.id)\n dispatch(setAuctionsWonCheckedItem({ historyid, checked: e.target.checked }))\n dispatch(updateTotalAmount({ historyid, checked: e.target.checked }))\n }\n\n const calcAmountWon = (itemsWon: any) => {\n var wonAmount = 0\n itemsWon?.forEach((item: ItemWon) => {\n wonAmount += item.amount * item.quantity\n })\n return wonAmount\n }\n\n const calcChecked = () => {\n var wonAmount = 0\n cartState.auctionsWonChecked.forEach((item: ItemWonList) => {\n if (item.checked) {\n wonAmount += item.amount * item.quantity\n }\n })\n return wonAmount\n }\n\n /** Depends on where are we showing checked items */\n const calcOpenBids = (itemsWon: any) => {\n return cartState.auctionsopen ? cartState.auctionsopen.length : 0\n }\n const [toastObj, setToast] = useState({ display: false, message: '', goBack: false });\n\n const goToBids = () => {\n console.log(cartState)\n var items = cartState.auctionsWonChecked?.filter(\n (item) => { \n console.log(item);\n return item.checked}\n )\n // history.push(\"/open-bids\")\n if(items.length > 0) {\n localStorage.setItem('cartitems', JSON.stringify(items));\n history.push(\"/\" + eventcode + \"/checkout/1\")\n }\n else {\n setToast({ display: true, message: 'Please select at least one item to checkout.', goBack: false })\n }\n }\n\n const formattedLine = (item: any) => {\n const formStr = (item.itemnum && item.itemnum.length > 0) ?\n \"#\" + item.itemnum + \", Qty\" + item.quantity :\n \"Qty\" + item.quantity\n return formStr\n }\n\n interface RefresherEventDetail {\n complete(): void;\n }\n\n const handleRefresh = (event: CustomEvent) => {\n setTimeout(() => {\n // Any calls to load data go here\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n event.detail.complete();\n }, 1000);\n }\n\n return (\n <>\n \n \n \n \n \n My Cart\n \n \n \n \n {cartState.auctionsWonChecked && cartState.auctionsWonChecked.length > 0 && cartState.status === 'success' ? (\n <>\n \n \n \n Items Won ({cartState.auctionsWonChecked.length})\n \n \n ${calcAmountWon(cartState.auctionsWonChecked)}\n \n \n \n \n \n \n {/** Do we need this button and if yes where do we render open items */}\n {/* \n View Your {calcOpenBids(cartState.auctionsWonChecked)} Open\n Bids\n */}\n \n \n \n {cartState.gemisvalid &&\n \n \n \n \n Proceed To Checkout\n \n \n \n \n }\n\n {cartState.auctionsWonChecked.map((item: ItemWonList) => {\n return (\n \n \n \n
\n \n
\n
\n \n
\n \n {item.name}\n \n
\n
\n \n
\n \n ${item.amount}\n \n
\n
\n
\n \n \n \n {formattedLine(item)}\n \n \n \n
\n )\n })}\n \n \n \n Selected for checkout (\n {\n cartState.auctionsWonChecked.filter(\n (obj: ItemWonList) => obj.checked === true\n ).length\n }\n /{cartState.auctionsWonChecked.length} Items):\n \n \n ${calcChecked()}\n \n \n \n \n ) :\n <>\n Your cart is empty.\n Items won will show up here once bidding closes or the Buy It Now option is used.\n \n }\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n \n )\n}\nexport default CartPage\n","import React, { useEffect, useState, useRef } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {useHistory, useParams} from 'react-router'\nimport {getEndPoint} from '../../util/api/enpoints'\n\nimport { sendUserInfo, updateUserInfo } from '../../redux/slices/userSlice'\nimport PageBodyContainer from '../CommonStyles/PageBodyContainer'\nimport styled from '@emotion/styled'\nimport InputsContainer from '../CommonStyles/InputsContainer'\nimport Form from '../CommonStyles/Form'\nimport Label from '../CommonStyles/Label'\nimport Button from '../CommonStyles/Button'\nimport useFormFields from '../../hooks/FormField'\nimport { getURL } from '../../constants'\nimport Text from '../CommonStyles/Text'\nimport { Link } from 'react-router-dom'\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {fetchEventData, setForceLogout} from \"../../redux/slices/eventSlice\";\nimport store from \"../../redux/store\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n`\nconst validatePassword = (password: string) => {\n const errors = []\n\n if (password.length < 6) {\n errors.push('Password should be at least 5 charcters long')\n }\n\n return errors\n}\n\nconst Input = styled('input')`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst LoginPage: React.FC = () => {\n // const eventState = useSelector((state: any) => state.event)\n const { eventcode } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n const email = useSelector((state: any) => state.user.email)\n const event = useSelector((state: any) => state.event)\n const signalrState = useSelector((state: any) => state.signalr)\n const [errors, setErrors] = useState([])\n\n // if no email punt to events page\n if (!email || email.length <= 0) {\n history.push('/' + eventcode)\n }\n\n const userAccountStatus = useSelector(\n (state: any) => state.user.accountstatus\n )\n const userAccountSetupComplete = useSelector(\n (state: any) => state.user.accountSetupComplete\n )\n\n const { formFields, createChangeHandler } = useFormFields({\n password: ''\n })\n\n const passwordInputRef = useRef()\n\n useEffect(() => {\n if (passwordInputRef.current) {\n passwordInputRef.current.focus()\n }\n store.dispatch(setForceLogout(false))\n })\n\n useEffect(() => {\n if (signalrState.connected) {\n if (userAccountStatus === 'notverified') {\n history.push('/' + eventcode + '/verify-email')\n } else {\n if (userAccountSetupComplete) {\n history.push('/' + eventcode + '/welcome/')\n } else {\n history.push('/' + eventcode + '/setup-account')\n }\n }\n }\n }, [signalrState, userAccountStatus, userAccountSetupComplete, history])\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n\n const password: string = formFields.password\n // const passwordErrors = validatePassword(password)\n\n // if (passwordErrors.length > 0) {\n // setErrors(() => passwordErrors)\n // } else {\n // setErrors([])\n // }\n\n // if (passwordErrors.length <= 0) {\n const url = getEndPoint('LOGIN_URL')\n const userInfo = {\n url,\n password,\n email,\n eventcode: event.eventcode,\n auctioncode: event.auctioncode\n }\n try {\n const response: any = await dispatch(sendUserInfo(userInfo))\n if (response.error) {\n throw new Error('Internal server Error')\n }\n else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonInfo)\n if (responseJSON.status === 'success') {\n setErrors([])\n const token = responseJSON.token\n const accountstatus = responseJSON.accountstatus\n const bidderdisplaynumber = responseJSON.bidderdisplaynumber\n const setup = responseJSON.setupcomplete\n const userid = responseJSON.userid\n if (localStorage.getItem('token')) {\n localStorage.removeItem('token')\n }\n localStorage.setItem('token', token)\n dispatch(\n updateUserInfo({\n accountstatus,\n accountSetupComplete: setup,\n userid,\n firstname: responseJSON.firstname,\n lastname: responseJSON.lastname,\n authorizebidder: responseJSON.authorizebidder,\n bidderdisplaynumber: responseJSON.bidderdisplaynumber,\n isLoggedIn: true,\n notifications: responseJSON.notifications,\n eventcode: userInfo.eventcode,\n auctioncode: userInfo.auctioncode\n })\n )\n // dispatch({\n // type: \"CONNECT_SIGNALR\",\n // payload: {\n // url: getURL(),\n // token\n // }\n // })\n dispatch({\n type: 'TOKEN_CONNECT',\n payload: {\n url: getURL(),\n token: token\n }\n })\n console.log(localStorage.getItem('token'))\n console.log('finish')\n }\n else if (responseJSON.status === 'failure') {\n setErrors([responseJSON.message])\n }\n }\n } catch (err) {\n console.log(err)\n }\n // }\n }\n\n return (\n <>\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n {errors.length > 0 &&\n errors.map((err) =>
Error : {err}
)}\n \n \n \n \n Forgot Password?\n \n \n \n
\n
\n\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n \n )\n}\n\nexport default LoginPage\n","import styled from \"@emotion/styled\"\nimport {IonCol, IonGrid, IonRow, IonToggle} from \"@ionic/react\"\nimport React, { useEffect, useState } from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {Link, useHistory} from \"react-router-dom\"\nimport Text from \"../CommonStyles/Text\"\nimport {getEndPoint, USER_PROFILE} from \"../../util/api/enpoints\"\nimport ButtonItem from \"../CommonStyles/ButtonItem\";\nimport {updateStateOnLogout, updateUserProfile, useUserInfo} from \"../../redux/slices/userSlice\";\nimport jwt_decode from \"jwt-decode\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {disconnected} from \"../../redux/slices/signalrSlice\";\nimport {useParams} from \"react-router\";\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst PageContainer = styled.div`\n height: 100%;\n width: 100%;\n overflow-y: scroll;\n padding: 0 5px;\n`\nconst LinkText = styled.text`\ncursor: pointer;\nfontSize: 16px; \npadding: 18px; \ncolor: #4C4C4C\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst MyAccount = () => {\n const { eventcode } = useParams()\n useAuthRefresh();\n\n const history = useHistory()\n const dispatch = useDispatch()\n const user = useUserInfo()\n const eventState = useSelector((state: any) => state.event)\n\n const onToggleChange = (name) => (e) => {\n const url = getEndPoint(USER_PROFILE);\n dispatch(updateUserProfile({ ...user, bidanonymously:e?.target?.checked, ...user.notifications, url }));\n };\n\n const logUserOut = () => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n dispatch(updateStateOnLogout())\n const token = localStorage.getItem(\"token\")\n localStorage.removeItem(\"token\")\n dispatch(disconnected())\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n\n history.push('/' + eventcode)\n }\n\n const onResetPassword = () => {\n history.push('/' + eventcode + '/reset-password-account')\n }\n\n const onNotifications = () => {\n history.push('/' + eventcode + '/account-notifications')\n }\n\n const onEditProfile = () => {\n history.push('/' + eventcode + '/account-profile')\n }\n\n const onContact = () => {\n history.push('/' + eventcode + '/contact-us')\n }\n\n return (\n <>\n \n \n My Account\n \n \n \n \n \n \n \n Edit My Profile\n \n \n \n \n \n \n Reset Password\n \n \n \n {/*eventallowanonymousbidding*/}\n {(eventState.eventallowanonymousbidding) && (\n \n \n \n Bid Anonymously\n \n \n \n \n \n \n )}\n\n \n \n \n Notifications\n \n \n \n\n \n \n \n Contact Us\n \n \n \n {/**/}\n {/* */}\n {/* Log Out*/}\n {/* */}\n {/**/}\n \n \n )\n}\n\nexport default MyAccount\n","import styled from \"@emotion/styled\"\nimport \"../Checkout/iframe.css\"\nimport {IonCol, IonGrid, IonRefresher, IonRefresherContent, IonRow} from \"@ionic/react\"\nimport React, { useEffect, useState } from \"react\"\nimport { useDispatch } from \"react-redux\"\nimport { Link } from \"react-router-dom\"\nimport IconAdd from \"../../components/Icons/IconAdd\"\nimport IconRemove from \"../../components/Icons/IconRemove\"\nimport Text from \"../CommonStyles/Text\"\nimport { useSelector } from \"react-redux\"\nimport {\n fetchCartData,\n setInitialAuctionsWonChecked\n} from \"../../redux/slices/cartSlice\"\nimport {AUCTION_ITEMS_ENDPOINT, CART_ENDPOINT, getEndPoint, ORDERS_ENDPOINT} from \"../../util/api/enpoints\"\nimport { fetchOrdersData } from \"../../redux/slices/ordersSlice\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {Route} from \"react-router\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {fetchAuctionItemsData} from \"../../redux/slices/auctionItemsSlice\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst PageContainer = styled.div`\n height: 100%;\n width: 100%;\n overflow-y: scroll;\n padding: 0 5px;\n`\n\n\nconst MyOrders = () => {\n useAuthRefresh();\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n const dispatch = useDispatch()\n const [openItemId, setOpenItemId] = useState(null)\n const cartState = useSelector((state: any) => state.cart)\n const ordersState = useSelector((state: any) => state.orders)\n const eventState = useSelector((state: any) => state.event)\n\n useEffect(() => {\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n }, [dispatch, cartState.status])\n\n useEffect(() => {\n if (cartState.auctionswon && cartState.auctionswon.length) {\n if (cartState.auctionsWonChecked === null) {\n dispatch(setInitialAuctionsWonChecked())\n }\n }\n }, [cartState, dispatch])\n\n\n useEffect(() => {\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n }, [dispatch, cartState.status])\n\n\n useEffect(() => {\n if (ordersState.status === \"idle\") {\n dispatch(fetchOrdersData(getEndPoint(ORDERS_ENDPOINT)))\n }\n }, [dispatch, ordersState.status])\n\n const openItem = (id: number) => {\n if (id === openItemId) {\n setOpenItemId(null)\n } else {\n setOpenItemId(id)\n }\n }\n // console.log(ordersState)\n\n\n interface RefresherEventDetail {\n complete(): void;\n }\n\n const handleRefresh = (event: CustomEvent) => {\n setTimeout(() => {\n // Any calls to load data go here\n if (ordersState.status === \"idle\") {\n dispatch(fetchOrdersData(getEndPoint(ORDERS_ENDPOINT)))\n }\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n event.detail.complete();\n }, 1000);\n }\n\n return (\n \n \n \n \n \n \n My Orders\n \n \n \n {(ordersState?.orderitems?.length < 1 && ordersState?.status === 'success') && (\n <>\n You have no completed purchases.\n After checkout, your purchase history will be displayed here.\n \n )}\n\n {ordersState.orderitems.map((item: any) => (\n \n openItem(item.checkoutid)}\n >\n \n \n \n {item.name}\n \n \n {/**/}\n {/* {openItemId !== item.checkoutid && (*/}\n {/* */}\n {/* )}*/}\n {/* {openItemId === item.checkoutid && (*/}\n {/* */}\n {/* )}*/}\n {/**/}\n \n {/*{openItemId === item.checkoutid && (*/}\n <>\n \n \n \n Pickup Instructions\n \n \n \n \n {item.pickupinstructions}\n \n \n \n\n {(item.itemnum && item.itemnum.length > 0) && (\n \n \n \n Item Number\n \n \n \n \n {item.itemnum}\n \n \n \n )}\n\n \n \n \n Quantity\n \n \n \n \n {item.quantity}\n \n \n \n\n \n \n \n Price\n \n \n \n \n ${item.amount}\n \n \n \n\n {(item.location && item.location.length > 0) && (\n \n \n \n Item Location\n \n \n \n \n {item.location}\n \n \n \n )}\n\n \n \n \n View Item's Detail Page\n \n \n \n \n {/*)}*/}\n \n \n ))}\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy 432\n \n
\n
\n
\n )\n}\n\nexport default MyOrders\n","import styled from \"@emotion/styled\"\nimport { IonCol, IonGrid, IonRow } from \"@ionic/react\"\nimport React, { useEffect, useState } from \"react\"\nimport {useHistory, useParams} from \"react-router\"\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport ButtonItem from \"../CommonStyles/ButtonItem\"\nimport Text from \"../CommonStyles/Text\"\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\n\nconst PageContainer = styled.div`\n height: 100%;\n width: 100%;\n overflow-y: auto;\n`\nconst Span = styled.span`\n padding-left: 0.5em;\n`\ntype ItemOpen = {\n itemid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n}\n\ntype ItemOpenList = {\n itemid: number\n name: string\n description: string\n itemnum: string\n quantity: number\n amount: number\n location: string\n pickinstructions: string\n checked: boolean\n}\nconst fakeOpenItems = [\n {\n itemid: 32,\n name: \"name\",\n description: \"description\",\n itemnum: \"customer item #\",\n quantity: 1,\n amount: 200.0,\n location: \"Table 1\",\n pickinstructions: \"something\"\n },\n {\n itemid: 24,\n name: \"name\",\n description: \"description\",\n itemnum: \"customer item #\",\n quantity: 1,\n amount: 200.0,\n location: \"Table 1\",\n pickinstructions: \"something\"\n },\n {\n itemid: 25,\n name: \"name\",\n description: \"description\",\n itemnum: \"customer item #\",\n quantity: 1,\n amount: 200.0,\n location: \"Table 1\",\n pickinstructions: \"something\"\n },\n {\n itemid: 26,\n name: \"name\",\n description: \"description\",\n itemnum: \"customer item #\",\n quantity: 1,\n amount: 200.0,\n location: \"Table 1\",\n pickinstructions: \"something\"\n },\n {\n itemid: 27,\n name: \"name\",\n description: \"description\",\n itemnum: \"customer item #\",\n quantity: 1,\n amount: 200.0,\n location: \"Table 1\",\n pickinstructions: \"something\"\n }\n]\n\ninterface Params {\n eventcode: string\n}\n\nconst OpenBids = () => {\n const { eventcode } = useParams()\n useAuthRefresh();\n const history = useHistory()\n const [itemsOpen, setItemsOpen] = useState([])\n const [itemsOpenList, setItemsOpenList] = useState([])\n const [itemSelectCount, setItemSelectCount] = useState(0)\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n useEffect(() => {\n setTimeout(() => {\n setItemsOpen(fakeOpenItems)\n }, 3000)\n }, [])\n\n useEffect(() => {\n if (itemsOpen && itemsOpen.length) {\n const newList = itemsOpen.map((item) => ({ ...item, checked: false }))\n setItemsOpenList(newList)\n }\n }, [itemsOpen])\n\n const goToCheckout = () => {\n history.push(\"/\" + eventcode + \"/checkout\")\n }\n\n const handleCheckboxChange = (e: any) => {\n const id = parseInt(e.target.id)\n const checked = e.target.checked\n const newList = itemsOpenList.map((item) => {\n if (item.itemid === id) {\n if (checked) {\n setItemSelectCount(itemSelectCount + 1)\n } else {\n setItemSelectCount(itemSelectCount - 1)\n }\n return {\n ...item,\n checked\n }\n } else {\n return item\n }\n })\n setItemsOpenList(newList)\n }\n return (\n \n {itemsOpenList && itemsOpenList.length > 0 && (\n <>\n \n \n \n Proceed To Checkout\n \n \n \n {itemsOpenList.map((item) => {\n return (\n \n \n \n \n \n \n \n \n \n \n $888888\n \n \n \n \n \n \n \n #8888, Qty 1\n \n \n \n \n )\n })}\n \n \n \n Selected for Checkout ({itemSelectCount}/{itemsOpenList.length}\n ):\n \n \n $8888888\n \n \n \n \n )}\n \n )\n}\n\nexport default OpenBids\n","import React from \"react\"\n\nconst IconMinus = () => {\n return (\n \n \n \n )\n}\n\nexport default IconMinus\n","import React from \"react\"\n\nconst IconPlus = () => {\n return (\n \n \n \n \n \n )\n}\n\nexport default IconPlus\n","import { useState } from \"react\"\n\nconst useCounter = (initCount: any = 0) => {\n const [count, setCount] = useState(initCount)\n return [count, setCount]\n}\n\nexport { useCounter }\n","import './styles.css'\n\nimport React, {useEffect, useState} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\n\nimport styled from '@emotion/styled'\nimport {\n IonBackdrop,\n IonCol,\n IonGrid,\n IonModal,\n IonRow,\n IonToast,\n IonToggle\n} from '@ionic/react'\n\nimport IconMinus from '../../components/Icons/IconMinus'\nimport IconPlus from '../../components/Icons/IconPlus'\nimport { useCounter } from '../../hooks/useCounter'\nimport { submitBid } from '../../util/api/submitBid'\nimport ButtonItem from '../CommonStyles/ButtonItem'\nimport Text from '../CommonStyles/Text'\nimport {resetStatus} from \"../../redux/slices/cartSlice\";\nimport {resetOrderStatus} from \"../../redux/slices/ordersSlice\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {fetchAuctionItemDetailsData, resetItemDetailsState} from \"../../redux/slices/auctionItemDetailsSlice\";\nimport {AUCTION_ITEM_DETAIL_ENDPOINT, BID_HISTORY, getEndPoint} from \"../../util/api/enpoints\";\nimport {fetchBidHistoryData} from \"../../redux/slices/bidHistorySlice\";\nimport {useParams} from \"react-router\";\nimport {updateAutoBid, updateItemMaxBid, updateItemOnBid} from \"../../redux/slices/auctionItemsSlice\";\nimport store from \"../../redux/store\";\n\nconst PageContainer = styled.div`\n height: 100%;\n width: 100%;\n overflow-y: auto;\n`\n\nconst BidContainer = styled.div`\n height: 106px;\n background-color: #ffffff;\n width: 100%;\n filter: drop-shadow(0px 2px 5px #00000024);\n box-sizing: border-box;\n border-radius: 10px;\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\nconst NumberInput = styled.input`\n height: 100%;\n width: 100%;\n background: none;\n font-size: 36px; \n font-weight: 800;\n text-align: center;\n border: none;\n`\n\ntype ButtonContainerProps = {\n applyFilter: boolean\n opacity: number\n}\n\nconst ButtonContainer = styled.div`\n height: 36px;\n width: 36px;\n background-color: #d2222d;\n border-radius: 10px;\n filter: ${(props) =>\n props.applyFilter ? 'drop-shadow(0px 2px 5px #00000080)' : 'none'};\n opacity: ${(props) => props.opacity};\n`\n\ntype Params = {\n eventcode: string;\n id: string;\n};\n\nconst PlaceBid: React.FC = ({ history }) => {\n const { eventcode } = useParams()\n useAuthRefresh();\n const params = useParams();\n const dispatch = useDispatch()\n const itemDetails = useSelector((state: any) => state.auctionItemDetails)\n\n\n\n useEffect(() => {\n /**\n * why do we need this if condition commenting out for now\n */\n // if (parseInt(auctionItemDetailsState.itemid) !== parseInt(params.id)) {}\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, [params.id]);\n\n const auctionItem = useSelector((state: any) =>\n state.auctionItems.auctionitems.find(\n (item: any) => item.itemid === parseInt(itemDetails.itemid)\n )\n )\n\n useEffect(() => {\n console.log(itemDetails)\n if (!maximumBid) {\n setCurrentLocalBid(itemDetails.currentbid + itemDetails.minimumbidincrease)\n\n if (!currentDisplayLocalBid) {\n setCurrentDisplayLocalBid(itemDetails.currentbid + itemDetails.minimumbidincrease)\n }\n }\n\n if (itemDetails?.accountautobidincrement < itemDetails?.minimumbidincrease && desiredBidIncrement < itemDetails?.minimumbidincrease) {\n setDesiredBidIncrement(itemDetails?.minimumbidincrease)\n }\n else {\n if (itemDetails.minimumbidincrease > 1) {\n setDesiredBidIncrement(itemDetails.minimumbidincrease)\n }\n else {\n setDesiredBidIncrement(1)\n }\n\n }\n\n if (!desiredBidIncrement) {\n // Scotty\n // setDesiredBidIncrement(itemDetails?.minimumbidincrease)\n setMaximumBid(currentDisplayLocalBid)\n }\n }, [auctionItem, itemDetails])\n\n useEffect(() => {\n /**\n * why do we need this if condition commenting out for now\n */\n // if (parseInt(auctionItemDetailsState.itemid) !== parseInt(params.id)) {}\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, []);\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n const userId = useSelector((state: any) => state.user.userid)\n\n const biddingPrice = (\n lastBid: number,\n startingBid: number,\n numberOfBids: number\n ) => {\n var firstBidPrice = lastBid\n if (numberOfBids === 0 && startingBid > 0) {\n firstBidPrice = startingBid\n } else {\n firstBidPrice = itemDetails.currentbid + itemDetails.minimumbidincrease\n }\n\n return firstBidPrice\n }\n\n const [currentLocalBid, setCurrentLocalBid] = useCounter(\n biddingPrice(\n itemDetails.currentbid,\n auctionItem?.startingbid,\n auctionItem?.numberofbids\n )\n )\n const [currentDisplayLocalBid, setCurrentDisplayLocalBid] = useCounter(\n biddingPrice(\n itemDetails.currentbid,\n auctionItem?.startingbid,\n auctionItem?.numberofbids\n )\n )\n const [bidAutomatically, setBidAutomatically] = useState(false)\n const [maximumBid, setMaximumBid] = useCounter(\n biddingPrice(\n itemDetails.currentbid,\n auctionItem?.startingbid,\n auctionItem?.numberofbids\n )\n )\n\n const [desiredBidIncrement, setDesiredBidIncrement] = useCounter(1)\n const [modalState, setModalState] = useState({\n display: false,\n header: '',\n message: '',\n goBack: false\n })\n\n const [toastState, setToastState] = useState({\n display: false,\n message: '',\n goBack: false\n })\n\n const bidHistoryData = useSelector((state: any) => state.bidHistory)\n const minimumBidToMake = itemDetails.numberofbids ? itemDetails.currentbid + itemDetails.minimumbidincrease : itemDetails.currentbid\n const increaseBid = () => {\n setCurrentDisplayLocalBid(currentLocalBid + itemDetails.minimumbidincrease)\n setCurrentLocalBid(currentLocalBid + itemDetails.minimumbidincrease)\n }\n const decreaseBid = () => {\n const newLocalBid = currentLocalBid - itemDetails.minimumbidincrease\n if (newLocalBid <= itemDetails.currentbid) {\n setCurrentDisplayLocalBid(\n itemDetails.currentbid + itemDetails.minimumbidincrease\n )\n setCurrentLocalBid(\n itemDetails.currentbid + itemDetails.minimumbidincrease\n )\n } else {\n setCurrentDisplayLocalBid(newLocalBid)\n setCurrentLocalBid(newLocalBid)\n }\n }\n\n const onCurrentBidChange = (e) => {\n const { value } = e.target\n if(value > 1000000){\n setCurrentDisplayLocalBid(1000000)\n setCurrentLocalBid(1000000)\n return\n }\n if (value === \"\") {\n setCurrentDisplayLocalBid('')\n return setCurrentLocalBid('')\n }\n setCurrentDisplayLocalBid(Math.round(Number(value) * 100) / 100)\n setCurrentLocalBid(Math.round(Number(value) * 100) / 100)\n }\n\n const changeBidAutomatically = (e: any) => {\n const checked = e.detail.checked\n setBidAutomatically(checked)\n }\n\n const increaseMaximumBid = () => {\n if (itemDetails.minimumbidincrease > 1) {\n setMaximumBid(maximumBid + itemDetails.minimumbidincrease)\n }\n else {\n setMaximumBid(maximumBid + 1)\n }\n }\n\n const decreaseMaximumBid = () => {\n const newMaxBid = maximumBid - itemDetails.minimumbidincrease\n if (\n newMaxBid + itemDetails.minimumbidincrease <=\n itemDetails.currentbid + itemDetails.minimumbidincrease\n ) {\n setMaximumBid(itemDetails.currentbid + itemDetails.minimumbidincrease)\n } else {\n setMaximumBid(newMaxBid)\n }\n }\n\n const onMaximumBidChange = (e) => {\n console.log('click')\n const { value } = e.target\n if (value === \"\") {\n return setMaximumBid('')\n }\n setMaximumBid(Math.round(Number(value) * 100) / 100)\n }\n\n const increaseDesiredBidIncrement = () => {\n var bidIncrease = 1\n if (itemDetails.minimumbidincrease > 0) {\n bidIncrease = itemDetails.minimumbidincrease\n }\n\n const newAmt = desiredBidIncrement + bidIncrease\n setDesiredBidIncrement(newAmt)\n }\n\n const decreaseDesiredBidIncrement = () => {\n const newDesiredBid = desiredBidIncrement - itemDetails.minimumbidincrease\n // if (newDesiredBid <= auctionItem?.accountautobidincrement ?? itemDetails.minimumbidincrease) {\n if (newDesiredBid < itemDetails.minimumbidincrease) {\n setDesiredBidIncrement(itemDetails.minimumbidincrease)\n } else {\n setDesiredBidIncrement(newDesiredBid)\n }\n }\n\n const onDesiredBidIncrementChange = (e) => {\n const { value } = e.target\n if (value === \"\") {\n return setDesiredBidIncrement('')\n }\n setDesiredBidIncrement(Math.round(Number(value) * 100) / 100)\n }\n\n const handleSubmitBid = async (e: any) => {\n e.preventDefault()\n if (Number(currentLocalBid) < Number(minimumBidToMake)) {\n // setModalState({ display: true, header: '', message: `Please adjust the bid amount. The minimum bid for this item is $${minimumBidToMake}.`, goBack: false })\n // return\n return setToastState({ display: true, message: `Please adjust the bid amount. The minimum bid for this item is $${minimumBidToMake}.`, goBack: false })\n }\n if (bidAutomatically) {\n if (maximumBid < minimumBidToMake) {\n return setToastState({ display: true, message: `Maximum bid price must be at least $${minimumBidToMake}`, goBack: false })\n }\n if (itemDetails?.minimumbidincrease && desiredBidIncrement < itemDetails?.minimumbidincrease) {\n return setToastState({ display: true, message: `Desired bid increment must be at least $${itemDetails?.minimumbidincrease}`, goBack: false })\n }\n }\n \n\n const response = await submitBid({\n itemid: itemDetails.itemid,\n userid: userId,\n bid: currentLocalBid,\n buyitnow: false,\n autobid: bidAutomatically,\n maxbid: maximumBid,\n increment: desiredBidIncrement\n })\n\n const responseJSON = JSON.parse(response.jsonString)\n if (responseJSON.message.length === 0) {\n // setModalState({\n // display: true,\n // header: 'Thank you for bidding!',\n // message: 'Congratulations! You are the high bidder.',\n // goBack: true\n // })\n\n // setTimeout(() => {\n history.push(`/${eventcode}/auction-items/${itemDetails.itemid}`)\n // }, 3000)\n }\n else {\n setModalState({ display: true, header: 'Thank you for bidding!', message: responseJSON.message, goBack: false })\n\n setTimeout(() => {\n setModalState({\n display: false,\n header: '',\n message: responseJSON.message,\n goBack: false\n })\n history.push(`/${eventcode}/auction-items/${itemDetails.itemid}`)\n // dispatch(resetStatus)\n // dispatch(resetOrderStatus)\n }, 3000)\n }\n }\n\n return (\n <>\n {itemDetails && (\n \n \n \n \n

{modalState.header}

\n

{modalState.message}

\n
\n
\n setToastState({\n display: false,\n message: '',\n goBack: false\n })}\n message={toastState.message}\n cssClass={'custom-toast'}\n duration={3000}\n />\n \n \n \n \n {itemDetails.name}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Current Bid: ${itemDetails.currentbid}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n\n {auctionItem?.allowautobid && (\n \n \n \n \n \n Bid Automatically\n \n \n )}\n\n {bidAutomatically && auctionItem?.allowautobid && (\n <>\n \n \n \n \n \n \n itemDetails?.currentbid\n ? 1\n : 0.5\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Your Maximum Bid\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Desired Bid Increment\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n )}\n \n \n Place Bid\n \n \n \n
\n )}\n \n )\n}\n\nexport default PlaceBid\n","import {getEndPoint, SUBMIT_MAX_BID} from \"./enpoints\"\nimport { client } from \"./fetchData\"\n\ntype maxItemDetails = {\n itemid: number\n maxbid?: number\n increment?: number\n}\n\nexport const submitMaxBid = (itemDetails: maxItemDetails) => {\n const token = localStorage.getItem(\"token\")\n console.log(itemDetails)\n return client.post(getEndPoint(SUBMIT_MAX_BID), itemDetails, {\n headers: {\n Authorization: \"Bearer \" + token\n }\n })\n}\n\n","import './styles.css'\n\nimport React, {useEffect, useState} from 'react'\nimport {useDispatch, useSelector} from 'react-redux'\n\nimport styled from '@emotion/styled'\nimport {\n IonBackdrop,\n IonCol,\n IonGrid,\n IonModal,\n IonRow,\n IonToast,\n IonToggle\n} from '@ionic/react'\n\nimport IconMinus from '../../components/Icons/IconMinus'\nimport IconPlus from '../../components/Icons/IconPlus'\nimport { useCounter } from '../../hooks/useCounter'\nimport ButtonItem from '../CommonStyles/ButtonItem'\nimport Text from '../CommonStyles/Text'\nimport {resetStatus} from \"../../redux/slices/cartSlice\";\nimport {resetOrderStatus} from \"../../redux/slices/ordersSlice\";\nimport {useAuthRefresh} from \"../../hooks/authenicationHook\";\nimport {fetchAuctionItemDetailsData, resetItemDetailsState} from \"../../redux/slices/auctionItemDetailsSlice\";\nimport {AUCTION_ITEM_DETAIL_ENDPOINT, BID_HISTORY, getEndPoint} from \"../../util/api/enpoints\";\nimport {fetchBidHistoryData} from \"../../redux/slices/bidHistorySlice\";\nimport {useParams} from \"react-router\";\nimport {submitMaxBid} from \"../../util/api/submitMaxBid\";\nimport {updateAutoBid, updateItemMaxBid} from \"../../redux/slices/auctionItemsSlice\";\nimport store from \"../../redux/store\";\nimport {current} from \"@reduxjs/toolkit\";\n\nconst PageContainer = styled.div`\n height: 100%;\n width: 100%;\n overflow-y: auto;\n`\n\nconst BidContainer = styled.div`\n height: 106px;\n background-color: #ffffff;\n width: 100%;\n filter: drop-shadow(0px 2px 5px #00000024);\n box-sizing: border-box;\n border-radius: 10px;\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\nconst NumberInput = styled.input`\n height: 100%;\n width: 100%;\n background: none;\n font-size: 36px; \n font-weight: 800;\n text-align: center;\n border: none;\n`\n\ntype ButtonContainerProps = {\n applyFilter: boolean\n opacity: number\n}\n\nconst ButtonContainer = styled.div`\n height: 36px;\n width: 36px;\n background-color: #d2222d;\n border-radius: 10px;\n filter: ${(props) =>\n props.applyFilter ? 'drop-shadow(0px 2px 5px #00000080)' : 'none'};\n opacity: ${(props) => props.opacity};\n`\n\ntype Params = {\n eventcode: string;\n id: string;\n};\n\nconst AutoBid: React.FC = ({ history }) => {\n const { eventcode } = useParams()\n useAuthRefresh()\n const params = useParams()\n const dispatch = useDispatch()\n const itemDetails = useSelector((state: any) => state.auctionItemDetails)\n const [desiredBidIncrement, setDesiredBidIncrement] = useCounter(1)\n const userId = useSelector((state: any) => state.user.userid)\n\n useEffect(() => {\n /**\n * why do we need this if condition commenting out for now\n */\n // if (parseInt(auctionItemDetailsState.itemid) !== parseInt(params.id)) {}\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, [params.id]);\n\n const auctionItem = useSelector((state: any) =>\n state.auctionItems.auctionitems.find(\n (item: any) => item.itemid === parseInt(itemDetails.itemid)\n )\n )\n\n useEffect(() => {\n if (!maximumBid) {\n setCurrentLocalBid(itemDetails?.currentBid + itemDetails?.minimumbidincrease)\n setMaximumBid(itemDetails?.currentBid + itemDetails?.minimumbidincrease)\n }\n\n if (itemDetails?.accountautobidincrement < itemDetails?.minimumbidincrease && desiredBidIncrement < itemDetails?.minimumbidincrease) {\n setDesiredBidIncrement(itemDetails?.minimumbidincrease)\n }\n else {\n setDesiredBidIncrement(itemDetails?.accountautobidincrement)\n }\n\n if (!desiredBidIncrement) {\n // setDesiredBidIncrement(itemDetails?.accountautobidincrement)\n setMaximumBid(itemDetails?.accountautobidamount)\n }\n }, [auctionItem, itemDetails])\n\n useEffect(() => {\n /**\n * why do we need this if condition commenting out for now\n */\n // if (parseInt(auctionItemDetailsState.itemid) !== parseInt(params.id)) {}\n dispatch(\n resetItemDetailsState()\n )\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: params.id,\n })\n );\n dispatch(\n fetchBidHistoryData({\n url: getEndPoint(BID_HISTORY),\n itemId: params.id,\n })\n );\n }, []);\n\n const biddingPrice = (\n lastBid: number,\n startingBid: number,\n numberOfBids: number\n ) => {\n var firstBidPrice = lastBid\n if (numberOfBids === 0 && startingBid > 0) {\n firstBidPrice = startingBid\n } else {\n firstBidPrice = auctionItem?.accountautobidamount\n }\n\n return firstBidPrice\n }\n\n const [currentLocalBid, setCurrentLocalBid] = useCounter(\n biddingPrice(\n itemDetails.currentbid,\n auctionItem?.startingbid,\n auctionItem?.numberofbids\n )\n )\n const [bidAutomatically, setBidAutomatically] = useState(false)\n const [maximumBid, setMaximumBid] = useCounter(\n biddingPrice(\n itemDetails.currentbid,\n auctionItem?.startingbid,\n auctionItem?.numberofbids\n )\n )\n\n\n const [modalState, setModalState] = useState({\n display: false,\n header: '',\n message: '',\n goBack: false\n })\n\n const [toastState, setToastState] = useState({\n display: false,\n message: '',\n goBack: false\n })\n\n const minimumBidToMake = auctionItem?.accountautobidamount\n\n const increaseMaximumBid = () => {\n setMaximumBid(maximumBid + itemDetails?.minimumbidincrease)\n }\n\n const decreaseMaximumBid = () => {\n const newMaxBid = maximumBid - itemDetails.minimumbidincrease\n if (\n newMaxBid <= itemDetails.currentbid\n ) {\n setMaximumBid(itemDetails.currentbid)\n } else {\n setMaximumBid(newMaxBid)\n }\n }\n\n const onMaximumBidChange = (e) => {\n console.log('onmaxbidCHange')\n const { value } = e.target\n if (value === \"\") {\n return setMaximumBid('')\n }\n setMaximumBid(Math.round(Number(value) * 100) / 100)\n }\n\n const increaseDesiredBidIncrement = () => {\n setDesiredBidIncrement(desiredBidIncrement + itemDetails.minimumbidincrease)\n }\n\n const decreaseDesiredBidIncrement = () => {\n const newDesiredBid = desiredBidIncrement - itemDetails.minimumbidincrease\n // if (newDesiredBid <= auctionItem?.accountautobidincrement ?? itemDetails.minimumbidincrease) {\n if (newDesiredBid < itemDetails.minimumbidincrease) {\n setDesiredBidIncrement(itemDetails.minimumbidincrease)\n } else {\n setDesiredBidIncrement(newDesiredBid)\n }\n }\n\n const onDesiredBidIncrementChange = (e) => {\n const { value } = e.target\n if (value === \"\") {\n return setDesiredBidIncrement('')\n }\n setDesiredBidIncrement(Math.round(Number(value) * 100) / 100)\n }\n\n const handleSubmitBid = async (e: any) => {\n e.preventDefault()\n if (Number(currentLocalBid) < Number(minimumBidToMake)) {\n return setToastState({ display: true, message: `Please adjust the max bid amount. The minimum bid for this item is $${minimumBidToMake}.`, goBack: false })\n }\n if (bidAutomatically) {\n if (maximumBid < minimumBidToMake) {\n return setToastState({ display: true, message: `Maximum bid price must be at least $${minimumBidToMake}`, goBack: false })\n }\n if (itemDetails?.minimumbidincrease && desiredBidIncrement < auctionItem?.accountautobidincrement) {\n return setToastState({ display: true, message: `Desired bid increment must be at least $${auctionItem?.accountautobidincrement}`, goBack: false })\n }\n }\n\n const response = await submitMaxBid({\n itemid: itemDetails.itemid,\n maxbid: maximumBid,\n increment: desiredBidIncrement\n })\n\n\n const responseJSON = JSON.parse(response.jsonString)\n dispatch(resetStatus)\n dispatch(resetOrderStatus)\n\n if (responseJSON.message.length === 0) {\n setModalState({\n display: true,\n header: 'Thank you for bidding!',\n message: 'Congratulations! You are the high bidder.',\n goBack: true\n })\n\n setTimeout(() => {\n history.push(`/${eventcode}/auction-items/${itemDetails.itemid}`)\n }, 3000)\n } else {\n // store.dispatch(\n // updateItemMaxBid({\n // itemid: itemDetails.itemid,\n // accountautobidamount: maximumBid,\n // accountautobidincrement: desiredBidIncrement\n // })\n // )\n\n // store.dispatch(\n // updateAutoBid({\n // itemid: itemDetails.itemid,\n // userid: userId,\n // accountisautobid: true,\n // accountautobidamount: maximumBid,\n // accountautobidincrement: desiredBidIncrement\n // })\n // )\n// console.log('modal state')\n setModalState({ display: true, header: 'Thank you for setting your max bid.', message: responseJSON.message, goBack: false })\n\n // setToastState({ display: true, message: responseJSON.message, goBack: false })\n\n setTimeout(() => {\n setModalState({\n display: false,\n header: '',\n message: responseJSON.message,\n goBack: false\n })\n history.push(`/${eventcode}/auction-items/${itemDetails.itemid}`)\n\n }, 3000)\n }\n }\n\n return (\n <>\n {itemDetails && (\n \n \n \n \n

{modalState.header}

\n

{modalState.message}

\n
\n
\n setToastState({\n display: false,\n message: '',\n goBack: false\n })}\n message={toastState.message}\n cssClass={'custom-toast'}\n duration={3000}\n />\n\n \n \n \n \n {itemDetails.name}\n \n \n \n \n \n \n Current Bid: ${itemDetails.currentbid}\n \n \n \n <>\n \n \n \n \n \n \n itemDetails?.currentbid\n ? 1\n : 0.5\n }\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Your Maximum Bid\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Desired Bid Increment\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n Update Max Bid\n \n \n \n
\n )}\n \n )\n}\n\nexport default AutoBid\n","import React, { useEffect, useState } from \"react\"\nimport { Link } from \"react-router-dom\"\nimport {useDispatch, useSelector} from \"react-redux\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport { useHistory } from \"react-router-dom\";\nimport {IonButton} from \"@ionic/react\";\nimport {useLocation, useParams} from \"react-router\";\nimport {fetchPrivacyPolicy} from \"../../redux/slices/privacyPolicySlice\";\nimport {getEndPoint, PRIVACY_POLICY} from \"../../util/api/enpoints\";\n\ninterface Params {\n eventcode: string\n}\n\nconst PrivacyPolicy: React.FC = () => {\n const { eventcode } = useParams()\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n\n const history = useHistory();\n const dispatch = useDispatch()\n const privacyPolicyState = useSelector((state: any) => state.privacypolicy)\n const [policyData, setPolicyData] = useState();\n\n const clickGoBack = () => {\n history.goBack()\n }\n\n useEffect(() => {\n dispatch(fetchPrivacyPolicy({url: getEndPoint(PRIVACY_POLICY), eventcode: eventcode, auctioncode: auctioncode}))\n }, [])\n\n useEffect(() => {\n setPolicyData(privacyPolicyState.privacypolicyData)\n }, [privacyPolicyState])\n \n return (\n \n \n
\n \n \n Go Back\n \n \n )\n}\n\nexport default PrivacyPolicy","import styled from \"@emotion/styled\"\nimport { Console } from \"console\"\nimport React, {useEffect} from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\nimport { isConstructorDeclaration } from \"typescript\"\nimport { forgotPassword } from \"../../redux/slices/userSlice\"\nimport {getEndPoint, FORGOT_PASSWORD, PASSWORD_RESET, RESET_PASSWORD} from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport { Link } from \"react-router-dom\"\nimport {fetchEventData} from \"../../redux/slices/eventSlice\";\nimport jwt_decode from \"jwt-decode\";\nimport LogoWrapper from \"../../components/Header/LogoWrapper\";\nimport LogoContainer from \"../../components/Header/LogoContainer\";\nimport Img from \"../../components/Header/Img\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst ResetPassword: React.FC = () => {\n const { eventcode } = useParams()\n const event = useSelector((state: any) => state.event)\n const dispatch = useDispatch()\n const history = useHistory()\n const email = useSelector((state: any) => state.user.email)\n const stateeventcode = useSelector((state: any) => state.event.eventcode)\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n\n useEffect(() => {\n if (stateeventcode === null) {\n const url = getEndPoint('EVENT_ENDPOINT')\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : ''\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: auctioncode\n }\n dispatch(fetchEventData(eventData))\n }\n })\n\n\n\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n const url = getEndPoint(PASSWORD_RESET)\n\n try {\n const response: any = await dispatch(\n forgotPassword({\n url,\n email,\n eventcode: eventcode,\n auctioncode: getAuctionCode()\n })\n )\n if (response.error) {\n throw new Error(\"Some Server Error !\")\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n if (responseJSON.status === \"success\") {\n history.push(\"/\" + eventcode + \"/reset-password-email\")\n }\n }\n } catch (err) {\n console.log(err)\n }\n }\n\n const getAuctionCode = () => {\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n return (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n }\n\n return (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {/**/}\n {/* */}\n {/**/}\n \n \n \n Forgot Your Password?\n \n
\n \n \n \n \n \n \n \n Return to Login\n \n \n
\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n )\n}\n\nexport default ResetPassword\n","import styled from \"@emotion/styled\"\nimport { Console } from \"console\"\nimport React, {ChangeEvent, useEffect, useState} from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\nimport { resetPasswordLink } from \"../../redux/slices/userSlice\"\nimport {getEndPoint, PASSWORD_RESET_LINK} from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport {IonToast} from \"@ionic/react\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {Link} from \"react-router-dom\";\nimport {fetchEventData} from \"../../redux/slices/eventSlice\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n`\ninterface Params {\n eventcode: string,\n id: string\n}\n\nconst ResetPasswordVerification: React.FC = () => {\n const { eventcode, id } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n const [password, setPassword] = useState('');\n const [password2, setPassword2] = useState('');\n const [toastObj, setToast] = useState({ display: false, message: '', goBack: false });\n\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : ''\n\n useEffect(() => {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: auctioncode\n }\n dispatch(fetchEventData(eventData))\n }, [eventcode])\n\n const goBack = () => {\n const mypath = '/' + eventcode\n console.log('goback')\n console.log('/' + eventcode)\n history.push('/' + eventcode)\n }\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n\n if (password === password2) {\n const url = getEndPoint(PASSWORD_RESET_LINK)\n try {\n const response: any = await dispatch(\n resetPasswordLink({\n url,\n password,\n id\n })\n )\n if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n\n if (responseJSON.status === \"success\") {\n setToast({ display: true, message: 'Password was reset successfully.', goBack: false })\n }\n else {\n setToast({ display: true, message: 'Password reset failed ' + responseJSON.message, goBack: false })\n }\n }\n } catch (err) {\n console.log(err)\n }\n }\n }\n return (\n \n \n \n Reset Password\n \n \n \n\n
\n \n *Password\n goBack()}\n message={toastObj.message}\n cssClass={'custom-toast'}\n duration={5000}\n />\n setPassword(e.target.value)}\n >\n *Confirm Password\n setPassword2(e.target.value)}\n >\n \n *Required Fields\n \n \n \n Return to Login?\n \n \n
\n
\n )\n}\n\nexport default ResetPasswordVerification\n","import styled from \"@emotion/styled\"\nimport React, {ChangeEvent, useState} from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\nimport { resetPassword } from \"../../redux/slices/userSlice\"\nimport { getEndPoint, RESET_PASSWORD } from \"../../util/api/enpoints\"\nimport Button from \"../CommonStyles/Button\"\nimport Form from \"../CommonStyles/Form\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport {IonToast} from \"@ionic/react\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst ResetPasswordAccount: React.FC = () => {\n const { eventcode } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n const userData = useSelector((state: any) => state.user)\n const [password, setPassword] = useState('');\n const [password2, setPassword2] = useState('');\n const [toastObj, setToast] = useState({ display: false, message: '', goBack: false });\n\n const goBack = () => {\n const mypath = '/' + eventcode + '/my-account'\n history.push(mypath)\n }\n\n const onSubmit = async (e: any) => {\n e.preventDefault()\n\n if (password === password2) {\n const url = getEndPoint(RESET_PASSWORD)\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n\n try {\n const response: any = await dispatch(\n resetPassword({\n url,\n password,\n auctioncode\n })\n )\n if (response.error) {\n throw new Error(\"Some Server Error !\")\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n\n if (responseJSON.status === \"success\") {\n setToast({ display: true, message: 'Password was reset successfully.', goBack: true })\n }\n else {\n setToast({ display: true, message: 'Password reset failed ' + responseJSON.message, goBack: false })\n }\n }\n } catch (err) {\n console.log(err)\n }\n }\n }\n return (\n \n \n \n Create a New Password\n \n \n \n\n
\n \n {/*Create a New Password*/}\n Email Address\n {userData.email}\n *Password\n goBack()}\n message={toastObj.message}\n cssClass={'custom-toast'}\n duration={5000}\n />\n setPassword(e.target.value)}\n >\n *Confirm Password\n setPassword2(e.target.value)}\n >\n \n *Required Fields\n \n
\n
\n )\n}\n\nexport default ResetPasswordAccount\n","import React from \"react\"\nimport { Link } from \"react-router-dom\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport {useParams} from \"react-router\";\n\ninterface Params {\n eventcode: string\n}\nconst ResetPasswordEmail: React.FC = () => {\n const { eventcode } = useParams()\n\n return (\n \n \n An email has been sent to your registered email to help you login.\n \n \n If you no longer have access to this email account, please return to\n login and enter a new email address.\n \n \n Return to Login\n \n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n )\n}\n\nexport default ResetPasswordEmail\n","import React, { useState } from \"react\"\nimport styled from \"@emotion/styled\"\nimport { IonToast } from \"@ionic/react\"\nimport Button from \"../CommonStyles/Button\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport Text from \"../CommonStyles/Text\"\nimport {Link} from \"react-router-dom\";\nimport FlexRow from \"../CommonStyles/FlexRow\";\nimport {useSelector} from \"react-redux\";\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst StepOne: React.FC<{\n formFields: {\n firstname: string\n lastname: string\n zip: number\n }\n createChangeHandler: any\n goToNextView: any\n}> = (props) => {\n const [toastMsg, setToastMsg] = useState('');\n const eventData = useSelector((state: any) => state.event)\n\n const validateFields = (cb: Function) => (e) => {\n e.preventDefault()\n\n const { firstname, lastname, zip} = props.formFields\n if (!firstname) {\n return setToastMsg('First name is required.')\n } \n if (!lastname) {\n return setToastMsg('Last name is required.')\n }\n if (!zip) {\n return setToastMsg('Zip code is required.')\n }\n cb(e)\n }\n\n return (\n <>\n setToastMsg('')}\n message={toastMsg}\n duration={3000}\n cssClass={'custom-toast'}\n color=\"danger\"\n />\n \n \n \n \n \n \n \n \n {/**/}\n {/* */}\n {/* */}\n\n {/**/}\n \n \n \n \n \n \n *Required Fields\n \n \n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n \n )\n}\n\nexport default StepOne\n","import React, {useEffect} from \"react\"\nimport styled from \"@emotion/styled\"\nimport {useSelector} from \"react-redux\";\nimport { usStates } from \"../../constants\"\nimport Button from \"../CommonStyles/Button\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport Text from \"../CommonStyles/Text\";\nimport {Link} from \"react-router-dom\";\n\n\ntype ContainerProps = {\n borderBottom?: string\n}\n\ntype RightContainerProps = {\n justifyContent?: string\n}\n\nconst Section = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: 0 10px;\n`\nconst Container = styled.div`\n display: flex;\n width: 100%;\n align-items: center;\n border-bottom: ${(props: ContainerProps) =>\n props.borderBottom || \"2px solid #dcdcdc\"};\n height: 50px;\n`\nconst RightContainer = styled.div`\n display: flex;\n margin-left: auto;\n width: 136px;\n justify-content: ${(props: RightContainerProps) =>\n props.justifyContent || \"space-between\"};\n`\n\nconst RightItemContainer = styled.div`\n width: 50px;\n height: 30px;\n display: flex;\n align-items: center;\n`\nconst FlexRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-around;\n`\n\nconst Select = styled(\"select\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`\nconst Option = styled(\"option\")`\n box-sizing: border-box;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`\n\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst StateInputsContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 90%;\n margin-left: 12px;\n margin-right: 12px;\n margin-top: 10px;\n padding: 10px;\n`\n\nconst StateContainer = styled.div`\n box-sizing: border-box;\n height: 60px;\n width: 90%;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n`\n\nconst StepThree: React.FC<{\n formFields: {\n addressOne: string\n addressTwo: string\n city: string\n state: string\n }\n createChangeHandler: any\n goToPreviousView: any\n handleFinish: any\n}> = (props) => {\n const eventData = useSelector((state: any) => state.event)\n\n useEffect(() => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0, 0)\n }\n }, [])\n\n return (\n <>\n \n (Optional)\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n {usStates.map((state, index) => {\n return (\n \n )\n })}\n \n \n\n \n \n Back\n \n \n \n \n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n \n )\n}\n\nexport default StepThree\n","import React, {useEffect, useRef, useState} from \"react\"\nimport './styles.css'\nimport styled from \"@emotion/styled\"\nimport {\n IonCol,\n IonRow,\n IonText,\n IonToast,\n IonToggle,\n IonGrid,\n IonItem,\n IonModal,\n IonBackdrop,\n IonAlert, IonPage, IonHeader, IonToolbar, IonTitle, IonContent, IonLabel, IonFooter, IonButton, useIonModal\n} from \"@ionic/react\"\n\nimport { usStates } from \"../../constants\"\nimport Button from \"../CommonStyles/Button\"\nimport InputsContainer from \"../CommonStyles/InputsContainer\"\nimport Label from \"../CommonStyles/Label\"\nimport './index.css';\nimport Text from \"../CommonStyles/Text\"\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {checkTokenOnRefresh, useUserInfo} from \"../../redux/slices/userSlice\";\nimport {getEndPoint, USER_PROFILE} from \"../../util/api/enpoints\";\nimport NumberFormat from \"react-number-format\";\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport {Span} from \"../AuctionItems/styledComponents\";\nimport {OverlayEventDetail} from \"@ionic/react/dist/types/components/react-component-lib/interfaces\";\nimport {Select} from \"../ItemDetails/styledComponents\";\nimport ButtonItem from \"../CommonStyles/ButtonItem\";\nimport {Link} from \"react-router-dom\";\n\ntype ContainerProps = {\n borderBottom?: string\n}\n\ntype RightContainerProps = {\n justifyContent?: string\n}\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 24px/33px;\n font-weight: bold;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n`\n\nconst CellInputsContainer = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n //margin-left: 12px;\n //margin-right: 12px;\n margin-top: 10px;\n //padding: 10px;\n`\n\nconst Section = styled.div`\n display: flex;\n width: 100%;\n flex-direction: column;\n padding: 0 10px;\n`\nconst Input = styled(\"input\")`\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #0000000d;\n outline: none;\n border: none;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\n\nconst FlexRow = styled.div`\n width: 100%;\n display: flex;\n justify-content: space-around;\n`\n\nconst MessageModal = ({\n onDismiss,\n message,\n }: {\n onDismiss: (data?: string | null | undefined | number, role?: string) => void;\n message: string;\n}) => {\n const inputRef = useRef(null);\n\n return (\n \n \n \n Text Messaging Opt-In\n \n \n \n \n You have provided your phone number but have not checked the box to opt-in to event related text messages.\n \n \n Are you sure you sure you want to proceed?\n \n \n \n \n \n onDismiss(inputRef.current?.value, 'cancel')} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'secondary'}>\n Go Back\n \n \n \n onDismiss(inputRef.current?.value, 'ok')} size=\"large\" style={{ width: '90%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Proceed without Text Messages\n \n \n \n \n \n );\n};\n\nconst StepTwo: React.FC<{\n formNotificationState: any\n setNotificationFormState: any\n handleSubmit: any\n formFields: {\n cellphone: string\n allowtexting: boolean\n bidanonymously: boolean\n }\n createChangeHandler: any\n goToNextView: any\n goToPreviousView: any\n}> = (props) => {\n const eventData = useSelector((state: any) => state.event)\n const [present, dismiss] = useIonModal(MessageModal, {\n onDismiss: (data: string, role: string) => dismiss(data, role),\n message: '',\n });\n\n function openTextModal() {\n present({\n onWillDismiss: (ev: CustomEvent) => {\n if (ev.detail.role === 'ok') {\n processToNextStep()\n }\n },\n });\n }\n\n const [toastMsg, setToastMsg] = useState('');\n const dispatch = useDispatch()\n const user = useUserInfo()\n const [agreeToMessages, setagreeToMessages] = useState(false)\n const [eventTextAlert, setEventTextAlert] = useState(false)\n const eventState = useSelector((state: any) => state.event)\n const { notifications } = user\n\n const [modalState, setModalState] = useState({\n display: false,\n header: '',\n message: '',\n goBack: false\n })\n // const [formNotificationState, setNotificationFormState] = useState();\n\n useEffect(() => {\n let notificationState = {}\n eventState?.notificationcolumns.forEach((itemColumn) => {\n notifications?.forEach((item: any) => {\n const keyValue = `toggle${itemColumn.value}${item.notificationrowid}`\n notificationState = {\n ...notificationState,\n [keyValue]: item[itemColumn.value]\n }\n })\n })\n\n props.setNotificationFormState(notificationState);\n }, [notifications, eventState]);\n\n const onToggleChange = (type) => (e) => {\n e.preventDefault()\n if (e?.target?.checked === undefined) {\n console.log('skip')\n }\n else {\n const keys = props.formNotificationState ? Object.keys(props.formNotificationState) : []\n if (keys && keys.length > 0) {\n let copyState = {...props.formNotificationState}\n copyState[type] = e?.target?.checked\n // console.log(Object.keys(copyState))\n props.setNotificationFormState(copyState)\n }\n }\n }\n\n useEffect(() => {\n const getUserData = async () => {\n await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n }\n getUserData()\n }, [dispatch, checkTokenOnRefresh, getEndPoint, USER_PROFILE])\n\n const userData = useSelector((state: any) => state.user)\n\n const validateFields = (cb: Function) => (e) => {\n e.preventDefault()\n\n if (props.formFields.cellphone && props.formFields.cellphone.length > 0 && !props.formFields.allowtexting) {\n setEventTextAlert(e)\n openTextModal()\n }\n else {\n setEventTextAlert(e)\n cb(e)\n }\n }\n\n const processToNextStep = () => {\n props.handleSubmit(eventTextAlert)\n }\n\n // const handleCheckboxChange = (e: any) => {\n // setagreeToMessages(e.target.checked)\n // }\n\n return (\n <>\n setToastMsg('')}\n message={toastMsg}\n duration={3000}\n cssClass={'custom-toast'}\n color=\"danger\"\n />\n
\n {(eventState.eventallowanonymousbidding) && (\n <>\n {/**/}\n \n \n Bidder Preferences\n \n \n \n \n Bid Anonymously\n \n \n \n \n \n \n \n )}\n \n \n\n \n Notifications\n \n {eventState?.notificationcolumns.map((itemColumn) => {\n return (\n \n {itemColumn.title}\n \n )\n })}\n \n \n {eventState?.notificationrows.map((itemRow) => {\n let rowItems = null\n\n rowItems = eventState?.notificationcolumns.map((itemColumn) => {\n if(itemRow[itemColumn.value]) {\n const checked = props.formNotificationState && props.formNotificationState[`toggle${itemColumn.value}${itemRow.notificationrowid}`]\n return (\n \n \n \n )\n }\n else {\n return (\n \n \n )\n }\n })\n\n\n const headerRow = (\n <>\n {itemRow.title}\n {rowItems}\n \n )\n return headerRow\n })}\n \n \n\n \n \n \n \n \n \n \n Text Messaging Opt-In\n \n \n \n \n {/**/}\n
\n \n I agree to receive text messages through the AuctionSnap platform for notifications and event messages\n
\n {/*
*/}\n
\n
\n \n \n At any time, text STOP to unsubscribe from all text messages through AuctionSnap. Standard messaging rates may apply. You can adjust your notification preferences above and within AuctionSnap under your account profile. \n \n \n
\n\n {/**/}\n {/**/}\n {/**/}\n {/**/}\n
\n \n \n Back\n \n \n \n \n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n \n )\n}\n\nexport default StepTwo\n","import React, {useEffect, useState} from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {useHistory, useParams} from \"react-router\"\n\nimport styled from \"@emotion/styled\"\n\nimport useFormFields from \"../../hooks/FormField\"\nimport useIonicToggle from \"../../hooks/IonicToggle\"\nimport {checkTokenOnRefresh, updateUserInfo, updateUserProfile, useUserInfo} from \"../../redux/slices/userSlice\"\nimport { USER_PROFILE, getEndPoint } from \"../../util/api/enpoints\"\nimport Form from \"../CommonStyles/Form\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport StepOne from \"./StepOne\"\nimport StepThree from \"./StepThree\"\nimport StepTwo from \"./StepTwo\"\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport {fetchEventData, setAuctionCode, setEventCode} from \"../../redux/slices/eventSlice\";\nimport {setPrivacyEventCode} from \"../../redux/slices/privacyPolicySlice\";\n\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nvar totalSteps = 3\nconst InfoContainer = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n padding-left: 7px;\n`\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\n\nconst CurrentStep = styled.div`\n margin-left: auto;\n margin-right: 10px;\n`\n\ninterface Params {\n eventcode: string\n}\n\nconst SetupAccount: React.FC = () => {\n const { eventcode } = useParams()\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n const event = useSelector((state: any) => state.event)\n const dispatch = useDispatch()\n const history = useHistory()\n const userData = useSelector((state: any) => state.user)\n const eventState = useSelector((state: any) => state.event)\n const user = useUserInfo()\n const { notifications } = user\n const userid = userData.userid\n const [formNotificationState, setNotificationFormState] = useState();\n const [currentStepInView, setCurrentStepInView] = useState(1)\n const { formFields, createChangeHandler } = useFormFields({\n firstname: \"\",\n lastname: \"\",\n cellphone: \"\",\n addressOne: \"\",\n addressTwo: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n allowtexting: false,\n bidanonymously: userData.bidanonymously\n })\n\n if (eventState.notifications.shownotificationsmenuitem) {\n totalSteps = 3;\n }\n else {\n totalSteps = 2;\n }\n\n useEffect(() => {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: auctioncode\n }\n dispatch(fetchEventData(eventData))\n dispatch(setEventCode(eventcode))\n dispatch(setAuctionCode(auctioncode))\n dispatch(setPrivacyEventCode(eventcode))\n }, [eventcode, auctioncode])\n\n const handleSubmit = (e: any) => {\n if (eventState.notifications.shownotificationsmenuitem) {\n goToNextView(e)\n }\n else {\n onSubmit(e)\n }\n }\n\n const goToNextView = (e: any) => {\n if (e) {\n e.preventDefault()\n }\n\n setCurrentStepInView(currentStepInView + 1)\n }\n\n const goToPreviousView = (e: any) => {\n e.preventDefault()\n setCurrentStepInView(currentStepInView - 1)\n }\n\n const onFinal = async (e: any) => {\n e.preventDefault()\n // const address = formFields.addressOne + formFields.addressTwo\n\n const notificationsData = notifications.map((item: any) => {\n let rowObject = { \"notificationrowid\": item.notificationrowid }\n eventState?.notificationcolumns.forEach((itemColumn) => {\n const keyValue = `toggle${itemColumn.value}${item.notificationrowid}`\n rowObject[itemColumn.value] = formNotificationState[keyValue]\n })\n return rowObject\n })\n\n const profileInfo = {\n ...formFields,\n address: formFields.addressOne,\n address2: formFields.addressTwo, \n cellphone: formFields.cellphone.replace(/\\D/g,''),\n notifications: notificationsData,\n bidanonymously: formFields.bidanonymously === 'on' ? true : false,\n userid,\n eventcode\n }\n delete profileInfo.addressOne\n delete profileInfo.addressTwo\n const url = getEndPoint(USER_PROFILE)\n const userProfileInfo = {\n url,\n ...profileInfo\n }\n console.log(userProfileInfo)\n try {\n const response: any = await dispatch(updateUserProfile(userProfileInfo))\n if (response.error) {\n throw new Error(\"Internal server Error\")\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n if (responseJSON.status === \"success\") {\n history.push(\"/\" + eventcode + \"/welcome/\")\n }\n\n }\n } catch (err) {\n console.log(err)\n }\n\n\n const response: any = await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n console.log(response)\n if (response.error) {\n console.log(response.error)\n } else if (response.payload) {\n dispatch(\n updateUserInfo({\n ...response.payload,\n isLoggedIn: true\n })\n )\n }\n }\n\n const onSubmit = async (e: any) => {\n if (e) {\n e.preventDefault()\n }\n\n // const address = formFields.addressOne + formFields.addressTwo\n\n const notificationsData = notifications?.map((item: any) => {\n let rowObject = { \"notificationrowid\": item.notificationrowid }\n eventState?.notificationcolumns.forEach((itemColumn) => {\n const keyValue = `toggle${itemColumn.value}${item.notificationrowid}`\n rowObject[itemColumn.value] = formNotificationState[keyValue]\n })\n return rowObject\n })\n\n const profileInfo = {\n ...formFields,\n address: formFields.addressOne,\n address2: formFields.addressTwo,\n cellphone: formFields.cellphone.replace(/\\D/g,''),\n allowtexting: formFields.allowtexting,\n notifications: notificationsData,\n bidanonymously: formFields.bidanonymously === 'on' ? true : false,\n userid,\n eventcode\n }\n delete profileInfo.addressOne\n delete profileInfo.addressTwo\n const url = getEndPoint(USER_PROFILE)\n const userProfileInfo = {\n url,\n ...profileInfo\n }\n console.log(userProfileInfo)\n try {\n const response: any = await dispatch(updateUserProfile(userProfileInfo))\n if (response.error) {\n throw new Error(\"Internal server Error\")\n } else if (response.payload) {\n const responseJSON = JSON.parse(response.payload.jsonString)\n if (responseJSON.status === \"success\") {\n goToNextView(e)\n }\n\n }\n } catch (err) {\n console.log(err)\n }\n }\n\n return (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {/**/}\n {/* */}\n {/**/}\n \n \n \n \n Set Up Your Account\n \n \n \n Step {currentStepInView} of {totalSteps}\n \n \n \n
\n {currentStepInView === 1 && (\n \n )}\n {currentStepInView === 2 && (\n \n )}\n {currentStepInView === 3 && (\n \n )}\n \n
\n )\n}\n\nexport default SetupAccount\n","import React, { useEffect } from \"react\"\nimport {useDispatch, useSelector} from \"react-redux\"\nimport { Link, useHistory } from \"react-router-dom\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport {updateStateOnLogout} from \"../../redux/slices/userSlice\";\nimport styled from \"@emotion/styled\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n `\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\nconst VerificationPage: React.FC = () => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n \n const eventcode = useSelector((state: any) => state.event.eventcode)\n const email = useSelector((state: any) => state.user.email)\n const event = useSelector((state: any) => state.event)\n const userAccountStatus = useSelector(\n (state: any) => state.user.accountstatus\n )\n const userAccountSetupComplete = useSelector(\n (state: any) => state.user.accountSetupComplete\n )\n\n const history = useHistory()\n const dispatch = useDispatch()\n const logUserOutClick = () => {\n dispatch(updateStateOnLogout())\n localStorage.removeItem(\"token\")\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n }\n const logUserOut = () => {\n return '/' + eventcode\n }\n\n useEffect(() => {\n if (userAccountStatus === \"verified\") {\n if (userAccountSetupComplete) {\n /** we'll go to welcom/auction page */\n } else {\n history.push(\"/\" + eventcode + '/setup-account')\n }\n }\n }, [userAccountStatus, userAccountSetupComplete])\n\n return (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {/**/}\n {/* */}\n {/**/}\n \n \n \n We just emailed {email}.\n \n \n Click the \"Verify Email Address\" button in the email to continue.\n \n\n \n \n Typo in your email address? Return to Login?\n \n \n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n
\n )\n}\n\nexport default VerificationPage\n","import {getEndPoint, SUBMIT_BID, VERIFY_EMAIL} from \"./enpoints\"\nimport { client } from \"./fetchData\"\n\nconst verifyAccountPost = async (verifyToken: String) => {\n // const token = localStorage.getItem(\"token\")\n const verifyTokenBody = { 'token': verifyToken }\n return await client.post(getEndPoint(VERIFY_EMAIL), verifyTokenBody, {\n headers: {\n // Authorization: \"Bearer \" + token\n }\n })\n}\n\nexport { verifyAccountPost }\n","import React, { useEffect } from \"react\"\nimport {useDispatch, useSelector} from \"react-redux\"\nimport { Link, useHistory } from \"react-router-dom\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Text from \"../CommonStyles/Text\"\nimport {updateStateOnLogout, updateUserInfo} from \"../../redux/slices/userSlice\";\nimport {verifyAccountPost} from \"../../util/api/verifyAccount\";\nimport styled from \"@emotion/styled\";\nimport {useParams} from \"react-router\";\nimport store from \"../../redux/store\";\nimport {fetchEventData, setAuctionCode, setEventCode} from \"../../redux/slices/eventSlice\";\nimport {getEndPoint} from \"../../util/api/enpoints\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport jwt_decode from \"jwt-decode\";\nimport {setPrivacyEventCode} from \"../../redux/slices/privacyPolicySlice\";\n\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\ninterface Params {\n eventcode: string\n id: string\n}\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n min-height: 45px;\n`\n\nconst LinkContainer = styled.div`\n display: flex;\n width: 100%;\n justify-content: center;\n align-items: center;\n margin-top: 10px;\n `\n\n\nconst VerifyAccount: React.FC = () => {\n const event = useSelector((state: any) => state.event)\n const user = useSelector((state: any) => state.user)\n const { eventcode, id } = useParams()\n\n const checkEmailVerify = async (id: string) => {\n const response = await verifyAccountPost(id)\n const parsedData = JSON.parse(response.jsonString)\n // const dispatch = useDispatch()\n var auctioncode = ''\n var eventCode = ''\n\n if (parsedData.status === 'success') {\n if (localStorage.getItem(\"token\")) {\n localStorage.removeItem(\"token\")\n }\n\n const decoded: any = jwt_decode(parsedData.token)\n var current_time = Date.now() / 1000;\n if (decoded.exp < current_time) {\n // expired\n history.push('/' + eventcode + '/login/')\n }\n else\n {\n localStorage.setItem(\"token\", parsedData.token)\n if (decoded.eventcode) {\n eventCode = decoded.eventcode\n }\n if (decoded.auctioncode) {\n auctioncode = decoded.auctioncode\n }\n console.log(decoded)\n dispatch(setEventCode(eventCode))\n dispatch(setAuctionCode(auctioncode))\n dispatch(setPrivacyEventCode(eventCode))\n\n store.dispatch(\n fetchEventData(getEndPoint(\"EVENT_ENDPOINT\", [eventCode]))\n )\n\n store.dispatch(\n updateUserInfo({\n accountstatus: \"verified\",\n userid: parsedData.userid,\n authorizebidder: parsedData.authorizebidder\n })\n )\n }\n }\n }\n\n useEffect(() => {\n dispatch(\n fetchEventData(getEndPoint(\"EVENT_ENDPOINT\", [id]))\n )\n }, [id])\n\n checkEmailVerify(id)\n\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n \n // const eventcode = useSelector((state: any) => state.event.eventcode)\n // const auctioncode = useSelector((state: any) => state.event.auctioncode)\n const userAccountStatus = useSelector(\n (state: any) => state.user.accountstatus\n )\n const userAccountSetupComplete = useSelector(\n (state: any) => state.user.accountSetupComplete\n )\n\n const history = useHistory()\n const dispatch = useDispatch()\n const logUserOutClick = () => {\n dispatch(updateStateOnLogout())\n localStorage.removeItem(\"token\")\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n }\n const logUserOut = () => {\n return '/' + eventcode\n }\n\n useEffect(() => {\n if (userAccountStatus === \"verified\") {\n if (userAccountSetupComplete) {\n /** we'll go to welcom/auction page */\n } else {\n history.push(\"/\" + eventcode + '/setup-account')\n }\n }\n }, [userAccountStatus, userAccountSetupComplete])\n\n return (\n \n \n {event.eventname && (\n \n {event.eventname}\n \n )}\n\n {/**/}\n {/* */}\n {/**/}\n \n \n \n We just emailed {user.email}.\n \n \n Click the \"Verify Email Address\" button in the email to continue.\n \n\n \n \n Typo in your email address? Return to Login?\n \n \n \n )\n}\n\nexport default VerifyAccount\n","import styled from \"@emotion/styled\"\nimport Button from \"./Button\"\nimport { mq } from \"../../constants\";\n\ntype ButtonItem = {\n width?: number | string\n}\n\nconst MainButtonItem = styled(Button)`\n margin: 0;\n padding: 0;\n ${mq[0]} {\n width: ${(props) => props.width || \"100%\"};\n }\n ${mq[1]} {\n width: ${(props) => props.width || \"100%\"};\n }\n ${mq[2]} {\n width: ${(props) => props.width || \"80%\"};\n margin-left: 10%;\n }\n ${mq[3]} {\n width: ${(props) => props.width || \"50%\"};\n margin-left: ${(props) => props.width ? \"0%\" : \"0%\"};\n }\n`\nexport default MainButtonItem\n","import { Theme } from \"@emotion/react\";\n\nexport const theme: Theme = {\n colors: {\n primary: \"#4c4c4c\",\n // primary: \"#5732db\",\n important: \"#D2222D\",\n background: \"#f2f2f2\",\n header: {\n background: \"#ffffff\",\n logoWrapper: \"#ffffff\",\n },\n white: \"#ffffff\",\n auctionRed: \"#d2222d\",\n dropshadow: \"#0000004D\",\n },\n components: {\n navBarHeight: \"64px\",\n },\n};\n","import React, {useEffect, useRef, useState} from \"react\"\nimport {useHistory, useParams} from \"react-router\"\nimport PageBodyContainer from \"../CommonStyles/PageBodyContainer\"\nimport Moment from \"react-moment\"\n// import moment from \"moment\"\n\nimport 'moment-timezone';\nimport moment from 'moment';\n// moment().tz.guess()\n\nimport MainButtonItem from \"../CommonStyles/MainButtonItem\"\n\nimport Text from \"../CommonStyles/Text\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport FlexRow from \"../CommonStyles/FlexRow\"\nimport FlexCol from \"../CommonStyles/FlexCol\"\nimport { theme } from \"../CommonStyles/Theme\"\nimport styled from \"@emotion/styled\"\nimport { mq } from \"../../constants\"\nimport {fetchCartData} from \"../../redux/slices/cartSlice\";\nimport {CART_ENDPOINT, getEndPoint} from \"../../util/api/enpoints\";\nimport waveBluePng from \"../../assets/img/svg/wave-blue.png\";\nimport { useAuthRefresh } from \"../../hooks/authenicationHook\"\nimport {IonRefresher, IonRefresherContent, IonContent, IonRow, IonGrid, IonCol} from \"@ionic/react\";\nimport {Link} from \"react-router-dom\";\nimport { DateTime } from \"luxon\";\nimport {fetchEventData, setAuctionCode, setEventCode} from \"../../redux/slices/eventSlice\";\nimport {setPrivacyEventCode} from \"../../redux/slices/privacyPolicySlice\";\n\n\nconst FlexColWelcome = styled(FlexCol)`\n ${mq[2]} {\n margin: 0 10px;\n }\n`\n\nconst FlexRowWelcome = styled(FlexRow)`\n ${mq[0]} {\n justify-content: space-evenly;\n }\n ${mq[3]} {\n justify-content: center;\n overflow-y: auto;\n padding: 10px;\n }\n`\n\nconst EventNameContainer = styled.div`\n background-color: #b6d9ee;\n width: 100%;\n //height: 100%;\n min-height: 45px;\n`\nconst WaveContainer = styled.div`\n background: url(${waveBluePng}) no-repeat;\n width: 100%;\n min-height: 45px;\n background-size: 100% 100%;\n`\n\ninterface RefresherEventDetail {\n complete(): void;\n}\n\nconst handleRefresh = (event: CustomEvent) => {\n setTimeout(() => {\n // Any calls to load data go here\n // window.location.reload()\n\n event.detail.complete();\n }, 1000);\n}\n\ninterface Params {\n eventcode: string\n}\n\n\n\nconst WelcomePage: React.FC = () => {\n const eventState = useSelector((state: any) => state.event)\n const { eventcode } = useParams()\n useAuthRefresh();\n\n const history = useHistory()\n const dispatch = useDispatch()\n\n useEffect(() => {\n const elementScroll = document.getElementById(\"scrollBody\")\n if (elementScroll) {\n elementScroll.scroll(0,0)\n }\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }, [])\n\n const goToBids = () => {\n history.push(\"/\" + eventcode + \"/Cart\")\n }\n\n const goToItems = () => {\n history.push(\"/\" + eventcode + \"/auction-items\")\n }\n const eventData = useSelector((state: any) => state.event)\n const userInfo = useSelector((state: any) => state.user)\n const [days, setDays] = useState(undefined)\n const [hours, setHours] = useState(undefined)\n const [mins, setMins] = useState(undefined)\n const [seconds, setSeconds] = useState(undefined)\n const [sponsorImage, setSponsorImage] = useState(\n undefined\n )\n\n // eventopendatecst\n // eventcloseddatecst\n // eventbiddingopencst\n // eventbiddingclosedcst\n\n\n var local = DateTime.local()\n const centralBiddingOpen = DateTime.fromISO(eventData.eventbiddingopencst, {zone: 'America/Chicago'});\n const localDateBiddingOpen = centralBiddingOpen.setZone(local.zoneName)\n const localDateBiddingOpenString = localDateBiddingOpen.toString()\n const centralBiddingClosed = DateTime.fromISO(eventData.eventbiddingclosedcst, {zone: 'America/Chicago'});\n const localDateBiddingClosed = centralBiddingClosed.setZone(local.zoneName)\n const localDateBiddingClosedString = localDateBiddingClosed.toString()\n\n // console.log(local.zoneName)\n // console.log(eventData.eventbiddingclosedcst)\n // console.log(localDateBiddingClosed.toString())\n\n const eventFlag = eventData.eventflag\n const sponsorImages = eventData.sponsorurl\n const cartState = useSelector((state: any) => state.cart)\n\n useEffect(() => {\n if (local >= localDateBiddingOpen) {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventBodyData = {\n url,\n eventcode: eventData.eventcode,\n auctioncode: eventData.auctioncode\n }\n dispatch(fetchEventData(eventBodyData))\n dispatch(setEventCode(eventData.eventcode))\n dispatch(setAuctionCode(eventData.auctioncode))\n dispatch(setPrivacyEventCode(eventData.eventcode))\n }\n\n\n\n }, [])\n\n useEffect(() => {\n if (cartState.status === \"idle\") {\n dispatch(fetchCartData(getEndPoint(CART_ENDPOINT)))\n }\n }, [cartState.status])\n\n useEffect(() => {\n // Init to first image\n let imageIndex = 0\n setSponsorImage(sponsorImages[imageIndex])\n const imageInterval = setInterval(() => {\n if (imageIndex < sponsorImages.length - 1) {\n imageIndex += 1\n } else {\n imageIndex = 0\n }\n setSponsorImage(sponsorImages[imageIndex])\n }, 5000)\n return () => clearInterval(imageInterval)\n }, [sponsorImages])\n\n useEffect(() => {\n const interval = setInterval(() => {\n const then: any = moment(localDateBiddingClosedString)\n const now: any = moment()\n // tslint:disable-next-line\n\n var seconds = then.diff(now, 'seconds')\n var days = Math.floor(seconds/24/60/60);\n var hoursLeft = Math.floor((seconds) - (days*86400));\n var hours = Math.floor(hoursLeft/3600);\n var minutesLeft = Math.floor((hoursLeft) - (hours*3600));\n var minutes = Math.floor(minutesLeft/60);\n var remainingSeconds = seconds % 60;\n function pad(n) {\n return (n < 10 ? \"0\" + n : n);\n }\n // console.log(pad(days) + \":\" + pad(hours) + \":\" + pad(minutes) + \":\" + pad(remainingSeconds))\n\n setHours(pad(hours))\n setDays(pad(days))\n setMins(pad(minutes))\n setSeconds(pad(remainingSeconds))\n }, 1000)\n return () => clearInterval(interval)\n }, [localDateBiddingClosedString, days, hours, mins, seconds])\n\n return (\n<>\n {/*style={{--keyboard-offset: 0 !important;}}*/}\n {/**/}\n\n {/**/}\n \n \n \n \n {eventData.eventname && (\n \n {eventData.eventname}\n \n )}\n {userInfo && (\n \n Welcome, {userInfo.firstname} {userInfo.lastname}\n \n )}\n {userInfo && (\n \n {userInfo.bidderdisplaynumber}\n \n )}\n \n \n \n {eventFlag === \"eventclosed\" && (\n \n \n \n {\"THE EVENT IS NOW CLOSED.\"}\n \n \n \n )}\n {eventFlag === \"biddingclosed\" && (\n \n \n \n {\"BIDDING IS NOW CLOSED.\"}\n \n \n \n )}\n {eventFlag === \"biddingclosed\" && (\n \n \n \n {\"PLEASE PROCEED TO CHECKOUT.\"}\n \n \n \n )}\n \n\n {eventFlag === \"eventnotopen\" || eventFlag === \"biddingnotopen\" && (\n \n \n \n BIDDING OPENS\n \n \n {localDateBiddingOpenString}\n \n \n {localDateBiddingOpenString}\n \n \n \n \n BIDDING CLOSES\n \n \n {localDateBiddingClosedString}\n \n \n {localDateBiddingClosedString}\n \n \n \n )}\n {eventFlag === \"biddingopen\" && (\n \n \n \n BIDDING CLOSES\n \n \n {localDateBiddingClosedString}\n \n \n {localDateBiddingClosedString}\n \n \n {(Number(days) > 0) &&\n \n {days}\n days\n \n }\n {(Number(hours) > 0) &&\n \n {hours}\n hours\n \n }\n {(Number(mins) > 0) &&\n \n {mins}\n mins\n \n }\n {(Number(days) < 1) &&\n \n {seconds}\n seconds\n \n }\n \n )}\n\n {(eventFlag === \"biddingclosed\" && (cartState.auctionswon && cartState.auctionswon.length > 0)) && (\n \n \n \n Go to My Cart\n \n \n \n )}\n {eventFlag === \"eventnotopen\" && (\n\n \n View Auction Items\n \n\n )}\n {eventFlag === \"biddingopen\" && (\n \n {(cartState.auctionswon && cartState.auctionswon.length > 0) && (\n \n \n Go to My Cart\n \n \n )}\n \n \n View Auction Items\n \n \n \n )}\n \n
\n \n\n\n
\n
\n AuctionSnapâ„¢. All Rights Reserved by DonorSnap.{\" \"}
\n \n Privacy Policy\n \n
\n
\n {/**/}\n\n {/**/}\n\n )\n}\n\nexport default WelcomePage\n","import React from \"react\";\nimport {\n IonCard,\n IonCardContent,\n IonCardHeader,\n IonCardTitle,\n IonCol,\n IonGrid,\n IonRow,\n IonThumbnail\n} from \"@ionic/react\";\nimport {useSelector} from \"react-redux\";\n\ntype Props = {\n animationRef: any\n message: string\n location: string\n}\n\nconst SlideshowDetailPage: React.FC = ({animationRef, message, location}) => {\n const currencyFormat = (num: Number) => {\n return '$' + num.toFixed(0) //.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n const activeStateItem = useSelector((state: any) => state.slideshowItems.activeItem);\n const activeAuctionItems = useSelector((state: any) => state.slideshowItems.activeAuctionItems);\n\n const getHighBidderText = (highbidder: string) => {\n if (highbidder && highbidder?.length > 0) {\n return \"High Bidder: \" + highbidder\n }\n else {\n return \"No High Bidder\"\n }\n }\n\n return (\n <>\n \n \n \n {location ? location + ' items' : 'All Items'}\n \n \n \n \n \n {activeAuctionItems?.map((item) => {\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n {item?.name}\n \n \n \n \n {item?.quantityavailable > 0 ? currencyFormat(Number(item?.lastbid)) : 'SOLD OUT'}\n \n \n \n \n \n {item?.buyitnowprice > 0 && currencyFormat(Number(item?.buyitnowprice)) + ' Buy It Now'}\n \n \n \n {Number(item?.numberofbids) > 0 &&\n <>\n {item?.numberofbids} Bids\n \n }\n {Number(item?.quantityavailable) > 0 &&\n <>\n {item?.quantityavailable} Available\n \n }\n <>\n {message}\n \n \n \n \n {Number(item?.quantityavailable) > 0 &&\n <>\n {getHighBidderText(item?.highbidder)}\n \n }\n \n \n \n \n \n )\n })}\n \n\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* {activeStateItem?.name}*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* {currencyFormat(Number(activeStateItem?.lastbid))}*/}\n {/* */}\n {/* */}\n {/* /!**!/*/}\n {/* /!* *!/*/}\n {/* /!* {currencyFormat(Number(slideShowRec?.buyitnowprice))} Buy It Now*!/*/}\n {/* /!* *!/*/}\n {/* /!**!/*/}\n {/* */}\n {/* */}\n {/* */}\n\n\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n \n \n \n )\n}\nexport default SlideshowDetailPage","import styled from '@emotion/styled'\nimport {\n IonCard,\n IonCardContent,\n IonCardHeader, IonCardTitle,\n IonCol,\n IonIcon,\n IonImg,\n IonNote,\n IonRow,\n IonSpinner,\n IonGrid,\n IonText,\n Animation,\n CreateAnimation, IonCardSubtitle,\n createAnimation, IonLoading, IonToolbar, IonTitle, IonButtons, IonButton\n} from '@ionic/react'\nimport \"../../theme/variables.css\"\nimport ScreenWakeLock from 'screen-wake-lock';\nimport Wrapper from \"../../components/Header/Wrapper\"\nimport React, { useEffect, useRef, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport {Redirect, useHistory, useLocation, useParams} from 'react-router'\nimport { getSlideshowData } from '../../util/api/Slideshow'\nimport {getEndPoint, SLIDESHOW} from \"../../util/api/enpoints\";\nimport {fetchEventData, setAuctionCode, setEventCode} from \"../../redux/slices/eventSlice\";\nimport {setPrivacyEventCode} from \"../../redux/slices/privacyPolicySlice\";\nimport userEvent from \"@testing-library/user-event\";\nimport moment from \"moment\";\nimport {HubConnection, HubConnectionBuilder, JsonHubProtocol, LogLevel} from \"@microsoft/signalr\";\nimport {\n fetchSlideshowItemsData, updateActiveAuctionItems,\n updateActiveItem,\n updateSlideshowItemOnBid\n} from \"../../redux/slices/slideShowItemSlice\";\nimport store from \"../../redux/store\";\nimport {updateItemOnBid} from \"../../redux/slices/auctionItemsSlice\";\nimport SlideshowDetailPage from \"./SlideshowDetailPage\";\nimport {current} from \"@reduxjs/toolkit\";\nimport { FullScreen, useFullScreenHandle } from \"react-full-screen\";\nimport Img from \"../../components/Header/Img\";\nimport {expandOutline} from \"ionicons/icons\";\nimport {getConfig} from \"../../AppConfig\";\n\ninterface Params {\n eventcode: string,\n location?: string,\n timeframe?: string\n // list?: string\n pagecount?: string\n}\n\nconst { apiUrl } = getConfig()\nconst PROD_URL = apiUrl + \"/hubs/auction\"\n\nconst SlideshowPage: React.FC = () => {\n const handle = useFullScreenHandle();\n let uriLocation = useLocation();\n const list = uriLocation.pathname.includes('/list')\n const animationRef = useRef < HTMLIonCardElement >();\n const { eventcode, location, timeframe, pagecount } = useParams()\n const dispatch = useDispatch()\n\n const duration = Number((Number(timeframe) > 0 ? Number(timeframe) * 1000 : 10000))\n const [message, setMessage] = useState(undefined)\n const [lstMessage, setListMessage] = useState(undefined)\n\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : 'app'\n\n const slideshowStateItems = useSelector((state: any) => state.slideshowItems);\n const auctionStateItems = useSelector((state: any) => state.slideshowItems.auctionitems);\n const activeStateItem = useSelector((state: any) => state.slideshowItems.activeItem);\n const eventData = useSelector((state: any) => state.event)\n\n useEffect(() => {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: eventcode,\n auctioncode: auctioncode\n }\n dispatch(fetchEventData(eventData))\n dispatch(setEventCode(eventcode))\n dispatch(setAuctionCode(auctioncode))\n dispatch(setPrivacyEventCode(eventcode))\n }, [eventcode, auctioncode])\n\n\n async function start(connection: any) {\n try {\n await connection.start();\n } catch (err) {\n console.log(err);\n }\n };\n\n const currencyFormat = (num: Number) => {\n return '$' + num.toFixed(0) //.replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n useEffect(() => {\n var url = getEndPoint(SLIDESHOW) + '/' + auctioncode + '/' + eventcode\n if (location) {\n url += '/' + location\n }\n store.dispatch(fetchSlideshowItemsData(url))\n }, [])\n\n useEffect(() => {\n // localStorage.setItem(\"token\", slideshowStateItems.token)\n let connection: HubConnection\n\n const token = slideshowStateItems.token\n if (token) {\n connection = new HubConnectionBuilder()\n .withUrl(PROD_URL, { accessTokenFactory: () => { return token as string } })\n .withAutomaticReconnect()\n .withHubProtocol(new JsonHubProtocol())\n .configureLogging(LogLevel.Debug)\n .build()\n\n connection?.on(\"ReceiveJSON\", (msg: any) => {\n const parsedData = JSON.parse(msg.jsonString)\n\n if (parsedData.type === 'itemupdate') {\n store.dispatch(\n updateSlideshowItemOnBid({\n ...parsedData\n })\n )\n }\n })\n\n start(connection);\n }\n // setSlideShowRecs(slideshowStateItems.auctionitems)\n }, [slideshowStateItems.auctionitems])\n\n useEffect(() => {\n let imageIndex = 0;\n let currentListItemCount = 0\n const listItemsCount = (Number(pagecount) > 0 ? Number(pagecount) : 6);\n\n const currentListArray = auctionStateItems?.slice(currentListItemCount, currentListItemCount+listItemsCount)\n if (currentListArray && (currentListArray.length + currentListItemCount) >= auctionStateItems.length) {\n currentListItemCount = 0\n }\n else {\n currentListItemCount += listItemsCount\n }\n store.dispatch(updateActiveAuctionItems(currentListArray))\n\n if ((!list && auctionStateItems && auctionStateItems.length > 0) || (auctionStateItems && auctionStateItems.length >= listItemsCount && list)) {\n const imageInterval = setInterval(() => {\n // handleEndPlayAnimation()\n if (imageIndex < auctionStateItems?.length - 1) {\n imageIndex += 1;\n\n const currentListArray = auctionStateItems.slice(currentListItemCount, currentListItemCount+listItemsCount)\n if (currentListArray && (currentListArray.length + currentListItemCount) >= auctionStateItems.length) {\n currentListItemCount = 0\n }\n else {\n currentListItemCount += listItemsCount\n }\n store.dispatch(updateActiveAuctionItems(currentListArray))\n } else {\n imageIndex = 0;\n }\n store.dispatch(updateActiveItem(auctionStateItems[imageIndex]))\n handleBeginPlayAnimation()\n }, duration);\n return () => clearInterval(imageInterval);\n }\n }, [auctionStateItems]);\n\n useEffect(() => {\n const interval = setInterval(() => {\n const then: any = moment(activeStateItem?.closing, \"YYYY-MM-DD hh:mm:ss\")\n const now: any = moment()\n\n const calcSeconds = then.diff(now, 'seconds')\n const days = Math.floor(calcSeconds / 24 / 60 / 60);\n const hoursLeft = Math.floor((calcSeconds) - (days * 86400));\n const hours = Math.floor(hoursLeft / 3600);\n const minutesLeft = Math.floor((hoursLeft) - (hours * 3600));\n const minutes = Math.floor(minutesLeft / 60);\n const remainingSeconds = calcSeconds % 60;\n\n function pad(n) {\n return (n < 10 ? \"0\" + n : n);\n }\n\n // console.log(pad(days) + \":\" + pad(hours) + \":\" + pad(minutes) + \":\" + pad(remainingSeconds))\n if (days > 0) {\n setMessage( \"Bidding Ends in \" + pad(days) + \"d \" + pad(hours) + \"h \" + pad(minutes) + 'm ' + pad(remainingSeconds) + 's')\n setListMessage(pad(days) + \"d \" + pad(hours) + \"h \" + pad(minutes) + 'm ' + pad(remainingSeconds) + 's')\n }\n else if (hours > 0) {\n setMessage( \"Bidding Ends in \" + pad(hours) + \"h \" + pad(minutes) + 'm ' + pad(remainingSeconds) + 's')\n setListMessage(pad(hours) + \"h \" + pad(minutes) + 'm ' + pad(remainingSeconds) + 's')\n }\n else if (minutes > 0) {\n setMessage( \"Bidding Ends in \" + pad(minutes) + \"m \" + pad(remainingSeconds) + 's')\n setListMessage(pad(minutes) + 'm ' + pad(remainingSeconds) + 's')\n } else if (remainingSeconds > 0) {\n setMessage( \"Bidding Ends in \" + pad(remainingSeconds) + 's')\n setListMessage(pad(remainingSeconds) + 's')\n }\n else {\n setMessage('Bidding Closed!')\n }\n }, 1000)\n return () => clearInterval(interval)\n }, [activeStateItem?.closing])\n\n\n const pad = (n) => {\n return (n < 10 ? \"0\" + n : n);\n }\n\n const handleBeginPlayAnimation = () => {\n if (animationRef.current !== null) {\n const animation = createAnimation()\n .addElement(animationRef.current)\n .duration(1000)\n // .fromTo(\n // 'transform',\n // 'translateX(0)',\n // 'translateX(600px) '\n // ).fromTo('opacity', '1', '0.05')\n // .fromTo(\n // 'transform',\n // 'translateX(600px)',\n // 'translateX(0) '\n // )\n .fromTo('opacity', '1', '0')\n .easing('ease-out')\n .duration(1000)\n .fromTo('opacity', '0.01', '1')\n .easing('ease-in')\n\n animation.play();\n }\n };\n\n const getHighBidderText = (highbidder: string) => {\n if (highbidder && highbidder?.length > 0) {\n return \"High Bidder: \" + highbidder\n }\n else {\n return \"No High Bidder\"\n }\n }\n\n const getStatusText = (activeStateItem) => {\n if (activeStateItem?.quantityavailable > 0) {\n return currencyFormat(Number(activeStateItem?.lastbid))\n }\n else if (activeStateItem?.quantityunlimited) {\n return \"Unlimited\"\n }\n else {\n return \"Sold Out\"\n }\n }\n\n return (\n <>\n \n \n\n \n \n \n \n \n {!handle.active &&\n \n \n \n \n \n \n }\n\n \n \n\n \n\n {(activeStateItem && !list) &&\n \n \n \n {location ? location + ' items' : 'All Items'}\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n {activeStateItem?.name}\n \n {(activeStateItem && activeStateItem?.donatedby && activeStateItem?.donatedby.length > 0) &&\n \n Donated By: {activeStateItem?.donatedby}\n \n }\n {/**/}\n \n {activeStateItem?.description}\n \n \n \n\n \n \n\n \n \n {getStatusText(activeStateItem)}\n \n \n \n \n {Number(activeStateItem?.buyitnowprice) > 0 &&\n currencyFormat(Number(activeStateItem?.buyitnowprice))\n }\n \n \n \n \n {Number(activeStateItem?.fairmarketvalue) > 0 &&\n currencyFormat(Number(activeStateItem?.fairmarketvalue))\n }\n \n \n \n \n \n {activeStateItem?.quantityavailable > 0 ?\n <>\n {activeStateItem?.numberofbids} Bids\n {activeStateItem?.quantityavailable} Available\n \n :\n <>\n {getHighBidderText(activeStateItem?.highbidder)}\n \n }\n \n \n {Number(activeStateItem?.buyitnowprice) > 0 &&\n Buy It Now\n }\n \n \n {Number(activeStateItem?.fairmarketvalue) > 0 &&\n Fair Market Value\n }\n \n \n {activeStateItem?.quantityavailable > 0 &&\n \n \n {getHighBidderText(activeStateItem?.highbidder)}\n \n \n }\n \n \n \n {message}\n \n \n \n \n \n \n \n }\n {(activeStateItem && list) &&\n <>\n \n \n }\n \n \n )\n}\n\nexport default SlideshowPage\n","import {useHistory, useParams} from \"react-router\";\nimport {useEffect} from \"react\";\nimport {useDispatch, useSelector} from \"react-redux\";\nimport {\n fetchEventData,\n setAuctionCode,\n setCartReset,\n setEventCode,\n setEventReset,\n setForceLogout\n} from \"../redux/slices/eventSlice\";\nimport {AUCTION_ITEM_DETAIL_ENDPOINT, AUCTION_ITEMS_ENDPOINT, CART_ENDPOINT, getEndPoint} from \"../util/api/enpoints\";\nimport useScript from \"./useScript\";\nimport {fetchAuctionItemsData} from \"../redux/slices/auctionItemsSlice\";\nimport {fetchAuctionItemDetailsData} from \"../redux/slices/auctionItemDetailsSlice\";\nimport store from \"../redux/store\";\nimport {fetchCartData} from \"../redux/slices/cartSlice\";\nimport {updateStateOnLogout} from \"../redux/slices/userSlice\";\n\nconst useResetEvent = () => {\n const dispatch = useDispatch()\n const history = useHistory()\n const eventData = useSelector((state: any) => state.event)\n const itemid = useSelector((state: any) => state.auctionItemDetails?.itemid)\n const url = getEndPoint('EVENT_ENDPOINT')\n\n useEffect(() => {\n if (eventData.forcelogout) {\n store.dispatch(setForceLogout(false))\n dispatch(updateStateOnLogout())\n localStorage.removeItem(\"token\")\n dispatch({\n type: \"DISCONNECT_SIGNALR\"\n })\n }\n }, [eventData.forcelogout])\n\n useEffect(() => {\n if (eventData.cartreset) {\n console.log('calling cart refresh')\n setCartReset(false)\n store.dispatch(\n fetchCartData(getEndPoint(CART_ENDPOINT))\n )\n }\n\n if (eventData.reset) {\n store.dispatch(setEventReset(false))\n const eventDataBody = {\n url,\n eventcode: eventData.eventcode,\n auctioncode: eventData.auctioncode\n }\n dispatch(fetchEventData(eventDataBody))\n dispatch(setEventCode(eventData.eventcode))\n dispatch(setAuctionCode(eventData.auctioncode))\n dispatch(\n fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT))\n )\n\n if (itemid) {\n dispatch(\n fetchAuctionItemDetailsData({\n url: getEndPoint(AUCTION_ITEM_DETAIL_ENDPOINT),\n itemId: itemid,\n })\n )\n }\n }\n }, [eventData.reset, eventData.cartreset])\n\n return\n}\n\nexport default useResetEvent","const formatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n})\n\nexport const formatMoney = (num: number) => {\n return formatter.format(num)\n}\n","import React, {useEffect, useRef, useState} from \"react\";\nimport {\n IonBackdrop,\n IonButton, IonCheckbox,\n IonCol,\n IonContent, IonGrid,\n IonHeader, IonIcon, IonInput,\n IonItem,\n IonLabel, IonModal,\n IonRow,\n IonTabButton, IonTitle, IonToast,\n IonToolbar\n} from \"@ionic/react\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Text from \"../CommonStyles/Text\";\nimport \"./iframe.css\"\nimport axios from \"axios\";\nimport styled from \"@emotion/styled\";\nimport './index.css';\nimport {useHistory} from \"react-router\";\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport {OverlayEventDetail} from \"@ionic/react/dist/types/components/react-component-lib/interfaces\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {usStates} from \"../../constants\";\nimport CurrencyInput from \"react-currency-input-field\";\nimport store from \"../../redux/store\";\nimport {cartOutline, create, createOutline} from \"ionicons/icons\";\nimport {getConfig} from \"../../AppConfig\";\n\n// function ModalContent(props: { children: ReactNode }) {\n// return null;\n// }\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nconst SpanImage = styled.span`\n margin-top: 5px;\n`\n\nconst Image = styled.img`\n height: 30px;\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 33px;\n font-weight: bold;\n text-align: center;\n }\n h2 {\n font-family: var(--ion-font-family);\n font-size: 26px;\n //font-weight: bold;\n text-align: center;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n `\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Select = styled(\"select\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst Option = styled(\"option\")`\n box-sizing: border-box;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`\n\n\nconst RegistrationPage = ({storeData, setStoreData, item, eventcode, auctioncode}) => {\n const history = useHistory()\n const [toastState, setToastState] = useState({display: false, goback: false, message: ''})\n const [groupName, setGroupName] = useState('')\n const [groupModal, setGroupModal] = React.useState({active: false, groupName: '', groupId: \"\"})\n const [messageModal, setMessageModal] = React.useState({active: false, message: '', title: ''})\n const [guestModal, setGuestModal] = React.useState({active: false, groupName: '', guestId: \"\", guestName: \"\"})\n const [registrationId, setRegistrationId] = React.useState('')\n const [guestDefaultData, setGuestDefaultData] = React.useState({})\n const [fieldListData, setFieldListData] = React.useState({guestlist: [], guestfieldslist:[], guestlookuplist: [], selectedregistrationid: null})\n const [overrideEdit, setOverrideEdit] = React.useState(true)\n const [currentGuest, setCurrentGuest] = React.useState({guestid: 0})\n const [storeGroups, setStoreGroups] = React.useState([])\n const [errorData, setErrorData] = React.useState([])\n const modal = useRef(null)\n const { apiUrl } = getConfig()\n const storeguestUrl = `${apiUrl}/storeguest`\n\n // useEffect(() => {\n // if (fieldListData.selectedregistrationid) {\n // console.log('setting registrtion id')\n // setRegistrationId(fieldListData.selectedregistrationid)\n // }\n // }, [fieldListData])\n\n useEffect(() => {\n if (storeData?.hascheckedout) {\n getStoreGroups()\n }\n }, [storeData])\n\n useEffect(() => {\n var newValues = {}\n fieldListData.guestfieldslist.map(field => {\n const fieldValue = \"fieldvalue\" + field.fieldcontrol.toString()\n newValues[field.fieldid] = field[fieldValue] ? field[fieldValue] : ''\n })\n setGuestDefaultData(newValues)\n }, [fieldListData.guestfieldslist])\n\n useEffect(() => {\n if (registrationId === 'add_new') {\n getStoreGuestData(currentGuest.guestid, true)\n }\n else if (registrationId) {\n getStoreGuestData(currentGuest.guestid, false)\n }\n }, [registrationId])\n\n useEffect(() => {\n var copyDataObject = {...fieldListData}\n const copyGuestFieldsList = fieldListData.guestfieldslist.map(guestFL => {\n var oeOv = guestFL.fieldreadonly\n if (overrideEdit === false) {\n oeOv = false\n }\n return {...guestFL, \"overridereadonly\": oeOv}\n })\n copyDataObject['guestfieldslist'] = copyGuestFieldsList\n\n setFieldListData(copyDataObject)\n }, [overrideEdit])\n\n useEffect(() => {\n setOverrideEdit(true)\n setRegistrationId('')\n setGuestDefaultData({})\n setFieldListData({guestlist: [], guestfieldslist:[], guestlookuplist: [], selectedregistrationid: null})\n }, [guestModal.active === false])\n\n const getStoreGroups = async () => {\n const body = {}\n const token = localStorage.getItem('tokenstore')\n\n const {data} = await axios.get(storeguestUrl, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'success') {\n setStoreGroups(parsedData?.groups)\n }\n }\n\n const getStoreGuestData = async (storeguestid, addNew) => {\n if (storeguestid) {\n var body = {\"guestid\": storeguestid}\n\n if (addNew) {\n body['registrationid'] = -1\n }\n else if (Number(registrationId) >= 0) {\n body['registrationid'] = Number(registrationId)\n }\n\n const token = localStorage.getItem('tokenstore')\n const storeguestUrl = `${apiUrl}/storeguest`\n\n const {data} = await axios.post(storeguestUrl, body,{headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'success') {\n var copyDataObject = {...parsedData}\n const copyGuestFieldsList = parsedData.guestfieldslist.map(guestFL => {\n return {...guestFL, \"overridereadonly\": guestFL.fieldreadonly}\n })\n copyDataObject['guestfieldslist'] = copyGuestFieldsList\n setFieldListData(copyDataObject)\n }\n }\n\n }\n const putStoreGuestData = async (body) => {\n const token = localStorage.getItem('tokenstore')\n const storeguestUrl = `${apiUrl}/storeguest`\n\n const {data} = await axios.put(storeguestUrl, body,{headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'success') {\n console.log(\"SUCCESS\")\n }\n }\n\n const renameGroup = (guest) => {\n if (guest.allowchangegroupname) {\n setGroupName(guest.groupname)\n setGroupModal({active: true, groupName: guest.groupname, groupId: guest.groupid})\n }\n }\n\n const manageGuest = (guest, storeguest) => {\n setCurrentGuest(guest)\n getStoreGuestData(guest.guestid, false)\n setGuestModal({active: true, groupName: storeguest?.groupname, guestId: guest.guestid, guestName: guest.guestname})\n }\n\n const renameGroupText = async () => {\n const body = {\n \"groupid\": groupModal.groupId,\n \"groupname\": groupName\n }\n const token = localStorage.getItem('tokenstore')\n\n const groupRenameUrl = `${apiUrl}/storeguestgroupname`\n const {data} = await axios.put(groupRenameUrl, body, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'failure') {\n setMessageModal({active: true, message: parsedData.message, title: 'Error Saving Group Name'})\n }\n else {\n let storeGuest = storeGroups.find(\n (item) => item.groupid === groupModal.groupId\n )\n storeGuest.groupname = groupName\n setGroupModal({active: false, groupName: '', groupId:''})\n }\n }\n\n const getGroupItems = () => {\n if (storeGroups && storeGroups.length > 0) {\n return storeGroups?.map((storeGuest) => {\n if (storeGuest && storeGuest?.groupname?.length > 0) {\n const guestRows = storeGuest.guests?.map((guest) => {\n return (\n <>\n \n \n {manageGuest(guest, storeGuest)}}>\n \n \n \n {guest.guestname}\n \n \n \n \n )\n })\n return (\n <>\n \n \n {renameGroup(storeGuest)}}>\n {storeGuest.allowchangegroupname &&\n \n \n \n }\n {storeGuest?.groupname}\n \n \n \n\n {guestRows}\n \n )\n // return fullRowCol\n }\n })\n }\n }\n\n\n // useEffect(() => {\n // console.log(storeGroups)\n // updateStoreGuests()\n // }, [storeGroups])\n\n // const updateStoreGuests = () => {\n // storeGroups.map(storeGuest => {\n // if (storeGuest.guests && storeGuest.guests.length > 0) {\n // storeGuest.guests.map(guestStuff => {\n // console.log(guestStuff)\n // })\n // }\n // console.log(guestModal.guestName)\n // // guest.map(guest2 => {\n // // console.log(guest2)\n // // })\n // })\n // // guest.guestid\n // // guest.guestname\n // }\n\n function onWillDismiss(ev: CustomEvent) {\n setGroupModal({active: false, groupName: '', groupId:''})\n }\n\n const getGroupRenameModal = () => {\n if (groupModal.active) {\n return (\n <>\n \n
\n \n \n \n
{\"Rename Your Group\"}
\n
\n
\n \n \n
{groupModal.groupName}
\n
\n
\n\n \n \n \n {\n setGroupName(e.target.value)\n }}\n />\n {/* setGroupName(e.target.value)} style={{border: \"1px solid #66666660\"}} className=\"mi-outlined\" clearOnEdit value={groupName}>*/}\n \n \n \n \n \n { setGroupModal({active: false, groupName: '', groupId:''})}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Cancel\n \n \n \n { renameGroupText() }} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Save\n \n \n \n
\n
\n \n )\n }\n else {\n return (\n <>\n )\n }\n }\n\n const getMessageModal = () => {\n if (messageModal.active) {\n return (\n <>\n \n
\n \n \n \n
{messageModal.title}
\n
\n
\n \n \n
{messageModal.message}
\n
\n
\n \n \n { setMessageModal({active: false, message: '', title: ''})}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Ok\n \n \n \n
\n
\n \n )\n }\n else {\n return (\n <>\n )\n }\n }\n\n const getEditIcon = () => {\n if (fieldListData.selectedregistrationid > 0 && registrationId !== 'add_new') {\n return (\n \n {setOverrideEdit(!overrideEdit)}}>\n \n \n \n \n )\n }\n else {\n return (\n <>\n )\n }\n }\n\n const getFieldOptions = (guestData) => {\n\n // console.log(guestData[fieldValue])\n\n // const dataObj = guestDefaultData\n // var newObject = {...dataObj}\n // newObject[guestData.fieldid] = fieldValue\n // setGuestDefaultData(newObject)\n\n // console.log(guestData)\n // console.log(fieldListData.guestfieldslist)\n const fieldValue = \"fieldvalue\" + guestData.fieldcontrol.toString()\n\n var options = [<>]\n\n if (fieldListData && fieldListData?.guestlookuplist && fieldListData?.guestlookuplist.length > 0) {\n const filteredOptions = fieldListData?.guestlookuplist?.filter(guests => guests.lookupfieldid === guestData.fieldid)\n\n // console.log(filteredOptions)\n if (filteredOptions && filteredOptions.length > 0) {\n options = filteredOptions.map((guestListDataOption, index) => {\n return (\n \n )\n })\n }\n }\n\n\n return options\n }\n\n const submitData = async () => {\n setErrorData([])\n\n // Check for errors on required fields\n var fieldData = []\n var errorArray = []\n var error = false\n fieldListData?.guestfieldslist?.map((guestData) => {\n const fieldValueString = \"fieldvalue\" + guestData.fieldcontrol\n var dataToAppend = {\"fieldid\":guestData.fieldid}\n if (guestData.fieldrequired && !guestDefaultData[guestData.fieldid]) {\n errorArray.push({fieldid: guestData.fieldid, message: guestData.fieldlabel + ' is required.'})\n error = true\n }\n if (guestDefaultData[guestData.fieldid]) {\n dataToAppend[fieldValueString] = guestDefaultData[guestData.fieldid]\n fieldData.push(dataToAppend)\n }\n })\n\n if (!error) {\n var body = {\"guestfieldslist\": fieldData, \"guestid\": guestModal.guestId}\n\n if (registrationId !== 'add_new' && Number(registrationId) > 0) {\n body['registrationid'] = Number(registrationId)\n }\n else if (registrationId === 'add_new') {\n body['registrationid'] = -1\n }\n\n await putStoreGuestData(body)\n getStoreGroups()\n setGuestModal({active: false, groupName: '', guestId: '', guestName: ''})\n }\n else {\n setErrorData(errorArray)\n }\n }\n\n\n const updateGuestData = (value, guestData) => {\n const dataObj = guestDefaultData\n var newObject = {...dataObj}\n newObject[guestData.fieldid] = value\n setGuestDefaultData(newObject)\n\n const item = errorData.find(item => item.fieldid === guestData.fieldid)\n if (item && value) {\n const newError = errorData.filter(removeItem => removeItem.fieldid !== guestData.fieldid)\n setErrorData(newError)\n }\n else if (guestData.fieldrequired && !value) {\n const errorDataCopy = errorData\n errorDataCopy.push({fieldid: guestData.fieldid, message: guestData.fieldlabel + ' is required.'})\n setErrorData(errorDataCopy)\n }\n }\n\n const getErrorDataObject = (fieldid) => {\n return errorData.find(errorControl5 => errorControl5.fieldid === fieldid)\n }\n\n const getGuestModal = () => {\n if (guestModal.active) {\n return (\n <>\n \n
\n \n \n \n
{\"Edit Guest Information\"}
\n
\n
\n \n \n
{guestModal.groupName}
\n
\n
\n \n \n {\n setRegistrationId(e.currentTarget.value)\n }}\n >\n \n \n {fieldListData?.guestlist?.map((guestmapList, index) => {\n return (\n \n )\n })}\n \n \n \n {/**/}\n {/* */}\n {/*
or add new guest
*/}\n {/*
*/}\n {/*
*/}\n {fieldListData?.guestfieldslist?.map((guestData) => {\n var editIcon = (<>)\n var size = \"12\"\n if (guestData.fieldlabel === 'First Name' && fieldListData.selectedregistrationid > 0 && registrationId !== 'add_new') {\n editIcon = getEditIcon()\n size = \"11\"\n }\n const errorCheckObj = getErrorDataObject(guestData.fieldid)\n if (guestData.fieldcontrol === 1) {\n return (\n <>\n \n {editIcon}\n \n \n \n {guestData.fieldlabel}\n \n \n {\n // setState(e.currentTarget.value)\n // }}\n // defaultValue={userData.addressInfo.state}\n >\n \n \n \n \n \n \n \n {errorCheckObj &&\n \n \n {errorCheckObj.message}\n \n \n }\n \n )\n }\n else if (guestData.fieldcontrol === 2) {\n return (\n <>\n \n {editIcon}\n \n \n \n {guestData.fieldlabel}\n \n \n {updateGuestData(e.target.value, guestData)}}\n >\n {getFieldOptions(guestData)}\n \n \n \n \n \n {errorCheckObj &&\n \n \n {errorCheckObj.message}\n \n \n }\n \n )\n }\n else if (guestData.fieldcontrol === 3) {\n return (\n <>\n \n {editIcon}\n \n \n \n {guestData.fieldlabel}\n \n \n {updateGuestData(e.target.value, guestData)}}\n name={guestData.fieldlabel} style={{width: '100%'}}\n />\n \n \n \n \n {errorCheckObj &&\n \n \n {errorCheckObj.message}\n \n \n }\n \n )\n }\n else if (guestData.fieldcontrol === 4) {\n return (\n <>\n \n {editIcon}\n \n \n \n {guestData.fieldlabel}\n \n \n updateGuestData(value, guestData)}\n />\n \n \n \n \n {errorCheckObj &&\n \n \n {errorCheckObj.message}\n \n \n }\n \n )\n }\n else if (guestData.fieldcontrol === 5) {\n return (\n <>\n \n {editIcon}\n \n {updateGuestData(e.target.value, guestData)}}\n name={guestData.fieldlabel} style={{width: '100%'}}\n />\n \n \n {errorCheckObj &&\n \n \n {errorCheckObj.message}\n \n \n }\n \n )\n }\n })}\n \n \n { setGuestModal({active: false, groupName: '', guestId: '', guestName: ''})}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Cancel\n \n \n \n { submitData() }} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Save\n \n \n \n
\n
\n \n )\n }\n else {\n return (\n <>\n )\n }\n\n }\n\n\n return (\n <>\n {\n if (toastState.goback) {\n history.goBack()\n }\n setToastState({\n display: false,\n goback: false,\n message: ''\n })\n }}\n cssClass={'custom-toast'}\n message={toastState.message}\n duration={3000}\n />\n\n {getGroupRenameModal()}\n {getGuestModal()}\n {getMessageModal()}\n\n <>\n {item?.heading?.length > 0 &&\n \n {item.heading}\n \n }\n\n {getGroupItems()}\n \n \n )\n}\n\nexport default RegistrationPage","import React, {useEffect, useRef, useState} from \"react\";\nimport {\n IonBackdrop,\n IonButton,\n IonCol,\n IonContent, IonGrid,\n IonHeader, IonInput,\n IonItem,\n IonLabel, IonModal, IonPage,\n IonRow,\n IonTabButton, IonToast,\n IonToolbar,\n IonButtons, IonTitle, useIonModal, IonFooter\n} from \"@ionic/react\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Text from \"../CommonStyles/Text\";\nimport \"./iframe.css\"\nimport axios from \"axios\";\nimport styled from \"@emotion/styled\";\nimport './index.css';\nimport {useHistory} from \"react-router\";\nimport CheckBox from \"../../components/CheckBox/Index\"\nimport {OverlayEventDetail} from \"@ionic/react/dist/types/components/react-component-lib/interfaces\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {usStates} from \"../../constants\";\nimport {car} from \"ionicons/icons\";\nimport CurrencyInput from \"react-currency-input-field\";\nimport RegistrationPage from \"./RegistrationPage\";\nimport {getConfig} from \"../../AppConfig\";\n\n// function ModalContent(props: { children: ReactNode }) {\n// return null;\n// }\n\nconst Span = styled.span`\n padding-left: 0.5em;\n`\n\nconst SpanImage = styled.span`\n margin-top: 5px;\n`\n\nconst Image = styled.img`\n height: 30px;\n`\n\n\nexport const Input = styled(\"input\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`;\n\nconst Select = styled(\"select\")`\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n height: 60px;\n border-radius: 10px;\n background-color: #e0ebf180;\n outline: none;\n border: 1px solid #66666660;\n padding-left: 15px;\n ::placeholder {\n font-size: 14px;\n padding-left: 0px;\n }\n`\n\nconst Option = styled(\"option\")`\n box-sizing: border-box;\n background-color: #0000000d;\n outline: none;\n border: none;\n ::placeholder {\n font-size: 14px;\n padding-left: 4px;\n }\n`\n\nconst ModalContent = styled.div`\n margin-top: 32px;\n margin-left: 32px;\n margin-right: 32px;\n height: 32em;\n text-align: left;\n h1 {\n font-family: var(--ion-font-family);\n font-size: 33px;\n font-weight: bold;\n text-align: center;\n }\n h2 {\n font-family: var(--ion-font-family);\n font-size: 26px;\n //font-weight: bold;\n text-align: center;\n }\n p {\n font-family: var(--ion-font-family);\n }\n letter-spacing: 0px;\n color: #333333;\n `\n\n\nconst MessageModal = ({\n onDismiss,\n message,\n }: {\n onDismiss: (data?: string | null | undefined | number, role?: string) => void;\n message: string;\n}) => {\n const inputRef = useRef(null);\n return (\n \n \n \n Complete Registration\n \n \n \n \n {message}\n \n \n \n \n \n onDismiss(inputRef.current?.value, 'cancel')} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Cancel\n \n \n \n onDismiss(inputRef.current?.value, 'ok')} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Ok\n \n \n \n \n \n );\n};\n\nconst RegisterPage = ({storeData, setStoreData, selectedTab, setSelectedTab, eventcode, auctioncode}) => {\n const [message, setMessage] = useState('You will not be able to return to this screen to add/edit your guests. Click ok to submit your final registration. If you have any changes to make afterwards, contact the event organizer.');\n const [present, dismiss] = useIonModal(MessageModal, {\n onDismiss: (data: string, role: string) => dismiss(data, role),\n message: message,\n });\n\n function openRegistrationModal() {\n present({\n onWillDismiss: (ev: CustomEvent) => {\n if (ev.detail.role === 'ok') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event/`);\n }\n },\n });\n }\n\n function onWillDismiss(ev: CustomEvent) {\n if (ev.detail.role === 'confirm') {\n console.log('confirm')\n }\n setQuantityModal({active: false, quantity: 0, item:''})\n }\n\n const [itemQuantity, setItemQuantity] = React.useState({})\n const [itemPrice, setItemPrice] = React.useState({})\n const [cryptogram, setCryptogram] = useState('')\n const [paymentProcessFeesCheckbox, setPaymentProcessFeesCheckbox] = useState(false)\n const [toastState, setToastState] = useState({display: false, goback: false, message: ''})\n const [isLoading, setIsLoading] = useState(false)\n const [additionalDonation, setAdditionalDonation] = useState(0)\n const [promoCodeAmount, setPromoCodeAmount] = useState(0)\n const [promoCode, setPromoCode] = useState(\"\")\n const [orderTotal, setOrderTotal] = useState(0)\n const [subtotalTotal, setSubtotalTotal] = useState(0)\n const [ccTotal, setCCTotal] = useState(0)\n const [ccTotalFee, setCCTotalFee] = useState(0)\n const [finishCheckout, setFinishCheckout] = useState(false)\n\n const [firstname, setFirstName] = useState(\"\")\n const [lastname, setLastName] = useState(\"\")\n const [address1, setAddress1] = useState(\"\")\n const [city, setCity] = useState(\"\")\n const [state, setState] = useState(\"AL\")\n const [zip, setZip] = useState(\"\")\n const [email, setEmail] = useState(\"\")\n const [paymentmethod, setPaymentMethod] = useState(\"CREDIT\")\n\n const [cartData, setCartData] = React.useState({\n cartitems: [],\n allowpaymentoffees: false,\n hascheckedout: false,\n billme: false,\n ccfee: 0,\n creditcardiframe: 'https://secure.1stpaygateway.net/secure/PaymentHostedForm/v3/CreditCard',\n discountamount: 0,\n discountcode: '',\n hasdiscount: true,\n javascriptfile: 'https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js',\n message: '',\n processorid: \"70802\",\n transactiontype: \"Sale\",\n transcenterid: \"92754\",\n first: \"\",\n last: \"\",\n address: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n email: \"\",\n paymentmethod: \"\",\n optionaltotal: 0,\n subtotal: 0,\n totalamount: 0,\n additionaldonation: 0\n })\n\n const getStoreSetup = async () => {\n setStoreData({\n storewelcomeeventname: '',\n storewelcomeheader: '',\n storewelcomeeventlogourl: '',\n storewelcomebuttonevent: '',\n storewelcomebuttonauction: '',\n storewelcomebuttoneventshow: true,\n storewelcomebuttonauctionshow: true,\n torewelcomefooter: '',\n storewelcomeauctionlink: '',\n tabs: [],\n token: '',\n hascheckedout: false\n })\n\n const body = {auctioncode: auctioncode, eventcode: eventcode}\n const token = localStorage.getItem('tokenstore')\n\n const headers = token ? {'Authorization': `Bearer ${token}`} : {}\n let url = `${apiUrl}/storesetup`\n const {data} = await axios.post(url, body, {headers: headers})\n const parsedJson = JSON.parse(data?.jsonInfo)\n\n if (parsedJson.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedJson.token) {\n setStoreData(parsedJson)\n localStorage.setItem('tokenstore', parsedJson.token)\n }\n else {\n setStoreData(parsedJson)\n }\n }\n\n const [quantityModal, setQuantityModal] = React.useState({active: false, quantity: 0, item: \"\"})\n const [maxQuantityPerTransModel, setMaxQuantityPerTransModal] = React.useState({active: false, maxquantity: 0, name: \"\"})\n\n const { apiUrl } = getConfig()\n const history = useHistory()\n const storeCartAddItemUrl = `${apiUrl}/storecartadditem`\n const cartItemUrl = `${apiUrl}/storecart`\n const storecartdiscount = `${apiUrl}/storecartdiscount`\n const checkoutUrl = `${apiUrl}/storecheckout`\n const storeguestUrl = `${apiUrl}/storeguest`\n const checkoutTab = 'Checkout'\n\n useEffect(() => {\n const quantity = {...itemQuantity}\n const prices = {...itemPrice}\n storeData?.tabs?.map((item, index) => {\n item.sections.map(section => {\n section.data.map(itemdata => {\n if (itemdata && itemdata.id > 0) {\n quantity[itemdata.id] = Number(itemdata.quantity)\n prices[itemdata.id] = '$' + itemdata.price * Number(itemdata.quantity)\n }\n })\n })\n })\n setItemQuantity(quantity)\n setItemPrice(prices)\n }, [storeData])\n\n\n useEffect(() => {\n const donation = Number(additionalDonation)\n const discount = Number(promoCodeAmount)\n const subtotal = Number(subtotalTotal)\n const ccfee = cartData.ccfee / 100\n const ccTotalFee = (ccfee * (subtotal + donation - discount))\n setCCTotal(ccfee)\n setCCTotalFee(ccTotalFee)\n if (paymentProcessFeesCheckbox) {\n setOrderTotal(\n subtotal + donation + ccTotalFee - discount\n )\n }\n else {\n setCCTotal(0)\n setOrderTotal(subtotal + donation - discount)\n }\n }, [\n additionalDonation,\n paymentProcessFeesCheckbox,\n subtotalTotal,\n promoCodeAmount\n ])\n\n\n useEffect(() => {\n if (selectedTab === 'Cart') {\n getCartItems()\n }\n // console.log(selectedTab)\n // const sectionDisplay = getSectionData(selectedTab)\n // console.log(sectionDisplay)\n }, [selectedTab])\n\n useEffect(() => {\n const script = document.createElement(\"script\")\n\n script.src = cartData?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n\n script.setAttribute(\"data-transcenter\", cartData?.transcenterid)\n script.setAttribute(\"data-processor\", cartData?.processorid)\n\n document.body.appendChild(script)\n\n var subtotal = 0\n cartData?.cartitems?.map((item) => {\n subtotal += item.lineamount\n })\n setSubtotalTotal(subtotal)\n\n if (cartData) {\n setFirstName(cartData.first)\n setLastName(cartData.last)\n setAddress1(cartData.address)\n setCity(cartData.city)\n setState(cartData.state)\n setZip(cartData.zip)\n setEmail(cartData.email)\n if (cartData && cartData?.paymentmethod && cartData?.paymentmethod !== \"0\") {\n console.log('setting up payment method - ' + cartData?.paymentmethod)\n setPaymentMethod(cartData.paymentmethod)\n }\n else {\n console.log('setting up payment method - CREDIT')\n setPaymentMethod('CREDIT')\n }\n\n setPromoCode(cartData.discountcode)\n setPromoCodeAmount(cartData.discountamount)\n setAdditionalDonation(cartData.additionaldonation)\n }\n }, [cartData])\n\n useEffect(() => {\n setPaymentMethod('CREDIT')\n\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const processPayment = (e: any) => {\n if (e.data.firstpay) {\n const ccData = e.data\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n }\n }\n }\n\n const clickCheckout = async () => {\n setIsLoading(true)\n\n if (paymentmethod === \"CREDIT\" && (!cryptogram || cryptogram.length <= 0)) {\n setIsLoading(false)\n return setToastState({ display: true, goback: false, message: `Please enter a valid credit card.`})\n }\n else if (!firstname) {\n setIsLoading(false)\n return setToastState({ display: true, goback: false, message: `First name is required for checkout.`})\n }\n else if (!lastname) {\n setIsLoading(false)\n return setToastState({ display: true, goback: false, message: `Last name is required for checkout.`})\n }\n else if (!zip) {\n setIsLoading(false)\n return setToastState({ display: true, goback: false, message: `Zip is required for checkout.`})\n }\n else {\n const body = {\n \"first\":firstname,\n \"last\":lastname,\n \"address\":address1,\n \"city\":city,\n \"state\":state,\n \"zip\":zip,\n \"email\":email,\n \"subtotal\": subtotalTotal,\n \"discountamount\": promoCodeAmount,\n \"additionaldonation\": additionalDonation,\n \"ccfeesamount\": ccTotal,\n \"totalamount\": orderTotal,\n \"paymentmethod\": paymentmethod,\n \"emerchtoken\": cryptogram\n }\n const token = localStorage.getItem('tokenstore')\n\n const {data} = await axios.put(checkoutUrl, body, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n if (parsedData.status === 'success') {\n if (parsedData && parsedData?.token) {\n localStorage.setItem('tokenstore', parsedData.token)\n await getStoreSetup()\n storeData.tabs.map((tab, index) => {\n if (tab.tabname === selectedTab) {\n console.log(storeData.tabs[index + 1].tabname)\n setSelectedTab(storeData.tabs[index + 1].tabname)\n }\n })\n }\n else {\n // var message = 'Thank you for checking out'\n // if (parsedData.message) {\n // message = parsedData.message\n // }\n // setMessageModal({active: true, message: message})\n // setFinishCheckout(true)\n goFinish()\n }\n }\n }\n }\n\n const getCartItems = async () => {\n const body = {}\n const token = localStorage.getItem('tokenstore')\n\n const {data} = await axios.get(cartItemUrl, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n\n console.log(parsedData)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'success') {\n setCartData(parsedData)\n }\n }\n\n const getDiscount = async (discountcode) => {\n const body = {\"discountcode\": discountcode}\n const token = localStorage.getItem('tokenstore')\n\n const {data} = await axios.post(storecartdiscount, body, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'success') {\n console.log(parsedData.discountamount)\n return parsedData.discountamount\n }\n else {\n return 0\n }\n }\n\n const validSectionData = (data) => {\n var valid = true\n data.map(item => {\n if (item && item?.description && item?.description?.length > 0) {\n valid = true\n }\n else {\n return false\n }\n })\n return valid\n }\n\n const quantityUpdate = async (value, item) => {\n // console.log(item)\n // console.log(value)\n // console.log(item.maxquantitypertransaction)\n // console.log(item.price)\n if (item.maxquantitypertransaction >= Number(value) || item.maxquantitypertransaction == 0) {\n const quantity = {...itemQuantity}\n quantity[item.id] = Number(value)\n setItemQuantity(quantity)\n\n var prices = {...itemPrice}\n prices[item.id] = '$' + item.price * value\n console.log(item.price * value)\n setItemPrice(prices)\n }\n else {\n setMaxQuantityPerTransModal({active: true, maxquantity: item.maxquantitypertransaction, name: item.name})\n }\n }\n\n const quantityBlur = async (value, item) => {\n const body = {quantity: Number(value), itemid: Number(item.id)}\n const token = localStorage.getItem('tokenstore')\n\n if (item?.maxquantitypertransaction < value) {\n const quantity = {...itemQuantity}\n quantity[item.id] = Number(item.maxquantitypertransaction)\n\n var prices = {...itemPrice}\n prices[item.id] = '$' + item.price * quantity[item.id]\n setItemPrice(prices)\n setItemQuantity(quantity)\n setMaxQuantityPerTransModal({active: true, maxquantity: item.maxquantitypertransaction, name: item.name})\n }\n else {\n const {data} = await axios.post(storeCartAddItemUrl, body, {headers: {\n 'Authorization': `Bearer ${token}`\n }})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event`);\n }\n else if (parsedData.status === 'failure') {\n const quantity = {...itemQuantity}\n quantity[parsedData.itemid] = Number(parsedData.quantityremaining)\n setItemQuantity(quantity)\n setQuantityModal({active: true, quantity: parsedData.quantityremaining, item: parsedData.itemname})\n }\n }\n }\n\n const calcItemPrice = (item) => {\n // console.log('calcItemPrice')\n // console.log(item.price)\n var quantityValue = itemQuantity[item.id]\n if (item.maxquantitypertransaction > quantityValue) {\n quantityValue = item.maxquantitypertransaction\n }\n const priceUnformatted = Number(itemPrice[item.id].split(\"$\").pop())\n const total = formatMoney(priceUnformatted)\n const price = formatMoney(item.price)\n\n var totalPrice = (item.id in itemPrice) ? `X ${price} = ${total}` : `X ${price} = $0`\n\n return totalPrice\n }\n\n const goBack = () => {\n storeData.tabs.map((tab, index) => {\n if (tab.tabname === selectedTab) {\n setSelectedTab(storeData.tabs[index - 1].tabname)\n }\n })\n }\n const goNext = () => {\n storeData.tabs.map((tab, index) => {\n if (tab.tabname === selectedTab) {\n setSelectedTab(storeData.tabs[index + 1].tabname)\n }\n })\n }\n\n const saveAndContinue = () => {\n history.push(`/${eventcode}/event/`);\n }\n\n const goFinish = () => {\n if (selectedTab === 'Registration') {\n openRegistrationModal()\n }\n else {\n localStorage.removeItem(\"tokenstore\")\n history.push(`/${eventcode}/event/`);\n }\n }\n\n const hasNext = () => {\n var nextBool = false\n storeData?.tabs?.map((tab, index) => {\n if (tab.tabname === selectedTab) {\n if (storeData.tabs.length > (index + 1)) {\n nextBool = true\n }\n }\n })\n return nextBool\n }\n\n const hasBack = () => {\n var nextBool = false\n storeData?.tabs?.map((tab, index) => {\n if (tab.tabname === selectedTab) {\n if (index > 0) {\n nextBool = true\n }\n }\n })\n return nextBool\n }\n\n const getButtons = () => {\n const cartButton = (\n \n {clickCheckout()}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Checkout\n \n \n )\n\n const backButton = (\n \n \n Back\n \n \n )\n const nextButton = (\n \n \n Next\n \n \n )\n\n\n if (finishCheckout || (cartData?.hascheckedout && !storeData?.tabs.find(item => item.tabname === 'Registration').enabled)) {\n return (\n \n \n \n Finish\n \n \n \n )\n }\n else if (selectedTab === 'Cart') {\n if (storeData?.hascheckedout) {\n return (\n <>\n \n {nextButton}\n \n \n )\n }\n else {\n return (\n <>\n \n {backButton}\n {cartButton}\n \n \n )\n }\n }\n else if (hasBack() && hasNext()) {\n return (\n <>\n \n {backButton}\n {nextButton}\n \n \n )\n }\n else if (hasNext()) {\n return nextButton\n }\n else {\n return (\n \n \n \n Save and Continue Later\n \n \n \n \n Finish\n \n \n \n )\n }\n }\n\n const calcAmountWon = () => {\n return cartData.cartitems.reduce((acc: any, curr: any) => {\n return acc + curr.lineamount\n }, 0)\n }\n\n const addAdditionalDonation = (value) => {\n if (value.float == undefined) {\n setAdditionalDonation(0)\n return\n }\n else if (value.float < 0) {\n return\n }\n else if (value.float > 100000) {\n setAdditionalDonation(100000)\n return\n }\n const donation = value\n setAdditionalDonation(value.float)\n }\n\n const getDiscountAmount = async () => {\n const discount = await getDiscount(promoCode)\n setPromoCodeAmount(discount)\n }\n\n const updatePromoCode = (e: any) => {\n if(e.target.value < 0){\n return\n }\n setPromoCode(e.target.value)\n }\n\n const GoEmerchant = () => {\n return (\n
\n Payment securely processed by: \n \"goEmerchant\n \n
\n )\n }\n\n const getDataItems = (items) => {\n const elems = items?.map((item) => {\n console.log(item)\n if (item && item?.name?.length > 0) {\n return (\n <>\n \n \n \n \n\n

{item.name}

\n

{item.description}

\n
\n
\n
\n \n \n {(item?.isquantityunlimited || item?.quantityremaining > 0) &&\n <>\n {quantityUpdate(e.target.value, item)}}\n onBlur={(e) => {quantityBlur(e.target.value, item)}}\n value={itemQuantity[item.id]}\n defaultValue={itemQuantity[item.id] > 0 ? itemQuantity[item.id] : 0}\n />\n \n\n }\n {(!item?.isquantityunlimited && item?.quantityremaining <= 0) &&\n SOLD OUT\n }\n {(item?.isquantityunlimited || item?.quantityremaining > 0) &&\n {calcItemPrice(item)}\n }\n \n \n {/**/}\n {/* */}\n {/* = */}\n {/* */}\n {/**/}\n
\n \n )\n }\n })\n return (\n <>\n {elems}\n \n )\n }\n\n const getCart = () => {\n var subtotal = 0\n const detailRows = cartData?.cartitems?.map((item) => {\n subtotal += item.lineamount\n return (\n \n \n \n {item.name}\n \n \n \n \n {item.quantity + ' X $' + item.price + ' = $' + item.lineamount }\n \n \n \n )\n })\n\n return (\n <>\n {detailRows}\n {cartData?.cartitems &&\n \n \n \n {'Subtotal: ' + formatMoney(subtotal) }\n \n \n \n }\n\n \n \n \n {'Additional Donation'}\n \n \n \n \n
\n {\n addAdditionalDonation(values)\n }}\n value={additionalDonation}\n />\n
\n
\n
\n
\n {cartData?.cartitems &&\n \n \n \n {\n // getDiscountAmount(e)\n // }}\n onChange={(e) => {\n updatePromoCode(e)\n }}\n disabled={cartData?.hascheckedout}\n />\n \n {'Apply Promo Code'}\n \n \n \n \n \n {'Promo Code: ' + formatMoney(promoCodeAmount) }\n \n \n \n }\n {cartData.allowpaymentoffees &&\n \n \n \n
\n \n Add {(Math.round(cartData.ccfee * 100) / 100).toFixed(2)}% to cover payment processing fees\n
\n
\n
\n {paymentProcessFeesCheckbox &&\n \n \n {'Processing fees: ' + formatMoney(ccTotalFee) }\n \n \n }\n
\n }\n \n \n \n {'Total: ' + formatMoney(orderTotal) }\n \n \n \n \n \n
\n {\n setFirstName(e.currentTarget.value)\n }}\n />\n
\n
\n \n {\n setLastName(e.currentTarget.value)\n }}\n />\n \n
\n \n \n
\n {\n setAddress1(e.currentTarget.value)\n }}\n />\n
\n
\n
\n \n \n
\n {\n setCity(e.currentTarget.value)\n }}\n />\n
\n
\n \n
\n {\n setState(e.currentTarget.value)\n }}\n // defaultValue={userData.addressInfo.state}\n >\n {usStates.map((stateO, index) => {\n return (\n // \n )\n })}\n \n
\n
\n \n
\n {\n setZip(e.currentTarget.value)\n }}\n />\n
\n
\n
\n \n \n
\n {\n setEmail(e.currentTarget.value)\n }}\n />\n
\n
\n
\n {cartData?.billme &&\n <>\n \n \n
\n {\n setPaymentMethod(e.currentTarget.value)\n }}\n // defaultValue={userData.addressInfo.state}\n >\n \n \n \n
\n
\n
\n \n }\n\n {(paymentmethod === \"CREDIT\" && !cartData?.hascheckedout) &&\n <>\n \n \n \n \n \n \n }\n {/*{(cartData?.hascheckedout === false) &&*/}\n \n \n \n \n \n {/*}*/}\n \n )\n }\n\n // const getSectionData = (currentSel) => {\n // storeData?.tabs.forEach((item, index) => {\n // if (currentSel === 'Cart') {\n // return (\n // <>\n // {item?.heading?.length > 0 &&\n // \n // {item.heading}\n // \n // }\n // <>\n // {getCart()}\n // \n // \n // )\n // }\n // else if (currentSel === 'Registration') {\n // return (\n // <>\n // \n // \n // )\n // }\n // else if (currentSel === item.tabname) {\n // return (\n // <>\n // {item?.heading?.length > 0 &&\n // \n // {item.heading}\n // \n // }\n //\n // {item.sections.map((section) => {\n // if (section && section.sectionheading && validSectionData(section.data)) {\n // return (\n // <>\n // \n // {section.sectionheading}\n // \n // {getDataItems(section.data)}\n // \n // )\n // }\n // })}\n // \n // )\n // }\n // else {\n // console.log('something else')\n // }\n // })\n // }\n\n\n\n const inputRef = useRef(null);\n\n return (\n <>\n {\n if (toastState.goback) {\n history.goBack()\n }\n setToastState({\n display: false,\n goback: false,\n message: ''\n })\n }}\n cssClass={'custom-toast'}\n message={toastState.message}\n duration={3000}\n />\n {quantityModal.active &&\n onWillDismiss(ev)}\n >\n \n \n

{\"Insuffcient Quantity Available\"}

\n

{\"We're sorry, but the quantity available is lower than you seleced:\"}

\n \n \n \n {quantityModal.item + ':'}\n \n \n \n \n {quantityModal.quantity + ' Remaining'}\n \n \n \n
\n \n \n { setQuantityModal({active: false, quantity: 0, item:''})}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Ok\n \n \n \n \n }\n {maxQuantityPerTransModel.active &&\n onWillDismiss(ev)}\n >\n \n \n

{\"Max quantity per transaction exceeded\"}

\n

{\"We're sorry, but the max quantity per transaction was exceeded:\"}

\n \n \n \n {maxQuantityPerTransModel.name + ':'}\n \n \n \n \n {maxQuantityPerTransModel.maxquantity + ' Max'}\n \n \n \n
\n \n \n { setQuantityModal({active: false, quantity: 0, item:''})}} size=\"large\" style={{ width: '80%' }} expand=\"block\" fill=\"solid\" color={'primary'}>\n Ok\n \n \n \n \n }\n\n \n \n \n \n \n {storeData?.storewelcomeeventname}\n \n \n \n\n \n \n {storeData && storeData?.tabs && storeData?.tabs.map((item, index) => {\n return (\n {\n if (item.enabled) {\n setSelectedTab(item.tabname)\n }\n }}>\n \n \n {item.tabname}\n \n \n )\n })}\n \n \n \n \n {storeData && storeData?.tabs && storeData?.tabs.map((item, index) => {\n if (item.tabname !== selectedTab) {\n return;\n }\n // if (item.tabname === 'Cart' && selectedTab === 'Cart' && item.heading === checkoutTab) {\n if (item.tabname === 'Cart') {\n return (\n <>\n {item?.heading?.length > 0 &&\n \n {item.heading}\n \n }\n <>\n {getCart()}\n \n \n )\n }\n else if (item.tabname === 'Registration' ) {\n return (\n <>\n \n \n )\n }\n else if (selectedTab === item.tabname) {\n return (\n <>\n {item?.heading?.length > 0 &&\n \n {item.heading}\n \n }\n\n {item.sections.map((section) => {\n if (section && section.sectionheading && validSectionData(section.data)) {\n return (\n <>\n \n {section.sectionheading}\n \n {getDataItems(section.data)}\n \n )\n }\n })}\n \n )\n }\n })}\n {getButtons()}\n \n \n \n )\n}\n\nexport default RegisterPage","import React from \"react\";\nimport {\n IonButton,\n IonCol,\n IonContent, IonFooter,\n IonHeader,\n IonItem,\n IonLabel,\n IonRow,\n IonTabButton,\n IonToolbar\n} from \"@ionic/react\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport Text from \"../CommonStyles/Text\";\nimport {Input} from \"../AuctionItems/styledComponents\";\nimport Store from \"./Index\";\nimport Img from \"../../components/Header/Img\";\nimport styled from \"@emotion/styled\";\nimport {useHistory} from \"react-router-dom\";\n\nconst HeaderWrapper = styled.div`\n flex-grow: 100;\n display: flex;\n //border: 1px solid #66666660;\n justify-content: center;\n`\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: center;\n //border: 1px solid #66666660;\n //height: 100px;\n`;\n\nconst WelcomePage = ({storeData, setRegister, eventcode, auctioncode}) => {\n const history = useHistory()\n\n return (\n <>\n \n {storeData?.status === 'expired' &&\n \n \n \n {storeData?.message}\n \n \n \n }\n {storeData?.status === 'success' &&\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n }\n\n \n\n {storeData?.storewelcomebuttoneventshow &&\n { history.push('/' + eventcode + '/event/register')}} style={{marginLeft: '40px', marginRight: '40px', marginBottom: '40px'}} expand=\"block\" color={'primary'}>\n {storeData?.storewelcomebuttonevent}\n \n }\n {storeData?.storewelcomebuttonauctionshow &&\n \n {storeData?.storewelcomebuttonauction}\n \n }\n \n \n
\n \n \n \n )\n}\n\nexport default WelcomePage","import React, {useEffect} from \"react\"\nimport {Redirect, Route, useHistory, useParams} from \"react-router\"\nimport './index.css';\nimport {\n IonContent,\n IonIcon,\n IonLabel,\n IonPage,\n IonTabBar,\n IonTabButton,\n IonRouterOutlet,\n IonTabs,\n IonHeader, IonToolbar, IonTitle, IonButton, IonButtons, IonCol, IonRow, IonItem, IonImg, IonFooter\n} from \"@ionic/react\";\nimport styled from \"@emotion/styled\";\nimport axios from \"axios\";\nimport RegisterPage from \"./RegisterPage\";\nimport WelcomePage from \"./WelcomePage\";\nimport {getConfig} from \"../../AppConfig\";\n\n\ninterface Params {\n eventcode: string\n id: string\n}\n\nconst HeaderWrapper = styled.div`\n flex-grow: 100;\n display: flex;\n border: 1px solid #66666660;\n justify-content: center;\n`\n\nconst HeaderContainer = styled.div`\n display: flex;\n align-items: center;\n border: 1px solid #66666660;\n height: 100px;\n`;\n\nconst Store: React.FC = () => {\n const params = useParams();\n const eventcode = params.eventcode\n const eventtype = params.id\n\n const { apiUrl } = getConfig()\n const domainName = window.location.hostname\n const domainNames = domainName.split('.')\n const auctioncode = (domainNames && domainNames.length > 0) ? domainNames[0] : ''\n const history = useHistory()\n var [storeData, setStoreData] = React.useState({\n storewelcomeeventname: '',\n storewelcomeheader: '',\n storewelcomeeventlogourl: '',\n storewelcomebuttonevent: '',\n storewelcomebuttonauction: '',\n storewelcomebuttoneventshow: true,\n storewelcomebuttonauctionshow: true,\n torewelcomefooter: '',\n storewelcomeauctionlink: '',\n tabs: [],\n token: '',\n hascheckedout: false\n })\n const [selectedTab, setSelectedTab] = React.useState('')\n const [register, setRegister] = React.useState(false)\n // console.log(eventcode)\n // console.log(auctioncode)\n\n useEffect(() => {\n getStoreSetup()\n }, [])\n\n const getStoreSetup = async () => {\n setStoreData({\n storewelcomeeventname: '',\n storewelcomeheader: '',\n storewelcomeeventlogourl: '',\n storewelcomebuttonevent: '',\n storewelcomebuttonauction: '',\n storewelcomebuttoneventshow: false,\n storewelcomebuttonauctionshow: false,\n torewelcomefooter: '',\n storewelcomeauctionlink: '',\n tabs: [],\n token: '',\n hascheckedout: false\n })\n\n const body = {auctioncode: auctioncode, eventcode: eventcode}\n const token = localStorage.getItem('tokenstore')\n\n const headers = token ? {'Authorization': `Bearer ${token}`} : {}\n let url = `${apiUrl}/storesetup`\n const {data} = await axios.post(url, body, {headers: headers})\n const parsedJson = JSON.parse(data?.jsonInfo)\n // console.log(parsedJson)\n setStoreData(parsedJson)\n if (parsedJson.status === 'expired') {\n localStorage.removeItem(\"tokenstore\")\n // history.push(`/${eventcode}/event`);\n }\n else if (parsedJson.token) {\n localStorage.setItem('tokenstore', parsedJson.token)\n }\n if (parsedJson && parsedJson.tabs) {\n if (parsedJson.hascheckedout) {\n setSelectedTab('Cart')\n }\n else {\n setSelectedTab(parsedJson.tabs[0].tabname)\n }\n\n }\n }\n\n\n if (eventtype === 'register') {\n return (\n <>\n \n \n )\n }\n else {\n return (\n <>\n \n \n )\n }\n\n}\n\nexport default Store\n","/* Core CSS required for Ionic components to work properly */\nimport \"@ionic/react/css/core.css\"\n/* Basic CSS for apps built with Ionic */\nimport \"@ionic/react/css/normalize.css\"\nimport \"@ionic/react/css/structure.css\"\nimport \"@ionic/react/css/typography.css\"\n/* Optional CSS utils that can be commented out */\nimport \"@ionic/react/css/padding.css\"\nimport \"@ionic/react/css/float-elements.css\"\nimport \"@ionic/react/css/text-alignment.css\"\nimport \"@ionic/react/css/text-transformation.css\"\nimport \"@ionic/react/css/flex-utils.css\"\nimport \"@ionic/react/css/display.css\"\n\n/* Theme variables */\nimport \"./theme/variables.css\"\n\nimport jwt_decode from \"jwt-decode\"\nimport React, {useEffect, useState} from \"react\"\nimport { useDispatch, useSelector } from \"react-redux\"\nimport {Link, Route} from \"react-router-dom\"\nimport { BrowserRouter } from \"react-router-dom\"\n\nimport Footer from \"./components/Footer/Index\"\nimport Header from \"./components/Header/Index\"\nimport AccountContact from \"./pages/AccountContact/Index\"\nimport AccountNotifications from \"./pages/AccountNotifications/Index\"\nimport AccountProfile from \"./pages/AccountProfile/Index\"\nimport AuctionItemsPage from \"./pages/AuctionItems/Index\"\nimport Checkout from \"./pages/Checkout/Index\"\nimport CreateAccountPage from \"./pages/CreateAccount/Index\"\nimport EventPage from \"./pages/Event/Index\"\nimport ItemDetailsPage from \"./pages/ItemDetails/Index\"\nimport CartPage from \"./pages/CartPage/Index\"\nimport LoginPage from \"./pages/Login/Index\"\nimport MyAccount from \"./pages/MyAccount/Index\"\nimport MyOrders from \"./pages/MyOrders/Index\"\nimport NotFound from \"./pages/NotFound/NotFound\"\nimport OpenBids from \"./pages/OpenBids/Index\"\nimport PlaceBid from \"./pages/PlaceBid/Index\"\nimport AutoBid from \"./pages/AutoBid/Index\";\nimport PrivacyPolicy from \"./pages/PrivacyPolicy/Index\"\nimport ResetPassword from \"./pages/ResetPassword/Index\"\nimport ResetPasswordVerification from \"./pages/ResetPasswordVerification/Index\"\nimport ResetPasswordAccount from \"./pages/ResetPasswordAccount/Index\"\nimport ResetPasswordEmail from \"./pages/ResetPasswordEmail/Index\"\nimport SetupAccount from \"./pages/SetupAccount/Index\"\nimport VerificationPage from \"./pages/Verification/Index\"\nimport VerifyAccount from \"./pages/VerifyAccount/Index\"\nimport WelcomePage from \"./pages/Welcome/Index\"\nimport {\n fetchAuctionItemsData,\n updateAuctionItems\n} from \"./redux/slices/auctionItemsSlice\"\nimport {fetchEventData, setAuctionCode, setEventCode} from \"./redux/slices/eventSlice\"\nimport {fetchPrivacyPolicy, setPrivacyAuctionCode, setPrivacyEventCode} from \"./redux/slices/privacyPolicySlice\"\nimport {checkTokenOnRefresh, updateUserInfo} from \"./redux/slices/userSlice\"\nimport {resetNotification, showNotification} from \"./redux/slices/notificationSlice\";\nimport {\n AUCTION_ITEMS_ENDPOINT,\n PRIVACY_POLICY,\n USER_PROFILE,\n getEndPoint, CART_ENDPOINT\n} from \"./util/api/enpoints\"\nimport { getURL } from \"../src/constants\"\nimport {ReactNotifications, Store as notificationStore} from 'react-notifications-component'\nimport 'react-notifications-component/dist/theme.css'\n\nimport {\n IonContent,\n IonToast,\n IonApp,\n} from \"@ionic/react\";\nimport { setupIonicReact } from '@ionic/react';\nimport store from \"./redux/store\";\nimport SlideshowPage from \"./pages/Slideshow/Index\";\nimport {Redirect, useParams} from \"react-router\";\nimport useResetEvent from \"./hooks/useResetEvent\";\nimport Store from \"./pages/Store/Index\";\n\n\nimport {library} from '@fortawesome/fontawesome-svg-core';\nimport * as Icons from '@fortawesome/free-solid-svg-icons';\n\n\nconst iconList = Object.keys(Icons)\n .filter((key) => key !== 'fas' && key !== 'prefix')\n .map((icon) => Icons[icon]);\n\nlibrary.add(...iconList);\n\nconst App: React.FC = (props: any) => {\n useResetEvent()\n useEffect(() => {\n window.addEventListener(\"offline\", processOfflineNotification, false)\n window.addEventListener(\"online\", processOnlineNotification, false)\n\n return () => {\n window.removeEventListener(\"offline\", processOfflineNotification)\n window.removeEventListener(\"online\", processOnlineNotification)\n }\n }, [])\n\n const processOfflineNotification = () => {\n notificationStore.addNotification({\n title: \"We're having trouble connecting to the internet\",\n // message: parsedData.message,\n type: \"danger\",\n insert: \"bottom\",\n container: \"bottom-center\",\n animationIn: [\"animate__animated\", \"animate__fadeIn\"],\n animationOut: [\"animate__animated\", \"animate__fadeOut\"],\n width: 400,\n touchSlidingExit: {\n swipe: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0,\n },\n fade: {\n duration: 400,\n timingFunction: 'ease-out',\n delay: 0\n }\n },\n dismiss: {\n duration: 0,\n showIcon: true,\n click: true,\n touch: true\n }\n });\n }\n\n const processOnlineNotification = () => {\n notificationStore.removeAllNotifications()\n }\n\n\n const dispatch = useDispatch()\n const isLoggedIn = useSelector((state: any) => state.user.isLoggedIn)\n const eventcode = useSelector((state: any) => state.user.eventcode)\n const auctioncode = useSelector((state: any) => state.user.auctioncode)\n const notification = useSelector((state: any) => state.notification)\n // const eventcode = useSelector((state: any) => state.event.eventcode)\n\n const auctionItemsFetchState = useSelector(\n (state: any) => state.auctionItems.status\n )\n\n let token = localStorage.getItem(\"token\")\n\n useEffect(() => {\n\n const validateToken = async () => {\n console.log('validate token')\n /**\n * add the end point to the server side for the same\n * dispacth login actions accordingly\n */\n\n // console.log(token)\n\n if (token && token !== \"undefined\") {\n // CAN I USE A PATTERN MATCH HERE????\n // const regex = /\\/events\\/[0-9a-zA-Z*]/g;\n // const found = window.location.pathname.match(regex);\n // console.log(Router.map)\n const decoded: any = jwt_decode(token)\n var current_time = Date.now() / 1000;\n console.log(current_time)\n console.log(decoded.exp)\n if (decoded.exp < current_time) {\n // expired\n console.log('expired token')\n localStorage.removeItem(\"token\")\n }\n else {\n const response: any = await dispatch(\n checkTokenOnRefresh({ url: getEndPoint(USER_PROFILE) })\n )\n console.log(response)\n if (response.error) {\n console.log(response.error)\n } else if (response.payload) {\n if (decoded.isguest === '1') {\n dispatch(\n updateUserInfo({\n accountstatus: 'guest',\n firstname: 'Guest',\n authorizebidder: false,\n isLoggedIn: true\n })\n )\n }\n console.log(decoded)\n if (decoded.eventcode) {\n const url = getEndPoint('EVENT_ENDPOINT')\n const eventData = {\n url,\n eventcode: decoded.eventcode,\n auctioncode: decoded.auctioncode\n }\n dispatch(fetchEventData(eventData))\n dispatch(setEventCode(decoded.eventcode))\n dispatch(setAuctionCode(decoded.auctioncode))\n dispatch(setPrivacyEventCode(decoded.eventcode))\n dispatch(setPrivacyAuctionCode(decoded.auctioncode))\n // Get auction items due to the \"My Orders\" needing this data. So if auction items are not\n // displayed before clicking on \"My Orders\"\n if (auctionItemsFetchState === \"idle\") {\n dispatch(\n fetchAuctionItemsData(getEndPoint(AUCTION_ITEMS_ENDPOINT))\n )\n }\n if (auctionItemsFetchState === \"succeeded\") {\n dispatch(updateAuctionItems())\n }\n\n dispatch({\n type: \"TOKEN_CONNECT\",\n payload: {\n url: getURL(),\n token: token\n }\n })\n }\n\n }\n }\n }\n }\n\n validateToken()\n }, [])\n\n setupIonicReact({\n mode: 'ios'\n });\n\n useEffect(() => {\n if (auctioncode && eventcode) {\n dispatch(fetchPrivacyPolicy({url: getEndPoint(PRIVACY_POLICY), eventcode: eventcode, auctioncode: auctioncode}))\n }\n\n }, [auctioncode, eventcode])\n\n return (\n \n \n
\n \n
\n\n store.dispatch( resetNotification() )}\n message={notification.message}\n duration={notification.timeout}\n buttons={notification.buttons}\n cssClass={'custom-toast'}\n />\n
\n \n {/**/}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n {/**/}\n {/* /!**!/*/}\n {/**/}\n \n\n\n {/**/}\n {/**/}\n\n {/*
AuctionSnap All Rights Reserved by DonorSnap Review AuctionSnap{\" \"}*/}\n {/* */}\n {/* Privacy Policy*/}\n {/* */}\n {/*
*/}\n
\n
\n
\n
\n )\n}\nexport default App\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\ntype Config = {\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\n};\n\nexport function register(config?: Config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(\n process.env.PUBLIC_URL,\n window.location.href\n );\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string, config?: Config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport App from \"./App\"\nimport * as serviceWorker from \"./serviceWorker\"\nimport store from \"./redux/store\"\nimport { Provider } from \"react-redux\"\nimport { ThemeProvider } from \"@emotion/react\"\nimport { theme } from \"./pages/CommonStyles/Theme\"\n\n\nReactDOM.render(\n \n \n \n \n ,\n document.getElementById(\"root\")\n)\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\n\nserviceWorker.unregister()\n","module.exports = __webpack_public_path__ + \"static/media/wave-blue.3af1e4c5.png\";","module.exports = __webpack_public_path__ + \"static/media/AuctionSnap.d4ac5e5e.png\";"],"sourceRoot":""}