@openeventkit/event-site 2.0.73 → 2.0.75
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-config.js +23 -2
- package/package.json +11 -10
- package/src/actions/fetch-entities-actions.js +8 -3
- package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +11 -16
- package/src/cms/config/collections/configurationsCollection/siteSettings/typeDefs.js +4 -5
- package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +4 -4
- package/src/components/Seo.js +42 -51
- package/src/content/site-settings/icon.png +0 -0
- package/src/content/site-settings/index.json +2 -39
- package/src/pages/a/[...].js +1 -1
- package/src/pages/a/index.js +1 -1
- package/src/pages/a/sponsors.js +1 -1
- package/src/pages/index.js +4 -1
- package/src/templates/content-page.js +1 -1
- package/src/templates/event-page.js +1 -1
- package/src/templates/lobby-page.js +5 -5
- package/src/templates/marketing-page-template.js +1 -1
- package/src/templates/schedule-page.js +1 -3
- package/src/templates/sponsor-page.js +6 -3
- package/src/utils/urlFormating.js +7 -0
- package/src/utils/useSiteSettings.js +4 -16
- package/static/img/favicon.png +0 -0
package/gatsby-config.js
CHANGED
|
@@ -8,6 +8,7 @@ const {
|
|
|
8
8
|
STATIC_CONTENT_DIR_PATH,
|
|
9
9
|
CONTENT_PAGES_DIR_PATH,
|
|
10
10
|
SITE_SETTINGS_FILE_PATH,
|
|
11
|
+
SITE_SETTINGS_DIR_PATH,
|
|
11
12
|
MARKETING_SETTINGS_FILE_PATH
|
|
12
13
|
} = require("./src/utils/filePath");
|
|
13
14
|
|
|
@@ -19,12 +20,32 @@ catch (e) {
|
|
|
19
20
|
console.log("Falling back to default site settings.")
|
|
20
21
|
}
|
|
21
22
|
|
|
23
|
+
const title = siteSettings?.siteMetadata?.title || process.env.GATSBY_METADATA_TITLE || "Event Site";
|
|
24
|
+
const description = siteSettings?.siteMetadata?.description || process.env.GATSBY_METADATA_DESCRIPTION || "Event Site";
|
|
25
|
+
const manifestFaviconSettings = siteSettings?.favicon?.asset ? {
|
|
26
|
+
icon: `${SITE_SETTINGS_DIR_PATH}/${siteSettings.favicon.asset}`,
|
|
27
|
+
include_favicon: true
|
|
28
|
+
} : {};
|
|
29
|
+
|
|
22
30
|
module.exports = {
|
|
23
31
|
siteMetadata: {
|
|
24
|
-
title:
|
|
25
|
-
description:
|
|
32
|
+
title: title,
|
|
33
|
+
description: description
|
|
26
34
|
},
|
|
27
35
|
plugins: [
|
|
36
|
+
{
|
|
37
|
+
resolve: "gatsby-plugin-manifest",
|
|
38
|
+
options: {
|
|
39
|
+
name: title,
|
|
40
|
+
short_name: title,
|
|
41
|
+
description: description,
|
|
42
|
+
start_url: "/",
|
|
43
|
+
// Enables "Add to Homescreen" prompt and disables browser UI (including back button)
|
|
44
|
+
// see https://developers.google.com/web/fundamentals/web-app-manifest/#display
|
|
45
|
+
display: "minimal-ui",
|
|
46
|
+
...manifestFaviconSettings
|
|
47
|
+
}
|
|
48
|
+
},
|
|
28
49
|
{
|
|
29
50
|
resolve: "gatsby-alias-imports",
|
|
30
51
|
options: {
|
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.
|
|
4
|
+
"version": "2.0.75",
|
|
5
5
|
"author": "Tipit LLC",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@mui/base": "^5.0.0-alpha.114",
|
|
@@ -43,19 +43,20 @@
|
|
|
43
43
|
"font-awesome": "^4.7.0",
|
|
44
44
|
"formik": "^2.2.9",
|
|
45
45
|
"fs-extra": "^9.0.1",
|
|
46
|
-
"full-schedule-widget": "3.0.
|
|
46
|
+
"full-schedule-widget": "3.0.3",
|
|
47
47
|
"gatsby": "^5.8.1",
|
|
48
48
|
"gatsby-alias-imports": "^1.0.6",
|
|
49
49
|
"gatsby-plugin-image": "^3.8.0",
|
|
50
|
+
"gatsby-plugin-manifest": "^5.12.3",
|
|
50
51
|
"gatsby-plugin-netlify": "^5.1.0",
|
|
51
52
|
"gatsby-plugin-netlify-cms": "^7.8.0",
|
|
52
53
|
"gatsby-plugin-sass": "^6.8.0",
|
|
53
|
-
"gatsby-plugin-sharp": "^5.
|
|
54
|
+
"gatsby-plugin-sharp": "^5.12.3",
|
|
54
55
|
"gatsby-remark-images": "^7.8.0",
|
|
55
56
|
"gatsby-source-filesystem": "^5.8.0",
|
|
56
57
|
"gatsby-transformer-json": "^5.8.0",
|
|
57
58
|
"gatsby-transformer-remark": "^6.8.0",
|
|
58
|
-
"gatsby-transformer-sharp": "^5.
|
|
59
|
+
"gatsby-transformer-sharp": "^5.12.3",
|
|
59
60
|
"history": "^4.10.1",
|
|
60
61
|
"i18n-react": "^0.6.4",
|
|
61
62
|
"i18next": "^21.8.3",
|
|
@@ -66,8 +67,8 @@
|
|
|
66
67
|
"immutability-helper": "2.9.1",
|
|
67
68
|
"immutable": "^3.7.6",
|
|
68
69
|
"jsdom": "^16.2.2",
|
|
69
|
-
"lite-schedule-widget": "3.0.
|
|
70
|
-
"live-event-widget": "4.0.
|
|
70
|
+
"lite-schedule-widget": "3.0.3",
|
|
71
|
+
"live-event-widget": "4.0.2",
|
|
71
72
|
"lodash": "^4.17.19",
|
|
72
73
|
"lz-string": "^1.4.4",
|
|
73
74
|
"markdown-it": "^12.0.0",
|
|
@@ -77,7 +78,7 @@
|
|
|
77
78
|
"netlify-cms-app": "^2.15.72",
|
|
78
79
|
"netlify-cms-lib-widgets": "^1.8.0",
|
|
79
80
|
"node-sass-utils": "^1.1.3",
|
|
80
|
-
"openstack-uicore-foundation": "4.1.
|
|
81
|
+
"openstack-uicore-foundation": "4.1.55",
|
|
81
82
|
"path-browserify": "^1.0.1",
|
|
82
83
|
"prop-types": "^15.6.0",
|
|
83
84
|
"react": "^18.2.0",
|
|
@@ -115,14 +116,14 @@
|
|
|
115
116
|
"slick-carousel": "^1.8.1",
|
|
116
117
|
"smoothscroll-polyfill": "^0.4.4",
|
|
117
118
|
"socket.io-client": "^4.5.2",
|
|
118
|
-
"speakers-widget": "4.0.
|
|
119
|
+
"speakers-widget": "4.0.1",
|
|
119
120
|
"stream-browserify": "^3.0.0",
|
|
120
121
|
"stream-chat": "^2.7.2",
|
|
121
122
|
"stream-chat-react": "3.1.7",
|
|
122
|
-
"summit-registration-lite": "5.0.
|
|
123
|
+
"summit-registration-lite": "5.0.13",
|
|
123
124
|
"superagent": "8.0.9",
|
|
124
125
|
"sweetalert2": "^9.17.0",
|
|
125
|
-
"upcoming-events-widget": "3.0.
|
|
126
|
+
"upcoming-events-widget": "3.0.5",
|
|
126
127
|
"urijs": "^1.19.2",
|
|
127
128
|
"use-fit-text": "^2.4.0",
|
|
128
129
|
"uuid": "^7.0.0",
|
|
@@ -15,7 +15,7 @@ export const fetchEventById = async (summitId, eventId, accessToken = null) => {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
apiUrl.addQuery('expand', 'slides, links, videos, media_uploads, type, track, track.allowed_access_levels, location, location.venue, location.floor, speakers, moderator, sponsors, current_attendance, groups, rsvp_template, tags');
|
|
18
|
-
|
|
18
|
+
apiUrl.addQuery('evict_cache', 1);
|
|
19
19
|
return fetch(apiUrl.toString(), {
|
|
20
20
|
method: 'GET'
|
|
21
21
|
}).then(async (response) => {
|
|
@@ -45,6 +45,8 @@ export const fetchLocationById = async(summitId, locationId, expand, accessToken
|
|
|
45
45
|
if(expand)
|
|
46
46
|
apiUrl.addQuery('expand', expand);
|
|
47
47
|
|
|
48
|
+
apiUrl.addQuery('evict_cache', 1);
|
|
49
|
+
|
|
48
50
|
return fetch(apiUrl.toString(), {
|
|
49
51
|
method: 'GET'
|
|
50
52
|
}).then(async (response) => {
|
|
@@ -67,10 +69,12 @@ export const fetchSpeakerById = async(summitId, speakerId, accessToken = null) =
|
|
|
67
69
|
let apiUrl = URI(`${process.env.GATSBY_SUMMIT_API_BASE_URL}/api/public/v1/summits/${summitId}/speakers/${speakerId}`);
|
|
68
70
|
|
|
69
71
|
if(accessToken){
|
|
70
|
-
apiUrl = URI(`${process.env.GATSBY_SUMMIT_API_BASE_URL}/api/v1/summits/${summitId}/
|
|
72
|
+
apiUrl = URI(`${process.env.GATSBY_SUMMIT_API_BASE_URL}/api/v1/summits/${summitId}/speakers/${speakerId}`);
|
|
71
73
|
apiUrl.addQuery('access_token', accessToken);
|
|
72
74
|
}
|
|
73
75
|
|
|
76
|
+
apiUrl.addQuery('evict_cache', 1);
|
|
77
|
+
|
|
74
78
|
return fetch(apiUrl.toString(), {
|
|
75
79
|
method: 'GET'
|
|
76
80
|
}).then(async (response) => {
|
|
@@ -92,6 +96,7 @@ export const fetchSummitById = async(summitId, accessToken = null) => {
|
|
|
92
96
|
|
|
93
97
|
apiUrl.addQuery('expand', 'event_types,tracks,track_groups,presentation_levels,locations.rooms,locations.floors,order_extra_questions.values,schedule_settings,schedule_settings.filters,schedule_settings.pre_filters');
|
|
94
98
|
apiUrl.addQuery('t', Date.now());
|
|
99
|
+
apiUrl.addQuery('evict_cache', 1);
|
|
95
100
|
|
|
96
101
|
return fetch(apiUrl.toString(), {
|
|
97
102
|
method: 'GET'
|
|
@@ -101,4 +106,4 @@ export const fetchSummitById = async(summitId, accessToken = null) => {
|
|
|
101
106
|
}
|
|
102
107
|
return null;
|
|
103
108
|
});
|
|
104
|
-
}
|
|
109
|
+
}
|
|
@@ -35,34 +35,29 @@ const siteSettings = {
|
|
|
35
35
|
name: "siteMetadata",
|
|
36
36
|
fields: [
|
|
37
37
|
stringField({
|
|
38
|
-
label: "
|
|
38
|
+
label: "Title",
|
|
39
39
|
name: "title",
|
|
40
40
|
required: false
|
|
41
41
|
}),
|
|
42
42
|
textField({
|
|
43
|
-
label: "
|
|
43
|
+
label: "Description",
|
|
44
44
|
name: "description",
|
|
45
45
|
required: false
|
|
46
|
+
}),
|
|
47
|
+
imageField({
|
|
48
|
+
label: "Image",
|
|
49
|
+
name: "image",
|
|
50
|
+
required: false
|
|
46
51
|
})
|
|
47
52
|
]
|
|
48
53
|
}),
|
|
49
54
|
objectField({
|
|
50
|
-
label: "
|
|
51
|
-
name: "
|
|
55
|
+
label: "Favicon",
|
|
56
|
+
name: "favicon",
|
|
52
57
|
fields: [
|
|
53
58
|
imageField({
|
|
54
|
-
label: "
|
|
55
|
-
name: "
|
|
56
|
-
required: false
|
|
57
|
-
}),
|
|
58
|
-
imageField({
|
|
59
|
-
label: "Favicon 32x32",
|
|
60
|
-
name: "favicon32",
|
|
61
|
-
required: false
|
|
62
|
-
}),
|
|
63
|
-
imageField({
|
|
64
|
-
label: "Favicon 16x16",
|
|
65
|
-
name: "favicon16",
|
|
59
|
+
label: "Image for favicon generation (squared, at least 512x512)",
|
|
60
|
+
name: "asset",
|
|
66
61
|
required: false
|
|
67
62
|
})
|
|
68
63
|
]
|
|
@@ -3,11 +3,10 @@ module.exports = `
|
|
|
3
3
|
type SiteMetadata {
|
|
4
4
|
title: String
|
|
5
5
|
description: String
|
|
6
|
+
image: File @fileByRelativePath
|
|
6
7
|
}
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
favicon32: File @fileByRelativePath
|
|
10
|
-
favicon16: File @fileByRelativePath
|
|
8
|
+
type Favicon {
|
|
9
|
+
asset: File @fileByRelativePath
|
|
11
10
|
}
|
|
12
11
|
type Schedule {
|
|
13
12
|
allowClick: Boolean
|
|
@@ -24,7 +23,7 @@ module.exports = `
|
|
|
24
23
|
}
|
|
25
24
|
type SiteSettingsJson implements Node {
|
|
26
25
|
siteMetadata: SiteMetadata
|
|
27
|
-
|
|
26
|
+
favicon: Favicon
|
|
28
27
|
widgets: Widgets
|
|
29
28
|
}
|
|
30
29
|
`;
|
|
@@ -13,6 +13,10 @@ import {
|
|
|
13
13
|
markdownField
|
|
14
14
|
} from "../../../fields";
|
|
15
15
|
|
|
16
|
+
import {
|
|
17
|
+
MARKETING_PAGE_FILE_PATH
|
|
18
|
+
} from "@utils/filePath";
|
|
19
|
+
|
|
16
20
|
const markdownFieldButtons = [
|
|
17
21
|
"bold",
|
|
18
22
|
"italic",
|
|
@@ -26,10 +30,6 @@ const markdownFieldButtons = [
|
|
|
26
30
|
"numbered-list"
|
|
27
31
|
];
|
|
28
32
|
|
|
29
|
-
import {
|
|
30
|
-
MARKETING_PAGE_FILE_PATH
|
|
31
|
-
} from "@utils/filePath";
|
|
32
|
-
|
|
33
33
|
const marketingPage = {
|
|
34
34
|
label: "Marketing Page",
|
|
35
35
|
name: "marketing-page",
|
package/src/components/Seo.js
CHANGED
|
@@ -1,63 +1,54 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
import
|
|
2
|
+
import PropTypes from "prop-types";
|
|
3
3
|
import useSiteSettings from "@utils/useSiteSettings";
|
|
4
|
-
import {
|
|
4
|
+
import { Helmet } from "react-helmet";
|
|
5
5
|
import { getSrc } from "gatsby-plugin-image";
|
|
6
|
+
import { getUrl } from "@utils/urlFormating";
|
|
6
7
|
|
|
7
|
-
const Seo = ({
|
|
8
|
-
title,
|
|
9
|
-
description,
|
|
10
|
-
pathname,
|
|
11
|
-
children
|
|
12
|
-
}) => {
|
|
8
|
+
const Seo = ({ title, description, location, children }) => {
|
|
13
9
|
const {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
siteMetadata: {
|
|
11
|
+
title: siteTitle,
|
|
12
|
+
description: defaultDescription,
|
|
13
|
+
image
|
|
14
|
+
}
|
|
15
|
+
} = useSiteSettings();
|
|
16
|
+
const host = typeof window !== "undefined" ? window.location.host : null;
|
|
17
|
+
const scheme = typeof window !== "undefined" ? window.location.protocol.replace(":", "") : "https";
|
|
18
|
+
const { pathname } = location;
|
|
17
19
|
const seo = {
|
|
18
|
-
title: title ? `${
|
|
20
|
+
title: title ? `${siteTitle} - ${title}` : siteTitle,
|
|
19
21
|
description: description || defaultDescription,
|
|
20
|
-
url:
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
url: getUrl(scheme, host, pathname),
|
|
23
|
+
image: host && image ? getUrl(scheme, host, getSrc(image)) : null,
|
|
24
|
+
};
|
|
23
25
|
return (
|
|
24
|
-
|
|
25
|
-
<title>{seo.title}</title>
|
|
26
|
-
<meta name="description" content={seo.description} />
|
|
27
|
-
<meta
|
|
28
|
-
<meta
|
|
29
|
-
<meta
|
|
30
|
-
<meta
|
|
31
|
-
<meta
|
|
32
|
-
<meta name="
|
|
33
|
-
<meta property="
|
|
34
|
-
<meta property="
|
|
35
|
-
<meta
|
|
36
|
-
{
|
|
37
|
-
<
|
|
38
|
-
rel="apple-touch-icon"
|
|
39
|
-
sizes="180x180"
|
|
40
|
-
href={`${getSrc(favicons.favicon180)}`}
|
|
41
|
-
/>
|
|
42
|
-
}
|
|
43
|
-
{favicons?.favicon32 &&
|
|
44
|
-
<link
|
|
45
|
-
rel="icon"
|
|
46
|
-
sizes="32x32"
|
|
47
|
-
href={`${getSrc(favicons.favicon32)}`}
|
|
48
|
-
/>
|
|
49
|
-
}
|
|
50
|
-
{favicons?.favicon16 &&
|
|
51
|
-
<link
|
|
52
|
-
rel="icon"
|
|
53
|
-
type="image/png"
|
|
54
|
-
sizes="16x16"
|
|
55
|
-
href={`${getSrc(favicons.favicon16)}`}
|
|
56
|
-
/>
|
|
57
|
-
}
|
|
26
|
+
<Helmet>
|
|
27
|
+
{seo.title && <title>{seo.title}</title>}
|
|
28
|
+
{seo.description && <meta name="description" content={seo.description} />}
|
|
29
|
+
{seo.url && <meta property="og:url" content={seo.url} />}
|
|
30
|
+
<meta property="og:type" content="website" />
|
|
31
|
+
{seo.title && <meta property="og:title" content={seo.title} />}
|
|
32
|
+
{seo.description && <meta property="og:description" content={seo.description} />}
|
|
33
|
+
{seo.image && <meta property="og:image" content={seo.image} />}
|
|
34
|
+
{seo.image && <meta name="twitter:card" content="summary_large_image" />}
|
|
35
|
+
{host && <meta property="twitter:domain" content={host} />}
|
|
36
|
+
{seo.url && <meta property="twitter:url" content={seo.url} />}
|
|
37
|
+
{seo.title && <meta name="twitter:title" content={seo.title} />}
|
|
38
|
+
{seo.description && <meta name="twitter:description" content={seo.description} />}
|
|
39
|
+
{seo.image && <meta name="twitter:image" content={seo.image} />}
|
|
58
40
|
{children}
|
|
59
|
-
|
|
60
|
-
)
|
|
41
|
+
</Helmet>
|
|
42
|
+
);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
Seo.propTypes = {
|
|
46
|
+
title: PropTypes.string,
|
|
47
|
+
description: PropTypes.string,
|
|
48
|
+
location: PropTypes.shape({
|
|
49
|
+
pathname: PropTypes.string.isRequired
|
|
50
|
+
}).isRequired,
|
|
51
|
+
children: PropTypes.node
|
|
61
52
|
};
|
|
62
53
|
|
|
63
54
|
export default Seo;
|
|
Binary file
|
|
@@ -10,44 +10,7 @@
|
|
|
10
10
|
"allowClick": true
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"favicon32": "/img/favicon.png",
|
|
16
|
-
"favicon16": "/img/favicon.png"
|
|
17
|
-
},
|
|
18
|
-
"staticJsonFilesBuildTime": [
|
|
19
|
-
{
|
|
20
|
-
"file": "src/data/summit.json",
|
|
21
|
-
"build_time": 1692386447666
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"file": "src/data/events.json",
|
|
25
|
-
"build_time": 1692386451064
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
"file": "src/data/events.idx.json",
|
|
29
|
-
"build_time": 1692386451066
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"file": "src/data/speakers.json",
|
|
33
|
-
"build_time": 1692386451884
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
"file": "src/data/speakers.idx.json",
|
|
37
|
-
"build_time": 1692386451884
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"file": "src/content/sponsors.json",
|
|
41
|
-
"build_time": 1692386455106
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"file": "src/data/voteable-presentations.json",
|
|
45
|
-
"build_time": 1692386457214
|
|
46
|
-
}
|
|
47
|
-
],
|
|
48
|
-
"lastBuild": 1692386457215,
|
|
49
|
-
"siteMetadata": {
|
|
50
|
-
"title": "test!!",
|
|
51
|
-
"description": "TEST!!$DESC"
|
|
13
|
+
"favicon": {
|
|
14
|
+
"asset": "icon.png"
|
|
52
15
|
}
|
|
53
16
|
}
|
package/src/pages/a/[...].js
CHANGED
package/src/pages/a/index.js
CHANGED
package/src/pages/a/sponsors.js
CHANGED
package/src/pages/index.js
CHANGED
|
@@ -139,4 +139,7 @@ const mapStateToProps = ({
|
|
|
139
139
|
export default connect(mapStateToProps, {
|
|
140
140
|
})(withFeedsWorker(withRealTimeUpdates(MarketingPage)));
|
|
141
141
|
|
|
142
|
-
export const Head = (
|
|
142
|
+
export const Head = ({
|
|
143
|
+
location
|
|
144
|
+
}) => <Seo location={location} />;
|
|
145
|
+
|
|
@@ -191,8 +191,8 @@ export const EventPageTemplate = class extends React.Component {
|
|
|
191
191
|
</div>
|
|
192
192
|
)}
|
|
193
193
|
<UpcomingEventsComponent
|
|
194
|
-
key={`event_page_upcomming_event_${lastDataSync}`}
|
|
195
194
|
id={`event_page_upcomming_event_${lastDataSync}`}
|
|
195
|
+
lastDataSync={lastDataSync}
|
|
196
196
|
trackId={event.track ? event.track.id : null}
|
|
197
197
|
eventCount={3}
|
|
198
198
|
title={
|
|
@@ -76,7 +76,7 @@ export const LobbyPageTemplate = class extends React.Component {
|
|
|
76
76
|
<h2><b>Today</b></h2>
|
|
77
77
|
<LiveEventWidgetComponent
|
|
78
78
|
id={`lobby_page_live_event_${lastDataSync}`}
|
|
79
|
-
|
|
79
|
+
lastDataSync={lastDataSync}
|
|
80
80
|
onlyPresentations={true}
|
|
81
81
|
featuredEventId={liveNowFeaturedEventId}
|
|
82
82
|
onEventClick={(ev) => this.onEventChange(ev)}
|
|
@@ -91,7 +91,7 @@ export const LobbyPageTemplate = class extends React.Component {
|
|
|
91
91
|
/>
|
|
92
92
|
<UpcomingEventsComponent
|
|
93
93
|
id={`lobby_page_upcomming_events_${lastDataSync}`}
|
|
94
|
-
|
|
94
|
+
lastDataSync={lastDataSync}
|
|
95
95
|
title="Up Next"
|
|
96
96
|
eventCount={4}
|
|
97
97
|
renderEventLink={(event) => <Link to={`/a/event/${event.id}`}>{event.title}</Link>}
|
|
@@ -102,7 +102,7 @@ export const LobbyPageTemplate = class extends React.Component {
|
|
|
102
102
|
<SpeakersWidgetComponent
|
|
103
103
|
title="Today's Speakers"
|
|
104
104
|
id={`home_page_today_speakers_${lastDataSync}`}
|
|
105
|
-
|
|
105
|
+
lastDataSync={lastDataSync}
|
|
106
106
|
bigPics={true}
|
|
107
107
|
/>
|
|
108
108
|
}
|
|
@@ -110,7 +110,7 @@ export const LobbyPageTemplate = class extends React.Component {
|
|
|
110
110
|
<SpeakersWidgetComponent
|
|
111
111
|
title="Featured Speakers"
|
|
112
112
|
id={`lobby_page_featured_speakers_${lastDataSync}`}
|
|
113
|
-
|
|
113
|
+
lastDataSync={lastDataSync}
|
|
114
114
|
bigPics={false}
|
|
115
115
|
featured={true}
|
|
116
116
|
date={null}
|
|
@@ -124,7 +124,7 @@ export const LobbyPageTemplate = class extends React.Component {
|
|
|
124
124
|
<AttendeesWidget user={user}/>
|
|
125
125
|
<LiteScheduleComponent
|
|
126
126
|
id={`lobby_page_lite_schedule_${lastDataSync}`}
|
|
127
|
-
|
|
127
|
+
lastDataSync={lastDataSync}
|
|
128
128
|
onEventClick={(ev) => this.onEventChange(ev)}
|
|
129
129
|
onViewAllEventsClick={() => this.onViewAllMyEventsClick()}
|
|
130
130
|
title="My Schedule"
|
|
@@ -70,7 +70,7 @@ const MarketingPageTemplate = ({
|
|
|
70
70
|
<h2><b>{marketingPageJson.leftColumn.schedule.title}</b></h2>
|
|
71
71
|
<LiteScheduleComponent
|
|
72
72
|
{...scheduleProps}
|
|
73
|
-
|
|
73
|
+
lastDataSync={lastDataSync}
|
|
74
74
|
id={`marketing_lite_schedule_${lastDataSync}`}
|
|
75
75
|
page="marketing-site"
|
|
76
76
|
showAllEvents={true}
|
|
@@ -91,9 +91,7 @@ const SchedulePage = ({ summit, scheduleState, summitPhase, isLoggedUser, locati
|
|
|
91
91
|
<div className={`container ${styles.container}`}>
|
|
92
92
|
<div className={`${styles.wrapper} ${showFilters ? styles.showFilters : ""}`}>
|
|
93
93
|
<div className={styles.scheduleWrapper}>
|
|
94
|
-
<FullSchedule {...schedProps}
|
|
95
|
-
key={`fullschedule_${lastDataSync}`}
|
|
96
|
-
/>
|
|
94
|
+
<FullSchedule {...schedProps} lastDataSync={lastDataSync} />
|
|
97
95
|
</div>
|
|
98
96
|
<div ref={filtersWrapperRef} className={styles.filterWrapper}>
|
|
99
97
|
<ScheduleFilters {...filterProps} />
|
|
@@ -21,7 +21,7 @@ import { getEnvVariable, LIVE_EVENT_THUMBNAIL_GIF_CAPTURE_STARTS } from "../util
|
|
|
21
21
|
import styles from '../styles/sponsor-page.module.scss'
|
|
22
22
|
import SponsorNavigation from '../components/SponsorNavigation'
|
|
23
23
|
|
|
24
|
-
const SponsorPageTemplate = ({ sponsorId, sponsors, scanBadge, eventId }) => {
|
|
24
|
+
const SponsorPageTemplate = ({ sponsorId, sponsors, scanBadge, eventId, lastDataSync }) => {
|
|
25
25
|
|
|
26
26
|
const [sponsorLoading, setSponsorLoading] = useState(true);
|
|
27
27
|
const [sponsor, setSponsor] = useState(null)
|
|
@@ -104,6 +104,7 @@ const SponsorPageTemplate = ({ sponsorId, sponsors, scanBadge, eventId }) => {
|
|
|
104
104
|
}
|
|
105
105
|
{liveEventWidget &&
|
|
106
106
|
<LiveEventWidgetComponent
|
|
107
|
+
lastDataSync={lastDataSync}
|
|
107
108
|
onEventClick={(ev) => onEventChange(ev)}
|
|
108
109
|
onlyPresentations={true}
|
|
109
110
|
sponsorId={sponsor?.company.id}
|
|
@@ -115,6 +116,7 @@ const SponsorPageTemplate = ({ sponsorId, sponsors, scanBadge, eventId }) => {
|
|
|
115
116
|
{scheduleWidget &&
|
|
116
117
|
<UpcomingEventsComponent
|
|
117
118
|
eventCount={3}
|
|
119
|
+
lastDataSync={lastDataSync}
|
|
118
120
|
sponsorId={sponsor?.company.id}
|
|
119
121
|
renderEventLink={(event) => <Link to={`/a/event/${event.id}`}>{event.title}</Link>}
|
|
120
122
|
allEventsLink={<Link to={`/a/schedule#company=${encodeURIComponent(sponsor?.name)}`}>View all <span className="sr-only">events</span></Link>}
|
|
@@ -184,10 +186,11 @@ SponsorPageTemplate.propTypes = {
|
|
|
184
186
|
sponsorId: PropTypes.string,
|
|
185
187
|
};
|
|
186
188
|
|
|
187
|
-
const mapStateToProps = ({ userState, sponsorState, summitState }) => ({
|
|
189
|
+
const mapStateToProps = ({ userState, sponsorState, summitState, settingState }) => ({
|
|
188
190
|
user: userState,
|
|
189
191
|
sponsors: sponsorState.sponsors,
|
|
190
|
-
summit: summitState.summit
|
|
192
|
+
summit: summitState.summit,
|
|
193
|
+
lastDataSync: settingState.lastDataSync
|
|
191
194
|
});
|
|
192
195
|
|
|
193
196
|
export default connect(mapStateToProps, { scanBadge })(SponsorPage);
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
|
|
2
|
+
export const getUrl = (scheme, host, pathname) => {
|
|
3
|
+
if (!host) return null;
|
|
4
|
+
const domain = `${scheme}://${host}`;
|
|
5
|
+
return `${domain}${pathname ?? "/"}`;
|
|
6
|
+
};
|
|
7
|
+
|
|
1
8
|
export const getSponsorURL = (id, name) => {
|
|
2
9
|
let formattedName = name.toLowerCase().replace(/\s/g, '-');
|
|
3
10
|
return `${id}-${formattedName}`;
|
|
@@ -6,22 +6,10 @@ import {
|
|
|
6
6
|
const siteSettingsQuery = graphql`
|
|
7
7
|
query {
|
|
8
8
|
siteSettingsJson {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
quality: 100
|
|
14
|
-
)
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
favicon32 {
|
|
18
|
-
childImageSharp {
|
|
19
|
-
gatsbyImageData (
|
|
20
|
-
quality: 100
|
|
21
|
-
)
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
favicon180 {
|
|
9
|
+
siteMetadata {
|
|
10
|
+
title,
|
|
11
|
+
description,
|
|
12
|
+
image {
|
|
25
13
|
childImageSharp {
|
|
26
14
|
gatsbyImageData (
|
|
27
15
|
quality: 100
|
package/static/img/favicon.png
DELETED
|
Binary file
|