@openeventkit/event-site 2.0.148 → 2.1.0-beta.0

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/gatsby-browser.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as Sentry from "@sentry/gatsby";
2
2
  import { RewriteFrames as RewriteFramesIntegration } from "@sentry/integrations";
3
3
  import ReduxWrapper from "./src/state/ReduxWrapper";
4
+ import wrapThemeProvider from "./src/utils/wrapThemeProvider";
4
5
  import CookieManager from "./src/utils/cookies/CookieManager";
5
6
  import KlaroProvider from "./src/utils/cookies/providers/KlaroProvider";
6
7
  import cookieServices from "./src/utils/cookies/services";
@@ -20,7 +21,9 @@ import "./src/utils/fontAwesome";
20
21
  import colors from "data/colors.json";
21
22
  import marketingSettings from "data/marketing-settings.json";
22
23
 
23
- export const wrapRootElement = ReduxWrapper;
24
+ export const wrapRootElement = ({ element }) => {
25
+ return wrapThemeProvider({ element: ReduxWrapper({ element }) });
26
+ };
24
27
 
25
28
  export const onClientEntry = () => {
26
29
  // smooth scroll polyfill needed for Safari
package/gatsby-ssr.js CHANGED
@@ -1,20 +1,54 @@
1
- import ReduxWrapper from "./src/state/ReduxWrapper";
2
- import {
1
+ import * as React from "react";
2
+ import * as ReactDOMServer from "react-dom/server";
3
+ import createEmotionServer from "@emotion/server/create-instance";
4
+ import createEmotionCache from "./src/utils/createEmotionCache";
5
+ import {
3
6
  HtmlAttributes,
4
7
  HeadComponents,
5
8
  PreBodyComponents
6
9
  } from "./src/components/HeadComponents";
10
+ import ReduxWrapper from "./src/state/ReduxWrapper";
11
+ import wrapThemeProvider from "./src/utils/wrapThemeProvider";
7
12
 
8
- // build enabler polyfills
13
+ // Polyfills for build environment
9
14
  import "./src/utils/buildPolyfills";
10
15
 
11
- export const wrapRootElement = ReduxWrapper;
16
+ const renderToStringWithEmotion = (bodyComponent) => {
17
+ const cache = createEmotionCache();
18
+ const { extractCriticalToChunks, constructStyleTagsFromChunks } = createEmotionServer(cache);
19
+
20
+ const wrappedComponent = wrapThemeProvider({ element: ReduxWrapper({ element: bodyComponent }) });
21
+
22
+ const html = ReactDOMServer.renderToString(wrappedComponent);
23
+ const emotionChunks = extractCriticalToChunks(html);
24
+ const emotionCss = constructStyleTagsFromChunks(emotionChunks);
25
+
26
+ return { html, emotionCss };
27
+ };
28
+
29
+ export const replaceRenderer = ({
30
+ bodyComponent,
31
+ setHeadComponents,
32
+ replaceBodyHTMLString
33
+ }) => {
34
+ const { html, emotionCss } = renderToStringWithEmotion(bodyComponent);
35
+
36
+ const emotionStyleTags = (
37
+ <style
38
+ key="emotion-style"
39
+ dangerouslySetInnerHTML={{ __html: emotionCss }}
40
+ />
41
+ );
42
+
43
+ setHeadComponents([emotionStyleTags]);
44
+ replaceBodyHTMLString(html);
45
+ };
12
46
 
13
47
  export const onRenderBody = ({
14
48
  setHtmlAttributes,
15
49
  setHeadComponents,
16
50
  setPreBodyComponents
17
- }, pluginOptions) => {
51
+ }) => {
18
52
  setHtmlAttributes(HtmlAttributes);
19
53
  setHeadComponents(HeadComponents);
20
54
  setPreBodyComponents(PreBodyComponents);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openeventkit/event-site",
3
3
  "description": "Event Site",
4
- "version": "2.0.148",
4
+ "version": "2.1.0-beta.0",
5
5
  "author": "Tipit LLC",
6
6
  "dependencies": {
7
7
  "@fortawesome/fontawesome-svg-core": "^6.5.2",
@@ -30,7 +30,7 @@
30
30
  "@vimeo/player": "^2.16.3",
31
31
  "ably": "^1.2.34",
32
32
  "assert": "^2.1.0",
33
- "attendee-to-attendee-widget": "3.2.1-beta.6",
33
+ "attendee-to-attendee-widget": "3.3.0",
34
34
  "autoprefixer": "10.4.14",
35
35
  "awesome-bootstrap-checkbox": "^1.0.1",
36
36
  "axios": "^0.19.2",
@@ -129,7 +129,7 @@
129
129
  "stream-browserify": "^3.0.0",
130
130
  "stream-chat": "^2.7.2",
131
131
  "stream-chat-react": "3.1.7",
132
- "summit-registration-lite": "5.0.42",
132
+ "summit-registration-lite": "5.0.43",
133
133
  "superagent": "8.0.9",
134
134
  "sweetalert2": "^9.17.0",
135
135
  "upcoming-events-widget": "3.0.7",
@@ -4,10 +4,8 @@ import {
4
4
  stopLoading,
5
5
  startLoading,
6
6
  } from 'openstack-uicore-foundation/lib/utils/actions';
7
- import {
8
- getAccessToken,
9
- clearAccessToken,
10
- } from 'openstack-uicore-foundation/lib/security/methods';
7
+ import { clearAccessToken } from 'openstack-uicore-foundation/lib/security/methods';
8
+ import { getAccessTokenSafely } from '../utils/loginUtils';
11
9
 
12
10
  import { customErrorHandler } from '../utils/customErrorHandler';
13
11
 
@@ -48,14 +46,12 @@ export const getEventById = (
48
46
  }
49
47
  // then refresh from api
50
48
 
51
- let accessToken;
52
- try {
53
- accessToken = await getAccessToken();
54
- } catch (e) {
55
- console.log('getAccessToken error: ', e);
56
- dispatch(stopLoading());
57
- return Promise.reject();
58
- }
49
+ const accessToken = await getAccessTokenSafely()
50
+ .catch(() => {
51
+ dispatch(stopLoading());
52
+ console.log('REJECTING PROMISE AFTER STOP LOADING')
53
+ return Promise.reject();
54
+ });
59
55
 
60
56
  let params = {
61
57
  access_token: accessToken,
@@ -90,13 +86,11 @@ export const getEventStreamingInfoById = (
90
86
  eventId
91
87
  ) => async (dispatch) => {
92
88
 
93
- let accessToken;
94
- try {
95
- accessToken = await getAccessToken();
96
- } catch (e) {
97
- console.log('getAccessToken error: ', e);
98
- return Promise.reject();
99
- }
89
+ const accessToken = await getAccessTokenSafely()
90
+ .catch(() => {
91
+ dispatch(stopLoading());
92
+ return Promise.reject();
93
+ });
100
94
 
101
95
  let params = {
102
96
  access_token: accessToken
@@ -11,19 +11,18 @@ import {
11
11
  } from 'openstack-uicore-foundation/lib/utils/actions';
12
12
 
13
13
  import { customErrorHandler } from '../utils/customErrorHandler';
14
+ import {getAccessTokenSafely} from "../utils/loginUtils";
14
15
 
15
16
  export const GET_ATTENDEE_DATA = 'GET_ATTENDEE_DATA';
16
17
  export const REQUEST_ATTENDEE_DATA = 'REQUEST_ATTENDEE_DATA';
17
18
 
18
19
  export const getAttendeeData = (attendeeId) => async (dispatch, getState) => {
19
20
 
20
- let accessToken;
21
- try {
22
- accessToken = await getAccessToken();
23
- } catch (e) {
24
- console.log('getAccessToken error: ', e);
21
+ const accessToken = await getAccessTokenSafely()
22
+ .catch(() => {
23
+ dispatch(stopLoading());
25
24
  return Promise.reject();
26
- }
25
+ });
27
26
 
28
27
  let params = {
29
28
  access_token: accessToken,
@@ -18,6 +18,7 @@ import { getVotingPeriodPhase } from '../utils/phasesUtils';
18
18
  import { mapVotesPerTrackGroup } from '../utils/voting-utils';
19
19
 
20
20
  import { getEnvVariable, SUMMIT_API_BASE_URL, SUMMIT_ID } from '../utils/envVariables';
21
+ import {getAccessTokenSafely} from "../utils/loginUtils";
21
22
 
22
23
  export const SET_INITIAL_DATASET = 'VOTEABLE_PRESENTATIONS_SET_INITIAL_DATASET';
23
24
  export const GET_VOTEABLE_PRESENTATIONS = 'GET_VOTEABLE_PRESENTATIONS';
@@ -45,14 +46,11 @@ export const getAllVoteablePresentations = (page = 1, perPage = PresentationsDef
45
46
 
46
47
  dispatch(startLoading());
47
48
 
48
- let accessToken;
49
- try {
50
- accessToken = await getAccessToken();
51
- } catch (e) {
52
- console.log('getAccessToken error: ', e);
49
+ const accessToken = await getAccessTokenSafely()
50
+ .catch(() => {
53
51
  dispatch(stopLoading());
54
- return Promise.reject();
55
- }
52
+ return Promise.reject();
53
+ });
56
54
 
57
55
  const params = {
58
56
  access_token: accessToken,
@@ -85,13 +83,11 @@ export const getAllVoteablePresentations = (page = 1, perPage = PresentationsDef
85
83
 
86
84
  export const getVoteablePresentations = (page = 1, perPage = PresentationsDefaultPageSize) => async (dispatch, getState) => {
87
85
 
88
- let accessToken;
89
- try {
90
- accessToken = await getAccessToken();
91
- } catch (e) {
92
- console.log('getAccessToken error: ', e);
93
- return Promise.reject();
94
- }
86
+ const accessToken = await getAccessTokenSafely()
87
+ .catch(() => {
88
+ dispatch(stopLoading());
89
+ return Promise.reject();
90
+ });
95
91
 
96
92
  const params = {
97
93
  access_token: accessToken,
@@ -118,14 +114,11 @@ export const getPresentationById = (presentationId) => async (dispatch) => {
118
114
 
119
115
  dispatch(startLoading());
120
116
 
121
- let accessToken;
122
- try {
123
- accessToken = await getAccessToken();
124
- } catch (e) {
125
- console.log('getAccessToken error: ', e);
126
- dispatch(stopLoading());
127
- return Promise.reject(e);
128
- }
117
+ const accessToken = await getAccessTokenSafely()
118
+ .catch(() => {
119
+ dispatch(stopLoading());
120
+ return Promise.reject();
121
+ });
129
122
 
130
123
  const params = {
131
124
  access_token: accessToken,
@@ -154,14 +147,11 @@ export const getRecommendedPresentations = (trackGroups) => async (dispatch) =>
154
147
 
155
148
  dispatch(startLoading());
156
149
 
157
- let accessToken;
158
- try {
159
- accessToken = await getAccessToken();
160
- } catch (e) {
161
- console.log('getAccessToken error: ', e);
162
- dispatch(stopLoading());
163
- return Promise.reject();
164
- }
150
+ const accessToken = await getAccessTokenSafely()
151
+ .catch(() => {
152
+ dispatch(stopLoading());
153
+ return Promise.reject();
154
+ });
165
155
 
166
156
  // order by random
167
157
 
@@ -13,6 +13,7 @@ import {
13
13
  import URI from "urijs";
14
14
 
15
15
  import { customErrorHandler } from '../utils/customErrorHandler';
16
+ import {getAccessTokenSafely} from "../utils/loginUtils";
16
17
 
17
18
  export const GET_EXTRA_QUESTIONS = 'GET_EXTRA_QUESTIONS';
18
19
 
@@ -20,13 +21,11 @@ export const getExtraQuestions = (attendeeId = null) => async (dispatch, getStat
20
21
 
21
22
  dispatch(startLoading());
22
23
 
23
- let accessToken;
24
- try {
25
- accessToken = await getAccessToken();
26
- } catch (e) {
27
- console.log('getAccessToken error: ', e);
28
- return Promise.reject(e);
29
- }
24
+ const accessToken = await getAccessTokenSafely()
25
+ .catch(() => {
26
+ dispatch(stopLoading());
27
+ return Promise.reject();
28
+ });
30
29
 
31
30
  let apiUrl = URI(`${window.API_BASE_URL}/api/v1/summits/${window.SUMMIT_ID}/attendees/${attendeeId ? attendeeId : 'me'}/allowed-extra-questions`);
32
31
  apiUrl.addQuery('expand', '*sub_question_rules,*sub_question,*values')
@@ -25,6 +25,7 @@ import { navigate } from 'gatsby';
25
25
  import { customErrorHandler, customBadgeHandler, voidErrorHandler } from '../utils/customErrorHandler';
26
26
  import { getEnvVariable, SUMMIT_API_BASE_URL, SUMMIT_ID } from "../utils/envVariables";
27
27
  import expiredToken from "../utils/expiredToken";
28
+ import {getAccessTokenSafely} from "../utils/loginUtils";
28
29
  import * as Sentry from "@sentry/react";
29
30
 
30
31
  export const GET_DISQUS_SSO = 'GET_DISQUS_SSO';
@@ -68,13 +69,11 @@ export const getDisqusSSO = (shortName) => async (dispatch, getState) => {
68
69
 
69
70
  if (disqusSSO && disqusSsoExpiration > Date.now()) return;
70
71
 
71
- let accessToken;
72
- try {
73
- accessToken = await getAccessToken();
74
- } catch (e) {
75
- console.log('getAccessToken error: ', e);
76
- return Promise.reject(e);
77
- }
72
+ const accessToken = await getAccessTokenSafely()
73
+ .catch(() => {
74
+ dispatch(stopLoading());
75
+ return Promise.reject();
76
+ });
78
77
 
79
78
  return getRequest(
80
79
  null,
@@ -96,13 +95,11 @@ export const getDisqusSSO = (shortName) => async (dispatch, getState) => {
96
95
 
97
96
  export const getUserProfile = () => async (dispatch) => {
98
97
 
99
- let accessToken;
100
- try {
101
- accessToken = await getAccessToken();
102
- } catch (e) {
103
- console.log('getAccessToken error: ', e);
104
- return Promise.reject();
105
- }
98
+ const accessToken = await getAccessTokenSafely()
99
+ .catch(() => {
100
+ dispatch(stopLoading());
101
+ return Promise.reject();
102
+ });
106
103
 
107
104
  let params = {
108
105
  access_token: accessToken,
@@ -131,13 +128,11 @@ export const getUserProfile = () => async (dispatch) => {
131
128
 
132
129
  export const getIDPProfile = () => async (dispatch) => {
133
130
 
134
- let accessToken;
135
- try {
136
- accessToken = await getAccessToken();
137
- } catch (e) {
138
- console.log('getAccessToken error: ', e);
139
- return Promise.reject();
140
- }
131
+ const accessToken = await getAccessTokenSafely()
132
+ .catch(() => {
133
+ dispatch(stopLoading());
134
+ return Promise.reject();
135
+ });
141
136
 
142
137
  let params = {
143
138
  access_token: accessToken,
@@ -182,13 +177,11 @@ export const checkRequireExtraQuestionsByAttendee = (attendee) => (dispatch, get
182
177
 
183
178
  export const scanBadge = (sponsorId) => async (dispatch) => {
184
179
 
185
- let accessToken;
186
- try {
187
- accessToken = await getAccessToken();
188
- } catch (e) {
189
- console.log('getAccessToken error: ', e);
190
- return Promise.reject();
191
- }
180
+ const accessToken = await getAccessTokenSafely()
181
+ .catch(() => {
182
+ dispatch(stopLoading());
183
+ return Promise.reject();
184
+ });
192
185
 
193
186
  let params = {
194
187
  access_token: accessToken,
@@ -217,13 +210,11 @@ export const scanBadge = (sponsorId) => async (dispatch) => {
217
210
 
218
211
  export const addToSchedule = (event) => async (dispatch, getState) => {
219
212
 
220
- let accessToken;
221
- try {
222
- accessToken = await getAccessToken();
223
- } catch (e) {
224
- console.log('getAccessToken error: ', e);
225
- return Promise.reject();
226
- }
213
+ const accessToken = await getAccessTokenSafely()
214
+ .catch(() => {
215
+ dispatch(stopLoading());
216
+ return Promise.reject();
217
+ });
227
218
 
228
219
  const url = `${getEnvVariable(SUMMIT_API_BASE_URL)}/api/v1/summits/${getEnvVariable(SUMMIT_ID)}/members/me/schedule/${event.id}`;
229
220
 
@@ -241,13 +232,11 @@ export const addToSchedule = (event) => async (dispatch, getState) => {
241
232
 
242
233
  export const removeFromSchedule = (event) => async (dispatch, getState) => {
243
234
 
244
- let accessToken;
245
- try {
246
- accessToken = await getAccessToken();
247
- } catch (e) {
248
- console.log('getAccessToken error: ', e);
249
- return Promise.reject();
250
- }
235
+ const accessToken = await getAccessTokenSafely()
236
+ .catch(() => {
237
+ dispatch(stopLoading());
238
+ return Promise.reject();
239
+ });
251
240
 
252
241
  const url = `${getEnvVariable(SUMMIT_API_BASE_URL)}/api/v1/summits/${getEnvVariable(SUMMIT_ID)}/members/me/schedule/${event.id}`;
253
242
 
@@ -265,13 +254,11 @@ export const removeFromSchedule = (event) => async (dispatch, getState) => {
265
254
 
266
255
  export const castPresentationVote = (presentation) => async (dispatch, getState) => {
267
256
 
268
- let accessToken;
269
- try {
270
- accessToken = await getAccessToken();
271
- } catch (e) {
272
- console.log('getAccessToken error: ', e);
273
- return Promise.reject();
274
- }
257
+ const accessToken = await getAccessTokenSafely()
258
+ .catch(() => {
259
+ dispatch(stopLoading());
260
+ return Promise.reject();
261
+ });
275
262
 
276
263
  const params = {
277
264
  access_token: accessToken,
@@ -319,13 +306,11 @@ export const castPresentationVote = (presentation) => async (dispatch, getState)
319
306
 
320
307
  export const uncastPresentationVote = (presentation) => async (dispatch, getState) => {
321
308
 
322
- let accessToken;
323
- try {
324
- accessToken = await getAccessToken();
325
- } catch (e) {
326
- console.log('getAccessToken error: ', e);
327
- return Promise.reject();
328
- }
309
+ const accessToken = await getAccessTokenSafely()
310
+ .catch(() => {
311
+ dispatch(stopLoading());
312
+ return Promise.reject();
313
+ });
329
314
 
330
315
  const params = {
331
316
  access_token: accessToken,
@@ -358,13 +343,11 @@ export const uncastPresentationVote = (presentation) => async (dispatch, getStat
358
343
 
359
344
  export const updateProfilePicture = (pic) => async (dispatch) => {
360
345
 
361
- let accessToken;
362
- try {
363
- accessToken = await getAccessToken();
364
- } catch (e) {
365
- console.log('getAccessToken error: ', e);
366
- return Promise.reject();
367
- }
346
+ const accessToken = await getAccessTokenSafely()
347
+ .catch(() => {
348
+ dispatch(stopLoading());
349
+ return Promise.reject();
350
+ });
368
351
 
369
352
  let params = {
370
353
  access_token: accessToken,
@@ -391,13 +374,11 @@ export const updateProfilePicture = (pic) => async (dispatch) => {
391
374
 
392
375
  export const updateProfile = (profile) => async (dispatch) => {
393
376
 
394
- let accessToken;
395
- try {
396
- accessToken = await getAccessToken();
397
- } catch (e) {
398
- console.log('getAccessToken error: ', e);
399
- return Promise.reject();
400
- }
377
+ const accessToken = await getAccessTokenSafely()
378
+ .catch(() => {
379
+ dispatch(stopLoading());
380
+ return Promise.reject();
381
+ });
401
382
 
402
383
  let params = {
403
384
  access_token: accessToken,
@@ -423,13 +404,12 @@ export const updateProfile = (profile) => async (dispatch) => {
423
404
 
424
405
  export const updatePassword = (password) => async (dispatch) => {
425
406
 
426
- let accessToken;
427
- try {
428
- accessToken = await getAccessToken();
429
- } catch (e) {
430
- console.log('getAccessToken error: ', e);
431
- return Promise.reject();
432
- }
407
+ const accessToken = await getAccessTokenSafely()
408
+ .catch(() => {
409
+ dispatch(stopLoading());
410
+ return Promise.reject();
411
+ });
412
+
433
413
  let params = {
434
414
  access_token: accessToken,
435
415
  };
@@ -467,13 +447,11 @@ export const saveAttendeeQuestions = (values, ticketId = null) => async (dispatc
467
447
  normalizedEntity['attendee_company_id'] = values.attendee_company.id;
468
448
  }
469
449
 
470
- let accessToken;
471
- try {
472
- accessToken = await getAccessToken();
473
- } catch (e) {
474
- console.log('getAccessToken error: ', e);
475
- return Promise.reject();
476
- }
450
+ const accessToken = await getAccessTokenSafely()
451
+ .catch(() => {
452
+ dispatch(stopLoading());
453
+ return Promise.reject();
454
+ });
477
455
 
478
456
  let params = {
479
457
  access_token: accessToken,
@@ -517,13 +495,11 @@ export const setPasswordlessLogin = (params) => (dispatch, getState) => {
517
495
 
518
496
  export const getScheduleSyncLink = () => async (dispatch) => {
519
497
 
520
- let accessToken;
521
- try {
522
- accessToken = await getAccessToken();
523
- } catch (e) {
524
- console.log('getAccessToken error: ', e);
525
- return Promise.reject();
526
- }
498
+ const accessToken = await getAccessTokenSafely()
499
+ .catch(() => {
500
+ dispatch(stopLoading());
501
+ return Promise.reject();
502
+ });
527
503
 
528
504
  let params = {
529
505
  access_token: accessToken,
@@ -574,13 +550,11 @@ export const ticketOwnerChange = (ticket) => async (dispatch) => {
574
550
  */
575
551
  export const doVirtualCheckIn = (attendee) => async (dispatch, getState) => {
576
552
 
577
- let accessToken;
578
- try {
579
- accessToken = await getAccessToken();
580
- } catch (e) {
581
- console.log('getAccessToken error: ', e);
582
- return Promise.reject();
583
- }
553
+ const accessToken = await getAccessTokenSafely()
554
+ .catch(() => {
555
+ dispatch(stopLoading());
556
+ return Promise.reject();
557
+ });
584
558
 
585
559
  let params = {
586
560
  access_token: accessToken,
@@ -26,6 +26,7 @@ import { SentryFallbackFunction } from "./SentryErrorComponent";
26
26
 
27
27
  import { useEventListener } from "@utils/hooks";
28
28
  import { INIT_LOGOUT_EVENT } from "@utils/eventTriggers";
29
+ import {getAccessTokenSafely} from "../utils/loginUtils";
29
30
 
30
31
  const sbAuthProps = {
31
32
  supabaseUrl: getEnvVariable(SUPABASE_URL),
@@ -97,7 +98,7 @@ const AttendeesWidgetComponent = ({ user, event, summit, chatSettings }) => {
97
98
  openDir: "left",
98
99
  activity: null,
99
100
  getAccessToken: async () => {
100
- const accessToken = await getAccessToken();
101
+ const accessToken = await getAccessTokenSafely();
101
102
  //console.log("AttendeesList->getAccessToken", accessToken);
102
103
  return accessToken;
103
104
  },
@@ -209,7 +210,7 @@ const AccessTracker = ({ user, isLoggedUser, summitPhase, chatSettings, updateCh
209
210
  openDir: "left",
210
211
  activity: null,
211
212
  getAccessToken: async () => {
212
- const accessToken = await getAccessToken();
213
+ const accessToken = await getAccessTokenSafely();
213
214
  //console.log("AttendeesList->getAccessToken", accessToken);
214
215
  return accessToken;
215
216
  },
@@ -1 +1 @@
1
- {"favicon":{"asset":"icon.png"},"widgets":{"chat":{"enabled":true,"showQA":false,"showHelp":false,"defaultScope":"page"},"schedule":{"allowClick":true}},"identityProviderButtons":[{"buttonColor":"#082238","providerLabel":"Continue with FNid","providerLogo":"logo_fn.svg","providerLogoSize":27},{"buttonColor":"#0A66C2","providerLabel":"Sign in with LinkedIn","providerParam":"linkedin","providerLogo":"logo_linkedin.svg","providerLogoSize":18},{"buttonColor":"#000000","providerLabel":"Sign in with Apple","providerParam":"apple","providerLogoSize":17,"providerLogo":"logo_apple.svg"},{"buttonColor":"#1877F2","providerLabel":"Login with Facebook","providerParam":"facebook","providerLogo":"logo_facebook.svg","providerLogoSize":20}],"maintenanceMode":{"enabled":false,"title":"Site under maintenance","subtitle":"Please reload page shortly"},"staticJsonFilesBuildTime":[{"file":"src/data/summit.json","build_time":1727982576736},{"file":"src/data/events.json","build_time":1727982583326},{"file":"src/data/events.idx.json","build_time":1727982583332},{"file":"src/data/speakers.json","build_time":1727982584984},{"file":"src/data/speakers.idx.json","build_time":1727982584984},{"file":"src/content/sponsors.json","build_time":1727982590991},{"file":"src/data/voteable-presentations.json","build_time":1727982591883}],"lastBuild":1727982591884}
1
+ {"favicon":{"asset":"icon.png"},"widgets":{"chat":{"enabled":true,"showQA":false,"showHelp":false,"defaultScope":"page"},"schedule":{"allowClick":true}},"identityProviderButtons":[{"buttonColor":"#082238","providerLabel":"Continue with FNid","providerLogo":"logo_fn.svg","providerLogoSize":27},{"buttonColor":"#0A66C2","providerLabel":"Sign in with LinkedIn","providerParam":"linkedin","providerLogo":"logo_linkedin.svg","providerLogoSize":18},{"buttonColor":"#000000","providerLabel":"Sign in with Apple","providerParam":"apple","providerLogoSize":17,"providerLogo":"logo_apple.svg"},{"buttonColor":"#1877F2","providerLabel":"Login with Facebook","providerParam":"facebook","providerLogo":"logo_facebook.svg","providerLogoSize":20}],"maintenanceMode":{"enabled":false,"title":"Site under maintenance","subtitle":"Please reload page shortly"},"staticJsonFilesBuildTime":[{"file":"src/data/summit.json","build_time":1729267425393},{"file":"src/data/events.json","build_time":1729267444704},{"file":"src/data/events.idx.json","build_time":1729267444760},{"file":"src/data/speakers.json","build_time":1729267451072},{"file":"src/data/speakers.idx.json","build_time":1729267451085},{"file":"src/content/sponsors.json","build_time":1729267451432},{"file":"src/data/voteable-presentations.json","build_time":1729267451798}],"lastBuild":1729267451799}
@@ -1 +1 @@
1
- [{"id":7,"created":1598305743,"last_edited":1598305743,"order":1,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/summits/13/sponsors/7/logo-middle-tier-fntech.png","marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"fntech","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[457,459,460,462,468],"members":[26396,6,95567,5,28171],"company":{"id":4,"created":1582745992,"last_edited":1582745992,"name":"FNTECH","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4/logos/FNTECH-BLK-logo-rgb-1-color-white-720px2.png","big_logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4/logos/FNTECH-BLK-logo-rgb-1-color-white-720px3.png","color":"#f0f0ee","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[749,750,745,743,744,1455,1530,1531,1532,1533,1534,1570,1571,1572,756,742,747,746,2332,623,626,633,730,625,732,616],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":27,"created":1610063550,"last_edited":1610063550,"order":4,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":25,"created":1610060787,"last_edited":1610060787,"name":"Wherehol","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/25/logos/Logo-Middle-Tier-Wherehol.png","big_logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/25/logos/Logo-Middle-Tier-Wherehol1.png","color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[748,749,750,745,743,744,747,746,626,633,625],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":28,"created":1610063866,"last_edited":1610063866,"order":8,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":26,"created":1610063779,"last_edited":1610063779,"name":"Mobility","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/26/logos/Logo-Top-Tier-Mobility.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[748,749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":529,"widget_title":"Middle-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":13,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":13,"created":1610061803,"last_edited":1610061803,"name":"Middle-Tier","label":"Middle-Tier","order":13,"size":"Medium"}},"ads":[],"materials":[],"social_networks":[]},{"id":29,"created":1610063887,"last_edited":1610063887,"order":12,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":27,"created":1610063790,"last_edited":1610063790,"name":"Treva","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/27/logos/logo-lower-tier-treva.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[748,749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":572,"widget_title":"Lower-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":14,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":14,"created":1610061840,"last_edited":1610061840,"name":"Lower-Tier","label":"Lower-Tier","order":14,"size":"Small"}},"ads":[],"materials":[],"social_networks":[]},{"id":30,"created":1610646759,"last_edited":1610646759,"order":7,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":28,"created":1610646606,"last_edited":1610646606,"name":"DVC","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/28/logos/DVC-LOGO-968X968.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":31,"created":1610649182,"last_edited":1610649182,"order":3,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":29,"created":1610649003,"last_edited":1610649003,"name":"Seeing Eye Lighting Design","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/29/logos/logo-middle-tier-seeingeye.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":32,"created":1610649204,"last_edited":1610649204,"order":2,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[463,464],"members":[],"company":{"id":30,"created":1610649028,"last_edited":1610649028,"name":"Hughston Engineering","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/30/logos/logo-middle-tier-hughston.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":33,"created":1610649224,"last_edited":1610649224,"order":6,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":31,"created":1610649044,"last_edited":1610649044,"name":"Curtin Convention Services","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/31/logos/logo-middle-tier-curtin.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[748,749,750,745,743,744,633],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":37,"created":1617308510,"last_edited":1617308510,"order":5,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":null,"intro":null,"external_link":null,"video_link":null,"chat_link":null,"featured_event_id":0,"header_image_alt_text":null,"side_image_alt_text":null,"header_image_mobile_alt_text":null,"carousel_advertise_image_alt_text":null,"show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":35,"created":1617308469,"last_edited":1617308469,"name":"Anthony Drake & Associates","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/35/logos/YOCO-ADA-Sponsor-Ad-Home.jpg","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[747,734,623,617],"project_sponsorships":[]},"sponsorship":{"id":486,"widget_title":"Top-Tier Sponsors","lobby_template":"carousel","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":12,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":12,"created":1610061360,"last_edited":1610061360,"name":"Top-Tier","label":"Top-Tier","order":12,"size":"Large"}},"ads":[],"materials":[],"social_networks":[]},{"id":246,"created":1694795645,"last_edited":1694795645,"order":9,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":4238,"created":1694795086,"last_edited":1694795086,"name":"GameHub","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4238/logos/logo-middle-tier-gamehub.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":529,"widget_title":"Middle-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":13,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":13,"created":1610061803,"last_edited":1610061803,"name":"Middle-Tier","label":"Middle-Tier","order":13,"size":"Medium"}},"ads":[],"materials":[],"social_networks":[]},{"id":247,"created":1694795681,"last_edited":1694795681,"order":10,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":4239,"created":1694795131,"last_edited":1694795131,"name":"Hyved","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4239/logos/logo-middle-tier-hyved.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":529,"widget_title":"Middle-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":13,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":13,"created":1610061803,"last_edited":1610061803,"name":"Middle-Tier","label":"Middle-Tier","order":13,"size":"Medium"}},"ads":[],"materials":[],"social_networks":[]},{"id":248,"created":1694795712,"last_edited":1694795712,"order":11,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":4240,"created":1694795194,"last_edited":1694795194,"name":"FlightPath","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4240/logos/Logo-Top-Tier-Flightpath.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":529,"widget_title":"Middle-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":13,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":13,"created":1610061803,"last_edited":1610061803,"name":"Middle-Tier","label":"Middle-Tier","order":13,"size":"Medium"}},"ads":[],"materials":[],"social_networks":[]},{"id":249,"created":1694795831,"last_edited":1694795831,"order":13,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":4241,"created":1694795289,"last_edited":1694795289,"name":"Topographic Tech","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4241/logos/logo-lower-tier-topographic.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":572,"widget_title":"Lower-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":14,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":14,"created":1610061840,"last_edited":1610061840,"name":"Lower-Tier","label":"Lower-Tier","order":14,"size":"Small"}},"ads":[],"materials":[],"social_networks":[]},{"id":250,"created":1694795937,"last_edited":1694795937,"order":14,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":2569,"created":1654774524,"last_edited":1654774524,"name":"Open Technologies","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/2569/logos/logo-top-tier-opentech.png","big_logo":null,"color":"#f0f0ee","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":572,"widget_title":"Lower-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":14,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":14,"created":1610061840,"last_edited":1610061840,"name":"Lower-Tier","label":"Lower-Tier","order":14,"size":"Small"}},"ads":[],"materials":[],"social_networks":[]},{"id":251,"created":1694795962,"last_edited":1694795962,"order":15,"summit_id":13,"is_published":true,"side_image":null,"header_image":null,"header_image_mobile":null,"carousel_advertise_image":null,"marquee":"","intro":"","external_link":"","video_link":"","chat_link":"","featured_event_id":0,"header_image_alt_text":"","side_image_alt_text":"","header_image_mobile_alt_text":"","carousel_advertise_image_alt_text":"","show_logo_in_event_page":true,"lead_report_setting_id":null,"extra_questions":[],"members":[],"company":{"id":4242,"created":1694795398,"last_edited":1694795398,"name":"Tilted","url":"","url_segment":null,"city":"","state":"","country":"","description":"","industry":"","contributions":"","member_level":"None","overview":"","products":"","commitment":"","commitment_author":"","logo":"https://summit-api-dev-assets.nyc3.digitaloceanspaces.com/companies/4242/logos/logo-lower-tier-tilted.png","big_logo":null,"color":"#DADADA","display_on_site":false,"featured":false,"contact_email":"","admin_email":"","sponsorships":[],"project_sponsorships":[]},"sponsorship":{"id":572,"widget_title":"Lower-Tier Sponsors","lobby_template":"small-images","expo_hall_template":null,"sponsor_page_template":null,"event_page_template":null,"sponsor_page_use_disqus_widget":true,"sponsor_page_use_live_event_widget":true,"sponsor_page_use_schedule_widget":true,"sponsor_page_use_banner_widget":true,"badge_image":null,"badge_image_alt_text":"","summit_id":13,"order":14,"should_display_on_expo_hall_page":true,"should_display_on_lobby_page":true,"type":{"id":14,"created":1610061840,"last_edited":1610061840,"name":"Lower-Tier","label":"Lower-Tier","order":14,"size":"Small"}},"ads":[],"materials":[],"social_networks":[]}]
1
+ []
@@ -82,12 +82,12 @@ const App = ({ isLoggedUser, user, summitPhase, allowClick = true, data }) => {
82
82
  <MyTicketsPage path="/my-tickets" isLoggedIn={isLoggedUser} user={user} location={location} />
83
83
  <FullProfilePage path="/profile" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location} />
84
84
  <ExtraQuestionsPage path="/extra-questions" isLoggedIn={isLoggedUser} user={user} location={location} />
85
- { !mySchedulePageJson.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title:mySchedulePageJson.title, key: mySchedulePageJson.key }) }
85
+ { !mySchedulePageJson?.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson?.title, key: mySchedulePageJson?.key }) }
86
86
  <WithAuthzRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
87
87
  <PostersPage path="/posters" trackGroupId={0} location={location} />
88
88
  <PostersPage path="/posters/:trackGroupId" location={location} />
89
89
  <PosterDetailPage path="/poster/:presentationId/" isLoggedIn={isLoggedUser} user={user} location={location} />
90
- { mySchedulePageJson.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson.title, key: mySchedulePageJson.key }) }
90
+ { mySchedulePageJson?.needsTicketAuthz && mySchedulePage({location, summitPhase,isLoggedUser, user, allowClick, title: mySchedulePageJson?.title, key: mySchedulePageJson?.key }) }
91
91
  <ShowOpenRoute path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
92
92
  <WithBadgeRoute path="/event/:eventId" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location}>
93
93
  <EventPage path="/" summitPhase={summitPhase} isLoggedIn={isLoggedUser} user={user} location={location} />
@@ -1,4 +1,4 @@
1
- $color_accent: #00A2FF;
1
+ $color_accent: #00B189;
2
2
  $color_alerts: #ff0000;
3
3
  $color_background_light: #ffffff;
4
4
  $color_background_dark: #000000;
@@ -19,16 +19,16 @@ $color_input_text_color_light: #363636;
19
19
  $color_input_text_color_dark: #ffffff;
20
20
  $color_input_text_color_disabled_light: #ffffff;
21
21
  $color_input_text_color_disabled_dark: #ffffff;
22
- $color_primary: #000000;
22
+ $color_primary: #8DC63F;
23
23
  $color_primary_contrast: #FFFFFF;
24
- $color_secondary: #00A2FF;
25
- $color_secondary_contrast: #181818;
24
+ $color_secondary: #5e5f62;
25
+ $color_secondary_contrast: #005870;
26
26
  $color_text_light: #ffffff;
27
27
  $color_text_med: #828282;
28
- $color_text_dark: #000000;
28
+ $color_text_dark: #5e5f62;
29
29
  $color_text_input_hints_light: #7b7b7b;
30
30
  $color_text_input_hints_dark: #7b7b7b;
31
- $color_text_input_hints: #131313;
31
+ $color_text_input_hints: #c4c4c4;
32
32
 
33
33
  :root {
34
34
  --color_primary: #{$color_primary};
@@ -0,0 +1,10 @@
1
+ import { createTheme } from "@mui/material/styles";
2
+
3
+ const theme = createTheme({
4
+ cssVariables: true,
5
+ typography: {
6
+ fontFamily: "var(--font_family)"
7
+ }
8
+ });
9
+
10
+ export default theme;
@@ -31,12 +31,16 @@ export default React.forwardRef(({ data }, ref) => (
31
31
  const alt = item.images[0].alt ?? "";
32
32
  if (item.images[0].link) {
33
33
  return (
34
- <Link key={index} to={item.images[0].link}>
35
- <img src={getSrc(image)} alt={alt} />
34
+ <Link className={styles.masonryWrapper} key={index} to={item.images[0].link}>
35
+ <img className={styles.masonryImage} src={getSrc(image)} alt={alt} />
36
36
  </Link>
37
37
  );
38
38
  } else {
39
- return <img key={index} src={getSrc(image)} alt={alt} />;
39
+ return (
40
+ <div className={styles.masonryWrapper}>
41
+ <img className={styles.masonryImage} key={index} src={getSrc(image)} alt={alt} />;
42
+ </div>
43
+ );
40
44
  };
41
45
  } else if (item.images && item.images.length > 1) {
42
46
  return (
@@ -8,4 +8,14 @@
8
8
  .slider {
9
9
  margin-bottom: -5px;
10
10
  }
11
+
12
+ .masonryWrapper {
13
+ display: inline-block;
14
+ width: 100%;
15
+ font-size: 0;
16
+ .masonryImage {
17
+ width: 100%;
18
+ object-fit: cover;
19
+ }
20
+ }
11
21
  }
@@ -0,0 +1,12 @@
1
+ import createCache from "@emotion/cache";
2
+
3
+ let cacheInstance;
4
+
5
+ const createEmotionCache = (options) => {
6
+ if (!cacheInstance) {
7
+ cacheInstance = createCache(options ?? { key: "css" });
8
+ }
9
+ return cacheInstance;
10
+ };
11
+
12
+ export default createEmotionCache;
@@ -1,3 +1,5 @@
1
+ import { initLogOut, getAccessToken } from 'openstack-uicore-foundation/lib/security/methods'
2
+ import * as Sentry from '@sentry/react'
1
3
  import {
2
4
  getEnvVariable,
3
5
  AUTHORIZED_DEFAULT_PATH
@@ -53,3 +55,14 @@ export const validateIdentityProviderButtons = (
53
55
 
54
56
  return filteredButtons;
55
57
  };
58
+
59
+ export const getAccessTokenSafely = async () => {
60
+ try {
61
+ return await getAccessToken();
62
+ } catch (e) {
63
+ console.log("getAccessToken error: ", e);
64
+ Sentry.captureException(e)
65
+ initLogOut();
66
+ return Promise.reject();
67
+ }
68
+ };
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { CacheProvider } from "@emotion/react";
3
+ import { ThemeProvider } from "@mui/material/styles";
4
+ import CssBaseline from "@mui/material/CssBaseline";
5
+
6
+ import createEmotionCache from "./createEmotionCache";
7
+
8
+ import theme from "../styles/theme";
9
+
10
+ const cache = createEmotionCache();
11
+
12
+ const wrapThemeProvider = ({ element }) => (
13
+ <CacheProvider value={cache}>
14
+ <ThemeProvider theme={theme}>
15
+ <CssBaseline />
16
+ {element}
17
+ </ThemeProvider>
18
+ </CacheProvider>
19
+ );
20
+
21
+ export default wrapThemeProvider;