summit-registration-lite 7.0.2 → 7.0.4

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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "pid": 121609,
3
+ "version": "0.9.6",
4
+ "socketPath": "/home/smarcet/git/fntech/event-site/summit-registration-lite/.codegraph/daemon.sock",
5
+ "startedAt": 1780427591594
6
+ }
@@ -8,11 +8,10 @@
8
8
  .title___DNZyl{font-weight:bold;display:flex;justify-content:space-between}.summary___quWdZ{text-align:right}.promoCode___bqTCw{display:inline-flex}.promoCode___bqTCw abbr{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:10ch}.crossOut___QZ7dy{text-decoration:line-through}.discount___sEK_Q{color:red}.taxes___fe8oJ{display:inline-flex}.taxes___fe8oJ abbr{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:15ch}.promo___F8lPO{font-weight:bold;display:flex;justify-content:flex-end}.form___aoo7w{display:flex;gap:10px;margin-top:10px}.dropdown____HWg0{flex:1 1 auto;min-width:0}.quantity___SIEQZ{flex-shrink:0}.quantity___SIEQZ input,.quantity___SIEQZ button{height:36px;text-align:center;border:1px solid var(--color_input_border_color)}.quantity___SIEQZ input{padding:0 8px;width:48px !important}.quantity___SIEQZ input,.quantity___SIEQZ input:read-only{border:1px solid var(--color_input_border_color);color:var(--color_input_text_color);background-color:var(--color_input_background_color)}.quantity___SIEQZ button{display:flex;align-items:center}.quantity___SIEQZ button:disabled,.quantity___SIEQZ button:disabled:hover{opacity:.65;background:#dedede;border-color:#bebebe}.soldOut___Hatfr{height:36px;padding:0 16px;line-height:34px;font-weight:700px;background:#dedede;border:solid 1px #bebebe;border-radius:5px;opacity:.65;font-weight:700;flex-shrink:0}.moreInfo___LmwOe{display:inline-block;margin-top:4px;font-size:12px}.moreInfoTooltip___nOBf1{max-width:280px}.inPersonDisclaimer___PXGTz{margin-top:15px;padding-right:10px;max-height:150px;overflow-y:auto}
9
9
  .placeholder___pcdCn{border-radius:5px;width:100%;border:1px solid var(--color_input_border_color);background-color:var(--color_input_background_color);padding:5px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;height:36px}.placeholder___pcdCn i{padding:2px 5px;border-left:1px solid var(--color_primary)}.placeholder___pcdCn .selectedTicket___qkbpH{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inPersonDisclaimer___z_DzO{padding:4px}.dropdown___mfbPG{margin-top:10px;border-radius:5px;width:100%;border:1px solid var(--color_input_border_color);color:var(--color_input_text_color);background-color:var(--color_input_background_color);cursor:pointer}.dropdown___mfbPG div{padding:5px}.dropdown___mfbPG div:hover{border-radius:5px;background-color:var(--color_primary50);color:var(--color_input_text_color)}.soldOut___rBLC0,.soldOut___rBLC0:hover,.soldOut___rBLC0:focus{color:inherit !important;background-color:#dedede !important;opacity:.65;cursor:not-allowed}
10
10
  .promoCodeWrapper___aw3Zx{padding-top:16px;display:flex;flex-direction:column;gap:8px}.promoCodeWrapper___aw3Zx span{color:var(--color_text_dark);font-size:14px;font-weight:600;line-height:140%}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET{display:flex;align-items:center;position:relative;height:36px;max-width:400px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET input{display:inline-flex;padding:13px 8px;width:70%;height:100%;color:var(--color_input_text_color);background-color:var(--color_input_background_color);border:1px solid var(--color_input_border_color);border-right:none;border-radius:5px 0px 0px 5px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET input.promoCodeActive___j7xnn{padding-right:25px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:var(--color_gray_dark, #333) !important;background-color:var(--color_gray_lighter, #f5f5f5) !important}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5{display:flex;align-items:center;width:30%;height:100%;background-color:#818181;border-radius:0px 5px 5px 0px}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5.noCode___YUmVy{background-color:#cfcfcf;cursor:not-allowed}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .codeButtonWrapper___jVZh5 button{color:#fff;font-size:14px;font-style:normal;font-weight:600;line-height:120%;letter-spacing:-0.14px;width:100%;height:100%;border:none;background-color:rgba(0,0,0,0)}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .statusIcon___l1uV0{position:absolute;right:32%;font-size:16px;font-weight:bold;line-height:1}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .valid___pDUq_{color:#92cd76}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .invalid___UO9dX{color:#d32f2f}.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET .spinner___SKEJg{width:16px;height:16px;border:2px solid var(--color_gray_light);border-top-color:var(--color_primary);border-radius:50%;animation:spin___wP5uK .6s linear infinite;font-size:0}@keyframes spin___wP5uK{to{transform:rotate(360deg)}}.promoCodeWrapper___aw3Zx .moreInfo___Ru3Rv{display:inline-block;margin-top:-4px;font-size:12px}@media screen and (max-width: 540px){.promoCodeWrapper___aw3Zx .promoCodeInput___rDiET{max-width:100%}.promoCodeWrapper___aw3Zx .moreInfo___Ru3Rv{display:none}}.moreInfoTooltip___eaYWm{max-width:280px}
11
- .notice____Pa2z{margin-top:10px;padding:10px 12px;border-radius:4px;font-size:13px}.notice____Pa2z>div+div{margin-top:1px}.error___WzZms{background-color:#fff0f0;border:1px solid #ffcdd2;color:#d32f2f}.info___WFfzs{background-color:#f0f7ff;border:1px solid #b8daff;color:inherit}.icon___YWZms{margin-right:6px}
11
+ .notice____Pa2z{display:flex;align-items:flex-start;gap:6px;margin-top:10px;padding:10px 12px;border-radius:4px;font-size:13px}.content___sR1Ps{flex:1}.content___sR1Ps>div+div{margin-top:1px}.error___WzZms{background-color:#fff0f0;border:1px solid #ffcdd2;color:#d32f2f}.info___WFfzs{background-color:#f0f7ff;border:1px solid #b8daff;color:inherit}.icon___YWZms{flex-shrink:0;line-height:1.4}
12
12
  .button___MZBIY[disabled]{background-color:var(--color_secondary_contrast) !important}.button___MZBIY{font-weight:bold !important;font-size:1em !important;cursor:pointer !important;border:1px solid var(--color_input_border_color) !important;color:var(--color_input_text_color) !important;background-color:var(--color_input_background_color) !important}.button___MZBIY:hover{color:var(--color_input_text_color) !important}.button___MZBIY:active,.button___MZBIY:focus{color:var(--color_input_text_color) !important}.outerWrapper___XRnaq{padding:10px 0px 10px 10px;margin:10px}.outerWrapper___XRnaq .innerWrapper___LFsOH{display:flex;justify-content:space-between;align-items:center}.outerWrapper___XRnaq .innerWrapper___LFsOH span{font-size:14px}.outerWrapper___XRnaq .innerWrapper___LFsOH .registration___jdf6T{cursor:pointer;color:var(--color_primary);text-decoration:underline}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y{display:flex}.outerWrapper___XRnaq .innerWrapper___LFsOH .actions___Gsf0y button{margin-left:10px}
13
13
  .button___XMN8a[disabled]{background-color:var(--color_secondary_contrast) !important}.button___XMN8a{font-weight:bold !important;font-size:1em !important;cursor:pointer !important;border:1px solid var(--color_input_border_color) !important;color:var(--color_input_text_color) !important;background-color:var(--color_input_background_color) !important}.button___XMN8a:hover{color:var(--color_input_text_color) !important}.button___XMN8a:active,.button___XMN8a:focus{color:var(--color_input_text_color) !important}.wrapper___Jd5Xg{height:370px;display:flex;flex-direction:column;align-items:center;justify-content:space-around;margin:15px 0;padding:15px;border-radius:5px;border:1px solid var(--color_input_border_color);text-align:center}.wrapper___Jd5Xg .circle___lcN86{margin-bottom:10px;background-color:var(--color_input_background_color);border-radius:50px;border:1px solid var(--color_text_dark);padding:10px}.wrapper___Jd5Xg .circle___lcN86 i{font-size:36px;color:var(--color_text_dark)}.wrapper___Jd5Xg .complete___HAHzl{font-weight:bold;font-size:20px}.wrapper___Jd5Xg .actions___jJdPX{display:flex}.wrapper___Jd5Xg button{margin:10px 5px 0 5px;background-color:var(--color_button_background_color) !important;color:var(--color_button_color) !important}.wrapper___Jd5Xg span{font-size:14px}.wrapper___Jd5Xg a{color:var(--color_text_dark);text-decoration:underline}.wrapper___Jd5Xg .footer___FL9TW{font-size:14px;font-weight:normal}
14
14
  .ticketOwnedWrapper___nhkDY{margin:10px}.ticketOwnedWrapper___nhkDY span{display:block}.alert___c49oP{margin:0 !important}
15
- .noAllowedWrapper___k52of{margin:10px}.alert___McKm0{margin:0 !important}
16
15
  .ticketTaxesErrorWrapper___ldztd{margin:10px;min-height:150px;display:flex;flex-direction:column}.ticketTaxesErrorWrapper___ldztd button{width:100px;align-self:center;margin:10px 5px 0 5px}.alert___AM17V{margin:0 !important;text-align:center;padding:30px}
17
16
  #modal___G3Cmq{padding:100px 0;overflow-y:auto}.modalContent___lIaqw{overflow:initial}@media screen and (min-width: 769px){.modalContent___lIaqw{width:720px}}.outerWrapper___OWXyi{border:1px solid var(--color_input_border_color);background-color:var(--color_background_light);border-radius:5px}.innerWrapper___mIrBF{padding:10px}.title___Tbvkl{display:flex;justify-content:center;align-items:center;border-bottom:1px solid var(--color_input_border_color);margin:0px -10px;padding:0px 15px 5px}.title___Tbvkl i{cursor:pointer;margin-left:auto}.title___Tbvkl span{width:100%;font-weight:bold;font-size:18px;text-align:center;color:var(--color_text_dark)}
18
17
 
@@ -1344,7 +1344,7 @@ LoginComponent.defaultProps = {
1344
1344
 
1345
1345
  /***/ }),
1346
1346
 
1347
- /***/ 95:
1347
+ /***/ 868:
1348
1348
  /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1349
1349
 
1350
1350
  "use strict";
@@ -3000,17 +3000,19 @@ const PromoCodeInput = ({
3000
3000
  /* harmony default export */ const promocode_input = (PromoCodeInput);
3001
3001
  ;// CONCATENATED MODULE: ./src/components/ticket-notice/index.module.scss
3002
3002
  // extracted by mini-css-extract-plugin
3003
- /* harmony default export */ const ticket_notice_index_module = ({"notice":"notice____Pa2z","error":"error___WzZms","info":"info___WFfzs","icon":"icon___YWZms"});
3003
+ /* harmony default export */ const ticket_notice_index_module = ({"notice":"notice____Pa2z","content":"content___sR1Ps","error":"error___WzZms","info":"info___WFfzs","icon":"icon___YWZms"});
3004
3004
  ;// CONCATENATED MODULE: ./src/components/ticket-notice/index.js
3005
3005
 
3006
3006
  // `message` is either a single string or an array of strings. Arrays render
3007
3007
  // stacked consecutively inside the same notice box. Returns null when the
3008
3008
  // message is empty/unset so callers can pass conditional arrays without an
3009
- // outer guard.
3009
+ // outer guard. Pass `html` when the message is admin-authored HTML (e.g.
3010
+ // marketing settings) that needs link rendering.
3010
3011
 
3011
3012
  const TicketNotice = ({
3012
3013
  message,
3013
- variant = 'info'
3014
+ variant = 'info',
3015
+ html = false
3014
3016
  }) => {
3015
3017
  const items = Array.isArray(message) ? message : message ? [message] : [];
3016
3018
  if (items.length === 0) return null;
@@ -3018,9 +3020,16 @@ const TicketNotice = ({
3018
3020
  className: `${ticket_notice_index_module.notice} ${ticket_notice_index_module[variant]}`
3019
3021
  }, variant === 'error' && /*#__PURE__*/external_react_default().createElement("span", {
3020
3022
  className: ticket_notice_index_module.icon
3021
- }, "\u26A0"), items.map((m, i) => /*#__PURE__*/external_react_default().createElement("div", {
3023
+ }, "\u26A0"), /*#__PURE__*/external_react_default().createElement("div", {
3024
+ className: ticket_notice_index_module.content
3025
+ }, items.map((m, i) => html ? /*#__PURE__*/external_react_default().createElement("div", {
3026
+ key: i,
3027
+ dangerouslySetInnerHTML: {
3028
+ __html: m
3029
+ }
3030
+ }) : /*#__PURE__*/external_react_default().createElement("div", {
3022
3031
  key: i
3023
- }, m)));
3032
+ }, m))));
3024
3033
  };
3025
3034
 
3026
3035
  /* harmony default export */ const ticket_notice = (TicketNotice);
@@ -3075,7 +3084,7 @@ const TicketTypeComponent = ({
3075
3084
  promoCode,
3076
3085
  promoCodeAllowsReassign = true,
3077
3086
  trackViewItem,
3078
- noTicketsAvailableMessage
3087
+ noAllowedTicketsMessage
3079
3088
  }) => {
3080
3089
  const {
3081
3090
  state: promoState = {},
@@ -3295,8 +3304,9 @@ const TicketTypeComponent = ({
3295
3304
  }, /*#__PURE__*/external_react_default().createElement("i", {
3296
3305
  className: "fa fa-plus"
3297
3306
  }))))))), !showTicketSelector && /*#__PURE__*/external_react_default().createElement(ticket_notice, {
3298
- message: noTicketsAvailableMessage || external_i18n_react_default().translate("ticket_type.no_tickets_available"),
3299
- variant: "info"
3307
+ message: noAllowedTicketsMessage || external_i18n_react_default().translate("ticket_type.no_tickets_available"),
3308
+ variant: "info",
3309
+ html: !!noAllowedTicketsMessage
3300
3310
  }), /*#__PURE__*/external_react_default().createElement((external_react_tooltip_default()), {
3301
3311
  id: "ticket-quantity-info",
3302
3312
  place: "bottom",
@@ -3629,40 +3639,6 @@ const TicketOwnedComponent = ({
3629
3639
  };
3630
3640
 
3631
3641
  /* harmony default export */ const ticket_owned = (TicketOwnedComponent);
3632
- ;// CONCATENATED MODULE: ./src/components/no-allowed-tickets/index.module.scss
3633
- // extracted by mini-css-extract-plugin
3634
- /* harmony default export */ const no_allowed_tickets_index_module = ({"noAllowedWrapper":"noAllowedWrapper___k52of","alert":"alert___McKm0"});
3635
- ;// CONCATENATED MODULE: ./src/components/no-allowed-tickets/index.js
3636
- /**
3637
- * Copyright 2020 OpenStack Foundation
3638
- * Licensed under the Apache License, Version 2.0 (the "License");
3639
- * you may not use this file except in compliance with the License.
3640
- * You may obtain a copy of the License at
3641
- * http://www.apache.org/licenses/LICENSE-2.0
3642
- * Unless required by applicable law or agreed to in writing, software
3643
- * distributed under the License is distributed on an "AS IS" BASIS,
3644
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3645
- * See the License for the specific language governing permissions and
3646
- * limitations under the License.
3647
- **/
3648
-
3649
-
3650
-
3651
- const NoAllowedTickets = ({
3652
- noAllowedTicketsMessage
3653
- }) => {
3654
- return /*#__PURE__*/React.createElement("div", {
3655
- className: styles.noAllowedWrapper
3656
- }, /*#__PURE__*/React.createElement("div", {
3657
- className: `${styles.alert} alert alert-warning`,
3658
- role: "alert",
3659
- dangerouslySetInnerHTML: {
3660
- __html: noAllowedTicketsMessage
3661
- }
3662
- }));
3663
- };
3664
-
3665
- /* harmony default export */ const no_allowed_tickets = ((/* unused pure expression or super */ null && (NoAllowedTickets)));
3666
3642
  ;// CONCATENATED MODULE: ./src/components/ticket-taxes-error/index.module.scss
3667
3643
  // extracted by mini-css-extract-plugin
3668
3644
  /* harmony default export */ const ticket_taxes_error_index_module = ({"ticketTaxesErrorWrapper":"ticketTaxesErrorWrapper___ldztd","alert":"alert___AM17V"});
@@ -3702,7 +3678,7 @@ const TicketTaxesError = ({
3702
3678
 
3703
3679
  /* harmony default export */ const ticket_taxes_error = (TicketTaxesError);
3704
3680
  ;// CONCATENATED MODULE: ./src/components/registration-form/index.js
3705
- const registration_form_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicketWithProvider", "trackEvent", "onPurchaseComplete", "getTicketTypesAndTaxes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "passwordlessCodeLifeTime", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToMyOrders", "goToEvent", "profileData", "summitData", "supportEmail", "ticketOwned", "ownedTickets", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError", "providerOptions", "invitation", "loginInitialEmailInputValue", "getMyInvitation", "showMultipleTicketTexts", "noAllowedTicketsMessage", "noTicketsAvailableMessage", "ticketTaxesErrorMessage", "authErrorCallback", "clearWidgetState", "allowPromoCodes", "showCompanyInput", "companyDDLPlaceholder", "nowUtc", "updateClock", "completedExtraQuestions", "loadProfileData", "closeWidget", "hasVirtualAccessLevel", "hidePostalCode", "onError", "successfulPaymentReturnUrl", "idpLogoLight", "idpLogoDark", "idpLogoAlt", "showCompanyInputDefaultOptions", "companyDDLOptions2Show", "promoCode", "promoCodeVerified", "promoCodeValidating", "promoCodeAllowsReassign", "discoveredPromoCodes", "hasDiscount", "getTicketDiscount", "removePromoCode", "applyPromoCode", "validatePromoCode", "discoverPromoCodes", "startWidgetLoading", "stopWidgetLoading", "closeHandlerRef"];
3681
+ const registration_form_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicketWithProvider", "trackEvent", "onPurchaseComplete", "getTicketTypesAndTaxes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "passwordlessCodeLifeTime", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToMyOrders", "goToEvent", "profileData", "summitData", "supportEmail", "ticketOwned", "ownedTickets", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError", "providerOptions", "invitation", "loginInitialEmailInputValue", "getMyInvitation", "showMultipleTicketTexts", "noAllowedTicketsMessage", "ticketTaxesErrorMessage", "authErrorCallback", "clearWidgetState", "allowPromoCodes", "showCompanyInput", "companyDDLPlaceholder", "nowUtc", "updateClock", "completedExtraQuestions", "loadProfileData", "closeWidget", "hasVirtualAccessLevel", "hidePostalCode", "onError", "successfulPaymentReturnUrl", "idpLogoLight", "idpLogoDark", "idpLogoAlt", "showCompanyInputDefaultOptions", "companyDDLOptions2Show", "promoCode", "promoCodeVerified", "promoCodeValidating", "promoCodeAllowsReassign", "discoveredPromoCodes", "hasDiscount", "getTicketDiscount", "removePromoCode", "applyPromoCode", "validatePromoCode", "discoverPromoCodes", "startWidgetLoading", "stopWidgetLoading", "closeHandlerRef"];
3706
3682
 
3707
3683
  function registration_form_ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3708
3684
 
@@ -3751,7 +3727,6 @@ function registration_form_objectWithoutPropertiesLoose(source, excluded) { if (
3751
3727
 
3752
3728
 
3753
3729
 
3754
-
3755
3730
 
3756
3731
 
3757
3732
  let language = (0,utils/* getCurrentUserLanguage */.AS)();
@@ -3815,7 +3790,6 @@ const RegistrationFormContent = _ref => {
3815
3790
  getMyInvitation,
3816
3791
  showMultipleTicketTexts,
3817
3792
  noAllowedTicketsMessage,
3818
- noTicketsAvailableMessage,
3819
3793
  ticketTaxesErrorMessage,
3820
3794
  authErrorCallback,
3821
3795
  clearWidgetState,
@@ -3863,9 +3837,12 @@ const RegistrationFormContent = _ref => {
3863
3837
  },
3864
3838
  errors: []
3865
3839
  });
3840
+ const [hasTicketData, setHasTicketData] = (0,external_react_.useState)(false);
3866
3841
  const [ticketDataError, setTicketDataError] = (0,external_react_.useState)(false);
3867
- const [ticketDataLoaded, setTicketDataLoaded] = (0,external_react_.useState)(false);
3868
3842
  const [unappliedCodeWarning, setUnappliedCodeWarning] = (0,external_react_.useState)(null);
3843
+ const isAuthenticated = !!profileData;
3844
+ const summitId = summitData?.id;
3845
+ const userId = profileData?.id;
3869
3846
  const {
3870
3847
  values: formValues,
3871
3848
  errors: formErrors
@@ -3880,12 +3857,11 @@ const RegistrationFormContent = _ref => {
3880
3857
  publicKey,
3881
3858
  provider
3882
3859
  } = (0,utils/* getCurrentProvider */.U5)(summitData);
3883
- const allowedTicketTypes = ticketDataLoaded ? ticketTypes.filter(tt => tt.sub_type === constants.TICKET_TYPE_SUBTYPE_PREPAID || tt.sales_start_date === null && tt.sales_end_date === null || nowUtc >= tt.sales_start_date && nowUtc <= tt.sales_end_date) : [];
3884
- const noAvailableTickets = (0,external_react_.useMemo)(() => profileData && ticketDataLoaded && !ticketDataError && allowedTicketTypes.length === 0 && step !== constants.STEP_COMPLETE, [profileData, ticketDataLoaded, ticketDataError, allowedTicketTypes, step]);
3885
- const alreadyOwnedTickets = (0,external_react_.useMemo)(() => profileData && ticketDataLoaded && !ticketDataError && allowedTicketTypes.length > 0 && ownedTickets.length > 0, [profileData, ticketDataLoaded, ticketDataError, allowedTicketTypes, ownedTickets]);
3860
+ const allowedTicketTypes = (0,external_react_.useMemo)(() => hasTicketData ? ticketTypes.filter(tt => tt.sub_type === constants.TICKET_TYPE_SUBTYPE_PREPAID || tt.sales_start_date === null && tt.sales_end_date === null || nowUtc >= tt.sales_start_date && nowUtc <= tt.sales_end_date) : [], [hasTicketData, ticketTypes, nowUtc]);
3861
+ const alreadyOwnedTickets = (0,external_react_.useMemo)(() => isAuthenticated && hasTicketData && !ticketDataError && allowedTicketTypes.length > 0 && ownedTickets.length > 0, [isAuthenticated, hasTicketData, ticketDataError, allowedTicketTypes, ownedTickets]);
3886
3862
  (0,external_react_.useEffect)(() => {
3887
3863
  if (profileData) loadProfileData(profileData);
3888
- }, [profileData]);
3864
+ }, [userId]);
3889
3865
  (0,external_react_.useEffect)(() => {
3890
3866
  loadSession(registration_form_objectSpread(registration_form_objectSpread({}, rest), {}, {
3891
3867
  summitData,
@@ -3897,12 +3873,12 @@ const RegistrationFormContent = _ref => {
3897
3873
  }
3898
3874
  }, []);
3899
3875
  (0,external_react_.useEffect)(() => {
3900
- if (summitData && profileData) {
3901
- const ensureInvitation = () => summitData.invite_only_registration ? getMyInvitation(summitData.id) : Promise.resolve();
3876
+ if (summitId && isAuthenticated) {
3877
+ const ensureInvitation = () => summitData.invite_only_registration ? getMyInvitation(summitId) : Promise.resolve();
3902
3878
 
3903
- ensureInvitation().catch(e => console.log(e)).finally(() => handleGetTicketTypesAndTaxes(summitData.id));
3879
+ ensureInvitation().catch(e => console.log(e)).finally(() => handleGetTicketTypesAndTaxes(summitId));
3904
3880
  }
3905
- }, [summitData?.id, profileData]);
3881
+ }, [summitId, isAuthenticated]);
3906
3882
  (0,external_react_.useEffect)(() => {
3907
3883
  if (step > constants.STEP_SELECT_TICKET_TYPE && !registrationForm.values?.ticketType && !reservation) {
3908
3884
  changeStep(constants.STEP_SELECT_TICKET_TYPE);
@@ -3913,10 +3889,10 @@ const RegistrationFormContent = _ref => {
3913
3889
  }, [step]); // Discovery: fetch qualifying promo codes after auth
3914
3890
 
3915
3891
  (0,external_react_.useEffect)(() => {
3916
- if (profileData && summitData?.id) {
3917
- discoverPromoCodes(summitData.id);
3892
+ if (isAuthenticated && summitId) {
3893
+ discoverPromoCodes(summitId);
3918
3894
  }
3919
- }, [profileData, summitData?.id]);
3895
+ }, [isAuthenticated, summitId]);
3920
3896
  const handleFormPromoCodeChange = (0,external_react_.useCallback)(code => mergeFormValues({
3921
3897
  promoCode: code
3922
3898
  }), [mergeFormValues]);
@@ -3929,7 +3905,7 @@ const RegistrationFormContent = _ref => {
3929
3905
  removePromoCode,
3930
3906
  validatePromoCode,
3931
3907
  setFormPromoCode: handleFormPromoCodeChange,
3932
- ticketDataLoaded: ticketDataLoaded && !ticketDataError,
3908
+ ticketDataLoaded: hasTicketData && !ticketDataError,
3933
3909
  hasTickets: allowedTicketTypes.length > 0
3934
3910
  }); // Local destructure for readability at call sites.
3935
3911
 
@@ -3988,8 +3964,9 @@ const RegistrationFormContent = _ref => {
3988
3964
 
3989
3965
  const handleGetTicketTypesAndTaxes = summitId => {
3990
3966
  setTicketDataError(false);
3991
- setTicketDataLoaded(false);
3992
- getTicketTypesAndTaxes(summitId).catch(error => {
3967
+ getTicketTypesAndTaxes(summitId).then(() => {
3968
+ setHasTicketData(true);
3969
+ }).catch(error => {
3993
3970
  let {
3994
3971
  message
3995
3972
  } = error;
@@ -4000,8 +3977,6 @@ const RegistrationFormContent = _ref => {
4000
3977
  }
4001
3978
 
4002
3979
  setTicketDataError(true);
4003
- }).finally(() => {
4004
- setTicketDataLoaded(true);
4005
3980
  });
4006
3981
  };
4007
3982
 
@@ -4049,12 +4024,11 @@ const RegistrationFormContent = _ref => {
4049
4024
  trackEvent(constants.PURCHASE_COMPLETE, {
4050
4025
  order
4051
4026
  });
4052
- }; // If user is logged in but ticket data hasn't loaded yet (and no error occurred),
4053
- // don't render to avoid flash. Uses local state instead of Redux to prevent
4054
- // race conditions with redux-persist rehydration.
4027
+ }; // Authenticated first-load: wait until ticket data is in before rendering
4028
+ // to avoid a flash of empty/wrong state.
4055
4029
 
4056
4030
 
4057
- if (profileData && !ticketDataLoaded && !ticketDataError) return null;
4031
+ if (isAuthenticated && !hasTicketData && !ticketDataError) return null;
4058
4032
  return /*#__PURE__*/external_react_default().createElement("div", {
4059
4033
  className: "summit-registration-lite"
4060
4034
  }, /*#__PURE__*/external_react_default().createElement((ajaxloader_default()), {
@@ -4107,7 +4081,7 @@ const RegistrationFormContent = _ref => {
4107
4081
  changeForm: mergeFormValues,
4108
4082
  trackViewItem: trackViewItem,
4109
4083
  showMultipleTicketTexts: showMultipleTicketTexts,
4110
- noTicketsAvailableMessage: noTicketsAvailableMessage
4084
+ noAllowedTicketsMessage: noAllowedTicketsMessage
4111
4085
  }), /*#__PURE__*/external_react_default().createElement(personal_information, {
4112
4086
  isActive: step === constants.STEP_PERSONAL_INFO,
4113
4087
  reservation: reservation,
@@ -4311,8 +4285,8 @@ var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_)
4311
4285
  // EXTERNAL MODULE: external "prop-types"
4312
4286
  var external_prop_types_ = __webpack_require__(580);
4313
4287
  var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_prop_types_);
4314
- // EXTERNAL MODULE: ./src/components/registration-form/index.js + 46 modules
4315
- var registration_form = __webpack_require__(95);
4288
+ // EXTERNAL MODULE: ./src/components/registration-form/index.js + 44 modules
4289
+ var registration_form = __webpack_require__(868);
4316
4290
  // EXTERNAL MODULE: ./src/utils/withReduxProvider.js + 9 modules
4317
4291
  var withReduxProvider = __webpack_require__(974);
4318
4292
  ;// CONCATENATED MODULE: ./src/styles/general.module.scss
@@ -4427,7 +4401,6 @@ RegistrationModal.propTypes = {
4427
4401
  initialOrderComplete1stParagraph: (external_prop_types_default()).string,
4428
4402
  initialOrderComplete2ndParagraph: (external_prop_types_default()).string,
4429
4403
  initialOrderCompleteButton: (external_prop_types_default()).string,
4430
- noTicketsAvailableMessage: (external_prop_types_default()).string,
4431
4404
  orderCompleteTitle: (external_prop_types_default()).string,
4432
4405
  orderComplete1stParagraph: (external_prop_types_default()).string,
4433
4406
  orderComplete2ndParagraph: (external_prop_types_default()).string,
@@ -5424,7 +5397,7 @@ __webpack_require__.r(__webpack_exports__);
5424
5397
  /* harmony import */ var _login__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(462);
5425
5398
  /* harmony import */ var _login_passwordless__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(590);
5426
5399
  /* harmony import */ var _registration_modal__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(889);
5427
- /* harmony import */ var _registration_form__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95);
5400
+ /* harmony import */ var _registration_form__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(868);
5428
5401
  /**
5429
5402
  * Copyright 2026 OpenStack Foundation
5430
5403
  * Licensed under the Apache License, Version 2.0 (the "License");