{"version":3,"sources":["pages/ParticipantsListingPage/ParticipantsListingPage.module.css","App/App.module.css","pages/AuctionStatusPage/AuctionStatusPage.module.css","pages/AuctionSummaryReportPage/AuctionSummaryReportPage.module.css","pages/AuctionCarouselSetup/AuctionItemsTable.module.css","pages/EventGroupMaintenancePage/EventGroupMaintenance.module.css","pages/AuctionSettingsForm/AuctionSettingsForm.module.css","pages/EventItemsPage/EventItemsTable.module.css","pages/AuctionPage/AuctionPage.module.css","pages/EventSettingsForm/EventSettingsForm.module.css","pages/BroadcastMessagePage/BroadcastMessagePage.module.css","slices/authSlice.ts","components/common/LoadingBackdrop.tsx","components/common/AuthGuard.tsx","slices/eventSlice.ts","slices/orgSlice.ts","icons/AuctionSnap.png","icons/Logo.tsx","components/common/Layout/Header/Header.tsx","util/classnames.ts","components/common/Layout/MainMenu/MainMenu.tsx","components/common/Layout/Layout.tsx","queries/useActionItemsFetch.ts","components/common/HookForm.tsx","pages/AuthPage/AuthPage.tsx","components/common/inputs/ChipsList/ChipsList.tsx","components/common/inputs/SelectInput/SelectInput.tsx","components/common/inputs/Switch/Switch.tsx","components/common/inputs/TextInput/TextInput.tsx","mutations/useCreateEventItem.ts","queries/events/useFetchLocationTags.ts","components/common/inputs/MaskedInput/MaskedInput.tsx","components/common/inputs/MaskedInput/CustomMaskedInput.tsx","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsForm.tsx","queries/events/useFetchEventSettings.ts","queries/useAutoEvent.ts","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsTable.tsx","pages/AuctionItemsPage/AuctionItemsPage.tsx","queries/useEventItemsFetch.ts","pages/EventItemsPage/EventItemsForm.tsx","util/formatHelpers.ts","pages/EventItemsPage/EventItemsTable.tsx","pages/FlexMonsterPage/FlexMonsterPage.tsx","queries/useResetPassword.ts","util/formValidation.ts","components/common/Alerts.tsx","pages/AuthPage/ForgotPasswordForm/ForgotPasswordForm.tsx","pages/AuthPage/LoginForm/useLoginMutation.ts","pages/AuthPage/LoginForm/LoginForm.tsx","pages/AuthPage/ResetPasswordForm/ResetPasswordForm.tsx","pages/CheckoutPage/CheckoutPage.tsx","queries/events/useFetchEventMessages.ts","pages/CustomMessagesPage/CustomMessagesPage.tsx","mutations/useCustomMessagesMutation.ts","queries/useFetchAuctionInfo.ts","pages/AuctionPage/AuctionPage.tsx","pages/EventPage/EventPage.tsx","components/common/inputs/CheckboxGroup/CheckboxGroup.tsx","components/common/inputs/DateTimeInput.tsx","pages/AuctionSettingsForm/useEditEventSettings.ts","queries/useFetchTimezones.ts","queries/useFetchReceiptTemplates.ts","pages/OrgSettingsPage/useFetchOrgSettings.ts","pages/AuctionSettingsForm/AuctionSettingsForm.tsx","slices/evtSlice.ts","pages/EventSettingsForm/EventSettingsForm.tsx","pages/EventSettingsForm/useEditEventSettings.ts","components/common/inputs/RTEInsertTool/RTEInsertTool.tsx","pages/EventEmailCustomization/EventEmailCustomization.tsx","pages/EventMassEmail/EmailReviewForm/MassEmailReview.tsx","pages/EventMassEmail/EmailRecipients/EmailRecipients.tsx","pages/EventMassEmail/EmailBody/EmailBody.tsx","pages/EventMassEmail/EventMassEmailMaintenanceTable.tsx","components/common/ConfirmModal.tsx","queries/events/useFetchSponsors.ts","pages/SponsorsForm/useSponsorsMutation.ts","pages/SponsorsForm/SponsorsForm.tsx","pages/EventSponsors/EventSponsors.tsx","components/common/ViewList/ViewList.tsx","queries/events/useFetchEvents.ts","AppConfig.ts","pages/HomePage/HomePage.tsx","pages/TermsPage/TermsPage.tsx","pages/TermsPage/useTermsMutation.ts","pages/LocationsTagsPage/TagsTable/TagsForm.tsx","pages/LocationsTagsPage/TagsTable/useCreateTag.ts","mutations/useLocationTags.ts","pages/LocationsTagsPage/TagsTable/TagsTable.tsx","pages/LocationsTagsPage/LocationsTable/LocationsForm.tsx","pages/LocationsTagsPage/LocationsTable/useCreateLocation.ts","pages/LocationsTagsPage/LocationsTable/LocationsTable.tsx","queries/useParticipantTitles.ts","pages/LocationsTagsPage/DonationTable/DonationForm.tsx","pages/LocationsTagsPage/DonationTable/useCreateDonation.ts","pages/LocationsTagsPage/DonationTable/DonationTable.tsx","pages/LocationsTagsPage/AccountingCode/AccountingCodeForm.tsx","pages/LocationsTagsPage/AccountingCode/useCreateAccountingCode.ts","pages/LocationsTagsPage/AccountingCode/AccountingCode.tsx","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitle.tsx","pages/LocationsTagsPage/ParticipantUDTitles/useUpdateUDTitles.ts","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitleTable.tsx","pages/LocationsTagsPage/LocationsTagsPage.tsx","components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect.tsx","queries/useManualBid.ts","pages/ManualBidEntryPage/BidForm.tsx","pages/ManualBidEntryPage/ManualBidEntryPage.tsx","queries/useUsers.ts","mutations/useUser.ts","pages/OrgSettingsPage/UsersTable/UserForm.tsx","pages/OrgSettingsPage/UsersTable/UsersTable.tsx","pages/OrgSettingsPage/useFetchOrgSettingsTwilio.ts","pages/OrgSettingsPage/useFetchOrgSettingsGEM.ts","pages/OrgSettingsPage/OrgSettingsPage.tsx","mutations/useOrgSettings.ts","pages/ParticipantsPage/ParticipantsForm/useCreateParticipant.ts","pages/ParticipantsPage/ParticipantsForm/ParticipantsForm.tsx","pages/ParticipantsPage/useFetchParticipants.ts","pages/ParticipantsPage/ParticipantsPage.tsx","queries/useParticipantLinking.ts","pages/ParticipantsListingPage/ParticipantsListingPage.tsx","pages/ParticipantMergePage/ParticipantMergePage.tsx","components/common/inputs/SearchBar.tsx","pages/ParticipantLinkingPage/ParticipantLinkingPage.tsx","pages/ParticipantsPage/ImportPage/useImportParticipants.ts","pages/ParticipantsPage/ImportPage/ImportPage.tsx","util/HttpInterceptor.tsx","App/store.ts","queries/useFetchBidMaintenance.ts","pages/BidMaintenancePage/BidMaintenancePage.tsx","queries/useFetchAuctionStatus.ts","pages/AuctionStatusPage/AuctionStatusPage.tsx","pages/LiveAuctionPage/LiveAuctionPage.tsx","util/logger.ts","queries/useFetchCheckoutDetail.ts","pages/CheckoutPage/CheckoutForm/AddItemForm.tsx","pages/CheckoutPage/CheckoutForm/CheckoutForm.tsx","queries/useFetchCheckout.ts","pages/CheckoutPage/CheckoutOrdersGrid/CheckoutOrdersGrid.tsx","pages/CheckoutPage/CheckoutAllPage.tsx","pages/CheckoutPage/CheckoutForm/CheckoutAllForm.tsx","pages/CheckoutPage/CheckoutMainPage.tsx","queries/useFetchReportCheckout.ts","pages/AuctionSummaryReportPage/AuctionSummaryReportPage.tsx","pages/AdminAuthPage/AdminAuthPage.tsx","queries/useFetchBroadcastTextMessages.ts","pages/BroadcastMessagePage/BroadcastMessagePage.tsx","pages/BroadcastMessagePage/useBroadcastMessage.ts","pages/ForceRefreshPage/ForceRefreshPage.tsx","pages/ForceRefreshPage/useForceRefresh.ts","pages/TransferPage/DonationPage.tsx","pages/TransferPage/TransferPage.tsx","queries/useEventUserDefinedFetch.ts","pages/EventUserDefinedPage/EventValueForm.tsx","pages/EventUserDefinedPage/EventUserDefinedForm.tsx","pages/EventUserDefinedPage/EventUserDefinedTable.tsx","queries/events/useEventTransactionFetch.ts","pages/EventTransactionsPage/EventValueForm.tsx","pages/EventTransactionsPage/TransactionDetailForm.tsx","pages/EventTransactionsPage/EventAddCheckoutForm.tsx","pages/EventTransactionsPage/EventCheckoutForm.tsx","pages/GenericForm/GenericForm.tsx","pages/EventTransactionsPage/EventCheckoutReview.tsx","pages/EventTransactionsPage/EventTransactionsTable.tsx","queries/events/useEventTicketsFetch.ts","pages/EventTicketsPage/EventTicketsTable.tsx","queries/events/useEventDiscountCodesFetch.ts","pages/EventDiscountCodesPage/EventDiscountCodesForm.tsx","pages/EventDiscountCodesPage/EventDiscountCodesTable.tsx","queries/events/useEventGuestFetch.ts","pages/EventGuestMaintenancePage/GuestForm.tsx","pages/EventGuestMaintenancePage/EventGuestMaintenanceTable.tsx","pages/AuctionCarouselSetup/AuctionCarouselSetup.tsx","pages/EventGroupMaintenancePage/ListItem.tsx","pages/EventGroupMaintenancePage/List.tsx","pages/EventGroupMaintenancePage/DroppableList.tsx","App/App.tsx","pages/EventGroupMaintenancePage/DropableListItem.tsx","pages/EventGroupMaintenancePage/EventGroupMaintenance.tsx","queries/useAutoAuth.ts","index.tsx","pages/GenericForm/GenericForm.module.css","pages/EventDiscountCodesPage/EventDiscountCodesTable.module.css","pages/EventPage/EventPage.module.css","components/common/inputs/MaskedInput/MaskedInput.module.css","pages/EventUserDefinedPage/EventUserDefinedTable.module.css","pages/CheckoutPage/CheckoutForm/CheckoutForm.module.css","pages/OrgSettingsPage/OrgSettingsPage.module.css","pages/ParticipantsPage/ImportPage/ImportPage.module.css","pages/ManualBidEntryPage/ManualBidEntryPage.module.css","components/common/inputs/SelectInput/SelectInput.module.css","pages/HomePage/HomePage.module.css","pages/CheckoutPage/CheckoutPage.module.css","pages/SponsorsForm/SponsorsForm.module.css","pages/ForceRefreshPage/ForceRefreshPage.module.css","pages/CustomMessagesPage/CustomMessagesPage.module.css","pages/CheckoutPage/CheckoutForm/CheckoutAllForm.module.css","pages/OrgSettingsPage/UsersTable/UsersTable.module.css","components/common/inputs/TextInput/TextInput.module.css","components/common/ViewList/ViewList.module.css","components/common/Layout/Header/Header.module.css","components/common/Layout/MainMenu/MainMenu.module.css","pages/LocationsTagsPage/TagsTable/TagsTable.module.css","pages/LocationsTagsPage/LocationsTable/LocationsTable.module.css","pages/LocationsTagsPage/DonationTable/DonationTable.module.css","pages/LocationsTagsPage/AccountingCode/AccountingCode.module.css","pages/LocationsTagsPage/LocationsTagsPage.module.css","pages/ParticipantsPage/ParticipantsPage.module.css","pages/LocationsTagsPage/ParticipantUDTitles/ParticipantUDTitle.module.css","pages/EventSponsors/EventSponsors.module.css","pages/EventTransactionsPage/EventTransactionsTable.module.css","components/common/inputs/Switch/Switch.module.css","pages/AuthPage/AuthPage.module.css","pages/AuthPage/ForgotPasswordForm/ForgotPasswordForm.module.css","pages/AuthPage/LoginForm/LoginForm.module.css","pages/AuthPage/ResetPasswordForm/ResetPasswordForm.module.css","pages/EventGuestMaintenancePage/EventGuestMaintenance.module.css","components/common/inputs/ChipsList/ChipsList.module.css","pages/EventMassEmail/EventMassEmailMaintenanceTable.module.css","pages/TermsPage/TermsPage.module.css","pages/ParticipantsPage/ParticipantsForm/ParticipantsForm.module.css","pages/BidMaintenancePage/BidMaintenancePage.module.css","pages/AdminAuthPage/AuthPage.module.css","pages/EventTicketsPage/EventTicketsTable.module.css","pages/AuctionItemsPage/AuctionItemsTable/AuctionItemsTable.module.css","pages/TransferPage/TransferPage.module.css","pages/AuctionItemsPage/AuctionItemsPage.module.css","pages/FlexMonsterPage/FlexMonsterPage.module.css"],"names":["module","exports","initialState","currentUser","token","isLoggedIn","resetPasswordKey","alloweventrefresh","terms","authSlice","createSlice","name","reducers","updateUser","state","payload","setCurrentUser","Object","assign","loginUser","logout","localStorage","removeItem","setResetPasswordKey","setAllowEventRefresh","setTerms","setToken","actions","useAuthState","useSelector","auth","useAuthToken","useAllowEventRefresh","LoadingBackdrop","open","Backdrop","style","zIndex","onClick","CircularProgress","color","size","AuthGuard","children","eventSlice","eventId","eventName","eventCode","eventStart","eventEnd","bidStart","bidEnd","allowpaymentoffees","ccfee","eventUrl","auctionUrl","setEvent","setAuctionURL","setEventURL","useEventState","event","orgSlice","message","isdonorsnapcustomer","twilio","setOrg","useOrgState","org","Logo","props","src","myLogo","alt","Header","showMenu","isOpen","popupState","setIsOpen","usePopupState","variant","popupId","history","useHistory","dispatch","useDispatch","AppBar","position","className","cn","styles","appBar","shift","Toolbar","toolbar","push","classes","root","menuButton","fontSize","logoWrapper","to","display","alignItems","bindTrigger","Avatar","avatar","IconButton","ChevronRight","arrow","Menu","bindMenu","top","MenuItem","marginRight","args","filter","arg","Boolean","join","MainMenu","pathname","useLocation","eventState","MENU_ITEMS","label","linkTo","Icon","SettingsIcon","BurstIcon","WebIcon","LocationIcon","GavelIcon","PeopleIcon","AddShoppingCartIcon","RemoveShoppingCartIcon","ShoppingCartIcon","SupervisedUserCircleIcon","GroupAddIcon","OpenInNewIcon","initialMenuState","reduce","currentItem","useState","isListOpen","setIsListOpen","Drawer","paper","drawerPaper","close","toolbarIcon","c","Divider","ClickAwayListener","onClickAway","List","list","getMenuItems","items","isSubMenu","map","i","ListItem","button","selected","nested","ListItemIcon","opacity","height","width","ListItemText","primary","link","truncate","ExpandLess","ExpandMore","Collapse","in","timeout","unmountOnExit","component","disablePadding","Layout","orgState","title","showOrgTitle","useEffect","Box","flexDirection","marginTop","gridColumn","justifyItems","left","showBackArrow","edge","backArrowToAuction","goBack","ArrowBack","showArrow","PagePathTypes","home","justifyContent","alignSelf","justifySelf","fontWeight","showEventUrl","showAuctionUrl","href","target","marginLeft","right","showSettings","settings","Settings","flexGrow","padding","auctionItemsDefaults","itemid","itemnumber","shortdesc","longdesc","locationid","taglistids","liveauctiononly","onsitesaleitem","allowautobid","donatedby","donatedbyemail","donationtypeid","fairmarketvalue","startingbid","minimumraise","buyitnowprice","buyitnowonly","quantityunlimited","quantity","imageloaded","logo","logourl","pickupinstructions","active","itemtype","itemorder","liveauctionDefault","LiveAuctionitemlist","lastbid","biddername","biddernumber","biddersource","historyid","livebidemailsent","livebidcheckedout","livebidconfirmed","bidderparticipantid","bidderlist","rownumber","globalAuctionItemsFetcher","body","a","axios","post","data","parsedData","JSON","parse","jsonString","eventitems","globalLiveAuctionItemsFetcher","HookForm","AuthPageSubPaths","methods","onSubmit","formProps","handleSubmit","ChipsList","setList","options","defaultValues","tooltipText","value","setValue","inputValue","setInputValue","onKeyPress","e","key","preventDefault","find","o","onSelChange","Autocomplete","clearOnBlur","getOptionLabel","option","renderOption","onChange","onInputChange","newInputValue","renderInput","params","TextField","onSelect","chipContainer","Chip","onDelete","index","v","SelectInput","defaultValue","rules","required","disabled","includeNone","includeAll","textFieldProps","onHandleChange","useFormContext","control","formState","useController","field","inputProps","ref","errors","select","console","log","error","FormHelperTextProps","InputProps","input","focused","focus","InputLabelProps","shrink","helperText","listItem","cat","Switch","switchProps","checked","switchBase","track","StyledMUIInput","startAdornment","InputAdornment","endAdornment","maxLength","TextInput","useCreateEventItem","queryClient","useQueryClient","useMutation","put","onSuccess","invalidateQueries","globalLocationTagsFetcher","eventIdvalue","json","stringify","eventid","Number","headers","useFetchLocationTags","useQuery","staleTime","placeholderData","locations","tags","donationtype","accountingcode","keepPreviousData","MaskedInput","format","mask","placeholder","prefix","onValueChange","thousandsGroupStyle","thousandSeparator","customInput","allowNegative","thousandGroupStyle","CustomMaskedInput","textContainer","AuctionItemsForm","gridParams","reloadForm","formMethods","useForm","watch","getValues","setError","clearErrors","reset","setFocus","setTags","locationAndTags","quantityValue","setQuantityValue","fairMarketValue","setFairMarketValue","startingBidValue","setStartingBidValue","buyItNowValue","setbuyItNowValue","buyItNowValueOnlineAuction","setbuyItNowValueOnlineAuction","buyItNowValueOnlineOnly","setbuyItNowValueOnlineOnly","minimumRaiseValue","setMinimumRaiseValue","React","dialogMsg","setDialogMsg","watchLogo","allowautobidWatch","watchLogoData","toggleItemType","setToggleItemType","setAllowAutoBidValue","qtyUnlimited","handleQuantityChange","maxQty","handleFairmarketChange","floatValue","handleStartingBidChange","handleBuyItNowChangeOnlineAuction","type","handleMinimumRaiseChange","selectedTags","forEach","tagId","tagToAdd","tag","id","location","accountingcodeid","buyItNowChangeOnlineOnly","maxpurchasequantity","logoremoved","tagOptions","useMemo","locationOptions","donationnTypes","accountingTypes","createMutation","tagsToSave","locs","item","finalData","localItemType","buyItNowVal","mutateAsync","length","toString","response","parsedResponse","status","onLogoDrop","files","maxSize","maxWidthOrHeight","useWebWorker","imageCompression","compressedFile","fileReader","FileReader","onload","result","split","readAsDataURL","Dialog","maxWidth","dialog","DialogTitle","isLoading","DialogContent","DialogContentText","DialogActions","Button","itemsForm","multiline","rows","rowsMax","dtRows","types","donationTypeOptions","accountingCodeOptions","ToggleButtonGroup","exclusive","newAlignment","loc","ToggleButton","singleContainer","FormControlLabel","labelPlacement","buyItNowContainer","validate","val","Typography","formContainer","Grid","container","spacing","xs","selectcontrol","Close","onDrop","getRootProps","getInputProps","isDragActive","isDragAccept","isDragReject","acceptedFiles","fileRejections","dropzoneselect","dropzoneinvalid","dropzone","submitButton","form","defaultEventSettings","code","start","end","bidstart","bidend","timezone","allowcustomlocations","allowbillme","allowbuyitnow","allowbidanonymously","allowautobidincrement","approvalofbidders","allowcreditcards","allowtexting","allowguestentry","startbiddernum","receipttemplateid","eventbiddingopen","eventbiddingclosed","textprefix","eventprivacy","eventshowbidderpaddlenumber","eventusepaddlenumber","globalEventSettingsFetcher","useFetchEventSettings","enabled","useAutoEvent","then","newState","AuctionItemsTable","useParams","eventiDvalue","eventItemCreate","setGridParams","rowOrdering","setRowOrdering","msg","dialogObj","setDialogObj","setReloadForm","updateItemOrder","useUpdateItemOrder","isFormShowing","setIsFormShowing","donationTypes","handleDeleteConfirm","finaldata","deleteDialog","closeDialog","canDelete","Date","columns","disableExport","renderHeader","Add","sortable","renderCell","ai","handleEdit","Edit","hide","headerName","minWidth","align","headerAlign","editable","valueFormatter","auctionTypeId","tagsArray","stringDisplay","x","cTag","findTag","getTagsDisplayString","row","getValue","handleDelete","Delete","ReOrderToggle","itemListingOrder","order","mutate","getUnfilteredRows","apiRef","gridSortedRowIdsSelector","DataGridPremium","autoHeight","rowReordering","onRowOrderChange","newRows","initialIndex","newIndex","rowsClone","splice","updateRowPosition","oldIndex","targetIndex","components","useGridApiContext","buttonBaseProps","startIcon","GridToolbarContainer","direction","getRowsToExport","allColumns","current","exportDataAsCsv","componentsProps","csvOptions","AuctionItemsPage","globalEventItemsFetcher","useCreateEvtItem","EventItemsForm","itemrows","priceValue","setPriceValue","maxQtyPerTransChange","setMaxQtyPerTransChange","loading","setLoading","itemtypeidWatch","activeTicketType","setActiveTicketTyp","itemGroupQuantity","setItemGroupQuantity","activeValue","setActiveValue","registationValue","setRegistrationValue","onlyGroupAvailableValue","setOnlyGroupAvailableValue","stopSalesValue","setStopSalesValue","nonDeductableAmount","setNonDeductableAmount","tickettype","dropdownData","setDropdownData","getEventDropdowns","tixType","ticketT","responseType","itemprice","itemquantity","itemgroupquantity","itemmaxquantitypertransaction","itemlinktoregistration","itemonlygroupavailable","itemstopselling","itemnondeductibleamount","itemitemid","itemname","itemdescription","itemtypeid","itemdonationtypeid","itemaccountcodeid","itemquantityunlimited","itemwaiverrequired","itemwaiverurl","itemstopsellingdate","delete","bodyData","handlePriceChange","handleNonDeductableAmountChange","handleMaxQtyPerTransChange","handleActiveChange","fullWidth","ticketTypeOptions","twoControlContainer","Checkbox","linkedTickets","linkedTicketTypeOptions","formatter","Intl","NumberFormat","currency","formatMoney","num","eventItemsDefaults","EventItemsTable","itemquantityremaining","FlexMonsterPage","componentFolder","report","passwordResetEmail","emailAddress","customerid","email","passwordResetWithToken","password","emailRegex","phoneRegex","zipCodeRegex","statesArray","Alerts","errorMsg","successMsg","isErrorOpen","setIsErrorOpen","isSuccessOpen","setIsSuccessOpen","Snackbar","anchorOrigin","vertical","horizontal","onClose","autoHideDuration","Alert","severity","ForgotPasswordForm","setSuccessMsg","mode","formData","siteCode","emailSent","pattern","login","parseJwt","base64","replace","jsonPayload","decodeURIComponent","atob","charCodeAt","slice","LoginForm","loginMutation","Error","setItem","parsedToken","useLoginMutation","forgotPassword","ResetPasswordForm","setTimeout","minLength","checkPasswordsMatch","CheckoutPageTab","AuthPage","path","useRouteMatch","backgroundContainer","header","objectFit","exact","resetPassword","defaultEventMessages","preeventtext","contactustext","emailreceipttextfooter","winningbidtextheader","winningbidtextfooter","emailreceipttextheader","mobilelogintext","mobilewelcometext","globalEventMessagesFetcher","CustomMessagesPage","richTextTools","EditorTools","Bold","Italic","Underline","Strikethrough","ForeColor","BackColor","CleanFormatting","AlignLeft","AlignCenter","AlignRight","AlignJustify","Indent","Outdent","OrderedList","UnorderedList","FontSize","FontName","FormatBlock","SelectAll","Undo","Redo","Link","Unlink","InsertImage","ViewHtml","InsertTable","InsertFile","AddRowBefore","AddRowAfter","AddColumnBefore","AddColumnAfter","DeleteRow","DeleteColumn","DeleteTable","MergeCells","SplitCell","preEventValue","setPreEventValue","loginSummaryValue","setLoginSummaryValue","welcomeValue","setWelcomeValue","receiptHeaderValue","setReceiptHeaderValue","receiptFooterValue","setReceiptFooterValue","winningBidHeaderValue","setWinningBidHeaderValue","winningBidFooterValue","setWinningBidFooterValue","contactUsText","setContactUsText","FloatingButton","styled","theme","margin","bottom","messagesMutation","useCustomMessagesMutation","Accordion","AccordionSummary","expandIcon","AccordionDetails","inputsContainer","Editor","tools","contentStyle","html","defaultAuctionInformation","biddingopens","biddingcloses","authorizedbidders","pendingregistrations","totalnumberofbids","openbidsamount","pendingcheckoutamount","collectedamount","totalnumberofbuyitnowpurchases","totaldollarsofbuyitnowpurchases","numberitemswithbids","numberitemswithoutbids","eventlink","auctionlink","resetmessage","showresetbutton","useAuctionInfo","globalAuctionInfoFetcher","globalEventInfoFetcher","AuctionPage","allowRefresh","eventData","useStyles","makeStyles","createStyles","paddingLeft","textAlign","palette","text","secondary","info","generateWinningBidsClick","filename","disposition","contentType","indexOf","matches","exec","download","clickReset","autoFocus","Paper","dayjs","background","sx","m","fontStyle","Web","Gavel","People","AddShoppingCart","RemoveShoppingCart","ShoppingCart","Message","Refresh","Assessment","SupervisedUserCircle","EventPage","Tune","ConfirmationNumber","Group","PermContactCalendar","CheckboxGroup","formControlProps","formLabelProps","formGroupProps","checkboxProps","formControlLabelProps","FormControl","FormLabel","marginBottom","FormGroup","render","textoptions","DateTimeInput","dateTimeProps","utils","DayJSUtils","DateTimePicker","inputVariant","useEditEventSettings","useUpdateEventStatus","useUpdateEventClone","timezoneDefaults","globalTimezonesFetcher","get","timezones","useFetchTimezones","receiptTemplatesDefaults","globalrecieptTemplatesFetcher","receipttemplates","orgSettingsFetcher","userid","withNestedJSON","goemerchant","useFetchOrgSettings","onError","retry","AuctionSettingsForm","isEdit","privacyValue","setPrivacyValue","warningMsg","show","allowTextingWatch","allowpaymentoffeesWatch","authToken","lockCode","setLockCode","openFailure","setFailureOpen","failureMessage","setFailureMessage","eventsettings","isFetching","templates","timeZoneData","timeZone","editMutation","handleClickContinue","isLock","handleClose","closeFailure","startDate","toISOString","endDate","bidStartDate","bidEndDate","timeZoneForm","valid","checkboxbiddingsettings","checkboxothersettings","handleChange","disableTexting","rest","Lock","LockOpen","checkBidStartDate","checkBidEndDate","datePlus","setDate","getDate","checkEventEndDate","evtSlice","billme","setEvt","EventSettingsForm","QueryClient","storeHeader","setStoreHeader","storeFooter","setStoreFooter","eventPrivacy","setEventPrivacy","actual","allowattendedbytickettype","storeheader","storebuttonevent","storebuttoneventshow","storebuttonauction","storebuttonauctionshow","storefooter","setEventSettings","getEventSettingsData","checkboxsettings","LocalizationProvider","dateAdapter","AdapterDayjs","DatePicker","slotProps","textField","inputRef","date","shortcodes","InsertShortcodeTool","view","schema","node","nodes","nonEditable","createAndFill","class","EditorUtils","insertNode","this","nodeType","canInsert","DropDownButton","iconClass","onItemClick","userSelect","accordionDetails","boxSizing","EmailCustomizationPage","Schema","ProseMirror","EditorView","EditorState","transactionReceiptHeader","setTransactionReceiptHeader","transactionReceiptFooter","setTransactionReceiptFooter","purchaserHeader","setPurchaserHeader","purchaserFooter","setPurchaserFooter","guestHeader","setGuestHeader","guestFooter","setGuestFooter","fetchData","url","setDataHeader","setDataFooter","undefined","footer","saveTransactionReceiptData","alert","savePurchaserData","saveGuestData","inline","group","content","marks","attrs","contenteditable","default","atom","parseDOM","priority","toDOM","onMount","viewProps","plugins","spec","addToEnd","mySchema","doc","createDocument","mount","dom","create","EmailEditModal","emailData","activeTab","setActiveTab","selectionModel","setSelectionModel","testEmail","setTestEmail","handleSendEmails","handleSelectAll","allIds","handleDeselectAll","handleResetFilters","Tabs","newValue","centered","Tab","p","mb","emailName","emailType","mt","DataGrid","pageSize","checkboxSelection","onSelectionModelChange","newSelection","EmailRecipients","massemailid","columnlist","emailcount","massemailname","massemailtype","rowlist","totalcount","setEmailData","setCheckboxSelection","setCheckboxSel","selectedItems","listofstuff","isselected","shouldAllBeSelected","selections","allSelected","op","selectionValues","allValue","getCheckboxSel","selection","valueGetter","actualDay","newDate","set","month","year","lookupValue","paramsValue","processValue","valuesAsString","save","ids","sels","columnList","gridDefs","gridAlignmentHeader","fieldheaderalign","gridAlignmentCell","fieldalign","colWidth","fieldwidth","col","fieldfield","fieldlabel","fieldcontrol","GRID_CHECKBOX_SELECTION_COL_DEF","groupingValueGetter","renderEditCell","buildDynamicColumnDefs","newSelectionModel","EmailBody","fieldlist","massemailbody","massemailfrom","massemailfromname","massemailsubject","setBodyData","handleInputChange","MassEmailMaintenanceTable","emails","setEmails","reload","setReload","isModalOpen","setIsModalOpen","emailFormData","setEmailFormData","typedescription","typeid","typeshowaskguestregister","emailTypeObject","setEmailTypeObject","askGuestToRegister","lastSent","readOnly","selectedCount","selectedRow","setSelectedRow","askForAuctionSnap","setAskForAuctionSnap","isEmailEditModalOpen","setIsEmailEditModalOpen","selectedEmail","setSelectedEmail","tabSel","setTabSel","emailTypes","setEmailTypes","massemaillist","massemailtypedescription","massemailaskguesttoregister","readonly","massemailselectedcount","massemaillastsent","typelist","handleCloseModal","handleSaveEmail","massemailtypeid","t","indicatorColor","textColor","scrollButtons","InputLabel","disableMultipleSelection","onRowClick","param","details","Select","labelId","ConfirmModal","onConfirm","confirmText","globalSponsorFetcher","sponsors","useSponsorsMutation","UserForm","sponsor","onCreateSubmit","onEditSubmit","sponsorid","maxFiles","accept","cancelButton","EventSponsors","sponsorToEdit","setSponsorToEdit","sponsorToDelete","setSponsorToDelete","SponsorsForm","pagination","ViewList","values","numOfCols","listItemProps","listProps","containerProps","numOfRows","Math","ceil","cols","Array","from","listContainer","listContainerProps","hover","islink","eventname","aligntitle","alignvalue","widthtitle","widthvalue","qrcode","createRef","maxHeight","QRCode","navigator","clipboard","writeText","eventLink","codeRef","exportImage","dataURI","saveAs","exportQRCode","divider","globalEventsFetcher","events","globalFetcher","useFetchEvents","getConfig","window","hostname","apiUrl","auctionSnapURL","version","HomePage","editStatusMutation","editCloneMutation","validAuction","setValidAuction","validEvent","setValidEvent","newbuttontext","setnewbuttontext","eventAuctionsData","setEventAuctionsData","localActiveOnly","getItem","dialogActivateMsg","setActivateDialogMsg","setIsLoading","activeEvent","setActiveEvent","dialogCloneMessage","setDialogCloneMsg","eventauctions","validauction","validevent","filteredEvents","eventItem","eventPath","eventPathSettings","topRow","successBtn","defaultChecked","auctionPath","liValues","eventdetail","ed","Card","CardContent","paddingRight","CardActions","cardActions","cloneBtn","deleteBtn","TermsPage","termsEdit","useTermsMutation","setEvents","dangerouslySetInnerHTML","__html","subrootitems","TagsForm","useCreateTag","description","tagsForm","useLocationTags","TagsTable","logationsTagsMutation","tagRows","tagid","DataGridPro","LocationsForm","useCreateLocation","opendate","closeddate","locationsForm","checkEndDate","LocationsTable","UDTitlesDefault","userdefinedtitle1","userdefinedtitle2","userdefinedtitle3","userdefinedtitle4","userdefinedtitle5","globalLocationTitlesFetcher","DonationForm","useCreateDonation","donationForm","DonationTable","donations","donationRows","AccountingCodeForm","useCreateAccountingCode","accountingForm","AccountingCode","accountingcodes","accountingRows","UDTitlesForm","titles","updateMutation","useUpdateTitles","udtitlesForm","UDTitlesTable","LocationsTagsPage","udTitles","AutocompleteSelect","getOpObj","isOptionEqualToValue","_","obj","BidForm","bidderList","buyItNow","manualBidMutation","useUpdateManualBid","dialogStatus","setDialogStatus","currencyValues","setCurrencyValues","buyitnowquantity","quantityValues","setQuantityValues","isValid","setIsValid","buyitnow","price","bidderid","initialAmount","bidincrement","amount","message2","bidForm","currencySymbol","outputFormat","decimalPlaces","decimalCharacter","toFixed","minimumValue","ManualBidEntryPage","isBidFormShowing","setBidIsFormShowing","setBuyItNow","ManualBidDataObject","dataRows","setDataRows","setBidderList","manualbiditemlist","getMappedRecords","manualList","numberofbids","closing","opencd","closingcd","buyitnowavailable","bidstatus","quantityavailable","unlimitedquantity","imageurl","handleBid","buyItNowParam","AttachMoneyOutlined","rec","returnRows","getRecord","density","hideFooterSelectedRowCount","globalUserFetcher","users","useUser","OrgUserForm","user","putUser","globalsetup","auctionsettings","customusermessage","customemail","auctionitems","participants","manualbidentry","checkout","participantlisting","accountingreport","transfertransactionsto","transfertransactionsfrom","transfernewcontactsto","createinteractionrecords","onFormSubmit","onResetEmail","sitecode","passwordFieldEnabled","userForm","validator","isEmail","resetBtn","dialogActions","UsersTable","userToEdit","setUserToEdit","useFetchUsers","lastupdateddate","lastupdatedby","toLocaleString","orgSettingsTwilioFetcher","orgSettingsGEMFetcher","OrgSettingsPage","putOrgSetting","useOrgSettings","putOrgSettingsTwilio","useOrgSettingsTwilio","putOrgSettingsGEM","useOrgSettingsGEM","twilioFormMethods","twilloReset","gemFormMethods","gemReset","ontwilioSubmit","twiliophone","twilioaccountsid","twilioauthtoken","errormessage","onGEMSubmit","transactionid","gatewayid","orgInfo","contactname","address1","address2","city","postalcode","phone","useFetchOrgSettingsTwilio","twilioSettings","useFetchOrgSettingsGEM","GEMSettings","hasInitiatedForm","useRef","zip","address","hasInitiatedTwilioForm","hasInitiatedGEMForm","ecommerceid","retailid","lastupdated","validationdate","resetConfirm","bottomSaveButton","flexWrap","Stack","resetButton","inputButtonContainer","useCreateParticipant","particpant","nextBidNumber","bidnumber","first","last","authorizedbidder","source","userdefined1","userdefined2","userdefined3","userdefined4","userdefined5","paddlenumbertext","participantid","addressreadonly","lastlogindate","fetchers","useFetchParticpants","fetchwitUDTitles","udti","ParticipantsPage","importPath","importDMPPath","particpantToEdit","setParticpantToEdit","particpantToDelete","setParticpantToDelete","useFetchParticpantswithUDTitles","particpantswithTitles","generateContactReport","match","alignContent","titleRow","paddingBottom","ParticipantsForm","max","apply","getNextBidderNumber","onCellEditCommit","api","getRow","participantDefault","company","country","contactid","participantname","contactDataDefault","first2","last2","email2","cell","globalAuctionReportFetcher","partipantListingMergePost","getParticpentLinkList","contactdata","useStyle","overflow","lineHeight","whiteSpace","ParticipantsListingPage","dialogOpen","setDialogOpen","dialogMessage","setDialogMessage","unLink","usePutParticipantUNLink","autoLink","usePutParticipantAutoLink","getRowId","rowThreshold","columnVisibilityModel","ParticipantMergePage","putLink","selectedOldParticipant","setSelectedOldParticipant","selectedNewParticipant","setSelectedNewParticipant","confirmDialogOpen","setConfirmDialogOpen","successDialogOpen","setSuccessDialogOpen","mergeSuccess","setMergeSuccess","participantidold","participantidnew","selectedOldParticipantId","selectedNewParticipantId","getparticipantsOptions","currentWinningBids","numberOfCheckouts","numberOfIntegrated","editedData","setEditedData","setFormData","handleConfirmDialogClose","handleSuccessDialogClose","catch","currentwinningbids","numberofcheckouts","numberofintegrated","participantsource","participantcontactkey","SearchBar","searchText","setsearchText","InputBase","ml","flex","placeHolder","ParticipantsLinkingPage","ipk","multi","searchP","setsearchP","usePutParticipantLink","propPass","searchString","participantinfo","mx","md","useImportParticipants","ImportPage","importtype","steps","workbook","setWorkBook","setIsUploaderOpen","selectedFile","setSelectedFile","selectedWorkbookSheet","setSelectedWorkbookSheet","tableData","setTableData","finalTableData","setFinalTableData","setJsonString","jsonFinalString","setJsonFinalString","dataKeys","setDataKeys","activeStep","setActiveStep","nextEnabled","setNextEnabled","checkWatch","setCheckWatch","Set","setDropOptions","importParticipantsFields","useParticipantsImportFields","importParticipantsDMPList","useParticipantsImportDMPList","importParticipantsDataMiner","useParticipantsImportDataMiner","importParticipantsSpreadsheet","errorList","setErrorList","fieldData","setFieldData","displayFieldData","setDisplayFieldData","bypassFieldData","setBypassFieldData","requiredFields","setRequiredFields","dmpList","setDMPList","batchIdWatch","loadFieldsData","enabledNext","loadDMPList","importSteps","setupDropOptions","opts","newOptions","add","batchlist","batchId","batchid","callType","fieldConvertedData","fieldmatch","minlength","maxlength","requiredWatch","handleNext","rowObject","batchdata","filteredKey","keys","r","processKeys","participantsData","errorlist","prevActiveStep","getSheetData","fields","sheetData","fieldName","unshift","XlsxPopulate","fromBlankAsync","sheet1","sheet","totalColumns","range","usedRange","endColumn","String","fromCharCode","outputAsync","res","finalcolumns","selectDMPOptions","batch","selectOptions","formDataKeys","goodJson","addItem","formKey","fieldDataFiltered","getSheet","workbookSelection1","processWorksheet","sheetToProcess","SheetNames","XLSX","sheet_to_json","Sheets","raw","defval","fieldD","toLowerCase","includes","fieldValue","onSave","loadedWorkbook","read","jsonData","readAsBinaryString","saveAsExcel","Stepper","labelProps","Step","StepLabel","selectSource","fileUpload","matchFields","matchFieldsContainer","selectRow","gridContainer","textRow","hideFooterRowCount","importParticipants","pt","importButton","HttpInterceptor","authReqInterceptor","setAuthReqInterceptor","jsonResponseInterceptor","setJsonResponseInterceptor","urlInterceptor","setUrlInterceptor","interceptor","interceptors","request","use","config","hasOwnProperty","Authorization","Promise","reject","addAuthInterceptor","baseURL","addBaseUrlInterceptor","jsonInfo","addParseResponseInterceptor","eject","Fragment","rootReducer","combineReducers","evt","configureStore","reducer","middleware","getDefaultMiddleware","devTools","process","BidMaintenanceDefaults","bidtime","bidtype","bidamount","bidautoamount","checkoutcompleted","itembiddingclosed","globalBidMaintenanceFetcher","bids","BidMaintenancePage","updateBidMaintenanceMutation","useUpdateBidMaintenance","bidmaintRows","bm","AuctionStatusDefaults","qtyunlimited","butitnowonly","globalAuctionStatusFetcher","statuslist","AuctionStatusPage","useUpdateAuctionStatus","LiveAuctionPage","useUpdateLiveBid","clearBidMutation","useClearLiveBid","liveBidError","setLiveBidError","setRows","participantList","setParticipantList","useGridApiRef","clearedRowIds","setClearedRowIds","confirmmutation","useConfirmLiveAuction","rowsToSave","setRowsToSave","blankRowIds","getBidderOptions","handleSave","prevIds","part","onButtonClick","cellParams","stopRowEditMode","autoHighlight","setEditCellValue","inputParams","bidderOptions","cellClassName","clsx","negative","buttonText","editMode","processRowUpdate","newRow","oldRow","updatedRow","isNew","onProcessRowUpdateError","experimentalFeatures","newEditingApi","Logger","logData","useFetchCheckoutDetail","isreadonly","globalCheckoutDetailFetcher","useFetchCheckoutDetailAdd","checkoutDetailAdd","useAddCheckoutDetail","resendCheckout","generatePDF","manualBid","AddItemForm","addItemObjects","selectedParticipant","responseData","checkoutitems","itemlist","getItemOptions","CheckoutForm","checkoutDataObject","creditCardInfo","setShowPayment","cryptogram","setCryptogram","setCryptogramTimeout","setCryptogramCode","subtotal","setSubtotal","ccfees","setCCFees","setQuantity","additionalDonation","setAdditionalDonation","totalAmount","setTotalAmount","showResendDialog","setShowResendDialog","showCheckoutDialog","setShowCheckoutDialog","isLoadingBackdrop","setisLoadingBackdrop","dialogAddItemObj","setAddItemDialogObj","invalidateIframe","setInvalidateIframe","javascriptfile","script","document","createElement","setAttribute","transcenterid","processorid","appendChild","addEventListener","processPayment","removeEventListener","firstpay","ccData","now","category","iserror","logEvent","checkoutFormMethods","includeCCFees","headerDataRows","setHeaderDataRows","itemDataRows","setItemDataRows","paymentMethodWatch","dataDetailAdd","additionalDonations","checkoutheader","headerRecords","getHeaderRecords","additionaldonation","getItemRecords","acc","curr","checkoutstatus","ccAmount","ccfeespercentage","total","showccfees","checkoutHeader","ccfeesexactamount","totalamount","paymentmethod","ccfeesamount","sendemail","checkoutItems","handleCheckout","errorMessage","emerchtoken","checkoutData","handleResend","resendData","generatePDFClick","itemMessage","itemMessageFinal","buildCheckoutConfirm","rootitems","subrootcard","allowNegativeValue","subrootgrid","grid","globalCheckoutFetcher","CheckoutOrdersGrid","setCheckoutDataObject","setCreditCardInfo","gridAPIRef","checkoutlist","creditcardiframe","transactiontype","checkoutObjData","receiptnumber","checkOut","rowsPerPageOptions","CheckoutPage","None","tab","setTab","selectedUser","ResendReceipt","Void","tabs","CheckoutAllForm","setSelectedItems","setSelectedParticipants","setIncludeCCFees","participantWatch","participantSelected","checkoutDetailData","headRecs","dataTempRows","participant","getParticipantOptions","disableSelectionOnClick","selectedIDs","selectedRowData","has","stopPropagation","showCheckoutDialogMessage","CheckoutAllPage","setParticipantsData","checkoutListData","setCheckoutListData","getCheckoutListAllData","dataRowsTemp","checkoutListDataNew","CheckoutMainPage","checkoutDetailDefault","checkoutHeaderDefault","checkoutdate","checkoutheaderlist","checkoutdetaillist","detail","CustomToolbar","generateAuctionSummaryClick","generateAuctionDetailClick","AuctionSummaryReportPage","DetailPanelContent","rowProp","py","hideFooter","getDetailPanelContent","useCallback","getDetailPanelHeight","localeText","toolbarExport","AdminAuthPage","tokenid","getTokenFromAdmin","globalTextMessageFetcher","broadcastlist","BroadcastMessagePage","broadcastMessage","useBroadcastMessage","emailPresend","useCartEmailPresend","emailSend","useCartEmailSend","particpants","distinctparticipantsauthorizedtexting","setDistinctparticipantsauthorizedtexting","messageList","setMessageList","messageTextList","setMessageTextList","sendNowMessageValueList","carts","cartstotal","lastdatesent","emailPre","setEmailPre","textParticipants","setTextParticipants","useFetchTextMessages","textMessageData","textMessagesLoading","whenToSend","preSend","getPhoneTextParticipants","newDataRows","newdata","broadcasttextid","selectMessageList","allLabel","participantlist","dateFormat","onBroadcastTextSubmit","broadcasttextmessage","broadcasttextphonetitle","broadcasttextsentdate","putMessageData","setBroadcastTextDlg","setBroadcastDlg","onSubmitCart","subjectline","setCartsDlg","brodacastDlg","brodacastTextDlg","cartsDlg","handleCloseBroadcast","handleCloseBroadcastText","handleCloseCart","canedit","broadcasttextstatus","broadcasttextscheduledate","Tooltip","disableFocusListener","candelete","sm","minRows","maxRows","AddShoppingCartOutlined","ForceRefreshPage","forceRefresh","useForceRefresh","forceLogout","useForceLogout","particpantsList","setParticpantsList","selectList","onSubmitForceLogout","DonationPage","batchCodeSelectWatch","batchCodeTextWatch","campaignSelectWatch","campaignTextWatch","appealSelectWatch","appealTextWatch","donationTypeSelectWatch","dontaionTypeTextWatch","accountCodeSelectWatch","accountCodeTextWatch","numberOfCheckoutsPosted","numberOfItemsPosted","totalAmtPosted","numberOfCheckoutsUnpostedLink","numberOfItemsUnpostedLink","totalAmtUnpostedLink","extraAmtUnpostedLink","numberOfCheckoutsUnpostedUnlink","numberOfItemsUnpostedUnlink","totalAmtUnpostedUnlink","campaignlist","appeallist","batchcodelist","accountingcodelist","donationtypelist","donationData","setDonationData","valueDate","setDateValue","dialogComplete","setdialogComplete","checkedAck","setAckChecked","checkedFair","setFairChecked","getIntegrationDonation","textReturn","getBatchCodeText","getCampaignText","getAppealText","getDonationText","getAccountingText","donationcontrol","batchCodeOptions","verticalAlign","getCampaignOptions","getAppealOptions","DateInput","getDonationTypeOptions","getAccountingCodeOptions","TransferPage","count","checkedoutonly","setDialog","linkparticipants","linkparticipantsnotauthorized","totalparticipants","unlinkcheckedoutparticipants","unlinkcheckedoutparticipantsnotauthorized","unlinkparticipants","unlinkparticipantsnotauthorized","unlinkpendingcartitemsparticipants","unlinkpendingcartitemsparticipantsnotauthorized","contactData","setContactData","a11yProps","getContactDetails","putIntegrationContact","checkedoutOnly","promptWithDialog","messageCount","checkoutonly","globalEventUserDefinedFetcher","eventuserdefined","useCreateEvtUserDefined","EventValueForm","isValueOpen","setIsValueOpen","activeId","controlDropdownValues","setControlDropdownValues","fieldtypelist","element","cdv","min","sign","newValues","EventUserDefinedForm","controlWatch","itemSelection","setItemSelection","displayForAllGuest","setDisplayForAllGuest","setActiveId","currencyNumber","setCurrencyNumber","dateTimeValue","setDateTimeValue","MenuProps","PaperProps","ITEM_HEIGHT","getDropdowns","getEvtUserDefined","udid","dropdownlist","fieldtype","control2","fieldname","defaultcontrol1","displayvalue","defaultcontrol2","default2","defaultcontrol3","default3","defaultcontrol4","default4","defaultcontrol5","default5","defaultcontrol6","default6","displayforallguest","resetObject","itemsInSelection","realDataItem","itemidsString","itm","defaultControl","defaultControlkey","itemids","controlName","defaultControlValue","fieldTypeOptions","defaultValueOptions","multiple","OutlinedInput","renderValue","uditem","EventUserDefinedTable","eventUserDefineCreate","itemsTemp","strs","trim","itemidsTemp","globalEventTransactionFetcher","transactions","EventTransactionsDetailForm","Input","EventAddCheckoutForm","transactionId","setTransactionId","itemQuantity","setItemQuantity","setCheckoutData","itemPrice","setItemPrice","quantityModal","setQuantityModal","getCheckoutData","sections","quantityUpdate","prices","quantityBlur","quantityremaining","calcItemPrice","maxquantitypertransaction","priceUnformatted","pop","itemdata","section","sectionname","sectiondata","lg","xl","onBlur","isquantityunlimited","SpanImage","span","Image","img","EventCheckoutForm","setIsAddEventCheckout","setIsEventReview","discount","setDiscount","cartitems","hasdiscount","cartData","setCartData","discountCodeWatch","firstWatch","lastWatch","cityWatch","stateWatch","zipWatch","addressWatch","address2Watch","emailWatch","getCartData","discountamount","getDiscount","cd","lineamount","borderTop","GenericForm","isGuestOpen","setIsGuestOpen","endpoint","genericid","register","ticketfieldslist","tickettitle","showbuttonreassign","showbuttonunassign","ticketlookuplist","ticketData","setTicketData","getEventTicket","getTicketLookupDataOptions","lookupfieldid","lookupactive","lookupid","lookup","unassignEventTicket","unassign","newFormValues","fieldid","fieldList","fieldId","defaultValueControl","fieldDataObject","fieldslist","handleSelectionClick","fieldControlId","onchange","startsWith","endsWith","newKey","newTicketData","ticket","fieldreadonly","handleReassign","sort","b","fieldrowgrouping","ticketFieldData","EventCheckoutReview","ticketList","setTicketList","ticketId","setTicketId","transactiontotalamount","transactionpaymentmethod","transactionadditionaldonation","transactionaddress","transactionaddress2","transactioncity","transactioncountry","transactiondate","transactiondiscountamount","transactionemail","transactionfirst","transactionlast","transactionphone","transactionprocessingfees","transactionsource","transactionstate","transactionsubtotal","transactionzip","itemdetail","ticketlist","transactionData","setTransactionData","getTransactionData","updateTransData","newTicketList","guestname","groupname","ticketid","transactiondetailitemname","transactiondetailqty","transactiondetailprice","transactiondetaillinetotal","EventTransactionsTable","eventIDvalue","useFetchTransaction","isAddEventCheckout","isEventCheckout","setIsEventCheckout","isEventReview","tablebutton","purchaser","handleCheckoutReview","ShoppingCartOutlined","useFetchTickets","ticketItemId","ticketitemid","EventTicketsTable","ticketItem","setTicketItem","setEndpoint","tickets","selectedticketitemid","handleSelectionChange","ticketitemlist","ticketitemname","getTicketItemOptions","globalEventDiscountCodesFetcher","EventDiscountCodesForm","discountid","displayItemDiscount","setDisplayItemDiscount","displayPaymentMethodAmount","setDisplayPaymentMethodAmount","discounttypeidWatch","discountmethodidWatch","discounttypelist","discountmethodlist","discountactive","discountcandelete","discountcode","discountdescription","discountdateend","discountitemids","discountitems","discountmethod","discountmethodid","discountminimumpurchaseneeded","discountminimumquantityneeded","discountdatestart","discounttype","discounttypeid","setDiscountData","discountObject","getDropdownData","getDiscountData","newData","formdata","getDiscountTypeListOptions","getDiscountMethodOptions","EventDiscountCodesTable","discountId","setDiscountId","discounts","fontFamily","globalEventGuestFetcher","GuestForm","EventGuestMaintenanceTable","eventID","useFetchGuests","guestsData","ticketsData","registrations","registrationid","getGuestTicketData","registrationname","AuctionCarouselSetup","watchTable","watchAll","setURL","aucInfo","locationName","f","buildUrl","duration","itemsperpage","auctionSnapURLParam","toggleItemTypeParam","locationNameParam","dataParam","parts","encodeURIComponent","copyTextToClipboard","inputMode","viewBox","wordWrap","overflowWrap","classNames","backgroundColor","borderRadius","cursor","defaultProps","listStyle","DroppableList","dropInstance","DragContext","drag","DropContext","drop","setDrop","useDroppable","onDragEnter","onDragLeave","ticketname","DraggableListItem","hint","dropHint","dragInstance","setDrag","DirectionContext","setDirection","dragged","setDragged","y","offset","setOffset","setPosition","setWidth","handlePress","offsetX","offsetY","offsetWidth","handleDragStart","handleDrag","newDirection","calculateDirection","clientX","clientY","handleDragEnd","handleRelease","handleDragEnter","handleDragLeave","handleDrop","useDraggable","onPress","onDragStart","onDrag","onDragEnd","onRelease","autoScroll","dragRect","getBoundingClientRect","dropRect","createContext","EventGroupMaintenance","dropTimeout","setData","groupid","groupName","setGroupName","newGroupName","setNewGroupName","reloadForRename","setreloadForRename","ticketgroups","groupData","setGroupData","getGroups","handleDropChange","newDrop","clearTimeout","handleItemDrop","handleListDrop","saveGroupName","Provider","CardHeader","action","allowchangegroupname","handleEditGroup","guests","handleDeleteGroup","LicenseInfo","setLicenseKey","AutoAuth","useAutoAuth","App","client","store","app","adminlogin","showHome","newevent","evtsettings","newevt","eventsponsors","eventemailcustomization","EventEmailCustomization","emassemailmaintenancetable","custommessages","locationstags","eventtransactions","eventdiscountcodes","eventactivitytickets","eventgroupmaintenance","eventguestmaintenance","ParticipantsLinking","ParticipantLinking","ParticipantLinkingPage","importParticpants","importTypeParticpants","bidmaintenance","AuctionStatus","liveauction","broadcastmessage","forcerefresh","auction","auctioncarouselsetup","participantmerge","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.8682bc36.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ParticipantsListingPage_root__1_jB-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"app\":\"App_app__1V0bG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionStatusPage_root__1QNeL\",\"dialog\":\"AuctionStatusPage_dialog__2lnU3\",\"submitButton\":\"AuctionStatusPage_submitButton__1UKEp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionSummaryReportPage_root__5hcA8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemsForm\":\"AuctionItemsTable_itemsForm__2eqNr\",\"dialog\":\"AuctionItemsTable_dialog__3j3cg\",\"submitButton\":\"AuctionItemsTable_submitButton__1sU4r\",\"switchContainer\":\"AuctionItemsTable_switchContainer__2j1AR\",\"singleContainer\":\"AuctionItemsTable_singleContainer__1lKXA\",\"buyItNowContainer\":\"AuctionItemsTable_buyItNowContainer__NFPwZ\",\"textContainer\":\"AuctionItemsTable_textContainer__2RHip\",\"buyitnowtextContainer\":\"AuctionItemsTable_buyitnowtextContainer__1WtMN\",\"formContainer\":\"AuctionItemsTable_formContainer__2eOga\",\"buyitnowformContainer\":\"AuctionItemsTable_buyitnowformContainer__2mwaL\",\"imageWrapper\":\"AuctionItemsTable_imageWrapper__J3tG9\",\"dropzone\":\"AuctionItemsTable_dropzone__1JesV\",\"logoWrapper\":\"AuctionItemsTable_logoWrapper__3eivP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGroupMaintenance_root__3kwnv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionSettingsForm_root__19qCR\",\"form\":\"AuctionSettingsForm_form__1Do4w\",\"button\":\"AuctionSettingsForm_button__1VWRi\",\"dropzone\":\"AuctionSettingsForm_dropzone__1Tg8S\",\"selectcontrol\":\"AuctionSettingsForm_selectcontrol__2k4XQ\",\"logoWrapper\":\"AuctionSettingsForm_logoWrapper__3ceq9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventItemsTable_root__259GU\",\"itemsForm\":\"EventItemsTable_itemsForm__31tW0\",\"dialog\":\"EventItemsTable_dialog__1cL7t\",\"submitButton\":\"EventItemsTable_submitButton__33QN_\",\"switchContainer\":\"EventItemsTable_switchContainer__3E4Eu\",\"singleContainer\":\"EventItemsTable_singleContainer__2NTJ2\",\"buyItNowContainer\":\"EventItemsTable_buyItNowContainer__Lffrk\",\"twoControlContainer\":\"EventItemsTable_twoControlContainer__sjAZR\",\"textContainer\":\"EventItemsTable_textContainer__1CzEq\",\"buyitnowtextContainer\":\"EventItemsTable_buyitnowtextContainer__2JbWh\",\"formContainer\":\"EventItemsTable_formContainer__1ppPt\",\"buyitnowformContainer\":\"EventItemsTable_buyitnowformContainer__6y3Gr\",\"imageWrapper\":\"EventItemsTable_imageWrapper__dhvAQ\",\"dropzone\":\"EventItemsTable_dropzone__6Nnek\",\"logoWrapper\":\"EventItemsTable_logoWrapper__g3URj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionPage_root__3Hq0Y\",\"submitButton\":\"AuctionPage_submitButton__1IQKX\",\"selectcontrol\":\"AuctionPage_selectcontrol__fNU1y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventSettingsForm_root__gHhgY\",\"form\":\"EventSettingsForm_form__1qQ4o\",\"button\":\"EventSettingsForm_button__1V1WP\",\"dropzone\":\"EventSettingsForm_dropzone__taGXW\",\"selectcontrol\":\"EventSettingsForm_selectcontrol__1Y3kU\",\"logoWrapper\":\"EventSettingsForm_logoWrapper__2Rh0a\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"BroadcastMessagePage_root__3JmYX\",\"switchContainer\":\"BroadcastMessagePage_switchContainer__1lAsz\",\"labelContainer\":\"BroadcastMessagePage_labelContainer__33n91\",\"selectSourceContainer\":\"BroadcastMessagePage_selectSourceContainer__1Cpxc\",\"fileUpload\":\"BroadcastMessagePage_fileUpload__2Uk-X\",\"selectRow\":\"BroadcastMessagePage_selectRow__25oTK\",\"gridContainer\":\"BroadcastMessagePage_gridContainer__RPbFG\",\"matchFieldsContainer\":\"BroadcastMessagePage_matchFieldsContainer__3sSRz\",\"textRow\":\"BroadcastMessagePage_textRow__wvi9n\",\"selectcontrol\":\"BroadcastMessagePage_selectcontrol__1HUY2\",\"submitButton\":\"BroadcastMessagePage_submitButton__21d8V\"};","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\nimport {EventState} from \"./eventSlice\";\n\nexport type CurrentUser = any\n\nexport type AuthToken = {\n aud: string\n email: string\n exp: number\n iss: string\n jti: string\n sitecode: string\n siteid: string\n sub: string\n userid: string\n}\nexport interface AuthState {\n currentUser: CurrentUser\n token: AuthToken\n isLoggedIn: boolean\n resetPasswordKey: string\n alloweventrefresh: boolean\n terms: string\n}\n\nconst initialState: AuthState = {\n currentUser: '',\n token: null,\n isLoggedIn: false,\n resetPasswordKey: '',\n alloweventrefresh: false,\n terms: ''\n}\n\nexport const authSlice = createSlice({\n name: 'auth',\n initialState,\n reducers: {\n updateUser: (state, { payload }: PayloadAction) => {\n state.alloweventrefresh = (payload.alloweventrefresh === true ? true : false)\n state.currentUser = (payload.currentUser ? payload.currentUser : state.currentUser)\n },\n setCurrentUser: (\n state,\n { payload }: PayloadAction\n ) => {\n state.currentUser = Object.assign(state.currentUser, payload)\n },\n loginUser: (state, { payload }: PayloadAction) => {\n state.token = payload\n state.isLoggedIn = true\n },\n logout: (state) => {\n localStorage.removeItem('tokenadmin')\n state.currentUser = initialState.currentUser\n state.isLoggedIn = false\n state.token = null\n state.alloweventrefresh = false\n },\n setResetPasswordKey: (state, { payload }: PayloadAction) => {\n state.resetPasswordKey = payload\n },\n setAllowEventRefresh: (state, { payload }: PayloadAction) => {\n state.alloweventrefresh = payload\n },\n setTerms: (state, { payload }: PayloadAction) => {\n state.terms = payload\n },\n setToken: (state, { payload }: PayloadAction) => {\n state.token = payload\n }\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n updateUser,\n setCurrentUser,\n loginUser,\n logout,\n setResetPasswordKey,\n setAllowEventRefresh,\n setToken, setTerms\n} = authSlice.actions\n\n/** REDUCER EXPORT */\nexport default authSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useAuthState = () => useSelector((state: AppState) => state.auth)\n\nexport const useCurrentUser = () =>\n useSelector(({ auth }: AppState) => auth.currentUser)\n\nexport const useAuthToken = () =>\n useSelector(({ auth }: AppState) => auth.token)\n\nexport const useIsLoggedIn = () =>\n useSelector(({ auth }: AppState) => auth.isLoggedIn)\n\nexport const useResetPasswordKey = () =>\n useSelector(({ auth }: AppState) => auth.resetPasswordKey)\n\nexport const useAllowEventRefresh = () =>\n useSelector(({ auth }: AppState) => auth.alloweventrefresh)\n\n/** SAGA SELECTORS - selects state for sagas */\nexport const selectResetPasswordKey = ({ auth }: AppState) =>\n auth.resetPasswordKey\n","import { Backdrop, CircularProgress } from '@material-ui/core'\n\nconst LoadingBackdrop = ({ open = false }) => {\n return (\n {}}>\n \n \n )\n}\n\nexport default LoadingBackdrop\n","import { useIsLoggedIn } from '../../slices/authSlice'\nimport LoadingBackdrop from './LoadingBackdrop'\n\nexport const AuthGuard = ({ children }) => {\n const isLoggedIn = useIsLoggedIn()\n\n if (!isLoggedIn) {\n return \n }\n\n return children\n}\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface EventState {\n eventId: string\n eventName: string\n eventCode?: string\n eventStart?: string\n eventEnd?: string\n bidStart?: string\n bidEnd?: string\n allowpaymentoffees?: boolean\n ccfee?: number\n eventUrl?: string\n auctionUrl?: string\n}\n\nconst initialState: EventState = {\n eventId: '',\n eventName: '',\n eventCode: '',\n eventStart: '',\n eventEnd: '',\n bidStart: '',\n bidEnd: '',\n allowpaymentoffees: false,\n ccfee: 0,\n eventUrl: '',\n auctionUrl: ''\n}\n\nexport const eventSlice = createSlice({\n name: 'event',\n initialState,\n reducers: {\n setEvent: (state, { payload }: PayloadAction) => {\n state.eventId = payload.eventId\n state.eventName = payload.eventName\n state.eventCode = (payload.eventCode ? payload.eventCode : state.eventCode)\n state.eventStart = (payload.eventStart ? payload.eventStart : state.eventStart)\n state.eventEnd = (payload.eventEnd ? payload.eventEnd : state.eventEnd)\n state.bidStart = (payload.bidStart ? payload.bidStart : state.bidStart)\n state.bidEnd = (payload.bidEnd ? payload.bidEnd : state.bidEnd)\n state.allowpaymentoffees = payload.allowpaymentoffees\n state.ccfee = payload.ccfee\n },\n setAuctionURL: (state, { payload }: PayloadAction) => {\n state.auctionUrl = payload\n },\n setEventURL: (state, { payload }: PayloadAction) => {\n state.eventUrl = payload\n },\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setEvent,\n setEventURL,\n setAuctionURL\n} = eventSlice.actions\n\n/** REDUCER EXPORT */\nexport default eventSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useEventState = () => useSelector((state: AppState) => state.event)\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface OrgState {\n name: string\n message: string\n isdonorsnapcustomer: boolean\n twilio: any\n}\n\nconst initialState: OrgState = {\n name: '',\n message: '',\n isdonorsnapcustomer: false,\n twilio: {}\n}\n\nexport const orgSlice = createSlice({\n name: 'organization',\n initialState,\n reducers: {\n setOrg: (state, { payload }: PayloadAction) => {\n state.name = payload.name\n state.message = payload.message\n state.isdonorsnapcustomer = payload.isdonorsnapcustomer\n state.twilio = payload.twilio\n }\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setOrg\n} = orgSlice.actions\n\n/** REDUCER EXPORT */\nexport default orgSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useOrgState = () => useSelector((state: AppState) => state.org)\n","export default __webpack_public_path__ + \"static/media/AuctionSnap.f1c1eaf1.png\";","import myLogo from './AuctionSnap.png'\n\nexport const Logo = ({ ...props }) => {\n return \"Auction\n}\n","import cn from 'classnames'\nimport {\n bindMenu,\n bindTrigger,\n usePopupState\n} from 'material-ui-popup-state/hooks'\nimport React from 'react'\nimport { useDispatch } from 'react-redux'\nimport { Link, useHistory } from 'react-router-dom'\n\nimport {\n AppBar,\n Avatar,\n IconButton,\n Menu,\n MenuItem,\n Toolbar,\n Typography\n} from '@material-ui/core'\nimport {\n ChevronRight,\n ExitToApp as ExitIcon,\n HomeRounded as HomeIcon,\n Menu as MenuIcon,\n Person as PersonIcon,\n Settings,\n Web as WebIcon\n} from '@material-ui/icons'\n\nimport { Logo } from '../../../../icons/Logo'\nimport { logout } from '../../../../slices/authSlice'\nimport styles from './Header.module.css'\n\n// import { logout, useCurrentUser } from '@slices/authSlice'\n\nconst Header = ({ showMenu, isOpen, setIsOpen }) => {\n const popupState = usePopupState({ variant: 'popover', popupId: 'demoMenu' })\n const history = useHistory()\n const dispatch = useDispatch()\n\n const redirectToLogin = () => {\n dispatch(logout())\n history.push('/auth/login')\n }\n const redirectToHome = () => {\n history.push('/home')\n }\n return (\n \n \n {showMenu && (\n redirectToHome()}\n classes={{ root: cn(styles.menuButton) }} fontSize=\"large\">\n \n )}\n\n
\n \n \n \n
\n \n {/* {user?.firstname} */}\n \n \n \n \n \n\n \n {/* \n \n Website\n \n \n \n My Profile\n */}\n redirectToLogin()}>\n \n Sign Out\n \n \n
\n \n )\n}\n\nexport default Header\n","// Concat multiple classnames\n\nexport const cn = (...args) => {\n return args.filter((arg) => Boolean(arg)).join(' ')\n}\n","import React, { useState } from 'react'\nimport { useEffect } from 'react'\nimport { useHistory, useLocation, useRouteMatch } from 'react-router-dom'\n\nimport {\n ClickAwayListener,\n Collapse,\n Divider,\n Drawer,\n IconButton,\n List,\n ListItem,\n ListItemIcon,\n ListItemText\n} from '@material-ui/core'\nimport {\n BurstMode as BurstIcon,\n Web as WebIcon,\n LocationOn as LocationIcon,\n Gavel as GavelIcon,\n People as PeopleIcon,\n AddShoppingCart as AddShoppingCartIcon,\n ShoppingCart as ShoppingCartIcon,\n RemoveShoppingCart as RemoveShoppingCartIcon,\n SupervisedUserCircle as SupervisedUserCircleIcon,\n Assessment as AssessmentIcon,\n OpenInNew as OpenInNewIcon,\n GroupAdd as GroupAddIcon,\n LibraryAdd as LibraryAddIcon,\n ChevronLeft as ChevronIcon,\n ExpandLess,\n ExpandMore,\n Home as HomeIcon,\n SettingsOutlined as SettingsIcon\n} from '@material-ui/icons'\n\nimport { cn } from '../../../../util/classnames'\nimport styles from './MainMenu.module.css'\nimport {useEventState} from \"../../../../slices/eventSlice\";\n\ntype MenuItem = {\n label: string\n Icon?: any\n linkTo?: string\n children?: MenuItem[]\n}\n\nconst MainMenu = ({ isOpen, setIsOpen }) => {\n const history = useHistory()\n const { pathname } = useLocation()\n const eventState = useEventState()\n\n const MENU_ITEMS: MenuItem[] = [\n // {\n // label: 'Home',\n // linkTo: '/home'\n // },\n // {\n // label: 'Organization Settings',\n // linkTo: '/settings'\n // },\n {\n label: 'Auction Setup',\n linkTo: '',\n children: [\n {\n label: 'Auction Settings',\n linkTo: '/auction/' + eventState.eventId + '/settings',\n Icon: SettingsIcon\n },\n {\n label: 'Auction Sponsors',\n linkTo: '/auction/' + eventState.eventId + '/sponsors',\n Icon: BurstIcon\n },\n {\n label: 'Page/Email Customization',\n linkTo: '/auction/' + eventState.eventId + '/custommessages/',\n Icon: WebIcon\n },\n {\n label: 'Dropdown Fields',\n linkTo: '/auction/' + eventState.eventId + '/locationstags',\n Icon: LocationIcon\n },\n {\n label: 'Auction Items',\n linkTo: '/auction/' + eventState.eventId + '/auctionitems/',\n Icon: GavelIcon\n },\n {\n label: 'Participants',\n linkTo: '/auction/' + eventState.eventId + '/participants',\n Icon: PeopleIcon\n }\n ]\n },\n {\n label: 'Auction Activity',\n linkTo: '',\n children: [\n {\n label: 'Manual Bid Entry',\n linkTo: '/auction/' + eventState.eventId + '/manualbidentry',\n Icon: AddShoppingCartIcon\n },\n {\n label: 'Bid Maintenance',\n linkTo: '/auction/' + eventState.eventId + '/bidmaintenance',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Auction Status',\n linkTo: '/auction/' + eventState.eventId + '/AuctionStatus',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Live Auction Bid',\n linkTo: '/auction/' + eventState.eventId + '/liveauction',\n Icon: RemoveShoppingCartIcon\n },\n {\n label: 'Checkout',\n linkTo: '/auction/' + eventState.eventId + '/checkout',\n Icon: ShoppingCartIcon\n }\n ]\n },\n {\n label: 'Reports',\n linkTo: '',\n children: [\n {\n label: 'Participant Listing',\n linkTo: '/auction/' + eventState.eventId + '/participantlisting',\n Icon: SupervisedUserCircleIcon\n },\n // {\n // label: 'Accounting Report',\n // linkTo: '/event/' + eventState.eventId + '/accountingreport',\n // Icon: AssessmentIcon\n // }\n ]\n },\n {\n label: 'Integrations',\n linkTo: '',\n children: [\n {\n label: 'DS Event Settings',\n linkTo: '/auction/groupadd',\n Icon: GroupAddIcon\n },\n {\n label: 'Link Regs to DS',\n linkTo: '/auction/groupadd',\n Icon: GroupAddIcon\n },\n {\n label: 'Transfer trans to DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Transfer trans from DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Transfer new contacts to DS',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n },\n {\n label: 'Interaction Records',\n linkTo: '/auction/transfer',\n Icon: OpenInNewIcon\n }]\n }\n ]\n\n const initialMenuState = MENU_ITEMS.reduce(\n (state, currentItem) =>\n !currentItem.linkTo ? { ...state, [currentItem.label]: false } : state,\n {}\n )\n\n const [isListOpen, setIsListOpen] = useState(initialMenuState)\n // const user = useCurrentUser()\n\n const getMenuItems = (items: MenuItem[], isSubMenu = false) => {\n return items.map(({ linkTo, label, Icon, children }, i) => {\n return (\n
\n \n linkTo\n ? history.push(linkTo)\n : setIsListOpen({\n ...isListOpen,\n [label]: !isListOpen[label]\n })\n }>\n {Icon && (\n \n \n \n )}\n \n {children && (isListOpen[label] ? : )}\n \n {children && (\n \n \n {getMenuItems(children, true)}\n \n \n )}\n
\n )\n })\n }\n\n return (\n \n
\n setIsOpen((c) => !c)}>\n \n \n
\n \n setIsOpen(false)}>\n {getMenuItems(MENU_ITEMS)}\n \n \n )\n}\nexport default MainMenu\n","import React, { FC, PropsWithChildren, useEffect, useState } from 'react'\nimport { Link, useHistory, useLocation } from 'react-router-dom'\n\nimport { Box, Container, IconButton } from '@material-ui/core'\nimport { red } from '@material-ui/core/colors'\nimport { ArrowBack, Menu, Settings } from '@material-ui/icons'\nimport LaunchIcon from '@mui/icons-material/Launch';\nimport { PagePathTypes } from '../../../App'\nimport { useEventState } from '../../../slices/eventSlice'\nimport { useOrgState } from '../../../slices/orgSlice'\nimport Header from './Header'\nimport MainMenu from './MainMenu'\n\n// eslint-disable-next-line no-unused-vars\n\ntype Props = {\n children: any\n showHome?: boolean\n showArrow?: boolean\n showSettings?: boolean\n showMenu?: boolean\n showBackArrow?: boolean\n showOrgTitle?: boolean\n backArrowToAuction?: boolean\n showEventUrl?: boolean\n showAuctionUrl?: boolean\n}\n\nconst Layout: React.FC> = (\n props: PropsWithChildren\n) => {\n const history = useHistory()\n const { pathname } = useLocation()\n const [isOpen, setIsOpen] = useState(false)\n const orgState = useOrgState()\n const eventState = useEventState()\n const title = props.showOrgTitle ? orgState.name : eventState.eventName\n const goBack = () => {\n if(props.backArrowToAuction){\n history.push('/auction/' + eventState.eventId )\n }\n else{\n history.goBack()}\n }\n\n useEffect(() => {\n if (pathname) {\n setIsOpen(false)\n }\n }, [pathname])\n\n return (\n \n \n
\n \n
\n {props.showBackArrow && (\n \n \n \n )}\n {props.showArrow && (\n \n \n \n \n \n )}\n {/*Hamburger menu disabled*/}\n {/*{!props.showBackArrow && props.showMenu && (*/}\n {/* setIsOpen(true)}*/}\n {/* edge=\"start\"*/}\n {/* aria-label=\"go to home page\">*/}\n {/* */}\n {/* */}\n {/*)}*/}\n
\n \n \n {title}\n {(props.showEventUrl || props.showAuctionUrl) && (\n \n {console.log()}}\n style={{marginLeft: '2px'}}\n >\n \n \n \n )}\n \n \n
\n {props.showSettings && (\n \n \n \n \n \n )}\n
\n \n \n {/**/}\n {/* */}\n {props.children}\n {/**/}\n \n \n )\n}\n\nexport default Layout\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport type AuctionItems = {\n itemid: number\n itemnumber: string\n name: string\n shortdesc: string\n longdesc: string\n locationid: number\n taglistids: number\n liveauctiononly: boolean\n onsitesaleitem: boolean\n allowautobid: boolean\n donatedby: string\n donatedbyemail: string\n donationtypeid: number\n fairmarketvalue: number\n startingbid: number\n minimumraise: number\n buyitnowprice: number\n buyitnowonly: boolean\n quantityunlimited: boolean\n quantity: number\n imageloaded: boolean\n logo: string\n logourl: string\n pickupinstructions: string\n active: boolean\n itemtype: number\n itemorder: number\n}\n\nconst auctionItemsDefaults = {\n itemid: 0,\n itemnumber: \"\",\n name: \"\",\n shortdesc: \"\",\n longdesc: \"\",\n locationid: 0,\n taglistids: 0,\n liveauctiononly: false,\n onsitesaleitem: false,\n allowautobid: false,\n donatedby: \"\",\n donatedbyemail: \"\",\n donationtypeid: 0,\n fairmarketvalue: 0,\n startingbid: 0,\n minimumraise: 1,\n buyitnowprice: 0,\n buyitnowonly: false,\n quantityunlimited: false,\n quantity: 1,\n imageloaded: false,\n logo: \"\",\n logourl: \"\",\n pickupinstructions: \"\",\n active: true,\n itemtype: 1,\n itemorder: 0\n}\nexport type LiveAuctionItems = {\n itemid: number\n itemnumber: string\n name: string\n startingbid: number\n bidderparticipantid: number\n lastbid: number\n biddername: string\n biddernumber: number\n biddersource: string\n historyid: number\n livebidemailsent: string\n livebidcheckedout: string\n livebidconfirmed: string\n}\n\nconst defaultLiveAuctionItem = {\n itemid: 0,\n itemnumber: \"\",\n name: \"\",\n startingbid: 0,\n lastbid: 0,\n biddername: \"\",\n biddernumber: -1,\n biddersource: \"\",\n historyid: 0,\n livebidemailsent: \"\",\n livebidcheckedout: \"\",\n livebidconfirmed: \"\",\n bidderparticipantid : -1\n};\n\nexport type liveBidder = {\n rownumber: number\n bidderparticipantid: number\n biddername: string\n}\nconst liveBidderdefault = {\n rownumber: 0,\n bidderparticipantid: 0,\n biddername : \"\"\n}\n\nexport type liveAuctionLists = {\n LiveAuctionitemlist : LiveAuctionItems[]\n bidderlist : liveBidder[]\n}\nconst liveauctionDefault : liveAuctionLists ={\n LiveAuctionitemlist:[defaultLiveAuctionItem],\n bidderlist:[liveBidderdefault]\n}\nexport const globalAuctionItemsFetcher = async (body) => {\n const { data } = await axios.post('/eventitems', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventitems as AuctionItems[]\n}\n\nexport const useFetchAuctionItems = (eventiDvalue) => {\n console.log(\"use fetch auction items\")\n console.log(eventiDvalue)\n return useQuery(\n ['eventitems', eventiDvalue],\n () => globalAuctionItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [auctionItemsDefaults],\n //keepPreviousData: true\n }\n )\n}\n\nexport const globalLiveAuctionItemsFetcher = async (body) => {\n const { data } = await axios.post('/liveauction', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as liveAuctionLists\n}\nexport const useUpdateLiveBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`liveauction`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n }\n })\n}\nexport const useClearLiveBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`liveauctionclear`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n }\n })\n}\nexport const useFetchLiveAuctionItems = (eventiDvalue) => {\n return useQuery(\n ['liveeventitems', eventiDvalue],\n () => globalLiveAuctionItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: liveauctionDefault\n }\n )\n}\n\n\n\nexport const useUpdateItemOrder = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`eventitemsorder`, body), {\n onSuccess: () => {\n // const parsedData = JSON.parse(newData.data.jsonString)\n console.log(\"updatesuccess\")\n // console.log(parsedData.eventitems as AuctionItems[])\n // let newDataFields = parsedData.eventitems as AuctionItems[]\n // queryClient.setQueryData(['eventitems', eventid], newDataFields)\n console.log(eventiDvalue)\n queryClient.invalidateQueries(['eventitems', eventiDvalue])\n }\n })\n}\n\nexport const useConfirmLiveAuction = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`liveauctionconfirmsend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['liveeventitems'])\n },\n });\n }","import { FC, PropsWithChildren } from 'react'\nimport { FormProvider, SubmitHandler, UseFormReturn } from 'react-hook-form'\n\ntype Props = {\n onSubmit: SubmitHandler\n methods: UseFormReturn\n className?: string\n formProps?: Object\n}\n\nfunction HookForm({\n children,\n methods,\n onSubmit,\n className = '',\n formProps = {}\n}: PropsWithChildren>) {\n return (\n \n \n {children}\n \n \n )\n}\n\nexport default HookForm\n","\nimport {\n Redirect,\n Route,\n Switch,\n useRouteMatch\n} from 'react-router-dom'\n\nimport { Logo } from '../../icons/Logo'\nimport styles from './AuthPage.module.css'\nimport ForgotPasswordForm from './ForgotPasswordForm'\nimport LoginForm from './LoginForm'\nimport ResetPasswordForm from './ResetPasswordForm'\n\nexport enum AuthPageSubPaths {\n login = '/login',\n forgotPassword = '/forgotPassword',\n resetPassword = '/resetPassword/:token'\n}\n\nconst AuthPage = () => {\n const { path } = useRouteMatch()\n\n return (\n
\n
\n
\n \n

Admin

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nexport default AuthPage\n","import cn from 'classnames'\nimport { FC, useEffect, useState } from 'react'\n\nimport { Chip, TextField } from '@material-ui/core'\nimport { Autocomplete } from '@material-ui/lab/'\n\nimport styles from './ChipsList.module.css'\n\ntype Props = {\n className?: string\n list: { value: any; label: string }[]\n setList: Function\n defaultValues?: string[]\n options: { value: any; label: string }[]\n label: string\n tooltipText?: string\n}\n\nconst ChipsList: FC = ({\n className,\n list,\n setList,\n defaultValues,\n options,\n label,\n tooltipText\n}) => {\n const [value, setValue] = useState<{ value: any; label: string }>()\n const [inputValue, setInputValue] = useState('')\n\n // useEffect(() => {\n // setList(defaultValues)\n // }, [defaultValues?.length])\n\n const onKeyPress = (e) => {\n if (e.key === 'Enter' && value) {\n e.preventDefault()\n const foundItem = list.find((o) => o.value === value.value)\n if (!foundItem) {\n setList((c) => [...c, value])\n }\n setInputValue('')\n setValue({ value: '', label: '' })\n }\n }\n\n const onSelChange = (e) => {\n if (value) {\n e.preventDefault()\n const foundItem = list.find((o) => o.value === value.value)\n if (!foundItem) {\n setList((c) => [...c, value])\n }\n }\n }\n\n const onDelete = (index) => {\n setList(list.filter((v, i) => i !== index))\n }\n\n return (\n
\n option.label}\n renderOption={(option) => option.label}\n value={value}\n onChange={(event: any, option: any) => {\n setValue(option)\n }}\n inputValue={inputValue}\n onInputChange={(event, newInputValue) => {\n setInputValue(newInputValue)\n }}\n renderInput={(params) => (\n \n )}\n />\n
\n {list?.map((option, i) => {\n return (\n onDelete(i)}\n style={{ marginRight: '0.25rem', marginTop: '0.25rem' }}\n />\n )\n })}\n
\n
\n )\n}\n\nexport default ChipsList\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\n\nimport {MenuItem, Switch as MuiSwitch, TextField} from '@material-ui/core'\n\nimport styles from './SelectInput.module.css'\n\ntype Props = {\n name: string\n label: string\n options: { value: any; label: string }[] | string[]\n defaultValue?: string\n rules?: Object\n required?: boolean\n disabled?: boolean\n includeNone?: boolean\n includeAll?: boolean\n textFieldProps?: Object\n onHandleChange?: Function\n onClick? : Function\n tooltipText?: string\n}\n\nconst SelectInput = ({\n name,\n label,\n options,\n defaultValue = '',\n rules,\n required = false,\n disabled = false,\n includeNone = true,\n includeAll = false,\n textFieldProps,\n onHandleChange,\n onClick,\n tooltipText = \"\"\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n defaultValue: defaultValue,\n rules: { ...rules, required: required ? 'Field is required' : false }\n })\n\n const { errors } = formState\n \n return (\n {\n console.log(event)\n }}\n onClick={() => {\n onClick && onClick()\n }}\n variant=\"outlined\"\n size=\"small\"\n label={label}\n disabled={disabled}\n // value={'None'}\n error={errors[name] ? true : false}\n FormHelperTextProps={{\n classes: {\n error: styles.error\n },\n error: true\n }}\n InputProps={{\n classes: {\n root: styles.input,\n error: styles.error,\n focused: styles.focus\n }\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n helperText={errors[name]?.message}\n required={required}\n {...textFieldProps}\n {...inputProps}>\n\n {includeNone &&\n \n None\n \n }\n {includeAll &&\n \n ALL\n \n }\n {options && typeof options?.[0] === 'object'\n ? (options as { value: any; label: string }[]).map(cat => (\n \n {cat.label}\n \n ))\n : (options as string[]).map(cat => (\n \n {cat}\n \n ))}\n \n )\n}\n\nexport default SelectInput\n","import { useController, useFormContext } from 'react-hook-form'\n\nimport { Switch as MuiSwitch, SwitchProps } from '@material-ui/core'\n\nimport styles from './Switch.module.css'\n\ntype Props = {\n name: string\n rules?: Object\n switchProps?: SwitchProps\n defaultValue?: boolean\n disabled?: boolean\n}\n\nconst Switch = ({\n rules = {},\n name,\n switchProps = {},\n defaultValue = false,\n disabled = false\n}: Props) => {\n const { control } = useFormContext()\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules,\n defaultValue\n })\n\n return (\n \n )\n}\n\nexport default Switch\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport {TextField, TextFieldProps, InputAdornment} from '@material-ui/core'\n\nimport styles from './TextInput.module.css'\n\ntype Props = {\n name: string\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: TextFieldProps\n defaultValue?: string\n startAdornment?: string\n endAdornment?: string\n disabled?: boolean\n tooltipText?: string\n maxLength?: number\n}\n\nexport const StyledMUIInput = ({ ...props }) => {\n return (\n {props.startAdornment},\n endAdornment: {props.endAdornment},\n }}\n inputProps={{\n maxLength: props.maxLength\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size=\"small\"\n variant=\"outlined\"\n {...props}\n />\n\n )\n}\n\nconst TextInput = ({\n name,\n label,\n rules = {},\n required = false,\n defaultValue = \"\",\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n disabled = false,\n tooltipText= \"\",\n maxLength\n}: Props) => {\n const { control, formState } = useFormContext()\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n return (\n \n )\n}\n\nexport default TextInput\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateEventItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`eventitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventitems'])\n }\n })\n}\n\nexport const useUpdateEventItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`eventitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventitems'])\n }\n })\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\n\nexport type Locations = {\n rownumber: number\n id: number\n name: string\n closeddate: string\n active: boolean\n}\n\nexport type Tags = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type DonationType = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type AccountingCode = {\n rownumber: number\n id: number\n name: string\n active: boolean\n}\n\nexport type LocationTags = {\n locations: Locations[]\n tags: Tags[]\n donationtype: DonationType[]\n accountingcode: AccountingCode[]\n}\n\nexport const globalLocationTagsFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: Number(eventIdvalue) });\n const { data } = await axios.post('/locationtags', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as LocationTags\n}\n\nexport const useFetchLocationTags = (eventid) => {\n return useQuery(\n ['locationtags', eventid],\n () => globalLocationTagsFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: { locations: [], tags: [], donationtype: [], accountingcode: [] },\n keepPreviousData: true\n }\n )\n}\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport NumberFormat, {NumberFormatValues} from 'react-number-format'\nimport {InputAdornment, TextField} from '@material-ui/core'\nimport styles from './MaskedInput.module.css'\nimport {StyledMUIInput} from \"../TextInput/TextInput\";\n\ntype Props = {\n name: string\n format?: string\n mask?: string\n disabled?: boolean\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: Object\n startAdornment?: string\n endAdornment?: string\n defaultValue?: string\n placeholder?: string\n prefix?: string\n onValueChange?: (values: NumberFormatValues) => void,\n thousandsGroupStyle?: string,\n thousandSeparator?: boolean\n tooltipText?: string\n}\n\nconst MaskedInput = ({\n name,\n label,\n format,\n mask,\n disabled,\n rules = {},\n required = false,\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n defaultValue = null,\n placeholder = '',\n prefix = \"$\",\n onValueChange,\n thousandsGroupStyle = 'thousand',\n thousandSeparator = true,\n tooltipText = ''\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n const { errors } = formState\n\n return (\n {startAdornment},\n endAdornment: {endAdornment}\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size={'small' as any}\n variant=\"outlined\"\n label={label}\n error={errors[name] ? true : false}\n helperText={errors[name]?.message}\n required={required}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n defaultValue={defaultValue}\n prefix={prefix}\n thousandGroupStyle={thousandsGroupStyle}\n {...textFieldProps}\n {...inputProps}\n />\n )\n}\n\nexport default MaskedInput\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport NumberFormat, {NumberFormatValues} from 'react-number-format'\n\nimport {InputAdornment, TextField} from '@material-ui/core'\n\nimport styles from './MaskedInput.module.css'\nimport {StyledMUIInput} from \"../TextInput/TextInput\";\n\ntype Props = {\n name: string\n format?: string\n mask?: string\n disabled?: boolean\n label: string\n required?: boolean\n rules?: Object\n textFieldProps?: Object\n startAdornment?: string\n endAdornment?: string\n defaultValue?: string\n prefix?: string\n onValueChange?: (values: NumberFormatValues) => void,\n thousandsGroupStyle?: string,\n thousandSeparator?: boolean,\n tooltipText?: string\n}\n\nconst CustomMaskedInput = ({\n name,\n label,\n format,\n mask,\n disabled,\n rules = {},\n required = false,\n textFieldProps,\n startAdornment = \"\",\n endAdornment = \"\",\n defaultValue = '',\n prefix = \"$\",\n onValueChange,\n thousandsGroupStyle = 'thousand',\n thousandSeparator = true,\n tooltipText = ''\n}: Props) => {\n const { control, formState } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n const { errors } = formState\n\n return (\n {startAdornment},\n endAdornment: {endAdornment}\n }}\n InputLabelProps={{\n classes: {\n root: styles.label,\n error: styles.error,\n focused: styles.focus\n },\n shrink: true\n }}\n size={'small' as any}\n variant=\"outlined\"\n label={label}\n error={errors[name] ? true : false}\n helperText={errors[name]?.message}\n required={required}\n startAdornment={startAdornment}\n endAdornment={endAdornment}\n defaultValue={defaultValue}\n prefix={prefix}\n thousandGroupStyle={thousandsGroupStyle}\n {...textFieldProps}\n {...inputProps}\n />\n )\n}\n\nexport default CustomMaskedInput\n","import React, {useEffect, useMemo, useState} from 'react'\nimport {useForm, useFormContext} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, FormGroup, Grid, InputAdornment, TextField, Typography\n} from '@material-ui/core'\nimport {Close, PhotoLibrary} from '@material-ui/icons'\n\nimport HookForm from '../../../components/common/HookForm'\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport ChipsList from '../../../components/common/inputs/ChipsList'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport Switch from '../../../components/common/inputs/Switch'\n// import Switch from '@mui/material/Switch';\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useCreateEventItem } from '../../../mutations/useCreateEventItem'\nimport { useFetchLocationTags } from '../../../queries/events/useFetchLocationTags'\nimport { useFetchDonationTypes } from '../../../queries/useFetchDonationTypes'\nimport styles from './AuctionItemsTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport {emailRegex} from \"../../../util/formValidation\";\nimport Dropzone from \"react-dropzone\";\nimport {FormControlLabel, ToggleButton, ToggleButtonGroup} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport CustomMaskedInput from \"../../../components/common/inputs/MaskedInput/CustomMaskedInput\";\nimport imageCompression from \"browser-image-compression\";\n\n\ninterface FormData {\n itemid: number\n itemnumber: string\n name: string\n shortdesc: string\n longdesc: string\n location: number\n taglistids: [{\n tag: number\n }]\n allowautobid: boolean\n donatedby: string\n donatedbyemail: string\n donationtypeid: number\n accountingcodeid: number\n fairmarketvalue: number\n startingbid: number\n minimumraise: number\n buyitnowprice: number\n buyItNowValueOnlineAuction: number\n buyItNowChangeOnlineOnly: number\n quantityunlimited: boolean\n quantity: number\n maxpurchasequantity: number\n imageloaded: boolean\n logo: string\n logourl: string\n logoremoved: boolean\n pickupinstructions: string\n active: string\n toggleItemType: string\n}\n\nexport const AuctionItemsForm = ({ isOpen, setIsOpen, gridParams, reloadForm }) => {\n const formMethods = useForm()\n // const { control, formState } = useFormContext()\n const eventState = useEventState()\n const title = gridParams ? \"Edit Auction Item\" : \"Create Auction Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [tags, setTags] = useState<{ value: any; label: string }[]>([])\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n // const { data: donationTypes } = useFetchDonationTypes()\n const [quantityValue, setQuantityValue] = useState(1)\n const [fairMarketValue, setFairMarketValue] = useState(0)\n const [startingBidValue, setStartingBidValue] = useState(0)\n const [buyItNowValue, setbuyItNowValue] = useState(null)\n const [buyItNowValueOnlineAuction, setbuyItNowValueOnlineAuction] = useState(null)\n const [buyItNowValueOnlineOnly, setbuyItNowValueOnlineOnly] = useState(null)\n const [minimumRaiseValue, setMinimumRaiseValue] = useState(1)\n const [buyItNowActive, setbuyItNowActive] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const watchLogo = watch('logourl')\n const allowautobidWatch = watch('allowautobid')\n const watchLogoData = watch('logo')\n const minNumberRegex = /^([1-9][0-9]{0,2}|1000)$/\n const [toggleItemType, setToggleItemType] = React.useState(\"online-auction\");\n const [allowAutoBidValue, setAllowAutoBidValue] = useState()\n const qtyUnlimited = watch('quantityunlimited')\n\n useEffect(() => {\n if (qtyUnlimited) {\n setQuantityValue(0)\n setValue('quantity', 0)\n }\n else {\n setQuantityValue(1)\n setValue('quantity', 1)\n }\n }, [qtyUnlimited])\n\n useEffect(() => {\n if (allowautobidWatch) {\n setValue('quantity', 1)\n }\n }, [allowautobidWatch])\n\n const handleQuantityChange = (event) => {\n var maxQty = event.value\n if (maxQty > 25) {\n maxQty = 25\n }\n if (maxQty > 0) {\n setValue('maxpurchasequantity', maxQty)\n }\n\n setQuantityValue(event.value)\n }\n\n const handleFairmarketChange = (event) => {\n setFairMarketValue(event.floatValue)\n }\n\n const handleStartingBidChange = (event) => {\n setStartingBidValue(event.floatValue)\n }\n\n const handleBuyItNowChange = (event) => {\n\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValue(event.floatValue)\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n setbuyItNowValue(event.floatValue)\n }\n\n const handleBuyItNowChangeOnlineAuction = (event) => {\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValueOnlineAuction(event.floatValue)\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n setbuyItNowValueOnlineAuction(event.floatValue)\n }\n\n const handleBuyItNowChangeOnlineOnly = (event) => {\n if (event.floatValue <= 0 && (toggleItemType === 'buy-it-now-online' || toggleItemType === 'buy-it-now-in-person')) {\n setbuyItNowValueOnlineOnly(event.floatValue)\n setError('buyItNowChangeOnlineOnly', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n setbuyItNowValueOnlineOnly(event.floatValue)\n }\n\n const handleMinimumRaiseChange = (event) => {\n setMinimumRaiseValue(event.floatValue)\n }\n\n useEffect(() => {\n let selectedTags = []\n gridParams?.taglistids.forEach(tagId => {\n const tagToAdd = locationAndTags?.tags?.find(tag => tag.id === tagId);\n\n if (tagToAdd && tagToAdd.active) {\n selectedTags.push({value: tagToAdd.id, label: tagToAdd.name})\n }\n })\n setTags(selectedTags)\n\n setFairMarketValue(gridParams ? gridParams.fairmarketvalue : 0)\n setStartingBidValue(gridParams ? gridParams.startingbid : 0)\n setMinimumRaiseValue(gridParams ? gridParams.minimumraise : 1)\n setbuyItNowValue(gridParams ? gridParams.buyitnowprice : null)\n setbuyItNowValueOnlineAuction(gridParams ? gridParams.buyitnowprice : null)\n setbuyItNowValueOnlineOnly(gridParams ? gridParams.buyitnowprice : null)\n\n setQuantityValue(gridParams?.quantity)\n setAllowAutoBidValue(gridParams ? gridParams.allowautobid : false)\n\n\n if (gridParams && gridParams.itemtype === 1) {\n setToggleItemType('online-auction')\n }\n else if (gridParams && gridParams.itemtype === 2) {\n setToggleItemType('live-auction')\n }\n else if (gridParams && gridParams.itemtype === 3) {\n setToggleItemType('buy-it-now-online')\n }\n else if (gridParams && gridParams.itemtype === 4) {\n setToggleItemType('buy-it-now-in-person')\n }\n\n reset({\n itemid: (gridParams ? gridParams.itemid : 0),\n itemnumber: (gridParams ? gridParams.itemnumber : ''),\n name: (gridParams ? gridParams.name : ''),\n shortdesc: (gridParams ? gridParams.shortdesc : ''),\n longdesc: (gridParams ? gridParams.longdesc : ''),\n location: (gridParams ? gridParams.locationid : 0),\n taglistids: (gridParams ? gridParams.taglistids : []),\n allowautobid: (gridParams ? gridParams.allowautobid : false),\n donatedby: (gridParams ? gridParams.donatedby : ''),\n donatedbyemail: (gridParams ? gridParams.donatedbyemail : ''),\n donationtypeid: ((gridParams && gridParams.donationtypeid) ? gridParams.donationtypeid : 0),\n accountingcodeid: ((gridParams && gridParams.accountingcodeid) ? gridParams.accountingcodeid : 0),\n fairmarketvalue: (gridParams ? gridParams.fairmarketvalue : 0),\n startingbid: (gridParams ? gridParams.startingbid : 0),\n minimumraise: (gridParams ? gridParams.minimumraise : 1),\n buyitnowprice:(gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n buyItNowValueOnlineAuction: (gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n buyItNowChangeOnlineOnly:(gridParams && gridParams.buyitnowprice > 0 ? gridParams.buyitnowprice : null),\n quantityunlimited: (gridParams ? gridParams.quantityunlimited : false),\n quantity: (gridParams ? gridParams.quantity : 1),\n maxpurchasequantity: (gridParams ? gridParams.maxpurchasequantity : 1),\n imageloaded: (gridParams ? gridParams.imageloaded : false),\n logo: (gridParams ? gridParams.logo : ''),\n logourl: (gridParams ? gridParams.logourl : ''),\n logoremoved: false,\n pickupinstructions: (gridParams ? gridParams.pickupinstructions : ''),\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }, [reloadForm, locationAndTags])\n \n const tagOptions = useMemo(\n () =>\n locationAndTags?.tags?.filter((e) => e.active === true).map((tag) => {\n return { value: tag.id, label: tag.name }\n }),\n [locationAndTags]\n )\n\n const locations = locationAndTags ? locationAndTags : { locations:[] }\n\n const locationOptions = useMemo(\n () =>\n locations.locations?.filter((e) => e.active === true).map((location) => {\n return { value: location.id, label: location.name }\n }),\n [locationAndTags]\n )\n\n const donationnTypes = locationAndTags ? locationAndTags : { donationtype:[] }\n const donationTypeOptions = () => {\n const dtRows = donationnTypes.donationtype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const accountingTypes = locationAndTags ? locationAndTags : { accountingcode:[] }\n const accountingCodeOptions = () => {\n const dtRows = accountingTypes.accountingcode?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n\n const createMutation = useCreateEventItem()\n\n const onSubmit = async (data: FormData) => {\n if (toggleItemType === 'online-auction' && data.location === 0 ) {\n setError('location', { type: 'required', message: 'Location is required' })\n return\n }\n\n if (buyItNowValue <= 0 && toggleItemType === 'buy-it-now-in-person') {\n setError('buyitnowprice', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n if (buyItNowValueOnlineOnly <= 0 && toggleItemType === 'buy-it-now-online') {\n setError('buyItNowChangeOnlineOnly', { type: 'required', message: 'Buy it now price is required for Online Items.' })\n return\n }\n\n const tagsToSave = tags.map(tag => {\n return tag.value\n })\n const locs = locationAndTags?.locations?.filter(item => {\n return data.location === item.id\n });\n\n var finalData = gridParams ? { ...data, eventid: Number(eventState.eventId) } : { ...data, eventid: Number(eventState.eventId) }\n\n var localItemType = 1\n var buyItNowVal = buyItNowValue\n if (toggleItemType === 'online-auction') {\n localItemType = 1\n buyItNowVal = buyItNowValueOnlineAuction\n }\n else if (toggleItemType === 'live-auction') {\n localItemType = 2\n }\n else if (toggleItemType === 'buy-it-now-online') {\n localItemType = 3\n buyItNowVal = buyItNowValueOnlineOnly\n }\n else if (toggleItemType === 'buy-it-now-in-person') {\n localItemType = 4\n }\n\n const { data: response } = await createMutation.mutateAsync( {\n eventid: Number(eventState.eventId),\n itemid: Number(finalData.itemid),\n itemnumber: finalData.itemnumber,\n name: finalData.name,\n shortdesc: finalData.shortdesc,\n longdesc: finalData.longdesc,\n locationid: (locs && locs.length > 0 ? locs[0].id : 0),\n taglistids: tagsToSave,\n allowautobid: finalData.allowautobid,\n donatedby: finalData.donatedby,\n donatedbyemail: finalData.donatedbyemail,\n donationtypeid: (finalData.donationtypeid && finalData.donationtypeid.toString().length > 0 && finalData.donationtypeid.toString() !== 'none' ? finalData.donationtypeid : 0),\n accountingcodeid: (finalData.accountingcodeid && finalData.accountingcodeid.toString().length > 0 && finalData.accountingcodeid.toString() !== 'none' ? finalData.accountingcodeid : 0),\n fairmarketvalue: fairMarketValue,\n startingbid: startingBidValue,\n minimumraise: minimumRaiseValue,\n buyitnowprice: buyItNowVal,\n quantityunlimited: finalData.quantityunlimited,\n quantity: Number(quantityValue),\n maxpurchasequantity: Number(finalData.maxpurchasequantity),\n imageloaded: finalData.imageloaded,\n logo: watchLogoData,\n logourl: \"\",\n logoremoved: finalData.logoremoved,\n pickupinstructions: finalData.pickupinstructions,\n active: finalData.active === 'Active',\n itemtype: localItemType\n })\n\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n\n fileReader.readAsDataURL(compressedFile)\n }\n\n const currencyFormat = (num) => {\n return '$' + num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n const handleTypeChange = (\n event: React.MouseEvent,\n newAlignment: string\n ) => {\n if (newAlignment !== null) {\n const loc : any = getValues('location')\n if (newAlignment === 'online-auction' && loc === 'none') {\n setError('location', { type: 'required', message: 'Location is required' })\n }\n else if (newAlignment == 'live-auction') {\n setQuantityValue(1)\n }\n\n setToggleItemType(newAlignment)\n }\n }\n\n const handleAllowAutoBidChange = (event) => {\n // localStorage.setItem('activeOnly', event.target.checked)\n // if (event.target.checked) {\n // setEvents(data.filter((e) => e.active === true))\n // } else {\n // setEvents(data)\n // }\n }\n // const { errors } = formState\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface EventSettings {\n rownumber: number\n eventid: number\n name: string\n code: string\n active: boolean\n start: string\n end: string\n bidstart: string\n bidend: string\n timezone: string\n allowcustomlocations: boolean\n allowbillme: boolean\n allowbuyitnow: boolean\n allowbidanonymously: boolean\n allowautobid: boolean\n allowautobidincrement: boolean\n approvalofbidders: boolean\n allowcreditcards: boolean\n allowpaymentoffees: boolean\n ccfee: number\n startbiddernum: number\n receipttemplateid: number\n allowtexting: boolean\n allowguestentry: boolean\n eventbiddingopen: string\n eventbiddingclosed: string\n textprefix: string\n logourl: string,\n eventprivacy: string,\n logo: string\n eventshowbidderpaddlenumber: boolean\n eventusepaddlenumber: boolean\n}\n\nconst defaultEventSettings = {\n rownumber: 0,\n eventid: 0,\n name: '',\n code: '',\n active: false,\n start: '',\n end: '',\n bidstart: '',\n bidend: '',\n timezone: '',\n allowcustomlocations: false,\n allowbillme: true,\n allowbuyitnow: true,\n allowbidanonymously: true,\n allowautobid: true,\n allowautobidincrement: true,\n approvalofbidders: false,\n allowcreditcards: true,\n allowpaymentoffees: true,\n allowtexting: true,\n allowguestentry: true,\n ccfee: 2.5,\n startbiddernum: 0,\n receipttemplateid: 1,\n eventbiddingopen: '',\n eventbiddingclosed: '',\n textprefix: '',\n logourl: '',\n eventprivacy: '',\n logo: '',\n eventshowbidderpaddlenumber: false,\n eventusepaddlenumber: false,\n}\n\nexport const globalEventSettingsFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: eventIdvalue })\n const { data } = await axios.post('/eventsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as EventSettings\n}\n\nexport const useFetchEventSettings = (eventid, enabled = true) => {\n\n return useQuery(\n ['eventsettings', eventid],\n () => globalEventSettingsFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: defaultEventSettings,\n //keepPreviousData: true,\n enabled\n }\n )\n}\n","import { useDispatch } from 'react-redux'\nimport {globalEventSettingsFetcher} from \"./events/useFetchEventSettings\";\nimport {EventState, setEvent, useEventState} from \"../slices/eventSlice\";\n\nexport const useAutoEvent = (eventId: string) => {\n const eventState = useEventState()\n const dispatch = useDispatch()\n if (eventState.eventId != eventId) {\n globalEventSettingsFetcher(Number(eventId)).then((data) => {\n if (data) {\n console.log(data)\n const newState: EventState = {\n eventId: data?.eventid?.toString(),\n eventName: data.name,\n eventCode: data.code,\n eventStart: data.start,\n eventEnd: data.end,\n bidStart: data.bidstart,\n bidEnd: data.bidend,\n allowpaymentoffees: data?.allowpaymentoffees,\n ccfee: data?.ccfee\n }\n dispatch(setEvent(newState))\n }\n })\n }\n}\n","import React, { useState } from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport { useFetchAuctionItems, useUpdateItemOrder } from '../../../queries/useActionItemsFetch'\nimport { AuctionItemsForm } from './AuctionItemsForm'\nimport styles from './AuctionItemsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../../slices/eventSlice\";\nimport {useFetchLocationTags} from \"../../../queries/events/useFetchLocationTags\";\nimport {useCreateEventItem} from \"../../../mutations/useCreateEventItem\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../../queries/useAutoEvent\";\nimport {useFetchDonationTypes} from \"../../../queries/useFetchDonationTypes\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {getValues} from \"export-from-json/dist/types/utils\";\n\n\nconst auctionItemsDefaults = {\n itemid: null,\n itemnumber: '',\n name: '',\n shortdesc: '',\n longdesc: '',\n locationid: 0,\n taglistids: [],\n itemtype: 0,\n liveauctiononly: false,\n onsitesaleitem: false,\n allowautobid: false,\n donatedby: '',\n donatedbyemail: 0,\n donationtypeid: 0,\n accountingcodeid: 0,\n fairmarketvalue: 0,\n startingbid: 0,\n minimumraise: 1,\n buyitnowprice: 0,\n buyitnowonly: false,\n quantityunlimited: false,\n quantity: 0,\n maxpurchasequantity: 0,\n imageloaded: false,\n logo: \"\",\n logourl: \"\",\n pickupinstructions: \"\",\n active: true\n}\n\ninterface Params {\n id: string\n}\n\nconst AuctionItemsTable = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const { data: donationTypes } = useFetchDonationTypes()\n const eventItemCreate = useCreateEventItem()\n const [gridParams, setGridParams] = useState(auctionItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchAuctionItems( Number(eventState.eventId) )\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n const updateItemOrder = useUpdateItemOrder(eventState.eventId)\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n if (data) {\n console.log(data)\n console.log(locationAndTags)\n rows = data.map((item) => {\n var tag = { name: \"\"}\n var location = { name: \"\" }\n var donationTypes = { name: \"\" }\n var accountingCodes = { name: \"\" }\n if (locationAndTags.tags) {\n tag = locationAndTags.tags.filter((e) => (e.active && Number(e.id) === Number(item.taglistids)))[0]\n }\n if (locationAndTags.locations) {\n location = locationAndTags.locations.filter((e) => (e.active && Number(e.id) === Number(item.locationid)))[0]\n }\n if (locationAndTags.donationtype) {\n donationTypes = locationAndTags.donationtype.filter((e) => (e.active && Number(e.id) === Number(item.donationtypeid)))[0]\n }\n // if (locationAndTags.accountingcode) {\n // accountingCodes = locationAndTags.accountingcode.filter((e) => (e.active && Number(e.id) === Number(item.accountingcodeid)))[0]\n // }\n return { id: item.itemid, ...item, tags: tag ? tag.name : \"\", location: location ? location.name : \"\", donationtype: donationTypes ? donationTypes.name : \"\"}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const getAuctionType = ((auctionTypeId: number) => {\n if (auctionTypeId === 1) {\n return 'Online Auction'\n }\n else if (auctionTypeId === 2) {\n return 'Live Auction Only'\n }\n else if (auctionTypeId === 3) {\n return 'Buy It Now Only (Online)'\n }\n else if (auctionTypeId === 4) {\n return 'Buy It Now Only (In-Person Only)'\n }\n })\n\n const getDonationType = ((donationId: number) => {\n const dt = locationAndTags?.donationtype?.find((type) => (type.active && type.id === donationId))\n return ((dt && dt.name) ? dt.name : '')\n })\n\n const getAccountCode = ((accountingCodeId: number) => {\n const at = locationAndTags?.accountingcode?.find((type) => (type.active && type.id === accountingCodeId))\n return ((at && at.name) ? at.name : '')\n })\n\n const getTagsDisplayString = ((tagsArray: any) => {\n var stringDisplay = ''\n tagsArray?.forEach(x => {\n const cTag = locationAndTags?.tags?.find((findTag) => (findTag.active && findTag.id === x))\n if (cTag) {\n if (stringDisplay.length > 0) {\n stringDisplay += ', '\n }\n stringDisplay += cTag.name\n }\n })\n return stringDisplay\n })\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.itemid === Number(params.id))[0]\n setGridParams( {\n itemid: ai.itemid,\n itemnumber: ai.itemnumber,\n name: ai.name,\n shortdesc: ai.shortdesc,\n longdesc: ai.longdesc,\n locationid: ai.locationid,\n taglistids: ai.taglistids,\n itemtype: ai.itemtype,\n liveauctiononly: ai.liveauctiononly,\n onsitesaleitem: ai.onsitesaleitem,\n allowautobid: ai.allowautobid,\n donatedby: ai.donatedby,\n donatedbyemail: ai.donatedbyemail,\n donationtypeid: ai.donationtypeid,\n accountingcodeid: ai.accountingcodeid,\n fairmarketvalue: ai.fairmarketvalue,\n startingbid: ai.startingbid,\n minimumraise: ai.minimumraise,\n buyitnowprice: ai.buyitnowprice,\n buyitnowonly: ai.buyitnowonly,\n quantityunlimited: ai.quantityunlimited,\n quantity: ai.quantity,\n maxpurchasequantity: ai.maxpurchasequantity,\n imageloaded: ai.imageloaded,\n logo: \"\",\n logourl: ai.logourl,\n pickupinstructions: ai.pickupinstructions,\n active: ai.active\n })\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'itemnumber').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventState.eventId),\n \"itemid\": id,\n \"delete\": true\n }\n const { data: response } = await eventItemCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const canDelete = (active) => {\n if (new Date(eventState.bidStart) <= new Date()) {\n // console.log('date is valid')\n return !active\n }\n else {\n return true\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120,\n sortable: false,\n },\n {\n field: 'itemorder',\n type: 'number',\n headerName: 'Item Order',\n minWidth: 120,\n hide: true\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 150,\n sortable: false,\n },\n {\n field: 'shortdesc',\n type: 'string',\n headerName: 'Short Desc',\n minWidth: 150,\n sortable: false,\n hide: true,\n },\n {\n field: 'longdesc',\n type: 'string',\n headerName: 'Long Desc',\n minWidth: 150,\n sortable: false,\n hide: true,\n },\n {\n field: 'liveauctiononly',\n type: 'string',\n headerName: 'Live Auction Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'onsitesaleitem',\n type: 'string',\n headerName: 'OnSite Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'allowautobid',\n type: 'string',\n headerName: 'Allow Auto Bid',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'donatedby',\n type: 'string',\n headerName: 'Donated By',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'donatedbyemail',\n type: 'string',\n headerName: 'Donated By Email',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'startingbid',\n type: 'string',\n headerName: 'Starting Bid',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'buyitnowprice',\n type: 'string',\n headerName: 'Buy It Now Price',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'buyitnowonly',\n type: 'string',\n headerName: 'Buy It Now Only',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'quantityunlimited',\n type: 'string',\n headerName: 'Quantity Unlimited',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'pickupinstructions',\n type: 'string',\n headerName: 'Pickup Instructions',\n minWidth: 100,\n sortable: false,\n hide: true,\n },\n {\n field: 'itemtype',\n type: 'number',\n align: 'left',\n headerAlign: 'left',\n headerName: 'Auction Type',\n width: 250,\n editable: false,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? getAuctionType(Number(params.value)) : 'None')\n },\n },\n // {\n // field: 'donationtypeid',\n // type: 'number',\n // align: 'left',\n // headerAlign: 'left',\n // headerName: 'Donation Type',\n // width: 175,\n // editable: false,\n // sortable: false,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return (params.value ? getDonationType(Number(params.value)) : \"None\")\n // },\n // },\n // {\n // field: 'accountingcodeid',\n // type: 'number',\n // align: 'left',\n // headerAlign: 'left',\n // headerName: 'Accounting Code',\n // width: 175,\n // editable: false,\n // sortable: false,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return (params.value ? getAccountCode(Number(params.value)) : \"None\")\n // },\n // },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n sortable: false,\n width: 175\n },\n {\n field: 'taglistids',\n type: 'string',\n headerName: 'Tags',\n width: 175,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? getTagsDisplayString(params.value) : \"\")\n },\n },\n {\n field: 'quantity',\n type: 'string',\n headerName: 'Quantity',\n headerAlign: 'center',\n align: 'center',\n sortable: false,\n width: 175,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value > 0 ? params.value : \"Unlimited\")\n },\n },\n {\n field: 'fairmarketvalue',\n type: 'string',\n headerName: 'Fair Market Value',\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n width: 175\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n disableExport: true,\n width: 120,\n sortable: false,\n renderCell: (params) => (\n // \n
\n
\n { handleDelete(params) }}>\n \n \n
\n
\n //
\n )\n }\n ]\n\n const ReOrderToggle = async () =>{\n //todo: Data is being pushed up and saved successfully however it isnt being saved locally so the rerender destroys it until refetched.\n if(rowOrdering){\n for(let i = 0; i x.itemid === rows[i].itemid).itemorder = i;\n\n }\n let itemListingOrder = rows.map(x => {\n return {itemid: x.itemid, order: x.itemorder}\n })\n var finaldata = {\n eventid: eventState.eventId,\n items: itemListingOrder\n }\n console.log(finaldata)\n updateItemOrder.mutate({\n ...finaldata\n },{\n onSuccess: (data) => {\n console.log(data)\n queryClient.invalidateQueries(['eventitems', Number(eventState.eventId)])\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n }\n })\n }\n \n setRowOrdering(!rowOrdering)\n }\n const updateRowPosition = (\n initialIndex: number,\n newIndex: number,\n rows: Array,\n ) => {\n const rowsClone = [...rows];\n const row = rowsClone.splice(initialIndex, 1)[0];\n rowsClone.splice(newIndex, 0, row);\n return rowsClone;\n }\n \n \n const handleRowOrderChange = (params: GridRowOrderChangeParams) => {\n //setLoading(true);\n const newRows = updateRowPosition(\n params.oldIndex,\n params.targetIndex,\n rows,\n );\n rows = newRows \n \n };\n\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n ReOrderToggle()}\n >\n {rowOrdering ? 'Save' : 'Re-Order'}\n \n \n {/**/}\n \n \n \n )\n }\n\n return (\n <>\n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n )\n}\n\nexport default AuctionItemsTable\n","import styles from './AuctionItemsPage.module.css'\nimport AuctionItemsTable from \"./AuctionItemsTable\";\n\n\nconst AuctionItemsPage = () => {\n return (\n
\n

Auction Items

\n \n
\n )\n}\n\nexport default AuctionItemsPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventItemsFetcher = async (body) => {\n const { data } = await axios.post('/evtitems', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventitems\n}\n\nexport const useFetchEventItems = (eventiDvalue) => {\n return useQuery(\n ['evtitems', eventiDvalue],\n () => globalEventItemsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEvtItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems'])\n }\n })\n}\n\nexport const useUpdateEvtItem = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`evtitems`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems'])\n }\n })\n}\n\nexport const useUpdateItemOrder = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtitemsorder`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['evtitems', eventiDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport Switch from '../../components/common/inputs/Switch'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventItemsTable.module.css'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport axios from \"axios\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\n\ninterface FormData {\n itemid: number\n itemitemid: number\n itemname: string\n itemdescription: string\n itemprice: number\n itemnondeductibleamount: number\n itemtypeid: number\n itemdonationtypeid: number\n itemaccountcodeid: number\n itemquantity: number\n itemgroupquantity: number\n itemquantityunlimited: boolean\n itemmaxquantitypertransaction: number\n itemonlygroupavailable: boolean\n\n itemlinktoregistration: boolean\n itemwaiverrequired: boolean\n\n itemwaiverurl: string\n\n itemstopsellingdate: string\n\n itemstopselling: boolean\n active: boolean\n delete: boolean\n}\n\nexport const EventItemsForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Edit Event Item\" : \"Create Event Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [priceValue, setPriceValue] = useState(1)\n const [maxQtyPerTransChange, setMaxQtyPerTransChange] = useState(1)\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const itemqtyUnlimited = watch('itemquantityunlimited')\n const [loading, setLoading] = React.useState(false);\n const itemtypeidWatch = watch('itemtypeid')\n const [activeTicketType, setActiveTicketTyp] = React.useState({name: '', id: 0, active: false});\n const [quantityValue, setQuantityValue] = useState(1)\n const [itemGroupQuantity, setItemGroupQuantity] = useState(1)\n const [activeValue, setActiveValue] = useState(true)\n const [registationValue, setRegistrationValue] = useState(false)\n const [onlyGroupAvailableValue, setOnlyGroupAvailableValue] = useState(false)\n const [stopSalesValue, setStopSalesValue] = useState(false)\n const [nonDeductableAmount, setNonDeductableAmount] = useState(1)\n const [dropdownData, setDropdownData] = React.useState({\n accountingcode: [],\n donationtype: [],\n tickettype: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: ''\n })\n\n useEffect(() => {\n getEventDropdowns()\n }, [])\n\n useEffect(() => {\n const tixType = dropdownData?.tickettype?.find(ticketT => ticketT.id === itemtypeidWatch)\n setActiveTicketTyp(tixType)\n }, [itemtypeidWatch])\n\n const getEventDropdowns = async () => {\n setLoading(true)\n axios.post('/evtitemsdropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n setPriceValue(gridParams?.itemprice)\n setActiveValue(gridParams ? gridParams?.active : true)\n setQuantityValue(gridParams ? gridParams?.itemquantity : 1)\n setItemGroupQuantity(gridParams ? gridParams?.itemgroupquantity : 1)\n setMaxQtyPerTransChange(gridParams?.itemmaxquantitypertransaction)\n setRegistrationValue(gridParams?.itemlinktoregistration)\n setOnlyGroupAvailableValue(gridParams?.itemonlygroupavailable)\n setStopSalesValue(gridParams?.itemstopselling)\n setNonDeductableAmount(gridParams?.itemnondeductibleamount)\n\n\n\n reset({\n itemid: (gridParams ? gridParams.itemid : null),\n itemitemid: (gridParams ? gridParams.itemitemid : null),\n itemname: (gridParams ? gridParams.itemname : null),\n itemdescription: (gridParams ? gridParams.itemdescription : null),\n itemprice: (gridParams ? gridParams.itemprice : null),\n itemnondeductibleamount: (gridParams ? gridParams.itemnondeductibleamount : null),\n itemtypeid: (gridParams ? gridParams.itemtypeid : 1),\n itemdonationtypeid: (gridParams ? Number(gridParams.itemdonationtypeid) : 0),\n itemaccountcodeid: (gridParams ? Number(gridParams.itemaccountcodeid) : 0),\n itemquantity: (gridParams ? gridParams.itemquantity : 1),\n // itemquantity: (gridParams ? gridParams.itemquantity : 1),\n itemgroupquantity: (gridParams ? gridParams.itemgroupquantity : 1),\n itemquantityunlimited: (gridParams ? gridParams.itemquantityunlimited : false),\n itemmaxquantitypertransaction: (gridParams ? gridParams.itemmaxquantitypertransaction : 1),\n itemonlygroupavailable: (gridParams ? gridParams.itemonlygroupavailable : false),\n itemlinktoregistration: (gridParams ? gridParams.itemlinktoregistration : false),\n itemwaiverrequired: (gridParams ? gridParams.itemwaiverrequired : false),\n itemwaiverurl: (gridParams ? gridParams.itemwaiverurl : ''),\n itemstopsellingdate: (gridParams ? gridParams.itemstopsellingdate : ''),\n itemstopselling: (gridParams ? gridParams.itemstopselling : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n }, [reloadForm])\n\n const donationTypeOptions = () => {\n console.log(dropdownData.donationtype)\n const dtRows = dropdownData.donationtype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const ticketTypeOptions = () => {\n var rows = dropdownData.tickettype?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n\n if (itemrows && itemrows?.length <= 0) {\n // Filter out Group\n rows = rows?.filter((e) => e.label !== 'Group of Tickets').map((types) => {\n return {value: types.value, label: types.label}\n })\n }\n\n if (rows && rows.length > 0) {\n return [...rows]\n }\n else {\n return []\n }\n }\n\n const linkedTicketTypeOptions = () => {\n const linkedTickets = itemrows?.filter((i) => i.itemtype === 'Ticket').map((types) => {\n return {value: types.id, label: types.itemname}\n })\n\n if (linkedTickets && linkedTickets.length > 0) {\n return [...linkedTickets]\n }\n else {\n return []\n }\n }\n\n const accountingCodeOptions = () => {\n const dtRows = dropdownData.accountingcode?.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: 0, label: 'None'}, ...dtRows]\n }\n else {\n return [{value: 0, label: 'None'}]\n }\n }\n\n const createMutation = useCreateEvtItem()\n\n const onSubmit = async (data: FormData) => {\n console.log(data)\n var finalData = gridParams ? { ...data, eventid: Number(eventid) } : { ...data, eventid: Number(eventid) }\n console.log(finalData)\n\n // const isGroupType = itemrows?.find((i) => i.itemtype === 'Group of Tickets')\n // console.log(isGroupType)\n // const unlimited = (isGroupType ? false : finalData.itemquantityunlimited)\n // console.log(unlimited)\n\n // setItemGroupQuantity\n var bodyData = {\n eventid: Number(eventid),\n itemname: finalData.itemname,\n itemdescription: finalData.itemdescription,\n itemprice: priceValue,\n itemnondeductibleamount: nonDeductableAmount,\n itemtypeid: finalData.itemtypeid,\n itemdonationtypeid: Number(finalData.itemdonationtypeid),\n itemaccountcodeid: Number(finalData.itemaccountcodeid),\n itemquantity: Number(itemGroupQuantity),\n itemgroupquantity: Number(itemGroupQuantity),\n itemquantityunlimited: finalData.itemquantityunlimited,\n itemmaxquantitypertransaction: Number(maxQtyPerTransChange) > 0 ? Number(maxQtyPerTransChange) : 0,\n itemonlygroupavailable: onlyGroupAvailableValue,\n itemlinktoregistration: registationValue,\n itemwaiverrequired: finalData.itemwaiverrequired,\n itemwaiverurl: finalData.itemwaiverurl,\n itemstopselling: finalData.itemstopselling,\n active: activeValue\n }\n if (finalData.itemid > 0) {\n bodyData['itemid'] = Number(finalData.itemid)\n }\n\n if (finalData.itemitemid > 0) {\n bodyData['itemitemid'] = Number(finalData.itemitemid)\n }\n\n const { data: response } = await createMutation.mutateAsync(bodyData)\n\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const currencyFormat = (num) => {\n return '$' + num.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n }\n\n const handlePriceChange = (event) => {\n if (Number(event.value) >= 0) {\n setPriceValue(event.value)\n }\n else {\n setPriceValue(gridParams ? gridParams?.itemprice : 1)\n }\n }\n\n const handleNonDeductableAmountChange = (event) => {\n setNonDeductableAmount(event.value)\n }\n\n const handleQuantityChange = (event) => {\n console.log(event)\n if (Number(event.value) >= 0) {\n setItemGroupQuantity(Number(event.value))\n }\n else {\n setItemGroupQuantity(gridParams && gridParams?.itemgroupquantity > 0 ? gridParams?.itemgroupquantity : 1)\n }\n }\n\n const handleGroupQuantityChange = (event) => {\n console.log(event)\n if (Number(event.value) >= 0) {\n setItemGroupQuantity(Number(event.value))\n }\n else {\n setItemGroupQuantity(gridParams && gridParams?.itemgroupquantity > 0 ? gridParams?.itemgroupquantity : 1)\n }\n }\n\n const handleMaxQtyPerTransChange = (event) => {\n setMaxQtyPerTransChange(event.value)\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleRegistrationChange = (event: React.ChangeEvent) => {\n setRegistrationValue(event.target.checked);\n }\n\n const handleOnlyGroupAvailableChange = (event: React.ChangeEvent) => {\n setOnlyGroupAvailableValue(event.target.checked);\n }\n\n const handleStopSalesChange = (event: React.ChangeEvent) => {\n setStopSalesValue(event.target.checked);\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n\n {activeTicketType?.name === 'Ticket' &&\n <>\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n {/**/}\n {/*} label=\"Unlimited\" />*/}\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n\n
\n } label=\"Link to Registration\" />\n } label=\"Only available as part of a group\" />\n
\n
\n } label=\"Stop Sales Now\" />\n } label=\"Active\" />\n
\n \n }\n\n\n {activeTicketType?.name === 'Merchandise' &&\n <>\n \n \n
\n \n \n
\n
\n \n \n
\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n {/**/}\n {/*} label=\"Unlimited\" />*/}\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n } label=\"Active\" />\n \n }\n\n\n {activeTicketType?.name === 'Group of Tickets' &&\n <>\n \n \n \n\n
\n \n ((val > 0 && val <= 1000 || watch('itemquantityunlimited'))) || 'Please enter a number between 1 and 1000.',\n }}\n size={'small' as any}\n variant=\"outlined\"\n />\n
\n } label=\"Active\" />\n \n }\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","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, { useState } from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEvtItem, useFetchEventItems, useUpdateItemOrder} from '../../queries/useEventItemsFetch'\nimport { EventItemsForm } from './EventItemsForm'\nimport styles from './EventItemsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {formatMoney} from \"../../util/formatHelpers\";\n\nconst eventItemsDefaults = {\n itemid: 0,\n itemitemid: 0,\n itemname: '',\n itemdescription: '',\n itemprice: 0,\n itemnondeductibleamount: 0,\n itemtypeid: 0,\n itemdonationtypeid: 0,\n itemaccountcodeid: 0,\n itemquantity: 0,\n itemgroupquantity: 0,\n itemquantityunlimited: true,\n itemmaxquantitypertransaction: 0,\n itemonlygroupavailable: true,\n itemlinktoregistration: true,\n itemwaiverrequired: true,\n itemwaiverurl: '',\n itemstopsellingdate: '',\n itemstopselling: true,\n active: true,\n delete: true\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventItemsTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n const eventItemCreate = useCreateEvtItem()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchEventItems( Number(eventState.eventId) )\n const updateItemOrder = useUpdateItemOrder(eventState.eventId)\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.itemid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const getAuctionType = ((auctionTypeId: number) => {\n if (auctionTypeId === 1) {\n return 'Online Auction'\n }\n else if (auctionTypeId === 2) {\n return 'Live Auction Only'\n }\n else if (auctionTypeId === 3) {\n return 'Buy It Now Only (Online)'\n }\n else if (auctionTypeId === 4) {\n return 'Buy It Now Only (In-Person Only)'\n }\n })\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.itemid === Number(params.id))[0]\n console.log(ai)\n setGridParams( {\n itemid: ai.itemid,\n itemitemid: ai.itemitemid,\n itemname: ai.itemname,\n itemdescription: ai.itemdescription,\n itemprice: ai.itemprice,\n itemnondeductibleamount: ai.itemnondeductibleamount,\n itemtypeid: ai.itemtypeid,\n itemdonationtypeid: ai.itemdonationtypeid,\n itemaccountcodeid: ai.itemaccountcodeid,\n itemquantity: ai.itemquantity,\n itemgroupquantity: ai.itemgroupquantity,\n itemquantityunlimited: ai.itemquantityunlimited,\n itemmaxquantitypertransaction: ai.itemmaxquantitypertransaction,\n itemonlygroupavailable: ai.itemonlygroupavailable,\n itemlinktoregistration: ai.itemlinktoregistration,\n itemwaiverrequired: ai.itemwaiverrequired,\n itemwaiverurl: ai.itemwaiverurl,\n itemstopsellingdate: ai.itemstopsellingdate,\n itemstopselling: ai.itemstopselling,\n active: ai.active,\n delete: ai.delete,\n })\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'itemname').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"itemid\": id,\n \"delete\": true\n }\n const { data: response } = await eventItemCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const canDelete = (active) => {\n if (new Date(eventState.bidStart) <= new Date()) {\n // console.log('date is valid')\n return !active\n }\n else {\n return true\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n minWidth: 350,\n sortable: true,\n },\n {\n field: 'itemtype',\n type: 'string',\n headerName: 'Type',\n minWidth: 200,\n },\n {\n field: 'itemprice',\n type: 'string',\n headerAlign: 'left',\n align: 'right',\n headerName: 'Price',\n minWidth: 150,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'itemgroupquantity',\n type: 'number',\n headerName: 'Quantity',\n minWidth: 100,\n sortable: true,\n renderCell: (params) => (\n <>\n {/*{params.row.itemquantityunlimited ?*/}\n {/*
Unlimited
*/}\n {/* :*/}\n {/*
{params.row.itemgroupquantity}
*/}\n {/*}*/}\n
{params.row.itemgroupquantity}
\n \n )\n // valueFormatter: (params: GridValueFormatterParams) => {\n // console.log(params)\n // return params.value\n // },\n },\n {\n field: 'itemquantityremaining',\n type: 'number',\n headerName: 'Qty Remaining',\n minWidth: 150,\n sortable: true,\n renderCell: (params) => (\n <>\n {params.row.itemquantityunlimited ?\n
Unlimited
\n :\n
{params.row.itemquantityremaining}
\n }\n \n )\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: true,\n renderCell: (params) => (\n
\n
\n { handleDelete(params) }}>\n \n \n
\n
\n // \n )\n }\n ]\n const ReOrderToggle = async () =>{\n //todo: Data is being pushed up and saved successfully however it isnt being saved locally so the rerender destroys it until refetched.\n if(rowOrdering){\n for(let i = 0; i x.itemid === rows[i].itemid).itemorder = i;\n\n }\n let itemListingOrder = rows.map(x => {\n return {itemid: x.itemid, order: x.itemorder}\n })\n var finaldata = {\n eventid: eventState.eventId,\n items: itemListingOrder\n }\n console.log(finaldata)\n updateItemOrder.mutate({\n ...finaldata\n },{\n onSuccess: (data) => {\n console.log(data)\n queryClient.invalidateQueries(['evtitems', Number(eventState.eventId)])\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n }\n })\n }\n \n setRowOrdering(!rowOrdering)\n }\n const updateRowPosition = (\n initialIndex: number,\n newIndex: number,\n rows: Array,\n ) => {\n const rowsClone = [...rows];\n const row = rowsClone.splice(initialIndex, 1)[0];\n rowsClone.splice(newIndex, 0, row);\n return rowsClone;\n }\n \n \n const handleRowOrderChange = (params: GridRowOrderChangeParams) => {\n //setLoading(true);\n const newRows = updateRowPosition(\n params.oldIndex,\n params.targetIndex,\n rows,\n );\n rows = newRows \n \n };\n\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n ReOrderToggle()}\n >\n {rowOrdering ? 'Save' : 'Re-Order'}\n \n \n {/**/}\n \n \n \n )\n }\n\n return (\n
\n

Tickets and Items

\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
\n )\n}\n\nexport default EventItemsTable\n","import styles from './FlexMonsterPage.module.css'\nimport * as FlexmonsterReact from 'react-flexmonster';\n\nconst FlexMonsterPage = () => {\n\n let jsonData = [\n {\n \"Category\": \"Accessories\",\n \"Size\": \"277 oz\",\n \"Color\": \"red\",\n \"Destination\": \"United Kingdom\",\n \"Business Type\": \"Warehouse\",\n \"Country\": \"United Kingdom\",\n \"Price\": 1000,\n \"Quantity\": 730,\n \"Discount\": 38\n },\n {\n \"Category\": \"Accessories\",\n \"Size\": \"47 oz\",\n \"Color\": \"white\",\n \"Destination\": \"United States\",\n \"Business Type\": \"Warehouse\",\n \"Country\": \"United States\",\n \"Price\": 7941,\n \"Quantity\": 73,\n \"Discount\": 53\n },\n {\n \"Category\": \"Bikes\",\n \"Size\": \"264 oz\",\n \"Color\": \"white\",\n \"Destination\": \"Australia\",\n \"Business Type\": \"Specialty Bike Shop\",\n \"Country\": \"Australia\",\n \"Price\": 6829,\n \"Quantity\": 19,\n \"Discount\": 56\n }\n ];\n\n // flexmonster.updateData({ data: jsonData });\n\n return (\n
\n

Auction Items

\n \n
\n )\n}\n\nexport default FlexMonsterPage\n","import axios from 'axios'\n\nexport const passwordResetEmail = async (eventid, emailAddress) => {\n const json = JSON.stringify({ customerid: eventid, email: emailAddress })\n const { data } = await axios.post('/passwordreset', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.status === 'success'\n}\n\nexport const passwordResetWithToken = async (token, password) => {\n const json = JSON.stringify({ token: token, password: password })\n const { data } = await axios.post('/passwordresetlink', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.status === 'success'\n}\n\n// export const useFetchEventMessages = (eventid) => {\n// return useQuery(\n// ['eventmessages'],\n// () => globalEventMessagesFetcher(eventid),\n// {\n// staleTime: 120000,\n// placeholderData: defaultEventMessages,\n// keepPreviousData: true\n// }\n// )\n// }\n","export const emailRegex =\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\nexport const phoneRegex = /^(\\+\\d{1,2}\\s?)?\\(?\\d{3}\\)?[\\s.-]?\\d{3}[\\s.-]?\\d{4}$/\nexport const zipCodeRegex = /^\\d{5}(?:[-\\s]\\d{4})?$/\n\nexport const checkPasswordValidity = (value: string) => {\n return (\n [/[a-z]/, /[A-Z]/, /[0-9]/, /[^a-zA-Z0-9]/].every((pattern) =>\n pattern.test(value)\n ) || 'Must include a lower, upper, number, and special character'\n )\n}\n\nexport const checkPasswordsMatch = (value: string, watch: Function) =>\n value === watch('password') || 'Passwords do not match'\n\nexport const checkEndDate = (value: string, watch: Function) => {\n return new Date(value) >= new Date(watch('start')) || 'Event end date should be after event start date.'\n}\n\nexport const checkBidStartDate = (value: string, watch: Function) => {\n return new Date(value) >= new Date(watch('start')) || 'Bidding open date should be after event start date.'\n}\n\nexport const checkBidEndDate = (value: string, watch: Function) => {\n return (new Date(value) >= new Date(watch('start')) && new Date(value) >= new Date(watch('bidstart'))) || 'Bidding close date should be after event start and bidding open dates.'\n}\n\nexport const checkBidEndFinalDate = (value: string, watch: Function) => {\n return (new Date(value) >= new Date(watch('start')) && new Date(value) >= new Date(watch('bidstart'))) || 'Event Close must be at least 24 hours after Bidding Close to allow time for checkout.'\n}\n\nexport const checkEventEndDate = (value: string, watch: Function) => {\n var datePlus = new Date(watch('bidend'));\n datePlus.setDate(datePlus.getDate() + 1);\n return (new Date(value) >= new Date(watch('start')) &&\n new Date(value) >= new Date(watch('bidstart')) &&\n new Date(value) >= datePlus &&\n new Date(value) >= new Date(watch('bidend'))) || 'Event Close must be at least 24 hours after Bidding Close to allow time for checkout.'\n}\n\nexport const checkIsNumeric = (value: string) => {\n return !isNaN(Number(value)) || 'Must be a numeric value'\n}\n\nexport const checkEndDateAfterStartDate = (\n startDate: string,\n endDate: string\n) => {\n if (!startDate || !endDate) return true\n const start = new Date(startDate)\n const end = new Date(endDate)\n\n return start.getTime() >= end.getTime()\n ? 'End time must be after start time'\n : true\n}\n\nexport const statesArray = [\n { label: 'Alabama', value: 'AL' },\n { label: 'Alaska', value: 'AK' },\n { label: 'Arizona', value: 'AZ' },\n { label: 'Arkansas', value: 'AR' },\n { label: 'California', value: 'CA' },\n { label: 'Colorado', value: 'CO' },\n { label: 'Connecticut', value: 'CT' },\n { label: 'Delaware', value: 'DE' },\n { label: 'District of Columbia', value: 'DC' },\n { label: 'Florida', value: 'FL' },\n { label: 'Georgia', value: 'GA' },\n { label: 'Hawaii', value: 'HI' },\n { label: 'Idaho', value: 'ID' },\n { label: 'Illinois', value: 'IL' },\n { label: 'Indiana', value: 'IN' },\n { label: 'Iowa', value: 'IA' },\n { label: 'Kansas', value: 'KS' },\n { label: 'Kentucky', value: 'KY' },\n { label: 'Louisiana', value: 'LA' },\n { label: 'Maine', value: 'ME' },\n { label: 'Maryland', value: 'MD' },\n { label: 'Massachusetts', value: 'MA' },\n { label: 'Michigan', value: 'MI' },\n { label: 'Minnesota', value: 'MN' },\n { label: 'Mississippi', value: 'MS' },\n { label: 'Missouri', value: 'MO' },\n { label: 'Montana', value: 'MT' },\n { label: 'Nebraska', value: 'NE' },\n { label: 'Nevada', value: 'NV' },\n { label: 'New Hampshire', value: 'NH' },\n { label: 'New Jersey', value: 'NJ' },\n { label: 'New Mexico', value: 'NM' },\n { label: 'New York', value: 'NY' },\n { label: 'North Carolina', value: 'NC' },\n { label: 'North Dakota', value: 'ND' },\n { label: 'Ohio', value: 'OH' },\n { label: 'Oklahoma', value: 'OK' },\n { label: 'Oregon', value: 'OR' },\n { label: 'Pennsylvania', value: 'PA' },\n { label: 'Puerto Rico', value: 'PR' },\n { label: 'Rhode Island', value: 'RI' },\n { label: 'South Carolina', value: 'SC' },\n { label: 'South Dakota', value: 'SD' },\n { label: 'Tennessee', value: 'TN' },\n { label: 'Texas', value: 'TX' },\n { label: 'Utah', value: 'UT' },\n { label: 'Vermont', value: 'VT' },\n { label: 'Virginia', value: 'VA' },\n { label: 'Washington', value: 'WA' },\n { label: 'West Virginia', value: 'WV' },\n { label: 'Wisconsin', value: 'WI' },\n { label: 'Wyoming', value: 'WY' },\n { label: \"ARMED FORCES IN EUROPE\", value: \"AE\" },\n { label: \"Armed Forces the Americas\", value: \"AA\" },\n { label: \"Armed Forces Pacific\", value: \"AP\" },\n { label: \"Virgin Islands\", value: \"VI\" },\n { label: \"United States Minor Outlying Islands\", value: \"UM\" },\n { label: \"Puerto Rico\", value: \"PR\" },\n { label: \"Madhya Pradesh\", value: \"MP\" },\n { label: \"Guam\", value: \"GU\" },\n { label: \"American Samoa\", value: \"AS\" },\n { label: \"Alberta\", value: \"AB\" },\n { label: \"British Columbia\", value: \"BC\" },\n { label: \"Manitoba\", value: \"MB\" },\n { label: \"Newfoundland and Labrador\", value: \"NL\" },\n { label: \"Northwest Territories\", value: \"NT\" },\n { label: \"Nova Scotia\", value: \"NS\" },\n { label: \"Nunavut\", value: \"NU\" },\n { label: \"Ontario\", value: \"ON\" },\n { label: \"Prince Edward Island\", value: \"PE\" },\n { label: \"Quebec\", value: \"QC\" },\n { label: \"Saskatchewan\", value: \"SK\" },\n { label: \"Yukon\", value: \"YT\" },\n]\n","import React, { useEffect, useState } from 'react'\n\nimport { Snackbar } from '@material-ui/core'\nimport Alert from '@material-ui/lab/Alert'\n\ntype Props = {\n errorMsg?: string\n successMsg?: string\n}\n\nconst Alerts = ({ errorMsg, successMsg }: Props) => {\n const [isErrorOpen, setIsErrorOpen] = useState(false)\n const [isSuccessOpen, setIsSuccessOpen] = useState(false)\n\n useEffect(() => {\n if (errorMsg) {\n setIsErrorOpen(true)\n setIsSuccessOpen(false)\n } else if (successMsg) {\n setIsSuccessOpen(true)\n setIsErrorOpen(false)\n } else {\n setIsSuccessOpen(false)\n setIsSuccessOpen(false)\n }\n }, [errorMsg, successMsg])\n\n return (\n <>\n setIsErrorOpen(false)}\n autoHideDuration={6000}>\n setIsErrorOpen(false)} severity={'error'}>\n {errorMsg}\n \n \n setIsSuccessOpen(false)}>\n setIsSuccessOpen(false)} severity={'success'} color={'success'}>\n {successMsg}\n \n \n \n )\n}\n\nexport default Alerts\n","import { useForm } from 'react-hook-form'\nimport { Link } from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\nimport { passwordResetEmail } from \"../../../queries/useResetPassword\";\nimport { PagePathTypes } from '../../../App'\nimport HookForm from '../../../components/common/HookForm'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { emailRegex } from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './ForgotPasswordForm.module.css'\nimport Alerts from \"../../../components/common/Alerts\";\nimport {useState} from \"react\";\n\ntype FormData = {\n email: string\n siteCode: string\n}\n\nconst ForgotPasswordForm = () => {\n const [successMsg, setSuccessMsg] = useState(null)\n const formMethods = useForm({\n mode: 'onChange'\n })\n const { formState, control } = formMethods\n // const dispatch = useDispatch()\n //const router = useRouter()\n //const router = useRouter()\n\n // useEffect(() => {\n // if (isLoading && authStatus !== 'pending') {\n // setIsloading(false)\n // }\n\n // if (authStatus === 'loggedIn') {\n // router.push('/')\n // }\n // }, [authStatus, isLoading, router])\n\n const onSubmit = async (formData: FormData) => {\n console.log('send onSubmit')\n const emailSent = await passwordResetEmail(formData.siteCode, formData.email)\n console.log(emailSent)\n setSuccessMsg('An email was sent to ' + formData.email + \". Please click the link within the email to reset your password.\")\n }\n return (\n
\n

Forgot Password

\n \n \n {/* {isLoading && (\n \n )} */}\n\n \n \n \n \n \n Back to Login\n \n
\n )\n}\n\nexport default ForgotPasswordForm\n","import axios from 'axios'\nimport { useMutation } from 'react-query'\nimport { useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\n\nimport {AuthToken, loginUser, setAllowEventRefresh, setTerms} from '../../../slices/authSlice'\n\nexport const parseJwt = (token) => {\n var base64Url = token.split('.')[1]\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/')\n var jsonPayload = decodeURIComponent(\n atob(base64)\n .split('')\n .map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n })\n .join('')\n )\n\n return JSON.parse(jsonPayload)\n}\n\nexport const useLoginMutation = () => {\n const dispatch = useDispatch()\n const history = useHistory()\n\n return useMutation(\n (body: any) => {\n return axios.post(`/login`, body)\n },\n {\n onSuccess: (response: any) => {\n // console.log(response)\n if (response.status === 'failure') {\n throw new Error(response.message)\n }\n // update local storage\n localStorage.setItem('tokenadmin', response.token)\n const parsedToken: AuthToken = parseJwt(response.token)\n // update redux\n dispatch(loginUser(parsedToken))\n dispatch(setAllowEventRefresh(response.alloweventrefresh))\n if (response.terms && response.terms.length > 0) {\n dispatch(setTerms(response.terms))\n history.push('/terms')\n }\n else {\n // redirect\n history.push('/home')\n }\n }\n }\n )\n}\n","import { useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { Link, useHistory } from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\n\nimport { PagePathTypes } from '../../../App'\nimport Alerts from '../../../components/common/Alerts'\nimport HookForm from '../../../components/common/HookForm'\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { emailRegex } from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './LoginForm.module.css'\nimport { useLoginMutation } from './useLoginMutation'\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\nconst LoginForm = () => {\n const queryClient = useQueryClient()\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const loginMutation = useLoginMutation()\n\n const onSubmit = ({ email, password, siteCode }: FormData) => {\n queryClient.invalidateQueries(['events'])\n loginMutation.mutate({ password, email, customerid: siteCode })\n }\n\n return (\n
\n

Login

\n \n \n\n \n \n \n \n\n \n \n \n Forgot Password?\n \n
\n )\n}\n\nexport default LoginForm\n","import { useForm } from 'react-hook-form'\nimport {Link, useHistory} from 'react-router-dom'\n\nimport { Button } from '@material-ui/core'\n\nimport { PagePathTypes } from '../../../App'\nimport HookForm from '../../../components/common/HookForm'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport {\n checkPasswordValidity,\n checkPasswordsMatch\n} from '../../../util/formValidation'\nimport { AuthPageSubPaths } from '../AuthPage'\nimport styles from './ResetPasswordForm.module.css'\nimport {useParams} from \"react-router\";\nimport {passwordResetEmail, passwordResetWithToken} from \"../../../queries/useResetPassword\";\nimport {useState} from \"react\";\nimport Alerts from \"../../../components/common/Alerts\";\n\ntype FormData = {\n password: string\n confirmPassword: string\n}\n\ninterface Params {\n token: string\n}\n\nconst ResetPasswordForm = () => {\n const [successMsg, setSuccessMsg] = useState(null)\n const formMethods = useForm({\n mode: 'onChange'\n })\n const { watch } = formMethods\n const history = useHistory()\n const { token } = useParams()\n const onSubmit = async (formData: FormData) => {\n const worked = await passwordResetWithToken(token, formData.password)\n if (worked) {\n setSuccessMsg('Your password was reset. You can now login with your new password.')\n setTimeout(() => {\n history.push('/auth/login')\n }, 3000);\n }\n else {\n setSuccessMsg('The request failed. Please try to reset your password again..')\n }\n }\n\n return (\n
\n

Reset Password

\n \n \n {/* {isLoading && (\n \n )} */}\n\n \n checkPasswordsMatch(val, watch)\n }}\n textFieldProps={{ type: 'password' }}\n />\n\n \n\n {/* */}\n \n \n Back to Login\n \n
\n )\n}\n\nexport default ResetPasswordForm\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { Button } from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport CheckoutDetails from './CheckoutDetails'\nimport CheckoutForm from './CheckoutForm'\nimport CheckoutOrdersGrid from './CheckoutOrdersGrid'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject} from \"../../queries/useFetchCheckout\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n\n const [selectedUser, setSelectedUser] =\n useState<{ id: number; status: 'Open' | 'CheckedOut' }>(null)\n const [creditCardInfo, setCreditCardInfo] =\n useState<{ showccfees: boolean,\n ccfeespercentage: number,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string, transactiontype: string\n }>({\n showccfees: false,\n ccfeespercentage: 0,\n creditcardiframe: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/v3/CreditCard\",\n javascriptfile: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js\",\n processorid: \"70802\",\n transactiontype: \"Sale\",\n transcenterid: \"92754\"\n })\n\n const [checkoutDataObject, setCheckoutDataObject] = useState(null)\n const onResendEmail = () => {\n //Send email here\n setTab(CheckoutPageTab.None)\n }\n\n const onVoid = () => {\n //Void order here\n setTab(CheckoutPageTab.None)\n }\n\n const [cryptogram, setCryptogram] = useState('');\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
\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onResendEmail()}\n confirmText=\"Resend Receipt\"\n />\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onVoid()}\n confirmText=\"Void Transaction\"\n />\n \n\n {/*{checkoutDataObject?.isreadonly && }*/}\n
\n {selectedUser?.status === 'CheckedOut' && (\n <>\n setTab(CheckoutPageTab.ResendReceipt)}>\n Resend Receipt\n \n {/* setTab(CheckoutPageTab.PDF)}>*/}\n {/* PDF*/}\n {/**/}\n {/* setTab(CheckoutPageTab.Void)}>*/}\n {/* Void*/}\n {/**/}\n \n )}\n
\n
\n )\n}\n\nexport default CheckoutPage\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type EventMessages = {\n preeventtext: string\n contactustext: string\n emailreceipttextfooter: string\n winningbidtextheader: string\n winningbidtextfooter: string\n emailreceipttextheader: string\n mobilelogintext: string\n mobilewelcometext: string\n message: string\n}\n\nvar defaultEventMessages = {\n preeventtext: '',\n contactustext: '',\n emailreceipttextfooter: '',\n winningbidtextheader: '',\n winningbidtextfooter: '',\n emailreceipttextheader: '',\n mobilelogintext: '',\n mobilewelcometext: '',\n message: ''\n}\n\nexport const globalEventMessagesFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: eventIdvalue })\n const { data } = await axios.post('/eventmessages', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as EventMessages\n}\n\nexport const useFetchEventMessages = (eventid) => {\n return useQuery(\n ['eventmessages', eventid],\n () => globalEventMessagesFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: defaultEventMessages,\n keepPreviousData: true\n }\n )\n}\n","/* eslint-disable react-hooks/exhaustive-deps */\nimport { sanitize } from 'dompurify'\n\n\nimport { Editor, EditorTools } from \"@progress/kendo-react-editor\";\nimport React, {useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useParams } from 'react-router'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n ButtonProps } from '@material-ui/core'\n import { styled } from '@mui/material/styles';\nimport { ExpandMore } from '@material-ui/icons'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport { useCustomMessagesMutation } from '../../mutations/useCustomMessagesMutation'\nimport { useFetchEventMessages } from '../../queries/events/useFetchEventMessages'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport styles from './CustomMessagesPage.module.css'\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\ninterface Params {\n id: string\n}\n\nconst CustomMessagesPage = () => {\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n\n const { id } = useParams()\n const [dialogMsg, setDialogMsg] = React.useState('')\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data, isLoading } = useFetchEventMessages(Number(eventState.eventId))\n console.log(\n '🚀 ~ file: CustomMessagesPage.tsx ~ line 54 ~ CustomMessagesPage ~ data',\n data\n )\n\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const [preEventValue, setPreEventValue] = useState('')\n const [loginSummaryValue, setLoginSummaryValue] = useState('')\n const [welcomeValue, setWelcomeValue] = useState('')\n const [receiptHeaderValue, setReceiptHeaderValue] = useState('')\n const [receiptFooterValue, setReceiptFooterValue] = useState('')\n const [winningBidHeaderValue, setWinningBidHeaderValue] = useState('')\n const [winningBidFooterValue, setWinningBidFooterValue] = useState('')\n const [contactUsText, setContactUsText] = useState('')\n\n useEffect(() => {\n setPreEventValue(data?.preeventtext)\n setLoginSummaryValue(data?.mobilelogintext)\n setWelcomeValue(data?.mobilewelcometext)\n setReceiptHeaderValue(data?.emailreceipttextheader)\n setReceiptFooterValue(data?.emailreceipttextfooter)\n setWinningBidHeaderValue(data?.winningbidtextheader)\n setWinningBidFooterValue(data?.winningbidtextfooter)\n setContactUsText(data?.contactustext)\n }, [data])\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n const messagesMutation = useCustomMessagesMutation()\n const onSubmit = () => {\n messagesMutation.mutate(\n {\n eventid: Number(eventState.eventId),\n preeventtext: preEventValue,\n mobilelogintext: loginSummaryValue,\n mobilewelcometext: welcomeValue,\n emailreceipttextheader: receiptHeaderValue,\n emailreceipttextfooter: receiptFooterValue,\n winningbidtextheader: winningBidHeaderValue,\n winningbidtextfooter: winningBidFooterValue,\n contactustext: contactUsText\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n } else {\n setDialogMsg('Customization settings successfully saved.')\n }\n }\n }\n )\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n }\n\n return (\n
\n

Page/Email Customization

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\">\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n }>\n

Pre-Event Banner Page Header

\n
\n \n
\n
This content will show in place of the login screen before the Event Open date.
\n {\n setPreEventValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Event Login Page Header

\n
\n \n
\n
This content will show above the login fields while the event is open.
\n {\n setLoginSummaryValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Event Welcome Page Body

\n
\n \n
\n
This content will show in the middle of the page below the countdown timer and buttons after a user logs in.
\n {\n setWelcomeValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Email Receipt

\n
\n \n
\n

Header

\n {\n setReceiptHeaderValue(eventState.html)\n }}\n />\n

Footer

\n {\n setReceiptFooterValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Winning Bid Email

\n
\n \n
\n

Header

\n {\n setWinningBidHeaderValue(eventState.html)\n }}\n />\n

Footer

\n {\n setWinningBidFooterValue(eventState.html)\n }}\n />\n
\n
\n
\n \n }>\n

Contact Us Page

\n
\n \n
\n {\n setContactUsText(eventState.html)\n }}\n />\n
\n
\n
\n\n \n Save\n \n \n
\n )\n}\n\nexport default CustomMessagesPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCustomMessagesMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventmessages`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['eventmessages'])\n }\n }\n )\n}\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface AuctionInformation {\n type: string;\n status: string;\n message: string;\n biddingopens: string;\n biddingcloses: string;\n authorizedbidders: number;\n pendingregistrations: number;\n totalnumberofbids: number;\n openbidsamount: number;\n pendingcheckoutamount: number;\n collectedamount: number;\n totalnumberofbuyitnowpurchases: number;\n totaldollarsofbuyitnowpurchases: number;\n numberitemswithbids: number;\n numberitemswithoutbids: number;\n eventlink: string;\n auctionlink:string;\n resetmessage: string;\n showresetbutton: boolean;\n}\nconst defaultAuctionInformation: AuctionInformation = {\n type: \"\",\n status: \"\",\n message: \"\",\n biddingopens: \"\",\n biddingcloses: \"\",\n authorizedbidders: 0,\n pendingregistrations: 0,\n totalnumberofbids: 0,\n openbidsamount: 0,\n pendingcheckoutamount: 0,\n collectedamount: 0,\n totalnumberofbuyitnowpurchases: 0,\n totaldollarsofbuyitnowpurchases: 0,\n numberitemswithbids: 0,\n numberitemswithoutbids: 0,\n eventlink: \"\",\n auctionlink:\"\",\n resetmessage: \"\",\n showresetbutton: false\n};\n\nexport const useAuctionInfo = (eventIdvalue) => {\n return useQuery(\n ['auctioninformation', eventIdvalue],\n () => globalAuctionInfoFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: defaultAuctionInformation,\n keepPreviousData: true\n }\n )\n}\n\n\nexport const globalAuctionInfoFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/auctioninformation', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as AuctionInformation\n}\n\nexport const useEventInfo = (eventIdvalue) => {\n return useQuery(\n ['eventinformation', eventIdvalue],\n () => globalEventInfoFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: defaultAuctionInformation,\n keepPreviousData: true\n }\n )\n}\n\n\nexport const globalEventInfoFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/evtinformation', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as AuctionInformation\n}\n","import { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport download from 'downloadjs';\nimport {Box, Dialog, DialogActions, DialogContent, DialogContentText, Grid, Typography} from '@material-ui/core'\nimport Button from '@material-ui/core/Button'\nimport Paper from '@material-ui/core/Paper'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport {\n AddShoppingCart as AddShoppingCartIcon,\n Message as MessageIcon,\n Refresh as RefreshIcon,\n Assessment as AssessmentIcon,\n BurstMode as BurstIcon,\n Gavel as GavelIcon,\n LocationOn as LocationIcon,\n People as PeopleIcon,\n RemoveShoppingCart as RemoveShoppingCartIcon,\n SettingsOutlined as SettingsIcon,\n ShoppingCart as ShoppingCartIcon,\n SupervisedUserCircle as SupervisedUserCircleIcon,\n Web as WebIcon\n} from '@material-ui/icons'\n\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport styles from './AuctionPage.module.css'\nimport {useAllowEventRefresh} from \"../../slices/authSlice\";\nimport {setAuctionURL, setEventURL} from \"../../slices/eventSlice\"\nimport {useAuctionInfo, useEventInfo} from '../../queries/useFetchAuctionInfo'\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {User} from \"../../queries/useUsers\";\nimport React from \"react\";\nimport {useQueryClient} from \"react-query\";\nimport {useDispatch} from \"react-redux\";\n\ninterface Params {\n id: string\n}\n\nconst AuctionPage = () => {\n const history = useHistory()\n const dispatch = useDispatch()\n const { id } = useParams()\n const queryClient = useQueryClient()\n useAutoEvent(id)\n const eventState = useEventState()\n const allowRefresh = useAllowEventRefresh()\n const {data} = useAuctionInfo(id)\n const {data: eventData} = useEventInfo(id)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n console.log(data)\n console.log(eventData)\n dispatch(setEventURL(eventData.eventlink))\n dispatch(setAuctionURL(data.auctionlink))\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n },\n info: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n flexGrow: 1\n }\n })\n )\n const generateWinningBidsClick = async () => {\n axios.post('/auctionitemstatusreport', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-winningBids.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n \n const clickReset = async () => {\n const { data } = await axios.post('/auctionresetnotifications', {eventid: eventState.eventId})\n const parsedData = JSON.parse(data.jsonString)\n if (parsedData.status === 'failed') {\n setDialogMsg(parsedData.message)\n }\n else {\n queryClient.invalidateQueries(['auctioninformation', eventState.eventId])\n queryClient.invalidateQueries(['eventinformation', eventState.eventId])\n }\n }\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const classes = useStyles()\n\n return (\n
\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n {data && (\n <>\n

Bidding Opens: {dayjs(data.biddingopens as string).format('MMMM DD, YYYY hh:mm A')}

\n

Bidding Closes: {dayjs(data.biddingcloses as string).format('MMMM DD, YYYY hh:mm A')}

\n

\n \n )}\n
\n \n {data && (\n <>\n

Authorized Bidders: {data.authorizedbidders}

Pending Registrations: {data.pendingregistrations}

\n \n )}\n
\n \n {data && (\n <>\n

Open Bids: ${data.openbidsamount}

Pending Checkout: ${data.pendingcheckoutamount}

Collected: ${data.collectedamount}

\n \n )}\n
\n
\n {data.showresetbutton &&\n \n \n \n \n {\n clickReset()\n }}>\n Reset Notification Status\n \n \n \n \n \n {data.resetmessage}\n \n \n \n \n \n \n }\n\n \n Auction Setup\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/settings')\n }}\n startIcon={}>\n Settings\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/sponsors')\n }}\n startIcon={}>\n Sponsors\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/custommessages')\n }}>\n Page/Email Customization\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/locationstags')\n history.push('/auction/' + eventState.eventId + '/locationstags')\n }}>\n Dropdown Fields\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/auctionitems/')\n }}>\n Auction Items\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/participants')\n }}>\n Participants\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/carouselsetup')\n }}>\n Item Carousel\n \n \n \n \n Auction Activity\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/manualbidentry')\n }}\n startIcon={}>\n Manual Bid Entry\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/bidmaintenance')\n }}\n startIcon={}>\n Bid Maintenance\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/AuctionStatus')\n }}\n startIcon={}>\n Auction Status\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/liveauction')\n }}\n startIcon={}>\n Live Auction Winning Bid Entry\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/checkout')\n }}\n className={classes.button}\n startIcon={}>\n Checkout\n \n \n \n {\n history.push('/auction/' + eventState.eventId + '/broadcastmessage')\n }}\n className={classes.button}\n startIcon={}>\n Communication Tools\n \n \n {allowRefresh &&\n \n {\n history.push('/auction/' + eventState.eventId + '/forcerefresh')\n }}\n className={classes.button}\n startIcon={}>\n Force Refresh\n \n \n }\n \n \n Reports\n \n \n {/**/}\n {/* }*/}\n {/* onClick={() => {*/}\n {/* history.push(*/}\n {/* '/event/' + eventState.eventId + '/participantlisting'*/}\n {/* )*/}\n {/* }}>*/}\n {/* Participation Listing*/}\n {/* */}\n {/**/}\n {/**/}\n {/* }*/}\n {/* onClick={() => {*/}\n {/* history.push('/event/' + eventState.eventId + '/accountingreport')*/}\n {/* }}>*/}\n {/* Accounting Report*/}\n {/* */}\n {/**/}\n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n }}>\n Auction Summary\n \n \n \n }\n onClick={() => generateWinningBidsClick()\n }>\n Winning Bids\n \n \n\n\n {/* \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/AuctionSummaryReportDetailPage')\n }}>\n Auction Summary Detail\n \n */}\n \n \n DonorSnap Integration\n \n \n \n }\n onClick={() => {\n history.push(\n '/auction/' + eventState.eventId + '/participantslinking'\n )\n }}>\n Participant Linking\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/TransferPage')\n }}>\n Transfer/Export\n \n \n \n }\n onClick={() => {\n history.push('/auction/' + eventState.eventId + '/participantmerge')\n }}>\n Participant Merge\n \n \n \n
\n )\n}\n\nexport default AuctionPage\n","import { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\n\nimport { Grid } from '@material-ui/core'\nimport Button from '@material-ui/core/Button'\nimport Paper from '@material-ui/core/Paper'\nimport { Theme, createStyles, makeStyles } from '@material-ui/core/styles'\nimport {\n AddShoppingCart as AddShoppingCartIcon,\n Message as MessageIcon,\n Refresh as RefreshIcon,\n Assessment as AssessmentIcon,\n BurstMode as BurstIcon,\n Gavel as GavelIcon,\n LocationOn as LocationIcon,\n People as PeopleIcon,\n RemoveShoppingCart as RemoveShoppingCartIcon,\n SettingsOutlined as SettingsIcon,\n ShoppingCart as ShoppingCartIcon,\n SupervisedUserCircle as SupervisedUserCircleIcon,\n Web as WebIcon,\n Tune as TuneIcon,\n ConfirmationNumber as ConfirmationNumberIcon,\n Group as GroupsIcon,\n AssignmentInd,\n PermContactCalendar\n} from '@material-ui/icons'\nimport BadgeIcon from '@mui/icons-material/Badge'\n\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport styles from './EventPage.module.css'\nimport { useAllowEventRefresh } from \"../../slices/authSlice\";\n\ninterface Params {\n id: string\n}\n\nconst EventPage = () => {\n const history = useHistory()\n const { id } = useParams()\n useAutoEvent(id)\n const eventState = useEventState()\n const allowRefresh = useAllowEventRefresh()\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n return (\n
\n \n Event Setup\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/settings')\n }}\n startIcon={}>\n Event Settings\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/userdefined')\n }}\n startIcon={}>\n User Defined Fields\n \n \n \n }\n onClick={() => {\n history.push('/event/' + eventState.eventId + '/eventitems')\n }}\n >\n Tickets and Items\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/discountcodes')\n }}\n startIcon={}>\n Promo Codes\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/EventEmailCustomization')\n }}\n startIcon={}>\n Email Customization\n \n \n \n\n \n Event Activity\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/transactions')\n }}\n startIcon={}>\n EVENT TRANSACTIONS\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/activitytickets')\n }}\n startIcon={}>\n TICKET MAINTENANCE\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/eventguestmaintenance')\n }}\n startIcon={}>\n Guest Maintenance\n \n \n \n \n \n {\n history.push('/event/' + eventState.eventId + '/eventgroupmaintenance')\n }}\n startIcon={}>\n Group Maintenance\n \n \n \n {\n history.push('/event/' + eventState.eventId + '/EventMassEmailMaintenanceTable')\n }}\n startIcon={}>\n Email\n \n \n \n\n \n Event Reports\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Guest Information\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Name Tags\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Groupings\n \n \n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Event Summary\n \n \n \n \n \n Integrations\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n AuctionSnap\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n DonorSnap\n \n \n \n \n Maintenance\n \n \n \n }\n // onClick={() => {\n // history.push('/auction/' + eventState.eventId + '/AuctionSummaryReportPage')\n // }}\n >\n Merge Participants\n \n \n \n \n
\n )\n}\n\nexport default EventPage\n","import React from 'react'\nimport { Control, Controller, useFormContext } from 'react-hook-form'\n\nimport {\n Checkbox,\n FormControl,\n FormControlLabel,\n FormGroup,\n FormLabel, Grid\n} from '@material-ui/core'\nimport styles from \"../../../../pages/AuctionSettingsForm/EventSettingsForm.module.css\";\nimport TextInput from \"../TextInput\";\n\ntype Props = {\n options: { value: string; label: string; tooltipText?: string; textoptions?: { name: string; label: string; tooltipText?: string; defaultValue?: string, disabled?: boolean, maxLength?: number, endAdornment?: string, required?: boolean} }[] | string[]\n name: string\n label?: string\n rules?: Object\n formLabelProps?: Object\n formGroupProps?: Object\n formControlProps?: Object\n formControlLabelProps?: Object\n checkboxProps?: Object\n onChange?: Function\n defaultValue?: { [key: string]: boolean }\n}\n\nconst CheckboxGroup = ({\n options,\n label,\n rules,\n formControlProps,\n formLabelProps,\n formGroupProps,\n checkboxProps,\n name,\n formControlLabelProps,\n onChange,\n defaultValue = null\n}: Props) => {\n const { control } = useFormContext()\n\n return (\n \n {label && (\n \n {label}\n \n )}\n\n \n {(options as {value: string; label: string; tooltipText?: string; }[] | string[]).map((option) => {\n return (\n <>\n (\n {\n // onChange && onChange(e)\n onChange && onChange(e, field)\n return field.onChange(e.target.checked)\n }}\n checked={Boolean(field.value)}\n {...checkboxProps}\n />\n )}\n />\n }\n label={option.label || option}\n {...formControlLabelProps}\n />\n {(option?.textoptions && !option.textoptions.disabled) &&\n
\n \n
\n }\n \n )\n })}\n\n
\n
\n )\n}\n\nexport default CheckboxGroup\n","import React from 'react'\nimport { useController, useFormContext } from 'react-hook-form'\nimport DayJSUtils from '@date-io/dayjs'\nimport { DateTimePicker, MuiPickersUtilsProvider } from '@material-ui/pickers'\n\ntype Props = {\n name: string\n label: string\n defaultValue?: string\n required?: boolean\n disabled?: boolean\n rules?: Object\n textFieldProps?: Object\n dateTimeProps?: Object\n tooltipText?: string\n onClose?: any\n}\n\nconst DateTimeInput = ({\n name,\n label,\n defaultValue = '',\n rules = {},\n required = false,\n disabled = false,\n textFieldProps,\n dateTimeProps,\n tooltipText = \"\",\n onClose = null,\n}: Props) => {\n const {\n control,\n formState: { errors }\n } = useFormContext()\n\n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name as any,\n control,\n rules: { ...rules, required: required ? 'Field is required' : false },\n defaultValue: defaultValue\n })\n\n return (\n \n {\n onClose && onClose()\n }}\n {...dateTimeProps}\n {...inputProps}\n />\n \n )\n}\n\nexport default DateTimeInput\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useEditEventSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventsettings`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useUpdateEventStatus = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventstatus`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useUpdateEventClone = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventclone`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n\nexport const useCreateEvent = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/eventsettings`, body)\n },\n {\n onSuccess: (data ) => {\n queryClient.invalidateQueries(['eventsettings'])\n queryClient.invalidateQueries(['events'])\n queryClient.invalidateQueries(['eventdata'])\n }\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type timezone = {\n rownumber: number\n timezone: string\n}\n\nconst timezoneDefaults = {\n rownumber: 0,\n timezone: \"South Sudan Standard Time\"\n}\n\nexport const globalTimezonesFetcher = async () => {\n const { data } = await axios.get('/timezone')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData.timezones as timezone[]\n}\n\nexport const useFetchTimezones = () => {\n return useQuery(\n ['timezone'],\n () => globalTimezonesFetcher(),\n {\n staleTime: 120000,\n placeholderData: [timezoneDefaults],\n keepPreviousData: true\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type receiptTemplates = {\n rownumber: number\n receipttemplateid: number\n name: string\n}\n\nconst receiptTemplatesDefaults = {\n rownumber: 0,\n receipttemplateid: 0,\n name: \"Template 1\"\n}\n\nexport const globalrecieptTemplatesFetcher = async () => {\n const { data } = await axios.get('/receipttemplate')\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.receipttemplates as receiptTemplates[]\n}\n\nexport const useFetchReceiptTemplates = () => {\n return useQuery(\n ['receipttemplate'],\n () => globalrecieptTemplatesFetcher(),\n {\n staleTime: 120000,\n placeholderData: [receiptTemplatesDefaults],\n keepPreviousData: true\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nimport { useAuthToken } from '../../slices/authSlice'\n\nexport interface OrgSettings {\n type: string\n status: string\n message: string\n isdonorsnapcustomer: boolean\n name: string\n contactname: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n goemerchant: GoEmerchant\n twilio: Twilio\n users: User[]\n}\n\ninterface User {\n userid: number\n active: boolean\n email: string\n lastupdated: string\n}\n\ninterface GoEmerchant {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n lastupdated: string\n address: boolean\n postalcode: boolean\n}\n\ninterface Twilio {\n phone: string\n accountsid: string\n token: string\n}\n\nexport const orgSettingsFetcher = async (userid) => {\n if (userid) {\n const response = await axios.get(`/orgsettings`, {\n params: {\n customerid: userid\n }\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const withNestedJSON = {\n ...parsedResponse,\n goemerchant: parsedResponse.goemerchant ? JSON.parse(parsedResponse.goemerchant) : {},\n twilio: parsedResponse.twilio ? JSON.parse(parsedResponse.twilio) : {}\n }\n\n return withNestedJSON\n }\n else {\n return null\n }\n}\n\nexport const useFetchOrgSettings = ({\n userid,\n onSuccess = () => null,\n onError = () => null,\n enabled\n}: {\n userid?: string\n onSuccess?: any\n onError?: any\n enabled?: boolean\n} = {}) => {\n return useQuery(\n ['orgsettings', userid],\n () => orgSettingsFetcher(userid),\n {\n staleTime: 120000,\n enabled: enabled ? enabled : Boolean(userid),\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n","import React, {useEffect, useMemo, useState} from 'react'\nimport Dropzone from 'react-dropzone'\nimport { useForm } from 'react-hook-form'\nimport { Button, Grid, Dialog, DialogActions, DialogContent, DialogContentText, ButtonProps } from '@material-ui/core'\nimport { styled } from '@mui/material/styles';\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport CheckboxGroup from '../../components/common/inputs/CheckboxGroup'\nimport DateTimeInput from '../../components/common/inputs/DateTimeInput'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useFetchEventSettings } from '../../queries/events/useFetchEventSettings'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport styles from './AuctionSettingsForm.module.css'\nimport { useEditEventSettings } from './useEditEventSettings'\nimport { useFetchTimezones } from \"../../queries/useFetchTimezones\";\nimport {useFetchReceiptTemplates} from \"../../queries/useFetchReceiptTemplates\";\nimport {Lock, LockOpen, Close } from '@material-ui/icons'\nimport dayjs from \"dayjs\";\nimport {useHistory} from \"react-router-dom\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {checkBidEndDate, checkBidStartDate, checkEndDate, checkEventEndDate} from \"../../util/formValidation\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport {Editor, EditorTools} from \"@progress/kendo-react-editor\";\nimport imageCompression from \"browser-image-compression\";\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n rownumber: number\n id: number\n name: string\n code: string\n active: boolean\n start: string\n end: string\n bidstart: string\n bidend: string\n timezone: string\n checkboxbiddingsettings: {\n allowbuyitnow: boolean\n allowbidanonymously: boolean\n allowbillme: boolean\n allowguestentry: boolean\n allowpaymentoffees: boolean\n }\n checkboxothersettings: {\n allowautobid: boolean\n allowautobidincrement: boolean\n allowcreditcards: boolean\n approvalofbidders: boolean\n allowcustomlocations: boolean\n allowtexting: boolean\n eventshowbidderpaddlenumber: boolean,\n eventusepaddlenumber: boolean\n }\n ccfee: number\n startbiddernum: number\n receipttemplateid: number\n eventbiddingopen: string\n eventbiddingclosed: string\n logourl: string\n eventprivacy: string\n logo: string\n textprefix: string\n logoremoved: boolean\n}\n\ninterface Params {\n id: string\n}\n\nconst AuctionSettingsForm = ({ isEdit = false }) => {\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n const queryClient = useQueryClient()\n const [privacyValue, setPrivacyValue] = useState('')\n const warningMsg = \"WARNING: Changing the Event Code will change your event URL.\"\n const { id } = useParams()\n useAutoEvent(id)\n const event = useEventState()\n const orgState = useOrgState()\n\n const formMethods = useForm()\n const { reset, watch, setValue } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n const history = useHistory()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const allowTextingWatch = watch('checkboxothersettings.allowtexting')\n const approvalofbidders = watch('checkboxothersettings.approvalofbidders')\n const allowcustomlocations = watch('checkboxothersettings.allowcustomlocations')\n const allowpaymentoffeesWatch = watch('checkboxbiddingsettings.allowpaymentoffees')\n const bidEndWatch = watch('bidend')\n\n\n const dispatch = useDispatch()\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const [errorMsg, setErrorMsg] = useState({\n show: false,\n msg: \"\"\n })\n\n\n const [successMsg, setSuccessMsg] = useState(false)\n\n const [lockCode, setLockCode] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [openFailure, setFailureOpen] = React.useState(false);\n const [failureMessage, setFailureMessage] = React.useState(\"\");\n\n var { data: eventsettings, isFetching } = useFetchEventSettings(\n Number(event.eventId),\n isEdit\n )\n\n const { data: recieptTemplates } = useFetchReceiptTemplates()\n const templates = recieptTemplates.map(x => {\n return { label: x.name, value: x.receipttemplateid }\n })\n const { data : timeZoneData } = useFetchTimezones()\n const timezones = timeZoneData?.map(timeZone => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n const editMutation = useEditEventSettings()\n const eventCodeRegex = /^[-_A-Za-z0-9]+$/\n\n const onEditSubmit = (formData: FormData) => {\n console.log(formData)\n const {\n checkboxbiddingsettings,\n checkboxothersettings,\n start,\n end,\n bidstart,\n bidend,\n ...rest\n } = formData\n\n editMutation.mutate({\n eventid: Number(event.eventId),\n start: dayjs(start).format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs(end).format('YYYY-MM-DDTHH:mm:ss'),\n bidstart: dayjs(bidstart).format('YYYY-MM-DDTHH:mm:ss'),\n bidend: dayjs(bidend).format('YYYY-MM-DDTHH:mm:ss'),\n ...rest,\n ccfee: Number(formData.ccfee),\n eventprivacy: privacyValue,\n startbiddernum: Number(formData.startbiddernum),\n ...checkboxbiddingsettings,\n ...checkboxothersettings\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n console.log(json)\n const eventState: EventState = {\n eventId: json.eventid,\n eventName: json.name,\n eventCode: json.code,\n eventStart: json.start,\n eventEnd: json.end,\n bidStart: json.bidstart,\n bidEnd: json.bidend,\n allowpaymentoffees: json.allowpaymentoffees,\n ccfee: json.ccfee\n }\n dispatch(setEvent(eventState))\n queryClient.invalidateQueries(['auctioninformation', json.eventid])\n queryClient.invalidateQueries(['eventinformation', json.eventid])\n setDialogMsg(\"Event was updated successfully.\")\n }\n }\n })\n }\n\n const handleClickContinue = () => {\n const isLock = (warningMsg === dialogMsg);\n setDialogMsg(\"\")\n setLockCode(!lockCode)\n\n if (!isLock && !isEdit) {\n history.goBack()\n }\n };\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const closeFailure = () => {\n setFailureOpen(false);\n };\n\n const showDialog = () => {\n return (\n <>\n 0}\n // onClose={handleClose}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {((warningMsg === dialogMsg)) && (\n \n )}\n \n \n \n \n )\n }\n\n const showFailureDialog = () => {\n return (\n <>\n \n \n \n Failure: {failureMessage}\n \n \n \n \n \n \n \n )\n }\n\nconst FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n}))\n\n const onCreateSubmit = (formData: FormData) => {\n\n const {\n checkboxbiddingsettings,\n start,\n end,\n bidstart,\n bidend,\n checkboxothersettings,\n receipttemplateid,\n ...rest\n } = formData\n\n editMutation.mutate({\n ...rest,\n start: dayjs(start).format('YYYY-MM-DDTHH:mm:ss'),\n end: dayjs(end).format('YYYY-MM-DDTHH:mm:ss'),\n bidstart: dayjs(bidstart).format('YYYY-MM-DDTHH:mm:ss'),\n bidend: dayjs(bidend).format('YYYY-MM-DDTHH:mm:ss'),\n ccfee: Number(formData.ccfee),\n startbiddernum: Number(formData.startbiddernum),\n ...checkboxbiddingsettings,\n ...checkboxothersettings,\n active: true,\n eventprivacy: privacyValue\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n // setDialogMsg(\"Event was created successfully.\")\n history.push('/auction/' + json.eventid)\n }\n }\n })\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n\n const clickLockOpen = () => {\n setDialogMsg(warningMsg);\n }\n\n const clickLockClose = () => {\n setDialogMsg(\"\");\n setLockCode(!lockCode)\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n useEffect(() => {\n // if (eventsettings && isEdit) {\n const startDate = eventsettings.start ? eventsettings?.start?.split(' ').join('T') : new Date().toISOString()\n const endDate = eventsettings.end ? eventsettings?.end?.split(' ').join('T') : new Date().toISOString()\n const bidStartDate = eventsettings.bidstart ? eventsettings?.bidstart?.split(' ').join('T') : new Date().toISOString()\n const bidEndDate = eventsettings.bidend ? eventsettings?.bidend?.split(' ').join('T') : new Date().toISOString()\n const timeZoneForm = eventsettings.timezone ? eventsettings.timezone : 'Central Standard Time'\n\n const twilio = orgState?.twilio\n\n var allowtexting = eventsettings.allowtexting\n if (twilio.valid === false) {\n allowtexting = false\n }\n\n reset({\n rownumber: eventsettings.rownumber,\n id: eventsettings.eventid,\n name: eventsettings.name,\n code: eventsettings.code,\n active: eventsettings.active,\n start: startDate,\n end: endDate,\n bidstart: bidStartDate,\n bidend: bidEndDate,\n timezone: timeZoneForm,\n checkboxbiddingsettings: {\n allowbuyitnow: eventsettings.allowbuyitnow,\n allowbidanonymously: eventsettings.allowbidanonymously,\n allowbillme: eventsettings.allowbillme,\n allowguestentry: eventsettings.allowguestentry,\n allowpaymentoffees: eventsettings.allowpaymentoffees,\n },\n checkboxothersettings: {\n allowcustomlocations: eventsettings.allowcustomlocations,\n allowcreditcards: eventsettings.allowcreditcards,\n allowautobid: eventsettings.allowautobid,\n approvalofbidders: eventsettings.approvalofbidders,\n allowautobidincrement: eventsettings.allowautobidincrement,\n allowtexting: allowtexting,\n eventshowbidderpaddlenumber: eventsettings.eventshowbidderpaddlenumber,\n eventusepaddlenumber: eventsettings.eventusepaddlenumber\n },\n ccfee: eventsettings.ccfee,\n startbiddernum: eventsettings.startbiddernum,\n receipttemplateid: eventsettings.receipttemplateid,\n eventbiddingopen: eventsettings.eventbiddingopen,\n eventbiddingclosed: eventsettings.eventbiddingclosed,\n textprefix: eventsettings.textprefix,\n eventprivacy: eventsettings.eventprivacy,\n logourl: eventsettings.logourl,\n logoremoved: false\n })\n setPrivacyValue(eventsettings.eventprivacy)\n }, [eventsettings, reset, isFetching, isEdit])\n\n const handleChange = (e, field) => {\n if (field.name === \"checkboxothersettings.approvalofbidders\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that you will need to regularly check the Participants page to manually approve any newly registered participants. Participants that are not approved will not be able to bid on any items. To automatically approve all newly registered participants, leave this setting unchecked.\", show: true})\n }\n else if (field.name === \"checkboxothersettings.allowcustomlocations\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that all bidding open/close times are controlled by the Location settings. Changing the bidding open/close times on this page will not affect any existing location close times. Only use this setting if you plan to close tables at different times.\", show: true})\n }\n }\n\n const handleCloseDate = () => {\n if (eventsettings?.bidend) {\n if (new Date(eventsettings?.bidend) <= new Date()) {\n if (dialogObj.show === false) {\n setDialogObj({msg: \"Warning: This auction has already closed. Reopening bidding may cause unintended consequences and confusion for participants, especially in checkout. Winning bid and closing soon notifications will not be sent again for this auction. If this was a test, please create a new auction or clone this auction to set up your live event.\", show: true})\n }\n }\n }\n }\n\n const disableTexting = () => {\n const twilio = orgState?.twilio\n\n return twilio.valid === false\n }\n\n return (\n
\n {showDialog()}\n {showFailureDialog()}\n\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n

Auction Settings

\n \n \n \n \n \n \n \n {isEdit && (\n \n {!lockCode && }\n {lockCode && }\n \n )}\n \n\n \n \n \n \n\n \n{!allowcustomlocations && checkBidStartDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n required={!allowcustomlocations}\n disabled={allowcustomlocations}\n tooltipText={'The time when a user can begin bidding on auction items'}\n />}\n {allowcustomlocations && \n }\n \n\n\n \n {!allowcustomlocations && checkBidEndDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n onClose={handleCloseDate}\n required={!allowcustomlocations}\n disabled={allowcustomlocations}\n //tooltipText={\"The time when no more bids will be accepted on auction items\"}\n />}\n {allowcustomlocations && \n }\n \n\n \n checkEventEndDate(val, watch),\n }}\n defaultValue={new Date().toISOString()}\n required={true}\n tooltipText={\"The time when the auction website and checkout pages will no longer be accessible. This is usually multiple days after bidding closes to allow collecting payment at a later date.\"}\n />\n \n \n\n 0 ? timezones[0].label : \"\")}\n includeNone={false}\n tooltipText={\"The timezone where your event will be held. Dates/times will automatically adjust for each user’s location on their device.\"}\n />\n\n \n \n {handleChange(e, field)}}\n options={[\n // { value: 'allowbillme', label: 'Allow Bill Me', tooltipText: \"Allow checkout without immediate payment in order to send an invoice at a later date.\" },\n {\n value: 'allowbidanonymously',\n label: 'Allow Bid Anonymously',\n tooltipText: \"Give users the option to hide their name in the Bid History section.\"\n },\n // { value: 'allowbuyitnow', label: 'Allow Buy it Now', tooltipText: \"Allow setting a price for an auction item to be purchased, bypassing all bids.\"},\n {\n value: 'allowguestentry',\n label: 'Allow Guest Entry (View Only)',\n tooltipText: \"Allow users to browse your auction items without logging in. All users must log in to place a bid.\"\n },\n {\n value: 'allowpaymentoffees',\n label: 'Allow Payment of CC Fees',\n tooltipText: \"Display a checkbox during checkout for the user to add a set percentage to their payment to offset payment processing fees.\"\n },\n ]}\n label=\"\"\n />\n \n \n {handleChange(e, field)}}\n options={[\n // { value: 'allowautobid', label: 'Allow Auto Bid', tooltipText: \"Give users the ability to set a maximum bid amount when placing a bid.\" },\n // {\n // value: 'allowautobidincrement',\n // label: 'Allow Auto Bid Increment',\n // tooltipText: \"Give users the option to specify an increment amount when using Auto Bid.\"\n // },\n {\n value: 'approvalofbidders',\n label: 'Require Approval of Bidders',\n tooltipText: \"Do not allow bidding by users that have not been manually approved in the Participants page.\"\n },\n {\n value: 'allowcustomlocations',\n label: 'Allow custom bidding open/close by location',\n tooltipText: \"Each location will have independent open and close times for bidding. Set up these times on the Locations page.\"\n },\n { value: 'eventusepaddlenumber', label: 'Use manually assigned paddle number instead of auto-assigned bidder number', tooltipText: \"\" },\n\n ]}\n label=\"\"\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n 0 ? templates[0].label : \"\")}\n options={templates}\n tooltipText={\"Select the PDF template that should be used for all printed/PDF generated receipts.\"}\n />\n\n \n {watchLogo && (\n \n
\n
\n \"event\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
Event/Auction Logo
\n
\n \"event\n
\n \n )}\n
\n
\n

Event Logo

\n \n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

Drag 'n' drop a file here, or click to select a file.\n Event logo will be displayed with a max height of 54px. For best mobile experience, your logo should not exceed 215px by 54px. Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are allowed.

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

Event/Auction Privacy/Refund Policy

\n {\n setPrivacyValue(eventState.html)\n }}\n />\n
\n\n \n Save\n \n\n \n \n
\n )\n}\n\nexport default AuctionSettingsForm\n","import { useSelector } from 'react-redux'\n\nimport { PayloadAction, createSlice } from '@reduxjs/toolkit'\n\nimport { AppState } from '../App/store'\n\nexport interface EvtState {\n eventId: string\n eventName: string\n eventCode?: string\n allowpaymentoffees?: boolean\n billme?: boolean\n allowattendedbytickettype?: boolean\n ccfee?: number\n}\n\nconst initialState: EvtState = {\n eventId: '',\n eventName: '',\n eventCode: '',\n allowpaymentoffees: false,\n billme: false,\n ccfee: 0,\n}\n\nexport const evtSlice = createSlice({\n name: 'event',\n initialState,\n reducers: {\n setEvt: (state, { payload }: PayloadAction) => {\n state.eventId = payload.eventId\n state.eventName = payload.eventName\n state.eventCode = (payload.eventCode ? payload.eventCode : state.eventCode)\n state.billme = payload.billme\n state.allowpaymentoffees = payload.allowpaymentoffees\n state.ccfee = payload.ccfee\n }\n }\n})\n\n/** ACTION EXPORTS */\nexport const {\n setEvt\n} = evtSlice.actions\n\n/** REDUCER EXPORT */\nexport default evtSlice.reducer\n\n/** STATE HOOK EXPORTS - hooks for components to get state */\nexport const useEvtState = () => useSelector((state: AppState) => state.evt)\n","import React, {useEffect, useMemo, useState} from 'react'\nimport Dropzone from 'react-dropzone'\nimport { useForm } from 'react-hook-form'\nimport { Editor, EditorTools } from \"@progress/kendo-react-editor\";\nimport { ExpandMore } from '@material-ui/icons'\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport { Button, Grid, Dialog, DialogActions, DialogContent, DialogContentText, ButtonProps, Accordion,\n AccordionDetails,\n AccordionSummary } from '@material-ui/core'\nimport { styled } from '@mui/material/styles';\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport { Controller} from 'react-hook-form'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport CheckboxGroup from '../../components/common/inputs/CheckboxGroup'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\n import {EventSettings, useFetchEventSettings} from '../../queries/events/useFetchEvtSettings'\n import {EvtState, setEvt, useEvtState} from '../../slices/evtSlice'\nimport styles from './EventSettingsForm.module.css'\nimport { useEditEventSettings } from './useEditEventSettings'\nimport { useFetchTimezones } from \"../../queries/useFetchTimezones\";\nimport {Lock, LockOpen, Close } from '@material-ui/icons'\nimport dayjs from \"dayjs\";\nimport {Dayjs} from \"dayjs\";\n\nimport {useHistory} from \"react-router-dom\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\n import {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport imageCompression from \"browser-image-compression\";\nimport {QueryClient} from \"react-query\";\nimport axios from \"axios\";\n\ntype FormData = {\n type: string;\n status: string;\n message: string;\n eventid: number;\n name: string;\n code: string;\n actual: Dayjs;\n timezone: string;\n textprefix: string;\n ccfee: number;\n logo: string; \n logourl: string;\n logoremoved: boolean; \n eventprivacy: string;\n storeheader: string;\n storebuttonevent: string;\n storebuttonauction: string;\n storefooter: string;\n active: boolean;\n delete: boolean; \n checkboxsettings : {\n billme: boolean;\n allowattendedbytickettype: boolean;\n allowpaymentoffees: boolean;\n storebuttoneventshow: boolean;\n storebuttonauctionshow: boolean;\n }\n \n}\ninterface Params {\n id: string\n}\n\nconst EventSettingsForm = ({ isEdit = false }) => {\n const warningMsg = \"WARNING: Changing the Event Code will change your event URL.\"\n const { id } = useParams()\n useAutoEvent(id)\n const orgState = useOrgState()\n\n const formMethods = useForm()\n const { reset, watch, setValue } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n const history = useHistory()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n\n const dispatch = useDispatch()\n const authToken = useAuthToken()\n const queryClient = new QueryClient()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const [errorMsg, setErrorMsg] = useState({\n show: false,\n msg: \"\"\n })\n\n const [successMsg, setSuccessMsg] = useState(false)\n const [lockCode, setLockCode] = useState(true)\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [openFailure, setFailureOpen] = React.useState(false);\n const [failureMessage, setFailureMessage] = React.useState(\"\");\n const [storeHeader, setStoreHeader] = useState('')\n const [storeFooter, setStoreFooter] = useState('')\n const [eventPrivacy, setEventPrivacy] = useState('')\n\n const [eventsettings, setEventSettings] = useState({\n type: \"\",\n status: \"\",\n message: \"\",\n eventid: 0,\n name: \"\",\n code: \"\",\n actual: \"\",\n timezone: \"\",\n allowtexting: false,\n textprefix: \"\",\n allowpaymentoffees: false,\n billme: false,\n allowattendedbytickettype: false,\n ccfee: 0,\n logourl: \"\",\n eventprivacy: \"\",\n storeheader: \"\",\n storebuttonevent: \"\",\n storebuttoneventshow: false,\n storebuttonauction: \"\",\n storebuttonauctionshow: false,\n storefooter: \"\",\n active: false\n })\n\n useEffect(() => {\n getEventSettingsData(Number(id))\n }, [])\n\n // useEffect(() => {\n // console.log(eventsettings)\n // }, [eventsettings])\n\n const getEventSettingsData = async (eventId) => {\n const json = JSON.stringify({ eventid: eventId })\n const { data } = await axios.post('/evtsettings', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n const parsedData = JSON.parse(data.jsonString)\n setEventSettings(parsedData)\n }\n\n const { data : timeZoneData } = useFetchTimezones()\n const timezones = timeZoneData?.map(timeZone => {\n return { value: timeZone.timezone, label: timeZone.timezone }\n })\n const editMutation = useEditEventSettings()\n const eventCodeRegex = /^[-_A-Za-z0-9]+$/\n const richTextTools = [\n [EditorTools.Bold, EditorTools.Italic, EditorTools.Underline, EditorTools.Strikethrough],\n // [EditorTools.Subscript, EditorTools.Superscript],\n EditorTools.ForeColor,\n EditorTools.BackColor,\n [EditorTools.CleanFormatting],\n [EditorTools.AlignLeft, EditorTools.AlignCenter, EditorTools.AlignRight, EditorTools.AlignJustify],\n [EditorTools.Indent, EditorTools.Outdent],\n [EditorTools.OrderedList, EditorTools.UnorderedList],\n // [EditorTools.NumberedList, EditorTools.BulletedList],\n EditorTools.FontSize,\n EditorTools.FontName,\n EditorTools.FormatBlock,\n [EditorTools.SelectAll],\n [EditorTools.Undo, EditorTools.Redo],\n [EditorTools.Link, EditorTools.Unlink, EditorTools.InsertImage, EditorTools.ViewHtml],\n [EditorTools.InsertTable, EditorTools.InsertFile],\n // [EditorTools.Pdf, EditorTools.Print],\n [EditorTools.AddRowBefore, EditorTools.AddRowAfter, EditorTools.AddColumnBefore, EditorTools.AddColumnAfter],\n [EditorTools.DeleteRow, EditorTools.DeleteColumn, EditorTools.DeleteTable],\n [EditorTools.MergeCells, EditorTools.SplitCell],\n ]\n const onEditSubmit = (formData: FormData) => {\n console.log('onEditSubmit')\n console.log(formData)\n const {\n checkboxsettings,\n actual,\n ...rest\n } = formData\n editMutation.mutate({\n eventid: Number(id),\n actual: dayjs(actual).format('YYYY-MM-DD'),\n ...rest,\n ...checkboxsettings,\n ccfee: Number(formData.ccfee),\n storeheader: storeHeader,\n storefooter: storeFooter,\n eventprivacy: eventPrivacy\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n const eventState: EvtState = {\n eventId: json.eventId,\n eventName: json.name,\n eventCode: json.code,\n allowpaymentoffees: json.allowpaymentoffees,\n billme: json.billme,\n allowattendedbytickettype: json.allowattendedbytickettype,\n ccfee: json.ccfee\n }\n dispatch(setEvt(eventState))\n setDialogMsg(\"Event was updated successfully.\")\n }\n }\n })\n }\n\n const handleClickContinue = () => {\n const isLock = (warningMsg === dialogMsg);\n setDialogMsg(\"\")\n if(isLock){\n setLockCode(!lockCode)\n }\n\n if (!isLock && !isEdit) {\n history.goBack()\n }\n };\n\n const handleClose = () => {\n setDialogMsg(\"\")\n };\n\n const closeFailure = () => {\n setFailureOpen(false);\n };\n\n const showDialog = () => {\n return (\n <>\n 0}\n // onClose={handleClose}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {((warningMsg === dialogMsg)) && (\n \n )}\n \n \n \n \n )\n }\n\n const showFailureDialog = () => {\n return (\n <>\n \n \n \n Failure: {failureMessage}\n \n \n \n \n \n \n \n )\n }\n\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n\n const onCreateSubmit = (formData: FormData) => {\n const {\n actual,\n ...rest\n } = formData\n editMutation.mutate({\n ...rest,\n actual: dayjs(actual).format('YYYY-MM-DD'),\n ccfee: Number(formData.ccfee),\n active: true\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setFailureMessage(json.message)\n setFailureOpen(true)\n }\n else {\n // setDialogMsg(\"Event was created successfully.\")\n history.push('/auction/' + json.eventid)\n }\n }\n })\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n\n const clickLockOpen = () => {\n setDialogMsg(warningMsg);\n }\n\n const clickLockClose = () => {\n setDialogMsg(\"\");\n setLockCode(!lockCode)\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n useEffect(() => {\n if (eventsettings) {\n // const bidEndDate = eventsettings.actual ? eventsettings?.actual?.split(' ').join('T') : new Date().toISOString()\n // const timeZoneForm = eventsettings.timezone ? eventsettings.timezone : 'Central Standard Time'\n\n reset({\n type: eventsettings.type,\n status: eventsettings.status,\n message: eventsettings.message,\n eventid: eventsettings.eventid,\n name: eventsettings.name,\n code: eventsettings.code,\n actual: dayjs(eventsettings.actual),\n timezone: eventsettings.timezone,\n textprefix: eventsettings.textprefix,\n ccfee: eventsettings.ccfee,\n //logo: eventsettings.logo,\n logourl: eventsettings.logourl,\n logoremoved: false,\n eventprivacy: eventsettings.eventprivacy,\n storeheader: eventsettings.storeheader,\n storebuttonevent: eventsettings.storebuttonevent,\n storebuttonauction: eventsettings.storebuttonauction,\n storefooter: eventsettings.storefooter,\n active: eventsettings.active,\n delete: false,\n checkboxsettings: {\n allowpaymentoffees: eventsettings.allowpaymentoffees,\n billme: eventsettings.billme,\n allowattendedbytickettype: eventsettings.allowattendedbytickettype,\n storebuttoneventshow: eventsettings.storebuttoneventshow,\n storebuttonauctionshow: eventsettings.storebuttonauctionshow\n }\n });\n setStoreHeader(eventsettings.storeheader)\n setStoreFooter(eventsettings.storefooter)\n setEventPrivacy(eventsettings.eventprivacy)\n\n }}, [eventsettings, isEdit])\n\n const handleChange = (e, field) => {\n if (field.name === \"checkboxothersettings.approvalofbidders\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that you will need to regularly check the Participants page to manually approve any newly registered participants. Participants that are not approved will not be able to bid on any items. To automatically approve all newly registered participants, leave this setting unchecked.\", show: true})\n }\n else if (field.name === \"checkboxothersettings.allowcustomlocations\" && field.value === false) {\n setDialogObj({msg: \"Caution: Checking this box means that all bidding open/close times are controlled by the Location settings. Changing the bidding open/close times on this page will not affect any existing location close times. Only use this setting if you plan to close tables at different times.\", show: true})\n }\n }\n\n const disableTexting = () => {\n const twilio = orgState?.twilio\n\n return twilio.valid === false\n }\n\n return (\n
\n {showDialog()}\n {showFailureDialog()}\n\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n {\n setDialogObj({ msg: '', show: false })\n }}>\n Ok\n \n \n \n \n

Event Settings

\n \n {/**/}\n \n \n \n \n \n {isEdit && (\n \n {!lockCode && }\n {lockCode && (\n \n )}\n \n )}\n \n\n \n \n {\n return (\n \n {\n field.onChange(date);\n }}\n />\n \n\n );\n }}\n />\n\n \n \n 0 ? timezones[0].label : ''\n }\n includeNone={false}\n tooltipText={\n 'The timezone where your event will be held. Dates/times will automatically adjust for each user’s location on their device.'\n }\n />\n \n \n\n \n \n {\n handleChange(e, field)\n }}\n options={[\n {\n value: 'billme',\n label: 'Allow Bill Me',\n tooltipText: 'Allow checkout without immediate payment in order to send an invoice at a later date.'\n }\n ]}\n label=\"\"\n />\n \n \n {\n handleChange(e, field)\n }}\n options={[\n {\n value: 'allowattendedbytickettype',\n label: 'Track Attended per Ticket',\n tooltipText: ''\n }\n ]}\n label=\"\"\n />\n \n \n \n \n \n\n\n \n {watchLogo && (\n \n
\n {' '}\n \n
\n
\n \"event\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
New Event Logo
\n
\n \n
\n \n )}\n
\n
\n

Event Logo

\n \n {({ getRootProps, getInputProps }) => (\n
\n
\n \n

\n Drag 'n' drop a file here, or click to select a file. Event\n logo will be displayed with a max height of 54px. For best\n mobile experience, your logo should not exceed 215px by 54px.\n Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are\n allowed.\n

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

Event Welcome Page Header

\n
This content will show above the login fields while the event is open.
\n {\n // console.log(eventState)\n setStoreHeader(eventState.html)\n }}\n />\n
\n\n \n \n \n \n \n \n \n \n
\n

Event Welcome Page Footer

\n
This content will show above the login fields while the event is open.
\n {\n setStoreFooter(eventState.html)\n }}\n />\n
\n
\n

Event Privacy/Refund Policy

\n
This content will show above the login fields while the event is open.
\n {\n setEventPrivacy(eventState.html)\n }}\n />\n
\n\n \n Save\n \n\n \n \n
\n )\n}\n\nexport default EventSettingsForm\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useEditEventSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/evtsettings`, body)\n }\n ,\n {\n onSuccess: (data) => {\n queryClient.invalidateQueries(['evtsettings'])\n queryClient.invalidateQueries(['evts'])\n }\n }\n )\n}\n\n\nexport const useCreateEvent = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/evtsettings`, body)\n },\n {\n onSuccess: (data ) => {\n queryClient.invalidateQueries(['evtsettings'])\n queryClient.invalidateQueries(['evts'])\n }\n }\n )\n}\n","import * as React from 'react';\nimport { EditorUtils } from '@progress/kendo-react-editor';\nimport { plusIcon } from '@progress/kendo-svg-icons';\nimport { DropDownButton } from '@progress/kendo-react-buttons';\n\ninterface Shortcode {\n text: string;\n code: string;\n id: number;\n}\n\nconst shortcodes: Shortcode[] = [\n { text: 'Name', code: '«name»', id: 1 },\n { text: 'Initials', code: '«initials»', id: 2 },\n { text: 'Address', code: '«address_street»', id: 3 },\n { text: 'Email', code: '«email»', id: 4 },\n { text: 'Phone', code: '«phone»', id: 5 },\n];\n\nconst defaultItem: Shortcode = { text: 'Insert Field', code: '', id: 0 };\n\ninterface InsertShortcodeToolProps {\n view: any; // This should be more specific, but without knowing the exact type, I'll use 'any' for now.\n}\n\nexport class InsertShortcodeTool extends React.Component {\n handleChange = (event: any) => { // The type of 'event' should be more specific, but I'll use 'any' for now.\n if (!event.item.code) {\n return;\n }\n const { view } = this.props;\n const schema = view.state.schema;\n\n // get the new node from the schema\n const nodeType = schema.nodes.nonEditable;\n\n // create a new node with the selected text\n const node = nodeType.createAndFill(\n { class: 'shortcode' },\n schema.text(event.item.code)\n );\n\n // Insert the new node\n EditorUtils.insertNode(view, node);\n view.focus();\n };\n\n render() {\n const { view } = this.props;\n const nodeType = view && view.state.schema.nodes.text;\n const canInsert = view && EditorUtils.canInsert(view.state, nodeType);\n\n return (\n \n );\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { Accordion, AccordionSummary, AccordionDetails, Typography, Button, TextField } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n// Assuming you have set up the Telerik Kendo rich text editor\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror,\n EditorChangeEvent\n} from \"@progress/kendo-react-editor\";\nimport {InsertShortcodeTool} from '../../components/common/inputs/RTEInsertTool/RTEInsertTool'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { makeStyles } from '@material-ui/core/styles';\n\n\ninterface Params {\n eventid: string\n}\n// Custom styles\nconst useStyles = makeStyles((theme) => ({\n accordionDetails: {\n width: '100%', // Set the width to 100% of the parent\n maxWidth: '100%', // Ensure it doesn't expand past the parent\n display: 'block', // Ensures the content takes the full width\n boxSizing: 'border-box', // Includes padding and border in the element's total width and height\n },\n // ...other styles if needed\n}));\n\nconst EmailCustomizationPage = () => {\n const classes = useStyles();\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n const { Schema, EditorView, EditorState } = ProseMirror;\n const [transactionReceiptHeader, setTransactionReceiptHeader] = useState('');\n const [transactionReceiptFooter, setTransactionReceiptFooter] = useState('');\n const [purchaserHeader, setPurchaserHeader] = useState('');\n const [purchaserFooter, setPurchaserFooter] = useState('');\n const [guestHeader, setGuestHeader] = useState('');\n const [guestFooter, setGuestFooter] = useState('');\n const { eventid } = useParams()\n useAutoEvent(eventid)\n\n const handleTransactionReceiptHeaderChange = (event: EditorChangeEvent) => {\n setTransactionReceiptHeader(event.html);\n };\n\n const handleTransactionReceiptFooterChange = (event) => {\n setTransactionReceiptFooter(event.html);\n };\n const handlePurchaserHeaderChange = (event) => {\n setPurchaserHeader(event.html);\n };\n\n const handlePurchaserFooterChange = (event) => {\n setPurchaserFooter(event.html);\n };\n const handleGuestHeaderChange = (event) => {\n setGuestHeader(event.html);\n };\n\n const handleGuestFooterChange = (event) => {\n setGuestFooter(event.html);\n };\n // Fetch data functions\n const fetchData = async (url, setDataHeader, setDataFooter) => {\n try {\n const response = await axios.post(url, { eventid: eventid });\n const parsedData = JSON.parse(response.data.jsonString);\n if (parsedData && parsedData.header !== undefined && parsedData.footer !== undefined) {\n setDataHeader(parsedData.header);\n setDataFooter(parsedData.footer);\n } else {\n console.error('Data received is not in the expected format:', parsedData);\n }\n \n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n const saveTransactionReceiptData = async () => {\n const data = {\n eventid: eventid, \n header: transactionReceiptHeader,\n footer: transactionReceiptFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailtransactionreceipt', data);\n alert('Transaction Receipt data saved successfully!');\n } catch (error) {\n console.error('Error saving Transaction Receipt data:', error);\n alert('Failed to save Transaction Receipt data.');\n }\n };\n const savePurchaserData = async () => {\n const data = {\n eventid:eventid, \n header: purchaserHeader,\n footer: purchaserFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailpurchaser', data);\n alert('Purchaser data saved successfully!');\n } catch (error) {\n console.error('Error saving purchaser data:', error);\n alert('Failed to save purchaser data.');\n }\n };\n const saveGuestData = async () => {\n const data = {\n eventid: eventid, \n header: guestHeader,\n footer: guestFooter\n };\n \n try {\n const response = await axios.put('https://testapi.auctionsnap.com:8443/evtemailguest', data);\n // Handle response here. For example, you can alert the user about successful save\n alert('guest data saved successfully!');\n } catch (error) {\n // Handle errors here. For example, you can alert the user about the error\n console.error('Error saving guest data:', error);\n alert('Failed to save guest data.');\n }\n };\n \n // Fetch data when the component mounts\n useEffect(() => {\n fetchData('https://testapi.auctionsnap.com:8443/evtemailtransactionreceipt', setTransactionReceiptHeader, setTransactionReceiptFooter);\n fetchData('https://testapi.auctionsnap.com:8443/evtemailpurchaser', setPurchaserHeader, setPurchaserFooter);\n fetchData('https://testapi.auctionsnap.com:8443/evtemailguest', setGuestHeader, setGuestFooter);\n }, []);\n \n // This is the node configuration\nconst nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n};\n\n const onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n };\n \n\n return (\n
\n

Email Customization

\n\n \n }>\n Transaction Receipt\n \n \n
\n Header\n handleTransactionReceiptHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n />\n\n Footer\n handleTransactionReceiptFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n
\n\n
\n
\n\n \n }>\n Email to Purchaser with Link to All Update Guest Data\n \n \n
\n Header\n handlePurchaserHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml, InsertShortcodeTool]]}\n contentStyle={{ height: 300 }}\n onMount={onMount}\n />\n Footer\n handlePurchaserFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n\n
\n\n
\n
\n\n \n \n }>\n Email to Guest with Link to Update Guest Data\n \n \n
\n Header\n handleGuestHeaderChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml, InsertShortcodeTool]]}\n contentStyle={{ height: 300 }}\n onMount={onMount}\n />\n Footer\n handleGuestFooterChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml]]}\n contentStyle={{ height: 300 }}\n \n /> \n\n\n
\n\n
\n
\n\n
\n );\n}\n\nexport default EmailCustomizationPage;\n","import React, { useState } from 'react';\nimport { Dialog, Tabs, Tab, Box, Typography, TextField, Button, Grid } from '@mui/material';\nimport { DataGrid, GridSelectionModel, GridColDef } from '@mui/x-data-grid';\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror\n} from \"@progress/kendo-react-editor\";\nimport {InsertShortcodeTool} from '../../../components/common/inputs/RTEInsertTool/RTEInsertTool'\nconst EmailEditModal = ({ isOpen, handleClose, emailData }) => {\n const [activeTab, setActiveTab] = useState(0);\n const [selectionModel, setSelectionModel] = useState([]);\n\n const handleChangeTab = (event, newValue) => {\n setActiveTab(newValue);\n };\n const [testEmail, setTestEmail] = useState('');\n const handleSendTestEmail = () => {\n // Logic to send a test email to the provided address\n};\n\n// Function to handle the final send\nconst handleSendEmails = () => {\n // Logic to send the actual emails\n};\n\n\nconst handleSelectAll = () => {\n const allIds = emailData.data?.map((row) => row.id);\n setSelectionModel(allIds);\n};\n\nconst columns: GridColDef[] = [\n { field: 'id', headerName: 'ID', width: 90, hide: true },\n { field: 'firstName', headerName: 'First Name', width: 150 },\n { field: 'lastName', headerName: 'Last Name', width: 150 },\n { field: 'email', headerName: 'Email', width: 200 },\n // Add more columns as needed\n];\nconst handleDeselectAll = () => {\n setSelectionModel([]);\n};\n\nconst handleResetFilters = () => {\n // Reset any applied filters on the DataGrid\n};\n const { Bold, Italic, Underline, ViewHtml } = EditorTools;\n const { Schema, EditorView, EditorState } = ProseMirror;\n // This is the node configuration\nconst nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n};\n\n const onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n };\n\n return (\n \n \n \n \n \n {/* */}\n \n\n \n {activeTab === 0 && (\n // Step 1: Edit Email Body\n \n \n \n \n Header\n \n \n\n \n \n \n \n )}\n {activeTab === 1 && (\n \n \n \n Email Name: {emailData.emailName}\n \n \n Email Type: {emailData.emailType}\n \n \n \n \n \n Number of guests with emails: 0 {/* Display count here */}\n \n \n \n \n Number of guests Selected: 0 {/* Display count here */}\n \n \n \n \n \n \n \n \n\n setSelectionModel(newSelection)}\n selectionModel={selectionModel}\n />\n \n\n \n \n \n \n \n )}\n {activeTab === 2 && (\n // Step 3: Review and Send\n \n \n \n Email Name: {emailData.emailName}\n \n \n Email Type: {emailData.emailType}\n \n \n {/* Send Test Email Section */}\n \n \n setTestEmail(e.target.value)}\n fullWidth\n />\n \n \n \n \n \n\n \n \n\n \n Preview First 10 Emails: {/* Display count here */}\n \n \n \n\n \n \n \n {/* Send Emails Section */}\n \n \n\n \n Number of emails to send: {/* Display count here */}\n \n \n \n\n \n \n \n \n )}\n {activeTab === 3 && (\n // Step 4: Send History\n // \n \n {/* Summary of email and a Send button */}\n \n )}\n \n \n );\n};\n\nexport default EmailEditModal;\n","import React, {useEffect, useState} from 'react';\nimport axios from \"axios\";\nimport {\n DataGridPremium,\n GridAlignment,\n GridCallbackDetails,\n GridCellParams,\n GridColDef,\n GridCsvExportOptions,\n GridCsvGetRowsToExportParams,\n GridEventListener, GridRenderCellParams,\n GridRenderEditCellParams,\n GridRowEditStopReasons, GridRowModel, GridRowModes,\n GridRowParams,\n gridSortedRowIdsSelector,\n GridSortModel,\n GridToolbarContainer,\n GridToolbarExport, GridValueFormatterParams,\n MuiEvent,\n GRID_CHECKBOX_SELECTION_COL_DEF,\n} from \"@mui/x-data-grid-premium\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {Checkbox, Grid, TextField} from \"@mui/material\";\nimport dayjs from \"dayjs\";\nimport {GridSelectionModel} from \"@mui/x-data-grid-pro\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText} from \"@material-ui/core\";\nimport styles from \"../../AuctionSettingsForm/AuctionSettingsForm.module.css\";\n\nconst EmailRecipients = ({eventid, massemailid}) => {\n const [emailData, setEmailData] = useState({columnlist: [], emailcount: 0, massemailname: '', massemailtype: '', message: '', rowlist: [], totalcount: 0});\n const [checkboxSelection, setCheckboxSelection] = React.useState([])\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const [checked, setChecked] = React.useState(true);\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n\n const handleChange = (event: React.ChangeEvent) => {\n setCheckboxSel(event.target.id, event.target.checked)\n };\n\n useEffect(() => {\n const body = {'eventid': eventid, 'massemailid': massemailid}\n\n const fetchData = async () => {\n const { data } = await axios.post('/evtmassemailrecipient', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setEmailData(parsedData)\n\n const selectedItems = parsedData.rowlist.map(listofstuff => {\n return {id: listofstuff.id, value: listofstuff.isselected}\n })\n if (shouldAllBeSelected(selectedItems)) {\n setCheckboxSelection([{id: 0, value: true}, ...selectedItems])\n }\n else {\n setCheckboxSelection(selectedItems)\n }\n }\n\n fetchData()\n }, [])\n\n const shouldAllBeSelected = (selections) => {\n var allSelected = true\n selections.forEach(listofstuff => {\n if (listofstuff.value == false) {\n allSelected = false\n }\n })\n return allSelected\n }\n\n const setCheckboxSel = (id, value) => {\n const selections = checkboxSelection.filter((op) => op.id != id)\n\n if (id == 0) {\n const selectedItems = emailData.rowlist.map(listofstuff => {\n return {id: listofstuff.id, value: value}\n })\n setCheckboxSelection([{id: 0, value: value}, ...selectedItems])\n }\n else {\n const selectionValues = [{id: Number(id), value: value}, ...selections].filter((op) => op.id != 0)\n const allValue = shouldAllBeSelected(selectionValues)\n\n selectionValues.push({id: 0, value: allValue})\n setCheckboxSelection(selectionValues)\n }\n }\n\n const getCheckboxSel = (id) => {\n const selection = checkboxSelection.find((op) => op.id === id)\n return selection ? selection.value : false\n }\n\n const valueGetter = (gridParams) => {\n var actualDay = dayjs(gridParams?.value?.toString(), \"YYYY-MM-DD\")\n const newDate = dayjs().set('date', actualDay.date()).set('month', actualDay.month()).set('year', actualDay.year())\n\n return (gridParams.value ? newDate.format('MM/DD/YYYY') : '')\n }\n\n const lookupValue = (params: GridValueFormatterParams) => {\n if (params.value) {\n // console.log(params.value.toString())\n const paramsValue = params.value.toString()\n const tagDescription = processValue(paramsValue)\n return tagDescription\n }\n }\n const processValue = (valuesAsString: string) => {\n // var idsToLookup = [valuesAsString]\n // if (valuesAsString && typeof valuesAsString == \"string\" && valuesAsString.length > 0 && valuesAsString.includes(',')) {\n // idsToLookup = valuesAsString.split(',')\n // }\n // const lookupStrings = idsToLookup.map(id => {\n // const lookObj = mainData?.lookuplist.filter((item) => item.uniqueid === id)\n // // console.log(lookObj)\n // if (lookObj && lookObj.length > 0) {\n // return lookObj[0].lookup\n // }\n // })\n // const tagDescription = getTagDescription(lookupStrings)\n // return tagDescription\n return ''\n }\n\n // const valueSingleSelectGetter = (params) => {\n // var check = ''\n // if (params.value) {\n // check = params.value.toString()\n // }\n // const lookup = lookupList.filter(list => list.uniqueid === check)\n // if (lookup && lookup.length > 0) {\n // return lookup[0].lookup\n // }\n // else {\n // return params.value ? params.value : 'None'\n // }\n // }\n\n function RenderCheckBox() {\n const [checked, setChecked] = React.useState(); // Initiated react binded value with param from `rows`\n\n // Handler for user clicks to set checkbox mark or unset it\n const handleChange = (event: React.ChangeEvent) => {\n // setChecked(event.target.checked);\n };\n //The bind for dynamic mark/unmark: checked={checked}\n //The handler for user clicks: onChange={handleChange}\n return (\n \n );\n }\n\n const buildDynamicColumnDefs = (columnList) => {\n var gridDefs = [];\n // var sortModel: GridSortModel = [gridSortItem]\n\n columnList?.forEach(field => {\n // 1 - boolean\n // 2 - Lookup\n // 3 - integer\n // 4 - money (double)\n // 5 - text\n // 6 - date\n // 7 - text ([1,3,5] multi lookup values\n // 8 - Datetime\n // 9 - Time\n\n let gridAlignmentHeader: GridAlignment = field.fieldheaderalign\n let gridAlignmentCell: GridAlignment = field.fieldalign\n let colWidth = field.fieldwidth\n\n var col: GridColDef = {\n \"field\": field.fieldfield.toString(),\n \"headerName\": field.fieldlabel,\n \"type\": 'string',\n \"headerAlign\": gridAlignmentHeader,\n \"width\": colWidth,\n \"align\": gridAlignmentCell,\n }\n\n if (field.fieldcontrol === 1) {\n // col.renderCell = RenderCheckBox\n // col.valueFormatter = boolValueLookup\n col = GRID_CHECKBOX_SELECTION_COL_DEF\n\n col.field = field.fieldfield.toString()\n col.headerName = field.fieldlabel\n col.width = colWidth\n col.align = gridAlignmentCell\n col.headerAlign = gridAlignmentHeader\n col.renderHeader = (params) => {\n return (\n \n )\n }\n col.renderCell = (params) => {\n return (\n \n )\n }\n // col.valueGetter = valueCheckboxGetter\n // col.valueSetter = valueCheckboxSetter\n // console.log(col)\n } else if (field.fieldcontrol === 2) {\n // col.groupingValueGetter = valueSingleSelectGetter\n // col.valueFormatter = valueLookup\n // col.renderCell = (params) => {\n // const fieldid = field.schedulefieldid\n // const fieldcolorId = 'schedulegridcolor' + field.schedulefieldid\n // const testData = processValue(params.row[fieldid])\n // return getCellText(testData, params.row[fieldcolorId])\n }\n else if (field.fieldcontrol === 3) {\n col.type = 'number'\n } else if (field.fieldcontrol === 4) {\n // col.renderEditCell = (params: any) => {\n // return (\n // <>\n // handleCurrencyChange(value, field.scheduleid, field.schedulefieldid)}\n // />\n // \n // )\n // }\n } else if (field.fieldcontrol === 5) {\n // col.renderEditCell = (params: any) => {\n // return (\n // <>\n // \n // \n // )\n // }\n } else if (field.fieldcontrol === 6) {\n // col.valueFormatter = formatDate\n col.valueGetter = valueGetter\n col.groupingValueGetter = valueGetter\n } else if (field.fieldcontrol === 7) {\n col.valueFormatter = lookupValue\n col.renderEditCell = (params: any) => {\n return (\n <>\n \n )\n }\n }\n // const fielddata = getFieldData(field.fieldfield.toString())\n // console.log(fielddata)\n gridDefs.push({...col})\n })\n // console.log(GRID_CHECKBOX_SELECTION_COL_DEF)\n\n\n return [...gridDefs]\n }\n\n const save = async () => {\n const selections = checkboxSelection.filter(item => item.value == true)\n const ids = selections.map(sels => {\n return sels.id\n })\n\n const body = {\n \"eventid\": eventid,\n \"massemailid\": massemailid,\n \"idlist\": ids\n }\n\n const { data } = await axios.put('/evtmassemailrecipient', body)\n const parsedData = JSON.parse(data.jsonString)\n var message = \"Successfully saved.\"\n if (parsedData.message) {\n parsedData.message = message\n }\n setDialogMsg(message)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n <>\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n
\n \n \n console.log(itm)}\n onSelectionModelChange={(newSelectionModel) => {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n // onRowClick={handleRowClick}\n />\n \n\n \n \n \n \n
\n \n )\n}\nexport default EmailRecipients\n\n","import React, {useEffect, useState} from 'react';\nimport axios from \"axios\";\nimport {Grid, List, ListItemButton, TextField} from \"@mui/material\";\nimport {Editor, EditorChangeEvent, EditorTools, EditorUtils, ProseMirror} from \"@progress/kendo-react-editor\";\nimport styles from \"../../AuctionSettingsForm/AuctionSettingsForm.module.css\";\nimport {styled} from \"@mui/material/styles\";\nimport {Button, ButtonProps, Dialog, DialogActions, DialogContent, DialogContentText, ListItemText} from \"@material-ui/core\";\nimport {InsertShortcodeTool} from \"../../../components/common/inputs/RTEInsertTool\";\n\nconst { Schema, EditorView, EditorState } = ProseMirror;\nconst { Bold, Italic, Underline, ViewHtml } = EditorTools;\n\nconst EmailBody = ({eventid, massemailid}) => {\n const [emailData, setEmailData] = useState({fieldlist: null, massemailbody: '', massemailfrom: '', massemailfromname: '', massemailid: 0, massemailsubject: ''});\n const [bodyData, setBodyData] = useState('');\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n\n\n\n useEffect(() => {\n const body = {'eventid': eventid, 'massemailid': massemailid}\n\n const fetchData = async () => {\n const { data } = await axios.post('/evtmassemailbody', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setEmailData(parsedData[0])\n setBodyData(parsedData[0].massemailbody)\n }\n\n fetchData()\n }, [])\n\n const handleBodyDataChange = (event: EditorChangeEvent) => {\n setBodyData(event.html);\n };\n\n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setEmailData({\n ...emailData,\n [name]: value\n });\n };\n\n const FloatingButton = styled(Button)(({ theme }) => ({\n margin:'auto',\n top: 'auto',\n // right: '40%',\n bottom: 20,\n left: '25%',\n position: 'fixed',\n width: '50%'\n }))\n\n const save = async () => {\n const body = {\n 'eventid': eventid,\n 'massemailid': massemailid,\n 'massemailfrom': emailData.massemailfrom,\n 'massemailfromname': emailData.massemailfromname,\n 'massemailsubject': emailData.massemailsubject,\n 'massemailbody': bodyData\n }\n\n const { data } = await axios.put('/evtmassemailbody', body)\n const parsedData = JSON.parse(data.jsonString)\n var message = \"Successfully saved.\"\n if (parsedData.message) {\n parsedData.message = message\n }\n setDialogMsg(message)\n }\n\n const reset = async () => {\n setBodyData('')\n setEmailData({fieldlist: null, massemailbody: '', massemailfrom: '', massemailfromname: '', massemailid: 0, massemailsubject: ''});\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const handleToggle = (value: string) => () => {\n setBodyData(bodyData + ' @' + value)\n }\n\n const { Schema, EditorView, EditorState } = ProseMirror;\n\n const nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n };\n\n const onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n }\n\n return (\n <>\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n handleBodyDataChange(e)}\n tools={[[Bold, Italic, Underline, ViewHtml, InsertShortcodeTool]]}\n contentStyle={{ height: 300 }}\n onMount={onMount}\n />\n \n {/**/}\n {/* */}\n {/* {emailData?.fieldlist?.map(field => {*/}\n {/* return (*/}\n {/* */}\n {/* */}\n {/* */}\n {/* )*/}\n {/* })}*/}\n {/* `*/}\n {/**/}\n \n \n \n \n \n \n \n
\n \n )\n}\nexport default EmailBody\n\n","import React, { useState, useEffect } from 'react';\nimport {\n DataGridPremium,\n GridColDef,\n GridValueFormatterParams,\n GridSelectionModel,\n GridRowParams,\n GridCallbackDetails, MuiEvent\n} from '@mui/x-data-grid-premium';\n\nimport {\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n DialogContentText,\n Select,\n IconButton,\n Grid,\n Button,\n Box,\n MenuItem,\n FormControl,\n InputLabel,\n FormControlLabel,\n Checkbox,\n AppBar, Typography\n} from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport EmailEditModal from './EmailReviewForm'; // Import your Email Edit Modal component\nimport { Edit, Delete } from '@material-ui/icons';\nimport dayjs from 'dayjs';\nimport axios from 'axios';\nimport styles from './EventMassEmailMaintenanceTable.module.css';\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {InsertShortcodeTool} from \"../../components/common/inputs/RTEInsertTool\";\nimport {\n Editor,\n EditorTools,\n EditorUtils,\n ProseMirror\n} from \"@progress/kendo-react-editor\";\nimport EmailRecipients from \"./EmailRecipients\";\nimport EmailBody from \"./EmailBody\";\ninterface Params {\n eventid: string\n}\n\nconst { Bold, Italic, Underline, ViewHtml } = EditorTools;\nconst { Schema, EditorView, EditorState } = ProseMirror;\n\nconst nonEditable = {\n name: \"nonEditable\",\n inline: true,\n group: \"inline\",\n content: \"inline+\",\n marks: \"\",\n attrs: {\n contenteditable: { default: null },\n class: { default: null },\n style: { default: null }\n },\n atom: true,\n parseDOM: [{ tag: \"span.uneditable\", priority: 51 }],\n // The styles can be added via the class as well\n toDOM: () => [\n \"span\",\n {\n contenteditable: false,\n class: \"uneditable\",\n style: \"user-select: none; opacity: 0.5;\"\n },\n 0\n ]\n};\nconst onMount = event => {\n const { viewProps } = event;\n const { plugins, schema } = viewProps.state;\n\n // Append a new node.\n let nodes = schema.spec.nodes.addToEnd('nonEditable', nonEditable);\n\n // Create the new schema.\n const mySchema = new Schema({ nodes: nodes, marks: schema.spec.marks });\n\n // Create a new document using the modified schema.\n const doc = EditorUtils.createDocument(mySchema, '');\n\n // Return the custom EditorView object that will be used by Editor.\n return new EditorView(\n { mount: event.dom },\n {\n ...event.viewProps,\n state: EditorState.create({ doc, plugins })\n }\n );\n};\n\ninterface EmailRow {\n id: number;\n emailName: string;\n emailType: string;\n askGuestToRegister: boolean;\n readOnly: boolean;\n active: boolean;\n selectedCount: number;\n lastSent: string | null;\n data: any[];\n}\n// \nconst MassEmailMaintenanceTable = () => {\n const [emails, setEmails] = useState([]);\n const [dialogObj, setDialogObj] = useState({ msg: '', id: 0 });\n const [reload, setReload] = useState(0);\n const [selectedRows, setSelectedRows] = useState([]);\n const [isModalOpen, setIsModalOpen] = useState(false);\n const [emailFormData, setEmailFormData] = useState(null);\n const [emailType, setEmailType] = useState(null);\n const [emailTypeObject, setEmailTypeObject] = useState({typedescription: '', typeid: null, typeshowaskguestregister: null});\n const [selectedRow, setSelectedRow] = useState({askGuestToRegister: true, emailName: null, emailType: null, id: null, lastSent: null, readOnly: null, selectedCount: null})\n const [askForAuctionSnap, setAskForAuctionSnap] = useState(false);\n const [isEmailEditModalOpen, setIsEmailEditModalOpen] = useState(false);\n const [selectedEmail, setSelectedEmail] = useState();\n const [tabSel, setTabSel] = React.useState(0)\n const [massemailid, setMassemailid] = React.useState(null)\n const [emailTypes, setEmailTypes] = useState([]); // State to store email types for dropdown\n const { eventid } = useParams()\n const [selectionModel, setSelectionModel] = React.useState();\n useAutoEvent(eventid)\n useEffect(() => {\n // Function to fetch data from the API\n const fetchData = async () => {\n try {\n const response = await axios.post('evtmassemail', { eventid: eventid });\n const data = response.data.jsonString ? JSON.parse(response.data.jsonString) : null;\n\n if (data && data.status === \"success\") {\n // Update the emails state with massemaillist\n\n setEmails(data.massemaillist.map(item => ({\n id: item.massemailid,\n emailName: item.massemailname,\n emailType: item.massemailtypedescription,\n askGuestToRegister: item.massemailaskguesttoregister,\n readOnly: item.readonly,\n active: item.active,\n selectedCount: item.massemailselectedcount,\n lastSent: item.massemaillastsent || null,\n })));\n\n // Update email types for the dropdown\n // console.log(data.typelist)\n setEmailTypes(data.typelist);\n }\n } catch (error) {\n console.error('Error fetching data:', error);\n }\n };\n\n fetchData();\n }, [reload]);\n\n useEffect(() => {\n // console.log(emailTypeObject)\n }, [emailTypeObject])\n\n\n const handleOpenEmailEditModal = (email: EmailRow | null) => {\n setSelectedEmail(email); // null for new email, or pass the selected email for editing\n setIsEmailEditModalOpen(true);\n };\n\n const handleCloseEmailEditModal = () => {\n setIsEmailEditModalOpen(false);\n setSelectedEmail(null);\n };\n // Fetch data (replace with your API call)\n\n const handleEdit = (row) => {\n const emailTypeObject = emailTypes.find(t => t.typedescription === row.emailType)\n if (emailTypeObject) {\n setEmailTypeObject(emailTypeObject)\n }\n\n setEmailFormData(row)\n setIsModalOpen(true)\n };\n\n const handleEmailTypeChange = (event) => {\n const emailTypeObject = emailTypes.find(t => t.typeid === event.target.value)\n setEmailTypeObject(emailTypeObject)\n }\n\n const handleAuctionSnapChange = (event) => {\n setAskForAuctionSnap(event.target.checked);\n };\n const handleOpenModal = () => {\n setEmailTypeObject({typedescription: '', typeid: null, typeshowaskguestregister: null})\n setEmailFormData(null);\n setIsModalOpen(true);\n };\n\n const handleCloseModal = () => {\n setIsModalOpen(false);\n };\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n const handleSaveEmail = async () => {\n var body = {\n eventid: eventid,\n massemailname: emailFormData?.emailName,\n massemailtypeid: emailTypeObject.typeid,\n massemailaskguesttoregister: askForAuctionSnap,\n active: true,\n // delete: false\n }\n\n if (emailFormData.id) {\n body['massemailid'] = emailFormData.id\n }\n\n const response = await axios.put('evtmassemail', body);\n setReload(reload+1)\n handleCloseModal();\n };\n const columns: GridColDef[] = [\n \n {\n field: 'emailName',\n headerName: 'Email Name',\n type: 'string',\n width: 200,\n },\n {\n field: 'emailType',\n headerName: 'Type',\n type: 'string',\n width: 250,\n },\n {\n field: 'selectedCount',\n headerName: 'Selected Count',\n type: 'number',\n width: 200,\n },\n \n {\n field: 'totalSent',\n headerName: 'Total Sent',\n type: 'number',\n width: 100,\n },\n {\n field: 'askGuestToRegister',\n headerName: 'Ask Guest to Register',\n type: 'boolean',\n width: 200,\n },\n \n {\n field: 'lastSent',\n headerName: 'Last Sent',\n type: 'dateTime',\n width: 150,\n valueFormatter: (params: GridValueFormatterParams) => params.value ? dayjs(params.value as string).format('MM-DD-YYYY') : '',\n },\n {\n field: 'edit',\n headerName: 'Edit',\n renderCell: (params) => (\n handleEdit(params.row)}>\n \n \n ),\n width: 100\n },\n ];\n\n const handleRowClick = (param : GridRowParams, event: MuiEvent, details: GridCallbackDetails) => {\n console.log(param.row)\n setSelectedRow(param.row)\n }\n\n return (\n
\n

Email Maintenance {selectedRow?.emailName ? ' - ' + selectedRow.emailName : ''}

\n\n \n \n \n \n \n \n \n {tabSel === 0 && (\n <>\n
\n \n \n Add Email\n \n \n\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n onRowClick={handleRowClick}\n />\n
\n \n )}\n {tabSel === 1 && (\n \n )}\n {tabSel === 3 && (\n \n )}\n\n
\n \n\n {/* Popup Modal for Adding/Editing Email */}\n \n {emailFormData ? 'Edit Email' : 'Add New Email'}\n \n setEmailFormData({ ...emailFormData, emailName: e.target.value })}\n />\n {/* Dropdown for Email Types */}\n \n Type of Email\n \n {emailTypes.map((type) => (\n {type.typedescription}\n ))\n }\n \n \n {/* Checkbox for Auction Snap Registration */}\n {emailTypeObject.typeshowaskguestregister && (\n \n }\n label=\"Ask Guest if they want to be registered for Auction Snap\"\n />\n )}\n \n \n \n \n \n \n \n
\n \n );\n};\n\nexport default MassEmailMaintenanceTable;\n","import React from 'react'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle\n} from '@material-ui/core'\n\nexport const ConfirmModal = ({\n isOpen,\n text,\n onClose,\n onConfirm,\n confirmText = 'Confirm',\n title = 'Confirm'\n}) => {\n return (\n \n {title}\n {text}\n \n \n \n \n {confirmText}\n \n \n \n \n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type Sponsor = {\n sponsorid: number\n name: string\n logo: string\n logourl: string\n active: boolean\n}\n\nexport const globalSponsorFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/sponsor', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.sponsors as Sponsor[]\n}\n\nexport const useFetchSponsors = (eventid) => {\n return useQuery(\n ['sponsors', eventid],\n () => globalSponsorFetcher(eventid),\n {\n staleTime: 120000\n }\n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useSponsorsMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/sponsor`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['sponsors'])\n }\n }\n )\n}\n","import { DropzoneDialog } from 'material-ui-dropzone'\nimport { readAsDataURL } from 'promise-file-reader'\nimport React, { useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid\n} from '@material-ui/core'\nimport {Close} from '@material-ui/icons'\n\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { Sponsor } from '../../queries/events/useFetchSponsors'\nimport { useEventState } from '../../slices/eventSlice'\nimport styles from './SponsorsForm.module.css'\nimport { useSponsorsMutation } from './useSponsorsMutation'\nimport Dropzone from \"react-dropzone\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport imageCompression from \"browser-image-compression\";\n\ntype FormData = {\n name: string\n logo: string\n logourl: string\n logoremoved: boolean\n active: boolean\n}\n\ntype Props = {\n isOpen: boolean\n setIsOpen: Function\n sponsor?: Sponsor\n reloadForm?: number\n}\n\nconst UserForm = ({ isOpen, setIsOpen, sponsor, reloadForm }: Props) => {\n const event = useEventState()\n const formMethods = useForm()\n const { setValue, watch, reset } = formMethods\n const watchLogo = watch('logourl')\n const watchLogoData = watch('logo')\n\n const isEdit = Boolean(sponsor)\n\n const createMutation = useSponsorsMutation()\n const editMutation = useSponsorsMutation()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n reset({\n logo: (sponsor ? sponsor.logo : \"\"),\n logourl: (sponsor ? sponsor.logourl : \"\"),\n logoremoved: false,\n name: (sponsor ? sponsor.name : \"\"),\n active: (sponsor ? sponsor.active : true)\n })\n }, [reloadForm])\n\n const onCreateSubmit = async (data: FormData) => {\n const { data: response } = await createMutation.mutateAsync({\n ...data,\n eventid: Number(event.eventId),\n logo: data.logo\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const onEditSubmit = async (data: FormData) => {\n const { data: response } = await editMutation.mutateAsync({\n ...data,\n sponsorid: sponsor.sponsorid,\n eventid: Number(event.eventId),\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const onLogoDrop = async (files: File[]) => {\n const options = {\n maxSize: 1,\n maxWidthOrHeight: 1920,\n useWebWorker: true,\n }\n const compressedFile = await imageCompression(files[0], options)\n\n if (files && files.length > 0) {\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result as string\n setValue('logo', data.split(';base64,')[1])\n }\n fileReader.readAsDataURL(compressedFile)\n }\n }\n\n const clickRemoveLogo = () => {\n setValue(\"logourl\", \"\")\n setValue('logoremoved', true)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {isEdit ? 'Edit' : 'Create'} Sponsor\n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n \n {watchLogo && (\n \n
\n
\n \"sponsor\n
\n
\n )}\n\n \n {watchLogoData && (\n <>\n
New Sponsor Logo
\n
\n \"event\n
\n \n )}\n
\n
\n\n \n {({ getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n acceptedFiles,\n fileRejections\n }) => (\n
\n
Upload Image
\n
\n \n {isDragAccept && (

File is a valid image type. Go ahead and drop.

)}\n {!isDragActive && (

Drag 'n' drop a files here, or click to select a file

)}\n {isDragReject && (

File cannot be dropped. It's an invalid type.

)}\n
Sponsor Images will be displayed with a max size of 400px by 90px. Only .jpg, .jpeg, .png, .gif, and .bmp images under 2MB are allowed.
\n
\n
\n )}\n \n \n \n \n setIsOpen(false)}\n className={styles.cancelButton}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n\nexport default UserForm\n","import { useState } from 'react'\nimport { useQueryClient } from 'react-query'\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport {\n Sponsor,\n useFetchSponsors\n} from '../../queries/events/useFetchSponsors'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport SponsorsForm from '../SponsorsForm'\nimport { useSponsorsMutation } from '../SponsorsForm/useSponsorsMutation'\nimport styles from './EventSponsors.module.css'\nimport {useParams} from \"react-router\";\nimport {useDispatch} from \"react-redux\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {DataGridPremium} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n id: string\n}\n\nconst EventSponsors = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data, isLoading } = useFetchSponsors(Number(eventState.eventId))\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [reloadForm, setReloadForm] = useState(0)\n const [sponsorToEdit, setSponsorToEdit] = useState(null)\n const [sponsorToDelete, setSponsorToDelete] = useState(null)\n const queryClient = useQueryClient()\n\n const editMutation = useSponsorsMutation()\n\n const onDelete = async () => {\n try {\n await editMutation.mutateAsync({\n sponsorid: sponsorToDelete.sponsorid,\n eventid: Number(eventState.eventId),\n delete: true\n })\n setSponsorToDelete(null)\n queryClient.invalidateQueries(['participant'])\n } catch {}\n }\n\n const rows = data\n ? data.map((v) => {\n return {\n ...v,\n id: v.sponsorid\n }\n })\n : []\n\n const columns: any = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n {\n setReloadForm(reloadForm+1)\n setSponsorToEdit(null)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n {\n setReloadForm(reloadForm+1)\n setSponsorToEdit(params.row as Sponsor)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Sponsor Name',\n width: 280\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 150,\n sortable: false,\n renderCell: (params) => (\n setSponsorToDelete(params.row as Sponsor)}>\n \n \n )\n }\n ]\n\n return (\n
\n

Event Sponsors

\n
Upload the logos of event sponsors to be displayed in a rotating slideshow at the bottom of the auction website.
\n \n setSponsorToDelete(null)}\n />\n \n
\n )\n}\n\nexport default EventSponsors\n","import React, { FC } from 'react'\n\nimport { Divider, IconButton, List, ListItem } from '@material-ui/core'\nimport {Add, Launch} from '@material-ui/icons'\nimport QrCodeIcon from '@mui/icons-material/QrCode';\nimport FileCopyIcon from '@mui/icons-material/FileCopy';\n\nimport { saveAs } from \"@progress/kendo-file-saver\";\nimport { QRCode } from \"@progress/kendo-react-barcodes\";\nimport styles from './ViewList.module.css'\n\ntype Props = {\n values: { label: string; value: any, title?: string, hover?:string, islink?: boolean, aligntitle?: string, alignvalue?: string, widthtitle?: number, widthvalue?: number, eventname?: string,\n eventid?: number, active?: boolean}[]\n numOfCols?: number\n containerProps?: Object\n listProps?: Object\n listItemProps?: Object\n}\n\nconst ViewList: FC = ({\n values,\n numOfCols = 3,\n listItemProps = {},\n listProps = {},\n containerProps = {}\n}) => {\n const numOfRows = Math.ceil(values.length / numOfCols)\n\n const cols = Array.from({ length: numOfCols }, (v, i) => {\n return values.slice(numOfRows * i, numOfRows * (i + 1))\n })\n\n const exportQRCode = (eventname: string, eventLink: string, codeRef: any) => {\n console.log(codeRef)\n if (!codeRef || !codeRef.current) {\n return;\n }\n\n codeRef.current.exportImage().then((dataURI) => {\n saveAs(dataURI, eventname + \".png\");\n });\n }\n\n return (\n
\n {cols.map((col, i) => {\n // console.log(col)\n return (\n
\n \n {col.map(({ label, value, title, hover, islink, aligntitle, alignvalue, widthtitle, widthvalue, eventname, eventid, active}, i) => {\n if (islink) {\n const qrcode = React.createRef();\n return (\n \n \n \n \n {title}:\n \n \n {} }\n size=\"small\"\n title=\"Open link in new window\"\n >\n \n \n \n {navigator.clipboard.writeText(value)} }\n size=\"small\"\n title=\"Copy link to clipboard\"\n >\n \n \n {exportQRCode(eventname, value, qrcode)} }\n size=\"small\"\n title=\"Download QR Code\"\n >\n \n \n \n \n )\n }\n else {\n return (\n \n {label}\n \n {Boolean(value) === false && value !== 0 ? 'N/A' : value}\n \n \n )\n }\n })}\n \n {i !== cols.length - 1 && }\n
\n )\n })}\n
\n )\n}\n\nexport default ViewList\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type Events = {\n rownumber: number\n eventid: number\n eventname: string\n eventcode: string\n startdate: string\n enddate: string\n eventlink: string\n numofregisteredbidders: number\n numofpendingbidders: number\n raised: number\n openbids: number\n openbidsamount: number\n pendingamount: number\n collectedamount: number\n active: boolean\n}\n\nexport type EventDetail = {\n value: string\n title: string\n hover: string\n islink: boolean\n aligntitle: string\n alignvalue: string\n widthtitle: number\n widthvalue: number\n}\n\nexport type EventAuctions = {\n active: boolean\n eventid: number\n eventname: string\n eventdetail: EventDetail[]\n}\n\nexport type EventsData = {\n validauction: boolean\n validevent: boolean\n newbuttontext: string\n events: Events[]\n eventauctions: EventAuctions[]\n}\n\nexport const globalEventsFetcher = async () => {\n const { data } = await axios.get('/events')\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData.events as Events[]\n}\n\nexport const globalFetcher = async () => {\n const { data } = await axios.get('/events')\n const parsedData = JSON.parse(data.jsonString)\n // console.log(parsedData)\n return parsedData as EventsData\n}\n\nexport const useFetchEvents = () => {\n return useQuery(\n ['events'],\n () => globalEventsFetcher(),\n {\n staleTime: 120000,\n placeholderData: [],\n keepPreviousData: true\n }\n )\n}\n\nexport const useFetchEventData = () => {\n return useQuery(\n ['eventdata'],\n () => globalFetcher(),\n {\n staleTime: 120000,\n // placeholderData: {},\n keepPreviousData: true\n }\n )\n}\n","export const getConfig = () => {\n if (window.location.hostname === 'localhost') {\n console.log('Setting up for Local')\n return {\n apiUrl: 'https://stagingapi.auctionsnap.com:8443',\n auctionSnapURL: 'localhost:3000'\n }\n }\n else if (window.location.hostname === 'testadmin.auctionsnap.com') {\n console.log('Setting up for Dev')\n return {\n apiUrl: 'https://testapi.auctionsnap.com:8443',\n auctionSnapURL: 'https://testapp.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n else if (window.location.hostname === 'stagingadmin.auctionsnap.com') {\n console.log('Setting up for Staging')\n return {\n apiUrl: 'https://stagingapi.auctionsnap.com:8443',\n auctionSnapURL: 'https://stagingapp.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n else if (window.location.hostname === 'admin.auctionsnap.com') {\n console.log('Setting up for Live')\n return {\n apiUrl: 'https://api.auctionsnap.com:8443',\n auctionSnapURL: 'https://app.auctionsnap.com',\n version: 'AuctionSnap Admin 1.0.10',\n }\n }\n}\n","import dayjs from 'dayjs'\nimport React, { useEffect, useState } from 'react'\nimport { Link, useHistory } from 'react-router-dom'\nimport {Add, Launch} from '@material-ui/icons'\n\nimport {\n Button,\n Card,\n CardActions,\n CardContent, Dialog, DialogActions, DialogContent, DialogContentText,\n FormControlLabel, IconButton, List, ListItem,\n Switch\n} from '@material-ui/core'\n\nimport ViewList from '../../components/common/ViewList'\nimport {EventAuctions, Events, useFetchEventData, useFetchEvents} from '../../queries/events/useFetchEvents'\nimport { formatMoney } from '../../util/formatHelpers'\nimport styles from './HomePage.module.css'\nimport {getConfig} from \"../../AppConfig\";\nimport {\n useEditEventSettings,\n useUpdateEventClone,\n useUpdateEventStatus\n} from \"../AuctionSettingsForm/useEditEventSettings\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {EventState, setEvent} from \"../../slices/eventSlice\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport {useDispatch} from \"react-redux\";\nimport {useAuthToken} from \"../../slices/authSlice\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport * as events from \"events\";\nimport {useMutation, useQueryClient} from \"react-query\";\nimport axios from \"axios\";\n\nconst HomePage = () => {\n let { data } = useFetchEventData()\n const queryClient = useQueryClient()\n const editMutation = useEditEventSettings()\n const editStatusMutation = useUpdateEventStatus()\n const editCloneMutation = useUpdateEventClone()\n const [validAuction, setValidAuction] = useState(true)\n const [validEvent, setValidEvent] = useState(true)\n const [newbuttontext, setnewbuttontext] = useState('')\n const [eventAuctionsData, setEventAuctionsData] = useState(null)\n const localActiveOnly = localStorage.getItem('activeOnly')\n const history = useHistory()\n const dispatch = useDispatch()\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [dialogActivateMsg, setActivateDialogMsg] = React.useState(\"\");\n const [isLoading, setIsLoading] = React.useState(true);\n const [activeEvent, setActiveEvent] = React.useState({eventid: 0, active: true});\n const [dialogCloneMessage, setDialogCloneMsg] = React.useState(\"\");\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n const { auctionSnapURL } = getConfig()\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const handleChange = (checked) => {\n localStorage.setItem('activeOnly', checked)\n\n if (data && data.eventauctions) {\n const filteredEvents = (checked ? data?.eventauctions?.filter((e) => e.active === true) : data.eventauctions)\n setEventAuctionsData(filteredEvents.map((eventItem) => {\n return {...eventItem}\n }))\n }\n else {\n setEventAuctionsData(null)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n setActivateDialogMsg(\"\")\n setDialogCloneMsg(\"\")\n }\n\n const deleteDialog = () => {\n editMutation.mutate({\n delete: true,\n eventid: activeEvent.eventid\n })\n setDialogMsg(\"\")\n }\n\n const cloneContinueDialog = () => {\n editCloneMutation.mutate(\n {\n eventid: activeEvent.eventid\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n }\n else {\n setDialogCloneMsg(\"\")\n\n const eventPath = '/auction/' + json.eventid\n history.push(eventPath)\n const eventPathSettings = '/auction/' + json.eventid + '/settings'\n history.push(eventPathSettings)\n }\n }\n }\n )\n }\n\n const activateDialog = () => {\n editStatusMutation.mutate({\n active: !activeEvent.active,\n eventid: activeEvent.eventid\n })\n setActivateDialogMsg(\"\")\n }\n\n useEffect(() => {\n if (data && data.eventauctions) {\n setValidAuction(data.validauction)\n setValidEvent(data.validevent)\n setnewbuttontext(data.newbuttontext)\n const filteredEvents = ('true' === localActiveOnly ? data?.eventauctions?.filter((e) => e.active === true) : data.eventauctions)\n setEventAuctionsData(filteredEvents.map((eventItem) => {\n return {...eventItem}\n }))\n }\n else {\n setEventAuctionsData(null)\n }\n setIsLoading(false)\n }, [data])\n\n return (\n
\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n Clicking the continue button will clone the full event.\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogActivateMsg}\n \n \n \n \n \n \n \n \n\n
\n {\n history.push('eventnew')\n }}>\n Add New {newbuttontext}\n \n {handleChange(event.target.checked)}}\n />\n }\n />\n
\n\n\n {eventAuctionsData?.map((event, i) => {\n console.log(event)\n\n const eventId = event.eventid\n const auctionPath = 'auction/' + eventId\n const eventPath = 'event/' + eventId\n let liValues = event.eventdetail.map((ed) => {\n return {\n label: ed.title,\n value: ed.value,\n title: ed.title,\n hover: ed.hover,\n islink: ed.islink,\n aligntitle: ed.aligntitle,\n alignvalue: ed.alignvalue,\n widthtitle: ed.widthtitle,\n widthvalue: ed.widthvalue,\n eventname: event.eventname,\n eventid: event.eventid,\n active: event.active,\n }\n })\n\n return (\n \n \n

{event.eventname}

\n \n
\n \n {validAuction &&\n <>\n {\n history.push(auctionPath)\n }}>\n Auction\n \n \n }\n {validEvent &&\n {\n history.push(eventPath)\n }}>\n Event\n \n }\n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n setDialogCloneMsg(\"clone\")\n }}>\n Clone\n \n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n const message = (event.active ? \"Are you sure you want to disable this event?\" : \"Are you sure you want to enable this event?\" )\n setActivateDialogMsg(message)\n }}\n size=\"small\"\n variant=\"contained\"\n className={styles.deleteBtn}>\n {event.active && \"Disable\"}\n {!event.active && \"Enable\"}\n \n \n \n {!event.active &&\n {\n setActiveEvent({eventid: event.eventid, active: event.active})\n setDialogMsg(\"Are you sure you want to delete this event?\")\n }}\n size=\"small\"\n variant=\"contained\"\n className={styles.deleteBtn}>\n Delete\n \n }\n \n
\n )\n })}\n
\n )\n}\n\nexport default HomePage\n","import dayjs from 'dayjs'\nimport React, { useEffect, useState } from 'react'\nimport { Link, useHistory } from 'react-router-dom'\nimport {Add, Launch} from '@material-ui/icons'\n\nimport {\n Button,\n Card,\n CardActions,\n CardContent, Dialog, DialogActions, DialogContent, DialogContentText,\n FormControlLabel, IconButton, List, ListItem,\n Switch\n} from '@material-ui/core'\n\nimport ViewList from '../../components/common/ViewList'\nimport { Events, useFetchEvents } from '../../queries/events/useFetchEvents'\nimport { formatMoney } from '../../util/formatHelpers'\nimport styles from './TermsPage.module.css'\nimport {getConfig} from \"../../AppConfig\";\nimport {\n useEditEventSettings,\n useUpdateEventClone,\n useUpdateEventStatus\n} from \"../AuctionSettingsForm/useEditEventSettings\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport {useDispatch} from \"react-redux\";\nimport {logout, useAuthState, useAuthToken} from \"../../slices/authSlice\";\nimport { saveAs } from \"@progress/kendo-file-saver\";\nimport { QRCode } from \"@progress/kendo-react-barcodes\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {useSponsorsMutation} from \"../SponsorsForm/useSponsorsMutation\";\nimport {useTermsMutation} from \"./useTermsMutation\";\n\nconst TermsPage = () => {\n let { data } = useFetchEvents()\n const event = useEventState()\n\n const auth = useAuthState()\n\n const termsEdit = useTermsMutation()\n\n const editMutation = useEditEventSettings()\n const editStatusMutation = useUpdateEventStatus()\n const editCloneMutation = useUpdateEventClone()\n const qrcode = React.createRef();\n const [eventsData, setEvents] = useState(null)\n const localActiveOnly = localStorage.getItem('activeOnly')\n const history = useHistory()\n const dispatch = useDispatch()\n const [dialogMsg, setDialogMsg] = React.useState(\"\");\n const [dialogActivateMsg, setActivateDialogMsg] = React.useState(\"\");\n const [qrCodeLink, setQRCodeLink] = React.useState(\"\");\n const [terms, setTerms] = React.useState(\"\");\n const [isLoading, setIsLoading] = React.useState(true);\n const [activeEvent, setActiveEvent] = React.useState();\n const [dialogCloneMessage, setDialogCloneMsg] = React.useState(\"\");\n const authToken = useAuthToken()\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n\n // useEffect(() => {\n // setEvents(null)\n // return () => {\n // setEvents(null)\n // }\n // }, [])\n\n useEffect(() => {\n console.log(auth)\n const termsData = '

TERMS OF SERVICE

This Terms of Service (this “Terms of Service”) constitutes a legally binding agreement between you and Nashotah Management, Inc., d/b/a DonorSnap™ (“Company,” “we,” “us” or “our”) governing your use of the Company SaaS. The “Company SaaS” means the Company software as a service made available to you by Company, accessible via the Internet, that provides information and functionality related to donor relationship management. The “Company Software” means the Company computer programs and applications made available to you by Company that are specifically designed to access and use the Company SaaS from a computer, mobile, or other device.

PLEASE READ THIS TERMS OF SERVICE CAREFULLY BEFORE USING OR ACCESSING THE COMPANY SAAS OR THE COMPANY SOFTWARE. BY USING OR ACCESSING THE COMPANY SAAS OR THE COMPANY SOFTWARE, YOU ACCEPT AND AGREE TO THIS TERMS OF SERVICE.

IF YOU ARE ACCEPTING THIS TERMS OF SERVICE ON BEHALF OF A NONPROFIT, A BUSINESS, OR ANOTHER ENTITY, YOU REPRESENT AND WARRANT THAT YOU HAVE FULL AUTHORITY TO ACT FOR AND TO BIND THAT ENTITY TO THIS TERMS OF SERVICE, IN WHICH CASE THE TERMS “YOU” AND “YOUR” REFER TO SUCH ENTITY. IF YOU DO NOT HAVE SUCH AUTHORITY, YOU SHALL NOT USE OR ACCESS THE COMPANY SAAS OR THE COMPANY SOFTWARE.

1.  Orders.

An “Order” means the electronic order or sign up page issued by us and accepted by you that lists your contact information (including your organization name and primary contact name with email address), the Company SaaS or Company Software to be made available by Company to you, the fees to be paid by you, and the payment method. All Orders are subject to this Terms of Service.

2.  Company SaaS and Company Software.

2.1  Limited Access and Use. Subject to the terms of this Terms of Service, Company hereby grants each of you during the Term a nonexclusive, non-transferable, revocable, limited right to (a) access and use via the Internet the Company SaaS to manage your donor relationships, and (b) install and use the Company Software solely in connection with the permitted access to and use of the Company SaaS. You agree to inform each of your users of the limitations on the use of the Company SaaS. You are responsible for all activity associated with your user logins and for all activity associated with your account and your users’ logins. Any breach of this Terms of Service by any of your users is a breach of this Terms of Service by you. During the Term, we grant you a limited, revocable right to use the Knowledge Base Content (defined below) solely for the purposes of understanding the capabilities, functions, limitations, and requirements of the Company SaaS and the Company Software as permitted by this Terms of Service. “Knowledge Base Content” means the user support pages, training webinars, and user support materials provided or made generally available for no additional fee by Company from time to time that describe the features and functions of the Company SaaS and the Company Software, including any changes that Company may provide from time to time.
2.2  Obligations Related to Access and Use. You shall not directly or indirectly through or with one or more other persons or entities: (a) decompile, disassemble, or reverse engineer any Company Technology (defined below in Section 2.4) to: (i) build a competitive product or service, (ii) build a product or service using similar ideas, features, functions, or graphics of any Company Technology, or (iii) copy any ideas, features, functions, or graphics of any Company Technology; (b) use any Company Technology to develop a competing service; (c) remove any copyright, trademark, proprietary rights, disclaimer, or warning notice included on or embedded in any part of any Company Technology (including any screen displays, etc.); or (d) permit or allow any person or entity other than your users to access or use any Company Technology or any logins assigned to your users. If you or your affiliates are or become a competitor of Company as determined by Company in Company’s sole discretion, this Terms of Services will terminate immediately, and you shall make no further use of any Company Technology.
2.3  Other Restrictions on Access and Use. You represent and warrant that you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and that you are not listed on any U.S. government list of prohibited or restricted parties. In addition, when using or accessing the Company SaaS or installing or using the Company Software, you shall not directly or indirectly through or with one or more other persons:
  a.  Post, provide, input, or transmit any content that is infringing, libelous, defamatory, abusive, offensive, obscene, pornographic, or violates any law, or right of Company or any third party;
  b.  Post, provide, input, or transmit any content that contains social security numbers, patient numbers, bank account numbers, drivers’ license numbers, credit card numbers, or any other similar sensitive personal information.
  c.  Post, provide, input, or transmit software viruses or any other computer code, file, or program designed to interrupt, destroy, or limit the features or functionality of any software, hardware, or telecommunications equipment;
  d.  use any robot, spider, scraper, or other automated means to access or use the Company SaaS for any purpose without our express written permission, or otherwise take any action that may impose an unreasonable or disproportionately large load on our infrastructure;
  e.  bypass any measures we may use to prevent or restrict use of the Company SaaS or the Company Software, or otherwise interfere or tamper with our administration or the proper working of the Company SaaS or the Company Software;
  f.  falsify information you disclose to us;
  g.  take any action that is improper, unfair, or otherwise adverse to the operation of the Company SaaS or the Company Software; or
  h.  use, or permit the use of, any login to the Company SaaS or the Company Software by more than one individual person.
2.4  Company Technology. Except for the limited rights granted in Section 2.1 (Limited Access and Use), we and our licensors reserve all right, title, and interest, express or implied, in and to the Company SaaS, the Company Software, System Data, Knowledge Base Content, our private webinar and other training content, our policies, our software and systems, our web applications, tools, and other application services, and our logos, marks, data, information, and other content we provide (collectively, the “Company Technology”). “System Data” means technical, configuration, statistical, utilization, and other information related to the use of the Company Technology.
2.5  Feedback. “Feedback” means suggestions, comments, requests, improvements, modifications, defect, bug and error reports, and other feedback provided by you with respect to the Company Technology or any of our offerings. Feedback is voluntary, and we are not required to hold Feedback in confidence. You hereby grant Company, on behalf of yourself and your users, an irrevocable, non-exclusive, perpetual, royalty-free, worldwide license (with the right to assign and sublicense) to use, display, copy, distribute, make derivative works of, sell, and import such Feedback and products and services that incorporate, are based upon, or rely upon such Feedback.
2.6  Your Data. As between you and us, you own all data and other content (other than Company Technology and Feedback) (a) input by you, your users, or both, into the Company SaaS or the Company Software, (b) you, your users, or both, provide to us for input into the Company SaaS or the Company Software, or (c) you, the your users, or both, collect from one or more third parties in connection with the permitted use of the Company SaaS or the Company Software (collectively, “Your Data”). You hereby grant Company, on behalf of yourself and your users, a nonexclusive, royalty-free, fully paid-up, irrevocable, perpetual, worldwide license (with the right to assign and sublicense) to use, display, copy, distribute, modify, make derivative works of, and import Your Data, for (i) purposes of enabling us to offer and perform our services and fulfill our obligations hereunder, and (ii) any other purpose that does not include use of the names, full mailing addresses, phone numbers, or email addresses of you, your donors, or your users. You may download Your Data from the Company SaaS during the Term only by use of the tools provided in the Company SaaS to do so. You warrant to us that: (x) you have obtained all rights, consents, and permissions necessary to provide Company the licenses granted in this Terms of Service, and (y) you shall comply with all applicable laws with respect to the collection, use, retention, and disposal of all of Your Data. Company may remove any of Your Data following termination of this Terms of Service or an Order, or for any reason related to suspension of your access to any Company Technology.
2.7  Suspension. We may suspend your access to Company Technology (in whole or in part): (a) to prevent damages to, or degradation of, the Company Technology; (b) to comply with any law, court order, or governmental request; (c) to protect the interests of Company, or (d) if you fail to make payments when due or otherwise violate the terms of this Terms of Service. We will use reasonable efforts to provide you with notice before or promptly following any suspension. We will restore access as soon as the event giving rise to suspension has been resolved. In addition, we may suspend at any time your access to those portions of the Company SaaS or the Company Software that are identified by us as in beta. This Terms of Service is not to be construed as imposing any obligation on us to monitor Your Data or your use of the Company SaaS or the Company Software.

3.  Indemnification.

To the extent permitted under applicable law, you shall indemnify, defend, and hold harmless Company and its affiliates and subsidiaries and successors and their respective officers, directors, employees, representatives, vendors, licensors, independent contractors, and agents (each an “Indemnified Party”) from and against any and all claims, losses, liability, damages, costs, fees, fines, penalties, charges, and expenses (including reasonable out-of-pocket expenses and legal fees) arising out of or relating to your use of the Company Technology, your breach of any representations, warranties or obligations under this Terms of Service, your violation of a law, or your infringement of the intellectual property rights of Company or a third party.

4.  Professional Services.

We may provide data conversion, training, support, or other consulting services (collectively, “Professional Services”). If we agree to provide Professional Services to you, we may describe such services in an Order. We may provide estimates of fees in connection with Professional Services. All estimates are subject to change and the final Professional Services fees, if any, will be determined on a time-and-materials basis at our then-current rates.

5.  Fees and Payment.

Unless otherwise provided in an Order, you shall pay us the fees as stated in the applicable Order in advance. For fees and charges not otherwise paid in advance, you shall pay us the amounts properly listed on our invoice submitted to you within the time frame listed on such invoice. Payments not made within such time period are subject to late charges equal to the lesser of (a) one and one-half percent (1.5%) per month of the overdue amount, or (b) the maximum amount permitted under law, plus in either case, costs of collection, and if applicable, reasonable legal fees. We may adjust fees applicable to a renewal term with notice to you prior to the start of the renewal term. You are responsible for all taxes associated with your access to and use of the content generated by the Company SaaS, other than taxes based solely upon the income of Company. You shall make all payments in U.S. dollars. If you request or require a number of contacts in excess of the limit specified in an Order, we may charge and you shall pay an additional fee.

6.  Term and Termination.

The term of this Terms of Service (the “Term”) commences when you accept the Order incorporating this Terms of Service and continues until terminated. The initial term of an Order and each subsequent renewal term of an Order will automatically renew on the same monthly or annual basis as the initial term of an Order, unless a party provides notice of nonrenewal to the other party in writing at least 10 days prior to the end of the then-current term. Company may terminate this Terms of Service upon notice to you, if you violate this Terms of Service. You may terminate an Order if Company fails to cure its breach of this Terms of Service within 30 days of your notice to Company of the breach. If you terminate an Order for any reason other than our uncured breach, or if we terminate due to your violation of this Terms of Service, you will not receive any refund of prepaid fees and you shall pay us the fees not otherwise prepaid for the terminated portion the Order term. Either party may terminate this Terms of Service effective upon notice to the other party, if no Order is then in effect.

7.  Disclaimer of Warranties.

THE COMPANY TECHNOLOGY AND THE PROFESSIONAL SERVICES ARE PROVIDED “AS IS” AND “AS AVAILABLE,” WITH ALL FAULTS, AND WITHOUT WARRANTIES OF ANY KIND. COMPANY AND ITS VENDORS AND LICENSORS DISCLAIM ALL REPRESENTATIONS, WARRANTIES AND CONDITIONS, EXPRESS AND IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT, QUALITY OF INFORMATION, TITLE, AND NON-INFRINGEMENT. COMPANY MAKES NO WARRANTIES AND WILL HAVE NO RESPONSIBILITY WITH RESPECT TO THE RESULTS OF ANY ACTION YOU OR ANY THIRD PARTY MAY TAKE BASED ON YOUR DATA OR YOUR USE OF ANY COMPANY TECHNOLOGY OR PROFESSIONAL SERVICES. COMPANY WILL HAVE NO LIABILITY FOR ANY CLAIM ARISING FROM YOUR USE OF THE COMPANY TECHNOLOGY, OR ANY INFORMATION OBTAINED FROM THE COMPANY TECHNOLOGY OR RESULT OF ANY OF YOUR ACTIONS BASED UPON INFORMATION OBTAINED FROM THE COMPANY TECHNOLOGY. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY COMPANY CREATES ANY WARRANTIES OR IN ANY WAY INCREASES THE SCOPE OF COMPANY’S OBLIGATIONS UNDER THIS TERMS OF SERVICE. THE COMPANY TECHNOLOGY MAY BE USED TO ACCESS AND TRANSFER INFORMATION OVER THE INTERNET. YOU ACKNOWLEDGE AND AGREE THAT COMPANY AND ITS VENDORS AND LICENSORS DO NOT OPERATE OR CONTROL THE INTERNET AND THAT (A) VIRUSES, WORMS, TROJAN HORSES, OR OTHER UNDESIREABLE DATA OR SOFTWARE; OR (B) UNAUTHORIZED THIRD PARTIES (e.g. HACKERS) MAY ATTEMPT TO OBTAIN ACCESS TO AND DAMAGE YOUR DATA, WEBSITES, COMPUTERS, OR NETWORKS. COMPANY WILL NOT BE LIABLE FOR ANY SUCH ACTIVITIES NOR WILL SUCH ACTIVITIES CONSTITUTE A BREACH BY COMPANY OF ITS OBLIGATIONS UNDER THIS TERMS OF SERVICE OR ANY OTHER AGREEMENT BETWEEN YOU AND COMPANY.

IN CONNECTION WITH THIS TERMS OF SERVICE, THE COMPANY SAAS, THE COMPANY SOFTWARE, OR THE PROFESSIONAL SERVICES, YOU MAY ACCESS AND BE PROVIDED INFORMATION REGARDING PERSONS AND ENTITIES OTHER THAN COMPANY (“THIRD PARTY INFORMATION”). ALL THIRD PARTY INFORMATION IS PROVIDED AS-IS, WITHOUT REPRESENTATIONS, WARRANTIES OR CONDITIONS OF ANY KIND. COMPANY MAKES NO WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, RELATING TO ANY THIRD PARTY INFORMATION, OR AS TO THE ACCURACY, CURRENCY, OR COMPREHENSIVENESS OF THE SAME.

The company saas and company software may contain links to and integrations with third party websites, applications and services (“Third Party Services”), and you agree that we provide links to and integrations with such Third Party Services solely as a convenience and have no responsibility for the content or availability of such Third Party Services, and that we do not endorse such Third Party Services (or any products or other services associated therewith). When you USE THE COMPANY SAAS OR COMPANY SOFTWARE TO SOLICIT OR OBTAIN A DONATION, we will use a THRID PARTY SERVICE DESIGNATED BY YOU AND INTEGRATED WITH THE COMPANY SAAS to process the payment. We do not collect THE CORRESPONDING credit card number, expiration date, or pin number. The transaction details we retain are those details that allow us to verify THE transaction, including price, currency, date of payment, payment method, name, and account name. Access to AND USE OF any Third Party Services linked to or integrated with the company saas or the company software is at your own risk, and we are not responsible for the accuracy, security, or reliability of any information, data, opinions, advice or statements provided by such Third Party Services. Your use of such Third Party Services will be subject to the terms applicable to each such Third Party Services. You may not post a link that directs users to any content or information that would constitute a violation of these Terms of Service or any terms applicable to such Third Party Services.

8.  Limitation of Liability.

NEITHER COMPANY NOR ANY INDEMNIFIED PARTY WILL HAVE ANY LIABILITY TO YOU OR ANY THIRD PARTY FOR ANY INDIRECT DAMAGES, INCLUDING LOSS OF PROFITS, SALES, BUSINESS, OR DATA, OR INCIDENTAL, CONSEQUENTIAL, OR SPECIAL LOSS DAMAGES, INCLUDING EXEMPLARY AND PUNITIVE DAMAGES OF ANY KIND OR NATURE RESULTING FROM OR ARISING OUT OF THIS TERMS OF SERVICE, THE COMPANY SAAS, THE COMPANY SOFTWARE, OR THE PROFESSIONAL SERVICES. THE TOTAL LIABILITY OF COMPANY AND THE INDEMNIFIED PARTIES TO YOU OR ANY THIRD PARTY ARISING OUT OF THIS TERMS OF SERVICE, THE COMPANY TECHNOLOGY, THE COMPANY SOFTWARE, AND THE PROFESSIONAL SERVICES, REGARDLESS OF WHETHER UNDER A CONTRACT, TORT, OR OTHER THEORY OF LIABILITY, FOR ANY AND ALL CLAIMS OR TYPES OF DAMAGES, WILL NOT EXCEED THE TOTAL FEES PAID BY YOU TO US FOR USE OF AND ACCESS TO THE COMPANY SAAS DURING THE TWELVE MONTHS IMMEDIATELY PRECEDING THE EVENT GIVING RISE TO LIABILITY.

9.  General Provisions.

9.1  CCPA. Capitalized terms used in this section have the meaning given in the CCPA, specifically Cal. Civ. Code §1798.140, and in the caption to this Terms of Service. CCPAmeans Cal. Civ. Code §§ 1798.100-1798.199, including (a) any rules and regulations promulgated thereunder, and (b) any subsequent amendment or superseding statute. With respect to Personal Information Processed by us on behalf of you pursuant to this Terms of Service (“CCPA Data”), we are a Service Provider, and you are a Business. Notwithstanding Section 2.6, we shall not retain, use, disclose, or further Collect or Sell, the CCPA Data for any purpose other than for the specific purpose of performing our services for you. If you receive a Verifiable Consumer Request to delete a Consumer’s CCPA Data pursuant to the CCPA, you shall notify us, and we shall thereafter delete such Personal Information from our records to the extent required under the CCPA. Each party shall comply with its respective obligations under the CCPA.
9.2  Certain Communications. You agree to receive communications from us, including via mail, certified mail, fax, email, text message, and phone call. Communications from Company and its affiliated companies may include, but are not limited to, (a) operational communications concerning your account, the Professional Services, the Company Software, and the Company SaaS, (b) updates concerning new and existing features of any Company Technology, and (c) news concerning Company and industry developments. Standard messaging charges applied by your carrier may apply to messages we send.
9.3  Modifications. Company may modify and update this Terms of Service from time to time by providing you notice of such modification or update. Such modifications and updates will be considered accepted and binding on you as provided in such notice.
9.4  Waivers. No failure or delay in exercising any right or remedy or requiring the satisfaction of any condition under this Terms of Service, and no course of dealing between you and Company, operates as a waiver or estoppel by Company of any right, remedy, or condition. A waiver made by Company in writing on one occasion is effective only in that instance and only for the purpose that it is given and is not to be construed as a waiver on any future occasion or against any other person. To the extent that any course of dealing, act, omission, failure, or delay in exercising any right or remedy by Company under this Terms of Service constitutes the election of an inconsistent right or remedy, that election does not either constitute a waiver of any right or remedy, or limit or prevent the subsequent enforcement by Company of any provision of this Terms of Service.
9.5  Assignment. Without the prior written consent of Company, you shall neither (a) assign, whether voluntarily or involuntarily, this Terms of Service or any of your rights under this Terms of Service, nor (b) delegate any performance under this Terms of Service. Any purported assignment or delegation in violation of this section will be void. We may assign this Terms of Service and any or all of our rights and delegate any or all of our obligations hereunder by providing notice to you. This Terms of Service binds and benefits you and Company and each of your and our respective permitted successors and assigns.
9.6  Governing Law. The laws of the State of Wisconsin govern all matters arising out of or relating to this Terms of Service, including, without limitation, its interpretation, construction, performance, and enforcement, without giving effect to such state’s conflicts of law principles or rules of construction concerning the drafter hereof. You hereby irrevocably and unconditionally submit to the jurisdiction of the federal and state courts located in Waukesha County, Wisconsin for the purpose of any suit, action, or other proceeding arising out of or based upon this Terms of Service, which courts are the exclusive forum for any such suit, action, or other proceeding. If we are the prevailing party in any such dispute, we may recover our reasonable attorneys’ fees related to such dispute.
9.7  Severability. If any provision of this Terms of Service is held to be invalid, illegal, or unenforceable, the validity, legality, and enforceability of the remaining provisions of this Terms of Service will not be affected or impaired.
9.8  Entire Agreement. This Terms of Service, together with the Order(s), is the complete and exclusive expression of the parties’ agreement on the matters contained in this Terms of Service. All prior and contemporaneous negotiations, term sheets, letters, memoranda, and other discussions and agreements, either oral or in writing, between the parties on the matters contained in this Terms of Service are expressly merged into and superseded by this Terms of Service. No provision of this Terms of Service may be explained, supplemented, or qualified through evidence of trade usage or a prior course of dealings. In entering into this Terms of Service, you have not relied on any statement, representation, or warranty, or agreement of Company or any other party except for those expressly contained in this Terms of Service. In the event of a conflict between an Order and this Terms of Service, this Terms of Service will govern, unless the Order specifically identifies the provision in this Terms of Service being superseded and the Order is signed by us.
9.9  Relationship of the Parties. Each party is an independent contractor with respect to the other party and is not an employee, joint venture, partner, or agent of the other party. Neither party has the authority to enter into any contract in the name of or on behalf of the other party, solely by reason of this Terms of Service.
9.10  Headings. The descriptive headings of the articles, sections, and subsections of this Terms of Service are for convenience of reference only. They do not constitute a part of this Terms of Service and do not affect its construction or interpretation.
9.11  Effect of Termination. The following sections survive any termination or expiration of this Terms of Service: Section 2.2 (Obligations Related to Access and Use), Section 2.4 (Company Technology). Section 2.5 (Feedback), Section 2.6 (Your Data), Section 3 (Indemnification), Section 5 (Fees and Payment), Section 7 (Disclaimer of Warranties), Section 8 (Limitation of Liability), and Section 9 (General Provisions). Any termination of this Terms of Service will not relieve us of any remedy due to your breach of a term of this Terms of Service prior to such termination.
9.12  How to Contact Company.

You can contact us via email at sales@donorsnap.com or at the following address:
 Nashotah Management, Inc., DBA DonorSnap
 555 South Industrial Drive, Suite 6
 Hartland, WI 53029-2333

To be effective, any notice to Company given in connection with this Terms of Service must be in writing and (a) delivered in person, (b) mailed by certified or registered mail, return receipt requested, postage prepaid, (c) sent by same-day messenger or nationally recognized overnight delivery service, with all fees prepaid, or (d) sent by email, with acknowledgment of receipt by either the intended recipient or other third party confirmation of delivery service (with an automatic “read receipt” not constituting receipt of an email). A notice to Company is effective on the earlier of (x) the date it is delivered in person, (y) the date it is delivered to Company as indicated by the date of the acknowledgement or signed receipt, or (z) with respect to an email, the date on which the email is confirmed, provided that if such date is not a business day or the confirmation time is after 5:00 p.m. local time of the recipient on a business day, then the following business day. We may update our email address or physical address at any time with notice to you or by posting the updated information to this page. Any notices to you shall be provided to you in accordance with Section 9.1 or given to you via the email address or physical address you provide to Company during the Order process. Notices to you are effective when Company sends such notice.

* * * * *

Last Updated: 06/01/2021

'\n setTerms(termsData)\n }, [auth])\n\n const handleChange = (event) => {\n localStorage.setItem('activeOnly', event.target.checked)\n if (event.target.checked) {\n if (data && data.length > 0) {\n setEvents(data?.filter((e) => e.active === true))\n }\n } else {\n setEvents(data)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n setActivateDialogMsg(\"\")\n setDialogCloneMsg(\"\")\n }\n\n const deleteDialog = () => {\n editMutation.mutate({\n delete: true,\n eventid: activeEvent.eventid\n })\n setDialogMsg(\"\")\n }\n\n const cloneContinueDialog = () => {\n editCloneMutation.mutate(\n {\n eventid: activeEvent.eventid\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n }\n else {\n setDialogCloneMsg(\"\")\n\n const eventPath = '/auction/' + json.eventid\n history.push(eventPath)\n const eventPathSettings = '/auction/' + json.eventid + '/settings'\n history.push(eventPathSettings)\n }\n }\n }\n )\n }\n\n const activateDialog = () => {\n editStatusMutation.mutate({\n active: !activeEvent.active,\n eventid: activeEvent.eventid\n })\n\n setActivateDialogMsg(\"\")\n }\n\n\n const redirectAgree = () => {\n termsEdit.mutateAsync({})\n history.push('/home')\n }\n\n const redirectToLogin = () => {\n dispatch(logout())\n history.push('/auth/login')\n }\n\n useEffect(() => {\n if (data) {\n const filteredEvents = ('true' === localActiveOnly ? data.filter((e) => e.active === true) : data)\n setEvents(filteredEvents.map((eventItem) => {\n const qrcode = React.createRef();\n return {codeRef: qrcode, ...eventItem}\n }))\n }\n else {\n setEvents(null)\n }\n setIsLoading(false)\n }, [data])\n\n const exportQRCode = (eventname: string, eventLink: string, codeRef: any) => {\n if (!codeRef || !codeRef.current) {\n return;\n }\n\n codeRef.current.exportImage().then((dataURI) => {\n saveAs(dataURI, eventname + \".png\");\n });\n };\n\n return (\n
\n \n
\n
\n
\n \n \n
\n
\n\n
\n )\n}\n\nexport default TermsPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useTermsMutation = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/termsofservice`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['termsofservice'])\n }\n }\n )\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './TagsTable.module.css'\nimport { useCreateTag } from './useCreateTag'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const TagsForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateTag()\n const title = gridParams ? \"Edit Tag\" : \"Create Tag\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"tag\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateTag = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useLocationTags = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport { TagsForm } from './TagsForm'\nimport styles from './TagsTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst TagsTable = (tags) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = tags?.tags\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var tagRows = []\n if (data) {\n tagRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"tag\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Tag',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default TagsTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './LocationsTable.module.css'\nimport { useCreateLocation } from './useCreateLocation'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport { Events, useFetchEvents } from '../../../queries/events/useFetchEvents'\nimport {useFetchEventSettings} from \"../../../queries/events/useFetchEventSettings\";\n\ntype FormData = {\n id: string\n location: string\n active: string\n opendate: string\n closeddate: string\n}\nexport const LocationsForm = ({ isOpen, setIsOpen, gridParams }) => {\n let { data } = useFetchEvents()\n\n const formMethods = useForm()\n const { reset, watch } = formMethods\n const createMutation = useCreateLocation()\n const eventState = useEventState()\n const title = gridParams ? \"Edit Location\" : \"Create Location\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var { data: eventsettings, isFetching } = useFetchEventSettings(\n Number(eventState.eventId),\n true\n )\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n location: gridParams.location,\n opendate: gridParams.opendate,\n closeddate: gridParams.closeddate,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n // var curEvent = data.find(event => event.eventid === Number(eventState.eventId))\n\n reset({ \n location: '',\n active: 'Active',\n opendate: eventsettings.bidstart,\n closeddate: eventsettings.bidend,\n })\n }\n }, [gridParams, isOpen])\n\n const checkEndDate = (value: string, watch: Function) => {\n if(new Date(value) > new Date(eventsettings?.end)){\n return 'Location closing date should be before '+ eventsettings.name + ' close date.'\n }\n return new Date(value) >= new Date(watch('opendate')) || 'Location closing date should be after location open date.'\n }\n const checkStartDate = (value: string) => {\n return new Date(value) >= new Date(eventsettings?.start) || 'Location opening date should be after '+ eventsettings.name + ' open date.'\n }\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.location,\n opendate: dayjs(formData.opendate).format('YYYY-MM-DDTHH:mm:ss'),\n closeddate: dayjs(formData.closeddate).format('YYYY-MM-DDTHH:mm:ss'),\n active: (formData.active === 'Active'),\n eventid: Number(eventState.eventId),\n type: 'location',\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n checkStartDate(val),\n }}\n required={true}\n disabled={!eventsettings.allowcustomlocations}\n />\n checkEndDate(val, watch),\n }}\n disabled={!eventsettings.allowcustomlocations}\n required={true}\n />\n\n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateLocation = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { LocationsForm } from './LocationsForm'\nimport styles from './LocationsTable.module.css'\nimport { useEventState } from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport dayjs from \"dayjs\";\nimport {DataGridPro, GridValueFormatterParams, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst LocationsTable = (locations) => {\n const [gridParams, setGridParams] = useState({ id:0, location: '', opendate: '', closeddate: '', active: true})\n const logationsTagsMutation = useLocationTags()\n const eventState = useEventState()\n const data = locations?.locations\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var rows = []\n if (data) {\n rows = data.map((v, i) => {\n return {\n location: v.name,\n opendate: v.opendate,\n closeddate: v.closeddate,\n active: v.active,\n id: Number(v.id)\n }\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n location: params.getValue(params.id, 'location').toString(),\n opendate: params.getValue(params.id, 'opendate').toString(),\n closeddate: params.getValue(params.id, 'closeddate').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'location').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"location\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n width: 200\n },\n {\n field: 'opendate',\n type: 'dateTime',\n headerName: 'Open Date',\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n width: 200\n },\n {\n field: 'closeddate',\n type: 'dateTime',\n headerName: 'Close Date',\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default LocationsTable\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\nimport { udTitles } from '../pages/ParticipantsPage/useFetchParticipants'\n\nexport type UDTitles = {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n}\n\nconst UDTitlesDefault = {\n userdefinedtitle1: \"userdefinedtitle1\",\n userdefinedtitle2: \"userdefinedtitle2\",\n userdefinedtitle3: \"userdefinedtitle3\",\n userdefinedtitle4: \"userdefinedtitle4\",\n userdefinedtitle5: \"userdefinedtitle5\"\n}\n\nexport const globalLocationTitlesFetcher = async (eventIdvalue) => {\n const json = JSON.stringify({ eventid: Number(eventIdvalue) });\n const { data } = await axios.post('/participanttitles', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as udTitles\n}\n\nexport const useFetchUDTitles = (eventid) => {\n return useQuery(\n ['participanttitles', eventid],\n () => globalLocationTitlesFetcher(eventid),\n {\n staleTime: 120000,\n placeholderData: UDTitlesDefault,\n keepPreviousData: false\n }\n )\n}\n\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './DonationTable.module.css'\nimport { useCreateDonation } from './useCreateDonation'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const DonationForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateDonation()\n const title = gridParams ? \"Edit Donation Type\" : \"Create Donation Type\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"donationtype\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateDonation = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\n\nimport { DonationForm } from './DonationForm'\nimport styles from './DonationTable.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst DonationTable = (donations) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = donations?.donations\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var donationRows = []\n if (data) {\n donationRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"donationtype\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Donation Type',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default DonationTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './AccountingCode.module.css'\nimport { useCreateAccountingCode } from './useCreateAccountingCode'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n active: string\n id: number\n description: string\n}\nexport const AccountingCodeForm = ({ isOpen, setIsOpen, gridParams }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateAccountingCode()\n const title = gridParams ? \"Edit Accounting Code\" : \"Create Accounting Code\"\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n if (gridParams) {\n reset({\n id: gridParams.id,\n description: gridParams.description,\n active: (gridParams ? (gridParams.active ? 'Active' : 'Inactive') : 'Active'),\n })\n }\n else {\n reset({ active: 'Active' })\n }\n }, [gridParams, isOpen])\n\n const onSubmit = async (formData: FormData) => {\n const id = gridParams ? { id: formData.id } : { }\n\n try {\n await createMutation.mutateAsync({\n description: formData.description,\n active: (formData.active === 'Active'),\n type: \"accountingcode\",\n eventid: Number(eventState.eventId),\n ...id\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateAccountingCode = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/locationtags`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['locationtags'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\n\nimport { AccountingCodeForm } from './AccountingCodeForm'\nimport styles from './AccountingCode.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useLocationTags} from \"../../../mutations/useLocationTags\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst AccountingCode = (accountingcodes) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = accountingcodes?.accountingcodes\n const logationsTagsMutation = useLocationTags()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var accountingRows = []\n if (data) {\n accountingRows = data.map((v, i) => {\n return {description: v.name, active: v.active, tagid: v.id, id: v.id}\n })\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setGridParams({\n id:Number(params.id),\n description: params.getValue(params.id, 'description').toString(),\n active: Boolean(params.getValue(params.id, 'active'))})\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.getValue(params.id, 'description').toString() + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"id\": id,\n \"eventid\": Number(eventState.eventId),\n \"delete\": true,\n \"type\": \"accountingcode\"\n }\n await logationsTagsMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'description',\n type: 'string',\n headerName: 'Accounting Code',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDelete(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default AccountingCode\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './ParticipantUDTitle.module.css'\nimport { useUpdateTitles } from './useUpdateUDTitles'\nimport React, {useEffect} from \"react\";\n\ntype FormData = {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n \n}\nexport const UDTitlesForm = ({ isOpen, setIsOpen, gridParams, titles }) => {\n const formMethods = useForm()\n const { reset } = formMethods\n const eventState = useEventState()\n const updateMutation = useUpdateTitles()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n console.log(titles);\n console.log(titles.titles.userdefinedtitle1);\n if (titles) {\n reset({\n userdefinedtitle1: titles.titles.userdefinedtitle1,\n userdefinedtitle2: titles.titles.userdefinedtitle2,\n userdefinedtitle3: titles.titles.userdefinedtitle3,\n userdefinedtitle4: titles.titles.userdefinedtitle4,\n userdefinedtitle5: titles.titles.userdefinedtitle5\n })\n }\n else {\n reset({ userdefinedtitle1: 'User Defined 1', \n userdefinedtitle2: 'User Defined 2',\n userdefinedtitle3: 'User Defined 3',\n userdefinedtitle4: 'User Defined 4',\n userdefinedtitle5: 'User Defined 5'\n })\n }\n }, [isOpen, titles, reset])\n\n const onSubmit = async (formData: FormData) => {\n\n try {\n await updateMutation.mutateAsync({\n userdefinedtitle1: formData.userdefinedtitle1,\n userdefinedtitle2: formData.userdefinedtitle2,\n userdefinedtitle3: formData.userdefinedtitle3,\n userdefinedtitle4: formData.userdefinedtitle4,\n userdefinedtitle5: formData.userdefinedtitle5,\n eventid: Number(eventState.eventId),\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n Rename User Defined Field\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n

Renaming a User Defined Field will not clear any data previously stored in it. If it was already used for a different purpose, best practice is to use one that was previously not used.

\n \n \n \n \n \n \n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useUpdateTitles = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/participanttitles`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['participanttitles'])\n }\n })\n}\n","import React, { useState } from 'react'\n\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport { UDTitlesForm } from './ParticipantUDTitle'\nimport styles from './ParticipantUDTitle.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useUpdateTitles} from \"./useUpdateUDTitles\";\nimport {DataGridPro, GridCellParams} from \"@mui/x-data-grid-pro\";\n\nconst UDTitlesTable = (titles) => {\n const [gridParams, setGridParams] = useState({ id:0, description: '', active: true})\n const data = titles?.titles\n //const udTitlesMutation = useUpdateTitles()\n const [isFormShowing, setIsFormShowing] = useState(false)\n const eventState = useEventState()\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n var tagRows = []\n if (data) {\n tagRows = [{id: 1, name: data.userdefinedtitle1},\n {id: 2, name: data.userdefinedtitle2},\n {id: 3, name: data.userdefinedtitle3},\n {id: 4, name: data.userdefinedtitle4},\n {id: 5, name: data.userdefinedtitle5}]\n }\n\n const handleAdd = () => {\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n\n\n\n \n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd() }\n size=\"small\">\n \n \n )\n },\n width: 150,\n sortable: false,\n renderCell: (params) => (\n ''\n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n width: 200\n }\n ]\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nexport default UDTitlesTable\n","import { useForm } from 'react-hook-form'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button,\n Checkbox,\n FormControlLabel,\n FormGroup,\n Grid,\n InputLabel,\n MenuItem,\n Select,\n TextField\n} from '@material-ui/core'\n\nimport Alerts from '../../components/common/Alerts'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport styles from './LocationsTagsPage.module.css'\n// import { useLocationsTagsMutation } from './useLocationsTagsMutation'\nimport {ExpandMore} from \"@material-ui/icons\";\nimport TagsTable from \"../LocationsTagsPage/TagsTable\";\nimport LocationsTable from \"../LocationsTagsPage/LocationsTable\";\nimport {useFetchLocationTags} from \"../../queries/events/useFetchLocationTags\";\nimport {useFetchUDTitles} from \"../../queries/useParticipantTitles\";\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport DonationTable from \"./DonationTable\";\nimport React from \"react\";\nimport AccountingCode from \"./AccountingCode\";\nimport ParticipantUDTitlesTable from \"./ParticipantUDTitles\";\n\ntype FormData = {\n email: string\n password: string\n siteCode: string\n}\n\ninterface Params {\n id: string\n}\n\nconst LocationsTagsPage = () => {\n const { id } = useParams()\n useAutoEvent(id)\n const eventState = useEventState()\n\n const { data } = useFetchLocationTags(eventState.eventId)\n const udTitles = useFetchUDTitles(eventState.eventId)\n console.log(data)\n console.log(udTitles.data)\n const formMethods = useForm({\n mode: 'onChange'\n })\n\n const onSubmit = ({ email, password, siteCode }: FormData) => {\n //locationsTagsMutation.mutate({ password, email, customerid: siteCode })\n }\n\n return (\n
\n

Dropdown Fields

\n \n }>\n

Locations

\n
\n \n
\n
Specify a table number or another type of single select grouping for items.
\n \n
\n
\n
\n \n }>\n

Tags

\n
\n \n
\n
Categorize items with tags so that guests can search for similar items. Multiple tags can be selected for each item.
\n \n
\n
\n
\n \n }>\n

Donation Types

\n
\n \n
\n
The Donation Type field is for the item’s donation record in DonorSnap or your donor management system.
\n \n
\n
\n
\n \n }>\n

Accounting Codes

\n
\n \n
\n
The Accounting code field is for the item’s record in DonorSnap or your donor management system.
\n \n
\n
\n
\n \n }>\n

User Defined Fields

\n
\n \n
\n
Rename the custom fields availible for use on the Participant record.
\n \n
\n
\n
\n
\n )\n}\n\nexport default LocationsTagsPage\n","import React, { useEffect, useMemo, useState } from 'react'\nimport {Controller ,useController, useFormContext } from 'react-hook-form'\nimport TextField from '@mui/material/TextField'\nimport Autocomplete from '@mui/material/Autocomplete'\n\ntype selectOption = {\n label: string\n value: number\n}\n\ntype Props = {\n name: string\n label: string\n options: selectOption[] \n required?: boolean\n disabled?: boolean\n}\n\nconst AutocompleteSelect = ({\n name='',\n label='',\n options=[],\n required = false,\n disabled = false\n}: Props) => {\n const { control, formState } = useFormContext()\n \n const {\n field: { ref, ...inputProps }\n } = useController({\n name: name,\n control\n })\n const getOpObj = (option) => {\n if(!option)\n return {}\n if (!option.value)\n option = options.find((op) => op.value === option)\n \n return option\n }\n const getOptions = () => {\n if (options && options.length > 0) {\n return options\n }\n else {\n return []\n }\n }\n\n return (\n (\n getOpObj(option)?.label || \"\"}\n isOptionEqualToValue={(option, value) => getOpObj(option)?.value === value}\n onChange={(_, obj) => field.onChange(getOpObj(obj).value)}\n renderInput={(params) => (\n \n )}\n />\n )}\n />\n )\n}\n\nexport default AutocompleteSelect\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface ManualBidDataObject {\n status: string\n message: string\n manualbiditemlist: ManualBidData[]\n bidderlist: BidderListData[]\n}\n\nexport interface BidderListData {\n rownumber: number\n bidderparticipantid: number\n biddername: string\n}\n\nexport interface ManualBidData {\n rownumber: number\n itemid: number\n itemnumber: string\n name: string\n tags: string\n itemtype: string\n numberofbids: number\n startingbid: number\n bidincrement: number\n lastbid: number\n open: string\n closing: string\n opencd: string\n closingcd: string\n buyitnowavailable: boolean\n buyitnowonly: boolean\n allowautobid: boolean\n buyitnowprice: number\n bidstatus: string\n quantityavailable: number\n location: string\n unlimitedquantity: boolean\n maxpurchasequantity: number\n biddername: string\n biddernumber: number\n biddersource: string\n imageurl: string\n}\n\nexport const ManualBidDataDefaults = {\n rownumber: 0,\n itemid: 0,\n itemnumber: null,\n name: null,\n tags: null,\n itemtype: null,\n numberofbids: 0,\n startingbid: 0,\n bidincrement: 0,\n lastbid: 0,\n open: null,\n closing: null,\n opencd: null,\n closingcd: null,\n buyitnowavailable: false,\n buyitnowonly: false,\n allowautobid: false,\n buyitnowprice: 0,\n bidstatus: null,\n quantityavailable: 0,\n location: null,\n unlimitedquantity: false,\n maxpurchasequantity: 0,\n biddername: null,\n biddernumber: 0,\n biddersource: null,\n imageurl: null,\n}\n\nexport const useFetchManualBid = (eventId: number) => {\n return useQuery(\n ['manualbid', eventId],\n () => globalFetcher(eventId),\n {\n staleTime: 100,\n keepPreviousData: false\n }\n )\n}\n\nexport const useUpdateManualBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`manualbid`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['manualbid'])\n }\n })\n}\n\nexport const useDeleteManualBid = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.delete(`manualbid`, {data: body}), {\n onSuccess: () => {\n queryClient.invalidateQueries(['manualbid'])\n }\n })\n}\n\nexport const globalFetcher = async (eventId: number) => {\n const { data } = await axios.post('/manualbid', {\n eventid: eventId\n })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as ManualBidDataObject\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../components/common/HookForm'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useEventState } from '../../slices/eventSlice'\nimport styles from './ManualBidEntryPage.module.css'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport AutocompleteSelect from \"../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {useUpdateManualBid} from \"../../queries/useManualBid\";\nimport {useQueryClient} from \"react-query\";\n\ntype FormData = {\n id: string\n eventid: number\n itemid: number\n buyitnow: boolean\n buyitnowquantity: number\n price: string\n bidderid: number\n}\nexport const BidForm = ({ isOpen, setIsOpen, gridParams, bidderList, buyItNow }) => {\n const formMethods = useForm()\n const { reset, watch, setError} = formMethods\n const manualBidMutation = useUpdateManualBid()\n const eventState = useEventState()\n const title = (buyItNow ? \"Buy It Now\" : \"Manual Bid\")\n const [dialogMsg, setDialogMsg] = React.useState({message: \"\", display: false})\n const [dialogStatus, setDialogStatus] = React.useState(true)\n const [currencyValues, setCurrencyValues] = React.useState(gridParams.lastbid)\n const [quantityValues, setQuantityValues] = React.useState(gridParams.buyitnowquantity)\n const [isValid, setIsValid] = React.useState(true)\n const queryClient = useQueryClient()\n\n useEffect(() => {\n if (gridParams) {\n console.log(gridParams)\n console.log(eventState)\n reset({\n id: gridParams.id,\n eventid: Number(eventState.eventId),\n itemid: gridParams.itemid,\n buyitnow: buyItNow,\n buyitnowquantity: gridParams.buyitnowquantity,\n price: gridParams.price,\n bidderid: gridParams.bidderid\n })\n var initialAmount = gridParams.startingbid\n if (gridParams.startingbid === gridParams.lastbid) {\n initialAmount = gridParams.lastbid\n }\n else if (gridParams.lastbid > 0) {\n initialAmount = gridParams.lastbid + gridParams.bidincrement\n }\n\n setCurrencyValues(initialAmount)\n setQuantityValues(1)\n setIsValid(true)\n }\n }, [gridParams])\n\n useEffect(() => {\n setIsValid(true)\n }, [isOpen])\n\n const onSubmit = async (formData: FormData) => {\n\n try {\n await manualBidMutation.mutateAsync({\n eventid: eventState.eventId,\n itemid: gridParams.itemid,\n buyitnow: buyItNow,\n quantity: quantityValues,\n amount: Number(currencyValues),\n bidderparticipantid: formData.bidderid\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"failed\") {\n setDialogStatus(false)\n }\n setDialogMsg({message: json.message2, display: true})\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg({message: \"\", display: false})\n if (dialogStatus) {\n queryClient.invalidateQueries(['manualbid'])\n setIsOpen(false)\n }\n }\n\n const getBidderOptions = () => {\n return bidderList?.map(item =>{\n return {value:item.bidderparticipantid, label:item.biddername}\n })\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n // setError('bidderid', { type: 'required', message: 'Location is required' })\n\n if (newValue > gridParams.lastbid) {\n setIsValid(true)\n setCurrencyValues(Number(newValue.toFixed(1)))\n }\n else {\n setIsValid(false)\n }\n }\n\n const handleQuantityChange = (newValue: number) => {\n if (newValue > 0) {\n setQuantityValues(newValue)\n }\n }\n\n return (\n \n {title}\n\n <>\n \n \n \n {dialogMsg.message}\n \n \n \n \n \n \n \n\n \n \n\n \n \n
Item: {gridParams.itemnumber} - {gridParams.name}
\n
\n \n {buyItNow &&\n
Buy It Now Price: ${gridParams.buyitnowprice}
\n }\n
\n
\n \n \n
\n \n
\n
\n
\n\n {!buyItNow &&\n \n \n
\n handleCurrencyChange(value)}\n />\n
\n
\n
\n }\n \n {buyItNow && (\n \n handleQuantityChange(value)}\n />\n \n )}\n \n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport { IconButton } from '@material-ui/core'\nimport { Add, AddShoppingCart, AttachMoneyOutlined, Delete, Edit } from '@material-ui/icons'\nimport styles from './ManualBidEntryPage.module.css'\nimport {BidForm} from \"./BidForm\";\nimport {ManualBidData, ManualBidDataObject, useFetchManualBid} from \"../../queries/useManualBid\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {DataGridPro, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n\nconst ManualBidEntryPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const [isBidFormShowing, setBidIsFormShowing] = useState(false)\n const [buyItNow, setBuyItNow] = useState(false)\n\n const { data: ManualBidDataObject } = useFetchManualBid(Number(eventid))\n const [dataRows, setDataRows] = React.useState([]);\n const [bidderList, setBidderList] = useState([])\n console.log(ManualBidDataObject)\n\n useEffect(() => {\n if (ManualBidDataObject?.bidderlist && ManualBidDataObject?.bidderlist?.length > 0) {\n setBidderList(ManualBidDataObject.bidderlist)\n }\n\n if (ManualBidDataObject?.manualbiditemlist && ManualBidDataObject?.manualbiditemlist?.length > 0) {\n const dataRows = getMappedRecords()\n setDataRows(dataRows)\n }\n else {\n setDataRows([])\n }\n }, [ManualBidDataObject])\n\n const getMappedRecords = () => {\n const dataReturn = ManualBidDataObject?.manualbiditemlist.map((manualList: ManualBidData, i) => {\n return {\n id: manualList.itemid,\n itemid: manualList.itemid,\n itemnumber: manualList.itemnumber,\n name: manualList.name,\n tags: manualList.tags,\n itemtype: manualList.itemtype,\n numberofbids: manualList.numberofbids,\n startingbid: manualList.startingbid,\n bidincrement: manualList.bidincrement,\n lastbid: manualList.lastbid,\n open: manualList.open,\n closing: manualList.closing,\n opencd: manualList.opencd,\n closingcd: manualList.closingcd,\n buyitnowavailable: manualList.buyitnowavailable,\n buyitnowonly: manualList.buyitnowonly,\n allowautobid: manualList.allowautobid,\n buyitnowprice: manualList.buyitnowprice,\n bidstatus: manualList.bidstatus,\n quantityavailable: manualList.quantityavailable,\n location: manualList.location,\n unlimitedquantity: manualList.unlimitedquantity,\n maxpurchasequantity: manualList.maxpurchasequantity,\n biddername: manualList.biddername,\n biddernumber: manualList.biddernumber,\n biddersource: manualList.biddersource,\n imageurl: manualList.imageurl,\n\n }\n })\n return dataReturn\n }\n\n\n const [gridParams, setGridParams] = useState({})\n\n const getRecord = (id: number) => {\n const returnRows = dataRows.filter((v, i) => v.id === id)\n if (returnRows && returnRows.length > 0) {\n return returnRows[0]\n }\n else {\n return {}\n }\n }\n\n const handleBid = (params: GridCellParams, buyItNowParam: boolean) => {\n setBuyItNow(buyItNowParam)\n setGridParams({...params.row, buyitnow: buyItNowParam})\n setBidIsFormShowing(true)\n }\n\n const columns= [\n {\n field: 'Edit',\n renderHeader: () => {\n return (<>\n // setIsFormShowing(true)}\n // size=\"small\">\n // \n // \n )\n },\n width: 120,\n sortable: false,\n renderCell: (params) => (\n <>\n {!params.row.buyitnowonly && (params.row.unlimitedquantity || params.row.quantityavailable > 0) &&\n { handleBid(params, false) }}>\n \n \n }\n {params.row.buyitnowavailable && (params.row.unlimitedquantity || params.row.quantityavailable > 0) &&\n {\n handleBid(params, true)\n }}>\n \n \n }\n \n )\n },\n {\n field: 'itemnumber',\n type: 'number',\n headerName: 'Item #',\n width: 150\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n width: 200\n },\n {\n field: 'location',\n type: 'string',\n headerName: 'Location',\n width: 200\n },\n {\n field: 'itemtype',\n type: 'string',\n headerName: 'Item Type',\n width: 200\n },\n {\n field: 'quantityavailable',\n type: 'string',\n headerName: 'Quantity Available',\n width: 200,\n valueFormatter: (params) => {\n const rec = getRecord(params.id)\n return (rec?.unlimitedquantity ? 'Unlimited' : (params.value === 0 ? 'Sold Out' : params.value))\n },\n },\n {\n field: 'lastbid',\n type: 'string',\n headerName: 'Current Bid',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'buyitnowprice',\n type: 'number',\n headerName: 'Buy It Now',\n width: 225,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder Name',\n width: 200\n }\n ]\n\n return (\n
\n

Manual Bid Entry

\n \n\n \n
\n )\n}\n\nexport default ManualBidEntryPage\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface User {\n userid: number\n email: string\n password: string\n active: boolean\n globalsetup: boolean\n auctionsettings: boolean\n sponsors: boolean\n customusermessage: boolean\n customemail: boolean\n location: boolean\n auctionitems: boolean\n participants: boolean\n manualbidentry: boolean\n checkout: boolean\n participantlisting: boolean\n accountingreport: boolean\n transfertransactionsto: boolean\n transfertransactionsfrom: boolean\n transfernewcontactsto: boolean\n createinteractionrecords: boolean\n lastupdateddate: string\n lastupdatedby: string\n}\n\n\nexport const globalUserFetcher = async () => {\n const { data } = await axios.post('/usersetup', {})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.users as User[]\n}\n\nexport const useFetchUsers = ({\n userid\n }: {\n userid?: string\n} = {}) => {\n return useQuery(\n ['users', userid],\n () => globalUserFetcher(),\n {\n staleTime: 0,\n placeholderData: [],\n keepPreviousData: false\n }\n )\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useUser = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`usersetup`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['users'])\n }\n })\n}\n\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow\n} from '@material-ui/core'\nimport Switch from '../../../components/common/inputs/Switch'\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './UsersTable.module.css'\nimport { useUser } from '../../../mutations/useUser'\nimport React, {useEffect, useState} from \"react\";\nimport validator from 'validator'\nimport {passwordResetEmail} from \"../../../queries/useResetPassword\";\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {AuthToken} from \"../../../slices/authSlice\";\nimport {parseJwt} from \"../../AuthPage/LoginForm/useLoginMutation\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\n\ntype FormData = {\n userid: number\n email: string\n password: string\n active: boolean\n globalsetup: boolean\n auctionsettings: boolean\n sponsors: boolean\n customusermessage: boolean\n customemail: boolean\n location: boolean\n auctionitems: boolean\n participants: boolean\n manualbidentry: boolean\n checkout: boolean\n participantlisting: boolean\n accountingreport: boolean\n transfertransactionsto: boolean\n transfertransactionsfrom: boolean\n transfernewcontactsto: boolean\n createinteractionrecords: boolean\n}\n\nexport const OrgUserForm = ({ isOpen, setIsOpen, user, reloadForm }) => {\n const putUser = useUser()\n const formMethods = useForm()\n const title = user ? \"Edit User\" : \"Create User\"\n const { reset, getValues, setValue } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n // console.log((user ? user.email : \"blank\"))\n useEffect(() => {\n // console.log(user)\n setValue('email', \"\")\n reset({\n // userid: (user ? user.userid : \"\"),\n email: (user ? user.email : \"\"),\n password: (user ? \"123456789\" : \"\"),\n active: (user ? user.active : true),\n globalsetup: (user ? user.globalsetup : false),\n auctionsettings: (user ? user.auctionsettings : false),\n sponsors: (user ? user.sponsors : false),\n customusermessage: (user ? user.customusermessage : false),\n customemail: (user ? user.customemail : false),\n location: (user ? user.location : false),\n auctionitems: (user ? user.auctionitems : false),\n participants: (user ? user.participants : false),\n manualbidentry: (user ? user.manualbidentry : false),\n checkout: (user ? user.checkout : false),\n participantlisting: (user ? user.participantlisting : false),\n accountingreport: (user ? user.accountingreport : false),\n transfertransactionsto: (user ? user.transfertransactionsto : false),\n transfertransactionsfrom: (user ? user.transfertransactionsfrom : false),\n transfernewcontactsto: (user ? user.transfernewcontactsto : false),\n createinteractionrecords: (user ? user.createinteractionrecords : false)\n })\n }, [reloadForm])\n\n const onFormSubmit = async (data: FormData) => {\n const finalData = user ? { ...data, userid: user.userid } : { ...data }\n const { data: response } = await putUser.mutateAsync({\n ...finalData\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const onResetEmail = async () => {\n console.log('send onSubmit')\n const token = localStorage.getItem('tokenadmin')\n const parsedToken: AuthToken = parseJwt(token)\n\n const emailSent = await passwordResetEmail(parsedToken.sitecode, getValues(\"email\"))\n if (emailSent) {\n setDialogMsg(\"An email was sent to \" + user?.email + \". Please click the link within the email to reset your password.\")\n }\n }\n\n const passwordFieldEnabled = () => {\n return user ? true : false\n }\n\n return (\n \n {title}\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n validator.isEmail(val) || 'Please enter a valid email address.'\n }}\n />\n \n \n {passwordFieldEnabled() && (\n onResetEmail()}>\n Reset User Password\n \n )}\n\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/* Page*/}\n {/* Access Level*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* Global Setup*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Auction Settings*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Sponsors*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Page/Email Customization*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Custom Email*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Location*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Auction Items*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Participants*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Manual Bid Entry*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Checkout*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Participant Listings*/}\n {/* */}\n {/* */}\n {/* /!**!/*/}\n {/* /!* Accounting Report*!/*/}\n {/* /!* *!/*/}\n {/* /!**!/*/}\n {/* */}\n {/* Transfer Transactions To*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Transfer Transactions From*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Transfer New Contacts To*/}\n {/* */}\n {/* */}\n {/* */}\n {/* Create Interaction Records*/}\n {/* */}\n {/* */}\n {/* */}\n {/*
*/}\n {/*
*/}\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, { useState } from 'react'\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport { useFetchUsers, User } from '../../../queries/useUsers'\nimport { useUser } from \"../../../mutations/useUser\";\nimport { OrgUserForm } from './UserForm'\nimport styles from './UsersTable.module.css'\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\nimport {GridColumns} from \"@mui/x-data-grid-pro\";\n\nconst Users = {\n userid: 0,\n email: '',\n password: '',\n active: true,\n globalsetup: false,\n auctionsettings: false,\n sponsors: false,\n customusermessage: false,\n customemail: false,\n location: false,\n auctionitems: false,\n participants: false,\n manualbidentry: false,\n checkout: false,\n participantlisting: false,\n accountingreport: false,\n transfertransactionsto: false,\n transfertransactionsfrom: false,\n transfernewcontactsto: false,\n createinteractionrecords: false,\n lastupdateddate: '',\n lastupdatedby: ''\n}\n\nconst UsersTable = () => {\n const [userToEdit, setUserToEdit] = useState(null)\n const [reloadForm, setReloadForm] = useState(0)\n const putUser = useUser()\n\n var { data } = useFetchUsers()\n var rows = []\n if (data) {\n rows = data.map((user) => {\n return { id: Number(user.userid), email: user.email, password:'', active: user.active,\n globalsetup: user.globalsetup,\n auctionsettings: user.auctionsettings,\n sponsors: user.sponsors,\n customusermessage: user.customusermessage,\n customemail: user.customemail,\n location: user.location,\n auctionitems: user.auctionitems,\n participants: user.participants,\n manualbidentry: user.manualbidentry,\n checkout: user.checkout,\n participantlisting: user.participantlisting,\n accountingreport: user.accountingreport,\n transfertransactionsto: user.transfertransactionsto,\n transfertransactionsfrom: user.transfertransactionsfrom,\n transfernewcontactsto: user.transfernewcontactsto,\n createinteractionrecords: user.createinteractionrecords,\n lastupdateddate: user.lastupdateddate,\n lastupdatedby: user.lastupdatedby\n }\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setUserToEdit(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const data = rows.filter((e) => Number(e.id) === Number(params.id))[0]\n setUserToEdit({\n userid: Number(params.id),\n email: data.email,\n password: data.password,\n active: data.active,\n globalsetup: data.globalsetup,\n auctionsettings: data.auctionsettings,\n sponsors: data.sponsors,\n customusermessage: data.customusermessage,\n customemail: data.customemail,\n location: data.location,\n auctionitems: data.auctionitems,\n participants: data.participants,\n manualbidentry: data.manualbidentry,\n checkout: data.checkout,\n participantlisting: data.participantlisting,\n accountingreport: data.accountingreport,\n transfertransactionsto: data.transfertransactionsto,\n transfertransactionsfrom: data.transfertransactionsfrom,\n transfernewcontactsto: data.transfernewcontactsto,\n createinteractionrecords: data.createinteractionrecords,\n lastupdateddate: data.lastupdateddate,\n lastupdatedby: data.lastupdatedby\n })\n setIsFormShowing(true)\n }\n\n const handleDeleteConfirm = async (params: GridCellParams) => {\n var finaldata = {\n \"userid\": params.id,\n \"email\": params.getValue(params.id, 'email').toString(),\n \"delete\": true\n }\n await putUser.mutateAsync({\n ...finaldata\n })\n }\n\n const [isFormShowing, setIsFormShowing] = useState(false)\n\n const columns: any = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n renderCell: (params) => {\n return params.value ? 'Active' : 'Inactive'\n }\n },\n {\n field: 'lastupdateddate',\n type: 'string',\n headerName: 'Last Updated Date',\n width: 200,\n valueFormatter: (params) =>\n params.value ? new Date(params.value as string).toLocaleString() : 'N/A'\n },\n {\n field: 'lastupdatedby',\n type: 'date',\n headerName: 'Last Updated By',\n width: 200\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 100,\n sortable: false,\n renderCell: (params) => (\n { handleDeleteConfirm(params) }}>\n \n \n )\n }\n ]\n\n return (\n <>\n \n \n \n )\n}\n\nexport default UsersTable\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface Twilio {\n twiliophone: string\n twilioaccountsid: string\n twilioauthtoken: string\n valid: boolean\n}\n\nexport const orgSettingsTwilioFetcher = async () => {\n const response = await axios.get(`/orgsettingstwilio`, {\n params: {}\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const twilio = JSON.parse(parsedResponse.twilio)\n return twilio\n}\n\nexport const useFetchOrgSettingsTwilio = ({\n onSuccess = () => null,\n onError = () => null\n }: {\n onSuccess?: any\n onError?: any\n} = {}) => {\n return useQuery(\n ['orgsettingstwilio'],\n () => orgSettingsTwilioFetcher(),\n {\n staleTime: 120000,\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface GEM {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n retailid: string\n lastupdated: string\n validationdate: string\n valid: boolean\n}\n\nexport const orgSettingsGEMFetcher = async () => {\n const response = await axios.get(`/orgsettingsgem`, {\n params: {}\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n const goemerchant = JSON.parse(parsedResponse.goemerchant)\n return goemerchant\n}\n\nexport const useFetchOrgSettingsGEM = ({\n onSuccess = () => null,\n onError = () => null\n }: {\n onSuccess?: any\n onError?: any\n} = {}) => {\n return useQuery(\n ['orgsettingsgem'],\n () => orgSettingsGEMFetcher(),\n {\n staleTime: 120000,\n onSuccess,\n onError,\n retry: false\n }\n )\n}\n","import React, {useEffect, useState} from 'react'\nimport { useRef } from 'react'\nimport { useForm } from 'react-hook-form'\nimport {\n useOrgSettings,\n useOrgSettingsTwilio,\n useOrgSettingsGEM,\n useResetTwilio,\n useResetGEM\n} from '../../mutations/useOrgSettings'\n\nimport {\n Accordion,\n AccordionDetails,\n AccordionSummary,\n Button, Dialog, DialogActions, DialogContent, DialogContentText, Grid\n} from '@material-ui/core'\nimport { ExpandMore } from '@material-ui/icons'\nimport LinkIcon from '@mui/icons-material/Link';\nimport LinkOffIcon from '@mui/icons-material/LinkOff';\n\nimport HookForm from '../../components/common/HookForm'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useAuthToken } from '../../slices/authSlice'\nimport styles from './OrgSettingsPage.module.css'\nimport UsersTable from './UsersTable'\nimport { useFetchOrgSettings } from './useFetchOrgSettings'\nimport { useFetchOrgSettingsTwilio } from './useFetchOrgSettingsTwilio'\nimport { useFetchOrgSettingsGEM } from './useFetchOrgSettingsGEM'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {emailRegex, phoneRegex, zipCodeRegex} from \"../../util/formValidation\";\nimport {useDispatch} from \"react-redux\";\nimport {useParams} from \"react-router\";\nimport {EventState, setEvent} from \"../../slices/eventSlice\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {OrgState, setOrg} from \"../../slices/orgSlice\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {Stack} from \"@mui/material\";\nimport {useQueryClient} from \"react-query\";\nimport axios from \"axios\";\nimport RecieptTemplatesTable from \"./RecieptTemplates\";\n\ntype FormData = {\n email: string\n phone: string\n postalcode: string\n orgInfo: {\n name: string\n contactname: string\n address1: string\n address2: string\n city: string\n state: string\n postalcode: string\n email: string\n phone: string\n }\n}\n\ntype formDataTwilio = {\n twiliophone: string\n twilioaccountsid: string\n twilioauthtoken: string\n valid: boolean\n}\n\ntype formDataGEM = {\n transactionid: string\n gatewayid: string\n ecommerceid: string\n retailid: string\n lastupdated: string\n validationdate: string\n}\n\ninterface Params {\n id: string,\n name: string\n}\n\nconst OrgSettingsPage = () => {\n const dispatch = useDispatch()\n const queryClient = useQueryClient()\n const { id, name } = useParams()\n const eventState: EventState = {\n eventId: id,\n eventName: name\n }\n dispatch(setEvent(eventState))\n\n const putOrgSetting = useOrgSettings()\n const putOrgSettingsTwilio = useOrgSettingsTwilio();\n const putOrgSettingsGEM = useOrgSettingsGEM();\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false, twilio: false })\n const [isLoading, setIsLoading] = React.useState(false)\n\n const formMethods = useForm()\n const { reset } = formMethods\n\n const twilioFormMethods = useForm()\n const { reset : twilloReset } = twilioFormMethods\n\n const gemFormMethods = useForm()\n const { reset : gemReset } = gemFormMethods\n\n const authToken = useAuthToken()\n\n const ontwilioSubmit = async (formData: formDataTwilio) => {\n setIsLoading(true)\n var finaldata = {\n \"twiliophone\": formData.twiliophone,\n \"twilioaccountsid\": formData.twilioaccountsid,\n \"twilioauthtoken\": formData.twilioauthtoken,\n }\n\n const { data: response } = await putOrgSettingsTwilio.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n const twilio = JSON.parse(parsedResponse?.twilio)\n\n if (parsedResponse?.status === 'success' && twilio.valid) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: twilio\n }\n dispatch(setOrg(orgState))\n queryClient.invalidateQueries(['orgsettings', authToken?.userid])\n setDialogMsg('Twilio settings successfully saved.')\n }\n if (!twilio.valid) {\n setDialogMsg(twilio.errormessage)\n }\n else if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n\n setIsLoading(false)\n }\n\n const onGEMSubmit = async (formData: formDataGEM) => {\n setIsLoading(true)\n var finaldata = {\n \"goetransactionid\": formData.transactionid,\n \"goegatewayid\": formData.gatewayid\n }\n\n const { data: response } = await putOrgSettingsGEM.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n if (parsedResponse?.goemerchant) {\n const goemerchant = JSON.parse(parsedResponse?.goemerchant)\n if (!goemerchant.valid) {\n setDialogMsg(goemerchant.errormessage)\n }\n else if (parsedResponse?.status === 'success' && goemerchant.valid) {\n setDialogMsg('GoEmerchant settings successfully saved.')\n }\n }\n\n setIsLoading(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n setIsLoading(true)\n var finaldata = {\n \"name\": formData.orgInfo.name,\n \"contactname\": formData.orgInfo.contactname,\n \"address\" : formData.orgInfo.address1,\n \"address2\": formData.orgInfo.address2,\n \"city\": formData.orgInfo.city,\n \"state\": formData.orgInfo.state,\n \"zip\": formData.postalcode,\n \"email\": formData.email,\n \"phone\": formData.phone\n }\n\n const { data: response } = await putOrgSetting.mutateAsync({\n ...finaldata\n })\n const parsedResponse = JSON.parse(response?.jsonString)\n if (parsedResponse?.status === 'success') {\n // const orgState: OrgState = {\n // name: formData.orgInfo.name, message: settings?.message\n // }\n // dispatch(setOrg(orgState))\n setDialogMsg('Organization settings successfully saved.')\n }\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse?.message)\n }\n setIsLoading(false)\n }\n\n const { data: settings } = useFetchOrgSettings({ userid: authToken?.userid })\n const { data: twilioSettings } = useFetchOrgSettingsTwilio({})\n const { data: GEMSettings } = useFetchOrgSettingsGEM({})\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const hasInitiatedForm = useRef(false)\n useEffect(() => {\n if (settings && !hasInitiatedForm.current) {\n reset({\n email: settings.email,\n phone: settings.phone,\n postalcode: settings.zip,\n orgInfo: {\n name: settings.name,\n contactname: settings.contactname,\n address1: settings.address,\n address2: settings.address2,\n city: settings.city,\n state: settings.state,\n postalcode: settings.zip,\n email: settings.email,\n phone: settings.phone\n }\n })\n hasInitiatedForm.current = true\n }\n }, [settings])\n\n const hasInitiatedTwilioForm = useRef(false)\n useEffect(() => {\n if (twilioSettings && !hasInitiatedTwilioForm.current) {\n twilloReset({\n twiliophone: twilioSettings.twiliophone.replace(\"+1\", \"\"),\n twilioaccountsid: twilioSettings.twilioaccountsid,\n twilioauthtoken: twilioSettings.twilioauthtoken,\n })\n hasInitiatedTwilioForm.current = true\n }\n }, [twilioSettings])\n\n const hasInitiatedGEMForm = useRef(false)\n useEffect(() => {\n if (GEMSettings && !hasInitiatedGEMForm.current) {\n gemReset({\n transactionid: GEMSettings.transactionid,\n gatewayid: GEMSettings.gatewayid,\n ecommerceid: GEMSettings.ecommerceid,\n retailid: GEMSettings.retailid,\n lastupdated: GEMSettings.lastupdated,\n validationdate: GEMSettings.validationdate\n })\n hasInitiatedGEMForm.current = true\n }\n }, [GEMSettings])\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n show: false,\n twilio: false\n })\n }\n\n const checkPhoneNumber = (value: string) =>\n value?.replace(/\\D/g,'').length === 10 || 'Please enter a valid phone number.'\n\n const onResetGEM = () => {\n setDialogObj({\n msg: 'Are you sure you want to reset the GoEmerchant settings?',\n show: true,\n twilio: false\n })\n }\n\n const onResetTWILIO = () => {\n setDialogObj({\n msg: 'Are you sure you want to reset the Twilio settings?',\n show: true,\n twilio: true\n })\n }\n\n const resetConfirm = async () => {\n if (dialogObj.twilio) {\n const { data } = await axios.get('/resettwilio')\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['orgsettingstwilio'])\n queryClient.invalidateQueries(['orgsettings', authToken?.userid])\n if (parsedData.status === 'success') {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer,\n twilio: { twiliophone:\"\", twilioaccountsid:\"\", twilioauthtoken:\"\",\n valid:false, errormessage:\"\", validationdate:null}\n }\n dispatch(setOrg(orgState))\n twilloReset({\n twiliophone: \"\",\n twilioaccountsid: \"\",\n twilioauthtoken: \"\",\n })\n setDialogObj({\n msg: \"\",\n show: false,\n twilio: true\n })\n }\n else {\n setDialogObj({\n msg: parsedData.message,\n show: true,\n twilio: true\n })\n }\n }\n else {\n const { data } = await axios.get('/resetgem')\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['orgsettingsgem'])\n if (parsedData.status === 'success') {\n gemReset({\n transactionid: \"\",\n gatewayid: \"\",\n ecommerceid: \"\",\n retailid: \"\",\n lastupdated: null,\n validationdate: null\n })\n setDialogObj({\n msg: \"\",\n show: false,\n twilio: true\n })\n }\n else {\n setDialogObj({\n msg: parsedData.message,\n show: true,\n twilio: true\n })\n }\n }\n }\n\n return (\n
\n

Organization Settings

\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n }>\n

Organization Info

\n
\n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n }>\n
\n

goEmerchant - Payment Processing Integration

\n {GEMSettings?.valid ?\n <>\n \n

Connected

\n \n :\n <>\n \n

Not Connected

\n \n }\n
\n
\n \n \n
\n \n \n \n {/**/}\n \n \n \n \n Validate and Save\n \n \n \n
\n
\n
\n
\n \n }>\n
\n

Twilio - Text Messaging Integration

\n {twilioSettings?.valid ?\n <>\n \n

Connected

\n \n :\n <>\n \n

Not Connected

\n \n }\n
\n
\n\n \n
\n \n checkPhoneNumber(val)\n }}\n />\n \n
\n \n
\n \n \n Validate and Save\n \n \n \n
\n
\n
\n
\n \n }>\n

Users

\n
\n \n \n \n
\n {/**/}\n {/* }>*/}\n {/*

Receipt Templates

*/}\n {/*
*/}\n {/* */}\n {/* */}\n {/* */}\n {/*
*/}\n
\n )\n}\n\nexport default OrgSettingsPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\nimport {Events} from \"../queries/events/useFetchEvents\";\n\nexport const useOrgSettings = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettings`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettings'])\n }\n })\n}\n\nexport const useOrgSettingsTwilio = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettingstwilio`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettingstwilio'])\n }\n })\n}\n\nexport const useResetTwilio = async () => {\n const { data } = await axios.get('/resettwilio')\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const useOrgSettingsGEM = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`orgsettingsgem`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['orgsettingsgem'])\n }\n })\n}\n\nexport const useResetGEM = async () => {\n const { data } = await axios.get('/resetgem')\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useCreateParticipant = () => {\n const queryClient = useQueryClient()\n\n return useMutation(\n (body: any) => {\n return axios.put(`/participant`, body)\n },\n {\n onSuccess: () => {\n queryClient.invalidateQueries(['participant'])\n }\n }\n )\n}\n","import React, { useEffect } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useQueryClient } from 'react-query'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle,\n FormLabel\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport Switch from '../../../components/common/inputs/Switch'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport { useEventState } from '../../../slices/eventSlice'\nimport { Participant, udTitles } from '../useFetchParticipants'\nimport styles from './ParticipantsForm.module.css'\nimport { useCreateParticipant } from './useCreateParticipant'\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport {emailRegex, phoneRegex, zipCodeRegex} from \"../../../util/formValidation\";\n\ntype FormData = {\n bidnumber: number\n first: string\n last: string\n email: string\n phone: string\n authorizedbidder: boolean\n address: string\n address2: string\n city: string\n state: string\n zip: string\n source: string\n userdefined1: string\n userdefined2: string\n userdefined3: string\n userdefined4: string\n userdefined5: string\n paddlenumbertext: string\n}\n\ntype Props = {\n isOpen: boolean\n setIsOpen: Function\n particpant?: Participant\n bidnumber?: number\n reloadForm?: number\n nextBidNumber?: number\n udTitles?: udTitles\n}\nconst UserForm = ({ isOpen, setIsOpen, particpant, reloadForm, nextBidNumber, udTitles }: Props) => {\n const isEdit = Boolean(particpant)\n const formMethods = useForm()\n const { reset, setValue } = formMethods\n const eventState = useEventState()\n const createMutation = useCreateParticipant()\n const editMutation = useCreateParticipant()\n const queryClient = useQueryClient()\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n useEffect(() => {\n reset({\n bidnumber: (particpant ? particpant.bidnumber : nextBidNumber),\n first: (particpant ? particpant.first : ''),\n last: (particpant ? particpant.last : ''),\n email: (particpant ? particpant.email : ''),\n phone: (particpant ? particpant.phone : ''),\n authorizedbidder: (particpant ? particpant.authorizedbidder : true),\n address: (particpant ? particpant.address : ''),\n address2: (particpant ? particpant.address2 : ''),\n city: (particpant ? particpant.city : ''),\n state: (particpant ? particpant.state : ''),\n zip: (particpant ? particpant.zip : ''),\n source: 'manual',\n userdefined1: (particpant ? particpant.userdefined1 : ''),\n userdefined2: (particpant ? particpant.userdefined2 : ''),\n userdefined3: (particpant ? particpant.userdefined3 : ''),\n userdefined4: (particpant ? particpant.userdefined4 : ''),\n userdefined5: (particpant ? particpant.userdefined5 : ''),\n paddlenumbertext: (particpant ? particpant.paddlenumbertext : '')\n })\n\n }, [reloadForm])\n\n const onCreateSubmit = async (formData: FormData) => {\n try {\n await createMutation.mutateAsync({\n eventid: Number(eventState.eventId),\n source: 'manual',\n bidnumber: formData.bidnumber,\n first: formData.first,\n last: formData.last,\n email: formData.email,\n phone: formData.phone,\n authorizedbidder: formData.authorizedbidder,\n address: formData.address,\n address2: formData.address2,\n city: formData.city,\n state: formData.state,\n zip: formData.zip,\n userdefined1: formData.userdefined1,\n userdefined2: formData.userdefined2,\n userdefined3: formData.userdefined3,\n userdefined4: formData.userdefined4,\n userdefined5: formData.userdefined5,\n paddlenumbertext: formData.paddlenumbertext,\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n queryClient.invalidateQueries(['participant'])\n }\n }\n })\n } catch {}\n }\n const onEditSubmit = async (formData: FormData) => {\n try {\n await editMutation.mutateAsync({\n participantid: particpant.participantid,\n eventid: Number(eventState.eventId),\n source: 'manual',\n bidnumber: formData.bidnumber,\n first: formData.first,\n last: formData.last,\n email: formData.email,\n phone: formData.phone,\n authorizedbidder: formData.authorizedbidder,\n address: formData.address,\n address2: formData.address2,\n city: formData.city,\n state: formData.state,\n zip: formData.zip,\n userdefined1: formData.userdefined1,\n userdefined2: formData.userdefined2,\n userdefined3: formData.userdefined3,\n userdefined4: formData.userdefined4,\n userdefined5: formData.userdefined5,\n paddlenumbertext: formData.paddlenumbertext\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setIsOpen(false)\n queryClient.invalidateQueries(['participant'])\n }\n }\n })\n } catch {}\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n }\n\n const handleZip = (event) => {\n setValue(\"zip\", event.toString())\n }\n\n const handlePhone = (event) => {\n setValue(\"phone\", event.toString())\n }\n\n return (\n \n {isEdit ? 'Edit' : 'Create'} Participant\n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n {isEdit && (\n \n )}\n \n \n 0}\n rules={{\n pattern: {\n value: emailRegex,\n message: 'Please enter a valid email address.'\n }\n }}\n />\n \n
\n Authorized Bidder: \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n setIsOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n\nexport default UserForm\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport interface Participant {\n participantid: number\n authorizedbidder: boolean\n first: string\n last: string\n company: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n source: string\n bidnumber: number\n active: boolean\n lastlogindate: string\n numberofbids: number\n numberwinningbids: number\n addressreadonly: boolean\n userdefined1:string\n userdefined2: string\n userdefined3: string\n userdefined4: string\n userdefined5: string\n paddlenumbertext: string\n}\n\nexport interface udTitles {\n userdefinedtitle1: string\n userdefinedtitle2: string\n userdefinedtitle3: string\n userdefinedtitle4: string\n userdefinedtitle5: string\n}\n\nexport interface ParticipantsWithTitles {\n participants: Participant[]\n udTitles: udTitles\n}\n\nexport const fetchers = async (eventid) => {\n const { data } = await axios.post('/participant', {\n eventid: Number(eventid)\n })\n const parsedData = JSON.parse(data.jsonString)\n\n return parsedData?.participants || []\n}\n\nexport const useFetchParticpants = (eventid) => {\n return useQuery(\n ['participant', eventid],\n () => fetchers(eventid),\n {}\n )\n}\n\nexport const fetchwitUDTitles = async (eventid) => {\n const { data } = await axios.post('/participant', {\n eventid: Number(eventid)\n })\n const parsedData = JSON.parse(data.jsonString)\n let udti : ParticipantsWithTitles = {\n participants: parsedData?.participants || [],\n udTitles: {\n userdefinedtitle1: parsedData?.userdefinedtitle1 || \"\",\n userdefinedtitle2: parsedData?.userdefinedtitle2 || \"\",\n userdefinedtitle3: parsedData?.userdefinedtitle3 || \"\",\n userdefinedtitle4: parsedData?.userdefinedtitle4 || \"\",\n userdefinedtitle5: parsedData?.userdefinedtitle5 || \"\"}}\n \n \n return udti\n}\n\nexport const useFetchParticpantswithUDTitles = (eventid) => {\n return useQuery(\n ['participant', eventid],\n () => fetchwitUDTitles(eventid),\n {}\n )\n}\n","import React, {useEffect, useMemo, useState} from 'react'\nimport { useQueryClient } from 'react-query'\nimport { useParams } from 'react-router'\nimport {Link, useHistory} from 'react-router-dom'\nimport Button from '@mui/material/Button';\nimport download from 'downloadjs';\n\nimport { IconButton } from '@material-ui/core'\nimport { Add, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPro,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef\n} from \"@mui/x-data-grid-pro\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport UploadFileIcon from '@mui/icons-material/UploadFile';\nimport ImportExportIcon from '@mui/icons-material/ImportExport';\nimport { Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle} from \"@material-ui/core\";\n\nimport {Box, Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport { PagePathTypes } from '../../App'\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport ParticipantsForm from './ParticipantsForm'\nimport { useCreateParticipant } from './ParticipantsForm/useCreateParticipant'\nimport styles from './ParticipantsPage.module.css'\nimport { Participant, useFetchParticpantswithUDTitles } from './useFetchParticipants'\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {OrgState, setOrg, useOrgState} from \"../../slices/orgSlice\";\nimport {useFetchOrgSettings} from \"../OrgSettingsPage/useFetchOrgSettings\";\nimport {useAuthState} from \"../../slices/authSlice\";\nimport {useDispatch} from \"react-redux\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\n\ninterface Params {\n eventid: string\n}\n\nconst ParticipantsPage = () => {\n const orgState = useOrgState()\n const history = useHistory()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n const auth = useAuthState()\n const dispatch = useDispatch()\n const { data: settings } = useFetchOrgSettings({ userid: auth?.token?.userid })\n const [dialogMsg, setDialogMsg] = useState(\"\")\n const [loading, setLoading] = React.useState(false);\n\n useEffect(() => {\n if (settings) {\n const orgState: OrgState = {\n name: settings?.name, message: settings?.message, isdonorsnapcustomer: settings?.isdonorsnapcustomer, twilio: settings?.twilio\n }\n dispatch(setOrg(orgState))\n }\n }, [settings])\n\n const importPath = '/auction/' + eventid + '/participants/import'\n const importDMPPath = '/auction/' + eventid + '/participants/dmp/import'\n\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [particpantToEdit, setParticpantToEdit] = useState(null)\n const [particpantToDelete, setParticpantToDelete] =\n useState(null)\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data: particpantswithTitles, isLoading } = useFetchParticpantswithUDTitles(event?.eventId)\n const rows = useMemo(\n () =>\n particpantswithTitles?.participants?.map((p) => {\n return { ...p, id: p.participantid }\n }) || [],\n [particpantswithTitles]\n )\n\n const getNextBidderNumber = () => {\n return Math.max.apply(\n Math,\n particpantswithTitles?.participants?.map(function (o) {\n return o.bidnumber + 1\n })\n )\n }\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) => gridSortedRowIdsSelector(apiRef);\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const generateContactReport = async () => {\n // setLoading(true)\n axios.post('/integrationcontactreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = 'integrationcontactreport.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n // setLoading(false)\n })\n }\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n generateContactReport()\n // options.allColumns = true;\n // apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const uploadebuttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n\n \n {/* { history.push(importPath) }}*/}\n {/*>*/}\n {/* IMPORT PARTICIPANTS*/}\n {/**/}\n {/* { history.push(importDMPPath) }}*/}\n {/*>*/}\n {/* IMPORT DONORSNAP*/}\n {/**/}\n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n const editMutation = useCreateParticipant()\n const queryClient = useQueryClient()\n\n const onDelete = async () => {\n try {\n \n await editMutation.mutateAsync({\n participantid: particpantToDelete.participantid,\n eventid: Number(event.eventId),\n delete: true\n }, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n //setDialogMsg('Message was sent successfully.')\n }\n }\n })\n setParticpantToDelete(null)\n queryClient.invalidateQueries(['participant'])\n } catch {}\n }\n\n const columns = [\n {\n field: 'Edit',\n renderHeader: () => {\n return (\n {\n setReloadForm(reloadForm + 1)\n setParticpantToEdit(null)\n setIsFormShowing(true)\n }}\n size=\"small\">\n \n \n )\n },\n width: 75,\n sortable: false,\n renderCell: (params) => (\n {\n setReloadForm(reloadForm + 1)\n setParticpantToEdit(params.row as Participant)\n setIsFormShowing(true)\n }}>\n \n \n )\n },\n {\n field: 'authorizedbidder',\n type: 'boolean',\n headerName: 'Authorized',\n width: 150,\n editable: true\n },\n {\n field: 'bidnumber',\n type: 'string',\n headerName: 'Bidder #',\n width: 150,\n editable: false\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle #',\n width: 150,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'numberofbids',\n type: 'number',\n headerName: '# Bids',\n width: 200,\n editable: true\n },\n {\n field: 'numberwinningbids',\n type: 'number',\n headerName: '# Winning Items',\n width: 200,\n editable: true\n },\n {\n field: 'source',\n type: 'string',\n headerName: 'Source',\n width: 200,\n editable: true\n },\n {\n field: 'lastlogindate',\n headerName: 'Last Login',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return 'Never'\n }\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => (\n setParticpantToDelete(params.row as Participant)}>\n \n \n )\n }\n ]\n\n return (\n
\n <>\n \n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n Error Can't Delete\n\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n

Participants

\n
\n
\n \n {orgState.isdonorsnapcustomer &&\n \n \n Import Donorsnap\n \n \n }\n \n \n Import Spreadsheet\n \n \n\n \n
\n \n \n setParticpantToDelete(null)}\n />\n {\n const row = details.api?.getRow(params.id)\n editMutation.mutateAsync({\n ...(row || {}),\n eventid: Number(event.eventId),\n [params.field]: params.value\n })\n }}\n components={{\n Toolbar: CustomGridToolbar,\n }}\n componentsProps={{ toolbar: { csvOptions: { allColumns: true }}}}\n rows={rows}\n columns={columns}\n loading={isLoading}\n pagination={true}\n />\n
\n )\n}\n\nexport default ParticipantsPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\n\nexport type Participant = {\n participantid: number;\n authorizedbidder: boolean;\n first: string;\n last: string;\n company: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n country: string;\n phone: string;\n email: string;\n source: string;\n bidnumber: number;\n active: boolean;\n contactid: number;\n paddlenumbertext: string;\n participantname: string;\n}\n\nconst participantDefault = {\n participantid: 0,\n authorizedbidder: false,\n first: \"\",\n last: \"\",\n company: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n country: \"\",\n phone: \"\",\n email: \"\",\n source: \"\",\n bidnumber: 0,\n active: false,\n contactid: 0,\n paddlenumbertext: \"\",\n participantname:\"\"\n}\n\nexport type ContactData = {\n rownumber: number,\n contactid: number,\n first: string,\n last: string,\n email: string,\n first2: string,\n last2: string,\n email2: string,\n phone: string,\n cell: string,\n company: string,\n address1: string,\n paddlenumbertext : string\n }\nconst contactDataDefault = {\n rownumber: 0,\n contactid: 0,\n first: '',\n last: '',\n email: '',\n first2: '',\n last2: '',\n email2: '',\n phone: '',\n cell: '',\n company: '',\n address1: '',\n paddlenumbertext: ''\n}\ninterface ParticipantMerge {\n type: string;\n status: string;\n message: string;\n userdefinedtitle1: string;\n userdefinedtitle2: string;\n userdefinedtitle3: string;\n userdefinedtitle4: string;\n userdefinedtitle5: string;\n eventid: number;\n participantid: number;\n biddernumber: number | null;\n first: string;\n last: string;\n email: string;\n phone: string;\n address: string;\n address2: string;\n city: string;\n state: string;\n zip: string;\n userdefined1: string;\n userdefined2: string;\n userdefined3: string;\n userdefined4: string;\n userdefined5: string;\n lastlogindate: string;\n participantsource: string;\n participantcontactkey: number;\n currentwinningbids: number;\n numberofcheckouts: number;\n numberofintegrated: number;\n addressreadonly: boolean;\n }\n \n const defaultParticipantMerge: ParticipantMerge = {\n type: \"\",\n status: \"\",\n message: \"\",\n userdefinedtitle1: \"\",\n userdefinedtitle2: \"\",\n userdefinedtitle3: \"\",\n userdefinedtitle4: \"\",\n userdefinedtitle5: \"\",\n eventid: 0,\n participantid: 0,\n biddernumber: null,\n first: \"\",\n last: \"\",\n email: \"\",\n phone: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n userdefined1: \"\",\n userdefined2: \"\",\n userdefined3: \"\",\n userdefined4: \"\",\n userdefined5: \"\",\n lastlogindate: \"\",\n participantsource: \"\",\n participantcontactkey: 0,\n currentwinningbids: 0,\n numberofcheckouts: 0,\n numberofintegrated: 0,\n addressreadonly: false,\n };\n\n const globalAuctionReportFetcher = async (body) => {\n console.log(\" get participants global on query page\")\n\n const { data } = await axios.post('/participant', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.participants as Participant[]\n \n return headers\n}\n\nconst partipantMergePost = async (body) => {\n\n const { data } = await axios.post('/participantmerge', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData as ParticipantMerge\n \n return headers\n}\n\nconst partipantListingMergePost = async (body) => {\n\n const { data } = await axios.post('/participantmerge', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.participants as Participant[]\n \n return headers\n}\n\nexport const useFetchparticipentforMerge = (eventiDvalue, participantid) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['participantmerge', {eventiDvalue, participantid}],\n () => partipantMergePost({ \"eventid\": eventiDvalue, \"participantid\": participantid}),\n {\n staleTime: 100,\n placeholderData: defaultParticipantMerge \n }\n )\n}\nexport const useFetchparticipentsListing = (eventiDvalue) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['linkingparticipant', eventiDvalue],\n () => globalAuctionReportFetcher({ \"eventid\": eventiDvalue}),\n {\n staleTime: 100,\n placeholderData: [participantDefault] \n }\n )\n}\nexport const useFetchMergeparticipentsListing = (eventiDvalue) => {\n console.log(\" get participants usefetch on query page\")\n\n return useQuery(\n ['participantmerge', eventiDvalue],\n () => partipantListingMergePost({ \"eventid\": eventiDvalue}),\n {\n staleTime: 100,\n placeholderData: [participantDefault] \n }\n )\n}\n export const getParticpentLinkList = async (body) => {\n const { data } = await axios.post('/participantlinklookup', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.contactdata as ContactData[]\n \n return headers\n}\n\nexport const useFetchparticipentLinking = (eventiDvalue, participantid?, searchString?, contactid?) => {\n return useQuery(\n ['participantlinklookup', eventiDvalue , participantid, searchString, contactid],\n () => getParticpentLinkList({ \"eventid\": eventiDvalue, \"participantid\" : participantid, \"search\": searchString, \"contactid\": contactid}),\n {\n staleTime: 100,\n placeholderData: [contactDataDefault],\n\n }\n )\n}\n\n\nexport const usePutParticipantLink = () => {\n const queryClient = useQueryClient()\n //console.log(\" useputparticipant on query page\")\n\n return useMutation((body: any) =>\n axios.put(`participantlink`, body), {\n onSuccess: () => {\n console.log(\" success of useputparticipant on query page\")\n queryClient.invalidateQueries(['participantlinklookup'])\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\nexport const usePutParticipantMerge = () => {\n const queryClient = useQueryClient()\n //console.log(\" useputparticipant on query page\")\n\n return useMutation((body: any) =>\n axios.put(`participantmerge`, body), {\n onSuccess: () => {\n\n // queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\n\nexport const usePutParticipantUNLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`participantunlink`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}\n\nexport const usePutParticipantAutoLink = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`participantlinkauto`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['linkingparticipant'])\n }\n })\n}","import React, { useState, useMemo } from 'react'\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Paper from '@mui/material/Paper';\nimport Stack from '@mui/material/Stack';\nimport { DataGridPremium, DataGridPremiumProps, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams } from '@mui/x-data-grid-premium';\nimport {useFetchparticipentsListing, usePutParticipantUNLink, usePutParticipantAutoLink} from \"../../queries/useParticipantLinking\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { useParams } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport { makeStyles, Button, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions } from \"@material-ui/core\";\nimport styles from './ParticipantsListingPage.module.css'\n\ninterface Params {\n eventid: string\n}\n\n\n\nconst useStyle = makeStyles({\n root: {\n \"& .MuiDataGrid-columnHeaderTitle\": {\n overflow: \"visible\",\n lineHeight: \"1.43rem\",\n whiteSpace: \"normal\"\n }\n }\n});\n\n\n const ParticipantsListingPage = () => {\n \n const [dialogOpen, setDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const unLink = usePutParticipantUNLink()\n const autoLink = usePutParticipantAutoLink()\n const history = useHistory()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n //console.log(event)\n var rows = []\n\n const { data , isLoading } = useFetchparticipentsListing(event?.eventId);\n if(data){\n rows = data;\n }\n const columns = [\n {\n field: 'button',\n headerName: 'Link',\n width: 130,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n if(params.row.contactid > 0){\n return {\n unLink.mutate({\n eventid: event.eventId,\n participantid: params.row.participantid,\n },{\n onSuccess: (data) => {\n console.log(data)\n \n }\n })\n }}>\n UnLink\n ;\n }\n return {\n console.log(params)\n history.push({ \n pathname: '/auction/' + event.eventId + '/participantlinking',\n state:{\n data: params.row,\n }}\n )\n }}>\n Link\n ;\n \n }\n },\n //{ field: 'participantid', headerName: 'participantid' } ,\n {\n field: 'bidnumber',\n type: 'string',\n headerName: 'Bidder #',\n width: 75,\n editable: false\n },\n {\n field: 'authorizedbidder',\n type: 'boolean',\n headerName: 'Authorized',\n width: 90,\n editable: true\n },\n \n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 150,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 150,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 150,\n editable: true\n },\n {\n field: 'source',\n type: 'string',\n headerName: 'Source',\n width: 100,\n editable: true\n },\n {\n field: 'lastlogindate',\n headerName: 'Last Login',\n width: 175,\n valueFormatter: (params: GridValueFormatterParams) => {\n if (params.value) {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n }\n else {\n return 'Never'\n }\n },\n },\n {\n field: 'contactid',\n headerName: 'Linked Contact',\n width: 100,\n \n }\n ,\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n \n ];\n const classes = useStyle();\n\n return (\n
\n

Participant Linking

\n \n \n \n setDialogOpen(false)}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\"Auto Link Status\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n \n row.participantid}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n \n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n participantid: false,\n }}\n \n\n \n />\n
\n );\n }\n export default ParticipantsListingPage\n","import React, { useState, useMemo, useEffect } from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport { useForm } from 'react-hook-form'\nimport HookForm from '../../components/common/HookForm'\nimport AutocompleteSelect from \"../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport styles from './ParticipantMergePage.module.css'\nimport { TextField } from '@material-ui/core'\n\nimport {\n useFetchparticipentsListing,\n useFetchMergeparticipentsListing,\n usePutParticipantMerge,\n useFetchparticipentforMerge\n} from '../../queries/useParticipantLinking'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport dayjs from 'dayjs'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport axios from 'axios'\n\ninterface Params {\n id: string\n}\n\n\nconst ParticipantMergePage = () => {\n\n const { id } = useParams()\n useAutoEvent(id)\n const event = useEventState()\n const putLink = usePutParticipantMerge()\n const [selectedOldParticipant, setSelectedOldParticipant] = useState(null);\n const [selectedNewParticipant, setSelectedNewParticipant] = useState(null);\n\n const [confirmDialogOpen, setConfirmDialogOpen] = useState(false);\n const [successDialogOpen, setSuccessDialogOpen] = useState(false);\n const [dialogMessage, setDialogMessage] = useState('');\n const [mergeSuccess, setMergeSuccess] = useState(false);\n const formMethods = useForm({\n defaultValues: {\n participantidold: null,\n participantidnew: null,\n },\n });\n const { data, isLoading } = useFetchMergeparticipentsListing(event.eventId)\n if (data) {\n console.log(data)\n //rows = data\n }\n const { watch } = formMethods;\n const selectedOldParticipantId = watch('participantidold');\n const selectedNewParticipantId = watch('participantidnew');\n const getparticipantsOptions = () => {\n return data?.map(item =>{\n return {value:item.participantid, label:item.participantname }\n })\n }\n const participantsOptions = useMemo(() => getparticipantsOptions(), [data]);\n\n const [editedData, setEditedData] = useState({\n first: \"\",\n last: \"\",\n phone: \"\",\n address: \"\",\n address2: \"\",\n city: \"\",\n state: \"\",\n zip: \"\",\n currentWinningBids: \"\",\n numberOfCheckouts: \"\",\n numberOfIntegrated: \"\",\n paddlenumbertext: \"\"\n });\n \n const handleInputChange = (e) => {\n const { name, value } = e.target;\n setEditedData({\n ...editedData,\n [name]: value\n });\n };\ntype FormData = {\n participantidold: number\n participantidnew: number\n}\nconst [formData, setFormData] = useState(null);\n\n \nconst handleConfirmDialogOpen = (formData: FormData) => {\n setFormData(formData);\n setConfirmDialogOpen(true);\n};\n\nconst handleConfirmDialogClose = () => {\n setConfirmDialogOpen(false);\n};\n\nconst handleSuccessDialogClose = () => {\n setSuccessDialogOpen(false);\n if (mergeSuccess) {\n // Reset the selection and any other necessary state\n setSelectedOldParticipant(null);\n setSelectedNewParticipant(null);\n formMethods.reset();\n // ... any other state reset logic\n }\n};\n\n \n // useEffect(() => {\n // if (selectedOldParticipantId) {\n // const selectedParticipant = data?.find(item => item.participantid === selectedOldParticipantId);\n // setSelectedOldParticipant(selectedParticipant);\n // }\n // }, [selectedOldParticipantId, data]);\n\n // useEffect(() => {\n // if (selectedNewParticipantId) {\n // const selectedParticipant = data?.find(item => item.participantid === selectedNewParticipantId);\n // setSelectedNewParticipant(selectedParticipant);\n // }\n // }, [selectedNewParticipantId, data]);\n \n useEffect(() => {\n if (selectedOldParticipantId) {\n axios.post('/participantmerge', {\n eventid: event.eventId,\n participantid: selectedOldParticipantId\n }).then(response => {\n const data = JSON.parse(response.data.jsonString)\n setSelectedOldParticipant(data);\n }).catch(error => {\n console.error('Error fetching old participant data:', error);\n });\n }\n }, [selectedOldParticipantId, event.eventId]);\n\n useEffect(() => {\n if (selectedNewParticipantId) {\n axios.post('/participantmerge', {\n eventid: event.eventId,\n participantid: selectedNewParticipantId\n }).then(response => {\n const data = JSON.parse(response.data.jsonString)\n setSelectedNewParticipant(data);\n }).catch(error => {\n console.error('Error fetching new participant data:', error);\n });\n }\n }, [selectedNewParticipantId, event.eventId]);\n\n const onSubmit = async () => {\n if (formData) {\n\n handleConfirmDialogClose(); // Close confirmation dialog\n\n console.log(data)\n\n try {\n await putLink.mutateAsync({\n eventid: Number(event.eventId),\n participantidold: formData.participantidold,\n participantidnew: formData.participantidnew,\n first: editedData.first,\n last: editedData.last,\n address: editedData.address,\n address2: editedData.address2,\n city: editedData.city,\n state: editedData.state,\n zip: editedData.zip,\n phone: editedData.phone,\n paddlenumbertext : editedData.paddlenumbertext\n\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"success\") {\n setDialogMessage(` ${selectedOldParticipant.first} ${selectedOldParticipant.last} was successfully merged into ${selectedNewParticipant.first} ${selectedNewParticipant.last}`);\n setMergeSuccess(true);\n } else {\n setDialogMessage(`An error has occurred. Participant merge was not successful.`);\n setMergeSuccess(false);\n }\n setSuccessDialogOpen(true);\n }\n })\n } catch {\n setDialogMessage(`An error has occurred. Participant merge was not successful.`);\n setMergeSuccess(false);\n setSuccessDialogOpen(true);\n }\n }\n }\n useEffect(() => {\n if (selectedNewParticipant) {\n setEditedData({\n first: selectedNewParticipant.first || \"\",\n last: selectedNewParticipant.last || \"\",\n phone: selectedNewParticipant.phone || \"\",\n address: selectedNewParticipant.address || \"\",\n address2: selectedNewParticipant.address2 || \"\",\n city: selectedNewParticipant.city || \"\",\n state: selectedNewParticipant.state || \"\",\n zip: selectedNewParticipant.zip || \"\",\n currentWinningBids: selectedNewParticipant.currentwinningbids || \"\",\n numberOfCheckouts: selectedNewParticipant.numberofcheckouts || \"\",\n numberOfIntegrated: selectedNewParticipant.numberofintegrated || \"\",\n paddlenumbertext : selectedNewParticipant.paddlenumbertext || \"\"\n });\n }\n }, [selectedNewParticipant]);\n\n\n\n return (\n
\n \n\n\n \n \n
\n \n
\n {selectedOldParticipant && (\n<> Old Participant Details\n Bidder Number: {selectedOldParticipant.biddernumber}\n Paddle Number: {selectedOldParticipant.paddlenumbertext}\n First Name: {selectedOldParticipant.first}\n Last Name: {selectedOldParticipant.last}\n Email: {selectedOldParticipant.email}\n Phone: {selectedOldParticipant.phone}\n Address: {selectedOldParticipant.address}\n Address 2: {selectedOldParticipant.address2}\n City: {selectedOldParticipant.city}\n State: {selectedOldParticipant.state}\n ZIP: {selectedOldParticipant.zip}\n Last Login Date: {selectedOldParticipant.lastlogindate ? dayjs(selectedOldParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n Participant Source: {selectedOldParticipant.participantsource}\n Participant Contact Key: {selectedOldParticipant.participantcontactkey > 0 ? selectedOldParticipant.participantcontactkey : \"None\"}\n Current Winning Bids: {selectedOldParticipant.currentwinningbids}\n Number of checkouts: {selectedOldParticipant.numberofcheckouts}\n Authorized: {selectedOldParticipant.authorizedbidder ? 'YES' : 'NO'}\n {/* Number of Checkouts: {selectedOldParticipant.numberofcheckouts}\n Number of Integrated: {selectedOldParticipant.numberofintegrated} */}\n \n )}\n
\n \n \n
\n \n
\n {selectedNewParticipant && (\n <>\n New Participant Details\n Bidder Number: {selectedNewParticipant.biddernumber}\n Paddle Number: {selectedNewParticipant.paddlenumbertext}\n First Name: {selectedNewParticipant.first}\n Last Name: {selectedNewParticipant.last}\n Email: {selectedNewParticipant.email}\n Phone: {selectedNewParticipant.phone}\n Address: {selectedNewParticipant.address}\n Address 2: {selectedNewParticipant.address2}\n City: {selectedNewParticipant.city}\n State: {selectedNewParticipant.state}\n ZIP: {selectedNewParticipant.zip}\n\n {/* {selectedNewParticipant.userdefinedtitle1}: {selectedNewParticipant.userdefined1}\n {selectedNewParticipant.userdefinedtitle2}: {selectedNewParticipant.userdefined2}\n {selectedNewParticipant.userdefinedtitle3}: {selectedNewParticipant.userdefined3}\n {selectedNewParticipant.userdefinedtitle4}: {selectedNewParticipant.userdefined4}\n {selectedNewParticipant.userdefinedtitle5}: {selectedNewParticipant.userdefined5} */}\n Last Login Date: {selectedNewParticipant.lastlogindate ? dayjs(selectedNewParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n Participant Source: {selectedNewParticipant.participantsource}\n Participant Contact Key: {selectedNewParticipant.participantcontactkey > 0 ? selectedNewParticipant.participantcontactkey : \"None\"}\n Current Winning Bids: {selectedNewParticipant.currentwinningbids}\n Number of checkouts: {selectedNewParticipant.numberofcheckouts}\n Authorized: {selectedNewParticipant.authorizedbidder ? 'YES' : 'NO'}\n\n {/* Number of Checkouts: {selectedNewParticipant.numberofcheckouts}\n Number of Integrated: {selectedNewParticipant.numberofintegrated} */}\n \n)}\n
\n \n Resulting Data\n\n \n \n \n \n \n \n \n \n \n \n \n Email: {selectedNewParticipant?.email }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Bidder Number: {selectedNewParticipant?.biddernumber}\n \n \n Last Login: {selectedNewParticipant?.lastlogindate ? dayjs(selectedNewParticipant.lastlogindate as string).format('MM-DD-YYYY hh:mm A') : 'Never'}\n \n \n Participant Source: {selectedNewParticipant?.participantsource}\n \n \n Contact Key: {selectedNewParticipant?.participantcontactkey > 0 ? selectedNewParticipant.participantcontactkey : \"None\"}\n \n \n Authorized: {selectedNewParticipant?.authorizedbidder ? 'YES' : 'NO'}\n \n Number of checkouts: {((selectedOldParticipant?.numberofcheckouts || 0) + (selectedNewParticipant?.numberofcheckouts || 0))}\n \n Current Winning Bids: {((selectedOldParticipant?.currentwinningbids || 0) + (selectedNewParticipant?.currentwinningbids || 0))}\n \n \n \n {/* \n \n Number of Checkouts: {((selectedOldParticipant?.numberofcheckouts || 0) + (selectedNewParticipant?.numberofcheckouts || 0))}\n \n \n \n \n Number of Integrated: {((selectedOldParticipant?.numberofintegrated || 0) + (selectedNewParticipant?.numberofintegrated || 0))}\n \n */}\n \n Submit\n \n \n \n
\n\n \n \n \n {\"Confirm Merge\"}\n \n \n Are you sure you want to merge \n {selectedOldParticipant ? ` ${selectedOldParticipant.first} ${selectedOldParticipant.last} ` : ' [old contact]'} \n into \n {selectedNewParticipant ? ` ${selectedNewParticipant.first} ${selectedNewParticipant.last}` : ' [new contact]'}? \n This operation cannot be undone. All bids/carts/checkouts will be moved to the \n {selectedNewParticipant ? ` ${selectedNewParticipant.first} ${selectedNewParticipant.last} ` : ' [new contact]'} \n record and \n {selectedOldParticipant ? ` ${selectedOldParticipant.first} ${selectedOldParticipant.last} ` : ' [old contact]'} \n will be permanently deleted.\n \n \n \n \n \n \n \n\n \n {\"Operation Result\"}\n \n \n {dialogMessage}\n \n \n \n \n \n \n\n
\n )\n}\nexport default ParticipantMergePage\n","import Paper from '@mui/material/Paper';\nimport InputBase from '@mui/material/InputBase';\nimport IconButton from '@mui/material/IconButton';\nimport SearchIcon from '@mui/icons-material/Search';\nimport { useState } from 'react';\n\nconst SearchBar = (props) => {\n const [searchText, setsearchText] = useState(\"\")\n const onKeyPress = (e) => {\n if (e.key === \"Enter\") {\n \n e.preventDefault();\n props.onClick(searchText)\n }\n }\n return (\n \n \n setsearchText(e.target.value)}\n onKeyPress={(e) => onKeyPress(e)}\n />\n props.onClick(searchText)}>\n \n \n \n );\n}\n\nexport default SearchBar","import React, { useState, useMemo } from 'react'\nimport Box from '@mui/material/Box'\nimport Grid from '@mui/material/Grid'\nimport Typography from '@mui/material/Typography'\nimport Paper from '@mui/material/Paper'\nimport Stack from '@mui/material/Stack'\nimport {\n DataGridPremium,\n DataGridPremiumProps,\n GridToolbarContainer,\n GridToolbarExport,\n GridValueFormatterParams\n} from '@mui/x-data-grid-premium'\nimport {\n useFetchparticipentLinking,\n usePutParticipantLink,\n getParticpentLinkList\n} from '../../queries/useParticipantLinking'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { EventState, setEvent, useEventState } from '../../slices/eventSlice'\nimport dayjs from 'dayjs'\nimport { formatMoney } from '../../util/formatHelpers'\nimport { makeStyles, Button } from '@material-ui/core'\nimport SearchBar from '../../components/common/inputs/SearchBar'\ninterface Params {\n eventid: string\n}\n\nconst useStyle = makeStyles({\n root: {\n '& .MuiDataGrid-columnHeaderTitle': {\n overflow: 'visible',\n lineHeight: '1.43rem',\n whiteSpace: 'normal'\n }\n }\n})\n\nconst ParticipantsLinkingPage = () => {\n const [searchP, setsearchP] = useState({ipk:undefined, multi:undefined})\n\n \n const onClickMultiSearch = (searchString) => {\n console.log(searchString)\n setsearchP({ipk:null, multi:searchString})\n\n }\n const onClickIPKSearch = (ipk) => {\n console.log(ipk)\n\n setsearchP({ipk:ipk, multi:null})\n\n }\n const history = useHistory()\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n const putLink = usePutParticipantLink()\n console.log(event)\n var rows = []\n //todo: any decleration is not a great way to do this but going for speed\n const propPass: any = useLocation()\n console.log(propPass)\n const participantinfo = propPass.state?.data\n const { data, isLoading } = useFetchparticipentLinking(\n event?.eventId,\n participantinfo.participantid,\n searchP.multi == null ? undefined : searchP.multi,\n searchP.ipk == null ? undefined : searchP.ipk\n )\n if (data) {\n rows = data\n }\n const columns = [\n {\n field: 'buttons',\n headerName: 'Link',\n width: 150,\n disableExport: true,\n sortable: false,\n renderCell: (params) => {\n return (\n {\n console.log('before useputparticipant on linking page')\n\n putLink.mutate(\n {\n eventid: event.eventId,\n contactid: params.row.contactid,\n participantid: participantinfo.participantid\n\n },\n {\n onSuccess: (data) => {\n console.log('on success useputparticipant on linking page')\n console.log(data)\n history.push(\n '/auction/' + event.eventId + '/participantslinking'\n )\n }\n }\n )\n }}>\n Link\n \n )\n }\n },\n { field: 'rownumber', headerName: 'rownumber' },\n {\n field: 'contactid',\n type: 'string',\n headerName: 'Contact ID',\n width: 100,\n editable: false\n },\n {\n field: 'first',\n type: 'string',\n headerName: 'First Name',\n width: 200,\n editable: true\n },\n {\n field: 'last',\n type: 'string',\n headerName: 'Last Name',\n width: 200,\n editable: true\n },\n {\n field: 'email',\n type: 'string',\n headerName: 'Email',\n width: 200,\n editable: false\n },\n {\n field: 'first2',\n type: 'string',\n headerName: 'First Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'last2',\n type: 'string',\n headerName: 'Last Name 2',\n width: 200,\n editable: true\n },\n {\n field: 'email2',\n type: 'string',\n headerName: 'Email 2',\n width: 200,\n editable: false\n },\n {\n field: 'phone',\n type: 'string',\n headerName: 'Phone',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'cell',\n type: 'string',\n headerName: 'Cell',\n valueFormatter: (params) => {\n var cleaned = ('' + params.value).replace(/\\D/g, '')\n var match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n return match\n ? '(' + match[1] + ') ' + match[2] + '-' + match[3]\n : params.value\n },\n width: 200,\n editable: true\n },\n {\n field: 'company',\n type: 'string',\n headerName: 'Company',\n width: 200,\n editable: true\n },\n {\n field: 'address1',\n type: 'string',\n headerName: 'Address',\n width: 200,\n editable: true\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle Number',\n width: 200,\n editable: true\n }\n ]\n const classes = useStyle()\n\n return (\n
\n \n \n \n {`Participant # ${participantinfo.participantid}`}\n \n \n \n {`${participantinfo.first} ${participantinfo.last}`}\n {participantinfo.address}\n \n \n \n {`${participantinfo.email}`}\n {participantinfo.city}\n \n \n \n {participantinfo.phone}\n {`${participantinfo.state} ${participantinfo.zip}`}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n\n \n \n \n \n row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false\n }}\n />\n
\n )\n}\nexport default ParticipantsLinkingPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useImportParticipants = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/importparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importparticipants'])\n }\n })\n}\n\nexport const useParticipantsImportFields = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`importparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importparticipants'])\n }\n })\n}\n\nexport const useParticipantsImportDMPList = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`importdmpparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importdmpparticipants'])\n }\n })\n}\n\n\nexport const useParticipantsImportDataMiner = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`importdmpparticipants`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['importdmpparticipants'])\n }\n })\n}\n\n\n\n","import { DropzoneDialog } from 'material-ui-dropzone'\nimport React, {useEffect, useState} from 'react'\nimport exportFromJSON from 'export-from-json'\nimport { useForm } from 'react-hook-form'\nimport XLSX from 'xlsx'\nimport styled from \"@emotion/styled\"\nimport {Button, Box, Dialog, DialogContent, DialogContentText, DialogActions, List} from '@material-ui/core'\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput'\nimport styles from './ImportPage.module.css'\nimport download from 'downloadjs';\nimport XlsxPopulate from \"xlsx-populate\";\nimport { saveAs } from \"file-saver\";\nimport {\n Typography,\n StepLabel,\n Step,\n Stepper,\n ListItemText,\n ListItem,\n Grid,\n ListItemButton,\n FormControl, Select, MenuItem\n} from \"@mui/material\";\nimport Dropzone from \"react-dropzone\";\nimport LoadingBackdrop from \"../../../components/common/LoadingBackdrop\";\nimport {\n useImportParticipants,\n useParticipantsImportFields,\n useParticipantsImportDMPList,\n useParticipantsImportDataMiner\n} from \"../../../pages/ParticipantsPage/ImportPage/useImportParticipants\"\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {useHistory} from \"react-router-dom\";\nimport {DataGridPro} from \"@mui/x-data-grid-pro\";\nimport {emailRegex} from \"../../../util/formValidation\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../../queries/useAutoEvent\";\nimport {useMutation, useQueryClient} from \"react-query\";\nimport axios from \"axios\";\n\ntype FormData = {\n isDMPMethod: boolean\n dmp: string\n dmpsource: string\n // first: string\n // last: string\n // email: string\n // phone: string\n // address1: string\n // address2: string\n // city: string\n // state: string\n // zip: string\n workbookSelection: string\n}\n\n\n\ninterface Params {\n eventid: string\n importtype: string\n}\n\nconst ImportPage = () => {\n \n const { eventid, importtype } = useParams()\n const queryClient = useQueryClient()\n useAutoEvent(eventid)\n\n const source = importtype === 'dmp' ? 'Select DataMiner Source' : 'Select Source'\n const steps = [source, 'Match Fields', 'Import Participants'];\n\n // const event = useEventState()\n const history = useHistory()\n const formMethods = useForm()\n const {watch, getValues, setValue} = formMethods\n const [workbook, setWorkBook] = useState(null)\n const [isUploaderOpen, setIsUploaderOpen] = useState(false)\n const [selectedFile, setSelectedFile] = useState(null)\n const [selectedWorkbookSheet, setSelectedWorkbookSheet] = useState(null)\n const [tableData, setTableData] = useState(null)\n const [finalTableData, setFinalTableData] = useState([])\n const [jsonString, setJsonString] = useState(null)\n const [jsonErrorString, setJsonErrorString] = useState(null)\n const [jsonFinalString, setJsonFinalString] = useState(null)\n const [dataKeys, setDataKeys] = useState(null)\n const [selectedField, setSelectedField] = useState<{ value: string, label: string }[]>([{ value: 'First', label: 'First' }, { value: 'Last', label: 'Last' }, { value: 'Phone', label: 'Phone' }, { value: 'Email', label: 'Email' }, { value: 'Address1', label: 'Address1' }, { value: 'Address2', label: 'Address2' }, { value: 'City', label: 'City' }, { value: 'State', label: 'State' }, { value: 'Zip', label: 'Zip' }])\n const [isLoading, setIsLoading] = useState(false)\n const [activeStep, setActiveStep] = useState(0);\n const [nextEnabled, setNextEnabled] = useState(false);\n const [checkWatch, setCheckWatch] = useState(0);\n const [skipped, setSkipped] = useState(new Set());\n const [dropOptions, setDropOptions] = useState(new Set());\n const importParticipants = useImportParticipants();\n const importParticipantsFields = useParticipantsImportFields();\n const importParticipantsDMPList = useParticipantsImportDMPList();\n const importParticipantsDataMiner = useParticipantsImportDataMiner();\n const importParticipantsSpreadsheet = useImportParticipants();\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [errorList, setErrorList] = useState(null)\n\n\n const [fieldData, setFieldData] = useState([])\n const [displayFieldData, setDisplayFieldData] = useState([])\n const [bypassFieldData, setBypassFieldData] = useState([])\n const [requiredFields, setRequiredFields] = useState([])\n const [dmpList, setDMPList] = useState([])\n const [finalColumns, setfinalColumns] = useState< {field: string, type: string, headerName: string, width: number}[]>()\n\n const batchIdWatch = watch('dmpsource')\n\n useEffect(() => {\n loadFieldsData(batchIdWatch)\n setNextEnabled(true)\n }, [batchIdWatch])\n\n useEffect(() => {\n if (activeStep === 1) {\n var enabledNext = true\n requiredFields.forEach(item => {\n if (getValues(item) === 'none') {\n enabledNext = false\n }\n })\n setNextEnabled(enabledNext)\n }\n }, [checkWatch])\n\n useEffect(() => {\n loadFieldsData(null)\n\n if (importtype === 'dmp') {\n loadDMPList()\n }\n }, [])\n\n const onClickSelect = () => {\n setCheckWatch(checkWatch+1)\n }\n\n // useEffect(() => {\n // const field = \"dnpsource\"\n // setValue(field, dmpList[0].batch)\n // }, [dmpList])\n\n enum importSteps {\n selectSource = 0,\n matchFields = 1,\n importParticipants = 2\n }\n\n const setupDropOptions = (opts) => {\n const newOptions = new Set();\n opts.forEach((key) => {\n newOptions.add(key)\n })\n setDropOptions(newOptions)\n }\n\n const isStepOptional = (step) => {\n return false;\n }\n\n const closeDialog = () => {\n history.goBack()\n setDialogMsg('')\n }\n\n const generateErrorReport = () => {\n saveAsExcel(errorList)\n }\n\n const loadDMPList = async () => {\n await importParticipantsDMPList.mutateAsync({\n eventid: Number(eventid),\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"success\") {\n setDMPList(json.batchlist)\n }\n }\n })\n }\n\n const loadFieldsData = async (batchId: any) => {\n const body = (batchId ? { eventid: Number(eventid), batchid: batchId } : { eventid: Number(eventid) })\n const callType = (batchId ? importParticipantsDMPList : importParticipantsFields)\n await callType.mutateAsync(body,{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === \"success\") {\n const fieldConvertedData = json.fieldlist.map(field => {\n return {field: field.fieldmatch, header: field.title, required: field.required, display: field.display, minlength: field.minlength, maxlength: field.maxlength}\n })\n\n\n\n setFieldData(fieldConvertedData)\n setDisplayFieldData(fieldConvertedData.filter((v) => v.display))\n setBypassFieldData(fieldConvertedData.filter((v) => v.display === false))\n\n setRequiredFields(fieldConvertedData.filter((v) => (v.display === true && v.required === true)).map(requiredWatch => {\n return requiredWatch.field\n }))\n }\n }\n })\n }\n\n const canDisplayField = (field) => {\n // console.log(fieldData)\n // console.log(field)\n // const filteredFieldData = fieldData.filter((v) => v.field === field)\n // if (filteredFieldData && filteredFieldData.length > 0) {\n // return filteredFieldData[0].display\n // }\n // return false\n return field\n }\n\n const handleNext = async () => {\n if (activeStep === 0 && importtype === 'dmp') {\n setIsLoading(true)\n await importParticipantsDMPList.mutateAsync({\n eventid: Number(eventid),\n batchid: batchIdWatch\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n let rowObject = json.batchdata.map(({rownumber, ...rest}) => ({...rest}));\n // let rowObject = json.batchdata\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n const filteredKey = keys.filter((key) => canDisplayField(key))\n setDataKeys(filteredKey)\n setupDropOptions(filteredKey)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return {...(r as object), id: i}\n })\n )\n processKeys(filteredKey)\n const data = JSON.stringify(rowObject)\n setJsonString(data)\n }\n setIsLoading(false)\n }\n })\n }\n\n if (activeStep === 2) {\n const batchId = batchIdWatch\n const body = (batchId ? { eventid: Number(eventid), batchid: batchId, participantsData: JSON.parse(jsonFinalString) } : { eventid: Number(eventid), participantsData: JSON.parse(jsonFinalString) })\n const callType = (batchId ? importParticipantsDataMiner : importParticipantsSpreadsheet)\n setIsLoading(true)\n await callType.mutateAsync(body,{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n setErrorList(json.errorlist)\n\n if (json.message.length > 0) {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Import has completed successfully.')\n }\n queryClient.invalidateQueries(['participant', Number(eventid)])\n setIsLoading(false)\n }\n })\n }\n\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\n };\n\n function getSheetData(data, header) {\n var fields = Object.keys(data[0]);\n var sheetData = data.map(function (row) {\n return fields.map(function (fieldName) {\n return row[fieldName] ? row[fieldName] : \"\";\n });\n });\n sheetData.unshift(header);\n return sheetData;\n }\n\n async function saveAsExcel(data) {\n let header = Object.keys(data[0]);\n XlsxPopulate.fromBlankAsync().then(async (workbook) => {\n const sheet1 = workbook.sheet(0);\n const sheetData = getSheetData(data, header);\n const totalColumns = sheetData[0].length;\n\n sheet1.cell(\"A1\").value(sheetData);\n const range = sheet1.usedRange();\n const endColumn = String.fromCharCode(64 + totalColumns);\n sheet1.row(1).style(\"bold\", true);\n sheet1.range(\"A1:\" + endColumn + \"1\").style(\"fill\", \"BFBFBF\");\n range.style(\"border\", true);\n return workbook.outputAsync().then((res) => {\n saveAs(res, \"error_report.xlsx\");\n });\n });\n }\n\n const handleBack = () => {\n setNextEnabled(true)\n setActiveStep(activeStep - 1);\n };\n\n const handleReset = () => {\n setActiveStep(0);\n };\n\n const columns = dataKeys?.map((key) => {\n return {\n field: key,\n type: 'string',\n headerName: key,\n width: 120\n }\n })\n\n const finalcolumns = displayFieldData.map((key) => {\n return {\n field: key.field,\n type: 'string',\n headerName: key.header,\n width: 130\n }\n })\n\n const selectDMPOptions =\n dmpList?.map((obj) => {\n return { value: obj.batchid, label: obj.batch }\n }) || []\n\n const selectOptions =\n dataKeys?.map((obj) => {\n return { value: obj, label: obj }\n }) || []\n\n const onSubmit = async (formData: FormData) => {\n console.log('onsubmit')\n console.log(activeStep)\n const formDataKeys = Object.keys(formData)\n\n if (activeStep === 2) {\n let errorJson = []\n let goodJson = []\n const dataObject = JSON.parse(jsonString)\n\n dataObject.forEach(item => {\n // var errorItem = null\n var addItem = {}\n // console.log(item)\n\n bypassFieldData.forEach((v) => {\n addItem[v.field] = item[v.field]\n })\n\n // console.log(formDataKeys)\n formDataKeys.forEach(formKey => {\n if (formKey === 'dmpsource' || formKey === 'workbookSelection') {\n return\n }\n const value = formData[formKey]\n if (value !== 'none') {\n const fieldDataFiltered = fieldData.filter((v, i) => v.field === formKey)\n if (fieldDataFiltered && fieldDataFiltered?.length > 0) {\n addItem[formKey] = item[value]?.toString()\n }\n }\n })\n\n goodJson.push(addItem)\n })\n\n setFinalTableData(\n goodJson.map((r, i) => {\n return { ...(r as object), id: i }\n })\n )\n const data = JSON.stringify(goodJson)\n setJsonFinalString(data)\n }\n }\n\n const getSheet = () => {\n const workbookSelection1 = watch('workbookSelection')\n setSelectedWorkbookSheet(workbookSelection1)\n processWorksheet(workbookSelection1)\n }\n\n const processWorksheet = (sheetToProcess: string) => {\n workbook.SheetNames.forEach((sheet) => {\n if (sheet === sheetToProcess) {\n let rowObject = XLSX.utils.sheet_to_json(workbook.Sheets[sheet],{raw: true, defval:null})\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n\n setDataKeys(keys)\n setupDropOptions(keys)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return {...(r as object), id: i}\n })\n )\n const data = JSON.stringify(rowObject)\n console.log(data)\n setJsonString(data)\n }\n })\n }\n\n const processKeys = (keys) => {\n // console.log('keys' + keys)\n keys.forEach(key => {\n fieldData.map((fieldD) => {\n const currentFieldValue = getValues(fieldD.field)\n if (!currentFieldValue && key.toLowerCase().includes(fieldD.field) || fieldD.field.toLowerCase().includes(key)) {\n // console.log('setting - ' + fieldD.field + ' value - ' + key)\n setValue(fieldD.field, key);\n }\n }\n )})\n\n\n fieldData.map((fieldD) => {\n const fieldValue = getValues(fieldD.field)\n if (fieldValue === undefined || fieldValue?.length === 0) {\n setValue(fieldD.field, 'none');\n }\n })\n }\n\n const onSave = async (files: File[]) => {\n if (files && files.length > 0) {\n setIsUploaderOpen(false)\n setSelectedFile(files[0])\n const fileReader = new FileReader()\n fileReader.onload = function (event) {\n const data = event.target.result\n\n const loadedWorkbook = XLSX.read(data, {\n type: 'binary'\n })\n setWorkBook(loadedWorkbook)\n\n const sheet = loadedWorkbook.SheetNames[0]\n setSelectedWorkbookSheet(sheet)\n let rowObject = XLSX.utils.sheet_to_json(loadedWorkbook.Sheets[sheet], {raw: true, defval:null})\n const keys = rowObject && rowObject.length > 0 ? Object.keys(rowObject[0]) : ['']\n\n // Process matches on keys\n processKeys(keys)\n setDataKeys(keys)\n setupDropOptions(keys)\n setTableData(\n rowObject.slice(0, 5).map((r, i) => {\n return { ...(r as object), id: i }\n })\n )\n const jsonData = JSON.stringify(rowObject)\n console.log(jsonData)\n setJsonString(jsonData)\n }\n fileReader.readAsBinaryString(files[0])\n setNextEnabled(true)\n }\n else {\n setSelectedFile(null)\n setNextEnabled(false)\n }\n }\n\n return (\n
\n

Import Participants

\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n {(errorList && errorList.length > 0) &&\n \n }\n \n \n \n \n\n \n \n \n {steps.map((label, index) => {\n const stepProps: { completed?: boolean } = {};\n const labelProps: {\n optional?: React.ReactNode;\n } = {};\n if (isStepOptional(index)) {\n labelProps.optional = (\n Optional\n )\n }\n\n return (\n \n {label}\n \n )\n })}\n \n\n {activeStep === steps.length ? (\n <>\n {/**/}\n {/* All steps completed - you're finished*/}\n {/**/}\n {/**/}\n {/* */}\n {/* */}\n {/**/}\n \n ) : (\n <>\n \n {(activeStep === importSteps.selectSource && importtype === \"dmp\") && (\n <>\n \n \n \n \n \n \n )}\n {(activeStep === importSteps.selectSource && importtype !== \"dmp\") && (\n
\n \n {({ getRootProps,\n getInputProps,\n isDragActive,\n isDragAccept,\n isDragReject,\n acceptedFiles,\n fileRejections\n }) => (\n
\n
\n \n {isDragAccept && (

File is a valid Excel. Go ahead and drop.

)}\n {!isDragActive && (

Drag 'n' drop Excel files here, or click to select Excel files

)}\n {isDragReject && (

File cannot be dropped. It's an invalid type.

)}\n (The file must be of type .xls, .xlsx, or .csv.)\n
\n
\n {workbook && workbook.SheetNames.length === 1 && selectedFile && selectedFile?.name && (

Click the 'NEXT' button below to continue processing '{selectedFile && selectedFile?.name} - {selectedFile?.size} bytes'

)}\n {fileRejections && fileRejections.length > 0 && (

The file type is invalid. The file must be of type .xls, .xlsx, or .csv.

)}\n {workbook && workbook.SheetNames?.length > 1 && (

Click the 'NEXT' button below to continue processing the sheet named '{selectedWorkbookSheet}'

)}\n {workbook && workbook.SheetNames.length > 1 &&\n \n }\n
\n
\n )}\n \n
\n )}\n
\n {activeStep === importSteps.matchFields && (\n
\n
\n {displayFieldData.map((fieldData) =>\n {onClickSelect()}}\n // required={fieldData.required}\n rules={{\n validate: (val) => (fieldData.required && (val === 'none' || val?.length === 0)) ? fieldData.header + \" is required.\" : true,\n }}\n />\n )}\n
\n
\n
\n \n Preview Uploaded File\n \n
\n \n
\n
\n )}\n {activeStep === importSteps.importParticipants && (\n <>\n
\n \n
\n \n )}\n\n \n {activeStep > importSteps.selectSource && (\n \n Back\n \n )}\n\n \n \n \n \n )}\n \n \n
\n )\n}\n\nexport default ImportPage\n","import axios from 'axios'\nimport React, { useEffect, useState } from 'react'\n\nimport { getConfig } from '../AppConfig'\n\nconst HttpInterceptor = () => {\n const [authReqInterceptor, setAuthReqInterceptor] = useState(undefined)\n const [jsonResponseInterceptor, setJsonResponseInterceptor] =\n useState(undefined)\n const [urlInterceptor, setUrlInterceptor] = useState(undefined)\n // eslint-disable-next-line no-undef\n const { apiUrl } = getConfig()\n\n const addAuthInterceptor = () => {\n const interceptor = axios.interceptors.request.use(\n (config) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!config.headers.hasOwnProperty('Authorization')) {\n const token = localStorage.getItem('tokenadmin')\n if (token) {\n config.headers.Authorization = 'Bearer ' + token\n }\n } else if (!config.headers.Authorization) {\n delete config.headers.Authorization\n }\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setAuthReqInterceptor(interceptor)\n }\n\n const addParseResponseInterceptor = () => {\n const interceptor = axios.interceptors.response.use(\n (res: any) => {\n // eslint-disable-next-line no-prototype-builtins\n return res.data?.jsonInfo ? JSON.parse(res.data.jsonInfo) : res\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setJsonResponseInterceptor(interceptor)\n }\n\n const addBaseUrlInterceptor = () => {\n const interceptor = axios.interceptors.request.use(\n (config) => {\n if (!config.url.includes('http')) {\n config.baseURL = apiUrl\n }\n return config\n },\n (error) => {\n return Promise.reject(error)\n }\n )\n setUrlInterceptor(interceptor)\n }\n\n const removeAuthInterceptor = () => {\n axios.interceptors.request.eject(authReqInterceptor)\n setAuthReqInterceptor(undefined)\n }\n\n const removeBaseUrlInterceptor = () => {\n axios.interceptors.request.eject(urlInterceptor)\n setAuthReqInterceptor(undefined)\n }\n\n const removeJsonResponseInterceptor = () => {\n axios.interceptors.request.eject(jsonResponseInterceptor)\n setJsonResponseInterceptor(undefined)\n }\n\n useEffect(() => {\n addAuthInterceptor()\n addBaseUrlInterceptor()\n addParseResponseInterceptor()\n return () => {\n removeAuthInterceptor()\n removeBaseUrlInterceptor()\n removeJsonResponseInterceptor()\n }\n }, [])\n\n return \n}\n\nexport default HttpInterceptor\n","import {\n combineReducers,\n configureStore,\n getDefaultMiddleware\n} from '@reduxjs/toolkit'\n\nimport auth from '../slices/authSlice'\nimport event from '../slices/eventSlice'\nimport evt from '../slices/evtSlice'\nimport org from '../slices/orgSlice'\n\n\nconst rootReducer = combineReducers({\n auth,\n event,\n org,\n evt\n})\n\nexport default configureStore({\n reducer: rootReducer,\n middleware: [...getDefaultMiddleware()],\n // eslint-disable-next-line no-undef\n devTools: process.env.NODE_ENV === 'development'\n})\n\nexport type AppState = ReturnType\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface BidMaintenance {\n rownumber: number\n historyid: number\n biddername: string\n itemnumber: string\n bidtime: string\n bidtype: string\n quantity: number\n bidamount: number\n bidautoamount: number\n checkoutcompleted: boolean\n itembiddingclosed: number\n active: boolean\n}\n\nconst BidMaintenanceDefaults = {\n rownumber: 0,\n historyid: 0,\n biddername: \"\",\n itemnumber: \"\",\n bidtime: \"\",\n bidtype: \"\",\n quantity: 0,\n bidamount: 0,\n bidautoamount: 0,\n checkoutcompleted: false,\n itembiddingclosed: 0,\n active: true\n}\n\nexport const useFetchBidMaintenance = (eventIdvalue) => {\n return useQuery(\n ['bidmaintenance', eventIdvalue],\n () => globalBidMaintenanceFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: [BidMaintenanceDefaults],\n keepPreviousData: true\n }\n )\n}\n\nexport const useUpdateBidMaintenance = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`bidmaintenance`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['bidmaintenance'])\n }\n })\n}\n\nexport const globalBidMaintenanceFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/bidmaintenance', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.bids as BidMaintenance[]\n}\n","import React, { useState } from 'react'\nimport styles from './BidMaintenancePage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from \"@material-ui/core\";\nimport {Delete} from \"@material-ui/icons\";\nimport {useFetchBidMaintenance, useUpdateBidMaintenance} from \"../../queries/useFetchBidMaintenance\";\nimport dayjs from \"dayjs\";\nimport {DataGridPremium, GridValueFormatterParams, GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n\nconst BidMaintenancePage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchBidMaintenance(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n const updateBidMaintenanceMutation = useUpdateBidMaintenance()\n\n var bidmaintRows = []\n if (data) {\n bidmaintRows = data.map((bm, index) => {\n return { ...bm, id: bm.historyid }\n })\n }\n\n // scotty\n const handleDelete = (params: GridCellParams) => {\n\n setDialogObj({\n title: 'Are you sure you want to delete the following bid?',\n id: Number(params.id),\n msg: params.row.biddername + \" | \" + params.row.itemname + \" | $\" + params.row.bidamount,\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventState.eventId),\n \"historyid\": id,\n \"delete\": true\n }\n const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n }\n })\n }\n\n const columns : any = [\n {\n field: 'action',\n headerName: 'Delete',\n width: 70,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n renderCell: (params) => (\n <>\n {!params.row.checkoutcompleted &&\n { handleDelete(params) }}>\n \n \n }\n \n )\n },\n {\n field: 'rownumber',\n hide: true\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder',\n width: 200\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n width: 200\n },\n {\n field: 'bidtype',\n headerName: 'Type',\n width: 150,\n sortable: false,\n },\n {\n field: 'bidtime',\n headerName: 'Bid Date',\n width: 200,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'quantity',\n headerName: 'Quantity',\n width: 120,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n },\n {\n field: 'bidamount',\n headerName: 'Current Bid',\n width: 150,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n },\n {\n field: 'bidautoamount',\n headerName: 'Auto Bid',\n width: 120,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n }\n ]\n\n return (\n
\n

Bid Maintenance

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default BidMaintenancePage\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface AuctionStatus {\n rownumber: number\n itemid: number\n biddername: string\n itemname: string\n itemnumber: string\n bidtime: string\n bidtype: string\n quantity: number\n bidamount: number\n bidautoamount: number\n checkoutcompleted: boolean\n itembiddingclosed: number\n active: boolean\n qtyunlimited: boolean\n butitnowonly: boolean\n open: string\n closing: string\n bidstatus: string\n buyitnowprice: number\n}\n\nconst AuctionStatusDefaults = {\n rownumber: 0,\n itemid: 0,\n biddername: \"\",\n itemname: \"\",\n itemnumber: \"\",\n bidtime: \"\",\n bidtype: \"\",\n quantity: 0,\n bidamount: 0,\n bidautoamount: 0,\n checkoutcompleted: false,\n itembiddingclosed: 0,\n active: true,\n qtyunlimited: true,\n butitnowonly: true,\n open: \"\",\n closing: \"\",\n bidstatus: \"\",\n buyitnowprice: 0\n}\n\nexport const useFetchAuctionStatus = (eventIdvalue) => {\n return useQuery(\n ['auctionstatus', eventIdvalue],\n () => globalAuctionStatusFetcher(eventIdvalue),\n {\n staleTime: 120000,\n placeholderData: [AuctionStatusDefaults],\n keepPreviousData: true\n }\n )\n}\n\nexport const useUpdateAuctionStatus = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`auctionstatus`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['auctionstatus'])\n }\n })\n}\n\nexport const globalAuctionStatusFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/currentstatus', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.statuslist as AuctionStatus[]\n}\n","import React, { useState } from 'react'\nimport styles from './AuctionStatusPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, IconButton} from \"@material-ui/core\";\nimport {Delete} from \"@material-ui/icons\";\nimport {useFetchAuctionStatus, useUpdateAuctionStatus} from \"../../queries/useFetchAuctionStatus\";\nimport dayjs from \"dayjs\";\nimport {DataGridPremium, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\n\n\ninterface Params {\n eventid: string\n}\n\nconst AuctionStatusPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchAuctionStatus(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n const updateAuctionStatusMutation = useUpdateAuctionStatus()\n\n var bidmaintRows = []\n if (data) {\n bidmaintRows = data.map((bm, index) => {\n return { ...bm, id: bm.itemid }\n })\n }\n\n \n\n \n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n \n\n\n const columns: any = [\n {\n field: 'rownumber',\n hide: true\n },\n {\n field: 'biddername',\n type: 'string',\n headerName: 'Bidder',\n width: 200\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Item Name',\n width: 300\n },\n {\n field: 'bidtime',\n headerName: 'Bid Date',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'bidtype',\n headerName: 'Type',\n width: 150,\n },\n {\n field: 'quantity',\n headerName: 'Quantity',\n width: 120,\n align: \"right\",\n },\n {\n field: 'bidamount',\n headerName: 'Current Bid',\n width: 150,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n },\n {\n field: 'buyitnowprice',\n headerName: 'Buy it Now',\n width: 150,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return \"$\" + params.value\n },\n }\n ]\n\n return (\n
\n

Auction Status

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n row.rownumber} \n autoHeight\n rows={bidmaintRows}\n columns={columns}\n loading={isLoading}\n hideFooterSelectedRowCount={true}\n // density={'compact'}\n pagination={true}\n />\n
\n )\n}\n\nexport default AuctionStatusPage\n","import { useState, useEffect } from 'react'\nimport styles from './LiveAuctionPage.module.css'\nimport { useParams } from 'react-router'\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useEventState } from '../../slices/eventSlice'\nimport {\n useFetchLiveAuctionItems,\n useUpdateLiveBid,\n useClearLiveBid,\n useConfirmLiveAuction\n} from '../../queries/useActionItemsFetch'\nimport {\n DataGridPro,\n GridCellParams,\n useGridApiRef,\n GridValueFormatterParams\n} from '@mui/x-data-grid-pro'\nimport Box from '@mui/material/Box';\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText\n} from '@mui/material'\nimport { formatMoney } from '../../util/formatHelpers'\nimport { Autocomplete, TextField } from '@mui/material'\nimport clsx from 'clsx';\n\nimport {\n GridRenderEditCellParams,\n useGridApiContext\n} from '@mui/x-data-grid-pro'\nimport { useCallback } from 'react'\ninterface Params {\n eventid: string\n}\n\nconst LiveAuctionPage = () => {\n const { eventid } = useParams()\n\n useAutoEvent(eventid)\n const eventState = useEventState()\n const { data, isLoading } = useFetchLiveAuctionItems(Number(eventid))\n const manualBidMutation = useUpdateLiveBid()\n const clearBidMutation = useClearLiveBid()\n const [liveBidError, setLiveBidError] = useState('')\n const [rows, setRows] = useState([])\n const [participantList, setParticipantList] = useState([])\n const apiRef = useGridApiRef()\n const [clearedRowIds, setClearedRowIds] = useState([])\n const confirmmutation = useConfirmLiveAuction()\n const [dialogMsg, setDialogMsg] = useState('')\n const editableFields = ['bidderparticipantid', 'lastbid'] // Add here all your editable fields\n const [rowsToSave, setRowsToSave] = useState({});\n const [isLoadingSpinner, setIsLoading] = useState(false);\n\n\n useEffect(() => {\n if (data && data.LiveAuctionitemlist) {\n setRows(data.LiveAuctionitemlist)\n setParticipantList(data.bidderlist)\n\n // Initialize clearedRowIds with ids of blank rows\n const blankRowIds = data.LiveAuctionitemlist.filter(\n (row) => row.bidderparticipantid <= 0\n ).map((row) => row.itemid)\n setClearedRowIds(blankRowIds)\n }\n }, [data])\n\n const getBidderOptions = () => {\n //console.log(participantList)\n return participantList?.map((item) => {\n return { value: item.bidderparticipantid, label: item.biddername }\n })\n }\n const handleRowEditCommit = (newRow, oldRow) => {\n const updatedRow = { ...newRow, isNew: false } \n console.log(rowsToSave)\n if(rowsToSave && rowsToSave[0] && rowsToSave[0].itemid === newRow.itemid ){\n if (updatedRow.lastbid > 0 && updatedRow.bidderparticipantid) {\n\n handleSave(updatedRow)\n return updatedRow\n }\n }\n return oldRow\n\n }\n const handleRowUpdateError = (error) => {\n console.log(error)\n }\n const handleSave = (row) => {\n setClearedRowIds((prevIds) => prevIds.filter((id) => id !== row.itemid))\n try {\n console.log('mutate')\n var part = participantList.find(\n (p) => p.bidderparticipantid === row.bidderparticipantid\n )\n manualBidMutation.mutate(\n {\n eventid: eventState.eventId,\n itemid: row.itemid,\n amount: row.lastbid,\n bidderparticipantid: part.bidderparticipantid\n },\n {\n onSuccess: (response) => {\n const json = JSON.parse(response.data.jsonString)\n console.log(json)\n if (json.status === 'failed') {\n setLiveBidError(json.message)\n } else {\n setLiveBidError('')\n }\n setRowsToSave({});\n setIsLoading(false);\n }\n }\n )\n } catch {\n setRowsToSave({});\n setIsLoading(false);\n }\n \n }\n // If a row is cleared, add it to clearedRowIds\n const handleClear = (row) => {\n setClearedRowIds((prevIds) => [...prevIds, row.itemid])\n // Clear the row here...\n\n clearBidMutation.mutate(\n {\n eventid: eventState.eventId,\n historyid: row.historyid\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n console.log(json)\n if (json.status === 'failed') {\n setLiveBidError(json.message)\n } else {\n setLiveBidError('')\n }\n }\n }\n )\n }\n \n const onButtonClick = (e, cellParams) => {\n //e.stopPropagation()\n \n const isSaveButton = clearedRowIds.includes(cellParams.row.itemid)\n if (isSaveButton) {\n setRowsToSave([cellParams.row]);\n apiRef.current.stopRowEditMode({ id: cellParams.row.itemid });\n\n } else {\n handleClear(cellParams.row)\n }\n }\n\n const sendWinningBid = () => {\n confirmmutation.mutate(\n {\n eventid: eventState.eventId\n },\n {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === 'failure') {\n setDialogMsg(json.message)\n } else {\n setDialogMsg(\n 'Successfully notified winning bidders and added the items to their carts. '\n )\n }\n }\n }\n )\n }\n \n const columns = [\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n width: 150\n },\n {\n field: 'name',\n headerName: 'Name',\n width: 300,\n sortable: false\n },\n {\n field: 'bidderparticipantid',\n headerName: 'Bidder',\n width: 300,\n sortable: false,\n editable: true,\n renderEditCell: (params) => (\n op.value == val.value}\n onChange={(event, newValue) => {\n //event.stopPropagation();\n if (typeof newValue === 'object' && newValue !== null) {\n apiRef.current.setEditCellValue({\n id: params.id,\n field: params.field,\n value: newValue.value\n })\n }\n }}\n renderInput={(inputParams) => (\n \n )}\n />\n ),\n valueFormatter: (params: GridValueFormatterParams) => {\n var bidderOptions = getBidderOptions();\n if (bidderOptions && bidderOptions.length > 0) {\n var part = bidderOptions.find((p) => p.value === params.value);\n return part ? part.label : '(Double click to add bidder)';\n } else {\n return '';\n }\n } ,\n cellClassName: (params: GridCellParams) => {\n console.log(params)\n if (params.value == null) {\n return '';\n }\n \n return clsx('super-app', {\n negative: params.value < 0,\n });\n } \n },\n {\n field: 'lastbid',\n //lastbid\n headerName: 'Amount',\n width: 150,\n type: 'number',\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value ? params.value : 0))\n },\n editable: true\n },\n {\n field: 'actions',\n headerName: 'Action',\n width: 150,\n renderCell: (params) => {\n if (params.row.livebidcheckedout == 'Yes') {\n return null\n }\n const buttonText = clearedRowIds.includes(params.row.itemid)\n ? 'Save Bid'\n : 'Clear Bid'\n return (\n \n )\n }\n },\n {\n field: 'livebidconfirmed',\n headerName: 'Added to Cart',\n width: 150,\n sortable: false\n },\n {\n field: 'livebidcheckedout',\n headerName: 'Checked Out',\n width: 150,\n sortable: false\n },\n {\n field: 'livebidhasemail',\n headerName: 'Has Email',\n width: 150,\n sortable: false\n },\n ]\n\n \n\n const closeDialog = () => {\n setDialogMsg('')\n }\n return (\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\">\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n

Live Auction Winning Bid Entry

\n

Double click to enter winning bidder and amount.

\n {liveBidError.length > 0 &&

An error occurred: {liveBidError}

}\n sendWinningBid()}>\n Send Winning Bid Emails and Add Items to Cart\n \n row.itemid}\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n processRowUpdate={handleRowEditCommit}\n onProcessRowUpdateError={handleRowUpdateError}\n experimentalFeatures={{ newEditingApi: true }}\n />\n \n )\n}\n\nexport default LiveAuctionPage\n","import axios, { AxiosResponse } from 'axios';\n\n// Define the type for the log data\ninterface LogData {\n eventid: number;\n category: string;\n location: string;\n message: string;\n iserror: boolean;\n}\n\n// Define the class for logging\nexport default class Logger {\n\n // Method to send log data\n static async logEvent(logData: LogData): Promise> {\n try {\n const response = await axios.put(\"/logging\", logData);\n return response;\n } catch (error) {\n // Handle error appropriately\n console.error('Error sending log data', error);\n //throw error;\n }\n }\n}\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\n\nexport interface CheckoutDetailObject {\n status: string\n message: string\n checkoutheader: CheckoutHeaderData[]\n checkoutitems: CheckoutItemsData[]\n}\n\nexport interface CheckoutHeaderData {\n biddernumber: number\n company: string\n participantid: number\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n totalamount: number\n ccfeesamount?: number\n paymentmethod: string\n sendemail: boolean\n}\n\nexport interface CheckoutItemsData {\n itemid: number\n historyid: number\n itemnumber: string\n itemname: string\n quantity: number\n fairmarketvalue: number\n amount: number\n}\n\nexport const useFetchCheckoutDetail = (eventIdvalue, key, isreadonly) => {\n return useQuery(\n ['checkoutdetail', eventIdvalue, key, isreadonly],\n () => globalCheckoutDetailFetcher(eventIdvalue, key, isreadonly),\n {}\n )\n}\n\nexport const useFetchCheckoutDetailAdd = (eventIdvalue) => {\n return useQuery(\n ['checkoutdetailadd', eventIdvalue],\n () => checkoutDetailAdd(eventIdvalue),\n {}\n )\n}\n\nexport const useUpdateCheckoutDetail = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`checkoutdetail`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n })\n}\n\n\nexport const useAddCheckoutDetail = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`checkoutdetail`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n })\n}\n\nexport const checkoutDetailAdd = async (eventid) => {\n const { data } = await axios.post('/checkoutdetailadd', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const checkout = async (body) => {\n const { data } = await axios.put('/checkoutadmin', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const resendCheckout = async (eventid, key, email) => {\n const {data} = await axios.post('/checkoutresend', {eventid: eventid, key: key, email: email})\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const generatePDF = async (eventid, key) => {\n const {data} = await axios.post('/checkoutpdf', {eventid: eventid, key: key}, {responseType: \"blob\"})\n return data\n}\n\nexport const manualBid = async (eventid, itemid, buyitnow, quantity, bidderparticipantid) => {\n const { data } = await axios.put('/manualbid', { eventid: eventid, itemid: itemid, buyitnow: buyitnow, quantity: quantity, bidderparticipantid: bidderparticipantid })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const globalCheckoutDetailFetcher = async (eventIdvalue, key, isreadonly) => {\n const { data } = await axios.post('/checkoutdetail', { eventid: eventIdvalue, isreadonly: isreadonly, key: key })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutDetailObject\n}\n","import { useForm } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, Grid,\n TextField\n} from '@material-ui/core'\n\nimport HookForm from '../../../components/common/HookForm'\nimport { useEventState } from '../../../slices/eventSlice'\nimport styles from './CheckoutForm.module.css'\nimport React, {useEffect} from \"react\";\nimport DateTimeInput from \"../../../components/common/inputs/DateTimeInput\";\nimport dayjs from \"dayjs\";\nimport MaskedInput from \"../../../components/common/inputs/MaskedInput\";\nimport AutocompleteSelect from \"../../../components/common/inputs/AutoCompleteSelectInput/AutocompleteSelect\"\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {useUpdateManualBid} from \"../../../queries/useManualBid\";\nimport {useQueryClient} from \"react-query\";\nimport {manualBid} from \"../../../queries/useFetchCheckoutDetail\";\nimport axios from \"axios\";\n\ntype FormData = {\n id: string\n eventid: number\n itemid: number\n buyitnow: boolean\n buyitnowquantity: number\n price: string\n bidderid: number\n}\n\nexport const AddItemForm = ({ addItemObjects, dialogObj, setDialogObj, eventid, participantid, selectedParticipant }) => {\n const formMethods = useForm()\n const { reset, watch } = formMethods\n const eventState = useEventState()\n const title = \"Add Checkout Item\"\n const [dialogMsg, setDialogMsg] = React.useState({message: \"\", display: false})\n const [dialogStatus, setDialogStatus] = React.useState(true)\n const [quantityValues, setQuantityValues] = React.useState()\n const queryClient = useQueryClient()\n\n const onSubmit = async (formData: FormData) => {\n const responseData = await manualBid(eventid, formData.itemid, true, quantityValues, participantid)\n const historyid = responseData.historyid\n if (responseData.status === \"success\") {\n queryClient.invalidateQueries(['checkoutdetailadd'])\n queryClient.invalidateQueries(['checkoutdetail'])\n\n const { data } = await axios.post('/checkoutdetail', { eventid: eventid, isreadonly: selectedParticipant.isreadonly, key: selectedParticipant.key })\n const parsedData = JSON.parse(data.jsonString)\n const item = parsedData?.checkoutitems?.find((item) => item.historyid === historyid)\n if (item) {\n setDialogObj({msg: '', show: false})\n }\n else {\n setDialogMsg({message: responseData.message2, display: true})\n }\n }\n else {\n setDialogMsg({message: responseData.message2, display: true})\n }\n }\n\n const closeDialog = () => {\n setDialogMsg({message: \"\", display: false})\n // if (dialogStatus) {\n // // queryClient.invalidateQueries(['manualbid'])\n // setDialogObj({msg: '', show: false})\n // }\n }\n\n const getItemOptions = () => {\n return addItemObjects?.itemlist?.map(item =>{\n return {value:item.itemid, label: item.itemnumber + ' - ' + item.name}\n })\n }\n\n const handleQuantityChange = (newValue: number) => {\n if (newValue > 0) {\n setQuantityValues(newValue)\n }\n }\n\n return (\n \n {title}\n\n <>\n \n \n \n {dialogMsg.message}\n \n \n \n \n \n \n \n\n \n \n\n \n \n {/*
Item: {gridParams.itemnumber} - {gridParams.name}
*/}\n
\n \n
\n \n
\n
\n \n handleQuantityChange(value)}\n />\n \n
\n \n
\n \n setDialogObj({msg: '', show: false})}>\n Cancel\n \n \n Add Item\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport { useForm } from 'react-hook-form'\nimport \"./iframe.css\"\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, Switch} from '@material-ui/core'\nimport { FormLabel } from '@mui/material'\nimport download from 'downloadjs';\nimport Logger from '../../../util/logger';\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput/SelectInput'\n// import Switch from '../../../components/common/inputs/Switch'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './CheckoutForm.module.css'\nimport {CheckoutData, useFetchCheckout} from \"../../../queries/useFetchCheckout\";\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {\n CheckoutHeaderData,\n CheckoutItemsData,\n useFetchCheckoutDetail,\n useAddCheckoutDetail,\n resendCheckout,\n generatePDF,\n checkout,\n checkoutDetailAdd,\n useFetchCheckoutDetailAdd\n} from \"../../../queries/useFetchCheckoutDetail\";\nimport {DataGridPro, GridSelectionModel, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {CheckoutPageTab} from \"../CheckoutPage\";\nimport {ConfirmModal} from \"../../../components/common/ConfirmModal\";\nimport axios from \"axios\";\nimport CheckoutItemAddForm from \"../CheckoutItemAddForm\";\nimport {useQueryClient} from \"react-query\";\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport {AddItemForm} from \"./AddItemForm\";\nimport {statesArray} from \"../../../util/formValidation\";\n\ntype FormData = {\n biddernumber: number\n company: string\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n ccfeesamount: number\n totalamount: number\n paymentmethod: string\n sendemail: boolean\n}\n\ntype AddItemFormData = {\n item: string\n price: number\n quantity: number\n total: number\n}\n\nconst CheckoutForm = ({ checkoutDataObject, creditCardInfo, setShowPayment }) => {\n console.log(checkoutDataObject)\n const queryClient = useQueryClient()\n const addItemDetail = useAddCheckoutDetail()\n const [cryptogram, setCryptogram] = useState('');\n const [cryptogramTimeout, setCryptogramTimeout] = useState(0);\n const [cryptogramCode, setCryptogramCode] = useState('');\n const [selectedItems, setSelectedItems] = useState(null);\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [showResendDialog, setShowResendDialog] = React.useState(false)\n const [showCheckoutDialog, setShowCheckoutDialog] = React.useState(false)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const [dialogAddItemObj, setAddItemDialogObj] = React.useState({ msg: \"\", show: false })\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n\n useEffect(() => {\n // console.log(creditCardInfo)\n if (creditCardInfo && creditCardInfo.javascriptfile) {\n const script = document.createElement(\"script\")\n script.src = creditCardInfo?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", creditCardInfo?.transcenterid)\n script.setAttribute(\"data-processor\", creditCardInfo?.processorid)\n\n document.body.appendChild(script)\n }\n }, [creditCardInfo])\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 setCryptogramCode(ccData.code)\n if (ccData.type === 'newCryptogram') {\n setCryptogram(ccData.cryptogram)\n setCryptogramTimeout(Date.now())\n }\n if (ccData.type === 'cryptogramFailed') {\n setCryptogram('')\n console.log(ccData)\n var logData = {\n eventid: Number(eventState.eventId),\n category: 'Checkout',\n location: 'Admin Checkout',\n message: ccData.message,\n iserror: true\n }\n Logger.logEvent(logData)\n //setCryptogramTimeout(Date.now())\n }\n }\n }\n\n const checkoutFormMethods = useForm()\n const {reset, watch, getValues} = checkoutFormMethods\n const addItemMethods = useForm()\n const [isAddItemsFormShowing, setIsAddItemsFormShowing] = useState(false)\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n };\n\n const [headerDataRows, setHeaderDataRows] = React.useState();\n const [itemDataRows, setItemDataRows] = React.useState([]);\n const eventState = useEventState()\n const paymentMethodWatch = watch('paymentmethod')\n\n const { data: dataDetailAdd, isLoading: isDataDetailLoading } = useFetchCheckoutDetailAdd(Number(eventState.eventId))\n\n const { data, isLoading } = useFetchCheckoutDetail(Number(eventState.eventId), checkoutDataObject?.key, checkoutDataObject?.isreadonly)\n useEffect(() => {\n console.log(data)\n var additionalDonations = 0\n if (data?.checkoutheader && data?.checkoutheader?.length > 0) {\n const headerRecords = getHeaderRecords()\n var headRecs = headerRecords[0]\n\n reset(headerRecords[0])\n additionalDonations = headerRecords[0].additionaldonation\n setHeaderDataRows(headerRecords[0])\n console.log(headerRecords[0])\n }\n if (data?.checkoutitems && data?.checkoutitems?.length > 0) {\n const dataRows = getItemRecords()\n setItemDataRows(dataRows)\n \n const amount = data?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (checkoutDataObject?.checkoutstatus === 'Checked Out') {\n return acc + curr.amount * curr.quantity\n }\n else {\n return 0\n }\n }, 0)\n\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonations\n }\n setCCFees(ccAmount * (creditCardInfo?.ccfeespercentage / 100))\n setAdditionalDonation(additionalDonations)\n\n const total = (creditCardInfo?.showccfees && includeCCFees) ?\n ccAmount + (ccAmount * (creditCardInfo?.ccfeespercentage / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(data?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (checkoutDataObject?.checkoutstatus === 'Checked Out') {\n return acc + curr.quantity\n }\n else {\n return 0\n }\n }, 0))\n }\n else {\n setItemDataRows([])\n }\n }, [data])\n\n useEffect(() => {\n const amount = selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.amount * curr.quantity\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n setCCFees(((ccAmount) * (creditCardInfo?.ccfeespercentage / 100)))\n\n const total = (creditCardInfo?.showccfees && includeCCFees && creditCardInfo?.ccfeespercentage > 0.000000001) ?\n ccAmount + (ccAmount * (creditCardInfo?.ccfeespercentage / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.quantity\n }, 0))\n }, [includeCCFees, selectedItems, additionalDonation])\n\n const getHeaderRecords = () => {\n return data?.checkoutheader.map((checkoutHeader: CheckoutHeaderData, i) => {\n return {\n biddernumber: checkoutHeader.biddernumber,\n company: checkoutHeader.company,\n participantid: checkoutHeader.participantid,\n participantname: checkoutHeader.participantname,\n first: checkoutHeader.first,\n last: checkoutHeader.last,\n address: checkoutHeader.address,\n address2: checkoutHeader.address2,\n city: checkoutHeader.city,\n state: checkoutHeader.state,\n zip: checkoutHeader.zip,\n country: checkoutHeader.country,\n phone: checkoutHeader.phone,\n email: checkoutHeader.email,\n additionaldonation: checkoutHeader.additionaldonation,\n ccfeesexactamount: ccfees,\n totalamount: checkoutHeader.totalamount,\n paymentmethod: checkoutHeader.paymentmethod,\n ccfeesamount: checkoutHeader.ccfeesamount,\n sendemail: checkoutHeader.sendemail,\n\n }\n })\n }\n\n const getItemRecords = () => {\n return data?.checkoutitems.map((checkoutItems: CheckoutItemsData, i) => {\n return {\n id: checkoutItems.historyid,\n itemid: checkoutItems.itemid,\n historyid: checkoutItems.historyid,\n itemnumber: checkoutItems.itemnumber,\n itemname: checkoutItems.itemname,\n quantity: checkoutItems.quantity,\n fairmarketvalue: checkoutItems.fairmarketvalue,\n amount: checkoutItems.amount,\n }\n })\n }\n\n const onSubmit = (formData: FormData) => {\n if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n const columns = [\n {\n field: 'id',\n type: 'string',\n headerName: 'id',\n //minWidth: 120,\n hide: true\n },\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'quantity',\n type: 'number',\n headerName: 'QTY',\n minWidth: 100\n },\n // {\n // field: 'fairmarketvalue',\n // type: 'number',\n // headerName: 'Fair Market Value',\n // minWidth: 250,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(Number(params.value))\n // },\n // },\n {\n field: 'amount',\n type: 'number',\n headerName: 'Amount',\n minWidth: 150,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n }\n ]\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\n }\n }\n\n const handleCheckout = async () => {\n setisLoadingBackdrop(true)\n setShowCheckoutDialog(false)\n const company = getValues(\"company\")\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const address = getValues(\"address\")\n const address2 = getValues(\"address2\")\n const city = getValues(\"city\")\n const state = getValues(\"state\")\n const zip = getValues(\"zip\")\n const email = getValues(\"email\")\n const sendemail = getValues(\"sendemail\")\n\n var errorMessage = \"\"\n if (first.length <= 0) {\n errorMessage = \"First name is required.\"\n }\n else if (last.length <= 0) {\n errorMessage = \"Last name is required.\"\n }\n // else if (address.length <= 0) {\n // errorMessage = \"Address is required.\"\n // }\n // else if (city.length <= 0) {\n // errorMessage = \"City is required.\"\n // }\n // else if (state.length <= 0) {\n // errorMessage = \"State is required.\"\n // }\n else if (zip.length <= 0) {\n errorMessage = \"Zip is required.\"\n }\n // else if (email.length <= 0) {\n // errorMessage = \"Email is required.\"\n // }\n else if (selectedItems === null || selectedItems?.length <= 0) {\n errorMessage = \"Please select at least 1 item.\"\n }\n else if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n\n if (errorMessage.length > 0) {\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n const checkoutData = await checkout({\n eventid: Number(eventState.eventId),\n key: checkoutDataObject?.key,\n participantid: headerDataRows?.participantid,\n company: company,\n first: first,\n last: last,\n address: address,\n address2: address2,\n city: city,\n state: state,\n zip: zip,\n email: email,\n additionaldonation: additionalDonation,\n ccfeesexactamount: creditCardInfo?.ccfeespercentage, // Number(ccfees.toFixed(2)),\n totalamount: Number(totalAmount.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n sendemail: sendemail,\n emerchtoken: cryptogram,\n subtotal: subtotal,\n itemid: selectedItems?.map((item) => {\n return item.itemid\n }),\n historyid: selectedItems?.map((item) => {\n return item.historyid\n })\n })\n\n if (checkoutData.status === 'success') {\n setDialogObj({msg: \"Checkout was successfull.\", show: true})\n setInvalidateIframe(invalidateIframe+1)\n setCryptogram('')\n }\n else {\n setDialogObj({msg: checkoutData.message, show: true})\n }\n queryClient.invalidateQueries(['checkout'])\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n\n setisLoadingBackdrop(false)\n }\n\n const buildCheckoutConfirm = () => {\n const itemMessage = selectedItems?.map(item => {\n return (\n <>\n #{item.itemnumber} - {item.itemname} - Qty: {item.quantity} - ${item.amount}
\n \n )\n })\n\n const itemMessageFinal = <>\n {(selectedItems && selectedItems?.length > 0) &&\n <>{itemMessage}
\n }\n {/*{additionalDonation &&*/}\n <>\n Additional Donation: ${additionalDonation ? additionalDonation : 0}
\n \n {/*}*/}\n Processing Fees: ${ccfees}
\n Total Amount: ${Number(totalAmount.toFixed(2))}\n \n\n var message =\n <>\n {itemMessageFinal}\n Are you sure you want to purchase these items?\n \n return message\n }\n\n const handleResend = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const email = getValues(\"email\")\n const resendData = await resendCheckout(Number(eventState.eventId), checkoutDataObject?.key, email)\n\n if (resendData.status === 'success') {\n setDialogObj({msg: \"Receipt was successfully sent to \" + email + \".\", show: true})\n }\n else {\n setDialogObj({msg: resendData.message, show: true})\n }\n setisLoadingBackdrop(false)\n }\n\n const generatePDFClick = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const resendData = await generatePDF(Number(eventState.eventId), checkoutDataObject?.key)\n if (resendData) {\n download(resendData, eventState.eventName + '-' + checkoutDataObject?.key + '-receipt.pdf', 'application/pdf');\n }\n setisLoadingBackdrop(false)\n }\n\n return (\n <>\n
\n \n\n \n {/**/}\n setShowResendDialog(false)}\n onConfirm={() => handleResend()}\n confirmText=\"Resend Receipt\"\n />\n setShowCheckoutDialog(false)}\n onConfirm={() => handleCheckout()}\n confirmText=\"Checkout\"\n />\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n
\n \n\n
\n
\n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n
\n \n Send Email\n
\n\n\n

Subtotal: {formatMoney(subtotal | 0)} ({quantity | 0} items)

\n {(Number(headerDataRows?.ccfeesamount) > 0.0001) &&\n
\n CC Fees: {formatMoney(Number(headerDataRows?.ccfeesamount))}\n
\n }\n handleAdditionalDonationChange(value)}\n />\n handleAdditionalDonationChange(value)}\n />\n \n
\n
\n
\n
\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n />\n
\n {/*{!checkoutDataObject?.isreadonly &&*/}\n {/* setAddItemDialogObj({msg: '', show: true})}>*/}\n {/* Add Item*/}\n {/* */}\n {/*}*/}\n
\n
\n
\n {/*
*/}\n {/* */}\n {/*
*/}\n {/*{!checkoutDataObject?.isreadonly &&*/}\n {/* <>*/}\n {/* {setShowCheckoutDialog(true)}}*/}\n {/* >*/}\n {/* Complete Checkout*/}\n {/* */}\n {/* */}\n {/*}*/}\n {checkoutDataObject?.isreadonly &&\n <>\n {setShowResendDialog(true)}}\n >\n Resend Receipt\n \n generatePDFClick()}\n >\n PDF\n \n \n }\n \n
\n
\n \n\n )\n}\n\nexport default CheckoutForm\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport interface CheckoutObject {\n status: string\n message: string\n showccfees: boolean,\n ccfeespercentage: number,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string,\n transactiontype: string,\n checkoutlist: CheckoutData[]\n}\n\nexport interface CheckoutData {\n rownumber: number\n biddernumber: number\n paddlenumbertext: string\n receiptnumber: number\n participantname: string\n checkoutstatus: string\n amount: string\n isreadonly: boolean\n key: number\n}\n\nconst CheckoutDefaults = {\n rownumber: null,\n biddernumber: null,\n paddlenumbertext: null,\n receiptnumber: null,\n participantname: null,\n checkoutstatus: null,\n amount: null,\n isreadonly: false,\n key: 0\n}\n\nexport const useFetchCheckout = (eventIdvalue) => {\n return useQuery(\n ['checkout', eventIdvalue],\n () => globalCheckoutFetcher(eventIdvalue),\n {\n staleTime: 0,\n keepPreviousData: false\n }\n )\n}\n\nexport const useUpdateCheckout = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`checkoutlist`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['checkout'])\n }\n })\n}\n\nexport const globalCheckoutFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/checkoutlist', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutObject\n}\n","import { useParams } from 'react-router'\nimport { Button } from '@mui/material'\nimport { useAutoEvent } from '../../../queries/useAutoEvent'\nimport { useEventState } from '../../../slices/eventSlice'\nimport {useFetchBidMaintenance} from \"../../../queries/useFetchBidMaintenance\";\nimport {CheckoutData, useFetchCheckout} from \"../../../queries/useFetchCheckout\";\nimport React, {useEffect} from \"react\";\n\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef\n} from \"@mui/x-data-grid-premium\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport {GridSelectionModel} from \"@mui/x-data-grid-pro\";\n// import {DataGridPremium} from \"@mui/x-data-grid-premium\";\n\ntype Order = {\n id: number\n bidnumber: number\n name: string\n receiptnumber: number\n status: string\n}\n\ninterface Params {\n id: string\n}\n\nconst CheckoutOrdersGrid = ({ checkoutDataObject, setCheckoutDataObject, setCreditCardInfo}) => {\n const eventState = useEventState()\n const gridAPIRef = useGridApiRef()\n const [dataRows, setDataRows] = React.useState([]);\n const [selectionModel, setSelectionModel] = React.useState([1]);\n const { data, isLoading } = useFetchCheckout(Number(eventState.eventId))\n useEffect(() => {\n if (data?.checkoutlist && data?.checkoutlist?.length > 0) {\n const dataRows = getMappedRecords()\n console.log(dataRows)\n setDataRows(dataRows)\n }\n if (data) {\n setCreditCardInfo(\n { showccfees: data.showccfees,\n ccfeespercentage: data.ccfeespercentage,\n creditcardiframe: data.creditcardiframe,\n javascriptfile: data.javascriptfile,\n transcenterid: data.transcenterid,\n processorid: data.processorid,\n transactiontype: data.transactiontype\n }\n )\n console.log({ showccfees: data.showccfees,\n ccfeespercentage: data.ccfeespercentage,\n creditcardiframe: data.creditcardiframe,\n javascriptfile: data.javascriptfile,\n transcenterid: data.transcenterid,\n processorid: data.processorid,\n transactiontype: data.transactiontype\n })\n }\n\n // if (data?.checkoutlist && data?.checkoutlist.length > 0) {\n // setTimeout(() => {\n // gridAPIRef.current?.selectRows([data?.checkoutlist[0].rownumber])\n // setCheckoutDataObject(data?.checkoutlist[0])\n // })\n // }\n }, [data])\n\n useEffect(() => {\n if (dataRows && dataRows.length > 0) {\n setSelectionModel([dataRows[0].id])\n const checkoutObjData = data.checkoutlist.filter((checkoutlist) => { return checkoutlist.biddernumber === Number(dataRows[0].biddernumber) && checkoutlist.receiptnumber === Number(dataRows[0].receiptnumber)})\n if (checkoutObjData && checkoutObjData.length > 0) {\n setCheckoutDataObject(checkoutObjData[0])\n }\n }\n }, [dataRows])\n\n const getMappedRecords = () => {\n return data?.checkoutlist.filter((checkOut) => checkOut.checkoutstatus !== 'Open').map((checkoutData: CheckoutData, i) => {\n return {\n id: checkoutData.rownumber,\n rownumber: checkoutData.rownumber,\n biddernumber: checkoutData.biddernumber,\n paddlenumbertext: checkoutData.paddlenumbertext,\n receiptnumber: checkoutData.receiptnumber,\n participantname: checkoutData.participantname,\n checkoutstatus: checkoutData.checkoutstatus,\n amount: checkoutData.amount,\n isreadonly: checkoutData.isreadonly,\n key: checkoutData.key,\n }\n })\n }\n\n const handleRowClick = (param: GridRowParams, event: MuiEvent, details: GridCallbackDetails) => {\n const checkoutObjData = data.checkoutlist.filter((checkoutlist) => { return checkoutlist.rownumber === Number(param.id)})\n if (checkoutObjData && checkoutObjData.length > 0) {\n setCheckoutDataObject(checkoutObjData[0])\n }\n }\n\n const columns: GridColDef[] = [\n {\n field: 'biddernumber',\n type: 'number',\n headerName: 'Bid #',\n minWidth: 120\n },\n {\n field: 'paddlenumbertext',\n type: 'string',\n headerName: 'Paddle #',\n minWidth: 120\n },\n {\n field: 'participantname',\n type: 'string',\n headerName: 'Name',\n minWidth: 280\n },\n {\n field: 'receiptnumber',\n type: 'number',\n headerName: 'Receipt #',\n minWidth: 150\n },\n {\n field: 'amount',\n headerName: 'Amount',\n width: 150,\n align: \"right\",\n headerAlign: \"right\",\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? formatMoney(Number(params.value)) : '$0.00')\n },\n },\n {\n field: 'checkoutstatus',\n type: 'string',\n headerName: 'Status',\n minWidth: 150\n }\n ]\n\n return (\n <>\n {\n setSelectionModel(newSelectionModel);\n }}\n selectionModel={selectionModel}\n pagination\n rowsPerPageOptions={[5]}\n />\n \n )\n}\n\nexport default CheckoutOrdersGrid\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {Button, Grid} from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject, useFetchCheckout} from \"../../queries/useFetchCheckout\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport {\n CheckoutListAllData,\n CheckoutListAllObject,\n useFetchCheckoutListAll\n} from \"../../queries/useFetchCheckoutListAll\";\nimport CheckoutAllForm from \"./CheckoutForm/CheckoutAllForm\";\nimport axios from \"axios\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutAllPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n const [tabSel, setTabSel] = React.useState(0)\n const [dataRows, setDataRows] = React.useState([])\n const [participantsData, setParticipantsData] = React.useState([])\n const [checkoutListData, setCheckoutListData] = React.useState({\n status: '',\n message: '',\n showccfees: false,\n ccfeespercentage: null,\n creditcardiframe: '',\n javascriptfile: '',\n transcenterid: '',\n processorid: '',\n transactiontype: '',\n checkoutlist: []\n })\n\n const getMappedRecords = () => {\n var participants = []\n const checkoutListDataNew = checkoutListData?.checkoutlist.map((checkoutData: CheckoutListAllData, i) => {\n participants.push({\n participantinfo: checkoutData.participantinfo,\n key: checkoutData.key,\n })\n return {\n id: checkoutData.rownumber,\n rownumber: checkoutData.rownumber,\n biddernumber: checkoutData.biddernumber,\n receiptnumber: checkoutData.receiptnumber,\n participantname: checkoutData.participantname,\n checkoutstatus: checkoutData.checkoutstatus,\n amount: checkoutData.amount,\n isreadonly: checkoutData.isreadonly,\n key: checkoutData.key,\n participantinfo: checkoutData.participantinfo\n }\n })\n setParticipantsData(participants)\n return checkoutListDataNew\n }\n\n const getCheckoutListAllData = async (eventIdvalue) => {\n const { data } = await axios.post('/checkoutlistall', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n setCheckoutListData(parsedData)\n }\n\n // const { data, isLoading } = useFetchCheckoutListAll(Number(eventState.eventId))\n useEffect(() => {\n if (checkoutListData?.checkoutlist && checkoutListData?.checkoutlist?.length > 0) {\n console.log('WHY OH WHY')\n console.log(checkoutListData)\n const dataRowsTemp = getMappedRecords()\n setDataRows(dataRowsTemp)\n }\n if (checkoutListData) {\n setCreditCardInfo(\n { showccfees: checkoutListData.showccfees,\n ccfeespercentage: checkoutListData.ccfeespercentage,\n creditcardiframe: checkoutListData.creditcardiframe,\n javascriptfile: checkoutListData.javascriptfile,\n transcenterid: checkoutListData.transcenterid,\n processorid: checkoutListData.processorid,\n transactiontype: checkoutListData.transactiontype\n }\n )\n }\n }, [checkoutListData])\n\n\n useEffect(()=> {\n getCheckoutListAllData(eventid)\n }, [eventid])\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n const [selectedUser, setSelectedUser] =\n useState<{ id: number; status: 'Open' | 'CheckedOut' }>(null)\n const [creditCardInfo, setCreditCardInfo] =\n useState<{ showccfees: boolean,\n ccfeespercentage: number,\n creditcardiframe: string,\n javascriptfile: string,\n transcenterid: string,\n processorid: string\n transactiontype: string\n }>({\n showccfees: false,\n ccfeespercentage: 0,\n creditcardiframe: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/v3/CreditCard\",\n javascriptfile: \"https://secure.1stpaygateway.net/secure/PaymentHostedForm/Scripts/firstpay/firstpay.cryptogram.js\",\n transcenterid: \"92754\",\n processorid: \"70802\",\n transactiontype: \"Sale\"\n })\n\n const [checkoutDataObject, setCheckoutDataObject] = useState(null)\n const onResendEmail = () => {\n //Send email here\n setTab(CheckoutPageTab.None)\n }\n\n const onVoid = () => {\n //Void order here\n setTab(CheckoutPageTab.None)\n }\n\n const [cryptogram, setCryptogram] = useState('');\n\n useEffect(() => {\n setCryptogram('')\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n setCryptogram('')\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 setTab(CheckoutPageTab.None)}\n onConfirm={() => onResendEmail()}\n confirmText=\"Resend Receipt\"\n />\n setTab(CheckoutPageTab.None)}\n onConfirm={() => onVoid()}\n confirmText=\"Void Transaction\"\n />\n \n\n {/*{checkoutDataObject?.isreadonly && }*/}\n
\n {selectedUser?.status === 'CheckedOut' && (\n <>\n setTab(CheckoutPageTab.ResendReceipt)}>\n Resend Receipt\n \n {/* setTab(CheckoutPageTab.PDF)}>*/}\n {/* PDF*/}\n {/**/}\n {/* setTab(CheckoutPageTab.Void)}>*/}\n {/* Void*/}\n {/**/}\n \n )}\n
\n
\n )\n}\n\nexport default CheckoutAllPage\n","import React, {useEffect, useState} from 'react'\nimport { useForm } from 'react-hook-form'\nimport \"./iframe.css\"\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, Switch} from '@material-ui/core'\nimport { FormLabel } from '@mui/material'\nimport download from 'downloadjs';\nimport Logger from '../../../util/logger';\n\nimport HookForm from '../../../components/common/HookForm'\nimport SelectInput from '../../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../../components/common/inputs/TextInput'\nimport styles from './CheckoutAllForm.module.css'\nimport {useEventState} from \"../../../slices/eventSlice\";\nimport {\n CheckoutHeaderData,\n CheckoutItemsData,\n useFetchCheckoutDetail,\n useAddCheckoutDetail,\n resendCheckout,\n generatePDF,\n checkout,\n checkoutDetailAdd,\n useFetchCheckoutDetailAdd, CheckoutDetailObject\n} from \"../../../queries/useFetchCheckoutDetail\";\nimport {DataGridPro, GridValueFormatterParams} from \"@mui/x-data-grid-pro\";\nimport {formatMoney} from \"../../../util/formatHelpers\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {ConfirmModal} from \"../../../components/common/ConfirmModal\";\nimport {useQueryClient} from \"react-query\";\nimport LoadingBackdrop from '../../../components/common/LoadingBackdrop'\nimport {AddItemForm} from \"./AddItemForm\";\nimport {statesArray} from \"../../../util/formValidation\";\nimport axios from \"axios\";\n\ntype FormData = {\n biddernumber: number\n company: string\n participantname: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n country: string\n phone: string\n email: string\n additionaldonation: number\n ccfeesexactamount: number\n totalamount: number\n paymentmethod: string\n sendemail: boolean\n participant: string\n}\n\ntype AddItemFormData = {\n item: string\n price: number\n quantity: number\n total: number\n}\n\nconst CheckoutAllForm = ({ dataRows, creditCardInfo, participantsData }) => {\n const queryClient = useQueryClient()\n const addItemDetail = useAddCheckoutDetail()\n const [cryptogram, setCryptogram] = useState('');\n const [selectedItems, setSelectedItems] = useState(null);\n const [selectedParticipant, setSelectedParticipants] = useState(null);\n\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [showResendDialog, setShowResendDialog] = React.useState(false)\n const [showCheckoutDialog, setShowCheckoutDialog] = React.useState(false)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", show: false })\n const [dialogAddItemObj, setAddItemDialogObj] = React.useState({ msg: \"\", show: false })\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n\n useEffect(() => {\n // console.log(creditCardInfo)\n if (creditCardInfo && creditCardInfo.javascriptfile) {\n const script = document.createElement(\"script\")\n script.src = creditCardInfo?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", creditCardInfo?.transcenterid)\n script.setAttribute(\"data-processor\", creditCardInfo?.processorid)\n\n document.body.appendChild(script)\n }\n }, [creditCardInfo])\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n setCryptogram('')\n return () => {\n setCryptogram('')\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n useEffect(() => {\n // console.log(dataRows[0])\n\n const dataRowId = Number(dataRows[0]?.id)\n const participantId = Number(selectedParticipant?.id)\n const isEqual = dataRowId == participantId\n if (isEqual === false) {\n setSelectedParticipants(dataRows[0])\n }\n }, [dataRows])\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 checkoutFormMethods = useForm()\n const {reset, watch, getValues, setValue} = checkoutFormMethods\n const addItemMethods = useForm()\n const [isAddItemsFormShowing, setIsAddItemsFormShowing] = useState(false)\n // const [checkoutDetailData, setCheckoutDetailData] = useState({\n // status: '', message: '', checkoutheader: [], checkoutitems: []\n // })\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n };\n\n const [headerDataRows, setHeaderDataRows] = React.useState();\n const [itemDataRows, setItemDataRows] = React.useState([]);\n const eventState = useEventState()\n const paymentMethodWatch = watch('paymentmethod')\n const participantWatch = watch('participant')\n\n const { data: dataDetailAdd, isLoading: isDataDetailLoading } = useFetchCheckoutDetailAdd(Number(eventState.eventId))\n\n useEffect(() => {\n if (participantWatch) {\n const participantSelected = dataRows?.filter(item => item.key === participantWatch)\n if (participantSelected && participantSelected.length > 0) {\n if (participantSelected[0].id !== selectedParticipant.id) {\n console.log('participant watch --- WATCH THIS')\n console.log(participantSelected)\n setSelectedParticipants(participantSelected[0])\n }\n }\n }\n\n setInvalidateIframe(invalidateIframe+1)\n setCryptogram('')\n setValue('additionaldonation', 0)\n setAdditionalDonation(0)\n setSelectedItems([])\n setIncludeCCFees(false)\n setValue('paymentmethod', 'check')\n }, [participantWatch])\n\n const { data: checkoutDetailData, isLoading } = useFetchCheckoutDetail(Number(eventState.eventId), selectedParticipant?.key, selectedParticipant?.isreadonly)\n useEffect(() => {\n var additionalDonations = 0\n if (checkoutDetailData && checkoutDetailData?.checkoutheader && checkoutDetailData?.checkoutheader?.length > 0) {\n const headerRecords = getHeaderRecords()\n var headRecs = headerRecords[0]\n headRecs['participant'] = selectedParticipant?.key\n headRecs['paymentmethod'] = 'check'\n reset(headRecs)\n additionalDonations = dataRows[0].additionaldonation\n setHeaderDataRows(headerRecords[0])\n }\n\n if (checkoutDetailData && checkoutDetailData?.checkoutitems && checkoutDetailData?.checkoutitems?.length > 0) {\n const dataTempRows = getItemRecords()\n if (dataTempRows && dataTempRows?.length > 0) {\n setItemDataRows(dataTempRows)\n }\n\n const amount = checkoutDetailData?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (dataRows?.checkoutstatus === 'Checked Out') {\n return acc + curr.amount * curr.quantity\n }\n else {\n return 0\n }\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonations\n }\n setCCFees(ccAmount * (eventState?.ccfee / 100))\n setAdditionalDonation(additionalDonations)\n\n const total = (eventState?.allowpaymentoffees && includeCCFees) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(dataRows?.checkoutitems?.reduce((acc: any, curr: any) => {\n if (dataRows?.checkoutstatus === 'Checked Out') {\n return acc + curr.quantity\n }\n else {\n return 0\n }\n }, 0))\n }\n else {\n setItemDataRows([])\n }\n }, [checkoutDetailData])\n\n useEffect(() => {\n const amount = selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.amount * curr.quantity\n }, 0)\n setSubtotal(amount)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n setCCFees(((ccAmount) * (eventState?.ccfee / 100)))\n\n const total = (eventState?.allowpaymentoffees && includeCCFees && eventState?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n\n setQuantity(selectedItems?.reduce((acc: any, curr: any) => {\n return acc + curr.quantity\n }, 0))\n }, [includeCCFees, selectedItems, additionalDonation])\n\n const getHeaderRecords = () => {\n return checkoutDetailData?.checkoutheader?.map((checkoutHeader: CheckoutHeaderData, i) => {\n return {\n biddernumber: checkoutHeader.biddernumber,\n company: checkoutHeader.company,\n participantid: checkoutHeader.participantid,\n participantname: checkoutHeader.participantname,\n first: checkoutHeader.first,\n last: checkoutHeader.last,\n address: checkoutHeader.address,\n address2: checkoutHeader.address2,\n city: checkoutHeader.city,\n state: checkoutHeader.state,\n zip: checkoutHeader.zip,\n country: checkoutHeader.country,\n phone: checkoutHeader.phone,\n email: checkoutHeader.email,\n additionaldonation: checkoutHeader.additionaldonation,\n ccfeesexactamount: ccfees,\n totalamount: checkoutHeader.totalamount,\n paymentmethod: checkoutHeader.paymentmethod,\n sendemail: checkoutHeader.sendemail,\n participant: participantWatch\n }\n })\n }\n\n const getItemRecords = () => {\n return checkoutDetailData?.checkoutitems?.map((checkoutItems, i) => {\n return {\n id: checkoutItems.historyid,\n itemid: checkoutItems.itemid,\n historyid: checkoutItems.historyid,\n itemnumber: checkoutItems.itemnumber,\n itemname: checkoutItems.itemname,\n quantity: checkoutItems.quantity,\n fairmarketvalue: checkoutItems.fairmarketvalue,\n amount: checkoutItems.amount,\n }\n })\n }\n\n const onSubmit = (formData: FormData) => {\n if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n const columns = [\n {\n field: 'itemnumber',\n type: 'string',\n headerName: 'Item #',\n minWidth: 120\n },\n {\n field: 'itemname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'quantity',\n type: 'number',\n headerName: 'QTY',\n minWidth: 100\n },\n // {\n // field: 'fairmarketvalue',\n // type: 'number',\n // headerName: 'Fair Market Value',\n // minWidth: 250,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(Number(params.value))\n // },\n // },\n {\n field: 'amount',\n type: 'number',\n headerName: 'Amount',\n minWidth: 150,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n },\n }\n ]\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\n }\n }\n\n const handleCheckout = async () => {\n setisLoadingBackdrop(true)\n setShowCheckoutDialog(false)\n const company = getValues(\"company\")\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const address = getValues(\"address\")\n const address2 = getValues(\"address2\")\n const city = getValues(\"city\")\n const state = getValues(\"state\")\n const zip = getValues(\"zip\")\n const email = getValues(\"email\")\n const sendemail = getValues(\"sendemail\")\n\n var errorMessage = \"\"\n if (first.length <= 0) {\n errorMessage = \"First name is required.\"\n }\n else if (last.length <= 0) {\n errorMessage = \"Last name is required.\"\n }\n // else if (address.length <= 0) {\n // errorMessage = \"Address is required.\"\n // }\n // else if (city.length <= 0) {\n // errorMessage = \"City is required.\"\n // }\n // else if (state.length <= 0) {\n // errorMessage = \"State is required.\"\n // }\n else if (zip.length <= 0) {\n errorMessage = \"Zip is required.\"\n }\n // else if (email.length <= 0) {\n // errorMessage = \"Email is required.\"\n // }\n // else if (selectedItems?.length <= 0) {\n // errorMessage = \"Please select at least 1 item.\"\n // }\n else if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n else if (Number(totalAmount.toFixed(2)) <= 0) {\n errorMessage = \"Please select a checkout item or additional donation to proceed.\"\n }\n\n if (errorMessage.length > 0) {\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n const checkoutData = await checkout({\n eventid: Number(eventState.eventId),\n key: dataRows?.key,\n participantid: headerDataRows?.participantid,\n company: company,\n first: first,\n last: last,\n address: address,\n address2: address2,\n city: city,\n state: state,\n zip: zip,\n email: email,\n additionaldonation: additionalDonation,\n ccfeesexactamount: includeCCFees ? eventState?.ccfee : 0, // Number(ccfees.toFixed(2)),\n totalamount: Number(totalAmount.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n sendemail: sendemail,\n emerchtoken: cryptogram,\n subtotal: subtotal,\n itemid: selectedItems?.map((item) => {\n return item.itemid\n }),\n historyid: selectedItems?.map((item) => {\n return item.historyid\n })\n })\n\n if (checkoutData.status === 'success') {\n setAdditionalDonation(0)\n setDialogObj({msg: \"Checkout was successfull.\", show: true})\n setInvalidateIframe(invalidateIframe+1)\n setCryptogram('')\n queryClient.invalidateQueries(['checkout'])\n queryClient.invalidateQueries(['checkoutdetail'])\n }\n else {\n setDialogObj({msg: checkoutData.message, show: true})\n }\n }\n\n setisLoadingBackdrop(false)\n }\n\n const buildCheckoutConfirm = () => {\n var message\n const itemMessage = selectedItems?.map(item => {\n return (\n <>\n #{item.itemnumber} - {item.itemname} - Qty: {item.quantity} - ${item.amount}
\n \n )\n })\n\n\n const first = getValues(\"first\")\n const last = getValues(\"last\")\n const name = first + ' ' + last\n\n const itemMessageFinal = <>\n <>{name}

\n {(selectedItems && selectedItems?.length > 0) &&\n <>{itemMessage}
\n }\n {/*{additionalDonation &&*/}\n <>\n Additional Donation: {formatMoney(Number(additionalDonation ? additionalDonation : 0))}
\n \n {/*}*/}\n {includeCCFees &&\n <>\n Processing Fees: {formatMoney(Number(ccfees))}
\n \n }\n Total Amount: {formatMoney(Number(totalAmount.toFixed(2)))}\n \n\n message =\n <>\n {itemMessageFinal}\n Are you sure you want to purchase these items?\n \n\n return message\n }\n\n const handleResend = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const email = getValues(\"email\")\n const resendData = await resendCheckout(Number(eventState.eventId), dataRows?.key, email)\n\n if (resendData.status === 'success') {\n setDialogObj({msg: \"Receipt was successfully sent to \" + email + \".\", show: true})\n }\n else {\n setDialogObj({msg: resendData.message, show: true})\n }\n setisLoadingBackdrop(false)\n }\n\n const generatePDFClick = async () => {\n setisLoadingBackdrop(true)\n setShowResendDialog(false)\n const resendData = await generatePDF(Number(eventState.eventId), dataRows?.key)\n if (resendData) {\n download(resendData, eventState.eventName + '-' + dataRows?.key + '-receipt.pdf', 'application/pdf');\n }\n setisLoadingBackdrop(false)\n }\n\n const getParticipantOptions = participantsData?.map(item => {\n return {value:item.key, label: item.participantinfo}\n }) || []\n\n const showCheckoutDialogMessage = (e) => {\n e.stopPropagation()\n if (Number(totalAmount.toFixed(2)) <= 0) {\n const errorMessage = \"Please select a checkout item or additional donation to proceed.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n const errorMessage = \"Please enter a valid credit card.\"\n setDialogObj({msg: errorMessage, show: true})\n }\n else {\n setShowCheckoutDialog(true)\n }\n }\n\n return (\n <>\n
\n \n \n {/**/}\n setShowResendDialog(false)}\n onConfirm={() => handleResend()}\n confirmText=\"Resend Receipt\"\n />\n setShowCheckoutDialog(false)}\n onConfirm={() => handleCheckout()}\n confirmText=\"Checkout\"\n />\n <>\n \n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n
\n \n (val?.length === 0 || val === 'none' || val === 0) ? \"Location is required.\" : clearErrors('location'),\n // }}\n // tooltipText={'The table number or other type of location grouping for the item.'}\n />\n\n
\n
\n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n
\n \n Send Email\n
\n\n\n

Subtotal: {formatMoney(subtotal | 0)} ({quantity | 0} items)

\n {(eventState.allowpaymentoffees) &&\n
\n \n Include CC Fees: {formatMoney(ccfees)}\n
\n }\n handleAdditionalDonationChange(value)}\n />\n handleAdditionalDonationChange(value)}\n />\n \n
\n
\n
\n
\n {\n const selectedIDs = new Set(ids);\n const selectedRowData = checkoutDetailData?.checkoutitems?.filter((item) =>\n selectedIDs.has(item.historyid)\n )\n setSelectedItems(selectedRowData);\n }}\n />\n
\n {!dataRows?.isreadonly &&\n setAddItemDialogObj({msg: '', show: true})}>\n Add Item\n \n }\n
\n
\n
\n
\n \n
\n {!dataRows?.isreadonly &&\n <>\n {showCheckoutDialogMessage(e)}}\n >\n Complete Checkout\n \n \n }\n {dataRows?.isreadonly &&\n <>\n {setShowResendDialog(true)}}\n >\n Resend Receipt\n \n generatePDFClick()}\n >\n PDF\n \n \n }\n \n
\n
\n \n )\n}\n\nexport default CheckoutAllForm\n","import React, {useEffect, useState} from 'react'\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport {AppBar, Button, Grid, Typography} from '@mui/material'\n\nimport { ConfirmModal } from '../../components/common/ConfirmModal'\nimport CheckoutDetails from './CheckoutDetails'\nimport CheckoutForm from './CheckoutForm'\nimport CheckoutOrdersGrid from './CheckoutOrdersGrid'\nimport styles from './CheckoutPage.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport {CheckoutData, CheckoutObject} from \"../../queries/useFetchCheckout\";\nimport CheckoutPage from \"./CheckoutPage\";\nimport CheckoutAllPage from \"./CheckoutAllPage\";\n\nexport enum CheckoutPageTab {\n Checkout,\n ResendReceipt,\n PDF,\n Void,\n None\n}\n\ninterface Params {\n eventid: string\n}\n\nconst CheckoutMainPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventState = useEventState()\n const [tab, setTab] = useState(CheckoutPageTab.None)\n const [showPayment, setShowPayment] = useState(true)\n const [tabSel, setTabSel] = React.useState(0)\n\n const handleTabChange = (event: React.SyntheticEvent, newValue: number) => {\n setTabSel(newValue)\n }\n\n\n return (\n
\n

Checkout

\n
\n
\n \n \n {/**/}\n {/* Checkout*/}\n {/**/}\n \n \n \n \n {tabSel === 0 && (\n \n )}\n {tabSel === 1 && (\n \n )}\n \n \n
\n
\n
\n )\n}\n\nexport default CheckoutMainPage\n","import axios from 'axios'\nimport { useQuery } from 'react-query'\n\nexport type CheckoutDetail = {\n rownumber: number\n receiptnumber: number\n biddernumber: number\n biddername: string\n itemnumber: string\n itemname: string\n quantity: number\n amount: number\n}\n const checkoutDetailDefault = {\n rownumber: 0,\n receiptnumber: 0,\n biddernumber: 0,\n biddername: \"\",\n itemnumber: \"\",\n itemname: \"\",\n quantity: 0,\n amount: 0\n}\nexport type CheckoutHeader = {\n rownumber: number\n receiptnumber: number\n biddernumber: number\n biddername: string\n checkoutdate: string\n subtotal: number\n additionaldonation: number\n ccfees: number\n totalamount: number\n source: string\n paymentmethod: string,\n details: CheckoutDetail[]\n}\n\nconst checkoutHeaderDefault = {\n rownumber: 0,\n receiptnumber: 0,\n biddernumber: 0,\n biddername: \"\",\n checkoutdate: \"\",\n subtotal: 0,\n additionaldonation: 0,\n ccfees: 0,\n totalamount: 0,\n source: \"\",\n paymentmethod: \"\",\n details : [checkoutDetailDefault]\n}\n\n\n\nexport const globalAuctionReportFetcher = async (body) => {\n const { data } = await axios.post('/reportcheckout', body)\n const parsedData = JSON.parse(data.jsonString)\n const headers = parsedData.checkoutheaderlist as CheckoutHeader[]\n const details = parsedData.checkoutdetaillist as CheckoutDetail[]\n if(details)\n {\n details.forEach( detail => {\n var header = headers.find(header=> header.biddernumber === detail.biddernumber && header.receiptnumber === detail.receiptnumber) \n if(header.details){\n header.details.push(detail)\n }else{\n header.details = [detail]\n }\n }\n )\n }\n return headers\n}\n\nexport const useFetchReportCheckout = (eventiDvalue) => {\n return useQuery(\n ['checkoutheader', eventiDvalue],\n () => globalAuctionReportFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [checkoutHeaderDefault] }\n )\n}\n\nexport const globalAuctionReportDetailsFetcher = async (body) => {\n const { data } = await axios.post('/reportcheckout', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n const details = parsedData.checkoutdetaillist as CheckoutDetail[]\n \n return details\n}\n\nexport const useFetchReportCheckoutDetails = (eventiDvalue) => {\n return useQuery(\n ['checkoutdetails', eventiDvalue],\n () => globalAuctionReportDetailsFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n placeholderData: [checkoutDetailDefault]\n }\n )\n}\n","import React, { useState, useMemo } from 'react'\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport Paper from '@mui/material/Paper';\nimport Stack from '@mui/material/Stack';\nimport { DataGridPremium, DataGridPremiumProps, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams } from '@mui/x-data-grid-premium';\nimport {useFetchReportCheckout} from \"../../queries/useFetchReportCheckout\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport { useParams } from 'react-router'\nimport {EventState, setEvent, useEventState} from '../../slices/eventSlice'\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport { makeStyles } from \"@material-ui/core\";\nimport Button, {ButtonProps} from \"@mui/material/Button\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport download from 'downloadjs';\nimport axios from \"axios\";\nimport styles from './AuctionSummaryReportPage.module.css'\n\ninterface Params {\n eventid: string\n}\n\nfunction CustomToolbar() {\n const eventState = useEventState()\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const generateAuctionSummaryClick = async () => {\n axios.post('/auctionsummaryexcel', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-auctionsummary.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n\n const generateAuctionDetailClick = async () => {\n axios.post('/auctionsummaryexceldetail ', {eventid: eventState.eventId}, {responseType: \"blob\"}).then(response => {\n var filename = eventState.eventName + '-auctiondetail.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n })\n }\n return (\n \n \n {/* */}\n generateAuctionSummaryClick()}\n >\n EXPORT SUMMARY\n \n {/* { history.push(importPath) }}*/}\n {/*>*/}\n {/* IMPORT PARTICIPANTS*/}\n {/**/}\n {/* { history.push(importDMPPath) }}*/}\n {/*>*/}\n {/* IMPORT DONORSNAP*/}\n {/**/}\n generateAuctionDetailClick()}\n >\n EXPORT DETAIL\n \n {/**/}\n \n \n );\n}\n\n\nconst useStyle = makeStyles({\n root: {\n \"& .MuiDataGrid-columnHeaderTitle\": {\n overflow: \"visible\",\n lineHeight: \"1.43rem\",\n whiteSpace: \"normal\"\n }\n }\n});\n\n const AuctionSummaryReportPage = () => {\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n\n\n function DetailPanelContent({ row: rowProp }: { row: Header }) {\n return (\n \n \n \n {`Receipt #${rowProp.receiptnumber}`}\n \n \n \n Customer information\n \n {rowProp.biddername}\n {rowProp.biddernumber}\n \n \n \n Payment Details\n \n \n {`${rowProp.source}, ${rowProp.paymentmethod}`}\n \n {`Purchase Total ${formatMoney(Number(rowProp.subtotal))}, Total Checkout ${formatMoney(Number(rowProp.totalamount))}`}\n \n \n \n row.rownumber}\n columns={[\n { field: 'biddernumber', headerName: 'Bidder #' },\n { field: 'biddername', headerName: 'Bidder Name' , minWidth: 150},\n { field: 'itemnumber', headerName: 'Item #' },\n { field: 'itemname', headerName: 'Item Name', minWidth: 150},\n { field: 'quantity', headerName: 'Quantity', type: 'number' },\n { field: 'amount', headerName: 'Amount',\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n ]}\n rows={rowProp.details}\n sx={{ flex: 1 }}\n hideFooter\n />\n \n \n \n );\n }\n \n \n type Header = typeof rows[number];\n const columns = [\n { field: 'rownumber', headerName: 'Row Number' },\n { field: 'biddernumber', headerName: 'Bidder #', minWidth: 100},\n { field: 'receiptnumber', headerName: 'Receipt #', minWidth: 100 },\n { field: 'biddername', headerName: 'Bidder Name', minWidth: 200},\n { field: 'checkoutdate', headerName: 'Checkout Date', minWidth: 200 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },},\n { field: 'subtotal', headerName: 'Subtotal', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'additionaldonation', headerName: 'Additional Donation', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'ccfees', headerName: 'Fees', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'totalamount', headerName: 'Total', minWidth: 100 ,\n valueFormatter: (params: GridValueFormatterParams) => {\n return formatMoney(Number(params.value))\n }},\n { field: 'source', headerName: 'Source', minWidth: 100 },\n { field: 'paymentmethod', headerName: 'Payment Method', minWidth: 100 },\n ];\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const event = useEventState()\n console.log(event)\n var rows = []\n\n const { data , isLoading } = useFetchReportCheckout(event?.eventId);\n if(data){\n rows = data;\n }\n const getDetailPanelContent = React.useCallback<\n NonNullable\n >(({ row }) => , []);\n\n const getDetailPanelHeight = React.useCallback(() => 400, []);\n const classes = useStyle();\n\n return (\n
\n

Auction Summary Report

\n row.rownumber}\n className={classes.root}\n autoHeight\n columns={columns}\n rows={rows}\n loading={isLoading}\n rowThreshold={0}\n getDetailPanelHeight={getDetailPanelHeight}\n getDetailPanelContent={getDetailPanelContent}\n columnVisibilityModel={{\n // Hide column rownumber the other columns will remain visible\n rownumber: false,\n }}\n components={{\n Toolbar: CustomToolbar,\n }}\n\n \n />\n
\n );\n }\n export default AuctionSummaryReportPage\n","\nimport {\n useHistory,\n} from 'react-router-dom'\n\nimport styles from './AuthPage.module.css'\nimport {useParams} from \"react-router\";\nimport axios from \"axios\";\nimport React, {useEffect} from \"react\";\nimport {AuthToken, loginUser} from \"../../slices/authSlice\";\nimport {parseJwt} from \"../AuthPage/LoginForm/useLoginMutation\";\nimport {useDispatch} from \"react-redux\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\n\nexport enum AuthPageSubPaths {\n login = '/login',\n forgotPassword = '/forgotPassword',\n resetPassword = '/resetPassword/:token'\n}\n\ninterface Params {\n tokenid: string\n}\nconst AdminAuthPage = () => {\n const { tokenid } = useParams()\n const dispatch = useDispatch()\n const history = useHistory()\n\n useEffect(() => {\n const getTokenFromAdmin = async () => {\n const json = JSON.stringify({ token: tokenid })\n const data: any = await axios.post('/adminlogin', json, {\n headers: {\n 'Content-Type': 'application/json'\n }\n })\n\n localStorage.setItem('tokenadmin', data.token)\n const parsedToken: AuthToken = parseJwt(data.token)\n // update redux\n dispatch(loginUser(parsedToken))\n\n history.push('/home')\n }\n getTokenFromAdmin();\n }, [tokenid])\n\n return (\n
\n
\n \n
\n
\n )\n}\n\nexport default AdminAuthPage\n\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\n\nexport const globalTextMessageFetcher = async (eventIdvalue) => {\n const { data } = await axios.post('/broadcasttextmessage', { eventid: eventIdvalue })\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.broadcastlist as []\n}\n\nexport const useUpdateBroadcastTextMessage = (body) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.put(`/broadcasttextmessage`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['textmessage', body.eventid])\n }\n })\n}\n\nexport const useFetchTextMessages = (eventid) => {\n return useQuery<[]>(\n ['textmessage', eventid],\n () => globalTextMessageFetcher(eventid),\n {}\n )\n}","import React, {useEffect, useState} from 'react'\nimport {DialogTitle, Grid, TextField, Tooltip, useTheme} from \"@mui/material\";\n\nimport styles from \"./BroadcastMessagePage.module.css\";\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport {useFetchParticpants} from \"../ParticipantsPage/useFetchParticipants\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {useForm} from \"react-hook-form\";\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n IconButton,\n useMediaQuery\n} from \"@material-ui/core\";\nimport {\n useCartEmailPresend,\n useBroadcastMessage,\n useCartEmailSend\n} from \"./useBroadcastMessage\";\nimport {Message as MessageIcon, AddShoppingCartOutlined, Add, Edit, Delete, Message} from \"@material-ui/icons\";\n\nimport Paper from '@material-ui/core/Paper'\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Sponsor, useFetchSponsors} from \"../../queries/events/useFetchSponsors\";\nimport {useFetchTextMessages, useUpdateBroadcastTextMessage} from \"../../queries/useFetchBroadcastTextMessages\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {useQueryClient} from \"react-query\";\n\ninterface Params {\n eventid: string\n}\n\ntype FormData = {\n broadcasttextid: number,\n broadcasttextphonetitle: string,\n broadcasttextmessage: string,\n broadcasttextstatus: string,\n broadcasttextsentdate: string\n}\n\nconst BroadcastMessagePage = () => {\n const { eventid } = useParams()\n const formMethods = useForm()\n const {watch, getValues, setValue, reset} = formMethods\n const broadcastMessage = useBroadcastMessage()\n const emailPresend = useCartEmailPresend()\n const queryClient = useQueryClient()\n const emailSend = useCartEmailSend()\n const { data: particpants, isLoading: dataLoading } = useFetchParticpants(eventid)\n const [distinctparticipantsauthorizedtexting, setDistinctparticipantsauthorizedtexting] = React.useState(1)\n const [messageList, setMessageList] = React.useState([{ value: '', label: '' }])\n const [messageTextList, setMessageTextList] = React.useState([{ value: '', label: '' }])\n const [sendNowMessageValueList, setSendNowMessageValueList] = React.useState([{ value: 'Sent', label: 'Send Now' }, { value: 'Scheduled', label: 'Send Later' }])\n const [emailPre, setEmailPre] = React.useState({ carts: 0, cartstotal: 0, lastdatesent: '' })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reload, setReload] = React.useState(0)\n const [isLoading, setIsLoading] = React.useState(false)\n const [dataRows, setDataRows] = React.useState([])\n const [textParticipants, setTextParticipants] = React.useState([])\n const { data: textMessageData, isLoading: textMessagesLoading } = useFetchTextMessages(Number(eventid))\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const whenToSend = watch('broadcasttextstatus')\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n useEffect(() => {\n preSend()\n getPhoneTextParticipants()\n }, [eventid, reload])\n\n useEffect(() => {\n console.log(textMessageData)\n if (textMessageData && textMessageData.length > 0) {\n const newDataRows = textMessageData.map((newdata: any) => {\n return {id: newdata.broadcasttextid, ...newdata}\n })\n setDataRows(newDataRows)\n }\n }, [textMessageData])\n\n useEffect(() => {\n let selectMessageList = []\n if (particpants && particpants.length > 0) {\n selectMessageList = particpants?.filter((item) => item.email && item.lastlogindate).map((obj) => {\n return { value: obj?.email, label: obj?.email }\n })\n }\n selectMessageList.unshift({ value: \"ALL\", label: \"ALL\" })\n setMessageList(selectMessageList)\n }, [particpants])\n\n useEffect(() => {\n let selectMessageList = []\n if (textParticipants && textParticipants.length > 0) {\n selectMessageList = textParticipants?.filter((item) => item.phone).map((obj) => {\n return { value: obj?.phone, label: obj?.participantinfo }\n })\n }\n var allLabel = 'ALL (' + distinctparticipantsauthorizedtexting + ' phone numbers currently opted in)'\n\n\n selectMessageList.unshift({ value: \"ALL\", label: allLabel })\n setMessageTextList(selectMessageList)\n }, [textParticipants])\n\n\n const getPhoneTextParticipants = async () => {\n const response = await axios.post(`/broadcasttextmessagelist`, {\n eventid: eventid\n })\n const parsedResponse = JSON.parse(response?.data?.jsonString)\n setDistinctparticipantsauthorizedtexting(parsedResponse.distinctparticipantsauthorizedtexting)\n setTextParticipants(parsedResponse.participantlist)\n }\n\n const preSend = async () => {\n let body = {\n eventid: eventid\n }\n\n await emailPresend.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n const dateLastSent = dayjs(json.lastdatesent).format('MM-DD-YYYY')\n const timeLastSent = dayjs(json.lastdatesent).format('h:mm A')\n const dateFormat = dateLastSent + \" at \" +timeLastSent\n setEmailPre({carts: json.carts, cartstotal: json.cartstotal, lastdatesent: json.lastdatesent ? dateFormat : '' })\n }\n })\n }\n\n\n const onBroadcastTextSubmit = async (data: any) => {\n setIsLoading(true)\n let body = {\n eventid: eventid,\n broadcasttextmessage: data.broadcasttextmessage\n }\n\n if (data.broadcasttextid !== null) {\n body['broadcasttextid'] = data.broadcasttextid\n }\n\n if (data.broadcasttextphonetitle !== 'ALL') {\n body['broadcasttextphone'] = data.broadcasttextphonetitle\n }\n\n if (whenToSend === 'Scheduled') {\n body['broadcasttextscheduledate'] = dayjs(data.broadcasttextsentdate).format('YYYY-MM-DDTHH:mm:ss')\n }\n\n const { data: putMessageData } = await axios.put('/broadcasttextmessage', body)\n const json = JSON.parse(putMessageData.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['textmessage', Number(eventid)])\n // setDialogMsg('Text Message was sent successfully.')\n setBroadcastTextDlg(false)\n }\n setIsLoading(false)\n }\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid,\n message: data.message\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n\n await broadcastMessage.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Message was sent successfully.')\n setBroadcastDlg(false)\n }\n }\n })\n }\n\n const onSubmitCart = async (data: any) => {\n let body = {\n eventid: eventid,\n subjectline: data.subjectline,\n }\n\n await emailSend.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n // console.log(json)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Email sent successfully.')\n setCartsDlg(false)\n }\n }\n })\n }\n\n\n const closeDialog = () => {\n setDialogObj({ msg: \"\", id: 0 })\n setDialogMsg(\"\")\n }\n\n const [brodacastDlg, setBroadcastDlg] = React.useState(false);\n const [brodacastTextDlg, setBroadcastTextDlg] = React.useState(false);\n const [cartsDlg, setCartsDlg] = React.useState(false);\n\n const handleOpenBroadcast = () => {\n setBroadcastDlg(true);\n };\n\n const handleOpenBroadcastTextMessages = () => {\n reset({\n 'broadcasttextid': null,\n 'broadcasttextphonetitle': 'ALL',\n 'broadcasttextmessage': '',\n 'broadcasttextstatus': 'Sent',\n 'broadcasttextsentdate': dayjs().add(30, 'minutes').toString()\n })\n setBroadcastTextDlg(true);\n };\n\n const handleCloseBroadcast = () => {\n setBroadcastDlg(false);\n };\n\n const handleCloseBroadcastText = () => {\n setBroadcastTextDlg(false);\n };\n\n const handleOpenCart = () => {\n setCartsDlg(true);\n };\n\n const handleCloseCart = () => {\n setCartsDlg(false);\n };\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n id: Number(params.row.broadcasttextid),\n msg: \"Are you sure you want to delete message - \" + params.row.broadcasttextphonetitle + ' - ' + params.row.broadcasttextmessage,\n })\n }\n\n const handleEdit = (params: GridCellParams) => {\n reset({\n 'broadcasttextid': params.row.broadcasttextid,\n 'broadcasttextphonetitle': params.row.broadcasttextphonetitle,\n 'broadcasttextmessage': params.row.broadcasttextmessage,\n 'broadcasttextstatus': params.row.broadcasttextstatus,\n 'broadcasttextsentdate': params.row.broadcasttextscheduledate\n })\n setBroadcastTextDlg(true)\n }\n\n const columns: GridColDef[] = [\n {\n field: 'broadcasttextid',\n headerName: '',\n disableExport: true,\n // renderHeader: () => {\n // return (\n // handleAdd()}\n // size=\"small\">\n // \n // \n // )\n // },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}\n >\n \n \n )\n },\n {\n field: 'broadcasttextdate',\n headerName: 'Date',\n width: 200,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'broadcasttextphonetitle',\n headerName: 'To',\n width: 150,\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return params.value === 'ALL' ? 'ALL' : \"Other\"\n // },\n },\n {\n field: 'broadcasttextstatus',\n type: 'string',\n headerName: 'Status',\n minWidth: 150,\n sortable: false,\n },\n {\n field: 'broadcasttextmessage',\n type: 'string',\n headerName: 'Message',\n minWidth: 120,\n sortable: false,\n headerAlign: \"center\",\n align: 'center',\n renderCell: (params) => (\n \n \n \n \n \n )\n },\n {\n field: 'broadcasttextcount',\n type: 'number',\n headerName: 'Text Count',\n minWidth: 120,\n sortable: false,\n },\n {\n field: 'action',\n headerName: 'Delete',\n disableExport: true,\n width: 120,\n sortable: false,\n renderCell: (params) => (\n
\n
\n { handleDelete(params) }}\n >\n \n \n
\n
\n )\n }\n ]\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"broadcasttextid\": Number(id),\n }\n\n const { data } = await axios.delete('/broadcasttextmessage', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['textmessage', Number(eventid)])\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n return (\n
\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n <>\n \n Unpaid Items in Carts\n \n \n\n \n Send a reminder email to all participants with unpaid terms remaining in their cart. It will include a list of their items and a link to the checkout page.\n \n\n \n Carts with items not checked out: {emailPre.carts}\n \n\n {emailPre?.lastdatesent.length > 0 &&\n \n This email was last sent on {emailPre.lastdatesent}\n \n }\n\n \n \n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n <>\n \n Broadcast Message\n \n \n \n \n \n \n \n \n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n <>\n \n Broadcast Text Message\n \n \n \n \n \n \n \n \n \n \n \n \n \n {whenToSend === 'Scheduled' &&\n \n \n \n }\n \n \n \n \n Cancel\n \n \n Send\n \n \n \n \n \n \n \n\n

Communication Tools

\n \n \n Emails\n \n \n {\n handleOpenCart()\n }}\n startIcon={}>\n UNPAID ITEMS IN CARTS\n \n \n\n \n In-app messages to people currently viewing the page\n \n \n {\n handleOpenBroadcast()\n }}\n startIcon={}>\n BROADCAST MESSAGE\n \n \n \n Text Messages via cell phone\n \n \n {\n setReload(reload+1)\n handleOpenBroadcastTextMessages()\n }}\n startIcon={}>\n BROADCAST TEXT MESSAGE\n \n \n \n \n \n \n \n\n \n {/**/}\n
\n )\n}\n\nexport default BroadcastMessagePage\n","import axios from 'axios'\nimport {useMutation, useQuery, useQueryClient} from 'react-query'\nimport {CheckoutObject, globalCheckoutFetcher} from \"../../queries/useFetchCheckout\";\n\nexport const useBroadcastMessage = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/broadcastmessage`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['broadcastmessage'])\n }\n })\n}\n\nexport const useBroadcastTextMessage = (body) => {\n return useQuery(\n ['broadcasttextmessage', body.eventid],\n () => globalBroadcastTextMessageFetcher(body),\n {\n staleTime: 0,\n keepPreviousData: false\n }\n )\n}\n\nexport const globalBroadcastTextMessageFetcher = async (body) => {\n const { data } = await axios.post('/broadcasttextmessage', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData as CheckoutObject\n}\n\n\nexport const useCartEmailPresend = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/cartemailpresend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['cartemailpresend'])\n }\n })\n}\n\n\nexport const useCartEmailSend = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/cartemailsend`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['cartemailsend'])\n }\n })\n}\n","import React, {useEffect} from 'react'\nimport {Grid} from \"@mui/material\";\n\nimport styles from \"./ForceRefreshPage.module.css\";\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport {useFetchParticpants} from \"../ParticipantsPage/useFetchParticipants\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {useForm} from \"react-hook-form\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText} from \"@material-ui/core\";\nimport {useForceRefresh, useForceLogout} from \"./useForceRefresh\";\nimport Paper from \"@material-ui/core/Paper\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport Typography from \"@mui/material/Typography\";\n\ninterface Params {\n eventid: string\n}\n\nconst ForceRefreshPage = () => {\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1)\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n\n const classes = useStyles()\n const { eventid } = useParams()\n const formMethods = useForm()\n const forceRefresh = useForceRefresh()\n const forceLogout = useForceLogout()\n const { data: particpants, isLoading } = useFetchParticpants(eventid)\n const [particpantsList, setParticpantsList] = React.useState([{ value: '', label: '' }])\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n\n useEffect(() => {\n let selectList = []\n if (particpants && particpants.length > 0) {\n selectList = particpants?.filter((item) => item.email && item.lastlogindate).map((obj) => {\n return { value: obj?.email, label: obj?.email }\n })\n }\n selectList.unshift({ value: \"All\", label: \"All\" })\n setParticpantsList(selectList)\n }, [particpants])\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n\n await forceRefresh.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Force Refresh was sent successfully.')\n }\n }\n })\n }\n\n const onSubmitForceLogout = async (data: any) => {\n let body = {\n eventid: eventid\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n\n await forceLogout.mutateAsync(body, {\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogMsg(json.message)\n }\n else {\n setDialogMsg('Force Logout was sent successfully.')\n }\n }\n })\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n
\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n

Force Refresh

\n \n \n \n \n \n \n \n Submit\n \n \n \n \n \n\n \n \n

Force Logout

\n
\n \n \n \n \n \n Submit\n \n \n
\n \n
\n )\n}\n\nexport default ForceRefreshPage\n","import axios from 'axios'\nimport { useMutation, useQueryClient } from 'react-query'\n\nexport const useForceRefresh = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/eventrefresh`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['forcerefresh'])\n }\n })\n}\n\nexport const useForceLogout = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) => axios.post(`/forcelogout`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['forcelogout'])\n }\n })\n}\n","import React, {useEffect} from 'react'\nimport styles from \"./TransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport {Checkbox, FormControlLabel, Grid} from \"@mui/material\";\nimport Paper from \"@material-ui/core/Paper\";\nimport SelectInput from \"../../components/common/inputs/SelectInput\";\nimport TextInput from \"../../components/common/inputs/TextInput\";\nimport {Button, Dialog, DialogActions, DialogContent} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {DateInput} from \"@progress/kendo-react-dateinputs\";\nimport dayjs from \"dayjs\";\n\ninterface FormData {\n batchCodeSelect: string\n batchCodeText: string\n CampaignSelect: string\n CampaignText: string\n AppealSelect: string\n AppealText: string\n AccountingCodeSelect: string\n AccountingCodeText: string\n DonationTypeSelect: string\n DonationTypeText: string\n}\nconst DonationPage = (params) => {\n const formMethods = useForm()\n const { setValue, watch, getValues } = formMethods\n const { reset } = formMethods\n const eventid = params.eventid\n\n const batchCodeSelectWatch = watch('batchCodeSelect')\n const batchCodeTextWatch = watch('batchCodeText')\n const campaignSelectWatch = watch('CampaignSelect')\n const campaignTextWatch = watch('CampaignText')\n const appealSelectWatch = watch('AppealSelect')\n const appealTextWatch = watch('AppealText')\n const donationTypeSelectWatch = watch('DonationTypeSelect')\n const dontaionTypeTextWatch = watch('DonationTypeText')\n const accountCodeSelectWatch = watch('AccountingCodeSelect')\n const accountCodeTextWatch = watch('DonationTypeText')\n const [donationData, setDonationData] = React.useState({numberOfCheckoutsPosted: 0, numberOfItemsPosted: 0, totalAmtPosted: 0, numberOfCheckoutsUnpostedLink: 1,\n numberOfItemsUnpostedLink: 1, totalAmtUnpostedLink: 1,\n extraAmtUnpostedLink: 0, numberOfCheckoutsUnpostedUnlink: 0,\n numberOfItemsUnpostedUnlink: 0, totalAmtUnpostedUnlink: 0, campaignlist: [], appeallist: [], batchcodelist: [], accountingcodelist: [], donationtypelist:[]})\n\n\n const [valueDate, setDateValue] = React.useState(new Date())\n const [dialogComplete, setdialogComplete] = React.useState({open: false, message: \"\"})\n const changeDate = (event) => {\n setDateValue(event.value);\n }\n\n const [checkedAck, setAckChecked] = React.useState(false);\n const handleAckChange = (event: React.ChangeEvent) => {\n setAckChecked(event.target.checked);\n }\n\n const [checkedFair, setFairChecked] = React.useState(false);\n const handleFairChange = (event: React.ChangeEvent) => {\n setFairChecked(event.target.checked);\n }\n\n useEffect(() => {\n getIntegrationDonation()\n }, [eventid])\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n const getBatchCodeText = (id) => {\n var textReturn = ''\n donationData?.batchcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const batchCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.batchcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getCampaignText = (id) => {\n var textReturn = ''\n donationData?.campaignlist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getCampaignOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.campaignlist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n\n const getIntegrationDonation = async () => {\n axios.post('/integrationdonation', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setDonationData(parsedData)\n })\n }\n\n const getAppealText = (id) => {\n var textReturn = ''\n donationData?.appeallist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAppealOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.appeallist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const getAccountingText = (id) => {\n var textReturn = ''\n donationData?.accountingcodelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getAccountingCodeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.accountingcodelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n // return [{value: 'none', label: 'None'}]\n }\n\n const getDonationText = (id) => {\n var textReturn = ''\n donationData?.donationtypelist?.forEach((data) => {\n if (data.id === id) {\n textReturn = data.name\n }\n })\n return textReturn\n }\n\n const getDonationTypeOptions = () => {\n const selectOptions = [{value: 'none', label: 'None'}]\n return [...selectOptions, ...donationData?.donationtypelist?.map((data) => {\n return {value: data.id, label: data.name}\n })]\n }\n\n const onSubmit = async (data: any) => {\n\n console.log(data)\n }\n\n const handleSubmit = () => {\n var body = {}\n if (batchCodeTextWatch?.length > 0) {\n body['batchcode'] = batchCodeTextWatch\n }\n else {\n body['batchcode'] = getBatchCodeText(batchCodeSelectWatch)\n }\n if (campaignTextWatch?.length > 0) {\n body['campaign'] = campaignTextWatch\n }\n else {\n body['campaign'] = getCampaignText(campaignSelectWatch)\n }\n if (appealTextWatch?.length > 0) {\n body['appeal'] = appealTextWatch\n }\n else {\n body['appeal'] = getAppealText(appealSelectWatch)\n }\n if (dontaionTypeTextWatch?.length > 0) {\n body['donation'] = dontaionTypeTextWatch\n }\n else {\n body['donation'] = getDonationText(donationTypeSelectWatch)\n }\n if (accountCodeTextWatch?.length > 0) {\n body['accountingcode'] = accountCodeTextWatch\n }\n else {\n body['accountingcode'] = getAccountingText(accountCodeSelectWatch)\n }\n body['fairmarketvalue'] = checkedFair\n body['donationack'] = checkedAck\n body['eventid'] = Number(eventid)\n body['accountingdate'] = dayjs(valueDate).format('MM-DD-YYYY')\n\n\n axios.put('/integrationdonation', body, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setdialogComplete({message: parsedData.message, open: true})\n getIntegrationDonation()\n\n })\n }\n\n return (\n
\n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n \n \n \n Donation Record Settings to Upload into DonorSnap\n \n \n \n 0}\n tooltipText={''}\n />\n \n \n
OR
\n
\n \n \n \n
\n \n \n 0}\n tooltipText={''}\n />\n \n \n
OR
\n
\n \n \n \n
\n \n \n 0}\n tooltipText={''}\n />\n \n \n
OR
\n
\n \n \n \n
\n \n \n \n \n \n \n \n } label=\"Set value received to be the Fair Market Value\" />\n \n \n \n \n } label=\"Mark all donation records as Acknowledged\" />\n \n \n\n {donationData.extraAmtUnpostedLink > 0 &&\n <>\n \n \n
For all additional donations made during checkout, use the following settings:
\n
\n
\n \n \n 0}\n tooltipText={''}\n />\n \n \n
OR
\n
\n \n \n \n
\n \n \n 0}\n tooltipText={''}\n />\n \n \n
OR
\n
\n \n \n \n
\n \n }\n \n \n {\n handleSubmit()\n }}\n >\n UPLOAD {donationData?.numberOfCheckoutsUnpostedLink} CHECKOUTS LINKED TO DONORSNAP CONTACTS\n \n \n \n
{donationData.numberOfCheckoutsUnpostedLink} Checkouts not linked to DonorSnap Contacts
\n
\n \n
{donationData.numberOfCheckoutsPosted} Checkouts already uploaded to DonorSnap
\n
\n
\n\n \n
\n\n
\n )\n}\nexport default DonationPage","import React, {useEffect} from 'react'\nimport {Checkbox, DialogTitle, FormControlLabel, Grid, TextField, useTheme} from \"@mui/material\";\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport styles from \"./TransferPage.module.css\";\nimport {useParams} from \"react-router\";\nimport HookForm from \"../../components/common/HookForm\";\nimport {useForm} from \"react-hook-form\";\nimport {Button, Dialog, DialogActions, DialogContent, DialogContentText, useMediaQuery} from \"@material-ui/core\";\nimport {createStyles, makeStyles, Theme} from \"@material-ui/core/styles\";\nimport axios from \"axios\";\nimport download from 'downloadjs';\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport DonationPage from \"./DonationPage\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\n\ninterface Params {\n eventid: string\n}\n\nconst TransferPage = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const formMethods = useForm()\n const [dialog, setDialog] = React.useState({count:0, open: false, checkedoutonly: false})\n const [dialogComplete, setdialogComplete] = React.useState({count:0, open: false, message: \"\"})\n\n const [value, setValue] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n const [contactData, setContactData] = React.useState({linkparticipants: 0, linkparticipantsnotauthorized: 0, message: \"\", totalparticipants: 0,\n unlinkcheckedoutparticipants: 0, unlinkcheckedoutparticipantsnotauthorized: 0, unlinkparticipants: 0, unlinkparticipantsnotauthorized: 0,\n unlinkpendingcartitemsparticipants: 0, unlinkpendingcartitemsparticipantsnotauthorized: 0});\n\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n\n function a11yProps(index: number) {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n }\n\n const useStyles = makeStyles((theme: Theme) =>\n createStyles({\n button: {\n margin: theme.spacing(1),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n },\n paper: {\n padding: theme.spacing(2),\n spacing: theme.spacing(100),\n paddingLeft: 10,\n marginLeft: 10,\n marginRight: 10,\n textAlign: 'left',\n fontSize: 25,\n color: theme.palette.text.secondary\n }\n })\n )\n const classes = useStyles()\n\n useEffect(() => {\n getContactDetails()\n }, [eventid])\n\n const onSubmit = async (data: any) => {\n let body = {\n eventid: eventid,\n message: data.message\n }\n\n if (data.email !== 'All') {\n body['email'] = data.email\n }\n }\n\n const getContactDetails = async () => {\n setLoading(true)\n axios.post('/integrationcontact', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n setContactData(parsedData)\n setLoading(false)\n })\n }\n\n const putIntegrationContact = async (checkedoutOnly) => {\n setLoading(true)\n axios.put('/integrationcontact', {eventid: eventid, checkedoutonly: checkedoutOnly}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setLoading(false)\n setdialogComplete({count: dialog.count, open: true, message: parsedData.message})\n setDialog({count: 0, open: false, checkedoutonly: false})\n getContactDetails()\n })\n }\n\n const promptWithDialog = async (messageCount, checkoutonly) => {\n setDialog({count: messageCount, open: true, checkedoutonly: checkoutonly})\n }\n\n const generateContactReport = async () => {\n setLoading(true)\n axios.post('/integrationcontactreport', {eventid: eventid}, {responseType: \"blob\"}).then(response => {\n var filename = 'integrationcontactreport.xlsx';\n var disposition = response.headers['content-disposition']\n var contentType = response.headers['content-type']\n if (disposition && disposition.indexOf('attachment') !== -1) {\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) {\n filename = matches[1].replace(/['\"]/g, '');\n }\n }\n if (response.data) {\n download(response.data, filename, contentType);\n }\n setLoading(false)\n })\n }\n\n const batchCodeOptions = () => {\n return [{value: 'none', label: 'None'}]\n }\n\n return (\n
\n <>\n \n Upload Participants to DonorSnap\n \n \n You are about to upload {dialog.count} participants into your DonorSnap account. Are you sure you want to continue?\n \n \n \n setDialog({count: 0, open: false, checkedoutonly: false})}\n >\n Cancel\n \n putIntegrationContact(dialog.checkedoutonly)}\n >\n UPLOAD TO DONORSNAP\n \n \n \n \n <>\n \n \n \n {/*Successfully added {dialogComplete.count} contacts to DonorSnap.*/}\n {dialogComplete.message}\n \n \n \n setdialogComplete({count: 0, open: false, message: ''})}\n >\n Ok\n \n \n \n \n\n\n \n \n\n\n

Transfer to DonorSnap / Export

\n \n \n \n \n {value === 0 && (\n \n {/**/}\n {/* Upload Options*/}\n {/**/}\n \n {\n generateContactReport()\n }}\n >\n EXPORT {contactData.totalparticipants} PARTICIPANTS TO EXCEL\n \n \n \n {\n promptWithDialog((contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized), true)\n }}\n >\n UPLOAD {contactData.unlinkparticipants - contactData.unlinkparticipantsnotauthorized} PARTICIPANTS NOT LINKED\n \n \n \n {\n promptWithDialog(contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n , false)\n }}\n >\n UPLOAD {contactData.unlinkcheckedoutparticipants - contactData.unlinkpendingcartitemsparticipantsnotauthorized\n } PARTICIPANTS NOT LINKED THAT CHECKED OUT\n \n \n \n
{contactData.unlinkpendingcartitemsparticipantsnotauthorized} Participant(s) are not linked but have items in their cart
\n
\n \n
{contactData.unlinkparticipantsnotauthorized} Participant(s) are not authorized and will not upload into DonorSnap
\n
\n
\n\n\n )}\n {value === 1 && (\n <>\n \n \n )}\n \n
\n )\n}\n\nexport default TransferPage\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventUserDefinedFetcher = async (body) => {\n const { data } = await axios.post('/evtuserdefined', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData.eventuserdefined\n}\n\nexport const useFetchUserDefined = (eventiDvalue) => {\n return useQuery(\n ['UserDefined', eventiDvalue],\n () => globalEventUserDefinedFetcher({ \"eventid\": eventiDvalue }),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEvtUserDefined = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateEvtUserDefined = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.post(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateUserDefined = (eventiDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventiDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventUserDefinedTable.module.css'\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\n\ninterface FormData {\n name: string\n id: number\n active: boolean\n delete: boolean\n}\n\nexport const EventValueForm = ({ isValueOpen, setIsValueOpen, activeId, controlDropdownValues, setControlDropdownValues }) => {\n const formMethods = useForm()\n const title = activeId ? \"Edit Dropdown\" : \"Add New Dropdown\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [activeValue, setActiveValue] = useState(true)\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: '',\n active: true\n })\n\n const createMutation = useCreateEvtItem()\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n useEffect(() => {\n var element = controlDropdownValues.find(c => c.id === activeId)\n if (element) {\n setActiveValue(element?.active)\n reset({\n name: element?.name\n })\n }\n else {\n reset({\n name: ''\n })\n }\n}, [activeId, controlDropdownValues])\n\n const onSubmit = async (data: FormData) => {\n const cdv = controlDropdownValues\n if (activeId) {\n var element = cdv.find(c => c.id === activeId)\n element.name = data.name\n element.active = activeValue\n }\n else {\n var id = -1\n if (cdv && cdv.length > 0) {\n id = Math.min(...cdv.map(o => o.id))\n if (Math. sign(id) === -1) {\n id = (id + -1)\n console.log(id)\n }\n else {\n id = -1\n }\n }\n\n const newValues = [...cdv, {id: id, name: data.name, active: activeValue}]\n setControlDropdownValues(newValues)\n }\n\n setIsValueOpen(false)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n } label=\"Active\" />\n \n \n \n setIsValueOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventUserDefinedTable.module.css'\nimport axios from \"axios\";\nimport {useCreateEvtUserDefined} from \"../../queries/useEventUserDefinedFetch\"\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Add, Delete, Edit} from \"@material-ui/icons\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {\n FormControl,\n FormControlLabel,\n InputLabel,\n ListItemText,\n MenuItem,\n OutlinedInput,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\n\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport dayjs, {Dayjs} from \"dayjs\";\n\n// 1 - boolean\n// 2 - Lookup\n// 3 - integer\n// 4 - money (double)\n// 5 - text\n// 6 - date\n// 7 - text ([1,3,5] multi lookup values\n// 8 - Datetime\n// 9 - Time\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const EventUserDefinedForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Edit User Defined Item\" : \"Create User Defined Item\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const controlWatch = watch('control')\n const [loading, setLoading] = React.useState(false);\n const [itemSelection, setItemSelection] = React.useState([]);\n const [activeValue, setActiveValue] = useState(true)\n const [displayForAllGuest, setDisplayForAllGuest] = useState(true)\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [currencyNumber, setCurrencyNumber] = useState(0)\n const [dateTimeValue, setDateTimeValue] = useState(null)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n }\n\n useEffect(() => {\n setControlDropdownValues([])\n getDropdowns()\n }, [])\n\n useEffect(() => {\n setControlDropdownValues([])\n }, [isOpen])\n\n const getDropdowns = async () => {\n setLoading(true)\n axios.post('/evtuserdefineddropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n const getEvtUserDefined = async (udid) => {\n axios.post('/evtuserdefined', {eventid: eventid, udid: udid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n if (parsedData && parsedData?.dropdownlist) {\n console.log(parsedData?.dropdownlist)\n setControlDropdownValues(parsedData?.dropdownlist)\n }\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n if (gridParams?.fieldtype === 'Dropdown') {\n getEvtUserDefined(gridParams?.id).then(() => {\n setValue('defaultcontrol2', Number(gridParams.control2))\n })\n }\n // setControlDropdownValues(((gridParams && gridParams?.itemlist && gridParams?.itemlist?.length > 0) ? gridParams?.itemlist : []))\n setItemSelection((gridParams && gridParams?.items && gridParams?.items?.length > 0 ? gridParams.items : []))\n\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n displayforallguest: (gridParams ? gridParams.displayforallguest : true),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest((gridParams ? gridParams.displayforallguest : true))\n\n // Setup Currency value\n if (gridParams?.control == 4) {\n setCurrencyNumber(gridParams?.default4)\n }\n else if (gridParams?.control == 6) {\n setDateTimeValue(gridParams?.default6)\n }\n }, [reloadForm])\n\n useEffect(() => {\n if (gridParams) {\n let resetObject = {\n id: (gridParams ? gridParams.id : null),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n }\n\n if (gridParams && gridParams.control) {\n resetObject['control'] = (gridParams ? gridParams.control : 1)\n }\n\n reset(resetObject)\n setDisplayForAllGuest((gridParams ? gridParams.displayforallguest : true))\n }\n }, [controlDropdownValues])\n\n\n const fieldTypeOptions = () => {\n const dtRows = dropdownData?.fieldtypelist?.filter((e) => e.active === true).map((types) => {\n return {value: types.control, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const defaultValueOptions = () => {\n console.log(controlDropdownValues)\n const dtRows = controlDropdownValues.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [{value: -9000, label: 'None'}, ...dtRows]\n }\n else {\n return []\n }\n }\n\n const handleItemChange = (event: SelectChangeEvent) => {\n const {\n target: { value },\n } = event;\n var values = []\n if (typeof value === 'string') {\n values = value.split(',')\n }\n else {\n value?.forEach(v => {\n if (v.length > 0) {\n values.push(v)\n }\n })\n }\n\n setItemSelection(values)\n }\n\n // const createMutation = useCreateEvtItem()\n const createMutation = useCreateEvtUserDefined()\n const onSubmit = async (data: FormData) => {\n console.log(data)\n // console.log(itemSelection)\n // console.log(gridParams)\n\n const itemsInSelection = itemSelection?.map(item => {\n return dropdownData?.itemlist?.find(realDataItem => realDataItem.itemname === item)\n })\n var itemidsString = ''\n\n itemsInSelection?.map(itm => {\n if (itm) {\n if (itemidsString.length > 0) {\n itemidsString += '|'\n }\n itemidsString += itm.itemid\n }\n })\n\n const defaultControl = 'defaultcontrol' + data.control\n const defaultControlkey = 'default' + data.control\n var finalData = {\n eventid: eventid,\n control: data.control,\n fieldname: data.fieldname,\n displayforallguest: displayForAllGuest,\n active: activeValue,\n itemids: itemidsString,\n // items: itemsInSelection\n }\n finalData[defaultControlkey] = data[defaultControl]\n if (data.control === 2) {\n const controlName = 'default' + data.control + 'text'\n const defaultControlValue = controlDropdownValues.find(control => control.id === data[defaultControl])\n finalData[controlName] = defaultControlValue?.name\n finalData['lookuplist'] = controlDropdownValues.map(cdv => {\n return {name: cdv.name, active: cdv.active}\n })\n }\n else if (data.control === 4) {\n finalData['default4'] = Number(currencyNumber)\n }\n else if (data.control === 6) {\n finalData['default6'] = dayjs(dateTimeValue).format('YYYY-MM-DDTHH:mm:ss')\n }\n if (gridParams?.id !== null && gridParams?.id > 0) {\n finalData['udid'] = gridParams.id\n finalData['lookuplist'] = controlDropdownValues\n }\n\n\n const { data: response } = await createMutation.mutateAsync(finalData)\n const parsedResponse = JSON.parse(response?.jsonString)\n // console.log(parsedResponse)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const handleAdd = () => {\n setActiveId(null)\n setIsValueOpen(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setActiveId(Number(params.row.id))\n setIsValueOpen(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleDisplayForAllGuest = (event: React.ChangeEvent) => {\n if (event.target.checked) {\n setItemSelection([])\n }\n setDisplayForAllGuest(event.target.checked);\n }\n\n const handleDelete = (params: GridCellParams) => {\n console.log(params)\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.name + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 350,\n sortable: false,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
\n
\n { handleDelete(params) }}>\n \n \n
\n //
\n // \n )\n }\n ]\n\n const handleAmountChange = (event) => {\n // setAmountChange(event.floatValue)\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n setCurrencyNumber(newValue)\n }\n\n const handleDateTimeChange = (newValue: Dayjs | null) => {\n setDateTimeValue(newValue.format('MM-DD-YYYY hh:mm A'))\n }\n\n const handleChecked = (item) => {\n return (itemSelection.indexOf(item.itemname) > -1)\n }\n\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {controlWatch === 1 &&\n \n }\n\n {controlWatch === 2 &&\n <>\n \n\n \n \n }\n\n {controlWatch === 3 &&\n \n }\n\n {controlWatch === 4 &&\n handleCurrencyChange(value)}\n />\n }\n\n {controlWatch === 5 &&\n \n }\n\n {controlWatch === 6 &&\n \n { handleDateTimeChange(e)}}\n // renderInput={(params) => }\n />\n \n }\n } label=\"Display for All Guest Registrations\" />\n \n Display for Specific Item(s)\n }\n renderValue={(selected) => selected.join(', ')}\n MenuProps={MenuProps}\n >\n {dropdownData?.itemlist?.map((item) => (\n \n -1} />\n \n \n ))}\n \n \n } label=\"Active\" />\n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEvtUserDefined, useFetchUserDefined, useUpdateUserDefined} from '../../queries/useEventUserDefinedFetch'\nimport { EventUserDefinedForm } from './EventUserDefinedForm'\nimport styles from './EventUserDefinedTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventUserDefinedTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n\n const { data, isLoading } = useFetchUserDefined( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.itemid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const ai = rows.filter((item) => item.id === Number(params.id))[0]\n console.log(ai)\n const itemsTemp = ai.items.split(',').map(strs => { return strs.trim() })\n const itemidsTemp = ai.itemids.split('|')\n\n var values = {\n id: ai.id,\n control: ai.control,\n fieldname: ai.fieldname,\n fieldtype: ai.fieldtype,\n displayvalue: ai.displayvalue,\n active: ai.active,\n uditem: ai.uditem,\n items: itemsTemp,\n itemids: itemidsTemp,\n displayforallguest: ai.displayforallguest,\n }\n const defaultValue = 'default' + ai.control\n values[defaultValue] = ai[defaultValue]\n\n setGridParams(values)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.fieldname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"udid\": id,\n \"delete\": true\n }\n const { data: response } = await eventUserDefineCreate.mutateAsync({\n ...finaldata\n },{\n onSuccess: (data) => {\n const json = JSON.parse(data.data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'fieldname',\n type: 'string',\n headerName: 'Field Name',\n minWidth: 350,\n sortable: true,\n },\n {\n field: 'fieldtype',\n type: 'string',\n headerName: 'Field Type',\n minWidth: 200,\n sortable: true,\n hide: false\n },\n {\n field: 'displayvalue',\n type: 'string',\n headerAlign: 'left',\n align: 'right',\n headerName: 'Default Value',\n minWidth: 150,\n sortable: true,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: true,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
\n
\n { handleDelete(params) }}>\n \n \n
\n //
\n // \n )\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n\n return (\n
\n

User Defined Fields

\n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
\n )\n}\n\nexport default EventUserDefinedTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventTransactionFetcher = async (body) => {\n const { data } = await axios.post('/evtactivitytransactions', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData.transactions\n}\n\nexport const useFetchTransaction = (eventIDvalue) => {\n var body = {\"eventid\": eventIDvalue}\n return useQuery(\n ['EventTransaction', eventIDvalue],\n () => globalEventTransactionFetcher(body),\n {\n staleTime: 120000,\n //keepPreviousData: true\n }\n )\n}\n\nexport const useCreateEventTransaction = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateTransaction = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport Switch from '../../components/common/inputs/Switch'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport {Checkbox, FormControlLabel} from \"@mui/material\";\nimport NumberFormat from 'react-number-format'\nimport axios from \"axios\";\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridColDef} from \"@mui/x-data-grid-premium\";\nimport {Add, Edit} from \"@material-ui/icons\";\n\ninterface FormData {\n name: string\n id: number\n active: boolean\n delete: boolean\n}\n\nexport const EventValueForm = ({ isValueOpen, setIsValueOpen, activeId, controlDropdownValues, setControlDropdownValues }) => {\n const formMethods = useForm()\n const title = activeId ? \"Edit Dropdown\" : \"Add New Dropdown\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [activeValue, setActiveValue] = useState(true)\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n const [groupValues, setGroupValues] = useState({\n id: 0,\n name: '',\n active: true\n })\n\n const createMutation = useCreateEvtItem()\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n useEffect(() => {\n var element = controlDropdownValues.find(c => c.id === activeId)\n if (element) {\n setActiveValue(element?.active)\n reset({\n name: element?.name\n })\n }\n else {\n reset({\n name: ''\n })\n }\n}, [activeId, controlDropdownValues])\n\n const onSubmit = async (data: FormData) => {\n const cdv = controlDropdownValues\n if (activeId) {\n var element = cdv.find(c => c.id === activeId)\n element.name = data.name\n element.active = activeValue\n }\n else {\n var id = -1\n // if (cdv && cdv.length > 0) {\n // id = Math.max(...cdv.map(o => o.id)) + 1\n // }\n\n const newValues = [...cdv, {id: id, name: data.name, active: activeValue}]\n setControlDropdownValues(newValues)\n }\n\n setIsValueOpen(false)\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n return (\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n } label=\"Active\" />\n \n \n \n setIsValueOpen(false)}>\n Cancel\n \n \n Submit\n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {useCreateEvtUserDefined} from \"../../queries/useEventUserDefinedFetch\"\nimport {useCreateEvtItem} from \"../../queries/useEventItemsFetch\";\nimport {DataGridPremium, GridCellParams, GridColDef, GridValueFormatterParams} from \"@mui/x-data-grid-premium\";\nimport {Add, Delete, Edit} from \"@material-ui/icons\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {\n FormControl,\n FormControlLabel,\n InputLabel,\n ListItemText,\n MenuItem,\n OutlinedInput,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\n\nimport { DatePicker } from '@mui/x-date-pickers/DatePicker';\nimport { LocalizationProvider } from '@mui/x-date-pickers/LocalizationProvider';\nimport { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs';\nimport {Dayjs} from \"dayjs\";\n\n// 1 - boolean\n// 2 - Lookup\n// 3 - integer\n// 4 - money (double)\n// 5 - text\n// 6 - date\n// 7 - text ([1,3,5] multi lookup values\n// 8 - Datetime\n// 9 - Time\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\n}\n\nexport const EventTransactionsDetailForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, itemrows }) => {\n const formMethods = useForm()\n const title = gridParams ? \"Transaction Detail\" : \"Transaction Detail\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const controlWatch = watch('control')\n const [loading, setLoading] = React.useState(false);\n const [itemSelection, setItemSelection] = React.useState([]);\n const [activeValue, setActiveValue] = useState(true)\n const [displayForAllGuest, setDisplayForAllGuest] = useState(true)\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [currencyNumber, setCurrencyNumber] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dropdownData, setDropdownData] = React.useState({\n fieldtypelist: [],\n itemlist: [],\n });\n\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n\n const ITEM_HEIGHT = 48;\n const ITEM_PADDING_TOP = 8;\n const MenuProps = {\n PaperProps: {\n style: {\n maxHeight: ITEM_HEIGHT * 4.5 + ITEM_PADDING_TOP,\n width: 250,\n },\n },\n };\n\n useEffect(() => {\n setControlDropdownValues([])\n getDropdowns()\n }, [])\n\n\n const getDropdowns = async () => {\n setLoading(true)\n axios.post('/evtuserdefineddropdowns', {eventid: eventid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n setDropdownData(parsedData)\n setLoading(false)\n })\n }\n\n const getEvtUserDefined = async (udid) => {\n axios.post('/evtuserdefined', {eventid: eventid, udid: udid}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n if (parsedData && parsedData?.dropdownlist) {\n console.log(parsedData?.dropdownlist)\n setControlDropdownValues(parsedData?.dropdownlist)\n }\n })\n }\n\n useEffect(() => {\n console.log(gridParams)\n if (gridParams?.fieldtype === 'Dropdown') {\n getEvtUserDefined(gridParams?.id).then(() => {\n // console.log('set value')\n // console.log(gridParams)\n // console.log(gridParams.default2)\n // setValue('defaultcontrol2', Number(gridParams.control2))\n })\n }\n // setControlDropdownValues(((gridParams && gridParams?.itemlist && gridParams?.itemlist?.length > 0) ? gridParams?.itemlist : []))\n setItemSelection((gridParams && gridParams?.items && gridParams?.items?.length > 0 ? gridParams.items : []))\n\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: (gridParams ? gridParams.default2 : null),\n defaultcontrol3: (gridParams ? gridParams.default : null),\n defaultcontrol4: (gridParams ? gridParams.default4 : null),\n defaultcontrol5: (gridParams ? gridParams.default : null),\n defaultcontrol6: (gridParams ? gridParams.default : null),\n displayforallguest: (gridParams ? gridParams.displayforallguest : false),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest((gridParams? gridParams.displayforallguest : false))\n\n // Setup Currency value\n if (gridParams && gridParams.default4) {\n setCurrencyNumber(gridParams.default4)\n }\n\n }, [reloadForm])\n\n useEffect(() => {\n console.log('reset form')\n console.log(gridParams)\n console.log(controlDropdownValues)\n reset({\n id: (gridParams ? gridParams.id : null),\n control: (gridParams ? gridParams.control : 1),\n fieldname: (gridParams ? gridParams.fieldname : null),\n defaultcontrol1: (gridParams ? gridParams.displayvalue === \"Yes\" : null),\n defaultcontrol2: gridParams.default2,\n defaultcontrol3: (gridParams && gridParams.default3 ? gridParams.default3 : null),\n defaultcontrol4: (gridParams && gridParams.default4 ? gridParams.default4 : null),\n defaultcontrol5: (gridParams && gridParams.default5 ? gridParams.default5 : null),\n defaultcontrol6: (gridParams && gridParams.default6 ? gridParams.default6 : null),\n items: (gridParams ? gridParams.items : []),\n active: (gridParams ? gridParams.active : false),\n delete: (gridParams ? gridParams.delete : false),\n })\n setDisplayForAllGuest(gridParams.displayforallguest)\n }, [controlDropdownValues])\n\n\n const fieldTypeOptions = () => {\n const dtRows = dropdownData?.fieldtypelist?.filter((e) => e.active === true).map((types) => {\n return {value: types.control, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const defaultValueOptions = () => {\n console.log(controlDropdownValues)\n const dtRows = controlDropdownValues.filter((e) => e.active === true).map((types) => {\n return {value: types.id, label: types.name}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const handleItemChange = (event: SelectChangeEvent) => {\n const {\n target: { value },\n } = event;\n var values = []\n if (typeof value === 'string') {\n values = value.split(',')\n }\n else {\n value?.forEach(v => {\n if (v.length > 0) {\n values.push(v)\n }\n })\n }\n\n setItemSelection(values)\n }\n\n // const createMutation = useCreateEvtItem()\n const createMutation = useCreateEvtUserDefined()\n const onSubmit = async (data: FormData) => {\n console.log(data)\n // console.log(itemSelection)\n // console.log(gridParams)\n\n const itemsInSelection = itemSelection?.map(item => {\n return dropdownData?.itemlist?.find(realDataItem => realDataItem.itemname === item)\n })\n var itemidsString = ''\n\n itemsInSelection?.map(itm => {\n if (itm) {\n if (itemidsString.length > 0) {\n itemidsString += '|'\n }\n itemidsString += itm.itemid\n }\n })\n\n const defaultControl = 'defaultcontrol' + data.control\n const defaultControlkey = 'default' + data.control\n var finalData = {\n eventid: eventid,\n control: data.control,\n fieldname: data.fieldname,\n displayforallguest: displayForAllGuest,\n active: activeValue,\n itemids: itemidsString,\n // items: itemsInSelection\n }\n finalData[defaultControlkey] = data[defaultControl]\n if (data.control === 2) {\n finalData['lookuplist'] = controlDropdownValues.map(cdv => {\n return {name: cdv.name, active: cdv.active}\n })\n }\n else if (data.control === 4) {\n finalData['default4'] = Number(currencyNumber)\n }\n if (gridParams?.id !== null && gridParams?.id > 0) {\n finalData['udid'] = gridParams.id\n finalData['lookuplist'] = controlDropdownValues\n }\n\n\n const { data: response } = await createMutation.mutateAsync(finalData)\n const parsedResponse = JSON.parse(response?.jsonString)\n // console.log(parsedResponse)\n if (parsedResponse?.status === 'failure') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n setIsOpen(false)\n }\n }\n\n const handleAdd = () => {\n setActiveId(null)\n setIsValueOpen(true)\n }\n\n const handleEdit = (params: GridCellParams) => {\n setActiveId(Number(params.row.id))\n setIsValueOpen(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleActiveChange = (event: React.ChangeEvent) => {\n setActiveValue(event.target.checked);\n }\n\n const handleDisplayForAllGuest = (event: React.ChangeEvent) => {\n setDisplayForAllGuest(event.target.checked);\n }\n\n const handleDelete = (params: GridCellParams) => {\n console.log(params)\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.name + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'name',\n type: 'string',\n headerName: 'Name',\n minWidth: 350,\n sortable: false,\n },\n {\n field: 'active',\n type: 'string',\n headerName: 'Status',\n width: 120,\n sortable: false,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
\n
\n { handleDelete(params) }}>\n \n \n
\n //
\n // \n )\n }\n ]\n\n const handleAmountChange = (event) => {\n // setAmountChange(event.floatValue)\n }\n\n const handleCurrencyChange = (newValue: number | null) => {\n setCurrencyNumber(newValue)\n }\n\n const handleDateTimeChange = (newValue: Dayjs | null) => {\n // const updatedSubmit = dateTimeValues.filter(val => (val.schedulefieldid !== schedulefieldid))\n // const updateDates = [...updatedSubmit, { schedulefieldid: schedulefieldid,\n // dateTimeValue: newValue }]\n // setDateTimeValues(updateDates)\n }\n\n const handleChecked = (item) => {\n return (itemSelection.indexOf(item.itemname) > -1)\n }\n\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n \n \n {controlWatch === 1 &&\n \n }\n\n {controlWatch === 2 &&\n <>\n \n\n \n \n }\n\n {controlWatch === 3 &&\n \n }\n\n {controlWatch === 4 &&\n handleCurrencyChange(value)}\n />\n }\n\n {controlWatch === 5 &&\n \n }\n\n {controlWatch === 6 &&\n \n { handleDateTimeChange(e)}}\n // renderInput={(params) => }\n />\n \n }\n } label=\"Display for All Guest Registrations\" />\n \n Display for Specific Item(s)\n }\n renderValue={(selected) => selected.join(', ')}\n MenuProps={MenuProps}\n >\n {dropdownData?.itemlist?.map((item) => (\n \n -1} />\n \n \n ))}\n \n \n } label=\"Active\" />\n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport {\n FormControl,\n FormControlLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\n\ninterface FormData {\n id: number\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\n\nexport const EventAddCheckoutForm = ({ isOpen, setIsOpen, gridParams, reloadForm, eventid, transactionId, setTransactionId, handleNext, itemQuantity, setItemQuantity }) => {\n const formMethods = useForm()\n const eventState = useEventState()\n const title = gridParams ? \"Add Items for Checkout\" : \"Add Items for Checkout\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n // const [itemQuantity, setItemQuantity] = React.useState({})\n const [checkoutData, setCheckoutData] = React.useState([])\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n const [itemPrice, setItemPrice] = React.useState({})\n const [quantityModal, setQuantityModal] = React.useState({active: false, quantity: 0, item: \"\"})\n\n useEffect(() => {\n getCheckoutData()\n }, [isOpen])\n\n const getCheckoutData = async () => {\n console.log('getting checkout data')\n setLoading(true)\n const { data } = await axios.post('/evtactivitytransactionssetup', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n if (transactionId <= 0) {\n setTransactionId(parsedData.transactionid)\n }\n setCheckoutData(parsedData?.sections)\n setLoading(false)\n }\n\n const onSubmit = async (data: FormData) => {\n console.log(data)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n setQuantityModal({active: false, quantity: 0, item: null})\n }\n\n const quantityUpdate = async (value, item) => {\n console.log('quantityUpdate')\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 setItemPrice(prices)\n }\n const quantityBlur = async (value, item) => {\n console.log(item)\n const body = {quantity: Number(value), itemid: Number(item.id), eventid: eventid, transactionid: transactionId}\n\n const data = await axios.post('/evtactivitytransactionsadditem', body, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n\n // if (parsedData.status === 'expired') {\n // localStorage.removeItem(\"token\")\n // history.push(`/${eventcode}/event`);\n // }\n 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 var quantityValue = itemQuantity[item.id]\n if (item.maxquantitypertransaction > quantityValue) {\n quantityValue = item.maxquantitypertransaction\n }\n var priceUnformatted = 0\n if (itemPrice && itemPrice[item.id]) {\n priceUnformatted = Number(itemPrice[item.id].split(\"$\").pop())\n }\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 useEffect(() => {\n const quantity = {...itemQuantity}\n const prices = {...itemPrice}\n checkoutData.map((item, index) => {\n item.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 setItemQuantity(quantity)\n setItemPrice(prices)\n }, [checkoutData])\n\n return (\n <>\n \n {title}\n {/**/}\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 {quantityModal.quantity + ' Remaining'}\n \n \n
\n \n \n \n
\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n\n {checkoutData.map((section) => (\n <>\n \n {section.sectionname}\n {/*{section.sectionname}*/}\n \n {section?.data.map((sectiondata) => (\n <>\n \n \n {sectiondata.name}\n \n \n {quantityUpdate(e.target.value, sectiondata)}}\n onBlur={(e) => {quantityBlur(e.target.value, sectiondata)}}\n value={itemQuantity[sectiondata.id]}\n defaultValue={itemQuantity[sectiondata.id] > 0 ? itemQuantity[sectiondata.id] : 0}\n />\n \n \n {(!sectiondata?.isquantityunlimited && sectiondata?.quantityremaining <= 0) &&\n SOLD OUT\n }\n {(sectiondata?.isquantityunlimited || sectiondata?.quantityremaining > 0) &&\n {calcItemPrice(sectiondata)}\n }\n \n \n \n ))}\n \n ))}\n \n \n \n {\n setTransactionId(0)\n setCheckoutData([])\n setIsOpen(false)\n }}>\n Cancel\n \n \n Next\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, Switch, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\n// import SelectInput from '../../components/common/inputs/SelectInput'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {EventValueForm} from \"./EventValueForm\";\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport {\n FormControl,\n FormControlLabel, FormLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {statesArray} from \"../../util/formValidation\";\n\ninterface FormData {\n id: number\n paymentmethod: string\n additionaldonation: number\n discount: number\n promoCode: string\n first: string\n last: string\n address: string\n address2: string\n city: string\n state: string\n zip: string\n email: string\n}\n\nconst SpanImage = styled.span`\n margin-top: 5px;\n`\n\nconst Image = styled.img`\n height: 30px;\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 Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const EventCheckoutForm = ({ isOpen, setIsOpen, setIsAddEventCheckout, eventId, transactionid, setItemQuantity, setIsEventReview }) => {\n\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Checkout\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false);\n const [isValueOpen, setIsValueOpen] = useState(false)\n const [activeId, setActiveId] = useState(1)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [cryptogram, setCryptogram] = useState('');\n const [invalidateIframe, setInvalidateIframe] = React.useState(1)\n const [includeCCFees, setIncludeCCFees] = React.useState(false);\n const [subtotal, setSubtotal] = useState(0);\n const [ccfees, setCCFees] = useState(0);\n const [quantity, setQuantity] = useState(0);\n const [additionalDonation, setAdditionalDonation] = React.useState(0)\n const [discount, setDiscount] = React.useState(0)\n const [totalAmount, setTotalAmount] = React.useState(0)\n const [isLoadingBackdrop, setisLoadingBackdrop] = React.useState(false)\n\n useEffect(() => {\n window.addEventListener(\"message\", processPayment, false)\n return () => {\n window.removeEventListener(\"message\", processPayment)\n }\n }, [])\n\n const handleCCFeesChange = (event: React.ChangeEvent) => {\n setIncludeCCFees(event.target.checked);\n }\n\n const [cartData, setCartData] = React.useState({\n cartitems: [],\n ccfee: 0,\n creditcardiframe: '',\n transcenterid: '',\n processorid: '',\n transactiontype: '',\n javascriptfile: '',\n additionaldonation: 0,\n discount: 0,\n allowpaymentoffees: false,\n subtotal: 0,\n hasdiscount: true\n })\n const [controlDropdownValues, setControlDropdownValues] = useState([])\n const paymentMethodWatch = watch('paymentmethod')\n const discountCodeWatch = watch('promoCode')\n const firstWatch = watch('first')\n const lastWatch = watch('last')\n const cityWatch = watch('city')\n const stateWatch = watch('state')\n const zipWatch = watch('zip')\n const addressWatch = watch('address')\n const address2Watch = watch('address2')\n const emailWatch = watch('email')\n\n useEffect(() => {\n if (paymentMethodWatch !== 'CC') {\n setIncludeCCFees(false)\n }\n }, [paymentMethodWatch])\n\n useEffect(() => {\n console.log(discountCodeWatch)\n }, [discountCodeWatch])\n\n useEffect(() => {\n setValue('first', '')\n setValue('last', '')\n setValue('promoCode', '')\n setValue('address', '')\n setValue('address2', '')\n setValue('city', '')\n setValue('state', '')\n setValue('zip', '')\n setValue('email', '')\n setValue('additionaldonation', 0)\n setAdditionalDonation(0)\n\n getCartData()\n }, [isOpen])\n\n useEffect(() => {\n // console.log(creditCardInfo)\n if (cartData && cartData.javascriptfile) {\n const script = document.createElement(\"script\")\n script.src = cartData?.javascriptfile\n script.id = \"firstpay-script-cryptogram\"\n script.type = \"text/javascript\"\n script.setAttribute(\"data-transcenter\", cartData?.transcenterid)\n script.setAttribute(\"data-processor\", cartData?.processorid)\n document.body.appendChild(script)\n\n setAdditionalDonation(cartData?.additionaldonation)\n\n const amount = cartData.subtotal\n setSubtotal(amount)\n setQuantity(cartData?.cartitems?.length | 0)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n if (discount > 0) {\n ccAmount -= discount\n }\n setCCFees(ccAmount * (cartData?.ccfee / 100))\n const total = (eventState?.allowpaymentoffees && includeCCFees && eventState?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (eventState?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n }\n }, [cartData])\n\n useEffect(() => {\n const amount = cartData.subtotal\n setSubtotal(cartData.subtotal)\n\n var ccAmount = 0\n if (amount > 0) {\n ccAmount += amount\n }\n if (additionalDonation > 0) {\n ccAmount += additionalDonation\n }\n if (discount > 0) {\n ccAmount -= discount\n }\n setCCFees(((ccAmount) * (cartData?.ccfee / 100)))\n\n const total = (cartData?.allowpaymentoffees && includeCCFees && cartData?.ccfee > 0.000000001) ?\n ccAmount + (ccAmount * (cartData?.ccfee / 100)) :\n ccAmount\n setTotalAmount(total)\n }, [includeCCFees, additionalDonation, discount])\n\n const getCartData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtactivitytransactionscart', {eventid: eventId, transactionid})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setCartData(parsedData)\n // setTransactionId(parsedData?.transactionid)\n setLoading(false)\n }\n\n const handleAdditionalDonationChange = (newValue: number | null) => {\n if (newValue > 0) {\n setAdditionalDonation(newValue)\n }\n else {\n setAdditionalDonation(0)\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 onSubmit = async () => {\n setisLoadingBackdrop(true)\n var errorMessage = ''\n if (paymentMethodWatch === \"CC\" && cryptogram.length <= 0) {\n errorMessage = \"Please enter a valid credit card.\"\n }\n\n var error = false\n if (firstWatch.length <= 0) {\n setError('first', { type: 'required', message: 'First name is required.' })\n error = true\n }\n else {\n clearErrors('first')\n }\n if (lastWatch.length <= 0) {\n setError('last', { type: 'required', message: 'Last name is required.' })\n error = true\n }\n else {\n clearErrors('last')\n }\n if (zipWatch.length <= 0 && paymentMethodWatch === \"CC\") {\n setError('zip', { type: 'required', message: 'Zip code is required.' })\n error = true\n }\n else {\n clearErrors('zip')\n }\n if (error) {\n setisLoadingBackdrop(false)\n return\n }\n\n if (errorMessage.length > 0) {\n setisLoadingBackdrop(false)\n setDialogMsg(errorMessage)\n }\n else {\n var body = {\n eventid: eventId,\n transactionid: transactionid,\n totalamount: Number(totalAmount.toFixed(2)),\n discountamount: discount,\n additionaldonation: additionalDonation,\n ccfeesexactamount: includeCCFees ? cartData?.ccfee : 0, // Number(ccfees.toFixed(2)),\n paymentmethod: paymentMethodWatch,\n emerchtoken: cryptogram,\n subtotal: subtotal,\n first: firstWatch,\n last: lastWatch,\n address: addressWatch,\n address2: address2Watch,\n city: cityWatch,\n state: stateWatch,\n zip: zipWatch,\n email: emailWatch\n }\n const { data } = await axios.put('/evtactivitytransactionscheckout', body)\n console.log(data)\n\n const parsedResponse = JSON.parse(data?.jsonString)\n console.log(parsedResponse)\n setIsEventReview(true)\n if (parsedResponse?.status === 'failed') {\n setDialogMsg(parsedResponse.message)\n }\n else {\n // setDialogMsg(\"Checkout was successfull.\")\n setInvalidateIframe(invalidateIframe+1)\n setCryptogram('')\n\n setValue('first', '')\n setValue('last', '')\n setValue('promoCode', '')\n setValue('address', '')\n setValue('address2', '')\n setValue('city', '')\n setValue('state', '')\n setValue('zip', '')\n setValue('email', '')\n setValue('additionaldonation', 0)\n\n setItemQuantity({})\n\n }\n setIsOpen(false)\n }\n setisLoadingBackdrop(false)\n }\n\n const onBack = () => {\n setIsOpen(false)\n setIsAddEventCheckout(true)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const deleteDialog = async () => {\n setControlDropdownValues(controlDropdownValues?.filter((i) => i.id !== dialogObj.id))\n setDialogObj({msg: '', id: 0})\n }\n\n const getDiscount = async () => {\n const body = {\"discountcode\": discountCodeWatch, eventid: eventId, transactionid: transactionid}\n const {data} = await axios.post('/evtactivitytransactionsdiscount', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n if (parsedData.status === 'success') {\n console.log(parsedData.discountamount)\n setDiscount(parsedData.discountamount)\n }\n else {\n setDiscount( 0)\n }\n }\n\n return (\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n {/**/}\n\n {/* {checkoutData?.map((section) => (*/}\n {/* <>*/}\n {/* */}\n {/* {section.sectionname}*/}\n {/* /!*{section.sectionname}*!/*/}\n {/* */}\n\n {/* */}\n {/* ))}*/}\n {/**/}\n\n\n \n \n Items\n \n \n {cartData?.cartitems?.map((cd) => (\n \n \n {cd.name}\n \n \n {cd.quantity + ' x $' + cd.price + ' = $' + cd.lineamount}\n \n \n ))}\n \n \n Subtotal: \n \n \n {formatMoney(subtotal | 0)} ({quantity | 0} items)\n \n \n\n {paymentMethodWatch === 'CC' &&\n \n \n {(cartData.allowpaymentoffees) &&\n
\n \n Include CC Fees: {formatMoney(ccfees)}\n
\n }\n
\n
\n }\n\n \n \n handleAdditionalDonationChange(value)}\n />\n \n\n \n Additional Donation: \n \n \n {formatMoney(additionalDonation)}\n \n \n\n {cartData.hasdiscount &&\n \n \n \n \n \n \n \n \n Promo Code: \n \n \n {formatMoney(discount)}\n \n \n }\n\n\n\n \n \n Total: \n \n \n {formatMoney(totalAmount)}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n return {label: state.value, value: state.value}\n })}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n {paymentMethodWatch === 'CC' &&\n Payment securely processed by: \n \"goEmerchant\n \n }\n\n \n
\n \n {onBack()}}\n >\n Back to Items\n \n {onSubmit()}}\n form=\"items-form\">\n Submit Payment\n \n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport styles from './GenericForm.module.css'\nimport axios from \"axios\"\nimport {Grid, InputLabel} from \"@mui/material\";\nimport styled from \"@emotion/styled\"\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\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 Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const GenericForm = ({ isGuestOpen, setIsGuestOpen, endpoint, eventId, genericid }) => {\n const formMethods = useForm()\n const {watch, getValues, setValue, register, reset} = formMethods\n const [loading, setLoading] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState({active: false, msg: ''})\n const [ticketData, setTicketData] = React.useState({\n ticketfieldslist: [],\n tickettitle: '',\n showbuttonreassign: false,\n showbuttonunassign: false,\n ticketlookuplist: [],\n })\n\n useEffect(() => {\n if (isGuestOpen) {\n getEventTicket()\n }\n }, [eventId, genericid, endpoint, isGuestOpen])\n\n const getTicketLookupDataOptions = (lookupfieldid) => {\n const dtRows = ticketData?.ticketlookuplist?.filter((e) => e.lookupactive === 1 && e.lookupfieldid === lookupfieldid).map((types) => {\n return {value: types.lookupid, label: types.lookup}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const unassignEventTicket = async () => {\n setLoading(true)\n const { data } = await axios.put('/' + endpoint, {eventid: eventId, genericid: genericid, unassign: true})\n const parsedData = JSON.parse(data.jsonString)\n\n setDialogObj({\n title: '',\n id: 0,\n msg: ''\n })\n if (parsedData.status === 'success') {\n setDialogMsg({active: false, msg: ''})\n setIsGuestOpen(false)\n // setDialogMsg({active: false, msg: dialogMsg.msg})\n\n }\n else {\n // setDialogMsg({active: false, msg: parsedData.message})\n setDialogMsg({active: true, msg: parsedData.message})\n }\n\n setLoading(false)\n }\n\n const getEventTicket = async () => {\n var body = {eventid: eventId}\n\n if (genericid > 0) {\n body['genericid'] = genericid\n }\n\n setLoading(true)\n const { data } = await axios.post('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n setLoading(false)\n }\n const handleClose = () => {\n setIsGuestOpen(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n var fieldList = []\n const formKeys = Object.keys(formData)\n formKeys.map(key => {\n const fieldId = key.split(\"defaultcontrol\").pop()\n var element = ticketData?.ticketfieldslist?.find(field => Number(field.fieldid) === Number(fieldId))\n const defaultValueControl = 'defaultcontrol' + fieldId\n var fieldDataObject = {fieldid: element.fieldid}\n if (formData && formData[defaultValueControl]) {\n fieldDataObject['fieldvalue' + element.fieldcontrol] = formData[defaultValueControl]\n fieldList.push(fieldDataObject)\n }\n });\n const body = {eventid: eventId, genericid: genericid, fieldslist: fieldList}\n const {data} = await axios.put('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n console.log(parsedData)\n setIsGuestOpen(false)\n }\n\n const handleSelectionClick = async (fieldControlId, fieldData) => {\n console.log(getValues(fieldControlId))\n console.log(fieldData)\n\n\n if (fieldData && fieldData.onchange) {\n var body = {}\n console.log(fieldData?.onchange?.params)\n fieldData?.onchange?.params?.map(key => {\n if (key.startsWith('fieldid')) {\n body['fieldid'] = getValues(fieldControlId)\n }\n else if (key.endsWith('-id')) {\n const newKey = key.replace('-', '')\n body[newKey] = genericid\n }\n else if (key === 'eventid') {\n body['eventid'] = eventId\n }\n })\n if (fieldData.onchange.endpoint) {\n const {data} = await axios.post(fieldData.onchange.endpoint, body)\n if (data.jsonString) {\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n console.log(body)\n }\n }\n }\n }\n\n const handleUnassign = () => {\n setDialogObj({\n title: '',\n id: 0,\n msg: 'Are you sure you want to unassign this guest?'\n })\n }\n\n const handleReassign = () => {\n const newTicketData = {...ticketData}\n console.log(newTicketData?.ticketfieldslist)\n var ticket = newTicketData?.ticketfieldslist.find(ticket => ticket.fieldid === -1001)\n ticket.fieldreadonly = false\n setTicketData(newTicketData)\n }\n\n const unassignDialog = async () => {\n await handleUnassignConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleUnassignConfirm = async (id: number) => {\n // var finaldata = {\n // \"eventid\": Number(eventState.eventId),\n // \"historyid\": id,\n // \"delete\": true\n // }\n // const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // }\n // }\n // })\n }\n\n return (\n <>\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n \n \n \n {dialogMsg.msg}\n \n \n \n \n \n \n \n\n {ticketData.tickettitle}\n \n \n \n\n {(ticketData.showbuttonreassign || ticketData.showbuttonunassign) &&\n \n {ticketData.showbuttonunassign &&\n \n \n {handleUnassign()}}>Unassign Ticket\n \n \n \n }\n\n {ticketData.showbuttonreassign &&\n \n \n {handleReassign()}}>Reassign a ticket to another guest\n \n \n \n }\n \n }\n\n\n \n {/*fieldrowgrouping*/}\n {ticketData?.ticketfieldslist?.sort((a, b) => a.fieldrowgrouping > b.fieldrowgrouping ? 1 : -1).map((ticketFieldData) => {\n if (ticketFieldData.fieldcontrol === 1) {\n return (\n \n \n \n )\n }\n if (ticketFieldData.fieldcontrol === 2) {\n return (\n \n {handleSelectionClick(\"defaultcontrol\" + ticketFieldData.fieldid, ticketFieldData)}}\n />\n \n )\n }\n else if (ticketFieldData.fieldcontrol === 4) {\n return (\n \n \n \n )\n }\n else if (ticketFieldData.fieldcontrol === 5) {\n return (\n \n \n \n )\n }\n\n })}\n \n\n {/*{controlWatch === 3 &&*/}\n {/* */}\n {/*}*/}\n\n\n {/*{controlWatch === 6 &&*/}\n {/* */}\n {/* { handleDateTimeChange(e)}}*/}\n {/* // renderInput={(params) => }*/}\n {/* />*/}\n {/* */}\n {/*}*/}\n \n\n \n \n {handleClose()}}\n form=\"items-form\">\n Close\n \n \n Submit\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, Switch, TextField, Typography\n} from '@material-ui/core'\nimport styles from './EventTransactionsTable.module.css'\nimport axios from \"axios\";\nimport {\n FormControl,\n FormControlLabel, FormLabel, Grid,\n InputLabel,\n} from \"@mui/material\";\nimport {useEventState} from \"../../slices/eventSlice\";\nimport styled from \"@emotion/styled\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport {Add, Edit} from \"@material-ui/icons\";\nimport {DataGridPremium, GridCellParams} from \"@mui/x-data-grid-premium\";\nimport {useQueryClient} from \"react-query\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\n\ninterface FormData {\n id: number\n paymentmethod: string\n additionaldonation: number\n discount: number\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 Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const EventCheckoutReview = ({ isOpen, setIsOpen, eventId, transactionid, setTransactionId, setItemQuantity }) => {\n const queryClient = useQueryClient()\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Review Transaction\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [isGuestOpen, setIsGuestOpen] = React.useState(false);\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [ticketList, setTicketList] = React.useState([])\n const [ticketId, setTicketId] = React.useState(0)\n\n const [setupData, setSetupData] = React.useState({})\n const [transactionData, setTransactionData] = React.useState({\n // transactionid: 0,\n transactiontotalamount: 0,\n transactionpaymentmethod: '',\n transactionadditionaldonation: 0,\n transactionaddress: '',\n transactionaddress2: '',\n transactioncity: '',\n transactioncountry: '',\n transactiondate: '',\n transactiondiscountamount: 0,\n transactionemail: '',\n transactionfirst: '',\n transactionlast: '',\n transactionphone: '',\n transactionprocessingfees: 0,\n transactionsource: '',\n transactionstate: '',\n transactionsubtotal: 0,\n transactionzip: '',\n itemdetail: [],\n ticketlist: [],\n })\n\n useEffect(() => {\n getTransactionData(true)\n }, [isOpen])\n\n useEffect(() => {\n getTransactionData(false)\n }, [isGuestOpen])\n\n const getTransactionData = async (updateTransData) => {\n if (eventId > 0 && transactionid > 0) {\n setLoading(true)\n console.log(transactionid)\n console.log(eventId)\n const { data } = await axios.post('/evtactivitytransactions', {eventid: eventId, transactionid: transactionid})\n const parsedData = JSON.parse(data.jsonString)\n if (updateTransData) {\n setTransactionData(parsedData)\n }\n\n console.log(parsedData?.ticketlist)\n const newTicketList = parsedData?.ticketlist?.map(ticket => {\n return {guestname: ticket.guestname, groupname: ticket.groupname, ticket: ticket.ticket, ticketid: ticket.ticketid, id: ticket.ticketid}\n })\n setTicketList(newTicketList)\n setLoading(false)\n }\n }\n\n const onSubmit = async () => {\n queryClient.invalidateQueries(['EventTransaction', Number(eventId)])\n\n setItemQuantity({})\n setTransactionId(0)\n setIsOpen(false)\n }\n\n const closeDialog = () => {\n setDialogObj({msg: '', id: 0})\n setDialogMsg(\"\")\n }\n\n const handleEdit = (params: GridCellParams) => {\n setTicketId(params.row.ticketid)\n // getEventTicket(params.row.ticketid)\n setIsGuestOpen(true)\n }\n\n const columns = [\n {\n field: 'Edit',\n disableExport: true,\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'guestname',\n type: 'string',\n headerName: 'Guest Name',\n minWidth: 300\n },\n {\n field: 'groupname',\n type: 'string',\n headerName: 'Group Name',\n minWidth: 300\n },\n {\n field: 'ticket',\n type: 'string',\n headerName: 'Ticket',\n minWidth: 300\n },\n ]\n\n return (\n <>\n \n {title}\n {/**/}\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n \n Items\n \n \n {transactionData?.itemdetail?.map((cd) => (\n \n \n {cd.transactiondetailitemname}\n \n \n {cd.transactiondetailqty + ' x ' + formatMoney(cd.transactiondetailprice) + ' = ' + formatMoney(cd.transactiondetaillinetotal)}\n \n \n ))}\n\n \n \n Subtotal: \n \n \n {formatMoney(transactionData.transactionsubtotal | 0)} ({transactionData?.itemdetail?.length | 0} items)\n \n \n \n \n Customer Information:\n \n \n CC Fees: \n \n \n {formatMoney(transactionData.transactionprocessingfees)}\n \n \n \n \n {transactionData.transactionfirst + ' ' + transactionData.transactionlast}\n \n \n Discount: \n \n \n {formatMoney(transactionData.transactiondiscountamount)}\n \n \n \n \n {transactionData.transactionaddress + ' ' + transactionData.transactioncity + ' ' + transactionData.transactionstate + ' ' + transactionData.transactionzip}\n \n \n Additional Donation: \n \n \n {formatMoney(transactionData.transactionadditionaldonation)}\n \n \n \n \n {transactionData.transactionemail}\n \n \n Total: \n \n \n {formatMoney(transactionData.transactiontotalamount)}\n \n \n \n \n Payment Method: \n \n \n {transactionData.transactionpaymentmethod}\n \n \n\n \n \n Guest Registration\n \n \n \n {ticketList && ticketList.length > 0 &&\n \n }\n \n \n \n \n {onSubmit()}}\n form=\"items-form\">\n Close\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport {Add, Add as AddIcon, Delete, Edit, AddShoppingCartOutlined, ShoppingCartOutlined} from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventTransaction, useFetchTransaction, useUpdateTransaction} from '../../queries/events/useEventTransactionFetch'\nimport { EventTransactionsForm } from './EventTransactionsForm'\nimport styles from './EventTransactionsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {EventTransactionsDetailForm} from \"./TransactionDetailForm\";\nimport {EventAddCheckoutForm} from \"./EventAddCheckoutForm\";\nimport {EventCheckoutForm} from \"./EventCheckoutForm\";\nimport {EventCheckoutReview} from \"./EventCheckoutReview\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventTransactionsTable = () => {\n\n const { eventid } = useParams()\n console.log(eventid)\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [transactionId, setTransactionId] = useState(0)\n const { data, isLoading } = useFetchTransaction( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n const [isAddEventCheckout, setIsAddEventCheckout] = useState(false)\n const [isEventCheckout, setIsEventCheckout] = useState(false)\n const [isEventReview, setIsEventReview] = useState(false)\n const [itemQuantity, setItemQuantity] = React.useState({})\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.map((item) => {\n return { id: item.transactionid, ...item}\n })\n }\n\n useEffect(() => {\n console.log(transactionId)\n }, [transactionId])\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsAddEventCheckout(true)\n }\n\n const handleCheckoutReview = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const purchaser = rows.find((item) => item.id === Number(params.id))\n setGridParams(purchaser)\n setTransactionId(purchaser.transactionid)\n setIsEventReview(true)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n <>\n { handleCheckoutReview(params) }}>\n \n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'transactiondate',\n headerName: 'Date Added',\n width: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM/DD/YYYY hh:mm A')\n },\n },\n {\n field: 'transactionname',\n type: 'string',\n headerName: 'Name',\n minWidth: 200\n },\n {\n field: 'transactionemail',\n type: 'string',\n headerName: 'Email',\n minWidth: 250\n },\n {\n field: 'transactionsource',\n type: 'string',\n headerName: 'Source',\n minWidth: 120\n },\n {\n field: 'transactiontotalamount',\n type: 'string',\n headerName: 'Amount',\n width: 120,\n align: \"right\",\n valueFormatter: (params: GridValueFormatterParams) => {\n return '$' + params.value.toFixed(2).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1,')\n },\n },\n {\n field: 'transactionitemtype',\n type: 'string',\n headerName: 'Transaction Type',\n minWidth: 480\n },\n\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n )\n }\n\n const handleNext = () => {\n setIsAddEventCheckout(false)\n setIsEventCheckout(true)\n }\n\n return (\n
\n

Event Transactions

\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n \n \n\n \n
\n )\n}\n\nexport default EventTransactionsTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventTransactionFetcher = async (body) => {\n const { data } = await axios.post('/evtactivitytickets', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData\n}\n\nexport const useFetchTickets = (eventIDvalue, ticketItemId) => {\n return useQuery(\n ['EventActivityTickets', eventIDvalue, ticketItemId],\n () => globalEventTransactionFetcher({ \"eventid\": eventIDvalue, ticketitemid: ticketItemId }),\n )\n}\n\nexport const useCreateEventTickets = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateTickets = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventTickets, useFetchTickets, useUpdateTickets} from '../../queries/events/useEventTicketsFetch'\nimport { EventTicketsForm } from './EventTicketsForm'\nimport styles from './EventTicketsTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventTicketsTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const eventState = useEventState()\n // const eventUserDefineCreate = useCreateEvtUserDefined()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [rowOrdering, setRowOrdering] = useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [ticketId, setTicketId] = React.useState(0)\n const [endpoint, setEndpoint] = useState(\"evtticket\")\n\n const { data, isLoading } = useFetchTickets( Number(eventid), ticketItem )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.tickets.map((item) => {\n return { id: item.ticketid, ...item}\n })\n }\n\n const handleAdd = () => {\n console.log(ticketItem)\n setEndpoint('evtticketcomplimentary')\n setTicketId(Number(ticketItem))\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setIsFormShowing(true)\n }\n\n useEffect(() => {\n if (data && data.selectedticketitemid) {\n setTicketItem(data.selectedticketitemid)\n }\n }, [data])\n\n\n useEffect(() => {\n queryClient.invalidateQueries(['EventActivityTickets', Number(eventid), ticketItem])\n }, [ticketItem, isFormShowing])\n\n const handleEdit = (params: GridCellParams) => {\n setEndpoint('evtticket')\n setReloadForm(reloadForm+1)\n const purchaser = rows.filter((item) => item.id === Number(params.id))[0]\n\n setTicketId(params.row.ticketid)\n setGridParams(purchaser)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.fieldname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"udid\": id,\n \"delete\": true\n }\n // const { data: response } = await eventUserDefineCreate.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0\n // })\n // }\n // }\n // })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n // renderHeader: () => {\n // return (\n // handleAdd()}\n // size=\"small\">\n // \n // \n // )\n // },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'transactionname',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 320\n },\n {\n field: 'groupname',\n type: 'string',\n headerName: 'Group Name',\n minWidth: 320\n },\n {\n field: 'ticketname',\n type: 'string',\n headerName: 'Guest Name',\n minWidth: 320\n },\n // {\n // field: 'action',\n // headerName: 'Delete',\n // headerAlign: 'center',\n // align: 'center',\n // disableExport: true,\n // width: 70,\n // sortable: false,\n // renderCell: (params) => (\n // //
\n //
\n // { handleDelete(params) }}>\n // \n // \n //
\n // //
\n // // \n // )\n // }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const getTicketItemOptions = () => {\n return data?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n console.log(event.target.value)\n setTicketItem(event.target.value as string);\n }\n\n return (\n <>\n {/**/}\n {/* */}\n {/* */}\n {/* {getTemplateOptions()}*/}\n {/* */}\n {/* */}\n {/* */}\n {/* */}\n {/* {getStatusOptions()}*/}\n {/* */}\n {/* */}\n {/* */}\n {/* handleExport({ getRowsToExport: getUnfilteredRows })}*/}\n {/* >*/}\n {/* EXPORT*/}\n {/* */}\n {/* /!**!/*/}\n {/* */}\n {/**/}\n\n\n \n <>\n \n \n \n {handleAdd()}}\n color=\"primary\">\n Add Complimentary Ticket\n \n \n \n \n \n {getTicketItemOptions()}\n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n {/**/}\n \n \n \n \n )\n }\n\n return (\n
\n

Ticket Maintenance

\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n {/**/}\n \n
\n )\n}\n\nexport default EventTicketsTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventDiscountCodesFetcher = async (body) => {\n const { data } = await axios.post('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n return parsedData\n}\n\nexport const useFetchDiscountCodes = (eventIDvalue) => {\n return useQuery(\n ['evtdiscountcodes', eventIDvalue],\n () => globalEventDiscountCodesFetcher({ \"eventid\": eventIDvalue }),\n )\n}\n\nexport const useCreateEventDiscountCode = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['UserDefined'])\n }\n })\n}\n\nexport const useUpdateDiscountCodes = (eventIDvalue) => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtuserdefined`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['EventActivityDiscountCodes', eventIDvalue])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Checkbox,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, IconButton, TextField, Typography\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport styles from './EventDiscountCodesTable.module.css'\nimport axios from \"axios\";\nimport {\n Grid,\n} from \"@mui/material\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport DateTimeInput from \"../../components/common/inputs/DateTimeInput\";\nimport {useQueryClient} from \"react-query\";\n\n\ninterface FormData {\n id: number\n discountactive: boolean\n discountamount: string\n discountcandelete: boolean\n discountcode: string\n discountdescription: string\n discountdateend: string\n discountid: number\n discountitemids: string\n discountitems: string\n discountmethod: string\n discountmethodid: number\n discountminimumpurchaseneeded: string\n discountminimumquantityneeded: number\n discountdatestart: string\n discounttype: string\n discounttypeid: number\n}\n\nexport const EventDiscountCodesForm = ({ isOpen, setIsOpen, reloadForm, eventid, discountid }) => {\n const formMethods = useForm()\n const queryClient = useQueryClient()\n const title = discountid > 0 ? \"Edit Promo Code\" : \"Add Promo Code\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [displayItemDiscount, setDisplayItemDiscount] = React.useState(true)\n const [displayPaymentMethodAmount, setDisplayPaymentMethodAmount] = React.useState(true)\n const discounttypeidWatch = watch('discounttypeid')\n const discountmethodidWatch = watch('discountmethodid')\n const discountamountWatch = watch('discountamount')\n\n const [dropdownData, setDropdownData] = React.useState({\n discounttypelist: [],\n itemlist: [],\n discountmethodlist: [],\n })\n const [discountData, setDiscountData] = React.useState({\n discountactive: true,\n discountamount: '',\n discountcandelete: true,\n discountcode: '',\n discountdescription: '',\n discountdateend: '',\n discountid: 0,\n discountitemids: \"\",\n discountitems: \"\",\n discountmethod: \"\",\n discountmethodid: 0,\n discountminimumpurchaseneeded: \"\",\n discountminimumquantityneeded: 1,\n discountdatestart: \"\",\n discounttype: '',\n discounttypeid: 0\n })\n\n useEffect(() => {\n console.log(discountid)\n }, [discountid])\n\n\n // useEffect(() => {\n // var newData = {...discountData}\n // console.log('amount watch')\n // const discountObject = dropdownData?.discountmethodlist?.find(item => item.id === discountmethodidWatch)\n // console.log(discountObject)\n // if (discountObject?.code === 'M') {\n // newData['discountamount'] = formatMoney(Number(discountamountWatch.replace('$', '')))\n // }\n // else {\n // newData['discountamount'] = discountamountWatch + '%'\n // }\n // reset(newData)\n // }, [discountamountWatch])\n\n\n useEffect(() => {\n const discountObject = dropdownData?.discounttypelist?.find(item => item.id === discounttypeidWatch)\n if (discountObject?.code === 'I') {\n setDisplayItemDiscount(true)\n }\n else {\n setDisplayItemDiscount(false)\n }\n }, [discounttypeidWatch])\n\n useEffect(() => {\n const discountObject = dropdownData?.discountmethodlist?.find(item => item.id === discountmethodidWatch)\n // console.log(discountData)\n var newData = {}\n if (discountObject?.code === 'M') {\n setDisplayPaymentMethodAmount(true)\n }\n else {\n setDisplayPaymentMethodAmount(false)\n }\n // newData['discountamount'] = \"0\"\n // newData['discountmethodid'] = discountmethodidWatch\n // reset(newData)\n }, [discountmethodidWatch])\n\n useEffect(() => {\n getDropdownData()\n if (discountid > 0) {\n getDiscountData()\n }\n else {\n reset ({\n discountactive: true,\n discountamount: '',\n discountcandelete: true,\n discountcode: '',\n discountdescription: '',\n discountdateend: '',\n discountid: 0,\n discountitemids: \"\",\n discountitems: \"\",\n discountmethod: \"\",\n discountmethodid: 0,\n discountminimumpurchaseneeded: \"\",\n discountminimumquantityneeded: 1,\n discountdatestart: \"\",\n discounttype: '',\n discounttypeid: 0\n })\n }\n }, [discountid, isOpen])\n\n const getDropdownData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtdiscountcodesdropdowns', {eventid: eventid})\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setDropdownData(parsedData)\n setLoading(false)\n }\n\n const getDiscountData = async () => {\n setLoading(true)\n const { data } = await axios.post('/evtdiscountcodes', {eventid: eventid, discountid: discountid})\n const parsedData = JSON.parse(data.jsonString)\n var newData = {...parsedData}\n console.log(newData)\n setDiscountData(newData)\n reset(newData)\n\n const discountObject = dropdownData?.discounttypelist?.find(item => item.id === newData.discounttypeid)\n if (discountObject?.code === 'I') {\n setDisplayItemDiscount(true)\n }\n else {\n setDisplayItemDiscount(false)\n }\n\n setLoading(false)\n }\n\n const onSubmit = async (formdata: FormData) => {\n console.log(formdata)\n const discountObject = dropdownData?.discountmethodlist?.find(item => item.id === discountmethodidWatch)\n var amount = formdata['discountamount']\n // if (discountObject?.code === 'M') {\n // amount = amount.replace('$', '')\n // }\n\n\n var body = {\n eventid: eventid,\n delete: false,\n ...formdata,\n discountamount: amount,\n discountminimumpurchaseneeded: formdata['discountminimumpurchaseneeded'],\n discountminimumquantityneeded: Number(formdata['discountminimumquantityneeded']),\n discountitemids: formdata['discountitemids']?.toString(),\n discounttype: formdata['discounttype']\n }\n console.log(body)\n\n const { data } = await axios.put('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n\n if (parsedData?.status === 'failure') {\n setDialogMsg(parsedData.message)\n }\n else {\n queryClient.invalidateQueries(['evtdiscountcodes'])\n setIsOpen(false)\n }\n }\n\n const closeDialog = () => {\n setDialogMsg(\"\")\n }\n\n const getItemListOptions = () => {\n const dtRows = dropdownData.itemlist.map((item) => {\n return {value: item.itemid, label: item.itemname}\n })\n return dtRows\n }\n\n const getDiscountMethodOptions = () => {\n const dtRows = dropdownData?.discountmethodlist?.map((item) => {\n return {value: item.id, label: item.name}\n })\n return dtRows\n }\n\n const getDiscountTypeListOptions = () => {\n const dtRows = dropdownData?.discounttypelist?.map((item) => {\n return {value: item.id, label: item.name}\n })\n return dtRows\n }\n\n return (\n <>\n \n {title}\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n setIsOpen(false)}>\n Cancel\n \n \n Save\n \n \n \n \n\n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n useGridApiRef, GridRowModel,\n GridRowOrderChangeParams,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\nimport {useCreateEventDiscountCode, useFetchDiscountCodes, useUpdateDiscountCodes} from '../../queries/events/useEventDiscountCodesFetch'\nimport { EventDiscountCodesForm } from './EventDiscountCodesForm'\nimport styles from './EventDiscountCodesTable.module.css'\nimport {EventState, setEvent, useEventState} from \"../../slices/eventSlice\";\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport dayjs from \"dayjs\";\nimport {formatMoney} from \"../../util/formatHelpers\";\nimport axios from \"axios\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventDiscountCodesTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [discountId, setDiscountId] = useState(0)\n const { data, isLoading } = useFetchDiscountCodes( Number(eventid) )\n const [isFormShowing, setIsFormShowing] = useState(false)\n var rows = []\n\n if (data) {\n console.log(data)\n rows = data.discounts.map((item) => {\n return { id: item.discountid, ...item}\n })\n }\n\n const handleAdd = () => {\n setReloadForm(reloadForm+1)\n setGridParams(null)\n setDiscountId(-1)\n setIsFormShowing(true)\n }\n\n useEffect(() => {\n if (data && data.selectedticketitemid) {\n setTicketItem(data.selectedticketitemid)\n }\n }, [data])\n\n useEffect(() => {\n queryClient.invalidateQueries(['EventActivityDiscountCodes', Number(eventid), ticketItem])\n }, [ticketItem])\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n setDiscountId(Number(params.row.discountid))\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.discountcode + \"\\\"?\",\n id: Number(params.row.discountid)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var body = {\n \"eventid\": Number(eventid),\n \"discountid\": id,\n \"delete\": true\n }\n\n const { data } = await axios.put('/evtdiscountcodes', body)\n const parsedData = JSON.parse(data.jsonString)\n queryClient.invalidateQueries(['evtdiscountcodes'])\n\n if (parsedData.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(parsedData.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n renderHeader: () => {\n return (\n handleAdd()}\n size=\"small\">\n \n \n )\n },\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'discountcode',\n type: 'string',\n headerName: 'Code',\n minWidth: 220\n },\n {\n field: 'discountdescription',\n type: 'string',\n headerName: 'Description',\n minWidth: 280\n },\n {\n field: 'discounttype',\n type: 'string',\n headerName: 'Type',\n minWidth: 180\n },\n {\n field: 'discountamount',\n type: 'string',\n align: 'right',\n headerName: 'Amount / Percentage',\n minWidth: 180,\n renderCell: (params) => {\n // console.log(params)\n if (params.row.discountmethod === 'Dollar Amount') {\n return ( {formatMoney(params.row.discountamount)})\n }\n else {\n return ( {params.row.discountamount + '%'})\n }\n }\n // valueFormatter: (params: GridValueFormatterParams) => {\n // return formatMoney(params.value)\n // }\n },\n {\n field: 'discountdatestart',\n type: 'string',\n headerName: 'Start Date',\n minWidth: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'discountdateend',\n type: 'string',\n headerName: 'End Date',\n minWidth: 180,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'discountactive',\n type: 'string',\n headerName: 'Active',\n minWidth: 120,\n valueFormatter: (params: GridValueFormatterParams) => {\n return (params.value ? \"Active\" : \"Inactive\")\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => (\n //
\n <>\n {params.row.discountcandelete &&\n
\n { handleDelete(params) }}>\n \n \n
\n }\n \n\n\n //
\n // \n )\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n return (\n <>\n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n \n \n )\n }\n\n return (\n
\n

Promo Codes

\n\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n \n \n
\n )\n}\n\nexport default EventDiscountCodesTable\n","import axios from 'axios'\nimport { useQuery, useQueryClient, useMutation } from 'react-query'\n\nexport const globalEventGuestFetcher = async (body) => {\n const { data } = await axios.post('/evtactivityregistrations', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n return parsedData\n}\n\nexport const useFetchGuestById = (eventID, guestid) => {\n var body = {'eventid': eventID, 'transactionid': guestid}\n return useQuery(\n ['EventGuest', eventID, guestid],\n () => globalEventGuestFetcher(body),\n {}\n )\n}\n\nexport const useFetchGuests = (eventID) => {\n var body = {'eventid': eventID}\n return useQuery(\n ['EventGuest', eventID],\n () => globalEventGuestFetcher(body),\n {}\n )\n}\n\nexport const useCreateEventGuest = () => {\n const queryClient = useQueryClient()\n\n return useMutation((body: any) =>\n axios.put(`evtactivityregistrations`, body), {\n onSuccess: () => {\n queryClient.invalidateQueries(['EventGuest'])\n }\n })\n}","import React, {useEffect, useState} from 'react'\nimport {useForm} from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle\n} from '@material-ui/core'\nimport HookForm from '../../components/common/HookForm'\nimport LoadingBackdrop from '../../components/common/LoadingBackdrop'\nimport SelectInput from '../../components/common/inputs/SelectInput/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport CurrencyTextField from '@unicef/material-ui-currency-textfield';\nimport styles from '../GenericForm/GenericForm.module.css'\nimport axios from \"axios\"\nimport {Grid, InputLabel} from \"@mui/material\";\nimport styled from \"@emotion/styled\"\n\ninterface FormData {\n id: number\n control: number\n fieldname: string\n defaultcontrol1: boolean\n defaultcontrol2: number\n defaultcontrol3: number\n defaultcontrol4: string\n defaultcontrol5: string\n defaultcontrol6: string\n displayforallguest: boolean\n items: []\n active: boolean\n delete: boolean\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 Span = styled.span`\n padding-left: 0.5em;\n`\n\nexport const GuestForm = ({ isGuestOpen, setIsGuestOpen, endpoint, eventId, genericid }) => {\n const formMethods = useForm()\n const {watch, getValues, setValue, register, reset} = formMethods\n const [loading, setLoading] = React.useState(false)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0, title: \"\" })\n const [dialogMsg, setDialogMsg] = React.useState({active: false, msg: ''})\n const [ticketData, setTicketData] = React.useState({\n ticketfieldslist: [],\n tickettitle: '',\n showbuttonreassign: false,\n showbuttonunassign: false,\n ticketlookuplist: [],\n })\n\n useEffect(() => {\n if (isGuestOpen) {\n getEventTicket()\n }\n }, [eventId, genericid, endpoint, isGuestOpen])\n\n const getTicketLookupDataOptions = (lookupfieldid) => {\n const dtRows = ticketData?.ticketlookuplist?.filter((e) => e.lookupactive === 1 && e.lookupfieldid === lookupfieldid).map((types) => {\n return {value: types.lookupid, label: types.lookup}\n })\n if (dtRows && dtRows.length > 0) {\n return [...dtRows]\n }\n else {\n return []\n }\n }\n\n const unassignEventTicket = async () => {\n setLoading(true)\n const { data } = await axios.put('/' + endpoint, {eventid: eventId, genericid: genericid, unassign: true})\n const parsedData = JSON.parse(data.jsonString)\n\n setDialogObj({\n title: '',\n id: 0,\n msg: ''\n })\n if (parsedData.status === 'success') {\n setDialogMsg({active: false, msg: ''})\n setIsGuestOpen(false)\n // setDialogMsg({active: false, msg: dialogMsg.msg})\n\n }\n else {\n // setDialogMsg({active: false, msg: parsedData.message})\n setDialogMsg({active: true, msg: parsedData.message})\n }\n\n setLoading(false)\n }\n\n const getEventTicket = async () => {\n var body = {eventid: eventId}\n\n console.log(genericid)\n\n if (genericid > 0) {\n body['registrationid'] = genericid\n }\n\n setLoading(true)\n const { data } = await axios.post('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n setLoading(false)\n }\n const handleClose = () => {\n setIsGuestOpen(false)\n }\n\n const onSubmit = async (formData: FormData) => {\n var fieldList = []\n const formKeys = Object.keys(formData)\n formKeys.map(key => {\n const fieldId = key.split(\"defaultcontrol\").pop()\n var element = ticketData?.ticketfieldslist?.find(field => Number(field.fieldid) === Number(fieldId))\n const defaultValueControl = 'defaultcontrol' + fieldId\n var fieldDataObject = {fieldid: element.fieldid}\n if (formData && formData[defaultValueControl]) {\n fieldDataObject['fieldvalue' + element.fieldcontrol] = formData[defaultValueControl]\n fieldList.push(fieldDataObject)\n }\n });\n const body = {eventid: eventId, genericid: genericid, fieldslist: fieldList}\n const {data} = await axios.put('/' + endpoint, body)\n const parsedData = JSON.parse(data.jsonString)\n\n console.log(parsedData)\n setIsGuestOpen(false)\n }\n\n const handleSelectionClick = async (fieldControlId, fieldData) => {\n console.log(getValues(fieldControlId))\n console.log(fieldData)\n\n\n if (fieldData && fieldData.onchange) {\n var body = {}\n console.log(fieldData?.onchange?.params)\n fieldData?.onchange?.params?.map(key => {\n if (key.startsWith('fieldid')) {\n body['fieldid'] = getValues(fieldControlId)\n }\n else if (key.endsWith('-id')) {\n const newKey = key.replace('-', '')\n body[newKey] = genericid\n }\n else if (key === 'eventid') {\n body['eventid'] = eventId\n }\n })\n if (fieldData.onchange.endpoint) {\n const {data} = await axios.post(fieldData.onchange.endpoint, body)\n if (data.jsonString) {\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setTicketData(parsedData)\n\n var newFormValues = {}\n\n parsedData?.ticketfieldslist?.map(item => {\n newFormValues[\"defaultcontrol\" + item.fieldid] = item['fieldvalue' + item.fieldcontrol]\n })\n reset(newFormValues)\n console.log(body)\n }\n }\n }\n }\n\n const handleUnassign = () => {\n setDialogObj({\n title: '',\n id: 0,\n msg: 'Are you sure you want to unassign this guest?'\n })\n }\n\n const handleReassign = () => {\n const newTicketData = {...ticketData}\n console.log(newTicketData?.ticketfieldslist)\n var ticket = newTicketData?.ticketfieldslist.find(ticket => ticket.fieldid === -1001)\n ticket.fieldreadonly = false\n setTicketData(newTicketData)\n }\n\n const unassignDialog = async () => {\n await handleUnassignConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogObj({\n msg: '',\n id: 0,\n title: \"\"\n })\n }\n\n const handleUnassignConfirm = async (id: number) => {\n // var finaldata = {\n // \"eventid\": Number(eventState.eventId),\n // \"historyid\": id,\n // \"delete\": true\n // }\n // const { data: response } = await updateBidMaintenanceMutation.mutateAsync({\n // ...finaldata\n // },{\n // onSuccess: (data) => {\n // const json = JSON.parse(data.data.jsonString)\n // if (json.status === \"failure\") {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // setDialogMsg(json.message)\n // }\n // else {\n // setDialogObj({\n // msg: '',\n // id: 0,\n // title: \"\"\n // })\n // }\n // }\n // })\n }\n\n return (\n <>\n \n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.title}\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n \n <>\n \n \n \n {dialogMsg.msg}\n \n \n \n \n \n \n \n\n {ticketData.tickettitle}\n \n \n \n\n {(ticketData.showbuttonreassign || ticketData.showbuttonunassign) &&\n \n {ticketData.showbuttonunassign &&\n \n \n {handleUnassign()}}>Unassign Ticket\n \n \n \n }\n\n {ticketData.showbuttonreassign &&\n \n \n {handleReassign()}}>Reassign a ticket to another guest\n \n \n \n }\n \n }\n\n\n \n {/*fieldrowgrouping*/}\n {ticketData?.ticketfieldslist?.sort((a, b) => a.fieldrowgrouping > b.fieldrowgrouping ? 1 : -1).map((ticketFieldData) => {\n if (ticketFieldData.fieldcontrol === 1) {\n return (\n \n \n \n )\n }\n if (ticketFieldData.fieldcontrol === 2) {\n return (\n \n {handleSelectionClick(\"defaultcontrol\" + ticketFieldData.fieldid, ticketFieldData)}}\n />\n \n )\n }\n else if (ticketFieldData.fieldcontrol === 4) {\n return (\n \n \n \n )\n }\n else if (ticketFieldData.fieldcontrol === 5) {\n return (\n \n \n \n )\n }\n\n })}\n \n\n {/*{controlWatch === 3 &&*/}\n {/* */}\n {/*}*/}\n\n\n {/*{controlWatch === 6 &&*/}\n {/* */}\n {/* { handleDateTimeChange(e)}}*/}\n {/* // renderInput={(params) => }*/}\n {/* />*/}\n {/* */}\n {/*}*/}\n \n\n \n \n {handleClose()}}\n form=\"items-form\">\n Close\n \n \n Submit\n \n \n \n \n )\n}\n","import React, {useEffect, useState} from 'react'\n\nimport {Dialog, DialogActions, DialogContent, DialogContentText, IconButton, Tooltip} from '@material-ui/core'\nimport { Add, Add as AddIcon, Delete, Edit } from '@material-ui/icons'\nimport {\n DataGridPremium,\n GridCallbackDetails,\n GridCellParams,\n GridColDef, GridCsvExportOptions, GridCsvGetRowsToExportParams,\n GridRowParams, gridSortedRowIdsSelector,\n GridSortModel, GridToolbarContainer, GridToolbarExport, GridValueFormatterParams,\n MuiEvent, useGridApiContext,\n} from \"@mui/x-data-grid-premium\";\nimport FileDownloadOutlinedIcon from \"@mui/icons-material/FileDownloadOutlined\";\n\nimport styles from './EventGuestMaintenance.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {Grid, InputLabel, MenuItem, Select, SelectChangeEvent} from \"@mui/material\";\nimport {ButtonProps} from \"@mui/material/Button\";\nimport Button from '@mui/material/Button';\nimport {useQueryClient} from \"react-query\";\nimport {useFetchGuests} from \"../../queries/events/useEventGuestFetch\";\nimport dayjs from \"dayjs\";\nimport axios from \"axios\";\nimport {GenericForm} from \"../GenericForm/GenericForm\";\nimport {GuestForm} from \"./GuestForm\";\nimport {useFetchTickets} from \"../../queries/events/useEventTicketsFetch\";\n\nconst eventItemsDefaults = {\n id: 0,\n control: 0,\n fieldname: '',\n fieldtype: '',\n displayvalue: '',\n active: true,\n uditem: '',\n items: '',\n itemids: [],\n displayforallguest: false,\n}\n\ninterface Params {\n eventid: string\n}\n\nconst EventGuestMaintenanceTable = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n const queryClient = useQueryClient()\n const [gridParams, setGridParams] = useState(eventItemsDefaults)\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [reloadForm, setReloadForm] = useState(0)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [rows, setRows] = useState([])\n const [isFormShowing, setIsFormShowing] = useState(false)\n const { data: guestsData, isLoading } = useFetchGuests( Number(eventid) )\n\n const { data: ticketsData, isLoading: isLoadingTickets } = useFetchTickets( Number(eventid), ticketItem )\n\n\n useEffect(() => {\n console.log(guestsData)\n if (guestsData) {\n setRows(guestsData.registrations.map((item) => {\n return { id: item.registrationid, ...item}\n }))\n if (guestsData.selectedticketitemid) {\n setTicketItem(guestsData.selectedticketitemid)\n }\n }\n }, [guestsData])\n\n useEffect(() => {\n // queryClient.invalidateQueries(['EventGuest', Number(eventid), ticketItem])\n getGuestTicketData()\n }, [ticketItem])\n\n const getGuestTicketData = async () => {\n axios.post('/evtactivityregistrations', {eventid: Number(eventid), ticketid: ticketItem}, {responseType: \"json\"}).then(response => {\n const parsedData = JSON.parse(response.data.jsonString)\n console.log(parsedData)\n // setTicketData(parsedData)\n })\n }\n\n const handleEdit = (params: GridCellParams) => {\n setReloadForm(reloadForm+1)\n const purchaser = rows?.filter((item) => item.id === Number(params.id))[0]\n\n console.log(purchaser)\n\n setGridParams(purchaser)\n setIsFormShowing(true)\n }\n\n const handleDelete = (params: GridCellParams) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + params.row.registrationname + \"\\\"?\",\n id: Number(params.id)\n })\n }\n\n const handleDeleteConfirm = async (id: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"registrationid\": id,\n \"delete\": true\n }\n\n const { data } = await axios.delete('/evtactivityregistrations', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n queryClient.invalidateQueries(['EventGuest', eventid])\n }\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const closeDialog = () => {\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n const columns: GridColDef[] = [\n {\n field: 'Edit',\n disableExport: true,\n width: 80,\n sortable: false,\n renderCell: (params) => (\n { handleEdit(params) }}>\n \n \n )\n },\n {\n field: 'id',\n hide: true,\n sortable: false,\n },\n {\n field: 'purchasernames',\n type: 'string',\n headerName: 'Purchaser',\n minWidth: 280\n },\n {\n field: 'registrationname',\n type: 'string',\n headerName: 'Name',\n minWidth: 320\n },\n {\n field: 'registrationemail',\n type: 'string',\n headerName: 'Email',\n minWidth: 320\n },\n {\n field: 'ticketnames',\n type: 'string',\n headerName: 'Ticket',\n minWidth: 180\n },\n {\n field: 'registrationphone',\n type: 'string',\n headerName: 'Phone',\n minWidth: 180\n },\n {\n field: 'registrationsource',\n type: 'string',\n headerName: 'Source',\n minWidth: 120\n },\n {\n field: 'registrationadded',\n type: 'string',\n headerName: 'Added',\n minWidth: 220,\n valueFormatter: (params: GridValueFormatterParams) => {\n return dayjs(params.value as string).format('MM-DD-YYYY hh:mm A')\n },\n },\n {\n field: 'action',\n headerName: 'Delete',\n headerAlign: 'center',\n align: 'center',\n disableExport: true,\n width: 70,\n sortable: false,\n renderCell: (params) => {\n return (\n
\n {params.row.candelete &&\n {\n handleDelete(params)\n }}\n >\n \n \n }\n
\n )\n }\n }\n ]\n const getUnfilteredRows = ({ apiRef }: GridCsvGetRowsToExportParams) =>\n gridSortedRowIdsSelector(apiRef);\n\n function CustomGridToolbar() {\n const apiRef = useGridApiContext();\n\n const handleExport = (options: GridCsvExportOptions) => {\n options.allColumns = true;\n apiRef.current.exportDataAsCsv(options);\n }\n\n const buttonBaseProps: ButtonProps = {\n color: 'primary',\n size: 'small',\n startIcon: ,\n };\n\n const getTicketItemOptions = () => {\n console.log(ticketsData)\n return ticketsData?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n setTicketItem(event.target.value as string);\n }\n\n return (\n \n <>\n \n \n \n {getTicketItemOptions()}\n \n \n \n \n handleExport({getRowsToExport: getUnfilteredRows})}\n >\n EXPORT\n \n \n \n \n )\n }\n\n return (\n
\n

Guest Maintenance

\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n \n \n
\n )\n}\n\nexport default EventGuestMaintenanceTable\n","import React, { useEffect, useMemo, useState } from 'react'\nimport { useForm, useFormContext } from 'react-hook-form'\n\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent, DialogContentText,\n DialogTitle, FormGroup, Grid, InputAdornment, TextField, Typography\n} from '@material-ui/core'\n\nimport HookForm from '../../components/common/HookForm'\nimport SelectInput from '../../components/common/inputs/SelectInput'\nimport TextInput from '../../components/common/inputs/TextInput'\nimport { useFetchLocationTags } from '../../queries/events/useFetchLocationTags'\nimport styles from './AuctionItemsTable.module.css'\nimport { useEventState } from \"../../slices/eventSlice\";\nimport { FormControlLabel, ToggleButton, ToggleButtonGroup } from \"@mui/material\";\nimport QRCode from \"react-qr-code\";\nimport MaskedInput from \"../../components/common/inputs/MaskedInput\";\nimport { useAutoEvent } from '../../queries/useAutoEvent'\nimport { useParams } from 'react-router'\nimport { getConfig } from '../../AppConfig'\nimport ContentCopyIcon from '@mui/icons-material/ContentCopy';\nimport IconButton from '@mui/material/IconButton';\nimport { useAuctionInfo } from '../../queries/useFetchAuctionInfo'\n\ninterface Params {\n id: string\n}\n\n\n\ninterface FormData {\n multipleitems: string\n location: number\n duration: number\n itemsperpage: number\n}\n\nexport const AuctionCarouselSetup = () => {\n const { auctionSnapURL } = getConfig()\n\n const { id } = useParams()\n useAutoEvent(id)\n const formMethods = useForm()\n const eventState = useEventState()\n const title = \"Item Carousel Setup\"\n const { setValue, watch, getValues, setError, clearErrors, setFocus } = formMethods\n const { reset } = formMethods\n const { data: locationAndTags } = useFetchLocationTags(Number(eventState.eventId))\n const watchDuration = watch(\"duration\", 10) // you can supply default value as second argument\n const watchItems = watch(\"itemsperpage\", 6) // you can supply default value as second argument\n const watchTable = watch(\"location\") // you can supply default value as second argument\n const watchAll = watch([\"multipleitems\", \"location\", \"itemsperpage\", \"duration\"]) // you can supply default value as second argument\n\n const [Duration, setDuration] = useState(10)\n const [ItemsperPage, setItemsperPage] = useState(6)\n const [url, setURL] = useState(\"\")\n const [toggleItemType, setToggleItemType] = React.useState(\"detail\");\n const {data: aucInfo} = useAuctionInfo(id)\n\n // useEffect(() => {\n\n\n\n\n // reset({\n // multipleitems: \"Multiple\",\n // location: \"\",\n // duration: 10,\n // itemsperpage: 8,\n\n // })\n // }, [ locationAndTags])\n\n const locations = locationAndTags && locationAndTags.locations ? locationAndTags.locations : []\n\n const locationOptions = useMemo(\n () => locations.filter((e) => e.active === true).map((location) => {\n return { value: location.id, label: location.name }\n }),\n [locations]\n )\n useEffect(() => {\n if (eventState.eventCode != \"\") {\n setURL(aucInfo.auctionlink +\"detail/\")\n }\n }, [eventState.eventCode]);\n\n useEffect(() => {\n console.log(watchAll);\n console.log(aucInfo.auctionlink);\n\n let locationName = locationOptions.filter(f => f.value === watchAll[1])[0]\n let url = buildUrl(aucInfo.auctionlink, toggleItemType, locationName, { duration: \"\" + watchAll[3], itemsperpage: \"\" + watchAll[2] });\n console.log(url)\n setURL(url)\n }, [watchAll]);\n\n const onSubmit = async (data: FormData) => {\n console.log(toggleItemType)\n console.log(data)\n console.log(eventState)\n let locationName = locationOptions.filter(f => f.value === data.location)[0]\n let url = buildUrl(aucInfo.auctionlink, toggleItemType, locationName, data);\n console.log(url)\n setURL(url)\n }\n function buildUrl(auctionSnapURLParam, toggleItemTypeParam, locationNameParam, dataParam) {\n let parts = [auctionSnapURLParam];\n console.log(dataParam)\n \n if (toggleItemTypeParam) parts.push(toggleItemTypeParam);\n if (locationNameParam && locationNameParam.label) parts.push(encodeURIComponent(locationNameParam.label));\n if (dataParam && dataParam.duration && watchTable > 0) parts.push(dataParam.duration);\n if (dataParam && dataParam.itemsperpage && watchTable > 0 && toggleItemType != 'detail') parts.push(dataParam.itemsperpage);\n parts = parts.map(part => part.replace(/\\/+$/, ''));\n\n return parts.join('/');\n }\n const h3Style = {\n margin: 0,\n wordWrap: 'break-word',\n overflowWrap: 'break-word'\n };\n const handleTypeChange = (\n event: React.MouseEvent,\n newAlignment: string\n ) => {\n // if (newAlignment !== null) {\n // const loc : any = getValues('location')\n // if (newAlignment === 'online-auction' && loc === 'none') {\n // setError('location', { type: 'required', message: 'Location is required' })\n // }\n // else if (newAlignment == 'live-auction') {\n // setQuantityValue(1)\n // }\n if (newAlignment !== null) {\n\n setToggleItemType(newAlignment)\n }\n // }\n }\n // console.log(\"tester\");\n\n console.log(watchTable)\n const copyTextToClipboard = async (text) => {\n try {\n await navigator.clipboard.writeText(text);\n console.log('Text successfully copied to clipboard');\n } catch (err) {\n console.error('Failed to copy text: ', err);\n }\n };\n const handleh3Click = () => {\n const text = url;\n copyTextToClipboard(text);\n };\n return (\n\n
\n

Item Carousel Setup

\n \n \n\n \n\n\n \n One Item Per Page\n Multiple Items Per Page\n \n\n \n {watchTable > 0 && (\n <>\n \n {toggleItemType != 'detail' && (\n \n )}\n\n \n )}\n\n \n\n {/* \n Submit\n */}\n\n\n\n\n
\n \n
\n
\n \n \n \n \n {url}\n \n
\n
\n
\n
\n\n )\n}\n","import * as React from 'react';\nimport { classNames } from '@progress/kendo-react-common';\n\nexport interface ListItemProps {\n data?: any;\n className?: string;\n children?: React.ReactNode;\n style?: React.CSSProperties;\n}\n\nexport const ListItem = React.forwardRef((props, ref) => {\n return (\n \n )\n})\n\nListItem.defaultProps = {\n style: {}\n}\n","import * as React from 'react';\n\nexport interface ListProps {\n style?: React.CSSProperties;\n children?: React.ReactNode;\n}\n\nexport const List = React.forwardRef((props, ref) => {\n return (\n \n )\n});\n\nList.defaultProps = {\n style: {}\n}","import * as React from 'react';\nimport { useDroppable } from '@progress/kendo-react-common';\n\nimport { ListItem } from './ListItem';\nimport { List, ListProps } from './List';\nimport {DataItem, DragContext, DropContext} from \"./EventGroupMaintenance\";\nexport interface DroppableListProps extends ListProps {\n data: DataItem;\n onDrop?: Function;\n}\n\nexport const DroppableList = (props: DroppableListProps) => {\n const list = React.useRef(null);\n const dropInstance = React.useRef<{element: React.RefObject, data: DataItem}>(null);\n React.useImperativeHandle(dropInstance, () => ({ element: list, data: props.data }));\n\n const [drag] = React.useContext(DragContext);\n const [drop, setDrop] = React.useContext(DropContext);\n\n const handleDragEnter = () => {\n if(!props.children || !React.Children.count(props.children)) {\n setDrop(dropInstance.current);\n }\n }\n\n const handleDragLeave = () => {\n if(!props.children || !React.Children.count(props.children)) {\n setDrop(null);\n }\n }\n\n const handleDrop = () => {\n if(props.onDrop) {\n props.onDrop();\n }\n }\n\n useDroppable(list, {\n onDragEnter: handleDragEnter,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop\n })\n\n return (\n \n {props.children && React.Children.count(props.children)\n ? props.children\n : (drag && drop && drop.data.ticketid === props.data.ticketid) && {drag.data.ticketname}\n }\n )\n}","import { QueryClient, QueryClientProvider } from 'react-query'\nimport {Provider, useDispatch} from 'react-redux'\nimport {\n Redirect,\n Route,\n BrowserRouter as Router,\n Switch\n} from 'react-router-dom'\n\n\nimport { AuthGuard } from '../components/common/AuthGuard'\nimport Layout from '../components/common/Layout'\nimport AuctionItemsPage from '../pages/AuctionItemsPage'\nimport EventItemsPage from '../pages/EventItemsPage'\nimport FlexMonsterPage from \"../pages/FlexMonsterPage\";\nimport AuthPage from '../pages/AuthPage'\nimport CustomMessagesPage from '../pages/CustomMessagesPage'\nimport AuctionPage from '../pages/AuctionPage/AuctionPage'\nimport EventPage from '../pages/EventPage/EventPage'\nimport AuctionSettingsForm from '../pages/AuctionSettingsForm'\nimport EvtSettingsForm from '../pages/EventSettingsForm'\nimport EventEmailCustomization from '../pages/EventEmailCustomization'\nimport EventMassEmail from '../pages/EventMassEmail'\n\nimport EventSponsors from '../pages/EventSponsors'\nimport HomePage from '../pages/HomePage'\nimport TermsPage from '../pages/TermsPage'\nimport LocationsTagsPage from '../pages/LocationsTagsPage'\nimport ManualBidEntryPage from '../pages/ManualBidEntryPage'\nimport OrgSettingsPage from '../pages/OrgSettingsPage'\nimport ParticipantsPage from '../pages/ParticipantsPage'\nimport ParticipantsListingPage from '../pages/ParticipantsListingPage'\nimport ParticipantMergePage from '../pages/ParticipantMergePage'\nimport ParticipantLinkingPage from '../pages/ParticipantLinkingPage'\nimport ImportPage from '../pages/ParticipantsPage/ImportPage'\nimport { useAutoAuth } from '../queries/useAutoAuth'\nimport HttpInterceptor from '../util/HttpInterceptor'\nimport styles from './App.module.css'\nimport store from './store'\nimport BidMaintenancePage from \"../pages/BidMaintenancePage\";\nimport AuctionStatusPage from \"../pages/AuctionStatusPage\";\nimport LiveAuctionPage from \"../pages/LiveAuctionPage\";\nimport CheckoutMainPage from \"../pages/CheckoutPage\";\nimport AuctionSummaryReportPage from \"../pages/AuctionSummaryReportPage\";\nimport { LicenseInfo } from '@mui/x-data-grid-pro'\nimport '@progress/kendo-theme-default/dist/all.css';\nimport AdminAuthPage from '../pages/AdminAuthPage'\nimport BroadcastMessagePage from \"../pages/BroadcastMessagePage\";\nimport ForceRefreshPage from \"../pages/ForceRefreshPage\";\nimport TransferPage from \"../pages/TransferPage\";\nimport EventUserDefinedPage from '../pages/EventUserDefinedPage'\nimport EventTransactionsPage from \"../pages/EventTransactionsPage\";\nimport EventTicketsPage from \"../pages/EventTicketsPage\";\nimport EventDiscountCodesPage from \"../pages/EventDiscountCodesPage\";\nimport EventGuestMaintenanceTable from \"../pages/EventGuestMaintenancePage\";\nimport { AuctionCarouselSetup } from '../pages/AuctionCarouselSetup'\nimport EventGroupMaintenance from \"../pages/EventGroupMaintenancePage\";\n\nLicenseInfo.setLicenseKey(\n 'f7086eca5ec0b9128713cd1ec7c772f3Tz03NzkxNSxFPTE3MzA1NjM4NjAwMDAsUz1wcmVtaXVtLExNPXN1YnNjcmlwdGlvbixLVj0y'\n)\n\nexport enum PagePathTypes {\n auth = '/auth',\n adminlogin = '/adminlogin/:tokenid',\n settings = '/settings',\n auctionsettings = '/auction/:id/settings',\n evtsettings = '/event/:id/settings',\n eventtransactions = '/event/:eventid/transactions',\n eventdiscountcodes = '/event/:eventid/discountcodes',\n eventactivitytickets = '/event/:eventid/activitytickets',\n eventguestmaintenance = '/event/:eventid/eventguestmaintenance',\n eventgroupmaintenance = '/event/:eventid/eventgroupmaintenance',\n eventemailcustomization = '/event/:eventid/EventEmailCustomization',\n emassemailmaintenancetable = '/event/:eventid/EventMassEmailMaintenanceTable',\n newevent = '/eventnew',\n newevt = '/evtnew',\n home = '/home',\n terms = '/terms',\n eventsponsors = '/auction/:id/sponsors',\n custommessages = '/auction/:id/custommessages',\n locationstags = '/auction/:id/locationstags',\n auctionitems = '/auction/:id/auctionitems',\n eventitems = '/event/:eventid/eventitems',\n eventuserdefined = '/event/:eventid/userdefined',\n participants = '/auction/:eventid/participants',\n ParticipantsLinking = '/auction/:eventid/participantsLinking',\n ParticipantLinking = '/auction/:eventid/ParticipantLinking',\n importParticpants = '/auction/:eventid/participants/import',\n importTypeParticpants = '/auction/:eventid/participants/:importtype/import',\n manualbidentry = '/auction/:eventid/manualbidentry',\n bidmaintenance = '/auction/:eventid/bidmaintenance',\n AuctionSummaryReportPage = '/auction/:eventid/AuctionSummaryReportPage',\n TransferPage = '/auction/:eventid/TransferPage',\n //AuctionSummaryReportDetailPage = '/event/:eventid/AuctionSummaryReportDetailPage',\n AuctionStatus = '/auction/:eventid/AuctionStatus',\n liveauction = '/auction/:eventid/liveauction',\n checkout = '/auction/:eventid/checkout',\n broadcastmessage = '/auction/:eventid/broadcastmessage',\n forcerefresh = '/auction/:eventid/forcerefresh',\n auction = '/auction/:id',\n event = '/event/:id',\n auctioncarouselsetup = '/auction/:id/carouselsetup',\n participantmerge = '/auction/:id/participantmerge'\n}\nconst queryClient = new QueryClient()\n\nconst AutoAuth = ({ children }) => {\n useAutoAuth()\n return children\n}\n\n\nexport const App = () => {\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 \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {/* \n \n \n \n */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n )\n}\n","import * as React from 'react';\nimport { useDraggable, useDroppable, DroppableDragEnterEvent, DroppableDragLeaveEvent, NormalizedDragEvent } from '@progress/kendo-react-common';\n\n\nimport { ListItem, ListItemProps } from './ListItem';\nimport {DirectionContext, DragContext, DropContext} from \"./EventGroupMaintenance\";\n\nexport interface DraggableListItemProps extends ListItemProps {\n onDrop: Function;\n}\n\nexport const DraggableListItem = (props: DraggableListItemProps) => {\n const item = React.useRef(null);\n const hint = React.useRef(null);\n const dropHint = React.useRef(null);\n const dragInstance = React.useRef<{element: React.RefObject, data}>(null);\n const dropInstance = React.useRef<{element: React.RefObject, data}>(null);\n\n React.useImperativeHandle(dragInstance, () => ({ element: hint, data: props.data }));\n React.useImperativeHandle(dropInstance, () => ({ element: item, data: props.data }));\n\n const [drag, setDrag] = React.useContext(DragContext);\n const [drop, setDrop] = React.useContext(DropContext);\n const [direction, setDirection] = React.useContext(DirectionContext);\n\n const [dragged, setDragged] = React.useState(false);\n const [offset, setOffset] = React.useState<{x: number; y: number}>({x: 0, y: 0});\n const [position, setPosition] = React.useState<{x: number, y: number} | null>(null);\n const [width, setWidth] = React.useState(null);\n\n const handlePress = React.useCallback(\n (event: NormalizedDragEvent) => {\n setOffset({\n x: event.offsetX,\n y: event.offsetY\n });\n if(!item.current) {return;}\n setWidth(item.current.offsetWidth);\n },\n []\n )\n\n const handleDragStart = React.useCallback(\n () => {\n setDragged(true);\n setDrag(dragInstance.current)\n },\n [setDrag]\n )\n\n const handleDrag = React.useCallback(\n (event: NormalizedDragEvent) => {\n if(drag && drag.element.current\n && drop && drop.element.current) {\n const newDirection = calculateDirection(drag.element.current, drop.element.current)\n setDirection(newDirection);\n }\n setPosition({\n x: event.clientX - offset.x,\n y: event.clientY - offset.y\n })\n },\n [drag, drop, offset.x, offset.y, setDirection]\n )\n\n const handleDragEnd = React.useCallback(\n () => {\n setDragged(false);\n setOffset({x: 0, y: 0});\n setDrag(null);\n },\n [setDrag]\n )\n\n const handleRelease = React.useCallback(\n () => {\n setDrop(null);\n },\n [setDrop]\n )\n\n const handleDragEnter = React.useCallback(\n () => {\n setDrop(dropInstance.current);\n },\n [setDrop]\n )\n\n const handleDragLeave = React.useCallback(\n () => {\n setDrop(null);\n },\n [setDrop]\n )\n\n const handleDrop = React.useCallback(\n () => {\n if(props.onDrop) {\n props.onDrop();\n }\n setDrop(null);\n },\n [props, setDrop]\n )\n\n useDraggable(\n item,\n {\n onPress: handlePress,\n onDragStart: handleDragStart,\n onDrag: handleDrag,\n onDragEnd: handleDragEnd,\n onRelease: handleRelease\n },\n {\n hint,\n autoScroll: false\n }\n );\n\n useDroppable(item, {\n onDragEnter: handleDragEnter,\n onDragLeave: handleDragLeave,\n onDrop: handleDrop\n });\n useDroppable(dropHint, {\n onDragEnter: handleDragEnter,\n onDrop: handleDrop\n });\n\n return (\n \n {(drag && drop && drop.data.ticketid === props.data.ticketid && direction === 'before') && {drag.data.ticketname}}\n \n {(drag && drop && drop.data.ticketid === props.data.ticketid && direction === 'after') && {drag.data.ticketname}}\n {(dragged && position) && }\n \n )\n}\n\n\nconst calculateDirection = (drag: HTMLElement, drop: HTMLElement) => {\n const dragRect = drag.getBoundingClientRect();\n const dropRect = drop.getBoundingClientRect();\n\n return (dragRect.top + (dragRect.height / 2 )) < (dropRect.top + (dropRect.height / 2))\n ? 'before'\n : 'after'\n}\n","import React, {useEffect, useState} from 'react'\nimport styles from './EventGroupMaintenance.module.css'\nimport {useParams} from \"react-router\";\nimport {useAutoEvent} from \"../../queries/useAutoEvent\";\nimport {DragAndDrop} from '@progress/kendo-react-common';\nimport axios from \"axios\";\nimport LoadingBackdrop from \"../../components/common/LoadingBackdrop\";\nimport {\n CardContent,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n List,\n ListItem, TextField,\n Typography\n} from \"@material-ui/core\";\nimport {\n Card,\n CardHeader,\n Grid,\n IconButton,\n InputLabel,\n ListItemText,\n MenuItem,\n Select,\n SelectChangeEvent\n} from \"@mui/material\";\nimport Button from \"@mui/material/Button\";\nimport {DroppableList} from \"./DroppableList\";\nimport {DraggableListItem} from \"./DropableListItem\";\nimport {Delete, Edit, Note} from \"@material-ui/icons\";\nimport {GridCellParams} from \"@mui/x-data-grid-premium\";\n\ninterface Params {\n eventid: string\n}\n//\n// export interface DataItem {\n// groupid: number\n// groupname: string\n// guests: [\n// {\n// ticketid: number | string\n// ticketname?: string\n// }\n// ]\n// }\n\nexport interface DataItem {\n ticketid: number | string\n ticketname?: string\n groupid?: number | string\n}\n\n\nexport const DragContext = React.createContext<[null | {element: React.RefObject, data: DataItem}, Function]>([null, () => {/* noop */}]);\nexport const DropContext = React.createContext<[null | {element: React.RefObject, data: DataItem}, Function]>([null, () => {/* noop */}]);\nexport const DirectionContext = React.createContext<[\"before\" | \"after\", Function]>([\"before\", () => {/* noop */}]);\n\nconst inRange = (min, max, index) => {\n return Math.max(min, Math.min(max, index));\n}\nconst EventGroupMaintenance = () => {\n const { eventid } = useParams()\n useAutoEvent(eventid)\n\n const dropTimeout = React.useRef();\n\n const [data, setData] = React.useState();\n const [drag, setDrag] = React.useState<{element: React.RefObject, data: DataItem} | null>(null);\n const [drop, setDrop] = React.useState<{element: React.RefObject, data: DataItem} | null>(null);\n const [dialogObj, setDialogObj] = React.useState({ msg: \"\", id: 0 })\n const [dialogMsg, setDialogMsg] = React.useState(\"\")\n const [groupName, setGroupName] = React.useState({name: \"\", groupid: 0})\n const [newGroupName, setNewGroupName] = React.useState(\"\")\n const [loading, setLoading] = React.useState(false)\n const [reloadForRename, setreloadForRename] = React.useState(false)\n const [ticketItem, setTicketItem] = useState(\"-1\")\n const [groupData, setGroupData] = React.useState({\n ticketgroups: [],\n ticketitemlist: [],\n selectedticketitemid: 0,\n })\n\n useEffect(() => {\n getGroups()\n }, [])\n\n useEffect(() => {\n setTicketItem(groupData.selectedticketitemid.toString())\n }, [groupData])\n\n useEffect(() => {\n setreloadForRename(false)\n getGroups()\n }, [ticketItem, reloadForRename === true])\n\n const handleSelectionChange = async (event: SelectChangeEvent) => {\n setTicketItem(event.target.value as string);\n }\n\n const getGroups = async () => {\n var body = {eventid: eventid}\n\n if (Number(ticketItem) > 0) {\n body['ticketitemid'] = Number(ticketItem)\n }\n\n setLoading(true)\n const { data } = await axios.post('/evtactivitygroups', body)\n const parsedData = JSON.parse(data.jsonString)\n console.log(parsedData)\n setGroupData(parsedData)\n // parsedData.\n // setData(newData)\n\n setData(parsedData.ticketgroups)\n\n setLoading(false)\n }\n\n const getTicketItemOptions = () => {\n return groupData?.ticketitemlist?.map(item => (\n \n {item.ticketitemname}\n \n ))\n }\n\n const [direction, setDirection] = React.useState<\"before\" | \"after\">(\"before\");\n\n const handleDropChange = React.useCallback(\n (newDrop: {element: React.RefObject, data: DataItem} | null) => {\n if(!newDrop) {\n dropTimeout.current = window.setTimeout(() => { setDrop(newDrop) }, 50)\n } else {\n clearTimeout(dropTimeout.current);\n setDrop(newDrop);\n }\n },\n []\n );\n\n const groupFromTicketIndex = (data, ticketid) => {\n var newgroup = null\n data.forEach(group => {\n if (group.guests.find(ticket => ticket.ticketid === ticketid)) {\n newgroup = group\n }\n })\n return newgroup\n }\n\n const handleItemDrop = React.useCallback(\n async () => {\n if(!drag || !drop) { return; }\n const body = {\n eventid: eventid,\n ticketitemid: ticketItem,\n groupid: drop.data.groupid,\n ticketlist: [\n {ticketid: drag.data.ticketid}\n ]\n }\n\n await axios.put('/evtactivitygroups', body)\n setreloadForRename(true)\n },\n [data, direction, drag, drop]\n );\n\n const handleListDrop = React.useCallback(\n () => {\n if(!drag || !drop) { return; }\n console.log('handleListDrop')\n // console.log(data)\n // const newData = data.slice();\n // const oldIndex = newData.findIndex((d) => d.ticketid === drag.data.ticketid);\n // const dataItem = newData[oldIndex];\n // console.log(dataItem)\n //\n // if(dataItem) {\n // newData.splice(newData.length - 1, 0, newData.splice(oldIndex, 1)[0]);\n // setData(newData);\n // }\n },\n [data, drag, drop]\n )\n\n const handleEditGroup = (group) => {\n setNewGroupName(group.groupname)\n setGroupName({\n name: group.groupname,\n groupid: Number(group.groupid)\n })\n }\n\n const addNewGroup = () => {\n setNewGroupName('New Group Name')\n setGroupName({\n name: 'New Group Name',\n groupid: Number(-1)\n })\n }\n\n const saveGroupName = async () => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"groupname\": newGroupName,\n \"groupid\": groupName.groupid,\n \"ticketitemid\": Number(ticketItem),\n }\n\n const { data } = await axios.put('/evtactivitygroupname', finaldata)\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n // setNewGroupName('')\n setGroupName({\n name: '',\n groupid: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setNewGroupName('')\n setGroupName({\n name: '',\n groupid: 0\n })\n setreloadForRename(true)\n }\n }\n\n const handleDeleteGroup = (group) => {\n setDialogObj({\n msg: 'Are you sure you want to delete \\\"' + group.groupname + \"\\\"?\",\n id: Number(group.groupid)\n })\n }\n\n const deleteDialog = async () => {\n await handleDeleteConfirm(dialogObj.id)\n }\n\n const handleDeleteConfirm = async (groupid: number) => {\n var finaldata = {\n \"eventid\": Number(eventid),\n \"groupid\": groupid,\n \"ticketitemid\": Number(ticketItem),\n \"delete\": true\n }\n\n const { data } = await axios.delete('/evtactivitygroupname', {data: finaldata})\n const json = JSON.parse(data.jsonString)\n if (json.status === \"failure\") {\n setDialogObj({\n msg: '',\n id: 0\n })\n setDialogMsg(json.message)\n }\n else {\n setDialogObj({\n msg: '',\n id: 0\n })\n setreloadForRename(true)\n }\n }\n\n const closeDialog = () => {\n setGroupName({\n name: '',\n groupid: 0\n })\n setDialogMsg('')\n setDialogObj({\n msg: '',\n id: 0\n })\n }\n\n return (\n
\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogObj.msg}\n \n \n \n \n \n \n \n\n <>\n 0}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {dialogMsg}\n \n \n \n \n \n \n \n\n\n <>\n 0}\n fullWidth\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n \n \n {setNewGroupName(e.target.value)}}\n type=\"string\"\n variant=\"outlined\"\n InputLabelProps={{\n shrink: true,\n }}\n />\n \n \n \n \n \n \n \n \n\n \n

Group Maintenance

\n \n \n \n \n {getTicketItemOptions()}\n \n \n \n \n \n \n \n {addNewGroup()}}\n color=\"primary\">\n Add Group\n \n \n \n \n \n \n \n \n \n {/**/}\n {groupData.ticketgroups.map(group => {\n return (\n \n <>\n \n \n {handleEditGroup(group)}}\n aria-label=\"settings\"\n >\n \n \n {handleDeleteGroup(group)}}\n aria-label=\"settings\"\n >\n \n \n
\n }\n title={group.groupname} />\n \n {/*{group.groupname}*/}\n \n {group.guests.map((item) => (\n {item.ticketname}))}\n \n \n \n \n \n )\n })}\n\n {/**/}\n\n \n \n \n \n\n \n\n
\n )\n}\n\nexport default EventGroupMaintenance\n","import { useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\n\nimport { parseJwt } from '../pages/AuthPage/LoginForm/useLoginMutation'\nimport { useFetchOrgSettings } from '../pages/OrgSettingsPage/useFetchOrgSettings'\nimport {AuthToken, loginUser, updateUser} from '../slices/authSlice'\nimport axios from \"axios\";\nimport {User} from \"./useUsers\";\n\nexport const useAutoAuth = () => {\n const dispatch = useDispatch()\n const token = localStorage.getItem('tokenadmin')\n\n const parsedToken: AuthToken = ((token && token !== 'undefined') ? parseJwt(token) : null)\n const history = useHistory()\n\n return useFetchOrgSettings({\n userid: parsedToken?.userid,\n onSuccess: () => {\n if (parsedToken && parsedToken.userid) {\n dispatch(loginUser(parsedToken))\n\n axios.post('/usersetup', {userid: parsedToken.userid}).then((response) => {\n const parsedData = JSON.parse(response?.data?.jsonString)\n if (parsedData && parsedData?.users && parsedData?.users.length > 0) {\n const user = parsedData.users[0]\n dispatch(updateUser(user))\n }\n })\n\n } else {\n history.push('/auth/login')\n }\n },\n onError: () => {\n history.push('/auth/login')\n },\n enabled: Boolean(history)\n })\n}\n","import './index.css'\n\nimport React from 'react'\nimport ReactDOM from 'react-dom'\n\nimport { App } from './App'\nimport 'flexmonster/flexmonster.css';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"GenericForm_root__I1Opp\",\"selectcontrol\":\"GenericForm_selectcontrol__313vb\",\"itemsForm\":\"GenericForm_itemsForm__Qg-5j\",\"dialog\":\"GenericForm_dialog__7Lhw6\",\"tablebutton\":\"GenericForm_tablebutton__1CcF1\",\"submitButton\":\"GenericForm_submitButton__1Y7op\",\"switchContainer\":\"GenericForm_switchContainer__2dBqu\",\"singleContainer\":\"GenericForm_singleContainer__37EzM\",\"buyItNowContainer\":\"GenericForm_buyItNowContainer__2yB-q\",\"twoControlContainer\":\"GenericForm_twoControlContainer__2K1nZ\",\"textContainer\":\"GenericForm_textContainer__6SVg8\",\"buyitnowtextContainer\":\"GenericForm_buyitnowtextContainer__8aPXq\",\"formContainer\":\"GenericForm_formContainer__30kg2\",\"buyitnowformContainer\":\"GenericForm_buyitnowformContainer__3uYmJ\",\"imageWrapper\":\"GenericForm_imageWrapper__1dt9f\",\"dropzone\":\"GenericForm_dropzone__1j8F5\",\"logoWrapper\":\"GenericForm_logoWrapper__2BmNg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventDiscountCodesTable_root__2mIAp\",\"itemsForm\":\"EventDiscountCodesTable_itemsForm__2P4I3\",\"dialog\":\"EventDiscountCodesTable_dialog__1jGrC\",\"submitButton\":\"EventDiscountCodesTable_submitButton__2bhxI\",\"switchContainer\":\"EventDiscountCodesTable_switchContainer__2paOM\",\"singleContainer\":\"EventDiscountCodesTable_singleContainer__2HLuz\",\"buyItNowContainer\":\"EventDiscountCodesTable_buyItNowContainer__2Iru_\",\"twoControlContainer\":\"EventDiscountCodesTable_twoControlContainer__2HIlh\",\"textContainer\":\"EventDiscountCodesTable_textContainer__2hvXl\",\"buyitnowtextContainer\":\"EventDiscountCodesTable_buyitnowtextContainer__1z3C8\",\"formContainer\":\"EventDiscountCodesTable_formContainer__1ul4C\",\"buyitnowformContainer\":\"EventDiscountCodesTable_buyitnowformContainer__2ND48\",\"imageWrapper\":\"EventDiscountCodesTable_imageWrapper__162w2\",\"dropzone\":\"EventDiscountCodesTable_dropzone__1PKXm\",\"logoWrapper\":\"EventDiscountCodesTable_logoWrapper__QjwlV\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventPage_root__3GbGf\",\"submitButton\":\"EventPage_submitButton__14opw\",\"selectcontrol\":\"EventPage_selectcontrol__2Glrp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"MaskedInput_input__3Larn\",\"label\":\"MaskedInput_label__w2WMr\",\"textContainer\":\"MaskedInput_textContainer__2TuCz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventUserDefinedTable_root__2oi_9\",\"itemsForm\":\"EventUserDefinedTable_itemsForm__3_huI\",\"dialog\":\"EventUserDefinedTable_dialog__i5725\",\"submitButton\":\"EventUserDefinedTable_submitButton__2N7VB\",\"switchContainer\":\"EventUserDefinedTable_switchContainer__37fn1\",\"singleContainer\":\"EventUserDefinedTable_singleContainer__2Pfnf\",\"buyItNowContainer\":\"EventUserDefinedTable_buyItNowContainer__11wKb\",\"twoControlContainer\":\"EventUserDefinedTable_twoControlContainer__1hwXH\",\"textContainer\":\"EventUserDefinedTable_textContainer__30KQc\",\"buyitnowtextContainer\":\"EventUserDefinedTable_buyitnowtextContainer__2RBZ8\",\"formContainer\":\"EventUserDefinedTable_formContainer__19jvI\",\"buyitnowformContainer\":\"EventUserDefinedTable_buyitnowformContainer__3XBf8\",\"imageWrapper\":\"EventUserDefinedTable_imageWrapper__3U8So\",\"dropzone\":\"EventUserDefinedTable_dropzone__3XcwH\",\"logoWrapper\":\"EventUserDefinedTable_logoWrapper__1mWO5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutForm_root__39SID\",\"subrootitems\":\"CheckoutForm_subrootitems__2v-cL\",\"subrootcard\":\"CheckoutForm_subrootcard__6X7PD\",\"subrootgrid\":\"CheckoutForm_subrootgrid__1u-n2\",\"form\":\"CheckoutForm_form__1URiu\",\"gridContainer\":\"CheckoutForm_gridContainer__oUl9w\",\"grid\":\"CheckoutForm_grid__2an6_\",\"rootitems\":\"CheckoutForm_rootitems__1eB_E\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"OrgSettingsPage_root__2_CTg\",\"inputsContainer\":\"OrgSettingsPage_inputsContainer__3hhDv\",\"inputButtonContainer\":\"OrgSettingsPage_inputButtonContainer__2VZCl\",\"floatingButton\":\"OrgSettingsPage_floatingButton__2SiGJ\",\"saveButton\":\"OrgSettingsPage_saveButton__3uEgT\",\"resetButton\":\"OrgSettingsPage_resetButton__3eFZF\",\"bottomSaveButton\":\"OrgSettingsPage_bottomSaveButton__3j98d\",\"tableContainer\":\"OrgSettingsPage_tableContainer__2lCBT\",\"horizontalScroll\":\"OrgSettingsPage_horizontalScroll___qo-e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ImportPage_root__3BIK6\",\"switchContainer\":\"ImportPage_switchContainer__27nu4\",\"labelContainer\":\"ImportPage_labelContainer__3OvWz\",\"selectSourceContainer\":\"ImportPage_selectSourceContainer__1Zvmy\",\"fileUpload\":\"ImportPage_fileUpload__1Hjud\",\"selectRow\":\"ImportPage_selectRow__3sO-z\",\"gridContainer\":\"ImportPage_gridContainer__d8Exk\",\"matchFieldsContainer\":\"ImportPage_matchFieldsContainer__OXQxt\",\"textRow\":\"ImportPage_textRow__2hIcO\",\"selectcontrol\":\"ImportPage_selectcontrol__1A0fp\",\"dropzone\":\"ImportPage_dropzone__1Zq81\",\"dropzoneselect\":\"ImportPage_dropzoneselect__1HP-p\",\"dropzoneinvalid\":\"ImportPage_dropzoneinvalid__spLyC\",\"selectedFile\":\"ImportPage_selectedFile__3P74h\",\"errorButton\":\"ImportPage_errorButton__3-rJH\",\"importButton\":\"ImportPage_importButton__1My_s\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ManualBidEntryPage_root__jdho2\",\"submitButton\":\"ManualBidEntryPage_submitButton__1qz9K\",\"selectcontrol\":\"ManualBidEntryPage_selectcontrol__3A-Ex\",\"bidForm\":\"ManualBidEntryPage_bidForm__2UvOX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"SelectInput_input__6QEx2\",\"label\":\"SelectInput_label__1tqUl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"HomePage_root__2rAvm\",\"topRow\":\"HomePage_topRow__E1eIP\",\"successBtn\":\"HomePage_successBtn__3XQsk\",\"deleteBtn\":\"HomePage_deleteBtn__23o7H\",\"switchBase\":\"HomePage_switchBase__3N-K3\",\"cardActions\":\"HomePage_cardActions__3L-wf\",\"listContainer\":\"HomePage_listContainer__3gtAg\",\"listItem\":\"HomePage_listItem__2vluB\",\"divider\":\"HomePage_divider__LqaTs\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutPage_root__DD87j\",\"submitButton\":\"CheckoutPage_submitButton__W2jcg\",\"grid\":\"CheckoutPage_grid__29ZB3\",\"tabs\":\"CheckoutPage_tabs__Xlpvm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"SponsorsForm_root__34WKk\",\"form\":\"SponsorsForm_form__3BHXd\",\"button\":\"SponsorsForm_button__1NIdU\",\"dropzone\":\"SponsorsForm_dropzone__2IepB\",\"selectcontrol\":\"SponsorsForm_selectcontrol__2XmpX\",\"logoWrapper\":\"SponsorsForm_logoWrapper__2cZyL\",\"dropzoneselect\":\"SponsorsForm_dropzoneselect__qG9c4\",\"dropzoneinvalid\":\"SponsorsForm_dropzoneinvalid__eAobu\",\"selectedFile\":\"SponsorsForm_selectedFile__1Cw90\",\"cancelButton\":\"SponsorsForm_cancelButton__Hdf4Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ForceRefreshPage_root__1gD5B\",\"switchContainer\":\"ForceRefreshPage_switchContainer__3Pb9r\",\"labelContainer\":\"ForceRefreshPage_labelContainer__EYFhf\",\"selectSourceContainer\":\"ForceRefreshPage_selectSourceContainer__1gPK5\",\"fileUpload\":\"ForceRefreshPage_fileUpload__2_69I\",\"selectRow\":\"ForceRefreshPage_selectRow__1HRDx\",\"gridContainer\":\"ForceRefreshPage_gridContainer__38xvJ\",\"matchFieldsContainer\":\"ForceRefreshPage_matchFieldsContainer__3CK_6\",\"textRow\":\"ForceRefreshPage_textRow__13VAv\",\"selectcontrol\":\"ForceRefreshPage_selectcontrol__1gyLh\",\"submitButton\":\"ForceRefreshPage_submitButton__1Vq4C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CustomMessagesPage_root__1s652\",\"form\":\"CustomMessagesPage_form__BPze8\",\"button\":\"CustomMessagesPage_button__1wWpG\",\"dropzone\":\"CustomMessagesPage_dropzone__CXgoT\",\"selectcontrol\":\"CustomMessagesPage_selectcontrol__3XFbV\",\"inputsContainer\":\"CustomMessagesPage_inputsContainer__36SFZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CheckoutAllForm_root__91lnT\",\"participantsList\":\"CheckoutAllForm_participantsList__2dL8h\",\"rootitems\":\"CheckoutAllForm_rootitems__2YDid\",\"subrootitems\":\"CheckoutAllForm_subrootitems__3VqTe\",\"subrootcard\":\"CheckoutAllForm_subrootcard__1Um-R\",\"subrootgrid\":\"CheckoutAllForm_subrootgrid__3wCKg\",\"form\":\"CheckoutAllForm_form__2ZGp_\",\"gridContainer\":\"CheckoutAllForm_gridContainer__2HIWX\",\"grid\":\"CheckoutAllForm_grid__3g_w_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"userForm\":\"UsersTable_userForm__3YfQd\",\"submitButton\":\"UsersTable_submitButton__2gpw2\",\"resetBtn\":\"UsersTable_resetBtn__3NMvT\",\"dialogContent\":\"UsersTable_dialogContent__3937I\",\"dialogActions\":\"UsersTable_dialogActions__12jHu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input\":\"TextInput_input__3u3hB\",\"label\":\"TextInput_label__22MyK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"listContainer\":\"ViewList_listContainer__3Ixhs\",\"listContainerProps\":\"ViewList_listContainerProps__2f-l5\",\"listItem\":\"ViewList_listItem__wxdYC\",\"divider\":\"ViewList_divider__31K_Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"toolbar\":\"Header_toolbar__3gmfh\",\"appBar\":\"Header_appBar__2iLy7\",\"menuButton\":\"Header_menuButton__1-nqb\",\"hidden\":\"Header_hidden__11Unr\",\"arrow\":\"Header_arrow__1ZCA5\",\"settings\":\"Header_settings__wSxNC\",\"avatar\":\"Header_avatar__wET4Y\",\"logoWrapper\":\"Header_logoWrapper__1GvYe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"drawerPaper\":\"MainMenu_drawerPaper__1vDS3\",\"toolbarIcon\":\"MainMenu_toolbarIcon__2pEyc\",\"list\":\"MainMenu_list__2uGNt\",\"link\":\"MainMenu_link__3ALcD\",\"truncate\":\"MainMenu_truncate__1UIXv\",\"nested\":\"MainMenu_nested__LU9xa\",\"close\":\"MainMenu_close__1ZuoN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tagsForm\":\"TagsTable_tagsForm__YNKcR\",\"submitButton\":\"TagsTable_submitButton__5hPNU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"locationsForm\":\"LocationsTable_locationsForm__1YWxy\",\"submitButton\":\"LocationsTable_submitButton__ntRAS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"donationForm\":\"DonationTable_donationForm__1Qwz8\",\"submitButton\":\"DonationTable_submitButton__GRfOk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accountingForm\":\"AccountingCode_accountingForm__SEhFn\",\"submitButton\":\"AccountingCode_submitButton__2dyiD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"LocationsTagsPage_root__jPzjd\",\"form\":\"LocationsTagsPage_form__2LVJM\",\"button\":\"LocationsTagsPage_button__f6882\",\"dropzone\":\"LocationsTagsPage_dropzone__3MVFZ\",\"selectcontrol\":\"LocationsTagsPage_selectcontrol__1ce0g\",\"inputsContainer\":\"LocationsTagsPage_inputsContainer__20LIa\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ParticipantsPage_root__2HjgB\",\"submitButton\":\"ParticipantsPage_submitButton__10x0Y\",\"titleRow\":\"ParticipantsPage_titleRow__1mdon\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"udtitlesForm\":\"ParticipantUDTitle_udtitlesForm__32EcH\",\"submitButton\":\"ParticipantUDTitle_submitButton__3P6j3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventSponsors_root__OKNhv\",\"submitButton\":\"EventSponsors_submitButton__lKEod\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventTransactionsTable_root__2Cpcs\",\"selectcontrol\":\"EventTransactionsTable_selectcontrol__zlh28\",\"itemsForm\":\"EventTransactionsTable_itemsForm__3lrX6\",\"dialog\":\"EventTransactionsTable_dialog__1QQYY\",\"tablebutton\":\"EventTransactionsTable_tablebutton__1oeRh\",\"submitButton\":\"EventTransactionsTable_submitButton__13mPJ\",\"switchContainer\":\"EventTransactionsTable_switchContainer__1RxtR\",\"singleContainer\":\"EventTransactionsTable_singleContainer__2TXl_\",\"buyItNowContainer\":\"EventTransactionsTable_buyItNowContainer__DzbX0\",\"twoControlContainer\":\"EventTransactionsTable_twoControlContainer__2wD2y\",\"textContainer\":\"EventTransactionsTable_textContainer__m8VY_\",\"buyitnowtextContainer\":\"EventTransactionsTable_buyitnowtextContainer__geuRW\",\"formContainer\":\"EventTransactionsTable_formContainer__Ks8OK\",\"buyitnowformContainer\":\"EventTransactionsTable_buyitnowformContainer__1Zn3V\",\"imageWrapper\":\"EventTransactionsTable_imageWrapper__2_3TS\",\"dropzone\":\"EventTransactionsTable_dropzone__39RAO\",\"logoWrapper\":\"EventTransactionsTable_logoWrapper__2QTnO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"switchBase\":\"Switch_switchBase__3O2sP\",\"checked\":\"Switch_checked__1NAtt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuthPage_root__1_zml\",\"backgroundContainer\":\"AuthPage_backgroundContainer__32bvE\",\"header\":\"AuthPage_header__2MgG8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ForgotPasswordForm_root__3Lmlc\",\"form\":\"ForgotPasswordForm_form__3bKxA\",\"button\":\"ForgotPasswordForm_button__2h_AB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"LoginForm_root__22FuC\",\"form\":\"LoginForm_form__1DPxB\",\"button\":\"LoginForm_button__1B_Kr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ResetPasswordForm_root__rwtOG\",\"form\":\"ResetPasswordForm_form__3NqFk\",\"button\":\"ResetPasswordForm_button__3r86R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventGuestMaintenance_root__2Mh4o\",\"itemsForm\":\"EventGuestMaintenance_itemsForm__2CSFw\",\"dialog\":\"EventGuestMaintenance_dialog__1vYx2\",\"submitButton\":\"EventGuestMaintenance_submitButton__r1uuX\",\"switchContainer\":\"EventGuestMaintenance_switchContainer__2Id85\",\"singleContainer\":\"EventGuestMaintenance_singleContainer__2T3PT\",\"buyItNowContainer\":\"EventGuestMaintenance_buyItNowContainer__t0XTU\",\"twoControlContainer\":\"EventGuestMaintenance_twoControlContainer__3ziqS\",\"textContainer\":\"EventGuestMaintenance_textContainer__1LMNM\",\"buyitnowtextContainer\":\"EventGuestMaintenance_buyitnowtextContainer__1V2H7\",\"formContainer\":\"EventGuestMaintenance_formContainer__2Wk3k\",\"buyitnowformContainer\":\"EventGuestMaintenance_buyitnowformContainer__2IZza\",\"imageWrapper\":\"EventGuestMaintenance_imageWrapper__2jP4L\",\"dropzone\":\"EventGuestMaintenance_dropzone__3zhoa\",\"logoWrapper\":\"EventGuestMaintenance_logoWrapper__1qFbp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ChipsList_root__8_Ge8\",\"chipContainer\":\"ChipsList_chipContainer__2Db5C\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventMassEmailMaintenanceTable_root__2bmMM\",\"dialog\":\"EventMassEmailMaintenanceTable_dialog__2RD0l\",\"submitButton\":\"EventMassEmailMaintenanceTable_submitButton__3plhN\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TermsPage_root__37MKj\",\"rootitems\":\"TermsPage_rootitems__1-s8z\",\"subrootitems\":\"TermsPage_subrootitems__3ZPHH\",\"topRow\":\"TermsPage_topRow__12YMf\",\"successBtn\":\"TermsPage_successBtn__3vVNr\",\"deleteBtn\":\"TermsPage_deleteBtn__3NnOZ\",\"switchBase\":\"TermsPage_switchBase__3Wl_G\",\"cardActions\":\"TermsPage_cardActions__1ayvr\",\"listContainer\":\"TermsPage_listContainer__1kTzy\",\"listItem\":\"TermsPage_listItem__3m3c0\",\"divider\":\"TermsPage_divider__2z-30\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form\":\"ParticipantsForm_form__3b3O2\",\"submitButton\":\"ParticipantsForm_submitButton__3YgeI\",\"imgBorder\":\"ParticipantsForm_imgBorder__3EGFX\",\"imageWrapper\":\"ParticipantsForm_imageWrapper__3U8SC\",\"noLogo\":\"ParticipantsForm_noLogo__37Ykm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"BidMaintenancePage_root__1xiWt\",\"dialog\":\"BidMaintenancePage_dialog__2Waub\",\"submitButton\":\"BidMaintenancePage_submitButton__2sV_P\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuthPage_root__1nHXx\",\"backgroundContainer\":\"AuthPage_backgroundContainer__3GC9k\",\"header\":\"AuthPage_header__3aVpe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EventTicketsTable_root__cpeUe\",\"itemsForm\":\"EventTicketsTable_itemsForm__1ygTC\",\"dialog\":\"EventTicketsTable_dialog__3OQS5\",\"submitButton\":\"EventTicketsTable_submitButton__2nARJ\",\"switchContainer\":\"EventTicketsTable_switchContainer__1KnIy\",\"singleContainer\":\"EventTicketsTable_singleContainer__4OV3a\",\"buyItNowContainer\":\"EventTicketsTable_buyItNowContainer__3EZIE\",\"twoControlContainer\":\"EventTicketsTable_twoControlContainer__2w1QH\",\"textContainer\":\"EventTicketsTable_textContainer__1_HFv\",\"buyitnowtextContainer\":\"EventTicketsTable_buyitnowtextContainer__1rlgh\",\"formContainer\":\"EventTicketsTable_formContainer__14OtO\",\"buyitnowformContainer\":\"EventTicketsTable_buyitnowformContainer__3AHkY\",\"imageWrapper\":\"EventTicketsTable_imageWrapper__3WcE4\",\"dropzone\":\"EventTicketsTable_dropzone__2_n9V\",\"logoWrapper\":\"EventTicketsTable_logoWrapper__sciif\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"itemsForm\":\"AuctionItemsTable_itemsForm__26ttk\",\"dialog\":\"AuctionItemsTable_dialog__1xzxk\",\"submitButton\":\"AuctionItemsTable_submitButton__18RSH\",\"switchContainer\":\"AuctionItemsTable_switchContainer__ti79M\",\"singleContainer\":\"AuctionItemsTable_singleContainer__cWjUg\",\"buyItNowContainer\":\"AuctionItemsTable_buyItNowContainer__rRnlr\",\"textContainer\":\"AuctionItemsTable_textContainer__1BJb2\",\"buyitnowtextContainer\":\"AuctionItemsTable_buyitnowtextContainer__2hI6J\",\"formContainer\":\"AuctionItemsTable_formContainer__eGYqb\",\"buyitnowformContainer\":\"AuctionItemsTable_buyitnowformContainer__1GsA3\",\"imageWrapper\":\"AuctionItemsTable_imageWrapper__2jzoX\",\"dropzone\":\"AuctionItemsTable_dropzone__u_-Iu\",\"logoWrapper\":\"AuctionItemsTable_logoWrapper__3-Aoo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TransferPage_root__opZNs\",\"switchContainer\":\"TransferPage_switchContainer__25zCh\",\"labelContainer\":\"TransferPage_labelContainer__2-8Ao\",\"selectSourceContainer\":\"TransferPage_selectSourceContainer__1HXi6\",\"fileUpload\":\"TransferPage_fileUpload__aMTSa\",\"selectRow\":\"TransferPage_selectRow__3T1On\",\"gridContainer\":\"TransferPage_gridContainer__1avll\",\"matchFieldsContainer\":\"TransferPage_matchFieldsContainer__16UW3\",\"textRow\":\"TransferPage_textRow__3Cdjg\",\"selectcontrol\":\"TransferPage_selectcontrol__2aLw4\",\"donationcontrol\":\"TransferPage_donationcontrol__6G2YQ\",\"submitButton\":\"TransferPage_submitButton__2e-hE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AuctionItemsPage_root__1LvD6\",\"form\":\"AuctionItemsPage_form__1sEB9\",\"button\":\"AuctionItemsPage_button__nJWoG\",\"dropzone\":\"AuctionItemsPage_dropzone__rr0Ps\",\"selectcontrol\":\"AuctionItemsPage_selectcontrol__ytTNx\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"FlexMonsterPage_root__2ozm1\",\"form\":\"FlexMonsterPage_form__2JMNo\",\"button\":\"FlexMonsterPage_button__21sNg\",\"dropzone\":\"FlexMonsterPage_dropzone__2LjQn\",\"selectcontrol\":\"FlexMonsterPage_selectcontrol__3mBjw\"};"],"sourceRoot":""}