tf-checkout-react 1.2.0 → 1.2.3
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.
- package/dist/components/billing-info-container/index.d.ts +4 -4
- package/dist/components/common/CheckboxField.d.ts +1 -1
- package/dist/components/common/PhoneNumberField.d.ts +2 -1
- package/dist/components/common/RadioField.d.ts +1 -1
- package/dist/components/paymentContainer/index.d.ts +2 -1
- package/dist/components/stripePayment/index.d.ts +2 -1
- package/dist/components/ticketsContainer/index.d.ts +4 -3
- package/dist/tf-checkout-react.cjs.development.js +1260 -1216
- package/dist/tf-checkout-react.cjs.development.js.map +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js +1 -1
- package/dist/tf-checkout-react.cjs.production.min.js.map +1 -1
- package/dist/tf-checkout-react.esm.js +1401 -1357
- package/dist/tf-checkout-react.esm.js.map +1 -1
- package/dist/tf-checkout-styles.css +1 -1
- package/package.json +1 -1
- package/src/api/index.ts +25 -19
- package/src/components/billing-info-container/index.tsx +97 -57
- package/src/components/common/CheckboxField.tsx +1 -0
- package/src/components/common/PhoneNumberField.tsx +17 -11
- package/src/components/common/RadioField.tsx +1 -0
- package/src/components/orderDetailsContainer/index.tsx +5 -0
- package/src/components/orderDetailsContainer/style.css +4 -0
- package/src/components/paymentContainer/index.tsx +13 -11
- package/src/components/stripePayment/index.tsx +5 -3
- package/src/components/ticketsContainer/index.tsx +73 -46
|
@@ -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}.login-register-button,.MuiButtonBase-root.MuiButton-root,.MuiButtonBase-root.MuiButton-root:hover{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}.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}.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}.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}.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}.countdown p{margin:0}.countdown .title{font-weight:700}.countdown .message{font-weight:700;margin-top:20px}.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}.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%}.confirm-modal .footer{border-top:1px solid #c0bfbf;display:flex;gap:10px;justify-content:flex-end}.confirm-modal .footer button,.confirm-modal .footer button:hover{font-size:12px;min-height:unset;padding:12px 8px;text-transform:unset;width:max-content}.confirm-modal .footer button:hover{background:#505050}.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}.login-register-button,.MuiButtonBase-root.MuiButton-root,.MuiButtonBase-root.MuiButton-root:hover{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%}.confirm-modal .footer{border-top:1px solid #c0bfbf;display:flex;gap:10px;justify-content:flex-end}.confirm-modal .footer button,.confirm-modal .footer button:hover{font-size:12px;min-height:unset;padding:12px 8px;text-transform:unset;width:max-content}.confirm-modal .footer button:hover{background:#505050}.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}
|
package/package.json
CHANGED
package/src/api/index.ts
CHANGED
|
@@ -161,13 +161,14 @@ export const handleSetAccessToken = (token: string) => {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
export function getEvent(id: string | number) {
|
|
164
|
-
let referralValue =
|
|
164
|
+
let referralValue = ''
|
|
165
165
|
if (isWindowDefined) {
|
|
166
166
|
const params = new URL(`${window.location}`)
|
|
167
167
|
const referralId = params.searchParams.get('ttf_r') || ''
|
|
168
168
|
const referral_key = window.localStorage.getItem('referral_key')
|
|
169
|
-
let referralIdlocal =
|
|
169
|
+
let referralIdlocal = ''
|
|
170
170
|
if (referral_key) {
|
|
171
|
+
// eslint-disable-next-line prefer-destructuring
|
|
171
172
|
referralIdlocal = referral_key.split('.')[1]
|
|
172
173
|
}
|
|
173
174
|
referralValue = referralId || referralIdlocal
|
|
@@ -175,10 +176,12 @@ export function getEvent(id: string | number) {
|
|
|
175
176
|
|
|
176
177
|
const response = publicRequest
|
|
177
178
|
.get(`v1/event/${id}`, {
|
|
178
|
-
headers: {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
179
|
+
headers: {
|
|
180
|
+
...ttfHeaders,
|
|
181
|
+
'Referer-Url': isDocumentDefined ? document.referrer : '',
|
|
182
|
+
'Referrer-Id': isWindowDefined ? referralValue : '',
|
|
183
|
+
},
|
|
184
|
+
})
|
|
182
185
|
.catch(error => {
|
|
183
186
|
throw error
|
|
184
187
|
})
|
|
@@ -203,12 +206,15 @@ export function getTickets(id: string | number, promoCode: string) {
|
|
|
203
206
|
}
|
|
204
207
|
|
|
205
208
|
export const addToCart = (id: string | number, data: any) => {
|
|
206
|
-
const res = publicRequest.post(
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
209
|
+
const res = publicRequest.post(
|
|
210
|
+
`v1/event/${id}/add-to-cart/`,
|
|
211
|
+
{ data },
|
|
212
|
+
{
|
|
213
|
+
headers: {
|
|
214
|
+
'Referer-Url': isDocumentDefined ? document.referrer : '',
|
|
215
|
+
},
|
|
210
216
|
}
|
|
211
|
-
|
|
217
|
+
)
|
|
212
218
|
return res
|
|
213
219
|
}
|
|
214
220
|
|
|
@@ -247,8 +253,8 @@ export const getPaymentData = (hash: string) => {
|
|
|
247
253
|
const response = publicRequest
|
|
248
254
|
.get(`v1/order/${hash}/review/`, {
|
|
249
255
|
headers: {
|
|
250
|
-
|
|
251
|
-
}
|
|
256
|
+
'Referer-Url': isDocumentDefined ? document.referrer : '',
|
|
257
|
+
},
|
|
252
258
|
})
|
|
253
259
|
.catch(error => {
|
|
254
260
|
throw error
|
|
@@ -269,10 +275,10 @@ export const handlePaymentData = (orderHash: string, data: any) => {
|
|
|
269
275
|
|
|
270
276
|
export const handlePaymentSuccess = (orderHash: string) => {
|
|
271
277
|
const res = publicRequest
|
|
272
|
-
.post(`v1/order/${orderHash}/success`, {
|
|
278
|
+
.post(`v1/order/${orderHash}/success`, undefined, {
|
|
273
279
|
headers: {
|
|
274
|
-
|
|
275
|
-
}
|
|
280
|
+
'Referer-Url': isDocumentDefined ? document.referrer : '',
|
|
281
|
+
},
|
|
276
282
|
})
|
|
277
283
|
.catch(error => {
|
|
278
284
|
throw error
|
|
@@ -282,10 +288,10 @@ export const handlePaymentSuccess = (orderHash: string) => {
|
|
|
282
288
|
|
|
283
289
|
export const handleFreeSuccess = (orderHash: string) => {
|
|
284
290
|
const res = publicRequest
|
|
285
|
-
.post(`v1/order/${orderHash}/complete_free_registration`, {
|
|
291
|
+
.post(`v1/order/${orderHash}/complete_free_registration`, undefined, {
|
|
286
292
|
headers: {
|
|
287
|
-
|
|
288
|
-
}
|
|
293
|
+
'Referer-Url': isDocumentDefined ? document.referrer : '',
|
|
294
|
+
},
|
|
289
295
|
})
|
|
290
296
|
.catch(error => {
|
|
291
297
|
throw error
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import './style.css'
|
|
2
|
+
|
|
3
|
+
import { CircularProgress, ThemeOptions } from '@mui/material'
|
|
4
|
+
import Backdrop from '@mui/material/Backdrop'
|
|
5
|
+
import Button from '@mui/material/Button'
|
|
6
|
+
import { createTheme, ThemeProvider } from '@mui/material/styles'
|
|
7
|
+
import { CSSProperties } from '@mui/styles'
|
|
8
|
+
import axios, { AxiosError } from 'axios'
|
|
3
9
|
import {
|
|
4
10
|
Field,
|
|
5
11
|
Form,
|
|
@@ -8,29 +14,44 @@ import {
|
|
|
8
14
|
FormikProps,
|
|
9
15
|
FormikValues,
|
|
10
16
|
} from 'formik'
|
|
11
|
-
import Button from '@mui/material/Button'
|
|
12
|
-
import _identity from 'lodash/identity'
|
|
13
|
-
import _map from 'lodash/map'
|
|
14
17
|
import _get from 'lodash/get'
|
|
18
|
+
import _identity from 'lodash/identity'
|
|
15
19
|
import _includes from 'lodash/includes'
|
|
16
|
-
import _isEqual from 'lodash/isEqual'
|
|
17
20
|
import _isEmpty from 'lodash/isEmpty'
|
|
21
|
+
import _isEqual from 'lodash/isEqual'
|
|
22
|
+
import _map from 'lodash/map'
|
|
23
|
+
import { nanoid } from 'nanoid'
|
|
24
|
+
import React, { FC, useEffect, useRef, useState } from 'react'
|
|
18
25
|
|
|
19
|
-
import './style.css'
|
|
20
|
-
import { combineValidators, requiredValidator } from '../../validators'
|
|
21
|
-
import { IBillingInfoData } from '../../types'
|
|
22
26
|
import {
|
|
23
27
|
getCart,
|
|
24
28
|
getCountries,
|
|
25
29
|
getProfileData,
|
|
30
|
+
getStates,
|
|
26
31
|
postOnCheckout,
|
|
27
32
|
register,
|
|
28
33
|
setCustomHeader,
|
|
29
|
-
getStates,
|
|
30
34
|
} from '../../api'
|
|
35
|
+
import { IBillingInfoData } from '../../types'
|
|
36
|
+
import {
|
|
37
|
+
createCheckoutDataBodyWithDefaultHolder,
|
|
38
|
+
getCookieByName,
|
|
39
|
+
} from '../../utils'
|
|
40
|
+
import { ErrorFocus } from '../../utils/formikErrorFocus'
|
|
41
|
+
import { getQueryVariable } from '../../utils/getQueryVariable'
|
|
42
|
+
import { combineValidators, requiredValidator } from '../../validators'
|
|
43
|
+
import { DatePickerField } from '../common/DatePickerField'
|
|
44
|
+
import {
|
|
45
|
+
CheckboxField,
|
|
46
|
+
CustomField,
|
|
47
|
+
PhoneNumberField,
|
|
48
|
+
SelectField,
|
|
49
|
+
} from '../common/index'
|
|
50
|
+
import SnackbarAlert from '../common/SnackbarAlert'
|
|
51
|
+
import { ForgotPasswordModal } from '../forgotPasswordModal'
|
|
31
52
|
import { LoginModal } from '../loginModal'
|
|
32
53
|
import { SignupModal } from '../signupModal'
|
|
33
|
-
import
|
|
54
|
+
import TimerWidget from '../timerWidget'
|
|
34
55
|
import {
|
|
35
56
|
assingUniqueIds,
|
|
36
57
|
createCheckoutDataBody,
|
|
@@ -39,19 +60,6 @@ import {
|
|
|
39
60
|
getValidateFunctions,
|
|
40
61
|
setLoggedUserData,
|
|
41
62
|
} from './utils'
|
|
42
|
-
import { createCheckoutDataBodyWithDefaultHolder, getCookieByName } from '../../utils'
|
|
43
|
-
import axios from 'axios'
|
|
44
|
-
import { CustomField, CheckboxField, SelectField, PhoneNumberField } from '../common/index'
|
|
45
|
-
import { CircularProgress, ThemeOptions } from '@mui/material'
|
|
46
|
-
import { nanoid } from 'nanoid'
|
|
47
|
-
import { getQueryVariable } from '../../utils/getQueryVariable'
|
|
48
|
-
import { ErrorFocus } from '../../utils/formikErrorFocus'
|
|
49
|
-
import { ThemeProvider, createTheme } from '@mui/material/styles'
|
|
50
|
-
import { CSSProperties } from '@mui/styles'
|
|
51
|
-
import Backdrop from '@mui/material/Backdrop'
|
|
52
|
-
import TimerWidget from '../timerWidget'
|
|
53
|
-
import SnackbarAlert from '../common/SnackbarAlert'
|
|
54
|
-
import { DatePickerField } from '../common/DatePickerField'
|
|
55
63
|
|
|
56
64
|
export interface IBillingInfoPage {
|
|
57
65
|
data?: IBillingInfoData[];
|
|
@@ -169,8 +177,10 @@ const LogicRunner: FC<{
|
|
|
169
177
|
city: parsedData?.city || '',
|
|
170
178
|
confirmPassword: '',
|
|
171
179
|
password: '',
|
|
172
|
-
'holderFirstName-0':
|
|
173
|
-
|
|
180
|
+
'holderFirstName-0':
|
|
181
|
+
parsedData?.first_name || parsedData?.firstName || '',
|
|
182
|
+
'holderLastName-0':
|
|
183
|
+
parsedData?.last_name || parsedData?.lastName || '',
|
|
174
184
|
'holderEmail-0': parsedData?.email || '',
|
|
175
185
|
}
|
|
176
186
|
setValues({ ...values, ...mappedValues })
|
|
@@ -225,7 +235,7 @@ export const BillingInfoContainer = ({
|
|
|
225
235
|
enableTimer = false,
|
|
226
236
|
logo,
|
|
227
237
|
showForgotPasswordButton = false,
|
|
228
|
-
showSignUpButton = false
|
|
238
|
+
showSignUpButton = false,
|
|
229
239
|
}: IBillingInfoPage) => {
|
|
230
240
|
const themeMui = createTheme(themeOptions)
|
|
231
241
|
const isWindowDefined = typeof window !== 'undefined'
|
|
@@ -278,7 +288,7 @@ export const BillingInfoContainer = ({
|
|
|
278
288
|
const showTicketHolders = getQueryVariable('names_required') === 'true'
|
|
279
289
|
const eventId = getQueryVariable('event_id')
|
|
280
290
|
const optedInFieldValue: boolean = _get(cartInfoData, 'optedIn', false)
|
|
281
|
-
const ttfOptIn
|
|
291
|
+
const ttfOptIn = Boolean(_get(cartInfoData, 'ttfOptIn', false))
|
|
282
292
|
const hideTtfOptIn: boolean = _get(cartInfoData, 'hide_ttf_opt_in', true)
|
|
283
293
|
const expirationTime = _get(cartInfoData, 'expiresAt')
|
|
284
294
|
const flagRequirePhone = getQueryVariable('phone_required') === 'true'
|
|
@@ -306,7 +316,7 @@ export const BillingInfoContainer = ({
|
|
|
306
316
|
}
|
|
307
317
|
|
|
308
318
|
useEffect(() => {
|
|
309
|
-
if (
|
|
319
|
+
if (pIsLoggedIn !== isLoggedIn || xtfCookie) {
|
|
310
320
|
setIsLoggedIn(!!(pIsLoggedIn || xtfCookie))
|
|
311
321
|
}
|
|
312
322
|
}, [pIsLoggedIn, isLoggedIn, xtfCookie])
|
|
@@ -363,10 +373,7 @@ export const BillingInfoContainer = ({
|
|
|
363
373
|
firstName: profileDataObj.first_name,
|
|
364
374
|
lastName: profileDataObj.last_name,
|
|
365
375
|
})
|
|
366
|
-
window.localStorage.setItem(
|
|
367
|
-
'user_data',
|
|
368
|
-
JSON.stringify(profileDataObj)
|
|
369
|
-
)
|
|
376
|
+
window.localStorage.setItem('user_data', JSON.stringify(profileDataObj))
|
|
370
377
|
onGetProfileDataSuccess(userDataResponse.data)
|
|
371
378
|
}
|
|
372
379
|
} catch (e) {
|
|
@@ -403,8 +410,10 @@ export const BillingInfoContainer = ({
|
|
|
403
410
|
collectPaymentData()
|
|
404
411
|
}, [skipPage, ticketsQuantity])
|
|
405
412
|
|
|
406
|
-
|
|
407
|
-
|
|
413
|
+
const collectCheckoutBody = (
|
|
414
|
+
values: Record<string, unknown>,
|
|
415
|
+
profileData?: any
|
|
416
|
+
): Record<string, unknown> => {
|
|
408
417
|
let checkoutBody = {}
|
|
409
418
|
|
|
410
419
|
// Auto collect ticket holders name when it was skipped optionally
|
|
@@ -413,7 +422,7 @@ export const BillingInfoContainer = ({
|
|
|
413
422
|
ticketsQuantity.length,
|
|
414
423
|
values,
|
|
415
424
|
true,
|
|
416
|
-
{ emailLogged, firstNameLogged, lastNameLogged }
|
|
425
|
+
{ emailLogged, firstNameLogged, lastNameLogged }
|
|
417
426
|
)
|
|
418
427
|
} else {
|
|
419
428
|
checkoutBody = createCheckoutDataBody(
|
|
@@ -421,8 +430,10 @@ export const BillingInfoContainer = ({
|
|
|
421
430
|
values,
|
|
422
431
|
{
|
|
423
432
|
emailLogged: emailLogged || profileData.email,
|
|
424
|
-
firstNameLogged:
|
|
425
|
-
|
|
433
|
+
firstNameLogged:
|
|
434
|
+
firstNameLogged || profileData.first_name || profileData.firstName,
|
|
435
|
+
lastNameLogged:
|
|
436
|
+
lastNameLogged || profileData.last_name || profileData.lastName,
|
|
426
437
|
},
|
|
427
438
|
showDOB
|
|
428
439
|
)
|
|
@@ -435,7 +446,10 @@ export const BillingInfoContainer = ({
|
|
|
435
446
|
localStorage.removeItem('referral_key')
|
|
436
447
|
}
|
|
437
448
|
|
|
438
|
-
if (
|
|
449
|
+
if (
|
|
450
|
+
loading ||
|
|
451
|
+
(enableTimer && !expirationTime && typeof window !== 'undefined')
|
|
452
|
+
) {
|
|
439
453
|
if (expirationTime === 0) {
|
|
440
454
|
// Redirect to homepage (countdown finished and browser reloaded case)
|
|
441
455
|
window.location.href = '/'
|
|
@@ -511,15 +525,24 @@ export const BillingInfoContainer = ({
|
|
|
511
525
|
setLoading(true)
|
|
512
526
|
const resRegister = await register(bodyFormData)
|
|
513
527
|
const xtfCookie = _get(resRegister, 'headers.x-tf-ecommerce')
|
|
514
|
-
const accessToken = _get(
|
|
515
|
-
|
|
516
|
-
|
|
528
|
+
const accessToken = _get(
|
|
529
|
+
resRegister,
|
|
530
|
+
'data.data.attributes.access_token'
|
|
531
|
+
)
|
|
532
|
+
const refreshToken = _get(
|
|
533
|
+
resRegister,
|
|
534
|
+
'data.data.attributes.refresh_token'
|
|
535
|
+
)
|
|
536
|
+
const userProfile = _get(
|
|
537
|
+
resRegister,
|
|
538
|
+
'data.data.attributes.user_profile'
|
|
539
|
+
)
|
|
517
540
|
|
|
518
541
|
onRegisterSuccess({
|
|
519
542
|
xtfCookie,
|
|
520
543
|
accessToken,
|
|
521
544
|
refreshToken,
|
|
522
|
-
userProfile
|
|
545
|
+
userProfile,
|
|
523
546
|
})
|
|
524
547
|
} catch (e) {
|
|
525
548
|
setLoading(false)
|
|
@@ -530,10 +553,7 @@ export const BillingInfoContainer = ({
|
|
|
530
553
|
}
|
|
531
554
|
if (error?.password) {
|
|
532
555
|
formikHelpers.setFieldError('password', error.password)
|
|
533
|
-
formikHelpers.setFieldError(
|
|
534
|
-
'confirmPassword',
|
|
535
|
-
error.password
|
|
536
|
-
)
|
|
556
|
+
formikHelpers.setFieldError('confirmPassword', error.password)
|
|
537
557
|
}
|
|
538
558
|
if (error?.email && !onLogin) {
|
|
539
559
|
// False will stand for outside controll
|
|
@@ -541,7 +561,10 @@ export const BillingInfoContainer = ({
|
|
|
541
561
|
setShowModalLogin(true)
|
|
542
562
|
}
|
|
543
563
|
|
|
544
|
-
if (
|
|
564
|
+
if (
|
|
565
|
+
_includes(error, 'The cart is expired') &&
|
|
566
|
+
!hideErrorsAlertSection
|
|
567
|
+
) {
|
|
545
568
|
setError(error)
|
|
546
569
|
}
|
|
547
570
|
|
|
@@ -657,7 +680,6 @@ export const BillingInfoContainer = ({
|
|
|
657
680
|
const { groupClassname, groupItems } = group
|
|
658
681
|
return (
|
|
659
682
|
<React.Fragment key={group.uniqueId}>
|
|
660
|
-
|
|
661
683
|
<div className={groupClassname}>
|
|
662
684
|
{_map(
|
|
663
685
|
groupItems.filter(el => {
|
|
@@ -678,7 +700,7 @@ export const BillingInfoContainer = ({
|
|
|
678
700
|
'confirmPassword',
|
|
679
701
|
'password-info',
|
|
680
702
|
].includes(element.name) &&
|
|
681
|
-
|
|
703
|
+
isLoggedIn ? null : (
|
|
682
704
|
<React.Fragment key={element.uniqueId}>
|
|
683
705
|
<div className={element.className}>
|
|
684
706
|
{element.component ? (
|
|
@@ -686,9 +708,15 @@ export const BillingInfoContainer = ({
|
|
|
686
708
|
) : (
|
|
687
709
|
<Field
|
|
688
710
|
name={element.name}
|
|
689
|
-
label={
|
|
690
|
-
|
|
691
|
-
|
|
711
|
+
label={
|
|
712
|
+
element.name === 'phone'
|
|
713
|
+
? `${element.label}${
|
|
714
|
+
flagRequirePhone
|
|
715
|
+
? ''
|
|
716
|
+
: ' (optional)'
|
|
717
|
+
} `
|
|
718
|
+
: element.label
|
|
719
|
+
}
|
|
692
720
|
type={element.type}
|
|
693
721
|
validate={getValidateFunctions(
|
|
694
722
|
element,
|
|
@@ -712,10 +740,13 @@ export const BillingInfoContainer = ({
|
|
|
712
740
|
element.name === 'country'
|
|
713
741
|
? countries
|
|
714
742
|
: element.name === 'state'
|
|
715
|
-
|
|
716
|
-
|
|
743
|
+
? states
|
|
744
|
+
: []
|
|
717
745
|
}
|
|
718
746
|
theme={theme}
|
|
747
|
+
disableDropdown={
|
|
748
|
+
element.disableDropdown
|
|
749
|
+
}
|
|
719
750
|
/>
|
|
720
751
|
)}
|
|
721
752
|
</div>
|
|
@@ -753,16 +784,25 @@ export const BillingInfoContainer = ({
|
|
|
753
784
|
component={
|
|
754
785
|
element.type === 'checkbox'
|
|
755
786
|
? CheckboxField
|
|
787
|
+
: element.type === 'phone'
|
|
788
|
+
? PhoneNumberField
|
|
756
789
|
: CustomField
|
|
757
790
|
}
|
|
758
791
|
validate={combineValidators(
|
|
759
792
|
element.required
|
|
760
793
|
? requiredValidator
|
|
761
|
-
: () =>
|
|
794
|
+
: () =>
|
|
795
|
+
props.errors[
|
|
796
|
+
`${element.name}-${index}`
|
|
797
|
+
],
|
|
762
798
|
element.onValidate
|
|
763
799
|
? element.onValidate
|
|
764
|
-
: () =>
|
|
800
|
+
: () =>
|
|
801
|
+
props.errors[
|
|
802
|
+
`${element.name}-${index}`
|
|
803
|
+
]
|
|
765
804
|
)}
|
|
805
|
+
disableDropdown={element.disableDropdown}
|
|
766
806
|
/>
|
|
767
807
|
</div>
|
|
768
808
|
))}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import TextField from '@mui/material/TextField'
|
|
2
1
|
import { FieldInputProps, FormikProps } from 'formik'
|
|
3
2
|
import _debounce from 'lodash/debounce'
|
|
4
3
|
import _get from 'lodash/get'
|
|
4
|
+
import MuiPhoneNumber from 'material-ui-phone-number'
|
|
5
5
|
import React, { useCallback, useEffect } from 'react'
|
|
6
6
|
|
|
7
7
|
import { validatePhoneNumber } from '../../api'
|
|
8
|
+
import { removePlusSign } from '../../normalizers'
|
|
8
9
|
|
|
9
10
|
export interface IPhoneNumberField {
|
|
10
11
|
label: string;
|
|
@@ -13,15 +14,17 @@ export interface IPhoneNumberField {
|
|
|
13
14
|
|
|
14
15
|
// optional
|
|
15
16
|
type: string;
|
|
17
|
+
disableDropdown: boolean;
|
|
16
18
|
}
|
|
17
19
|
|
|
18
20
|
export const PhoneNumberField = ({
|
|
19
21
|
label,
|
|
20
|
-
type = 'text',
|
|
21
22
|
field,
|
|
22
|
-
form: { errors, setFieldError, setStatus },
|
|
23
|
+
form: { errors,touched, setFieldError, setStatus, initialValues, setFieldValue },
|
|
24
|
+
disableDropdown = true
|
|
23
25
|
}: IPhoneNumberField) => {
|
|
24
26
|
const error = _get(errors, field.name)
|
|
27
|
+
const isTouched = Boolean(_get(touched, field.name))
|
|
25
28
|
|
|
26
29
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
27
30
|
const debounceCb = useCallback(
|
|
@@ -54,15 +57,18 @@ export const PhoneNumberField = ({
|
|
|
54
57
|
}, [field.value])
|
|
55
58
|
|
|
56
59
|
return (
|
|
57
|
-
<
|
|
58
|
-
{
|
|
59
|
-
|
|
60
|
+
<MuiPhoneNumber
|
|
61
|
+
name={field.name}
|
|
62
|
+
value={initialValues.phone}
|
|
63
|
+
onChange={(e: any) => setFieldValue(field.name, removePlusSign(e))}
|
|
64
|
+
variant="outlined"
|
|
65
|
+
defaultCountry='us'
|
|
66
|
+
disableDropdown={disableDropdown}
|
|
60
67
|
label={label}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
value={field.value || ''}
|
|
68
|
+
error={!!error && isTouched}
|
|
69
|
+
helperText={isTouched && error}
|
|
70
|
+
fullWidth
|
|
71
|
+
autoFormat={false}
|
|
66
72
|
/>
|
|
67
73
|
)
|
|
68
74
|
}
|
|
@@ -219,6 +219,11 @@ export const OrderDetailsContainer = ({
|
|
|
219
219
|
<p>{`So far, you’ve referred ${data.sales_referred} tickets`}</p>
|
|
220
220
|
</div>
|
|
221
221
|
</div>
|
|
222
|
+
{data?.sales_referred ? (
|
|
223
|
+
<div className="total-referrer">
|
|
224
|
+
<b>So far, you've referred {data.sales_referred} tickets.</b>
|
|
225
|
+
</div>
|
|
226
|
+
) : null}
|
|
222
227
|
<TableContainer component={Paper}>
|
|
223
228
|
<Table className="tt-type" aria-label="collapsible table">
|
|
224
229
|
<TableHead>
|
|
@@ -71,6 +71,7 @@ export interface IPaymentPage {
|
|
|
71
71
|
onCountdownFinish?: () => void;
|
|
72
72
|
enableTimer?: boolean;
|
|
73
73
|
enablePaymentPlan?: boolean;
|
|
74
|
+
paymentButtonText?: string;
|
|
74
75
|
}
|
|
75
76
|
|
|
76
77
|
const initialOrderValues: IOrderData = {
|
|
@@ -98,16 +99,17 @@ export const PaymentContainer = ({
|
|
|
98
99
|
errorText,
|
|
99
100
|
checkoutData,
|
|
100
101
|
onErrorClose = _identity,
|
|
101
|
-
onGetPaymentDataSuccess = () => {},
|
|
102
|
-
onGetPaymentDataError = () => {},
|
|
103
|
-
onPaymentError = () => {},
|
|
102
|
+
onGetPaymentDataSuccess = () => { },
|
|
103
|
+
onGetPaymentDataError = () => { },
|
|
104
|
+
onPaymentError = () => { },
|
|
104
105
|
stripeCardOptions = {},
|
|
105
106
|
disableZipSection = false,
|
|
106
107
|
themeOptions,
|
|
107
108
|
elementsOptions,
|
|
108
|
-
onCountdownFinish = () => {},
|
|
109
|
+
onCountdownFinish = () => { },
|
|
109
110
|
enableTimer = false,
|
|
110
111
|
enablePaymentPlan = false,
|
|
112
|
+
paymentButtonText
|
|
111
113
|
}: IPaymentPage) => {
|
|
112
114
|
const [reviewData, setReviewData] = useState(initialReviewValues)
|
|
113
115
|
const [orderData, setOrderData] = useState(initialOrderValues)
|
|
@@ -166,10 +168,10 @@ export const PaymentContainer = ({
|
|
|
166
168
|
setConditions(
|
|
167
169
|
conditionsInfo
|
|
168
170
|
? conditionsInfo.map((item: string) => ({
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
171
|
+
id: nanoid(),
|
|
172
|
+
text: item,
|
|
173
|
+
checked: false,
|
|
174
|
+
}))
|
|
173
175
|
: []
|
|
174
176
|
)
|
|
175
177
|
}
|
|
@@ -316,15 +318,15 @@ export const PaymentContainer = ({
|
|
|
316
318
|
conditions={conditions}
|
|
317
319
|
stripeCardOptions={stripeCardOptions}
|
|
318
320
|
disableZipSection={disableZipSection}
|
|
321
|
+
paymentButtonText={paymentButtonText}
|
|
319
322
|
/>
|
|
320
323
|
</Elements>
|
|
321
324
|
</div>
|
|
322
325
|
</div>
|
|
323
326
|
) : (
|
|
324
327
|
<div
|
|
325
|
-
className={`payment_button ${
|
|
326
|
-
|
|
327
|
-
}`}
|
|
328
|
+
className={`payment_button ${paymentIsLoading ? 'disabled-payment-button' : ''
|
|
329
|
+
}`}
|
|
328
330
|
>
|
|
329
331
|
<button
|
|
330
332
|
disabled={paymentIsLoading}
|