@openeventkit/event-site 1.0.13 → 1.0.19

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 (57) hide show
  1. package/gatsby-browser.js +2 -2
  2. package/gatsby-config.js +39 -27
  3. package/gatsby-node.js +23 -18
  4. package/package.json +2 -2
  5. package/src/cms/cms.js +2 -2
  6. package/src/cms/config/collections/configurationsCollection/index.js +1 -1
  7. package/src/cms/config/collections/configurationsCollection/navbar/index.js +0 -1
  8. package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +0 -1
  9. package/src/cms/config/collections/contentPagesCollection/index.js +65 -0
  10. package/src/cms/config/collections/contentPagesCollection/typeDefs.js +8 -0
  11. package/src/cms/config/collections/defaultPagesCollection/index.js +2 -2
  12. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/index.js +67 -0
  13. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/typeDefs.js +21 -0
  14. package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +1 -1
  15. package/src/cms/config/collections/defaultPagesCollection/marketingPage/typeDefs.js +1 -1
  16. package/src/cms/config/collections/typeDefs.js +3 -1
  17. package/src/cms/config/fields.js +0 -4
  18. package/src/cms/config/index.js +4 -2
  19. package/src/cms/config/patterns.js +3 -4
  20. package/src/cms/preview-templates/{CustomPagePreview.js → ContentPagePreview.js} +5 -5
  21. package/src/components/DisqusComponent.js +3 -5
  22. package/src/components/FullSchedule.js +5 -4
  23. package/src/components/LiteScheduleComponent.js +34 -36
  24. package/src/components/LiveEventWidgetComponent.js +29 -24
  25. package/src/components/Navbar/index.js +1 -0
  26. package/src/components/{page-header/index.jsx → PageHeader/index.js} +9 -5
  27. package/src/components/RegistrationLiteComponent.js +66 -56
  28. package/src/components/UpcomingEventsComponent.js +46 -48
  29. package/src/content/lobby-page/index.json +1 -0
  30. package/src/pages/a/[...].js +15 -14
  31. package/src/pages/index.js +1 -1
  32. package/src/reducers/presentations-reducer.js +1 -1
  33. package/src/reducers/setting-reducer.js +3 -4
  34. package/src/styles/style.scss +1 -1
  35. package/src/templates/{custom-page.js → content-page.js} +10 -8
  36. package/src/templates/event-page.js +247 -247
  37. package/src/templates/lobby-page.js +178 -0
  38. package/src/templates/maintenance-page.js +5 -5
  39. package/src/templates/poster-detail-page.js +2 -5
  40. package/src/templates/posters-page.js +1 -1
  41. package/src/utils/filePath.js +13 -7
  42. package/src/utils/phasesUtils.js +1 -1
  43. package/src/utils/useMarketingSettings.js +10 -8
  44. package/static/admin/config.yml.template +1 -2
  45. package/src/content/disqus-settings.json +0 -1
  46. package/src/content/home-settings.json +0 -1
  47. package/src/content/marketing-settings.json +0 -1
  48. package/src/pages/custom-pages/about-event.md +0 -16
  49. package/src/pages/custom-pages/contact.md +0 -8
  50. package/src/pages/custom-pages/footer-content.md +0 -8
  51. package/src/pages/custom-pages/help.md +0 -8
  52. package/src/pages/custom-pages/past-events.md +0 -8
  53. package/src/pages/custom-pages/who-we-are.md +0 -8
  54. package/src/templates/home-page.js +0 -170
  55. /package/src/components/{page-header → PageHeader}/index.module.scss +0 -0
  56. /package/src/{content → defaults}/colors.json +0 -0
  57. /package/src/{content → defaults}/posters-filters.json +0 -0
@@ -11,13 +11,13 @@ import 'lite-schedule-widget/dist/index.css';
11
11
 
12
12
  import {addToSchedule, removeFromSchedule} from '../actions/user-actions';
13
13
 
14
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
14
15
  import { SentryFallbackFunction } from "./SentryErrorComponent";
15
16
 
16
17
  const LiteScheduleComponent = ({
17
18
  className,
18
19
  userProfile,
19
20
  colorSettings,
20
- homeSettings,
21
21
  page,
22
22
  addToSchedule,
23
23
  removeFromSchedule,
@@ -25,46 +25,44 @@ const LiteScheduleComponent = ({
25
25
  summit,
26
26
  ...rest
27
27
  }) => {
28
- const wrapperClass = page === 'marketing-site' ? 'schedule-container-marketing' : 'schedule-container';
29
-
30
- const componentProps = {
31
- defaultImage: homeSettings.schedule_default_image,
32
- eventsData: allScheduleEvents,
33
- summitData: summit,
34
- marketingData: colorSettings,
35
- userProfile: userProfile,
36
- triggerAction: (action, {event}) => {
37
- switch (action) {
38
- case 'ADDED_TO_SCHEDULE': {
39
- return addToSchedule(event);
40
- }
41
- case 'REMOVED_FROM_SCHEDULE': {
42
- return removeFromSchedule(event);
43
- }
44
- default: {
45
- return;
46
- }
47
- }
28
+ const wrapperClass = page === 'marketing-site' ? 'schedule-container-marketing' : 'schedule-container';
29
+ const { getSettingByKey } = useMarketingSettings();
30
+ const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
31
+ const componentProps = {
32
+ defaultImage: defaultImage,
33
+ eventsData: allScheduleEvents,
34
+ summitData: summit,
35
+ marketingData: colorSettings,
36
+ userProfile: userProfile,
37
+ triggerAction: (action, {event}) => {
38
+ switch (action) {
39
+ case 'ADDED_TO_SCHEDULE': {
40
+ return addToSchedule(event);
41
+ }
42
+ case 'REMOVED_FROM_SCHEDULE': {
43
+ return removeFromSchedule(event);
44
+ }
45
+ default: {
46
+ return;
48
47
  }
49
- };
48
+ }
49
+ }
50
+ };
50
51
 
51
- return (
52
- <>
53
- <div className={className || wrapperClass}>
54
- <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Schedule Lite'})}>
55
- <LiteSchedule {...componentProps} {...rest} />
56
- </Sentry.ErrorBoundary>
57
- </div>
58
- </>
59
- )
52
+ return (
53
+ <div className={className || wrapperClass}>
54
+ <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Schedule Lite'})}>
55
+ <LiteSchedule {...componentProps} {...rest} />
56
+ </Sentry.ErrorBoundary>
57
+ </div>
58
+ )
60
59
  };
61
60
 
62
61
  const mapStateToProps = ({userState, summitState, allSchedulesState, settingState}) => ({
63
- userProfile: userState.userProfile,
64
- allScheduleEvents: allSchedulesState.allScheduleEvents,
65
- summit: summitState.summit,
66
- colorSettings: settingState.colorSettings,
67
- homeSettings: settingState.homeSettings
62
+ userProfile: userState.userProfile,
63
+ allScheduleEvents: allSchedulesState.allScheduleEvents,
64
+ summit: summitState.summit,
65
+ colorSettings: settingState.colorSettings
68
66
  });
69
67
 
70
68
  export default connect(mapStateToProps, {addToSchedule, removeFromSchedule})(LiteScheduleComponent)
@@ -9,35 +9,40 @@ import 'live-event-widget/dist/index.css';
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
 
12
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
12
13
  import { SentryFallbackFunction } from "./SentryErrorComponent";
13
14
 
14
- const LiveEventWidgetComponent = ({allEvents, summit, colorSettings, homeSettings, className = 'live-event-container', ...rest}) => {
15
+ const LiveEventWidgetComponent = ({
16
+ allEvents,
17
+ summit,
18
+ colorSettings,
19
+ className = "live-event-container",
20
+ ...rest
21
+ }) => {
22
+ const { getSettingByKey } = useMarketingSettings();
23
+ const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
24
+ const widgetProps = {
25
+ title: "",
26
+ defaultImage: defaultImage,
27
+ eventsData: allEvents,
28
+ summitData: summit,
29
+ marketingData: colorSettings,
30
+ ...rest
31
+ };
15
32
 
16
- const widgetProps = {
17
- title: "",
18
- defaultImage: homeSettings.schedule_default_image,
19
- eventsData: allEvents,
20
- summitData: summit,
21
- marketingData: colorSettings,
22
- ...rest
23
- };
24
-
25
- return (
26
- <>
27
- <div className={className}>
28
- <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Live Event'})}>
29
- <LiveEventWidget {...widgetProps} />
30
- </Sentry.ErrorBoundary>
31
- </div>
32
- </>
33
- )
33
+ return (
34
+ <div className={className}>
35
+ <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Live Event'})}>
36
+ <LiveEventWidget {...widgetProps} />
37
+ </Sentry.ErrorBoundary>
38
+ </div>
39
+ )
34
40
  };
35
41
 
36
42
  const mapStateToProps = ({ summitState, allSchedulesState, settingState }) => ({
37
- summit: summitState.summit,
38
- allEvents: allSchedulesState.allEvents,
39
- colorSettings: settingState.colorSettings,
40
- homeSettings: settingState.homeSettings,
43
+ summit: summitState.summit,
44
+ allEvents: allSchedulesState.allEvents,
45
+ colorSettings: settingState.colorSettings
41
46
  });
42
47
 
43
- export default connect(mapStateToProps, { })(LiveEventWidgetComponent)
48
+ export default connect(mapStateToProps, { })(LiveEventWidgetComponent);
@@ -17,6 +17,7 @@ import { PAGE_RESTRICTIONS } from "../../cms/config/collections/configurationsCo
17
17
  import navbarContent from "content/navbar/index.json";
18
18
 
19
19
  const Navbar = ({
20
+ location,
20
21
  summitPhase,
21
22
  summit,
22
23
  isLoggedUser,
@@ -1,15 +1,19 @@
1
- import React from 'react';
1
+ import * as React from "react";
2
2
 
3
- import styles from './index.module.scss';
3
+ import styles from "./index.module.scss";
4
4
 
5
- const PageHeader = ({ title, subtitle, backgroundImage }) => (
5
+ const PageHeader = ({
6
+ title,
7
+ subtitle,
8
+ backgroundImageSrc
9
+ }) => (
6
10
  <section className={styles.pageHeader}>
7
11
  <div className={styles.titles}>
8
12
  <h1>{title}</h1>
9
13
  <span class={styles.subtitle}>{subtitle}</span>
10
14
  </div>
11
- {backgroundImage &&
12
- <div className={styles.image} style={{backgroundImage: `url(${backgroundImage})`}}></div>
15
+ {backgroundImageSrc &&
16
+ <div className={styles.image} style={{backgroundImage: `url(${backgroundImageSrc})`}}></div>
13
17
  }
14
18
  </section>
15
19
  );
@@ -3,13 +3,14 @@ import * as Sentry from "@sentry/react";
3
3
  import { navigate, withPrefix } from "gatsby"
4
4
  import { connect } from "react-redux";
5
5
  import URI from "urijs";
6
+
6
7
  // these two libraries are client-side only
7
- import RegistrationLiteWidget from 'summit-registration-lite/dist';
8
- import 'summit-registration-lite/dist/index.css';
8
+ import RegistrationLiteWidget from "summit-registration-lite/dist";
9
+ import "summit-registration-lite/dist/index.css";
9
10
  import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
10
- import {doLogin, passwordlessStart, getAccessToken} from 'openstack-uicore-foundation/lib/security/methods'
11
- import {doLogout} from 'openstack-uicore-foundation/lib/security/actions'
12
- import {getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL} from '../utils/envVariables'
11
+ import {doLogin, passwordlessStart, getAccessToken} from "openstack-uicore-foundation/lib/security/methods"
12
+ import {doLogout} from "openstack-uicore-foundation/lib/security/actions"
13
+ import {getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL} from "../utils/envVariables"
13
14
  import {getUserProfile, setPasswordlessLogin, setUserOrder, checkOrderData} from "../actions/user-actions";
14
15
  import {getThirdPartyProviders} from "../actions/base-actions";
15
16
  import {formatThirdPartyProviders} from "../utils/loginUtils";
@@ -17,41 +18,41 @@ import Swal from "sweetalert2";
17
18
  import {checkRequireExtraQuestionsByAttendee} from "../actions/user-actions";
18
19
  import {userHasAccessLevel, VirtualAccessLevel} from "../utils/authorizedGroups";
19
20
 
20
- import useMarketingSettings from "@utils/useMarketingSettings";
21
-
22
- import styles from '../styles/marketing-hero.module.scss'
21
+ import { getExtraQuestions } from "../actions/summit-actions";
23
22
 
23
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
24
24
  import { SentryFallbackFunction } from "./SentryErrorComponent";
25
- import { getExtraQuestions } from "../actions/summit-actions";
25
+
26
+ import styles from "../styles/marketing-hero.module.scss"
26
27
 
27
28
  const RegistrationLiteComponent = ({
28
- registrationProfile,
29
- userProfile,
30
- attendee,
31
- getThirdPartyProviders,
32
- thirdPartyProviders,
33
- getUserProfile,
34
- setPasswordlessLogin,
35
- setUserOrder,
36
- checkOrderData,
37
- loadingProfile,
38
- loadingIDP,
39
- summit,
40
- colorSettings,
41
- marketingPageSettings,
42
- allowsNativeAuth,
43
- allowsOtpAuth,
44
- checkRequireExtraQuestionsByAttendee,
45
- getExtraQuestions,
46
- children,
47
- }) => {
29
+ registrationProfile,
30
+ userProfile,
31
+ attendee,
32
+ getThirdPartyProviders,
33
+ thirdPartyProviders,
34
+ getUserProfile,
35
+ setPasswordlessLogin,
36
+ setUserOrder,
37
+ checkOrderData,
38
+ loadingProfile,
39
+ loadingIDP,
40
+ summit,
41
+ colorSettings,
42
+ marketingPageSettings,
43
+ allowsNativeAuth,
44
+ allowsOtpAuth,
45
+ checkRequireExtraQuestionsByAttendee,
46
+ getExtraQuestions,
47
+ children,
48
+ }) => {
48
49
  const [isActive, setIsActive] = useState(false);
49
- const [initialEmailValue, setInitialEmailValue] = useState('');
50
+ const [initialEmailValue, setInitialEmailValue] = useState("");
50
51
 
51
52
  useEffect(() => {
52
53
  const fragmentParser = new FragmentParser();
53
- setIsActive(fragmentParser.getParam('registration'));
54
- const paramInitialEmailValue = fragmentParser.getParam('email');
54
+ setIsActive(fragmentParser.getParam("registration"));
55
+ const paramInitialEmailValue = fragmentParser.getParam("email");
55
56
  if (paramInitialEmailValue)
56
57
  setInitialEmailValue(paramInitialEmailValue);
57
58
  }, []);
@@ -61,7 +62,7 @@ const RegistrationLiteComponent = ({
61
62
  }, [thirdPartyProviders]);
62
63
 
63
64
  const getBackURL = () => {
64
- let backUrl = '/#registration=1';
65
+ let backUrl = "/#registration=1";
65
66
  return URI.encode(backUrl);
66
67
  };
67
68
 
@@ -74,10 +75,10 @@ const RegistrationLiteComponent = ({
74
75
  };
75
76
 
76
77
  const handleCompanyError = () => {
77
- console.log('company error...')
78
+ console.log("company error...")
78
79
  Swal.fire("ERROR", "Hold on. Your session expired!.", "error").then(() => {
79
80
  // save current location and summit slug, for further redirect logic
80
- window.localStorage.setItem('post_logout_redirect_path', new URI(window.location.href).pathname());
81
+ window.localStorage.setItem("post_logout_redirect_path", new URI(window.location.href).pathname());
81
82
  doLogout();
82
83
  });
83
84
  }
@@ -102,15 +103,18 @@ const RegistrationLiteComponent = ({
102
103
  return setPasswordlessLogin(params);
103
104
  };
104
105
 
105
- const {
106
- MARKETING_SETTINGS_KEYS,
107
- getSettingByKey
108
- } = useMarketingSettings();
106
+ const { getSettingByKey } = useMarketingSettings();
109
107
 
110
108
  const inPersonDisclaimer = getSettingByKey(MARKETING_SETTINGS_KEYS.registrationInPersonDisclaimer);
111
109
  const allowPromoCodes = !!Number(getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteAllowPromoCodes));
112
110
  const companyInputPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyInputPlaceholder);
113
111
  const companyDDLPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyDDLPlaceholder);
112
+ const initialOrderComplete1stParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete1stParagraph)
113
+ const initialOrderComplete2ndParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete2ndParagraph)
114
+ const initialOrderCompleteButton = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderCompleteButton)
115
+ const orderComplete1stParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderComplete1stParagraph)
116
+ const orderComplete2ndParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderComplete2ndParagraph)
117
+ const orderCompleteButton = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteOrderCompleteButton)
114
118
 
115
119
  const widgetProps = {
116
120
  apiBaseUrl: getEnvVariable(SUMMIT_API_BASE_URL),
@@ -126,7 +130,7 @@ const RegistrationLiteComponent = ({
126
130
  ownedTickets: attendee?.ticket_types || [],
127
131
  authUser: (provider) => onClickLogin(provider),
128
132
  getPasswordlessCode: getPasswordlessCode,
129
- loginWithCode: (code, email) => loginPasswordless(code, email).then( () => navigate('/#registration=1')),
133
+ loginWithCode: (code, email) => loginPasswordless(code, email).then( () => navigate("/#registration=1")),
130
134
  getAccessToken: getAccessToken,
131
135
  closeWidget: () => {
132
136
  // reload user profile
@@ -134,11 +138,11 @@ const RegistrationLiteComponent = ({
134
138
  setIsActive(false);
135
139
  },
136
140
  goToExtraQuestions: () => {
137
- navigate('/a/extra-questions');
141
+ navigate("/a/extra-questions");
138
142
  },
139
- goToEvent: () => navigate('/a/'),
143
+ goToEvent: () => navigate("/a/"),
140
144
  goToRegistration: () => navigate(`${getEnvVariable(REGISTRATION_BASE_URL)}/a/${summit.slug}`),
141
- goToMyOrders: () => navigate('/a/my-tickets'),
145
+ goToMyOrders: () => navigate("/a/my-tickets"),
142
146
  completedExtraQuestions: async (order) => {
143
147
  const currentUserTicket = order?.tickets.find(t => t?.owner?.email == userProfile?.email);
144
148
  const currentAttendee = attendee ? attendee : (currentUserTicket ? currentUserTicket?.owner : null);
@@ -147,7 +151,7 @@ const RegistrationLiteComponent = ({
147
151
  return checkRequireExtraQuestionsByAttendee(currentAttendee);
148
152
  },
149
153
  onPurchaseComplete: (order) => {
150
- // check if it's necessary to update profile
154
+ // check if it"s necessary to update profile
151
155
  setUserOrder(order).then(()=> checkOrderData(order));
152
156
  },
153
157
  inPersonDisclaimer: inPersonDisclaimer,
@@ -155,16 +159,16 @@ const RegistrationLiteComponent = ({
155
159
  allowsNativeAuth: allowsNativeAuth,
156
160
  allowsOtpAuth: allowsOtpAuth,
157
161
  stripeOptions: {
158
- fonts: [{cssSrc: withPrefix('/fonts/fonts.css')}],
159
- style: {base: {fontFamily: `'Nunito Sans', sans-serif`, fontWeight: 300}}
162
+ fonts: [{ cssSrc: withPrefix("/fonts/fonts.css") }],
163
+ style: { base: { fontFamily: `"Nunito Sans", sans-serif`, fontWeight: 300 } }
160
164
  },
161
165
  loginInitialEmailInputValue: initialEmailValue,
162
166
  authErrorCallback: (error) => {
163
167
  // we have an auth Error, perform logout
164
168
  const fragment = window?.location?.hash;
165
- return navigate('/auth/logout', {
169
+ return navigate("/auth/logout", {
166
170
  state: {
167
- backUrl: '/' + fragment
171
+ backUrl: "/" + fragment
168
172
  }
169
173
  });
170
174
  },
@@ -172,23 +176,29 @@ const RegistrationLiteComponent = ({
172
176
  companyInputPlaceholder: companyInputPlaceholder,
173
177
  companyDDLPlaceholder: companyDDLPlaceholder,
174
178
  supportEmail: getEnvVariable(SUPPORT_EMAIL),
179
+ initialOrderComplete1stParagraph: initialOrderComplete1stParagraph,
180
+ initialOrderComplete2ndParagraph: initialOrderComplete2ndParagraph,
181
+ initialOrderCompleteButton: initialOrderCompleteButton,
182
+ orderComplete1stParagraph: orderComplete1stParagraph,
183
+ orderComplete2ndParagraph: orderComplete2ndParagraph,
184
+ orderCompleteButton: orderCompleteButton,
175
185
  };
176
186
 
177
187
  const { registerButton } = marketingPageSettings.hero.buttons;
178
188
 
179
189
  return (
180
190
  <>
181
- {children ?
191
+ {children ?
182
192
  React.cloneElement(children, { onClick: handleOpenPopup })
183
193
  :
184
194
  registerButton.display &&
185
- <button className={`${styles.button} button is-large`} disabled={isActive}
186
- onClick={handleOpenPopup}>
187
- <i className={`fa fa-2x fa-edit icon is-large`}/>
188
- <b>{registerButton.text}</b>
189
- </button>
195
+ <button className={`${styles.button} button is-large`} disabled={isActive}
196
+ onClick={handleOpenPopup}>
197
+ <i className={`fa fa-2x fa-edit icon is-large`}/>
198
+ <b>{registerButton.text}</b>
199
+ </button>
190
200
  }
191
- <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Registration Lite'})}>
201
+ <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: "Registration Lite"})}>
192
202
  {isActive && <RegistrationLiteWidget {...widgetProps} />}
193
203
  </Sentry.ErrorBoundary>
194
204
  </>
@@ -219,4 +229,4 @@ export default connect(mapStateToProps, {
219
229
  checkOrderData,
220
230
  checkRequireExtraQuestionsByAttendee,
221
231
  getExtraQuestions,
222
- })(RegistrationLiteComponent)
232
+ })(RegistrationLiteComponent);
@@ -11,63 +11,61 @@ import "upcoming-events-widget/dist/index.css";
11
11
 
12
12
  import { addToSchedule, removeFromSchedule } from "../actions/user-actions";
13
13
 
14
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
14
15
  import { SentryFallbackFunction } from "./SentryErrorComponent";
15
16
 
16
17
  const UpcomingEventsComponent = ({
17
- className,
18
- userProfile,
19
- page,
20
- addToSchedule,
21
- removeFromSchedule,
22
- colorSettings,
23
- homeSettings,
24
- allEvents,
25
- summit,
26
- ...rest
18
+ className,
19
+ userProfile,
20
+ page,
21
+ addToSchedule,
22
+ removeFromSchedule,
23
+ colorSettings,
24
+ allEvents,
25
+ summit,
26
+ ...rest
27
27
  }) => {
28
- const wrapperClass = page === "marketing-site" ? "schedule-container-marketing" : "schedule-container";
28
+ const wrapperClass = page === "marketing-site" ? "schedule-container-marketing" : "schedule-container";
29
+ const { getSettingByKey } = useMarketingSettings();
30
+ const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
31
+ const componentProps = {
32
+ defaultImage: defaultImage,
33
+ eventsData: allEvents,
34
+ summitData: summit,
35
+ marketingData: colorSettings,
36
+ userProfile: userProfile,
37
+ showAllEvents: true,
38
+ triggerAction: (action, { event }) => {
39
+ switch (action) {
40
+ case "ADDED_TO_SCHEDULE": {
41
+ return addToSchedule(event);
42
+ }
43
+ case "REMOVED_FROM_SCHEDULE": {
44
+ return removeFromSchedule(event);
45
+ }
46
+ default:
47
+ return;
48
+ }
49
+ },
50
+ };
29
51
 
30
- const componentProps = {
31
- defaultImage: homeSettings.schedule_default_image,
32
- eventsData: allEvents,
33
- summitData: summit,
34
- marketingData: colorSettings,
35
- userProfile: userProfile,
36
- showAllEvents: true,
37
- triggerAction: (action, { event }) => {
38
- switch (action) {
39
- case "ADDED_TO_SCHEDULE": {
40
- return addToSchedule(event);
41
- }
42
- case "REMOVED_FROM_SCHEDULE": {
43
- return removeFromSchedule(event);
44
- }
45
- default:
46
- return;
47
- }
48
- },
49
- };
50
-
51
- return (
52
- <>
53
- <div id="upcoming-events" className={className || wrapperClass} style={{ height: 500 }}>
54
- <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Upcoming Events'})}>
55
- <UpcomingEvents {...componentProps} {...rest} />
56
- </Sentry.ErrorBoundary>
57
- </div>
58
- </>
59
- );
52
+ return (
53
+ <div id="upcoming-events" className={className || wrapperClass} style={{ height: 500 }}>
54
+ <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: 'Upcoming Events'})}>
55
+ <UpcomingEvents {...componentProps} {...rest} />
56
+ </Sentry.ErrorBoundary>
57
+ </div>
58
+ );
60
59
  };
61
60
 
62
61
  const mapStateToProps = ({ userState, summitState, allSchedulesState, settingState }) => ({
63
- userProfile: userState.userProfile,
64
- colorSettings: settingState.colorSettings,
65
- homeSettings: settingState.homeSettings,
66
- summit: summitState.summit,
67
- allEvents: allSchedulesState.allEvents,
62
+ userProfile: userState.userProfile,
63
+ colorSettings: settingState.colorSettings,
64
+ summit: summitState.summit,
65
+ allEvents: allSchedulesState.allEvents,
68
66
  });
69
67
 
70
68
  export default connect(mapStateToProps, {
71
- addToSchedule,
72
- removeFromSchedule
69
+ addToSchedule,
70
+ removeFromSchedule
73
71
  })(UpcomingEventsComponent);
@@ -0,0 +1 @@
1
+ {}
@@ -1,26 +1,25 @@
1
- import React from "react"
2
- import { Router, Location } from "@reach/router"
3
- import { connect } from 'react-redux'
4
- import HomePage from "../../templates/home-page"
5
- import EventPage from "../../templates/event-page"
1
+ import * as React from "react";
2
+ import { Router, Location } from "@reach/router";
3
+ import { connect } from "react-redux";
4
+ import LobbyPage from "../../templates/lobby-page";
5
+ import EventPage from "../../templates/event-page";
6
6
  import PostersPage from "../../templates/posters-page";
7
7
  import SchedulePage from "../../templates/schedule-page";
8
8
  import SponsorPage from "../../templates/sponsor-page"
9
9
  import ExpoHallPage from "../../templates/expo-hall-page"
10
10
  import FullProfilePage from "../../templates/full-profile-page"
11
- import WithAuthzRoute from '../../routes/WithAuthzRoute'
12
- import WithAuthRoute from '../../routes/WithAuthRoute';
11
+ import WithAuthzRoute from "../../routes/WithAuthzRoute"
12
+ import WithAuthRoute from "../../routes/WithAuthRoute";
13
13
  import ExtraQuestionsPage from "../../templates/extra-questions-page"
14
14
  import ShowOpenRoute from "../../routes/ShowOpenRoute";
15
15
  import WithBadgeRoute from "../../routes/WithBadgeRoute";
16
16
  import PosterDetailPage from "../../templates/poster-detail-page";
17
- import MyTicketsPage from '../../templates/my-tickets-page';
17
+ import MyTicketsPage from "../../templates/my-tickets-page";
18
18
  import WithTicketRoute from "../../routes/WithTicketRoute";
19
19
  import withRealTimeUpdates from "../../utils/real_time_updates/withRealTimeUpdates";
20
20
  import withFeedsWorker from "../../utils/withFeedsWorker";
21
21
  import Link from "../../components/Link";
22
22
 
23
-
24
23
  const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
25
24
 
26
25
  return (
@@ -32,7 +31,7 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
32
31
  location={location}
33
32
  schedKey="schedule-main"
34
33
  scheduleProps={{ subtitle:
35
- <Link to={'/a/my-schedule'}>Show My Schedule</Link>
34
+ <Link to={"/a/my-schedule"}>Show My Schedule</Link>
36
35
  }}
37
36
  allowClick={allowClick}
38
37
  />
@@ -52,8 +51,10 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
52
51
  summit_phase={summit_phase}
53
52
  isLoggedIn={isLoggedUser}
54
53
  user={user}
55
- scheduleProps={{ title: 'My Schedule', showSync: true, subtitle:
56
- <Link to={'/a/schedule'}>Show Schedule</Link>
54
+ scheduleProps={{
55
+ title: "My Schedule",
56
+ showSync: true,
57
+ subtitle: <Link to={"/a/schedule"}>Show Schedule</Link>
57
58
  }}
58
59
  schedKey="my-schedule-main"
59
60
  allowClick={allowClick}
@@ -62,7 +63,7 @@ const App = ({ isLoggedUser, user, summit_phase, allowClick = true }) => {
62
63
  <WithBadgeRoute path="/event/:eventId" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location}>
63
64
  <EventPage path="/" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
64
65
  </WithBadgeRoute>
65
- <HomePage path="/" isLoggedIn={isLoggedUser} user={user} location={location} />
66
+ <LobbyPage path="/" isLoggedIn={isLoggedUser} user={user} location={location} />
66
67
  <SponsorPage path="/sponsor/:sponsorId" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
67
68
  <ExpoHallPage path="/sponsors/" summit_phase={summit_phase} isLoggedIn={isLoggedUser} user={user} location={location} />
68
69
  </ShowOpenRoute>
@@ -85,4 +86,4 @@ const mapStateToProps = ({ loggedUserState, userState, clockState, settingState,
85
86
  });
86
87
 
87
88
  export default connect(mapStateToProps, {
88
- })(withFeedsWorker(withRealTimeUpdates(App)))
89
+ })(withFeedsWorker(withRealTimeUpdates(App)));
@@ -16,7 +16,7 @@ export const marketingPageQuery = graphql`
16
16
  marketingPageJson {
17
17
  hero {
18
18
  title
19
- subtitle
19
+ subTitle
20
20
  dateLayout
21
21
  date
22
22
  time
@@ -27,7 +27,7 @@ import {
27
27
  import { filterEventsByAccessLevels } from "../utils/authorizedGroups";
28
28
  import { randomSort } from "../utils/filterUtils";
29
29
 
30
- import DEFAULT_FILTERS_STATE from "content/posters-filters.json";
30
+ import DEFAULT_FILTERS_STATE from "../defaults/posters-filters.json";
31
31
  import allVoteablePresentations from "data/voteable-presentations.json";
32
32
 
33
33
  const DEFAULT_VOTEABLE_PRESENTATIONS_STATE = {
@@ -2,11 +2,10 @@ import { START_LOADING, STOP_LOADING } from "openstack-uicore-foundation/lib/uti
2
2
  import { LOGOUT_USER } from "openstack-uicore-foundation/lib/security/actions";
3
3
  import { RESET_STATE, SYNC_DATA, UPDATE_LAST_CHECK_FOR_NOVELTIES } from "../actions/base-actions-definitions";
4
4
 
5
+ import colors from "data/colors.json";
5
6
  // TODO: dont store build timestamps in site-settings, use another file
6
7
  import settings from "content/site-settings/index.json";
7
- import colors from "content/colors.json";
8
- // TODO: rename to lobby page settings?
9
- import homeSettings from "content/home-settings.json";
8
+ import lobbyPageSettings from "content/lobby-page/index.json";
10
9
  // TODO: should this live in reducer or should be accessed though graphql?
11
10
  import marketingPageSettings from "content/marketing-page/index.json";
12
11
  import postersPages from "content/posters-pages.json";
@@ -21,7 +20,7 @@ const DEFAULT_STATE = {
21
20
  widgets: settings.widgets,
22
21
  colorSettings: colors,
23
22
  marketingPageSettings: marketingPageSettings,
24
- homeSettings: homeSettings,
23
+ lobbyPageSettings: lobbyPageSettings,
25
24
  posterPagesSettings: postersPages,
26
25
  // this keeps tracks of last data synch
27
26
  lastDataSync: settings.lastBuild,