summit-registration-lite 4.0.1 → 4.0.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/index.js CHANGED
@@ -81,6 +81,11 @@ const PasswordlessLoginComponent = ({
81
81
  getLoginCode(email, getPasswordlessCode);
82
82
  };
83
83
 
84
+ const handleSubmit = e => {
85
+ e.preventDefault();
86
+ tryPasswordlessLogin(otpCode);
87
+ };
88
+
84
89
  return /*#__PURE__*/external_react_default().createElement("div", {
85
90
  className: `${index_module.passwordlessWrapper} step-wrapper`
86
91
  }, /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("div", {
@@ -96,6 +101,8 @@ const PasswordlessLoginComponent = ({
96
101
  "data-testid": "code-digits"
97
102
  }, "Add the ", codeLength, " digit code below")), /*#__PURE__*/external_react_default().createElement("div", {
98
103
  className: index_module.codeInput
104
+ }, /*#__PURE__*/external_react_default().createElement("form", {
105
+ onSubmit: handleSubmit
99
106
  }, /*#__PURE__*/external_react_default().createElement((external_react_otp_input_default()), {
100
107
  value: otpCode,
101
108
  onChange: code => setOtpCode(code),
@@ -106,7 +113,12 @@ const PasswordlessLoginComponent = ({
106
113
  border: '1px solid #e5424d'
107
114
  },
108
115
  "data-testid": "otp-input"
109
- })), codeError && /*#__PURE__*/external_react_default().createElement("span", {
116
+ }), /*#__PURE__*/external_react_default().createElement("button", {
117
+ style: {
118
+ display: 'none'
119
+ },
120
+ type: "submit"
121
+ }))), codeError && /*#__PURE__*/external_react_default().createElement("span", {
110
122
  className: index_module.error,
111
123
  "data-testid": "error"
112
124
  }, "The code you entered it's incorrect. ", /*#__PURE__*/external_react_default().createElement("br", null), " Please try again."), /*#__PURE__*/external_react_default().createElement("div", {
@@ -185,7 +197,8 @@ const LoginComponent = ({
185
197
  allowsOtpAuthlogin,
186
198
  getLoginCode,
187
199
  getPasswordlessCode,
188
- initialEmailValue
200
+ initialEmailValue,
201
+ title
189
202
  }) => {
190
203
  const [email, setEmail] = (0,external_react_.useState)(initialEmailValue);
191
204
  const [emailError, setEmailError] = (0,external_react_.useState)();
@@ -210,7 +223,7 @@ const LoginComponent = ({
210
223
  className: `${index_module.innerWrapper}`
211
224
  }, /*#__PURE__*/external_react_default().createElement("div", {
212
225
  className: index_module.loginCode
213
- }, "Enter your email to begin registration:", /*#__PURE__*/external_react_default().createElement("div", {
226
+ }, title, /*#__PURE__*/external_react_default().createElement("div", {
214
227
  className: index_module.input
215
228
  }, /*#__PURE__*/external_react_default().createElement("input", {
216
229
  placeholder: "youremail@example.com",
@@ -274,12 +287,14 @@ LoginComponent.propTypes = {
274
287
  allowsOtpAuthlogin: (external_prop_types_default()).bool,
275
288
  getLoginCode: (external_prop_types_default()).func.isRequired,
276
289
  getPasswordlessCode: (external_prop_types_default()).func,
277
- initialEmailValue: (external_prop_types_default()).string
290
+ initialEmailValue: (external_prop_types_default()).string,
291
+ title: (external_prop_types_default()).string
278
292
  };
279
293
  LoginComponent.defaultProps = {
280
294
  allowsNativeAuth: true,
281
295
  allowsOtpAuthlogin: false,
282
- initialEmailValue: ''
296
+ initialEmailValue: '',
297
+ title: 'Enter your email to begin registration:'
283
298
  };
284
299
  /* harmony default export */ const login = (LoginComponent);
285
300
 
@@ -693,11 +708,16 @@ const GO_TO_LOGIN = 'GO_TO_LOGIN';
693
708
  const GET_MY_INVITATION = 'GET_MY_INVITATION';
694
709
  const CLEAR_MY_INVITATION = 'CLEAR_MY_INVITATION';
695
710
  const CLEAR_WIDGET_STATE = 'CLEAR_WIDGET_STATE';
711
+ const UPDATE_CLOCK = 'UPDATE_CLOCK';
712
+ const LOAD_PROFILE_DATA = 'LOAD_PROFILE_DATA';
696
713
  const startWidgetLoading = (0,actions_namespaceObject.createAction)(START_WIDGET_LOADING);
697
714
  const stopWidgetLoading = (0,actions_namespaceObject.createAction)(STOP_WIDGET_LOADING);
698
715
  const loadSession = settings => dispatch => {
699
716
  dispatch((0,actions_namespaceObject.createAction)(LOAD_INITIAL_VARS)(settings));
700
717
  };
718
+ const loadProfileData = profileData => dispatch => {
719
+ dispatch((0,actions_namespaceObject.createAction)(LOAD_PROFILE_DATA)(profileData));
720
+ };
701
721
  const clearWidgetState = () => dispatch => {
702
722
  dispatch((0,actions_namespaceObject.createAction)(CLEAR_WIDGET_STATE)({}));
703
723
  };
@@ -1048,6 +1068,11 @@ const getMyInvitation = summitId => async (dispatch, getState, {
1048
1068
  return Promise.reject(e);
1049
1069
  }
1050
1070
  };
1071
+ const updateClock = timestamp => dispatch => {
1072
+ dispatch((0,actions_namespaceObject.createAction)(UPDATE_CLOCK)({
1073
+ timestamp
1074
+ }));
1075
+ };
1051
1076
  ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/security/actions"
1052
1077
  const security_actions_namespaceObject = require("openstack-uicore-foundation/lib/security/actions");
1053
1078
  ;// CONCATENATED MODULE: ./src/reducer.js
@@ -1071,6 +1096,7 @@ function reducer_defineProperty(obj, key, value) { if (key in obj) { Object.defi
1071
1096
  **/
1072
1097
 
1073
1098
 
1099
+ const localNowUtc = Date.now();
1074
1100
  const DEFAULT_STATE = {
1075
1101
  reservation: null,
1076
1102
  checkout: null,
@@ -1093,7 +1119,8 @@ const DEFAULT_STATE = {
1093
1119
  summitId: null,
1094
1120
  marketingData: null,
1095
1121
  userProfile: null
1096
- }
1122
+ },
1123
+ nowUtc: localNowUtc
1097
1124
  };
1098
1125
 
1099
1126
  const RegistrationLiteReducer = (state = DEFAULT_STATE, action) => {
@@ -1159,6 +1186,15 @@ const RegistrationLiteReducer = (state = DEFAULT_STATE, action) => {
1159
1186
  })
1160
1187
  });
1161
1188
 
1189
+ case LOAD_PROFILE_DATA:
1190
+ {
1191
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
1192
+ settings: reducer_objectSpread(reducer_objectSpread({}, state.settings), {}, {
1193
+ userProfile: payload
1194
+ })
1195
+ });
1196
+ }
1197
+
1162
1198
  case CHANGE_STEP:
1163
1199
  {
1164
1200
  return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
@@ -1268,6 +1304,16 @@ const RegistrationLiteReducer = (state = DEFAULT_STATE, action) => {
1268
1304
  });
1269
1305
  }
1270
1306
 
1307
+ case UPDATE_CLOCK:
1308
+ {
1309
+ const {
1310
+ timestamp
1311
+ } = payload;
1312
+ return reducer_objectSpread(reducer_objectSpread({}, state), {}, {
1313
+ nowUtc: timestamp
1314
+ });
1315
+ }
1316
+
1271
1317
  default:
1272
1318
  {
1273
1319
  return state;
@@ -1336,6 +1382,9 @@ const constants_namespaceObject = require("openstack-uicore-foundation/lib/secur
1336
1382
  ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/components/ajaxloader"
1337
1383
  const ajaxloader_namespaceObject = require("openstack-uicore-foundation/lib/components/ajaxloader");
1338
1384
  var ajaxloader_default = /*#__PURE__*/__webpack_require__.n(ajaxloader_namespaceObject);
1385
+ ;// CONCATENATED MODULE: external "openstack-uicore-foundation/lib/components/clock"
1386
+ const clock_namespaceObject = require("openstack-uicore-foundation/lib/components/clock");
1387
+ var clock_default = /*#__PURE__*/__webpack_require__.n(clock_namespaceObject);
1339
1388
  ;// CONCATENATED MODULE: ./src/styles/general.module.scss
1340
1389
  // extracted by mini-css-extract-plugin
1341
1390
  /* harmony default export */ const general_module = ({"modal":"modal___G3Cmq","modalContent":"modalContent___lIaqw","outerWrapper":"outerWrapper___OWXyi","innerWrapper":"innerWrapper___mIrBF","title":"title___Tbvkl"});
@@ -1749,6 +1798,7 @@ const StripeForm = ({
1749
1798
  errors
1750
1799
  }
1751
1800
  } = (0,external_react_hook_form_namespaceObject.useForm)();
1801
+ if (!marketingData) return null;
1752
1802
  const stripeStyle = merge_default()({}, {
1753
1803
  base: {
1754
1804
  // Add your base input styles here. For example: #d4e5f4
@@ -2280,7 +2330,6 @@ const getTicketMaxQuantity = ticket => ticket ? Math.min((ticket.quantity_2_sell
2280
2330
 
2281
2331
 
2282
2332
 
2283
-
2284
2333
  const TicketDropdownComponent = ({
2285
2334
  selectedTicket,
2286
2335
  ticketTypes,
@@ -2293,8 +2342,6 @@ const TicketDropdownComponent = ({
2293
2342
  setActive(!active);
2294
2343
  };
2295
2344
 
2296
- const date = new Date();
2297
- let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
2298
2345
  return /*#__PURE__*/external_react_default().createElement("div", {
2299
2346
  className: `${ticket_dropdown_index_module.outerWrapper}`
2300
2347
  }, /*#__PURE__*/external_react_default().createElement("div", {
@@ -2314,19 +2361,17 @@ const TicketDropdownComponent = ({
2314
2361
  className: ticket_dropdown_index_module.dropdown,
2315
2362
  "data-testid": "ticket-list"
2316
2363
  }, ticketTypes.map(t => {
2364
+ console.log('TicketDropdownComponent::render');
2317
2365
  const maxQuantity = getTicketMaxQuantity(t);
2318
2366
  const isTicketSoldOut = maxQuantity < 1;
2319
-
2320
- if (t.sales_start_date === null && t.sales_end_date === null || now_utc >= t.sales_start_date && now_utc <= t.sales_end_date) {
2321
- return /*#__PURE__*/external_react_default().createElement("div", {
2322
- key: t.id,
2323
- className: isTicketSoldOut ? ticket_dropdown_index_module.soldOut : '',
2324
- onClick: () => {
2325
- if (isTicketSoldOut) return;
2326
- ticketSelect(t);
2327
- }
2328
- }, t.name, " -", ` `, !isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, t.currency_symbol, t.cost, " ", t.currency), isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "Sold Out"));
2329
- }
2367
+ return /*#__PURE__*/external_react_default().createElement("div", {
2368
+ key: t.id,
2369
+ className: isTicketSoldOut ? ticket_dropdown_index_module.soldOut : '',
2370
+ onClick: () => {
2371
+ if (isTicketSoldOut) return;
2372
+ ticketSelect(t);
2373
+ }
2374
+ }, t.name, " -", ` `, !isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, t.currency_symbol, t.cost, " ", t.currency), isTicketSoldOut && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "Sold Out"));
2330
2375
  })));
2331
2376
  };
2332
2377
 
@@ -2619,27 +2664,33 @@ const ButtonBarComponent = ({
2619
2664
 
2620
2665
  const PurchaseComplete = ({
2621
2666
  checkout,
2667
+ user,
2622
2668
  onPurchaseComplete,
2623
2669
  goToExtraQuestions,
2624
2670
  goToEvent,
2671
+ goToMyOrders,
2672
+ completedExtraQuestions,
2625
2673
  summit,
2626
- supportEmail = "support@fntech.com"
2674
+ nowUtc,
2675
+ clearWidgetState,
2676
+ closeWidget,
2677
+ supportEmail = 'support@fntech.com'
2627
2678
  }) => {
2628
2679
  (0,external_react_.useEffect)(() => {
2629
2680
  onPurchaseComplete(checkout);
2630
2681
  }, []);
2631
- const date = new Date();
2632
- let now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()) / 1000;
2633
- const isActive = summit.start_date < now_utc && summit.end_date > now_utc;
2682
+ const isActive = (0,external_react_.useMemo)(() => summit.start_date <= nowUtc && summit.end_date >= nowUtc, [summit]);
2683
+ const userFirstTicket = (0,external_react_.useMemo)(() => checkout === null || checkout === void 0 ? void 0 : checkout.tickets.some(t => {
2684
+ var _t$owner;
2685
+
2686
+ return (t === null || t === void 0 ? void 0 : (_t$owner = t.owner) === null || _t$owner === void 0 ? void 0 : _t$owner.email) == (user === null || user === void 0 ? void 0 : user.email);
2687
+ }), [user]);
2688
+ const requireExtraQuestions = (0,external_react_.useMemo)(() => completedExtraQuestions(checkout), [user]);
2634
2689
  const startDateFormatted = {
2635
2690
  date: (0,methods_namespaceObject.epochToMomentTimeZone)(summit.start_date, summit.time_zone_id).format('MMMM D'),
2636
2691
  time: (0,methods_namespaceObject.epochToMomentTimeZone)(summit.start_date, summit.time_zone_id).format('hh:mm A')
2637
2692
  };
2638
-
2639
- const needExtraQuestions = () => {
2640
- return summit.order_extra_questions.some(q => q.mandatory === true) ? true : false;
2641
- };
2642
-
2693
+ if (!checkout) return null;
2643
2694
  return /*#__PURE__*/external_react_default().createElement("div", {
2644
2695
  className: purchase_complete_index_module.wrapper
2645
2696
  }, /*#__PURE__*/external_react_default().createElement("div", {
@@ -2648,22 +2699,51 @@ const PurchaseComplete = ({
2648
2699
  className: "fa fa-ticket"
2649
2700
  })), /*#__PURE__*/external_react_default().createElement("span", {
2650
2701
  className: purchase_complete_index_module.complete
2651
- }, "Your order is complete"), isActive ? needExtraQuestions() ? /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "This ticket requires additional details. ", /*#__PURE__*/external_react_default().createElement("br", null)), /*#__PURE__*/external_react_default().createElement("button", {
2702
+ }, "Your order is complete"), isActive ? userFirstTicket ? requireExtraQuestions ? /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "A ticket has been assigned to you. To complete your additional ticket details, please click the \"Finish Now\" button."), /*#__PURE__*/external_react_default().createElement("button", {
2703
+ className: `${purchase_complete_index_module.button} button`,
2704
+ onClick: () => {
2705
+ clearWidgetState();
2706
+ if (closeWidget) closeWidget();
2707
+ goToExtraQuestions();
2708
+ }
2709
+ }, "Finish Now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("button", {
2652
2710
  className: `${purchase_complete_index_module.button} button`,
2653
- onClick: () => goToExtraQuestions()
2654
- }, "Finish now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("button", {
2711
+ onClick: () => {
2712
+ clearWidgetState();
2713
+ if (closeWidget) closeWidget();
2714
+ goToEvent();
2715
+ }
2716
+ }, "Access event now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "You may visit the My Orders/Tickets tab in the top right-hand corner of the navigation bar to assign/reassign tickets or to complete any required ticket details."), /*#__PURE__*/external_react_default().createElement("button", {
2655
2717
  className: `${purchase_complete_index_module.button} button`,
2656
- onClick: () => goToEvent()
2657
- }, "Access event now")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "The event will start on ", startDateFormatted.date, " at ", startDateFormatted.time, " ", summit.time_zone_label, " ", /*#__PURE__*/external_react_default().createElement("br", null), "This ticket requires additional details."), /*#__PURE__*/external_react_default().createElement("div", {
2718
+ onClick: () => {
2719
+ clearWidgetState();
2720
+ if (closeWidget) closeWidget();
2721
+ goToMyOrders();
2722
+ }
2723
+ }, "View My Orders/Tickets")) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, /*#__PURE__*/external_react_default().createElement("span", null, "The event will start on ", startDateFormatted.date, " at ", startDateFormatted.time, " ", summit.time_zone_label, /*#__PURE__*/external_react_default().createElement("br", null), /*#__PURE__*/external_react_default().createElement("br", null), userFirstTicket ? `A ticket has been assigned to you. To complete your additional ticket details, please click the "Finish Now" button.` : `You may visit the My Orders/Tickets tab in the top right-hand corner of the navigation bar to
2724
+ assign/reassign tickets or to complete any required ticket details.`), /*#__PURE__*/external_react_default().createElement("div", {
2658
2725
  className: purchase_complete_index_module.actions
2659
- }, /*#__PURE__*/external_react_default().createElement("button", {
2726
+ }, userFirstTicket ? /*#__PURE__*/external_react_default().createElement("button", {
2727
+ className: `${purchase_complete_index_module.button} button`,
2728
+ onClick: () => {
2729
+ clearWidgetState();
2730
+ if (closeWidget) closeWidget();
2731
+ goToExtraQuestions();
2732
+ }
2733
+ }, "Finish Now") : /*#__PURE__*/external_react_default().createElement("button", {
2660
2734
  className: `${purchase_complete_index_module.button} button`,
2661
- onClick: () => goToExtraQuestions()
2662
- }, "Finish Now"))), /*#__PURE__*/external_react_default().createElement("span", {
2735
+ onClick: () => {
2736
+ clearWidgetState();
2737
+ if (closeWidget) closeWidget();
2738
+ goToMyOrders();
2739
+ }
2740
+ }, "View My Orders/Tickets"))), /*#__PURE__*/external_react_default().createElement("span", {
2663
2741
  className: purchase_complete_index_module.footer
2664
- }, "For further assistance, please email ", /*#__PURE__*/external_react_default().createElement("a", {
2742
+ }, userFirstTicket ? /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "If you wish to transfer your assigned ticket, close this window and visit the \"My Orders/Tickets\" tab in the top navigation bar. For further assistance, please email ", /*#__PURE__*/external_react_default().createElement("a", {
2743
+ href: `mailto:${supportEmail}`
2744
+ }, supportEmail)) : /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, "For further assistance, please email ", /*#__PURE__*/external_react_default().createElement("a", {
2665
2745
  href: `mailto:${supportEmail}`
2666
- }, supportEmail)));
2746
+ }, supportEmail))));
2667
2747
  };
2668
2748
 
2669
2749
  /* harmony default export */ const purchase_complete = (PurchaseComplete);
@@ -2809,7 +2889,7 @@ const TicketTaxesError = ({
2809
2889
 
2810
2890
  /* harmony default export */ const ticket_taxes_error = (TicketTaxesError);
2811
2891
  ;// CONCATENATED MODULE: ./src/components/registration-lite.js
2812
- const registration_lite_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicketWithProvider", "onPurchaseComplete", "getTicketTypesAndTaxes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToEvent", "goToRegistration", "profileData", "summitData", "supportEmail", "ticketOwned", "ownedTickets", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError", "stripeOptions", "invitation", "loginInitialEmailInputValue", "getMyInvitation", "showMultipleTicketTexts", "noAllowedTicketsMessage", "ticketTaxesErrorMessage", "authErrorCallback", "clearWidgetState", "requestedTicketTypes", "allowPromoCodes", "companyInputPlaceholder", "companyDDLPlaceholder"];
2892
+ const registration_lite_excluded = ["loadSession", "setMarketingSettings", "changeStep", "removeReservedTicket", "reserveTicket", "payTicketWithProvider", "onPurchaseComplete", "getTicketTypesAndTaxes", "getLoginCode", "passwordlessLogin", "goToLogin", "loginOptions", "allowsNativeAuth", "allowsOtpAuth", "reservation", "checkout", "ticketTypes", "taxTypes", "step", "passwordlessCodeSent", "passwordlessEmail", "passwordlessCode", "getPasswordlessCode", "passwordlessCodeError", "loginWithCode", "goToExtraQuestions", "goToMyOrders", "goToEvent", "profileData", "summitData", "supportEmail", "ticketOwned", "ownedTickets", "widgetLoading", "loading", "inPersonDisclaimer", "userProfile", "handleCompanyError", "stripeOptions", "invitation", "loginInitialEmailInputValue", "getMyInvitation", "showMultipleTicketTexts", "noAllowedTicketsMessage", "ticketTaxesErrorMessage", "authErrorCallback", "clearWidgetState", "requestedTicketTypes", "allowPromoCodes", "companyInputPlaceholder", "companyDDLPlaceholder", "nowUtc", "updateClock", "completedExtraQuestions", "loadProfileData", "closeWidget"];
2813
2893
 
2814
2894
  function registration_lite_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; }
2815
2895
 
@@ -2853,6 +2933,7 @@ function registration_lite_objectWithoutPropertiesLoose(source, excluded) { if (
2853
2933
 
2854
2934
 
2855
2935
 
2936
+
2856
2937
 
2857
2938
 
2858
2939
  const RegistrationLite = _ref => {
@@ -2885,8 +2966,8 @@ const RegistrationLite = _ref => {
2885
2966
  passwordlessCodeError,
2886
2967
  loginWithCode,
2887
2968
  goToExtraQuestions,
2969
+ goToMyOrders,
2888
2970
  goToEvent,
2889
- goToRegistration,
2890
2971
  profileData,
2891
2972
  summitData,
2892
2973
  supportEmail,
@@ -2909,7 +2990,12 @@ const RegistrationLite = _ref => {
2909
2990
  requestedTicketTypes,
2910
2991
  allowPromoCodes,
2911
2992
  companyInputPlaceholder,
2912
- companyDDLPlaceholder
2993
+ companyDDLPlaceholder,
2994
+ nowUtc,
2995
+ updateClock,
2996
+ completedExtraQuestions,
2997
+ loadProfileData,
2998
+ closeWidget
2913
2999
  } = _ref,
2914
3000
  rest = registration_lite_objectWithoutProperties(_ref, registration_lite_excluded);
2915
3001
 
@@ -2940,6 +3026,10 @@ const RegistrationLite = _ref => {
2940
3026
  publicKey,
2941
3027
  provider
2942
3028
  } = getCurrentProvider(summitData);
3029
+ (0,external_react_.useEffect)(() => {
3030
+ if (profileData) loadProfileData(profileData);
3031
+ }, [profileData]); // just initial load ( once )
3032
+
2943
3033
  (0,external_react_.useEffect)(() => {
2944
3034
  loadSession(registration_lite_objectSpread(registration_lite_objectSpread({}, rest), {}, {
2945
3035
  summitData,
@@ -2949,7 +3039,7 @@ const RegistrationLite = _ref => {
2949
3039
  if (!profileData) {
2950
3040
  changeStep(0);
2951
3041
  }
2952
- }, [profileData]);
3042
+ }, []);
2953
3043
  (0,external_react_.useEffect)(() => {
2954
3044
  if (summitData && profileData) {
2955
3045
  handleGetTicketTypesAndTaxes(summitData.id);
@@ -3006,7 +3096,8 @@ const RegistrationLite = _ref => {
3006
3096
  // Reset the step when closed to avoid unexpected behavior from `useEffect`s w/in other steps.
3007
3097
  // (i.e., recalling `onPurchaseComplete` after a user completes one order, closes the window, and then reopens the registration widget)
3008
3098
  changeStep(0);
3009
- rest.closeWidget();
3099
+ clearWidgetState();
3100
+ if (closeWidget) closeWidget();
3010
3101
  };
3011
3102
 
3012
3103
  const handleGetTicketTypesAndTaxes = summitId => {
@@ -3026,6 +3117,7 @@ const RegistrationLite = _ref => {
3026
3117
  });
3027
3118
  };
3028
3119
 
3120
+ const allowedTicketTypes = ticketTypes.filter(tt => tt.sales_start_date === null && tt.sales_end_date === null || nowUtc >= tt.sales_start_date && nowUtc <= tt.sales_end_date);
3029
3121
  return /*#__PURE__*/external_react_default().createElement("div", {
3030
3122
  id: `${general_module.modal}`,
3031
3123
  className: "modal is-active"
@@ -3038,6 +3130,9 @@ const RegistrationLite = _ref => {
3038
3130
  color: '#ffffff',
3039
3131
  show: widgetLoading || loading,
3040
3132
  size: 80
3133
+ }), /*#__PURE__*/external_react_default().createElement((clock_default()), {
3134
+ onTick: timestamp => updateClock(timestamp),
3135
+ timezone: summitData.time_zone_id
3041
3136
  }), /*#__PURE__*/external_react_default().createElement("div", {
3042
3137
  className: `${general_module.outerWrapper} summit-registration-lite`
3043
3138
  }, /*#__PURE__*/external_react_default().createElement("div", {
@@ -3051,7 +3146,7 @@ const RegistrationLite = _ref => {
3051
3146
  })), ticketTaxesError && profileData && /*#__PURE__*/external_react_default().createElement(ticket_taxes_error, {
3052
3147
  ticketTaxesErrorMessage: ticketTaxesErrorMessage,
3053
3148
  retryTicketTaxes: () => handleGetTicketTypesAndTaxes(summitData === null || summitData === void 0 ? void 0 : summitData.id)
3054
- }), !ticketTaxesError && profileData && ticketTypes.length === 0 && requestedTicketTypes && /*#__PURE__*/external_react_default().createElement(no_allowed_tickets, {
3149
+ }), !ticketTaxesError && profileData && allowedTicketTypes.length === 0 && requestedTicketTypes && /*#__PURE__*/external_react_default().createElement(no_allowed_tickets, {
3055
3150
  noAllowedTicketsMessage: noAllowedTicketsMessage
3056
3151
  }), !ticketTaxesError && /*#__PURE__*/external_react_default().createElement("div", {
3057
3152
  className: general_module.stepsWrapper
@@ -3072,11 +3167,11 @@ const RegistrationLite = _ref => {
3072
3167
  goToLogin: goToLogin,
3073
3168
  getLoginCode: getLoginCode,
3074
3169
  getPasswordlessCode: getPasswordlessCode
3075
- }), profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticketOwned && /*#__PURE__*/external_react_default().createElement(ticket_owned, {
3170
+ }), profileData && step !== 3 && allowedTicketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement((external_react_default()).Fragment, null, ticketOwned && /*#__PURE__*/external_react_default().createElement(ticket_owned, {
3076
3171
  ownedTickets: ownedTickets,
3077
- ticketTypes: ticketTypes
3172
+ ticketTypes: allowedTicketTypes
3078
3173
  }), /*#__PURE__*/external_react_default().createElement(ticket_type, {
3079
- ticketTypes: ticketTypes,
3174
+ ticketTypes: allowedTicketTypes,
3080
3175
  inPersonDisclaimer: inPersonDisclaimer,
3081
3176
  taxTypes: taxTypes,
3082
3177
  reservation: reservation,
@@ -3114,12 +3209,18 @@ const RegistrationLite = _ref => {
3114
3209
  stripeOptions: stripeOptions
3115
3210
  })))), profileData && step === 3 && /*#__PURE__*/external_react_default().createElement(purchase_complete, {
3116
3211
  checkout: checkout,
3212
+ user: profileData,
3117
3213
  summit: summitData,
3118
3214
  onPurchaseComplete: onPurchaseComplete,
3119
3215
  supportEmail: supportEmail,
3120
3216
  goToEvent: goToEvent,
3121
- goToExtraQuestions: goToExtraQuestions
3122
- })), !ticketTaxesError && profileData && step !== 3 && ticketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement(button_bar, {
3217
+ goToMyOrders: goToMyOrders,
3218
+ goToExtraQuestions: goToExtraQuestions,
3219
+ completedExtraQuestions: completedExtraQuestions,
3220
+ nowUtc: nowUtc,
3221
+ clearWidgetState: clearWidgetState,
3222
+ closeWidget: closeWidget
3223
+ })), !ticketTaxesError && profileData && step !== 3 && allowedTicketTypes.length > 0 && /*#__PURE__*/external_react_default().createElement(button_bar, {
3123
3224
  step: step,
3124
3225
  inPersonDisclaimer: inPersonDisclaimer,
3125
3226
  formValues: formValues,
@@ -3143,7 +3244,8 @@ const registration_lite_mapStateToProps = ({
3143
3244
  passwordlessEmail: registrationLiteState.passwordless.email,
3144
3245
  passwordlessCode: registrationLiteState.passwordless.otp_length,
3145
3246
  passwordlessCodeSent: registrationLiteState.passwordless.code_sent,
3146
- passwordlessCodeError: registrationLiteState.passwordless.error
3247
+ passwordlessCodeError: registrationLiteState.passwordless.error,
3248
+ nowUtc: registrationLiteState.nowUtc
3147
3249
  });
3148
3250
 
3149
3251
  RegistrationLite.defaultProps = {
@@ -3161,7 +3263,11 @@ RegistrationLite.defaultProps = {
3161
3263
  RegistrationLite.propTypes = {
3162
3264
  loginInitialEmailInputValue: (external_prop_types_default()).string,
3163
3265
  showMultipleTicketTexts: (external_prop_types_default()).bool,
3164
- authErrorCallback: (external_prop_types_default()).func
3266
+ authErrorCallback: (external_prop_types_default()).func,
3267
+ goToMyOrders: (external_prop_types_default()).func.isRequired,
3268
+ goToExtraQuestions: (external_prop_types_default()).func.isRequired,
3269
+ completedExtraQuestions: (external_prop_types_default()).func.isRequired,
3270
+ closeWidget: (external_prop_types_default()).func
3165
3271
  };
3166
3272
  /* harmony default export */ const registration_lite = ((0,external_react_redux_namespaceObject.connect)(registration_lite_mapStateToProps, {
3167
3273
  loadSession: loadSession,
@@ -3174,7 +3280,9 @@ RegistrationLite.propTypes = {
3174
3280
  passwordlessLogin: passwordlessLogin,
3175
3281
  goToLogin: goToLogin,
3176
3282
  getMyInvitation: getMyInvitation,
3177
- clearWidgetState: clearWidgetState
3283
+ clearWidgetState: clearWidgetState,
3284
+ updateClock: updateClock,
3285
+ loadProfileData: loadProfileData
3178
3286
  })(RegistrationLite));
3179
3287
  ;// CONCATENATED MODULE: ./src/summit-registration-lite.js
3180
3288
  /**
@@ -3219,4 +3327,5 @@ class RegistrationLiteWidget extends (external_react_default()).PureComponent {
3219
3327
  /******/ return __webpack_exports__;
3220
3328
  /******/ })()
3221
3329
  ;
3222
- });
3330
+ });
3331
+ //# sourceMappingURL=index.js.map