@openeventkit/event-site 2.0.143 → 2.0.145

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/package.json +6 -6
  2. package/src/actions/fetch-entities-actions.js +17 -2
  3. package/src/actions/update-data-actions.js +17 -1
  4. package/src/actions/user-actions.js +17 -5
  5. package/src/components/AttendeeToAttendeeWidgetComponent.js +14 -8
  6. package/src/components/AuthComponent.js +5 -2
  7. package/src/components/ClockComponent.js +7 -10
  8. package/src/components/DisqusComponent.js +69 -94
  9. package/src/components/FullSchedule.js +1 -1
  10. package/src/components/Interstitial/index.js +61 -0
  11. package/src/components/LiteScheduleComponent.js +2 -2
  12. package/src/components/LiveEventWidgetComponent.js +2 -3
  13. package/src/components/PrePostEventSlide/index.js +66 -0
  14. package/src/components/UpcomingEventsComponent.js +2 -2
  15. package/src/components/VimeoPlayer.js +2 -0
  16. package/src/components/summit-my-orders-tickets/components/TicketPopup/TicketPopupEditDetailsForm/TicketPopupEditDetailsForm.js +173 -175
  17. package/src/pages/maintenance.js +2 -4
  18. package/src/reducers/event-reducer.js +14 -1
  19. package/src/routes/ShowOpenRoute.js +5 -5
  20. package/src/routes/WithAuthzRoute.js +5 -5
  21. package/src/routes/WithBadgeRoute.js +5 -5
  22. package/src/routes/WithTicketRoute.js +3 -3
  23. package/src/routes/authorization-callback-route.js +4 -4
  24. package/src/styles/colors.scss +6 -6
  25. package/src/styles/fonts.scss +16 -11
  26. package/src/styles/style.scss +4 -18
  27. package/src/templates/event-page.js +26 -29
  28. package/src/templates/extra-questions-page.js +4 -3
  29. package/src/templates/full-profile-page.js +1 -1
  30. package/src/templates/lobby-page.js +1 -1
  31. package/src/templates/marketing-page-template/MainColumn.js +1 -1
  32. package/src/templates/poster-detail-page.js +5 -5
  33. package/src/templates/sponsor-page.js +3 -3
  34. package/src/templates/ticket-error-page.js +4 -4
  35. package/src/templates/token-expire-page.js +8 -13
  36. package/src/utils/withScheduleData.js +4 -4
  37. package/src/workers/sync_strategies/speaker_synch_strategy.js +7 -7
  38. package/src/components/EventHeroComponent.js +0 -34
  39. package/src/components/HeroComponent.js +0 -23
  40. package/src/components/NoTalkComponent.js +0 -33
  41. package/src/styles/event-hero.module.scss +0 -92
@@ -5,7 +5,7 @@ import { connect } from "react-redux";
5
5
  // these two libraries are client-side only
6
6
  import UpcomingEvents from "upcoming-events-widget/dist";
7
7
  import "upcoming-events-widget/dist/index.css";
8
- // awesome-bootstrap-checkbox css dependency
8
+ // awesome-bootstrap-checkbox css dependency
9
9
  // https://cdnjs.cloudflare.com/ajax/libs/awesome-bootstrap-checkbox/1.0.2/awesome-bootstrap-checkbox.min.css
10
10
  // injected through HeadComponents
11
11
 
@@ -27,7 +27,7 @@ const UpcomingEventsComponent = ({
27
27
  }) => {
28
28
  const wrapperClass = page === "marketing-site" ? "schedule-container-marketing" : "schedule-container";
29
29
  const { getSettingByKey } = useMarketingSettings();
30
- const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
30
+ const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.scheduleDefaultImage);
31
31
  const scheduleState = schedules?.find( s => s.key === 'schedule-main');
32
32
 
33
33
  const componentProps = {
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import Player from '@vimeo/player';
4
+ import * as Sentry from "@sentry/react";
4
5
  import eventNames from './VimeoPlayerEventNames';
5
6
  import Swal from 'sweetalert2';
6
7
 
@@ -387,6 +388,7 @@ VimeoPlayer.defaultProps = {
387
388
  onError: (error) => {
388
389
  Swal.fire('Error', 'This video stream will begin momentarily. Please standby.', "warning");
389
390
  console.log(error);
391
+ Sentry.captureException(error)
390
392
  }
391
393
  };
392
394
 
@@ -28,13 +28,13 @@ import { DelegatePopup } from '../../DelegatePopup/DelegatePopup';
28
28
  const noop = () => {};
29
29
 
30
30
  export const TicketPopupEditDetailsForm = ({
31
- ticket,
32
- summit,
33
- order,
34
- canEditTicketData,
35
- goToReassignPanel,
36
- context
37
- }) => {
31
+ ticket,
32
+ summit,
33
+ order,
34
+ canEditTicketData,
35
+ goToReassignPanel,
36
+ context
37
+ }) => {
38
38
  const formRef = useRef(null);
39
39
  const { t } = useTranslation();
40
40
  const dispatch = useDispatch();
@@ -53,7 +53,7 @@ export const TicketPopupEditDetailsForm = ({
53
53
  daysUntilReassignDeadline,
54
54
  isUnassigned,
55
55
  allowsDelegate
56
- } = useTicketDetails({ ticket, summit });
56
+ } = useTicketDetails({ ticket, summit });
57
57
 
58
58
  const { onTicketAssignChange } = useTicketAssignedContext();
59
59
 
@@ -73,9 +73,9 @@ export const TicketPopupEditDetailsForm = ({
73
73
  } = ticket.owner || {};
74
74
 
75
75
  const formattedExtraQuestions = extra_questions ?
76
- extra_questions.map(({ question_id, value }) => (
77
- { question_id, value }
78
- )) : [];
76
+ extra_questions.map(({ question_id, value }) => (
77
+ { question_id, value }
78
+ )) : [];
79
79
 
80
80
  return {
81
81
  [TicketKeys.email]: email,
@@ -129,22 +129,22 @@ export const TicketPopupEditDetailsForm = ({
129
129
 
130
130
  if(isDelegating) {
131
131
  dispatch(delegateTicket(params))
132
- .then(() => toggleSaveMessage())
133
- .catch((error) => console.error(error))
134
- .then(() => {
135
- formikHelpers.resetForm({ values });
136
- formikHelpers.setSubmitting(false);
137
- setIsDelegating(false);
138
- });
132
+ .then(() => toggleSaveMessage())
133
+ .catch((error) => console.error(error))
134
+ .then(() => {
135
+ formikHelpers.resetForm({ values });
136
+ formikHelpers.setSubmitting(false);
137
+ setIsDelegating(false);
138
+ });
139
139
  } else {
140
140
  dispatch(editOwnedTicket(params))
141
- .then(() => toggleSaveMessage())
142
- .catch((error) => console.error(error))
143
- .then(() => {
144
- // Note: Need to do this to persist the extra question values
145
- formikHelpers.resetForm({ values });
146
- formikHelpers.setSubmitting(false);
147
- });
141
+ .then(() => toggleSaveMessage())
142
+ .catch((error) => console.error(error))
143
+ .then(() => {
144
+ // Note: Need to do this to persist the extra question values
145
+ formikHelpers.resetForm({ values });
146
+ formikHelpers.setSubmitting(false);
147
+ });
148
148
  }
149
149
 
150
150
  };
@@ -163,16 +163,16 @@ export const TicketPopupEditDetailsForm = ({
163
163
 
164
164
  const handleDelegateAccept = () => {
165
165
  setShowDelegate(false);
166
- setIsDelegating(true);
166
+ setIsDelegating(true);
167
167
  formik.resetForm({
168
168
  values: {
169
- ...formik.values,
170
- [TicketKeys.firstName]: "",
171
- [TicketKeys.lastName]: "",
172
- [TicketKeys.disclaimerAccepted]: false,
173
- [TicketKeys.extraQuestions]: []
169
+ ...formik.values,
170
+ [TicketKeys.firstName]: "",
171
+ [TicketKeys.lastName]: "",
172
+ [TicketKeys.disclaimerAccepted]: false,
173
+ [TicketKeys.extraQuestions]: []
174
174
  }
175
- });
175
+ });
176
176
  };
177
177
 
178
178
  const handleDelegateReject = () => {
@@ -255,46 +255,46 @@ export const TicketPopupEditDetailsForm = ({
255
255
  }
256
256
 
257
257
  return (
258
- <div className="ticket-popup-edit-details-form">
259
- {showSaveMessage &&
258
+ <div className="ticket-popup-edit-details-form">
259
+ {showSaveMessage &&
260
260
  <CSSTransition
261
- unmountOnExit
262
- in={showSaveMessage}
263
- timeout={2000}
264
- classNames="fade-in-out"
261
+ unmountOnExit
262
+ in={showSaveMessage}
263
+ timeout={2000}
264
+ classNames="fade-in-out"
265
265
  >
266
266
  <Alert bsStyle="success" className="ticket-popup-form-alert text-center">
267
267
  {t("tickets.save_message")}
268
268
  </Alert>
269
269
  </CSSTransition>
270
- }
270
+ }
271
271
 
272
- {showUnassignMessage &&
272
+ {showUnassignMessage &&
273
273
  <CSSTransition
274
- unmountOnExit
275
- in={showUnassignMessage}
276
- timeout={2000}
277
- classNames="fade-in-out"
274
+ unmountOnExit
275
+ in={showUnassignMessage}
276
+ timeout={2000}
277
+ classNames="fade-in-out"
278
278
  >
279
279
  <Alert bsStyle="success" className="ticket-popup-form-alert text-center">
280
280
  {t("tickets.unassign_success_message")}
281
281
  </Alert>
282
282
  </CSSTransition>
283
- }
284
-
285
- <div className="ticket-popup-form-body columns is-multiline">
286
-
287
- <div className="attendee-info column is-full">
288
- <h4 className="pb-3">{t("ticket_popup.edit_basic_info")}</h4>
289
- <label htmlFor={TicketKeys.email}>Email</label>
290
- <Input
291
- id={TicketKeys.email}
292
- name={TicketKeys.email}
293
- className="form-control"
294
- value={initialValues[TicketKeys.email]}
295
- disabled={true}
296
- />
297
- {isUserTicketOwner && isReassignable &&
283
+ }
284
+
285
+ <div className="ticket-popup-form-body columns is-multiline">
286
+
287
+ <div className="attendee-info column is-full">
288
+ <h4 className="pb-3">{t("ticket_popup.edit_basic_info")}</h4>
289
+ <label htmlFor={TicketKeys.email}>Email</label>
290
+ <Input
291
+ id={TicketKeys.email}
292
+ name={TicketKeys.email}
293
+ className="form-control"
294
+ value={initialValues[TicketKeys.email]}
295
+ disabled={true}
296
+ />
297
+ {isUserTicketOwner && isReassignable &&
298
298
  <div className="mt-1">
299
299
  <span onClick={() => goToReassignPanel()}>
300
300
  <u>Reassign</u>
@@ -304,124 +304,122 @@ export const TicketPopupEditDetailsForm = ({
304
304
  <u>Unassign</u>
305
305
  </span>
306
306
  </div>
307
- }
308
- </div>
307
+ }
308
+ </div>
309
+
310
+ <div className="attendee-info column is-full">
311
+ <label htmlFor={TicketKeys.firstName}>
312
+ {t("ticket_popup.edit_first_name")}
313
+ {!initialValues[TicketKeys.firstName] && <b> *</b>}
314
+ </label>
315
+ <Input
316
+ id={TicketKeys.firstName}
317
+ name={TicketKeys.firstName}
318
+ className="form-control"
319
+ placeholder={t("ticket_popup.edit_first_name_placeholder")}
320
+ value={formik.values[TicketKeys.firstName]}
321
+ onBlur={formik.handleBlur}
322
+ onChange={!!initialValues[TicketKeys.firstName] && !isDelegating ? noop : formik.handleChange}
323
+ disabled={!!initialValues[TicketKeys.firstName] && !isDelegating}
324
+ />
325
+ {(formik.touched[TicketKeys.firstName] || triedSubmitting) && formik.errors[TicketKeys.firstName] &&
326
+ <p className="error-label">{t("ticket_popup.edit_required")}</p>
327
+ }
328
+ </div>
329
+
330
+ <div className="attendee-info column is-full">
331
+ <label htmlFor={TicketKeys.lastName}>
332
+ {t("ticket_popup.edit_last_name")}
333
+ {!initialValues[TicketKeys.lastName] && <b> *</b>}
334
+ </label>
335
+ <Input
336
+ id={TicketKeys.lastName}
337
+ name={TicketKeys.lastName}
338
+ className="form-control"
339
+ placeholder={t("ticket_popup.edit_last_name_placeholder")}
340
+ value={formik.values[TicketKeys.lastName]}
341
+ onBlur={formik.handleBlur}
342
+ onChange={!!initialValues[TicketKeys.lastName] && !isDelegating ? noop : formik.handleChange}
343
+ disabled={!!initialValues[TicketKeys.lastName] && !isDelegating}
344
+ />
345
+ {(formik.touched[TicketKeys.lastName] || triedSubmitting) && formik.errors[TicketKeys.lastName] &&
346
+ <p className="error-label">{t("ticket_popup.edit_required")}</p>
347
+ }
348
+ </div>
309
349
 
350
+ {allowsDelegate &&
310
351
  <div className="attendee-info column is-full">
311
- <label htmlFor={TicketKeys.firstName}>
312
- {t("ticket_popup.edit_first_name")}
313
- {!initialValues[TicketKeys.firstName] && <b> *</b>}
314
- </label>
315
- <Input
316
- id={TicketKeys.firstName}
317
- name={TicketKeys.firstName}
318
- className="form-control"
319
- placeholder={t("ticket_popup.edit_first_name_placeholder")}
320
- value={formik.values[TicketKeys.firstName]}
321
- onBlur={formik.handleBlur}
322
- onChange={!!initialValues[TicketKeys.firstName] && !isDelegating ? noop : formik.handleChange}
323
- disabled={!!initialValues[TicketKeys.firstName] && !isDelegating}
324
- />
325
- {(formik.touched[TicketKeys.firstName] || triedSubmitting) && formik.errors[TicketKeys.firstName] &&
326
- <p className="error-label">{t("ticket_popup.edit_required")}</p>
327
- }
352
+ <button className="button-text" type='button' onClick={() => setShowDelegate(true)}>Delegate</button>
328
353
  </div>
354
+ }
329
355
 
356
+ {showCompanyInput &&
330
357
  <div className="attendee-info column is-full">
331
- <label htmlFor={TicketKeys.lastName}>
332
- {t("ticket_popup.edit_last_name")}
333
- {!initialValues[TicketKeys.lastName] && <b> *</b>}
358
+ <label htmlFor={TicketKeys.company}>
359
+ {t("ticket_popup.edit_company")}
360
+ {!initialValues[TicketKeys.company].name && <b> *</b>}
334
361
  </label>
335
- <Input
336
- id={TicketKeys.lastName}
337
- name={TicketKeys.lastName}
338
- className="form-control"
339
- placeholder={t("ticket_popup.edit_last_name_placeholder")}
340
- value={formik.values[TicketKeys.lastName]}
341
- onBlur={formik.handleBlur}
342
- onChange={!!initialValues[TicketKeys.lastName] && !isDelegating ? noop : formik.handleChange}
343
- disabled={!!initialValues[TicketKeys.lastName] && !isDelegating}
362
+ <RegistrationCompanyInput
363
+ id={TicketKeys.company}
364
+ name={TicketKeys.company}
365
+ summitId={summit.id}
366
+ placeholder={t("ticket_popup.edit_company_placeholder")}
367
+ value={formik.values[TicketKeys.company]}
368
+ onBlur={formik.handleBlur}
369
+ onChange={!!initialValues[TicketKeys.company].name ? noop : formik.handleChange}
370
+ disabled={!!initialValues[TicketKeys.company].name}
371
+ defaultOptions={showCompanyInputDefaultOptions}
372
+ openMenuOnFocus={showCompanyInputDefaultOptions}
373
+ openMenuOnClick={showCompanyInputDefaultOptions}
374
+ styles={{
375
+ menu: (base) => ({ ...base, zIndex: 9999 }),
376
+ }}
377
+ tabSelectsValue={false}
344
378
  />
345
- {(formik.touched[TicketKeys.lastName] || triedSubmitting) && formik.errors[TicketKeys.lastName] &&
346
- <p className="error-label">{t("ticket_popup.edit_required")}</p>
379
+ {(formik.touched[TicketKeys.company] || triedSubmitting) && formik.errors[TicketKeys.company] &&
380
+ <p className="error-label">{t("ticket_popup.edit_required")}</p>
347
381
  }
348
382
  </div>
383
+ }
349
384
 
350
- {allowsDelegate &&
351
- <div className="attendee-info column is-full">
352
- <button className="button-text" type='button' onClick={() => setShowDelegate(true)}>Delegate</button>
353
- </div>
354
- }
355
-
356
- {showCompanyInput &&
357
- <div className="attendee-info column is-full">
358
- <label htmlFor={TicketKeys.company}>
359
- {t("ticket_popup.edit_company")}
360
- {!initialValues[TicketKeys.company].name && <b> *</b>}
361
- </label>
362
- <RegistrationCompanyInput
363
- id={TicketKeys.company}
364
- name={TicketKeys.company}
365
- summitId={summit.id}
366
- placeholder={t("ticket_popup.edit_company_placeholder")}
367
- value={formik.values[TicketKeys.company]}
368
- onBlur={formik.handleBlur}
369
- onChange={!!initialValues[TicketKeys.company].name ? noop : formik.handleChange}
370
- disabled={!!initialValues[TicketKeys.company].name}
371
- defaultOptions={showCompanyInputDefaultOptions}
372
- openMenuOnFocus={showCompanyInputDefaultOptions}
373
- openMenuOnClick={showCompanyInputDefaultOptions}
374
- menuPortalTarget={document.body}
375
- menuPosition="fixed"
376
- styles={{
377
- menuPortal: (base) => ({ ...base, zIndex: 9999 }),
378
- }}
379
- tabSelectsValue={false}
380
- />
381
- {(formik.touched[TicketKeys.company] || triedSubmitting) && formik.errors[TicketKeys.company] &&
382
- <p className="error-label">{t("ticket_popup.edit_required")}</p>
383
- }
384
- </div>
385
- }
386
-
387
- {(initialValues[TicketKeys.firstName] || initialValues[TicketKeys.lastName] || initialValues[TicketKeys.company].name) &&
385
+ {(initialValues[TicketKeys.firstName] || initialValues[TicketKeys.lastName] || initialValues[TicketKeys.company].name) &&
388
386
  <div className="column is-full pb-5">
389
387
  {t("ticket_popup.assign_note")}
390
388
  </div>
391
- }
389
+ }
392
390
 
393
- {hasExtraQuestions &&
391
+ {hasExtraQuestions &&
394
392
  <div className="column is-full pt-5">
395
393
  <h4 className="pb-2">{t("ticket_popup.edit_preferences")}</h4>
396
394
  <ExtraQuestionsForm
397
- // This key is added to trigger a new render when the extra questions are resetted on delegation
398
- key={formik.values[TicketKeys.extraQuestions].length}
399
- ref={formRef}
400
- extraQuestions={extraQuestions}
401
- userAnswers={formik.values[TicketKeys.extraQuestions]}
402
- onAnswerChanges={onExtraQuestionsAnswersSet}
403
- allowExtraQuestionsEdit={canEditTicketData || isDelegating}
404
- questionContainerClassName={`columns is-multiline extra-question pt-3`}
405
- questionLabelContainerClassName={'column is-full pb-0'}
406
- questionControlContainerClassName={`column is-full pt-0`}
407
- shouldScroll2FirstError={false}
408
- onError={handleExtraQuestionError}
395
+ // This key is added to trigger a new render when the extra questions are resetted on delegation
396
+ key={formik.values[TicketKeys.extraQuestions].length}
397
+ ref={formRef}
398
+ extraQuestions={extraQuestions}
399
+ userAnswers={formik.values[TicketKeys.extraQuestions]}
400
+ onAnswerChanges={onExtraQuestionsAnswersSet}
401
+ allowExtraQuestionsEdit={canEditTicketData || isDelegating}
402
+ questionContainerClassName={`columns is-multiline extra-question pt-3`}
403
+ questionLabelContainerClassName={'column is-full pb-0'}
404
+ questionControlContainerClassName={`column is-full pt-0`}
405
+ shouldScroll2FirstError={false}
406
+ onError={handleExtraQuestionError}
409
407
  />
410
408
  </div>
411
- }
409
+ }
412
410
 
413
- {summit.registration_disclaimer_content &&
411
+ {summit.registration_disclaimer_content &&
414
412
  <div className="column is-full attendee-info abc-checkbox disclaimer mt-3">
415
413
  <div className='input-wrapper'>
416
414
  <input
417
- type="checkbox"
418
- id={TicketKeys.disclaimerAccepted}
419
- name={TicketKeys.disclaimerAccepted}
420
- onBlur={formik.handleBlur}
421
- onChange={(e) =>
422
- formik.setFieldTouched(TicketKeys.disclaimerAccepted, true) && formik.handleChange(e)
423
- }
424
- checked={formik.values[TicketKeys.disclaimerAccepted]}
415
+ type="checkbox"
416
+ id={TicketKeys.disclaimerAccepted}
417
+ name={TicketKeys.disclaimerAccepted}
418
+ onBlur={formik.handleBlur}
419
+ onChange={(e) =>
420
+ formik.setFieldTouched(TicketKeys.disclaimerAccepted, true) && formik.handleChange(e)
421
+ }
422
+ checked={formik.values[TicketKeys.disclaimerAccepted]}
425
423
  />
426
424
  <label htmlFor={TicketKeys.disclaimerAccepted}>
427
425
  {summit.registration_disclaimer_mandatory && <b> *</b>}
@@ -433,36 +431,36 @@ export const TicketPopupEditDetailsForm = ({
433
431
  </RawHTML>
434
432
  </div>
435
433
  {(formik.touched[TicketKeys.disclaimerAccepted] || triedSubmitting) && formik.errors[TicketKeys.disclaimerAccepted] &&
436
- <p className="error-label">{t("ticket_popup.edit_required")}</p>
434
+ <p className="error-label">{t("ticket_popup.edit_required")}</p>
437
435
  }
438
436
  </div>
439
- }
440
- </div>
437
+ }
438
+ </div>
441
439
 
442
- {canSubmitChanges() &&
440
+ {canSubmitChanges() &&
443
441
  <div className="ticket-popup-footer">
444
442
  <button
445
- type="button"
446
- className="btn btn-primary"
447
- disabled={formik.isSubmitting}
448
- onClick={triggerSubmit}
443
+ type="button"
444
+ className="btn btn-primary"
445
+ disabled={formik.isSubmitting}
446
+ onClick={triggerSubmit}
449
447
  >
450
448
  {!formik.isSubmitting && <>{t("ticket_popup.save_changes")}</>}
451
449
  {formik.isSubmitting && <>{t("ticket_popup.saving_changes")}...</>}
452
450
  </button>
453
451
  </div>
454
- }
455
- <ConfirmPopup
456
- isOpen={showConfirm}
457
- popupCase={CONFIRM_POPUP_CASE.UNASSIGN_TICKET}
458
- onAccept={handleConfirmAccept}
459
- onReject={handleConfirmReject}
460
- />
461
- <DelegatePopup
462
- isOpen={showDelegate}
463
- onAccept={handleDelegateAccept}
464
- onReject={handleDelegateReject}
465
- />
466
- </div>
452
+ }
453
+ <ConfirmPopup
454
+ isOpen={showConfirm}
455
+ popupCase={CONFIRM_POPUP_CASE.UNASSIGN_TICKET}
456
+ onAccept={handleConfirmAccept}
457
+ onReject={handleConfirmReject}
458
+ />
459
+ <DelegatePopup
460
+ isOpen={showDelegate}
461
+ onAccept={handleDelegateAccept}
462
+ onReject={handleDelegateReject}
463
+ />
464
+ </div>
467
465
  );
468
466
  };
@@ -1,14 +1,12 @@
1
1
  import React from "react";
2
- import HeroComponent from "../components/HeroComponent";
2
+ import Interstitial from "../components/Interstitial";
3
3
  import useSiteSettings from "@utils/useSiteSettings";
4
4
 
5
- import "../styles/bulma.scss";
6
-
7
5
  const MaintenancePage = () => {
8
6
  const { maintenanceMode: { title, subtitle } } = useSiteSettings();
9
7
 
10
8
  return (
11
- <HeroComponent
9
+ <Interstitial
12
10
  title={title}
13
11
  subtitle={subtitle}
14
12
  />
@@ -1,7 +1,7 @@
1
1
  import { START_LOADING, STOP_LOADING } from "openstack-uicore-foundation/lib/utils/actions";
2
2
  import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions";
3
3
  import {GET_EVENT_DATA, GET_EVENT_DATA_ERROR, RELOAD_EVENT_STATE, SET_EVENT_LAST_UPDATE, GET_EVENT_STREAMING_INFO} from "../actions/event-actions-definitions";
4
- import {RESET_STATE} from "../actions/base-actions-definitions";
4
+ import {RESET_STATE, SYNC_DATA} from "../actions/base-actions-definitions";
5
5
 
6
6
  const DEFAULT_STATE = {
7
7
  loading: false,
@@ -14,6 +14,7 @@ const eventReducer = (state = DEFAULT_STATE, action) => {
14
14
  const { type, payload } = action
15
15
 
16
16
  switch (type) {
17
+
17
18
  case RESET_STATE:
18
19
  case LOGOUT_USER:
19
20
  {
@@ -32,6 +33,18 @@ const eventReducer = (state = DEFAULT_STATE, action) => {
32
33
  const updatedEvent = event.id === state?.event?.id ? {...state, ...event} : event;
33
34
  return { ...state, loading: false, event: updatedEvent, tokens: null };
34
35
  }
36
+ case SYNC_DATA:{
37
+ // update current event if we have one on data sync
38
+ const {eventsData, eventsIDXData } = payload;
39
+ if(state?.event){
40
+ const idx = eventsIDXData[state?.event?.id] || null;
41
+ if(idx) {
42
+ const updatedEvent = eventsData[idx];
43
+ return {...state, loading: false, event: updatedEvent, tokens: null};
44
+ }
45
+ }
46
+ return state;
47
+ }
35
48
  case GET_EVENT_DATA_ERROR: {
36
49
  return { ...state, loading: false, event: null, tokens: null }
37
50
  }
@@ -3,7 +3,7 @@ import { connect } from "react-redux";
3
3
 
4
4
  import { PHASES } from "../utils/phasesUtils";
5
5
  import { requireExtraQuestions, doVirtualCheckIn } from "../actions/user-actions";
6
- import HeroComponent from "../components/HeroComponent";
6
+ import Interstitial from "../components/Interstitial";
7
7
  import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
8
8
  import moment from "moment-timezone";
9
9
 
@@ -37,7 +37,7 @@ const ShowOpenRoute = ({
37
37
  if(attendee)
38
38
  doVirtualCheckIn(attendee);
39
39
  }
40
- },[summitPhase, hasTicket, userProfile, doVirtualCheckIn]);
40
+ }, [summitPhase, hasTicket, userProfile, doVirtualCheckIn]);
41
41
 
42
42
  const userCanByPassAuthz = () => {
43
43
  return isAuthorized;
@@ -61,14 +61,14 @@ const ShowOpenRoute = ({
61
61
 
62
62
  // if summit didnt started yet ...
63
63
  if (!shouldBypassCheck && !userCanByPassAuthz() && summitPhase === PHASES.BEFORE) {
64
- return <HeroComponent title="You are now logged in. Additional event info is now available on the website." redirectTo="/" />;
64
+ return <Interstitial title="You are now logged in. Additional event info is now available on the website." navigateTo="/" />;
65
65
  }
66
66
 
67
67
  if (requireExtraQuestions()) {
68
68
  return (
69
- <HeroComponent
69
+ <Interstitial
70
70
  title="You need to complete some extra questions before entering the event"
71
- redirectTo="/a/extra-questions"
71
+ navigateTo="/a/extra-questions"
72
72
  />
73
73
  );
74
74
  }
@@ -3,7 +3,7 @@ import { connect } from "react-redux";
3
3
  import { navigate } from "gatsby";
4
4
  import { pick } from "@gatsbyjs/reach-router";
5
5
  import { getUserProfile, requireExtraQuestions } from "../actions/user-actions";
6
- import HeroComponent from "../components/HeroComponent";
6
+ import Interstitial from "../components/Interstitial";
7
7
  import { userHasAccessLevel, VIRTUAL_ACCESS_LEVEL } from "@utils/authorizedGroups";
8
8
 
9
9
  const pathsRequiringVirtualBadge = [
@@ -79,20 +79,20 @@ const WithAuthzRoute = ({
79
79
  }, [fetchedUserProfile, isLoggedIn, hasTicket, isAuthorized, userProfile, getUserProfile, userIsAuthz]);
80
80
 
81
81
  if (!isLoggedIn) {
82
- navigate("/", {state: {backUrl: `${location.pathname}`,},});
82
+ navigate("/", { state: { backUrl: `${location.pathname}` } });
83
83
  return null;
84
84
  }
85
85
 
86
86
  // we are checking credentials if userProfile is being loading yet or
87
87
  // if we are re-fetching the user profile to check new data ( user currently is not a authz
88
88
  if (!userIsReady() || checkingCredentials()) {
89
- return <HeroComponent title="Checking credentials..."/>;
89
+ return <Interstitial title="Checking credentials..."/>;
90
90
  }
91
91
 
92
92
  // has no ticket -> redirect
93
93
  if (!userIsAuthz) {
94
- const options = { state: { error: !hasTicket ? 'no-ticket' : 'no-virtual-access' } };
95
- return <HeroComponent title="Checking credentials..." redirectTo="/authz/ticket" options={options}/>;
94
+ const options = { state: { error: !hasTicket ? "no-ticket" : "no-virtual-access" } };
95
+ return <Interstitial title="Checking credentials..." navigateTo="/authz/ticket" navigateOptions={options} />;
96
96
  }
97
97
 
98
98
  return children;
@@ -1,8 +1,8 @@
1
1
  import React, {useEffect} from "react";
2
2
  import { connect } from "react-redux";
3
3
  import { isAuthorizedBadge } from "../utils/authorizedGroups";
4
- import HeroComponent from "../components/HeroComponent";
5
- import {getEventById, getEventStreamingInfoById} from "../actions/event-actions";
4
+ import Interstitial from "../components/Interstitial";
5
+ import { getEventById, getEventStreamingInfoById } from "../actions/event-actions";
6
6
  import { isMuxVideo } from "../utils/videoUtils";
7
7
  import {navigate} from "gatsby";
8
8
 
@@ -26,7 +26,7 @@ const WithBadgeRoute = ({ children, location, eventId, event, loading, userProfi
26
26
  getEventById(eventId).then((res) => {
27
27
  const { err } = res;
28
28
  // check error
29
- if(err && err?.status === 404){
29
+ if (err && err?.status === 404){
30
30
  navigate('/a/schedule');
31
31
  }
32
32
  getEventStreamingInfoById(eventId)
@@ -37,11 +37,11 @@ const WithBadgeRoute = ({ children, location, eventId, event, loading, userProfi
37
37
  }, [eventId, getEventById, event, getEventStreamingInfoById]);
38
38
 
39
39
  if (loading || needsToLoadEvent) {
40
- return <HeroComponent title="Loading event" />;
40
+ return <Interstitial title="Loading event" />;
41
41
  }
42
42
 
43
43
  if (!userIsAuthz || !hasBadgeForEvent) {
44
- return <HeroComponent title={getTitle()} redirectTo={location.state?.previousUrl || "/"}/>;
44
+ return <Interstitial title={getTitle()} navigateTo={location.state?.previousUrl || "/"} />;
45
45
  }
46
46
 
47
47
  return children;