tf-checkout-react 1.1.0 → 1.2.2
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 +3 -3
- 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/ticketsContainer/index.d.ts +4 -3
- package/dist/tf-checkout-react.cjs.development.js +1271 -1202
- 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 +1409 -1340
- 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 +39 -5
- package/src/components/billing-info-container/index.tsx +37 -33
- 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/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
|
@@ -4,6 +4,7 @@ import _get from 'lodash/get'
|
|
|
4
4
|
import { CONFIGS, getCookieByName, setCustomCookie } from '../utils'
|
|
5
5
|
|
|
6
6
|
const isWindowDefined = typeof window !== 'undefined'
|
|
7
|
+
const isDocumentDefined = typeof document !== 'undefined'
|
|
7
8
|
|
|
8
9
|
const ttfHeaders: { [key: string]: any } = {
|
|
9
10
|
Accept: 'application/vnd.api+json',
|
|
@@ -160,8 +161,24 @@ export const handleSetAccessToken = (token: string) => {
|
|
|
160
161
|
}
|
|
161
162
|
|
|
162
163
|
export function getEvent(id: string | number) {
|
|
164
|
+
let referralValue = ""
|
|
165
|
+
if (isWindowDefined) {
|
|
166
|
+
const params = new URL(`${window.location}`)
|
|
167
|
+
const referralId = params.searchParams.get('ttf_r') || ''
|
|
168
|
+
const referral_key = window.localStorage.getItem('referral_key')
|
|
169
|
+
let referralIdlocal = ""
|
|
170
|
+
if (referral_key) {
|
|
171
|
+
referralIdlocal = referral_key.split('.')[1]
|
|
172
|
+
}
|
|
173
|
+
referralValue = referralId || referralIdlocal
|
|
174
|
+
}
|
|
175
|
+
|
|
163
176
|
const response = publicRequest
|
|
164
|
-
.get(`v1/event/${id}`, {
|
|
177
|
+
.get(`v1/event/${id}`, {
|
|
178
|
+
headers: { ...ttfHeaders,
|
|
179
|
+
"Referer-Url": isDocumentDefined ? document.referrer : '',
|
|
180
|
+
"Referrer-Id": isWindowDefined ? referralValue : ''
|
|
181
|
+
} })
|
|
165
182
|
.catch(error => {
|
|
166
183
|
throw error
|
|
167
184
|
})
|
|
@@ -186,7 +203,12 @@ export function getTickets(id: string | number, promoCode: string) {
|
|
|
186
203
|
}
|
|
187
204
|
|
|
188
205
|
export const addToCart = (id: string | number, data: any) => {
|
|
189
|
-
const res = publicRequest.post(`v1/event/${id}/add-to-cart/`, {
|
|
206
|
+
const res = publicRequest.post(`v1/event/${id}/add-to-cart/`, {
|
|
207
|
+
data,
|
|
208
|
+
headers: {
|
|
209
|
+
"Referer-Url": isDocumentDefined ? document.referrer : '',
|
|
210
|
+
}
|
|
211
|
+
})
|
|
190
212
|
return res
|
|
191
213
|
}
|
|
192
214
|
|
|
@@ -223,7 +245,11 @@ export const getAccessToken = (data: FormData) =>
|
|
|
223
245
|
|
|
224
246
|
export const getPaymentData = (hash: string) => {
|
|
225
247
|
const response = publicRequest
|
|
226
|
-
.get(`v1/order/${hash}/review
|
|
248
|
+
.get(`v1/order/${hash}/review/`, {
|
|
249
|
+
headers: {
|
|
250
|
+
"Referer-Url": isDocumentDefined ? document.referrer : '' ,
|
|
251
|
+
}
|
|
252
|
+
})
|
|
227
253
|
.catch(error => {
|
|
228
254
|
throw error
|
|
229
255
|
})
|
|
@@ -243,7 +269,11 @@ export const handlePaymentData = (orderHash: string, data: any) => {
|
|
|
243
269
|
|
|
244
270
|
export const handlePaymentSuccess = (orderHash: string) => {
|
|
245
271
|
const res = publicRequest
|
|
246
|
-
.post(`v1/order/${orderHash}/success
|
|
272
|
+
.post(`v1/order/${orderHash}/success`, {
|
|
273
|
+
headers: {
|
|
274
|
+
"Referer-Url": isDocumentDefined ? document.referrer : ''
|
|
275
|
+
}
|
|
276
|
+
})
|
|
247
277
|
.catch(error => {
|
|
248
278
|
throw error
|
|
249
279
|
})
|
|
@@ -252,7 +282,11 @@ export const handlePaymentSuccess = (orderHash: string) => {
|
|
|
252
282
|
|
|
253
283
|
export const handleFreeSuccess = (orderHash: string) => {
|
|
254
284
|
const res = publicRequest
|
|
255
|
-
.post(`v1/order/${orderHash}/complete_free_registration
|
|
285
|
+
.post(`v1/order/${orderHash}/complete_free_registration`, {
|
|
286
|
+
headers: {
|
|
287
|
+
"Referer-Url": isDocumentDefined ? document.referrer : ''
|
|
288
|
+
}
|
|
289
|
+
})
|
|
256
290
|
.catch(error => {
|
|
257
291
|
throw error
|
|
258
292
|
})
|
|
@@ -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,36 @@ 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 { createCheckoutDataBodyWithDefaultHolder, getCookieByName } from '../../utils'
|
|
37
|
+
import { ErrorFocus } from '../../utils/formikErrorFocus'
|
|
38
|
+
import { getQueryVariable } from '../../utils/getQueryVariable'
|
|
39
|
+
import { combineValidators, requiredValidator } from '../../validators'
|
|
40
|
+
import { DatePickerField } from '../common/DatePickerField'
|
|
41
|
+
import { CheckboxField, CustomField, PhoneNumberField,SelectField } from '../common/index'
|
|
42
|
+
import SnackbarAlert from '../common/SnackbarAlert'
|
|
43
|
+
import { ForgotPasswordModal } from '../forgotPasswordModal'
|
|
31
44
|
import { LoginModal } from '../loginModal'
|
|
32
45
|
import { SignupModal } from '../signupModal'
|
|
33
|
-
import
|
|
46
|
+
import TimerWidget from '../timerWidget'
|
|
34
47
|
import {
|
|
35
48
|
assingUniqueIds,
|
|
36
49
|
createCheckoutDataBody,
|
|
@@ -39,19 +52,6 @@ import {
|
|
|
39
52
|
getValidateFunctions,
|
|
40
53
|
setLoggedUserData,
|
|
41
54
|
} 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
55
|
|
|
56
56
|
export interface IBillingInfoPage {
|
|
57
57
|
data?: IBillingInfoData[];
|
|
@@ -278,7 +278,7 @@ export const BillingInfoContainer = ({
|
|
|
278
278
|
const showTicketHolders = getQueryVariable('names_required') === 'true'
|
|
279
279
|
const eventId = getQueryVariable('event_id')
|
|
280
280
|
const optedInFieldValue: boolean = _get(cartInfoData, 'optedIn', false)
|
|
281
|
-
const ttfOptIn
|
|
281
|
+
const ttfOptIn = Boolean(_get(cartInfoData, 'ttfOptIn', false))
|
|
282
282
|
const hideTtfOptIn: boolean = _get(cartInfoData, 'hide_ttf_opt_in', true)
|
|
283
283
|
const expirationTime = _get(cartInfoData, 'expiresAt')
|
|
284
284
|
const flagRequirePhone = getQueryVariable('phone_required') === 'true'
|
|
@@ -404,7 +404,7 @@ export const BillingInfoContainer = ({
|
|
|
404
404
|
}, [skipPage, ticketsQuantity])
|
|
405
405
|
|
|
406
406
|
|
|
407
|
-
const collectCheckoutBody = (values:
|
|
407
|
+
const collectCheckoutBody = (values: Record<string, unknown>, profileData?: any): Record<string, unknown> => {
|
|
408
408
|
let checkoutBody = {}
|
|
409
409
|
|
|
410
410
|
// Auto collect ticket holders name when it was skipped optionally
|
|
@@ -421,8 +421,8 @@ export const BillingInfoContainer = ({
|
|
|
421
421
|
values,
|
|
422
422
|
{
|
|
423
423
|
emailLogged: emailLogged || profileData.email,
|
|
424
|
-
firstNameLogged: firstNameLogged || profileData.first_name
|
|
425
|
-
lastNameLogged: lastNameLogged || profileData.last_name
|
|
424
|
+
firstNameLogged: firstNameLogged || profileData.first_name || profileData.firstName,
|
|
425
|
+
lastNameLogged: lastNameLogged || profileData.last_name || profileData.lastName,
|
|
426
426
|
},
|
|
427
427
|
showDOB
|
|
428
428
|
)
|
|
@@ -530,10 +530,7 @@ export const BillingInfoContainer = ({
|
|
|
530
530
|
}
|
|
531
531
|
if (error?.password) {
|
|
532
532
|
formikHelpers.setFieldError('password', error.password)
|
|
533
|
-
formikHelpers.setFieldError(
|
|
534
|
-
'confirmPassword',
|
|
535
|
-
error.password
|
|
536
|
-
)
|
|
533
|
+
formikHelpers.setFieldError('confirmPassword', error.password)
|
|
537
534
|
}
|
|
538
535
|
if (error?.email && !onLogin) {
|
|
539
536
|
// False will stand for outside controll
|
|
@@ -541,7 +538,10 @@ export const BillingInfoContainer = ({
|
|
|
541
538
|
setShowModalLogin(true)
|
|
542
539
|
}
|
|
543
540
|
|
|
544
|
-
if (
|
|
541
|
+
if (
|
|
542
|
+
_includes(error, 'The cart is expired') &&
|
|
543
|
+
!hideErrorsAlertSection
|
|
544
|
+
) {
|
|
545
545
|
setError(error)
|
|
546
546
|
}
|
|
547
547
|
|
|
@@ -716,6 +716,7 @@ export const BillingInfoContainer = ({
|
|
|
716
716
|
: []
|
|
717
717
|
}
|
|
718
718
|
theme={theme}
|
|
719
|
+
disableDropdown={element.disableDropdown}
|
|
719
720
|
/>
|
|
720
721
|
)}
|
|
721
722
|
</div>
|
|
@@ -753,6 +754,8 @@ export const BillingInfoContainer = ({
|
|
|
753
754
|
component={
|
|
754
755
|
element.type === 'checkbox'
|
|
755
756
|
? CheckboxField
|
|
757
|
+
: element.type === 'phone'
|
|
758
|
+
? PhoneNumberField
|
|
756
759
|
: CustomField
|
|
757
760
|
}
|
|
758
761
|
validate={combineValidators(
|
|
@@ -763,6 +766,7 @@ export const BillingInfoContainer = ({
|
|
|
763
766
|
? element.onValidate
|
|
764
767
|
: () => {}
|
|
765
768
|
)}
|
|
769
|
+
disableDropdown={element.disableDropdown}
|
|
766
770
|
/>
|
|
767
771
|
</div>
|
|
768
772
|
))}
|
|
@@ -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>
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import React, { useState, useEffect, useRef, ReactNode } from 'react'
|
|
2
|
-
import axios, { AxiosError } from 'axios'
|
|
3
|
-
import { Loader } from '../common/index'
|
|
4
1
|
import './style.css'
|
|
5
2
|
|
|
3
|
+
import { createTheme, ThemeOptions } from '@mui/material'
|
|
4
|
+
import { ThemeProvider } from '@mui/private-theming'
|
|
5
|
+
import { CSSProperties } from '@mui/styles'
|
|
6
|
+
import axios, { AxiosError } from 'axios'
|
|
7
|
+
import jwt_decode from 'jwt-decode'
|
|
8
|
+
import _find from 'lodash/find'
|
|
9
|
+
import _get from 'lodash/get'
|
|
10
|
+
import _isEmpty from 'lodash/isEmpty'
|
|
11
|
+
import _some from 'lodash/some'
|
|
12
|
+
import React, { ReactNode,useEffect, useRef, useState } from 'react'
|
|
13
|
+
import Button from 'react-bootstrap/Button'
|
|
14
|
+
|
|
6
15
|
import {
|
|
7
|
-
getTickets,
|
|
8
|
-
getEvent,
|
|
9
16
|
addToCart,
|
|
10
|
-
|
|
17
|
+
getEvent,
|
|
18
|
+
getTickets,
|
|
11
19
|
logout,
|
|
20
|
+
postOnCheckout,
|
|
12
21
|
} from '../../api'
|
|
13
|
-
import _get from 'lodash/get'
|
|
14
|
-
import _some from 'lodash/some'
|
|
15
|
-
import _every from 'lodash/every'
|
|
16
|
-
import _find from 'lodash/find'
|
|
17
|
-
import _isEmpty from 'lodash/isEmpty'
|
|
18
|
-
import Button from 'react-bootstrap/Button'
|
|
19
|
-
import jwt_decode from 'jwt-decode'
|
|
20
|
-
import { TicketsSection } from './TicketsSection'
|
|
21
|
-
import WaitingList from '../waitingList'
|
|
22
|
-
import { PromoCodeSection } from './PromoCodeSection'
|
|
23
|
-
import { AccessCodeSection } from './AccessCodeSection'
|
|
24
|
-
import { LoginModal } from '../loginModal'
|
|
25
|
-
import Countdown from '../countdown'
|
|
26
22
|
import {
|
|
27
23
|
createCheckoutDataBodyWithDefaultHolder,
|
|
28
|
-
getQueryVariable,
|
|
29
24
|
deleteCookieByName,
|
|
30
25
|
getCookieByName,
|
|
26
|
+
getQueryVariable,
|
|
31
27
|
} from '../../utils'
|
|
32
|
-
import {
|
|
33
|
-
import
|
|
34
|
-
import {
|
|
28
|
+
import { Loader } from '../common/index'
|
|
29
|
+
import Countdown from '../countdown'
|
|
30
|
+
import { LoginModal } from '../loginModal'
|
|
31
|
+
import WaitingList from '../waitingList'
|
|
32
|
+
import { AccessCodeSection } from './AccessCodeSection'
|
|
33
|
+
import { PromoCodeSection } from './PromoCodeSection'
|
|
35
34
|
import { ReferralLogic } from './ReferralLogic'
|
|
35
|
+
import { TicketsSection } from './TicketsSection'
|
|
36
36
|
|
|
37
37
|
interface CartSuccess {
|
|
38
38
|
skip_billing_page: boolean;
|
|
@@ -72,17 +72,21 @@ export interface IGetTickets {
|
|
|
72
72
|
disableCountdownLeadingZero?: boolean;
|
|
73
73
|
isLoggedIn?: boolean;
|
|
74
74
|
actionsSectionComponent?: any;
|
|
75
|
-
ticketsHeaderComponent?: ReactNode
|
|
76
|
-
hideTicketsHeader?: boolean
|
|
75
|
+
ticketsHeaderComponent?: ReactNode;
|
|
76
|
+
hideTicketsHeader?: boolean;
|
|
77
|
+
enableInfluencersSection?: boolean;
|
|
77
78
|
}
|
|
78
79
|
|
|
79
80
|
export interface ITicket {
|
|
80
|
-
id: string | number
|
|
81
|
-
[key: string]: string | number
|
|
81
|
+
id: string | number;
|
|
82
|
+
[key: string]: string | number;
|
|
82
83
|
}
|
|
83
84
|
|
|
85
|
+
interface IInfluencer {
|
|
86
|
+
[key: string]: string | undefined;
|
|
87
|
+
}
|
|
84
88
|
export interface ISelectedTickets {
|
|
85
|
-
[key: string]: string | number
|
|
89
|
+
[key: string]: string | number;
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
export const TicketsContainer = ({
|
|
@@ -108,9 +112,10 @@ export const TicketsContainer = ({
|
|
|
108
112
|
sortBySoldOut = false,
|
|
109
113
|
disableCountdownLeadingZero = false,
|
|
110
114
|
isLoggedIn = false,
|
|
111
|
-
actionsSectionComponent
|
|
115
|
+
actionsSectionComponent: ActionsSectionComponent,
|
|
112
116
|
ticketsHeaderComponent,
|
|
113
|
-
hideTicketsHeader = false
|
|
117
|
+
hideTicketsHeader = false,
|
|
118
|
+
enableInfluencersSection = true
|
|
114
119
|
}: IGetTickets) => {
|
|
115
120
|
const [selectedTickets, setSelectedTickets] = useState({} as ISelectedTickets)
|
|
116
121
|
const isWindowDefined = typeof window !== 'undefined'
|
|
@@ -275,7 +280,6 @@ export const TicketsContainer = ({
|
|
|
275
280
|
try {
|
|
276
281
|
const result = await addToCart(eventId, data)
|
|
277
282
|
if (result.status === 200) {
|
|
278
|
-
|
|
279
283
|
const skipBillingPage =
|
|
280
284
|
result?.data?.data?.attributes?.skip_billing_page ?? false
|
|
281
285
|
const nameIsRequired =
|
|
@@ -321,7 +325,7 @@ export const TicketsContainer = ({
|
|
|
321
325
|
age_required: ageIsRequired,
|
|
322
326
|
event_id: String(eventId),
|
|
323
327
|
hash,
|
|
324
|
-
total
|
|
328
|
+
total,
|
|
325
329
|
})
|
|
326
330
|
}
|
|
327
331
|
} catch (e) {
|
|
@@ -392,13 +396,18 @@ export const TicketsContainer = ({
|
|
|
392
396
|
_isEmpty(selectedTickets) ||
|
|
393
397
|
Object.values(selectedTickets)[0] === 0
|
|
394
398
|
|
|
395
|
-
const wrappedActionsSectionComponent = React.isValidElement(
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
+
const wrappedActionsSectionComponent = React.isValidElement(
|
|
400
|
+
ActionsSectionComponent
|
|
401
|
+
)
|
|
402
|
+
? React.cloneElement(ActionsSectionComponent as React.ReactElement<any>, {
|
|
403
|
+
handleGetTicketClick,
|
|
404
|
+
isTicketOnSale,
|
|
405
|
+
})
|
|
406
|
+
: null
|
|
399
407
|
|
|
400
408
|
const externalUrl = event?.redirectUrl
|
|
401
409
|
const eventSaleIsNotStarted = !event?.salesStarted && event?.salesStart
|
|
410
|
+
const influencers = event?.referralsEnabled ? event?.referrals : []
|
|
402
411
|
|
|
403
412
|
return (
|
|
404
413
|
<ThemeProvider theme={themeMui}>
|
|
@@ -438,7 +447,7 @@ export const TicketsContainer = ({
|
|
|
438
447
|
<WaitingList tickets={tickets} eventId={eventId} />
|
|
439
448
|
)}
|
|
440
449
|
{codeIsLoading ? (
|
|
441
|
-
<Loader />
|
|
450
|
+
<Loader />
|
|
442
451
|
) : isSalesClosed ? null : showAccessCodeSection ? (
|
|
443
452
|
<AccessCodeSection
|
|
444
453
|
code={code}
|
|
@@ -458,19 +467,23 @@ export const TicketsContainer = ({
|
|
|
458
467
|
) : null
|
|
459
468
|
}
|
|
460
469
|
{wrappedActionsSectionComponent}
|
|
461
|
-
{!wrappedActionsSectionComponent &&
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
470
|
+
{!wrappedActionsSectionComponent &&
|
|
471
|
+
!eventSaleIsNotStarted &&
|
|
472
|
+
isTicketOnSale &&
|
|
473
|
+
!event?.salesEnded &&
|
|
474
|
+
!externalUrl && (
|
|
475
|
+
<Button
|
|
476
|
+
aria-hidden={true}
|
|
477
|
+
className={`book-button
|
|
465
478
|
${bookButtonIsDisabled ? 'disabled' : ''}
|
|
466
479
|
${isButtonScrollable ? 'is-scrollable' : ''}
|
|
467
480
|
${!isLoggedIn ? 'on-bottom' : ''}
|
|
468
481
|
`}
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
482
|
+
onClick={handleGetTicketClick}
|
|
483
|
+
>
|
|
484
|
+
{getTicketsLabel || 'GET TICKETS'}
|
|
485
|
+
</Button>
|
|
486
|
+
)}
|
|
474
487
|
{isLogged && !hideSessionButtons ? (
|
|
475
488
|
<div className="session-wrapper">
|
|
476
489
|
<span className="session-container">
|
|
@@ -501,6 +514,20 @@ export const TicketsContainer = ({
|
|
|
501
514
|
<LoginModal onClose={handleOnClose} onLogin={handleOnLogin} />
|
|
502
515
|
) : null}
|
|
503
516
|
</div>
|
|
517
|
+
{enableInfluencersSection && influencers.length ? (
|
|
518
|
+
<div className="event-influencers">
|
|
519
|
+
<h3>
|
|
520
|
+
<span>TOP</span> INFLUENCERS
|
|
521
|
+
</h3>
|
|
522
|
+
<ol className="influencer-list">
|
|
523
|
+
{influencers.map((influencer: IInfluencer, i: number) => (
|
|
524
|
+
<li className="influencer-item" key={i}>
|
|
525
|
+
{`${influencer.firstName} ${influencer.lastName?.charAt(0)}`}{' '}
|
|
526
|
+
</li>
|
|
527
|
+
))}
|
|
528
|
+
</ol>
|
|
529
|
+
</div>
|
|
530
|
+
) : null}
|
|
504
531
|
</ThemeProvider>
|
|
505
532
|
)
|
|
506
533
|
}
|