tf-checkout-react 1.3.50 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/api/index.d.ts +6 -1
  2. package/dist/components/common/Loader.d.ts +1 -1
  3. package/dist/components/idVerificationContainer/constants.d.ts +2 -0
  4. package/dist/components/index.d.ts +1 -0
  5. package/dist/components/seatMapContainer/SeatMapComponent.d.ts +8 -0
  6. package/dist/components/seatMapContainer/TicketsSection.d.ts +9 -0
  7. package/dist/components/seatMapContainer/addToCart.d.ts +21 -0
  8. package/dist/components/seatMapContainer/index.d.ts +2 -0
  9. package/dist/components/seatMapContainer/utils.d.ts +14 -0
  10. package/dist/components/stripePayment/index.d.ts +2 -2
  11. package/dist/components/ticketsContainer/TicketRow.d.ts +3 -1
  12. package/dist/components/ticketsContainer/TicketsSection.d.ts +5 -1
  13. package/dist/components/ticketsContainer/index.d.ts +6 -2
  14. package/dist/index.d.ts +1 -0
  15. package/dist/tf-checkout-react.cjs.development.js +1441 -130
  16. package/dist/tf-checkout-react.cjs.development.js.map +1 -1
  17. package/dist/tf-checkout-react.cjs.production.min.js +1 -1
  18. package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
  19. package/dist/tf-checkout-react.esm.js +1442 -132
  20. package/dist/tf-checkout-react.esm.js.map +1 -1
  21. package/dist/tf-checkout-styles.css +1 -1
  22. package/dist/types/order-data.d.ts +3 -0
  23. package/dist/utils/createCheckoutDataBodyWithDefaultHolder.d.ts +9 -2
  24. package/package.json +12 -4
  25. package/src/.d.ts +4 -3
  26. package/src/api/index.ts +89 -6
  27. package/src/components/billing-info-container/index.tsx +115 -103
  28. package/src/components/billing-info-container/utils.ts +1 -2
  29. package/src/components/common/Loader.tsx +6 -8
  30. package/src/components/confirmationContainer/index.tsx +11 -9
  31. package/src/components/idVerificationContainer/constants.ts +2 -0
  32. package/src/components/idVerificationContainer/index.tsx +54 -13
  33. package/src/components/index.ts +2 -1
  34. package/src/components/orderDetailsContainer/index.tsx +54 -23
  35. package/src/components/paymentContainer/index.tsx +167 -33
  36. package/src/components/seatMapContainer/SeatMapComponent.tsx +73 -0
  37. package/src/components/seatMapContainer/TicketsSection.tsx +254 -0
  38. package/src/components/seatMapContainer/addToCart.ts +82 -0
  39. package/src/components/seatMapContainer/index.tsx +408 -0
  40. package/src/components/seatMapContainer/utils.ts +138 -0
  41. package/src/components/stripePayment/index.tsx +23 -18
  42. package/src/components/ticketsContainer/TicketRow.tsx +28 -13
  43. package/src/components/ticketsContainer/TicketsSection.tsx +85 -2
  44. package/src/components/ticketsContainer/index.tsx +57 -12
  45. package/src/components/ticketsContainer/style.css +0 -3
  46. package/src/hooks/usePixel.ts +35 -1
  47. package/src/index.ts +2 -1
  48. package/src/types/order-data.ts +3 -0
  49. package/src/types/seatMap.d.ts +154 -0
  50. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +6 -2
@@ -1 +1 @@
1
- .button-container{display:flex;justify-content:center;padding:20px}.billing-info-container{margin:0 auto;max-width:800px}.billing-info-container .is-half{width:49%}.billing-info-container p{color:#000}.billing-info-container .main-header{font-size:2rem;font-weight:600}.billing-info-container__twoFields{display:flex;justify-content:space-between;margin-top:15px}.billing-info-container__singleField{margin-top:15px}button{margin-top:10px}.account-actions-block{color:#182026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif;margin-top:10px}.MuiButtonBase-root.MuiButton-root,.MuiButtonBase-root.MuiButton-root:hover,.login-register-button{background-color:#212529;border:#f28051;border-radius:5px;color:#fff;cursor:pointer;display:block;font-family:Inter-Bold;font-size:26px;font-weight:700;line-height:1.15;margin-top:10px;min-height:46px;outline:none;overflow:hidden;padding:14px 12px 12px;position:relative;text-align:center;text-overflow:ellipsis;text-transform:uppercase;width:49%}.logo-image-container{margin-top:5px;text-align:center;width:49%}.logo-image-container img{height:30px}.login-block{align-items:center;display:flex;flex-direction:column}.login-register-button:hover{background-color:#505050!important;border-color:#505050!important}.login-register-block{display:flex;justify-content:space-between}@media only screen and (max-width:820px){.billing-info-container{width:90%}.billing-info-container .main-header{font-size:1.5rem}}.email-checking{margin-bottom:15px}.forgot-password-modal .forgot-password-container{margin:0 auto;max-width:800px}.forgot-password-modal .title{background-color:#fff;font-family:Inter;font-size:18px;font-weight:700}.forgot-password-modal .forgot-password-container__singleField{margin-top:15px}.forgot-password-modal .forgot-password-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:10px;outline:none;padding:10px;text-transform:uppercase;width:100%}.forgot-password-modal .forgot-password-action-button button:hover:enabled{background-color:#505050;border-color:#505050}.forgot-password-modal .login{margin-top:10px;text-align:center}.forgot-password-modal .login span{cursor:pointer}.forgot-password-modal .login span:hover{text-decoration:underline}.forgot-password-modal button[disabled]{cursor:unset;opacity:.7}.modal-title{align-items:center;background-color:#fff;display:flex;font-family:Inter;font-size:18px;font-weight:700;height:49px;line-height:22px;padding-left:25px;position:relative}.login-modal-body{padding:15px 25px}.login-modal-body input{background:#fff!important}.login-modal-body__email,.login-modal-body__password{margin-bottom:20px}.login-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin:10px 0;outline:none;padding:10px;width:100%}.login-action-button button:hover{background-color:#505050;border-color:#505050}.server_auth__error{color:red;font-family:Inter;font-size:12px;font-style:normal;padding-left:25px;padding-top:15px}.info-text-for-login{font-size:14px;margin-bottom:4px;padding-left:10px}.forgot-password{text-align:center}.forgot-password span{cursor:pointer}.forgot-password span:hover{text-decoration:underline}.signup-modal .signup-container{margin:0 auto;max-width:800px}.signup-modal .title{background-color:#fff;font-family:Inter;font-size:18px;font-weight:700}.signup-modal .signup-container .is-half{width:49%}.signup-modal .signup-container__twoFields{display:flex;justify-content:space-between;margin-top:15px}.signup-modal .signup-container__singleField{margin-top:15px}.signup-modal button{margin-top:10px}.signup-modal .signup-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:10px;outline:none;padding:10px;text-transform:uppercase;width:100%}.signup-modal .signup-action-button button:hover:enabled{background-color:#505050;border-color:#505050}.signup-modal .login{margin-top:10px;text-align:center}.signup-modal .login span{cursor:pointer}.signup-modal .login span:hover{text-decoration:underline}.signup-modal button[disabled]{cursor:unset;opacity:.7}.timer{background-color:#000;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=);background-position:15px;background-repeat:no-repeat;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;margin:0 0 6px;max-width:300px;overflow:hidden;padding:15px 15px 15px 50px;pointer-events:auto;position:absolute;right:15px;width:300px}.timer .close-icon{cursor:pointer;display:flex;position:absolute;right:10px;top:10px}.timer .countdown{font-weight:700;margin-top:10px}.payment_page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif}.payment_page .order_info_section{padding:15px 0}.payment_page .order_info_section .order_info_block{padding-bottom:15px;padding-top:15px}.payment_page .order_info_section .order_info_block .field-underline{border-bottom:1px solid #000;padding-bottom:15px}.payment_page .order_info_section .order_info_block .order_info_title{font-size:14px;font-weight:700;padding-bottom:3px}.payment_page .order_info_section .order_info_block .order_info_text{font-size:16px;line-height:1.15;outline:none}.payment_page .MuiBox-root{margin-left:auto;margin-right:auto;padding:20px;text-align:center}.payment_page .payment_info_label{padding:20px 0;text-align:center}.payment_page .payment_form{color:#fff;padding:20px}.payment_page .payment_form input,.payment_page .payment_form label{color:#fff}.payment_page .payment_button{padding-top:20px;text-align:center}.card_form_inner{background:#232323;border-radius:8px;margin:0 auto 20px;min-width:325px;padding:15px;width:50%}.card_form_inner .card_label_text{color:#fff}.card_form_inner .StripeElement{margin:5px 0 10px}.card_label_text{color:#fff}.payment_button{padding-top:15px;text-align:center}.payment_button button{background-color:#212529;border-radius:8px;color:#fff;cursor:pointer;font-size:26px;padding:15px 30px;transition:opacity .5s;width:200px}.payment_button button:hover{opacity:.7}.disabled-payment-button button{opacity:.3;pointer-events:none;user-select:none}.checkout_error_block{color:#e53935;font-weight:600;padding:15px 0}.zip_element p{margin-bottom:0}.zip_element input{background-color:#000;border:none;color:#fff;font-size:18px;margin-top:5px;outline:none;width:100%}.confirmation-page{margin:0 auto;max-width:1024px}.confirmation-page button{margin-top:inherit}.confirmation-page .strong-text{font-weight:700}.confirmation-page .title{color:#333;font-size:24px;font-weight:600}.confirmation-page .share-message-section{background:#dff0d8;border:1px solid #d6e9c6;border-radius:5px;color:#2c7221;display:flex;flex-direction:column;margin:20px 0;padding:15px}.confirmation-page .main{font-size:15px;font-weight:700}.confirmation-page .helper,.confirmation-page .main{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif}.confirmation-page .helper{font-size:14px;margin-top:5px}.confirmation-page .referral_text_image_section{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.confirmation-page .referral_text_section{margin:10px}.confirmation-page .referral_title_text{color:#f08057;font-size:28px;padding-bottom:10px}.confirmation-page .referral_text{font-size:18px}.confirmation-page .referral_text_image_section img{margin:10px;max-width:200px}.confirmation-page .share_wrapper{column-gap:5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:10px}.confirmation-page .invitation_title{font-size:22px;padding-bottom:12px;padding-top:12px}.confirmation-page .share_section{display:flex;flex-wrap:wrap;justify-content:space-between;margin:0 -10px}.confirmation-page .invitation_section{flex:1 1;padding:0 5px}.confirmation-page .share_buttons{display:grid;flex-wrap:wrap;margin:0 -7px}.confirmation-page .convenient_buttons{margin-top:10px}.confirmation-page .social-media-btns{grid-gap:5px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.confirmation-page .sharing-btn{background-color:#000;flex:1 1;min-width:130px}.confirmation-page .sharing-btn a{text-decoration:none}.confirmation-page .share-by-link{background:#000;color:#fff;padding:10px}.confirmation-page .share-by-link.label{margin:0;padding:0;text-align:left}.confirmation-page .share-btn-inner{align-items:center;background-color:#000;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;padding:0;text-align:left;width:100%}.confirmation-page .share-input{background-color:#fff;border:none;outline:none;padding:5px;text-align:left;width:300px}.confirmation-page .share-text{display:block;font-size:13px;font-weight:600;padding-top:8px;width:100%}.confirmation-page .pricing-section_wrapper{background:#e3e3e3;border:1px solid #dcdcdc;display:grid;grid-template-columns:1fr 1fr;margin:10px 0;padding:15px}.confirmation-page .pricing-section_label{font-weight:600}.confirmation-page .pricing-section_sublabel{font-size:14px;font-weight:100}.confirmation-page .pricing-section_price{font-weight:600;text-align:right}.confirmation-page .share-by-link-copy-icon{align-items:center;background-color:#32325d;border-radius:4px;color:#fff;cursor:pointer;display:flex;justify-content:center;margin-left:8px;padding:10px;transition:all .15s ease}.confirmation-page .share-by-link-copy-icon:hover{background-color:#505050}.confirmation-page .share-by-link-copy-icon img{width:14px}.confirmation-page .social-media-sharing{background-color:#000;color:#fff;cursor:pointer;padding:10px;text-align:center}.confirmation-page .share-icon{border-radius:4px;display:inline-flex}@media only screen and (max-width:1050px){.confirmation-page .share_wrapper{column-gap:0;display:grid;grid-template-columns:unset;margin:15px}}@media only screen and (max-width:480px){.confirmation-page .social-media-btns{grid-template-columns:unset}.confirmation-page .share-input{width:250px}}body{margin:0;padding:0}.get-tickets-page{width:100%}.event-detail__tier{background-color:#fff;padding:17px 35px 20px}.event-detail__tier-name{color:#000;font-family:Inter-Bold;font-family:Bebas Neue;font-size:.85rem;font-weight:700;letter-spacing:.2em;line-height:1.3;margin-bottom:8px;margin-top:16px;padding-right:20%;text-transform:uppercase}.event-detail__tier-status{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-top:8px;width:100%}.event-detail__tier-status.ticket-button{background-color:#212529;border:3px solid #000;border-radius:0;color:#fff;cursor:pointer;font-weight:700;letter-spacing:.2em;line-height:1.5;margin-bottom:10px;width:200px}.event-tickets-container{align-items:center;display:flex;justify-content:space-between}.event-detail__tier-status.ticket-button.true{background-color:#c1c3c6;border-color:#afb0b1}.event-detail__tier-price{color:#000;font-family:Inter-Bold;font-size:1.5rem;line-height:1;text-align:center}.event-detail__tier-price p{margin:0}.event-detail__tier-price .fees{font-size:14px;margin-top:4px;text-align:left}.event-detail__tier-price .old-price{color:red;font-size:1.3rem;margin-bottom:5px;text-decoration:line-through}.alert-info{align-items:center;background-color:#d9edf7;border:1px solid #bce8f1;border-radius:4px;color:#3a87ad;display:flex;font-size:1em;justify-content:center;margin:0 35px;padding:8px 15px;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.alert-info svg{margin-right:4px}.event-detail__tier-state{color:#30bc9d;font-family:Inter-Bold;font-size:.75rem;font-weight:300;line-height:1;text-align:right;text-transform:uppercase}.event-detail__tier-state .ticket-not-started-message{color:#000;text-align:left;text-transform:none;width:50px}.promo-code-block input{font-size:14px;padding:1px 8px}.book-button{background-color:#212529;border:3px solid #000;border-radius:0;color:#fff;cursor:pointer;display:block;font-size:26px;font-weight:700;height:50px;letter-spacing:.2em;line-height:1.5;margin:25px auto 10px;text-align:center;width:100%}.book-button:hover{background-color:#505050;border-color:#505050}.loader-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.get-tickets-paper::-webkit-scrollbar{width:5px}.get-tickets-paper::-webkit-scrollbar-track{background:#f1f1f1}.get-tickets-paper::-webkit-scrollbar-thumb{background:#888}.get-tickets-paper::-webkit-scrollbar-thumb:hover{background:#555}.get-tickets .get-tickets__selectbox{width:100%}.disabled{pointer-events:none;user-select:none}.hidden{display:none}.event-closed-message{font-family:Bebas Neue;letter-spacing:.5px}.countdown p{margin:0}.countdown .title{font-weight:700}.countdown .message{font-weight:700;margin-top:20px}.waiting-list{padding:17px 35px 20px}.waiting-list .field-item{margin-bottom:30px}.waiting-list .waiting-list-button{width:100%!important}.waiting-list .waiting-list-button:hover{background-color:#505050}.waiting-list .success-message{margin-bottom:15px;text-align:center}.waiting-list .success-message p{margin:0}.waiting-list .no-tickets-text{font-weight:700;text-align:center}.waiting-list .added-success-message{font-size:22px;margin-bottom:10px}.my-ticket{padding:30px}.my-ticket-table{margin-top:30px}.my-ticket .loading{background-color:rgba(0,0,0,.4);height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100%}.my-ticket .event-info,.my-ticket .loading{align-items:center;display:flex}.my-ticket thead th{font-weight:700}.my-ticket .event-info img{margin-right:10px;width:50px}.my-ticket .order-details-button{background-color:#32325d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 14px;transition:all .15s ease}.my-ticket .order-details-button:hover{background-color:#505050}.order-details{margin:0 auto;max-width:940px}.order-details .loading{align-items:center;background-color:rgba(0,0,0,.4);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1400}.order-details .layout-title{font-size:24px;font-weight:400}.order-details .sub-title{font-size:18px;font-weight:400;margin:10px 0}.order-details .order-summary-box{margin-top:30px}.order-details .total-row td,.order-details th{color:#fff;font-weight:700}.order-details .tickets-box{margin-top:30px}.order-details .ticket-add-on-table{background-color:#fcf8e3}.order-details .action-button{background-color:#212529;border:1px solid #fff;border-radius:0;color:#fff;cursor:pointer;display:block;font-family:Bebas Neue;font-size:14px;font-weight:400;line-height:normal;margin-bottom:20px;margin-top:20px;min-height:auto;outline:none;overflow:hidden;padding:12px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:max-content}.order-details .download-button:hover{background-color:#505050}.order-details .personal-link{padding:20px 0}.order-details .total-referrer{padding:0 0 20px}.resale-modal .field-box{display:flex;margin-bottom:10px}.resale-modal .field-box .icon{align-items:center;display:flex;height:56px;justify-content:center;min-width:44px}.resale-modal .field-box .empty-box{min-width:44px}.resale-modal .resale-action-button button{background-color:#212529;color:#fff;cursor:pointer;width:100%}.resale-modal .resale-action-button button[disabled]{opacity:.7}.resale-modal .resale-action-button button:hover{background-color:#505050;border-color:#505050;width:100%}.reset-password{margin:0 auto;max-width:300px;padding:14px}.reset-password .title{font-size:20px;font-weight:700}.reset-password .field-item{margin-top:14px}.reset-password .action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:14px;outline:none;padding:10px;text-transform:uppercase;width:100%}.reset-password .action-button button:hover:enabled{background-color:#505050;border-color:#505050}.reset-password .action-button button[disabled]{cursor:unset;opacity:.7}
1
+ .button-container{display:flex;justify-content:center;padding:20px}.billing-info-container{margin:0 auto;max-width:800px}.billing-info-container .is-half{width:49%}.billing-info-container p{color:#000}.billing-info-container .main-header{font-size:2rem;font-weight:600}.billing-info-container__twoFields{display:flex;justify-content:space-between;margin-top:15px}.billing-info-container__singleField{margin-top:15px}button{margin-top:10px}.account-actions-block{color:#182026;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif;margin-top:10px}.MuiButtonBase-root.MuiButton-root,.MuiButtonBase-root.MuiButton-root:hover,.login-register-button{background-color:#212529;border:#f28051;border-radius:5px;color:#fff;cursor:pointer;display:block;font-family:Inter-Bold;font-size:26px;font-weight:700;line-height:1.15;margin-top:10px;min-height:46px;outline:none;overflow:hidden;padding:14px 12px 12px;position:relative;text-align:center;text-overflow:ellipsis;text-transform:uppercase;width:49%}.logo-image-container{margin-top:5px;text-align:center;width:49%}.logo-image-container img{height:30px}.login-block{align-items:center;display:flex;flex-direction:column}.login-register-button:hover{background-color:#505050!important;border-color:#505050!important}.login-register-block{display:flex;justify-content:space-between}@media only screen and (max-width:820px){.billing-info-container{width:90%}.billing-info-container .main-header{font-size:1.5rem}}.email-checking{margin-bottom:15px}.forgot-password-modal .forgot-password-container{margin:0 auto;max-width:800px}.forgot-password-modal .title{background-color:#fff;font-family:Inter;font-size:18px;font-weight:700}.forgot-password-modal .forgot-password-container__singleField{margin-top:15px}.forgot-password-modal .forgot-password-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:10px;outline:none;padding:10px;text-transform:uppercase;width:100%}.forgot-password-modal .forgot-password-action-button button:hover:enabled{background-color:#505050;border-color:#505050}.forgot-password-modal .login{margin-top:10px;text-align:center}.forgot-password-modal .login span{cursor:pointer}.forgot-password-modal .login span:hover{text-decoration:underline}.forgot-password-modal button[disabled]{cursor:unset;opacity:.7}.modal-title{align-items:center;background-color:#fff;display:flex;font-family:Inter;font-size:18px;font-weight:700;height:49px;line-height:22px;padding-left:25px;position:relative}.login-modal-body{padding:15px 25px}.login-modal-body input{background:#fff!important}.login-modal-body__email,.login-modal-body__password{margin-bottom:20px}.login-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin:10px 0;outline:none;padding:10px;width:100%}.login-action-button button:hover{background-color:#505050;border-color:#505050}.server_auth__error{color:red;font-family:Inter;font-size:12px;font-style:normal;padding-left:25px;padding-top:15px}.info-text-for-login{font-size:14px;margin-bottom:4px;padding-left:10px}.forgot-password{text-align:center}.forgot-password span{cursor:pointer}.forgot-password span:hover{text-decoration:underline}.signup-modal .signup-container{margin:0 auto;max-width:800px}.signup-modal .title{background-color:#fff;font-family:Inter;font-size:18px;font-weight:700}.signup-modal .signup-container .is-half{width:49%}.signup-modal .signup-container__twoFields{display:flex;justify-content:space-between;margin-top:15px}.signup-modal .signup-container__singleField{margin-top:15px}.signup-modal button{margin-top:10px}.signup-modal .signup-action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:10px;outline:none;padding:10px;text-transform:uppercase;width:100%}.signup-modal .signup-action-button button:hover:enabled{background-color:#505050;border-color:#505050}.signup-modal .login{margin-top:10px;text-align:center}.signup-modal .login span{cursor:pointer}.signup-modal .login span:hover{text-decoration:underline}.signup-modal button[disabled]{cursor:unset;opacity:.7}.timer{background-color:#000;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=);background-position:15px;background-repeat:no-repeat;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#fff;margin:0 0 6px;max-width:300px;overflow:hidden;padding:15px 15px 15px 50px;pointer-events:auto;position:absolute;right:15px;width:300px}.timer .close-icon{cursor:pointer;display:flex;position:absolute;right:10px;top:10px}.timer .countdown{font-weight:700;margin-top:10px}.payment_page{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif}.payment_page .order_info_section{padding:15px 0}.payment_page .order_info_section .order_info_block{padding-bottom:15px;padding-top:15px}.payment_page .order_info_section .order_info_block .field-underline{border-bottom:1px solid #000;padding-bottom:15px}.payment_page .order_info_section .order_info_block .order_info_title{font-size:14px;font-weight:700;padding-bottom:3px}.payment_page .order_info_section .order_info_block .order_info_text{font-size:16px;line-height:1.15;outline:none}.payment_page .MuiBox-root{margin-left:auto;margin-right:auto;padding:20px;text-align:center}.payment_page .payment_info_label{padding:20px 0;text-align:center}.payment_page .payment_form{color:#fff;padding:20px}.payment_page .payment_form input,.payment_page .payment_form label{color:#fff}.payment_page .payment_button{padding-top:20px;text-align:center}.card_form_inner{background:#232323;border-radius:8px;margin:0 auto 20px;min-width:325px;padding:15px;width:50%}.card_form_inner .card_label_text{color:#fff}.card_form_inner .StripeElement{margin:5px 0 10px}.card_label_text{color:#fff}.payment_button{padding-top:15px;text-align:center}.payment_button button{background-color:#212529;border-radius:8px;color:#fff;cursor:pointer;font-size:26px;padding:15px 30px;transition:opacity .5s;width:200px}.payment_button button:hover{opacity:.7}.disabled-payment-button button{opacity:.3;pointer-events:none;user-select:none}.checkout_error_block{color:#e53935;font-weight:600;padding:15px 0}.zip_element p{margin-bottom:0}.zip_element input{background-color:#000;border:none;color:#fff;font-size:18px;margin-top:5px;outline:none;width:100%}.confirmation-page{margin:0 auto;max-width:1024px}.confirmation-page button{margin-top:inherit}.confirmation-page .strong-text{font-weight:700}.confirmation-page .title{color:#333;font-size:24px;font-weight:600}.confirmation-page .share-message-section{background:#dff0d8;border:1px solid #d6e9c6;border-radius:5px;color:#2c7221;display:flex;flex-direction:column;margin:20px 0;padding:15px}.confirmation-page .main{font-size:15px;font-weight:700}.confirmation-page .helper,.confirmation-page .main{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,Icons16,sans-serif}.confirmation-page .helper{font-size:14px;margin-top:5px}.confirmation-page .referral_text_image_section{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin:20px 0}.confirmation-page .referral_text_section{margin:10px}.confirmation-page .referral_title_text{color:#f08057;font-size:28px;padding-bottom:10px}.confirmation-page .referral_text{font-size:18px}.confirmation-page .referral_text_image_section img{margin:10px;max-width:200px}.confirmation-page .share_wrapper{column-gap:5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:10px}.confirmation-page .invitation_title{font-size:22px;padding-bottom:12px;padding-top:12px}.confirmation-page .share_section{display:flex;flex-wrap:wrap;justify-content:space-between;margin:0 -10px}.confirmation-page .invitation_section{flex:1 1;padding:0 5px}.confirmation-page .share_buttons{display:grid;flex-wrap:wrap;margin:0 -7px}.confirmation-page .convenient_buttons{margin-top:10px}.confirmation-page .social-media-btns{grid-gap:5px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.confirmation-page .sharing-btn{background-color:#000;flex:1 1;min-width:130px}.confirmation-page .sharing-btn a{text-decoration:none}.confirmation-page .share-by-link{background:#000;color:#fff;padding:10px}.confirmation-page .share-by-link.label{margin:0;padding:0;text-align:left}.confirmation-page .share-btn-inner{align-items:center;background-color:#000;box-sizing:border-box;color:#fff;cursor:pointer;display:inline-flex;padding:0;text-align:left;width:100%}.confirmation-page .share-input{background-color:#fff;border:none;outline:none;padding:5px;text-align:left;width:300px}.confirmation-page .share-text{display:block;font-size:13px;font-weight:600;padding-top:8px;width:100%}.confirmation-page .pricing-section_wrapper{background:#e3e3e3;border:1px solid #dcdcdc;display:grid;grid-template-columns:1fr 1fr;margin:10px 0;padding:15px}.confirmation-page .pricing-section_label{font-weight:600}.confirmation-page .pricing-section_sublabel{font-size:14px;font-weight:100}.confirmation-page .pricing-section_price{font-weight:600;text-align:right}.confirmation-page .share-by-link-copy-icon{align-items:center;background-color:#32325d;border-radius:4px;color:#fff;cursor:pointer;display:flex;justify-content:center;margin-left:8px;padding:10px;transition:all .15s ease}.confirmation-page .share-by-link-copy-icon:hover{background-color:#505050}.confirmation-page .share-by-link-copy-icon img{width:14px}.confirmation-page .social-media-sharing{background-color:#000;color:#fff;cursor:pointer;padding:10px;text-align:center}.confirmation-page .share-icon{border-radius:4px;display:inline-flex}@media only screen and (max-width:1050px){.confirmation-page .share_wrapper{column-gap:0;display:grid;grid-template-columns:unset;margin:15px}}@media only screen and (max-width:480px){.confirmation-page .social-media-btns{grid-template-columns:unset}.confirmation-page .share-input{width:250px}}body{margin:0;padding:0}.event-detail__tier{background-color:#fff;padding:17px 35px 20px}.event-detail__tier-name{color:#000;font-family:Inter-Bold;font-family:Bebas Neue;font-size:.85rem;font-weight:700;letter-spacing:.2em;line-height:1.3;margin-bottom:8px;margin-top:16px;padding-right:20%;text-transform:uppercase}.event-detail__tier-status{align-items:center;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-top:8px;width:100%}.event-detail__tier-status.ticket-button{background-color:#212529;border:3px solid #000;border-radius:0;color:#fff;cursor:pointer;font-weight:700;letter-spacing:.2em;line-height:1.5;margin-bottom:10px;width:200px}.event-tickets-container{align-items:center;display:flex;justify-content:space-between}.event-detail__tier-status.ticket-button.true{background-color:#c1c3c6;border-color:#afb0b1}.event-detail__tier-price{color:#000;font-family:Inter-Bold;font-size:1.5rem;line-height:1;text-align:center}.event-detail__tier-price p{margin:0}.event-detail__tier-price .fees{font-size:14px;margin-top:4px;text-align:left}.event-detail__tier-price .old-price{color:red;font-size:1.3rem;margin-bottom:5px;text-decoration:line-through}.alert-info{align-items:center;background-color:#d9edf7;border:1px solid #bce8f1;border-radius:4px;color:#3a87ad;display:flex;font-size:1em;justify-content:center;margin:0 35px;padding:8px 15px;text-shadow:0 1px 0 hsla(0,0%,100%,.5)}.alert-info svg{margin-right:4px}.event-detail__tier-state{color:#30bc9d;font-family:Inter-Bold;font-size:.75rem;font-weight:300;line-height:1;text-align:right;text-transform:uppercase}.event-detail__tier-state .ticket-not-started-message{color:#000;text-align:left;text-transform:none;width:50px}.promo-code-block input{font-size:14px;padding:1px 8px}.book-button{background-color:#212529;border:3px solid #000;border-radius:0;color:#fff;cursor:pointer;display:block;font-size:26px;font-weight:700;height:50px;letter-spacing:.2em;line-height:1.5;margin:25px auto 10px;text-align:center;width:100%}.book-button:hover{background-color:#505050;border-color:#505050}.loader-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.get-tickets-paper::-webkit-scrollbar{width:5px}.get-tickets-paper::-webkit-scrollbar-track{background:#f1f1f1}.get-tickets-paper::-webkit-scrollbar-thumb{background:#888}.get-tickets-paper::-webkit-scrollbar-thumb:hover{background:#555}.get-tickets .get-tickets__selectbox{width:100%}.disabled{pointer-events:none;user-select:none}.hidden{display:none}.event-closed-message{font-family:Bebas Neue;letter-spacing:.5px}.countdown p{margin:0}.countdown .title{font-weight:700}.countdown .message{font-weight:700;margin-top:20px}.waiting-list{padding:17px 35px 20px}.waiting-list .field-item{margin-bottom:30px}.waiting-list .waiting-list-button{width:100%!important}.waiting-list .waiting-list-button:hover{background-color:#505050}.waiting-list .success-message{margin-bottom:15px;text-align:center}.waiting-list .success-message p{margin:0}.waiting-list .no-tickets-text{font-weight:700;text-align:center}.waiting-list .added-success-message{font-size:22px;margin-bottom:10px}.my-ticket{padding:30px}.my-ticket-table{margin-top:30px}.my-ticket .loading{background-color:rgba(0,0,0,.4);height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100%}.my-ticket .event-info,.my-ticket .loading{align-items:center;display:flex}.my-ticket thead th{font-weight:700}.my-ticket .event-info img{margin-right:10px;width:50px}.my-ticket .order-details-button{background-color:#32325d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:10px 14px;transition:all .15s ease}.my-ticket .order-details-button:hover{background-color:#505050}.order-details{margin:0 auto;max-width:940px}.order-details .loading{align-items:center;background-color:rgba(0,0,0,.4);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1400}.order-details .layout-title{font-size:24px;font-weight:400}.order-details .sub-title{font-size:18px;font-weight:400;margin:10px 0}.order-details .order-summary-box{margin-top:30px}.order-details .total-row td,.order-details th{color:#fff;font-weight:700}.order-details .tickets-box{margin-top:30px}.order-details .ticket-add-on-table{background-color:#fcf8e3}.order-details .action-button{background-color:#212529;border:1px solid #fff;border-radius:0;color:#fff;cursor:pointer;display:block;font-family:Bebas Neue;font-size:14px;font-weight:400;line-height:normal;margin-bottom:20px;margin-top:20px;min-height:auto;outline:none;overflow:hidden;padding:12px;position:relative;text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:max-content}.order-details .download-button:hover{background-color:#505050}.order-details .personal-link{padding:20px 0}.order-details .total-referrer{padding:0 0 20px}.resale-modal .field-box{display:flex;margin-bottom:10px}.resale-modal .field-box .icon{align-items:center;display:flex;height:56px;justify-content:center;min-width:44px}.resale-modal .field-box .empty-box{min-width:44px}.resale-modal .resale-action-button button{background-color:#212529;color:#fff;cursor:pointer;width:100%}.resale-modal .resale-action-button button[disabled]{opacity:.7}.resale-modal .resale-action-button button:hover{background-color:#505050;border-color:#505050;width:100%}.reset-password{margin:0 auto;max-width:300px;padding:14px}.reset-password .title{font-size:20px;font-weight:700}.reset-password .field-item{margin-top:14px}.reset-password .action-button button{background-color:#212529;border:none;border-radius:0;color:#fff;cursor:pointer;font-size:26px;font-weight:600;height:45px;line-height:18px;margin-top:14px;outline:none;padding:10px;text-transform:uppercase;width:100%}.reset-password .action-button button:hover:enabled{background-color:#505050;border-color:#505050}.reset-password .action-button button[disabled]{cursor:unset;opacity:.7}
@@ -1,10 +1,13 @@
1
1
  import { IAddOn } from './add_on';
2
2
  export interface IOrderData {
3
+ id: string;
3
4
  product_name: string;
4
5
  ticketType: string;
5
6
  quantity: string;
6
7
  price: string;
7
8
  total: string;
8
9
  currency: string;
10
+ guest_count: string;
11
+ pay_now: string;
9
12
  add_ons: IAddOn[];
10
13
  }
@@ -1,12 +1,19 @@
1
+ declare type Type1 = string | number | null | undefined;
1
2
  interface ICheckoutBody {
2
3
  attributes: {
3
- [key: string]: any;
4
+ [key: string]: Type1 | Record<string | number, Type1> | Array<Type1 | IticketHolder>;
4
5
  };
5
6
  }
7
+ interface IticketHolder {
8
+ first_name?: string;
9
+ last_name?: string;
10
+ phone?: string;
11
+ email?: string;
12
+ }
6
13
  interface IUserCredentialsValues {
7
14
  emailLogged?: string;
8
15
  firstNameLogged?: string;
9
16
  lastNameLogged?: string;
10
17
  }
11
- export declare const createCheckoutDataBodyWithDefaultHolder: (ticketsQuantity: number, logedInValues: {}, includeDob?: boolean, userCredentials?: IUserCredentialsValues) => ICheckoutBody;
18
+ export declare const createCheckoutDataBodyWithDefaultHolder: (ticketsQuantity: number, logedInValues: Record<string, string | undefined>, includeDob?: boolean, userCredentials?: IUserCredentialsValues) => ICheckoutBody;
12
19
  export {};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.50",
2
+ "version": "1.4.0",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -20,7 +20,8 @@
20
20
  "analyze": "size-limit --why",
21
21
  "release:beta": "npm version $(semver $(npm info $(npm info . name) version) -i prerelease --preid beta)",
22
22
  "release:patch": "npm version $(semver $(npm info $(npm info . name) version) -i patch)",
23
- "release:minor": "npm version $(semver $(npm info $(npm info . name) version) -i minor)"
23
+ "release:minor": "npm version $(semver $(npm info $(npm info . name) version) -i minor)",
24
+ "start-example": "PORT=3002 parcel example/index.html --dist-dir example-dist --no-cache"
24
25
  },
25
26
  "peerDependencies": {
26
27
  "react": ">=16"
@@ -67,6 +68,8 @@
67
68
  "eslint-plugin-unused-imports": "^2.0.0",
68
69
  "eslint-webpack-plugin": "^3.2.0",
69
70
  "husky": "^7.0.4",
71
+ "parcel": "^2.8.2",
72
+ "process": "^0.11.10",
70
73
  "react": "^17.0.2",
71
74
  "react-dom": "^17.0.2",
72
75
  "rollup-plugin-postcss": "^4.0.1",
@@ -79,7 +82,9 @@
79
82
  "dependencies": {
80
83
  "@emotion/react": "^11.7.0",
81
84
  "@emotion/styled": "^11.6.0",
85
+ "@fortawesome/fontawesome-svg-core": "^6.1.1",
82
86
  "@mui/material": "^5.2.2",
87
+ "@mui/private-theming": "^5.11.1",
83
88
  "@mui/styles": "^5.2.2",
84
89
  "@mui/x-date-pickers": "^5.0.1",
85
90
  "@stripe/react-stripe-js": "^1.6.0",
@@ -98,7 +103,10 @@
98
103
  "react-countdown": "^2.3.2",
99
104
  "react-inlinesvg": "^2.3.0",
100
105
  "react-share": "^4.4.0",
101
- "rollup-plugin-svg": "^2.0.0",
102
- "yup": "^0.32.11"
106
+ "tf-seat-map-view": "9.4.7-beta.20",
107
+ "yup": "^0.32.11",
108
+ "react-app-polyfill": "^1.0.0",
109
+ "react-router-dom": "^6.0.2",
110
+ "rollup-plugin-svg": "^2.0.0"
103
111
  }
104
112
  }
package/src/.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- declare module '*.css';
2
- declare module '*.png';
3
- declare module '*.svg';
1
+ declare module '*.css'
2
+ declare module '*.png'
3
+ declare module '*.svg';
4
+ declare module 'tf-seat-map-view'
package/src/api/index.ts CHANGED
@@ -87,7 +87,7 @@ publicRequest.interceptors.request.use((config: AxiosRequestConfig) => {
87
87
  config.headers = updatedHeaders
88
88
  }
89
89
 
90
- const additionalCookiesHeaderValue = '' //document.cookie ?? ''
90
+ const additionalCookiesHeaderValue = document.cookie ?? ''
91
91
  if (additionalCookiesHeaderValue !== '') {
92
92
  const updatedHeaders = {
93
93
  ...config.headers,
@@ -189,7 +189,7 @@ export function getEvent(id: string | number, pk?: string) {
189
189
 
190
190
  export function getTickets(
191
191
  id: string | number,
192
- promoCode: string,
192
+ promoCode?: string,
193
193
  pk?: string
194
194
  ) {
195
195
  const invitationHash = getQueryVariable('invitation-hash')
@@ -204,10 +204,10 @@ export function getTickets(
204
204
  params,
205
205
  headers: promoCode
206
206
  ? {
207
- ...ttfHeaders,
208
- 'Promotion-Event': String(id),
209
- 'Promotion-Code': promoCode,
210
- }
207
+ ...ttfHeaders,
208
+ 'Promotion-Event': String(id),
209
+ 'Promotion-Code': promoCode,
210
+ }
211
211
  : { ...ttfHeaders },
212
212
  })
213
213
  .catch(error => {
@@ -414,6 +414,80 @@ export const getCheckoutPageConfigs = async () => {
414
414
  return response.data
415
415
  }
416
416
 
417
+ // seat map <--start-->
418
+
419
+ // const makeId = (length = 20) => {
420
+ // let result = ''
421
+ // const characters =
422
+ // 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
423
+ // const charactersLength = characters.length
424
+ // for (let i = 0; i < length; i++) {
425
+ // result += characters.charAt(Math.floor(Math.random() * charactersLength))
426
+ // }
427
+ // return result
428
+ // }
429
+
430
+ export const getSeatMapData = async (
431
+ eventId: string | number
432
+ ): Promise<SeatMapDataResponse> => {
433
+ localStorage.setItem('tierId', '')
434
+ const reservedSeatsHash = getQueryVariable('reserved_seats_hash')
435
+ const params = {} as any
436
+ if (reservedSeatsHash) {
437
+ params.reserved_seats_hash = reservedSeatsHash
438
+ }
439
+
440
+ const response: AxiosResponse<
441
+ SeatMapDataResponse,
442
+ AxiosRequestConfig
443
+ > = await publicRequest.get(`v1/event/${eventId}/seat-map-data`, { params })
444
+ return response.data
445
+ }
446
+
447
+ export const getSeatMapStatuses = async (
448
+ eventId: string | number
449
+ ): Promise<SeatMapStatusesResponse> => {
450
+ const response = await publicRequest.get(`v1/event/${eventId}/seats/status`)
451
+ return response.data
452
+ }
453
+
454
+ export const reserveSeat = async (
455
+ eventId: string | number,
456
+ tierId: string,
457
+ seatId: string
458
+ ) => {
459
+ const response = await publicRequest.post(
460
+ `v1/event/${eventId}/seats/reserve`,
461
+ {
462
+ data: {
463
+ tierId,
464
+ seatId,
465
+ ttl: 10,
466
+ },
467
+ }
468
+ )
469
+ return response.data
470
+ }
471
+
472
+ export const removeSeatReserve = async (
473
+ eventId: string | number,
474
+ tierId: string,
475
+ seatIds: string[]
476
+ ) => {
477
+ const response = await publicRequest.delete(
478
+ `v1/event/${eventId}/seats/delete-reserved`,
479
+ {
480
+ data: {
481
+ tierId,
482
+ seatIds,
483
+ },
484
+ }
485
+ )
486
+
487
+ return response.data
488
+ }
489
+
490
+ // seat map <--end-->
417
491
  export function getPixelScript(id: string | number, pageOptions: pageOptions) {
418
492
  const response = publicRequest.get(`v1/event/${id}/track`, {
419
493
  params: {
@@ -459,3 +533,12 @@ export const updateVerificationStatus = async (): Promise<{
459
533
  })
460
534
  return response.data
461
535
  }
536
+
537
+ export const checkCustomerOrder = async (orderHash: string): Promise<any> => {
538
+ const response: AxiosResponse<
539
+ any,
540
+ AxiosRequestConfig
541
+ > = await publicRequest.get(`v1/order/${orderHash}/verify-customer-order`)
542
+
543
+ return response.data
544
+ }
@@ -300,6 +300,7 @@ export const BillingInfoContainer = React.memo(
300
300
  zip: '',
301
301
  })
302
302
  const [loading, setLoading] = useState(true)
303
+ const [cardLoading, setCardLoading] = useState(false)
303
304
  const [isCountriesLoading, setIsCountriesLoading] = useState(true)
304
305
  const [error, setError] = useState(null)
305
306
  const [phoneValidationIsLoading, setPhoneValidationIsLoading] = useState(
@@ -318,6 +319,7 @@ export const BillingInfoContainer = React.memo(
318
319
  ? brandOptIn
319
320
  : _get(cartInfoData, 'optedIn', false)
320
321
  const ttfOptIn = Boolean(_get(cartInfoData, 'ttfOptIn', false))
322
+ const isTable = Boolean(_get(cartInfoData, 'is_table', false))
321
323
  const hideTtfOptIn: boolean = _get(cartInfoData, 'hide_ttf_opt_in', true)
322
324
  const expirationTime = _get(cartInfoData, 'expiresAt')
323
325
  const flagRequirePhone = getQueryVariable('phone_required') === 'true'
@@ -390,6 +392,7 @@ export const BillingInfoContainer = React.memo(
390
392
  // fetch cart data
391
393
  const fetchCart = async () => {
392
394
  try {
395
+ setCardLoading(true)
393
396
  const res = await getCart()
394
397
  setCustomHeader(res)
395
398
  const cartInfo = _get(res, 'data.data.attributes')
@@ -403,6 +406,8 @@ export const BillingInfoContainer = React.memo(
403
406
  if (axios.isAxiosError(e)) {
404
407
  onGetCartError(e)
405
408
  }
409
+ } finally {
410
+ setCardLoading(false)
406
411
  }
407
412
  }
408
413
  // fetch user data
@@ -530,10 +535,12 @@ export const BillingInfoContainer = React.memo(
530
535
 
531
536
  const pageUrl = isBrowser ? window.location.href.split('?')[0] : ''
532
537
  usePixel(eventId, { page: 'billing', pageUrl })
533
-
538
+ if (isTable) {
539
+ dataWithUniqueIds[0].label = 'Get Your Tables'
540
+ }
534
541
  return (
535
542
  <ThemeProvider theme={themeMui}>
536
- {(loading || isCountriesLoading) && (
543
+ {(loading || cardLoading || isCountriesLoading) && (
537
544
  <Backdrop
538
545
  sx={{ color: '#fff', backgroundColor: '#000000bd', zIndex: 1205 }}
539
546
  open={true}
@@ -789,117 +796,122 @@ export const BillingInfoContainer = React.memo(
789
796
  </div>
790
797
  </div>
791
798
  )}
792
- {_map(dataWithUniqueIds, item => {
793
- const { label, labelClassName, fields } = item
794
- return (
795
- <React.Fragment key={item.uniqueId}>
796
- <p className={labelClassName}>{label}</p>
797
- {_map(fields, group => {
798
- const { groupClassname, groupItems } = group
799
- return (
800
- <React.Fragment key={group.uniqueId}>
801
- <div className={groupClassname}>
802
- {_map(
803
- groupItems.filter(el => {
804
- if (el.name === 'holderAge' && !showDOB) {
805
- return false
806
- }
807
- if (
808
- el.name === 'ttf_opt_in' &&
809
- hideTtfOptIn
810
- ) {
811
- return false
812
- }
813
- if (el.name === 'phone') {
814
- if (!hidePhoneField) {
815
- el.required = flagRequirePhone
816
- } else {
799
+ {!cardLoading &&
800
+ _map(dataWithUniqueIds, item => {
801
+ const { label, labelClassName, fields } = item
802
+ return (
803
+ <React.Fragment key={item.uniqueId}>
804
+ <p className={labelClassName}>{label}</p>
805
+ {_map(fields, group => {
806
+ const { groupClassname, groupItems } = group
807
+ return (
808
+ <React.Fragment key={group.uniqueId}>
809
+ <div className={groupClassname}>
810
+ {_map(
811
+ groupItems.filter(el => {
812
+ if (el.name === 'holderAge' && !showDOB) {
817
813
  return false
818
814
  }
819
- }
820
- if (
821
- el.name === 'data_capture[wallet_address]'
822
- ) {
823
- if (collectMandatoryWalletAddress) {
824
- el.required = true
815
+ if (
816
+ el.name === 'ttf_opt_in' &&
817
+ hideTtfOptIn
818
+ ) {
819
+ return false
825
820
  }
826
- }
827
- if (
828
- [
829
- 'street_address',
830
- 'country',
831
- 'state',
832
- 'city',
833
- 'zip',
834
- ].includes(el.name)
835
- ) {
836
- if (flagFreeTicket) {
837
- el.required = false
821
+ if (el.name === 'phone') {
822
+ if (!hidePhoneField) {
823
+ el.required = flagRequirePhone
824
+ } else {
825
+ return false
826
+ }
827
+ }
828
+ if (
829
+ el.name ===
830
+ 'data_capture[wallet_address]'
831
+ ) {
832
+ if (collectMandatoryWalletAddress) {
833
+ el.required = true
834
+ }
835
+ }
836
+ if (
837
+ [
838
+ 'street_address',
839
+ 'country',
840
+ 'state',
841
+ 'city',
842
+ 'zip',
843
+ ].includes(el.name)
844
+ ) {
845
+ if (flagFreeTicket) {
846
+ el.required = false
847
+ return false
848
+ }
849
+ }
850
+ if (
851
+ hideWalletAddressField &&
852
+ el.name === 'wallet-address-info'
853
+ ) {
838
854
  return false
839
855
  }
840
- }
841
- if (
842
- hideWalletAddressField &&
843
- el.name === 'wallet-address-info'
844
- ) {
845
- return false
846
- }
847
- return true
848
- }),
849
- element =>
850
- [
851
- 'password',
852
- 'confirmPassword',
853
- 'password-info',
854
- ].includes(element.name) &&
855
- isLoggedIn ? null : [
856
- 'data_capture[wallet_address]',
856
+ return true
857
+ }),
858
+ element =>
859
+ [
860
+ 'password',
861
+ 'confirmPassword',
862
+ 'password-info',
857
863
  ].includes(element.name) &&
858
- hideWalletAddressField ? null : (
859
- <React.Fragment key={element.uniqueId}>
860
- <div
861
- className={`${
862
- element.className
863
- } ${props?.errors[element.name] ||
864
- ''}`}
865
- >
866
- {element.component ? (
867
- element.component
868
- ) : (
869
- <Field
870
- {...element}
871
- type={
872
- element.type === 'radio'
873
- ? undefined
874
- : element.type
875
- }
876
- setPhoneValidationIsLoading={
877
- element.type === 'phone'
878
- ? setPhoneValidationIsLoading
879
- : undefined
880
- }
881
- label={getFieldLabel(element)}
882
- validate={getValidateFunctions(
883
- element,
884
- states,
885
- props.values,
886
- props.errors
887
- )}
888
- setFieldValue={
889
- props.setFieldValue
890
- }
891
- onBlur={props.handleBlur}
892
- component={getFieldComponent(
893
- element
894
- )}
895
- selectOptions={
896
- element.name === 'country'
897
- ? _map(countries, item => ({
864
+ isLoggedIn ? null : [
865
+ 'data_capture[wallet_address]',
866
+ ].includes(element.name) &&
867
+ hideWalletAddressField ? null : (
868
+ <React.Fragment key={element.uniqueId}>
869
+ <div
870
+ className={`${
871
+ element.className
872
+ } ${props?.errors[element.name] ||
873
+ ''}`}
874
+ >
875
+ {element.component ? (
876
+ element.component
877
+ ) : (
878
+ <Field
879
+ {...element}
880
+ type={
881
+ element.type === 'radio'
882
+ ? undefined
883
+ : element.type
884
+ }
885
+ setPhoneValidationIsLoading={
886
+ element.type === 'phone'
887
+ ? setPhoneValidationIsLoading
888
+ : undefined
889
+ }
890
+ label={getFieldLabel(element)}
891
+ validate={getValidateFunctions(
892
+ element,
893
+ states,
894
+ props.values,
895
+ props.errors
896
+ )}
897
+ setFieldValue={
898
+ props.setFieldValue
899
+ }
900
+ onBlur={props.handleBlur}
901
+ component={getFieldComponent(
902
+ element
903
+ )}
904
+ selectOptions={
905
+ element.name === 'country'
906
+ ? _map(countries, item => ({
898
907
  value: item.id,
899
908
  label: item.name,
900
909
  }))
901
910
  : element.name === 'state'
902
- ? states
911
+ ? [
912
+ { label: element.label, value: '', disabled: true },
913
+ ...states,
914
+ ]
903
915
  : element.selectOptions || []
904
916
  }
905
917
  theme={theme}
@@ -15,7 +15,6 @@ import {
15
15
  CheckboxField,
16
16
  CustomField,
17
17
  DatePickerField,
18
- NativeSelectField,
19
18
  PhoneNumberField,
20
19
  RadioGroupField,
21
20
  SelectField,
@@ -301,7 +300,7 @@ export const getFieldComponent = (element: IGroupItem) => {
301
300
 
302
301
  const fieldComponentConfigs = {
303
302
  checkbox: CheckboxField,
304
- select: NativeSelectField,
303
+ select: CustomField, // Temp change untill refactoring
305
304
  select_multi: SelectField,
306
305
  phone: PhoneNumberField,
307
306
  date: DatePickerField,
@@ -1,10 +1,8 @@
1
- import React from 'react'
2
1
  import CircularProgress from '@mui/material/CircularProgress'
2
+ import React from 'react'
3
3
 
4
- export function Loader() {
5
- return (
6
- <div className="loader-container">
7
- <CircularProgress />
8
- </div>
9
- )
10
- }
4
+ export const Loader = () => (
5
+ <div className="loader-container">
6
+ <CircularProgress />
7
+ </div>
8
+ )