{"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","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","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","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.3ed2a15f.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 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 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 &&(\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\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 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 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 \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 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 {activeStateItem?.quantityavailable > 0 ?\n currencyFormat(Number(activeStateItem?.lastbid))\n :\n 'SOLD OUT'\n }\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 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 console.log(fieldListData.guestfieldslist)\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 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['copyDataObject'] = 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 console.log('fail')\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 console.log(value)\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 console.log('processing guest')\n console.log(currentGuest)\n console.log(fieldListData)\n\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\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)) {\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 < 0) {\n return\n }\n else if (value > 100000) {\n setAdditionalDonation(100000)\n return\n }\n const donation = value\n setAdditionalDonation(donation)\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 addAdditionalDonation(value)}\n value={String(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 \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: 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 // 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":""}