@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.
- package/gatsby-browser.js +2 -2
- package/gatsby-config.js +39 -27
- package/gatsby-node.js +23 -18
- package/package.json +2 -2
- package/src/cms/cms.js +2 -2
- package/src/cms/config/collections/configurationsCollection/index.js +1 -1
- package/src/cms/config/collections/configurationsCollection/navbar/index.js +0 -1
- package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +0 -1
- package/src/cms/config/collections/contentPagesCollection/index.js +65 -0
- package/src/cms/config/collections/contentPagesCollection/typeDefs.js +8 -0
- package/src/cms/config/collections/defaultPagesCollection/index.js +2 -2
- package/src/cms/config/collections/defaultPagesCollection/lobbyPage/index.js +67 -0
- package/src/cms/config/collections/defaultPagesCollection/lobbyPage/typeDefs.js +21 -0
- package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +1 -1
- package/src/cms/config/collections/defaultPagesCollection/marketingPage/typeDefs.js +1 -1
- package/src/cms/config/collections/typeDefs.js +3 -1
- package/src/cms/config/fields.js +0 -4
- package/src/cms/config/index.js +4 -2
- package/src/cms/config/patterns.js +3 -4
- package/src/cms/preview-templates/{CustomPagePreview.js → ContentPagePreview.js} +5 -5
- package/src/components/DisqusComponent.js +3 -5
- package/src/components/FullSchedule.js +5 -4
- package/src/components/LiteScheduleComponent.js +34 -36
- package/src/components/LiveEventWidgetComponent.js +29 -24
- package/src/components/Navbar/index.js +1 -0
- package/src/components/{page-header/index.jsx → PageHeader/index.js} +9 -5
- package/src/components/RegistrationLiteComponent.js +66 -56
- package/src/components/UpcomingEventsComponent.js +46 -48
- package/src/content/lobby-page/index.json +1 -0
- package/src/pages/a/[...].js +15 -14
- package/src/pages/index.js +1 -1
- package/src/reducers/presentations-reducer.js +1 -1
- package/src/reducers/setting-reducer.js +3 -4
- package/src/styles/style.scss +1 -1
- package/src/templates/{custom-page.js → content-page.js} +10 -8
- package/src/templates/event-page.js +247 -247
- package/src/templates/lobby-page.js +178 -0
- package/src/templates/maintenance-page.js +5 -5
- package/src/templates/poster-detail-page.js +2 -5
- package/src/templates/posters-page.js +1 -1
- package/src/utils/filePath.js +13 -7
- package/src/utils/phasesUtils.js +1 -1
- package/src/utils/useMarketingSettings.js +10 -8
- package/static/admin/config.yml.template +1 -2
- package/src/content/disqus-settings.json +0 -1
- package/src/content/home-settings.json +0 -1
- package/src/content/marketing-settings.json +0 -1
- package/src/pages/custom-pages/about-event.md +0 -16
- package/src/pages/custom-pages/contact.md +0 -8
- package/src/pages/custom-pages/footer-content.md +0 -8
- package/src/pages/custom-pages/help.md +0 -8
- package/src/pages/custom-pages/past-events.md +0 -8
- package/src/pages/custom-pages/who-we-are.md +0 -8
- package/src/templates/home-page.js +0 -170
- /package/src/components/{page-header → PageHeader}/index.module.scss +0 -0
- /package/src/{content → defaults}/colors.json +0 -0
- /package/src/{content → defaults}/posters-filters.json +0 -0
package/gatsby-browser.js
CHANGED
|
@@ -2,8 +2,6 @@ import * as Sentry from "@sentry/gatsby";
|
|
|
2
2
|
import { RewriteFrames as RewriteFramesIntegration } from "@sentry/integrations";
|
|
3
3
|
import ReduxWrapper from "./src/state/ReduxWrapper";
|
|
4
4
|
|
|
5
|
-
import colors from "./src/content/colors.json";
|
|
6
|
-
|
|
7
5
|
import smoothscroll from "smoothscroll-polyfill";
|
|
8
6
|
import "what-input";
|
|
9
7
|
|
|
@@ -12,6 +10,8 @@ import "./src/styles/bulma.scss";
|
|
|
12
10
|
// import base styles
|
|
13
11
|
import "./src/styles/style.scss";
|
|
14
12
|
|
|
13
|
+
import colors from "data/colors.json";
|
|
14
|
+
|
|
15
15
|
// smooth scroll polyfill needed for Safari
|
|
16
16
|
smoothscroll.polyfill();
|
|
17
17
|
|
package/gatsby-config.js
CHANGED
|
@@ -1,36 +1,24 @@
|
|
|
1
1
|
const path = require("path");
|
|
2
2
|
|
|
3
3
|
require("dotenv").config({
|
|
4
|
-
path: `.env.${process.env.NODE_ENV}
|
|
4
|
+
path: `.env.${process.env.NODE_ENV}`
|
|
5
5
|
});
|
|
6
6
|
|
|
7
7
|
const {
|
|
8
8
|
STATIC_CONTENT_DIR_PATH,
|
|
9
|
-
|
|
9
|
+
CONTENT_PAGES_DIR_PATH,
|
|
10
|
+
SITE_SETTINGS_FILE_PATH,
|
|
11
|
+
MARKETING_SETTINGS_FILE_PATH
|
|
10
12
|
} = require("./src/utils/filePath");
|
|
11
13
|
|
|
12
14
|
let siteSettings = require(`./${SITE_SETTINGS_FILE_PATH}`);
|
|
13
15
|
try {
|
|
14
|
-
|
|
15
|
-
siteSettings = require(resolvedSiteSettingsFilePath);
|
|
16
|
+
siteSettings = require(path.resolve(SITE_SETTINGS_FILE_PATH));
|
|
16
17
|
}
|
|
17
18
|
catch (e) {
|
|
18
19
|
console.log("Falling back to default site settings.")
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
const relativeContentDir = `${__dirname}/${STATIC_CONTENT_DIR_PATH}`;
|
|
22
|
-
const resolvedContentDir = path.resolve(STATIC_CONTENT_DIR_PATH);
|
|
23
|
-
const contentDirs = [relativeContentDir];
|
|
24
|
-
if (relativeContentDir !== resolvedContentDir) {
|
|
25
|
-
contentDirs.unshift(resolvedContentDir);
|
|
26
|
-
};
|
|
27
|
-
const gatsbySourceFilesystemContentConfigs = contentDirs.map(contentDir => ({
|
|
28
|
-
resolve: "gatsby-source-filesystem",
|
|
29
|
-
options: {
|
|
30
|
-
path: contentDir
|
|
31
|
-
}
|
|
32
|
-
}));
|
|
33
|
-
|
|
34
22
|
module.exports = {
|
|
35
23
|
siteMetadata: {
|
|
36
24
|
title: `${siteSettings?.siteMetadata?.title || process.env.GATSBY_METADATA_TITLE || 'Event Site'}`,
|
|
@@ -90,7 +78,27 @@ module.exports = {
|
|
|
90
78
|
name: "pages"
|
|
91
79
|
}
|
|
92
80
|
},
|
|
93
|
-
|
|
81
|
+
{
|
|
82
|
+
resolve: "gatsby-source-filesystem",
|
|
83
|
+
options: {
|
|
84
|
+
path: path.resolve(CONTENT_PAGES_DIR_PATH),
|
|
85
|
+
name: "contentPages"
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
resolve: "gatsby-source-filesystem",
|
|
90
|
+
options: {
|
|
91
|
+
path: path.resolve(STATIC_CONTENT_DIR_PATH),
|
|
92
|
+
name: "content"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
resolve: "gatsby-source-filesystem",
|
|
97
|
+
options: {
|
|
98
|
+
path: path.resolve(MARKETING_SETTINGS_FILE_PATH),
|
|
99
|
+
name: "marketingSettings"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
94
102
|
"gatsby-plugin-image",
|
|
95
103
|
"gatsby-plugin-sharp",
|
|
96
104
|
"gatsby-transformer-sharp",
|
|
@@ -118,20 +126,24 @@ module.exports = {
|
|
|
118
126
|
manualInit: true,
|
|
119
127
|
enableIdentityWidget: false,
|
|
120
128
|
customizeWebpackConfig: (config) => {
|
|
121
|
-
/**
|
|
122
|
-
* Forces transpiliation of solution js files; required for theming.
|
|
123
|
-
* @see https://www.gatsbyjs.com/docs/how-to/custom-configuration/add-custom-webpack-config/#modifying-the-babel-loader
|
|
124
|
-
*/
|
|
125
129
|
const jsTestString = "\\.(js|mjs|jsx|ts|tsx)$";
|
|
126
130
|
const jsTest = new RegExp(jsTestString);
|
|
127
131
|
const jsRule = config.module.rules.find(
|
|
128
132
|
(rule) => String(rule.test) === String(jsTest)
|
|
129
133
|
);
|
|
130
|
-
|
|
131
|
-
const
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
// is it running standalone? or is it running as a module/package?
|
|
135
|
+
const standalone = __dirname === path.resolve();
|
|
136
|
+
if (!standalone) {
|
|
137
|
+
/**
|
|
138
|
+
* Force transpiliation of solution js files; required for theming.
|
|
139
|
+
* @see https://www.gatsbyjs.com/docs/how-to/custom-configuration/add-custom-webpack-config/#modifying-the-babel-loader
|
|
140
|
+
*/
|
|
141
|
+
const solutionJsTest = new RegExp(`${__dirname}(.*)${jsTestString}`);
|
|
142
|
+
const jsRuleInclude = jsRule.include;
|
|
143
|
+
jsRule.include = (modulePath) => {
|
|
144
|
+
if (solutionJsTest.test(modulePath)) return true;
|
|
145
|
+
return jsRuleInclude(modulePath);
|
|
146
|
+
}
|
|
135
147
|
}
|
|
136
148
|
config.module.rules = [
|
|
137
149
|
...config.module.rules.filter(
|
package/gatsby-node.js
CHANGED
|
@@ -15,10 +15,11 @@ const myEnv = require("dotenv").config({
|
|
|
15
15
|
|
|
16
16
|
const {
|
|
17
17
|
REQUIRED_DIR_PATHS,
|
|
18
|
-
|
|
18
|
+
DEFAULT_COLORS_FILE_PATH,
|
|
19
19
|
COLORS_FILE_PATH,
|
|
20
|
+
COLORS_SASS_FILE_PATH,
|
|
20
21
|
SITE_SETTINGS_FILE_PATH,
|
|
21
|
-
|
|
22
|
+
LOBBY_PAGE_FILE_PATH,
|
|
22
23
|
SUMMIT_FILE_PATH,
|
|
23
24
|
EVENTS_FILE_PATH,
|
|
24
25
|
EVENTS_IDX_FILE_PATH,
|
|
@@ -172,9 +173,9 @@ exports.onPreBootstrap = async () => {
|
|
|
172
173
|
const summitId = process.env.GATSBY_SUMMIT_ID;
|
|
173
174
|
const summitApiBaseUrl = process.env.GATSBY_SUMMIT_API_BASE_URL;
|
|
174
175
|
const marketingSettings = await SSR_getMarketingSettings(process.env.GATSBY_MARKETING_API_BASE_URL, summitId);
|
|
175
|
-
const colorSettings = fs.existsSync(COLORS_FILE_PATH) ? JSON.parse(fs.readFileSync(COLORS_FILE_PATH)) : {};
|
|
176
|
-
const homeSettings = fs.existsSync(HOME_SETTINGS_FILE_PATH) ? JSON.parse(fs.readFileSync(HOME_SETTINGS_FILE_PATH)) : {};
|
|
176
|
+
const colorSettings = fs.existsSync(COLORS_FILE_PATH) ? JSON.parse(fs.readFileSync(COLORS_FILE_PATH)) : require(`./${DEFAULT_COLORS_FILE_PATH}`);
|
|
177
177
|
const globalSettings = fs.existsSync(SITE_SETTINGS_FILE_PATH) ? JSON.parse(fs.readFileSync(SITE_SETTINGS_FILE_PATH)) : {};
|
|
178
|
+
const lobbyPageSettings = fs.existsSync(LOBBY_PAGE_FILE_PATH) ? JSON.parse(fs.readFileSync(LOBBY_PAGE_FILE_PATH)) : {};
|
|
178
179
|
|
|
179
180
|
const config = {
|
|
180
181
|
client: {
|
|
@@ -204,9 +205,9 @@ exports.onPreBootstrap = async () => {
|
|
|
204
205
|
}
|
|
205
206
|
});
|
|
206
207
|
|
|
207
|
-
fs.writeFileSync(COLORS_FILE_PATH, JSON.stringify(colorSettings), "utf8");
|
|
208
208
|
fs.writeFileSync(MARKETING_SETTINGS_FILE_PATH, JSON.stringify(marketingSettings), "utf8");
|
|
209
|
-
fs.writeFileSync(
|
|
209
|
+
fs.writeFileSync(COLORS_FILE_PATH, JSON.stringify(colorSettings), "utf8");
|
|
210
|
+
fs.writeFileSync(LOBBY_PAGE_FILE_PATH, JSON.stringify(lobbyPageSettings), "utf8");
|
|
210
211
|
|
|
211
212
|
let sassColors = "";
|
|
212
213
|
Object.entries(colorSettings).forEach(([key, value]) => sassColors += `$${key} : ${value};\n`);
|
|
@@ -342,8 +343,8 @@ exports.createPages = ({ actions, graphql }) => {
|
|
|
342
343
|
const { id, fields, frontmatter: { templateKey } } = edge.node;
|
|
343
344
|
|
|
344
345
|
var slug = fields.slug;
|
|
345
|
-
if (slug.match(/
|
|
346
|
-
slug = slug.replace("/
|
|
346
|
+
if (slug.match(/content-pages/)) {
|
|
347
|
+
slug = slug.replace("/content-pages/", "/");
|
|
347
348
|
}
|
|
348
349
|
|
|
349
350
|
const page = {
|
|
@@ -371,21 +372,25 @@ exports.onCreateWebpackConfig = ({
|
|
|
371
372
|
loaders,
|
|
372
373
|
getConfig
|
|
373
374
|
}) => {
|
|
374
|
-
/**
|
|
375
|
-
* Forces transpiliation of solution js files; required for theming.
|
|
376
|
-
* @see https://www.gatsbyjs.com/docs/how-to/custom-configuration/add-custom-webpack-config/#modifying-the-babel-loader
|
|
377
|
-
*/
|
|
378
375
|
const config = getConfig();
|
|
379
376
|
const jsTestString = "\\.(js|mjs|jsx|ts|tsx)$";
|
|
380
377
|
const jsTest = new RegExp(jsTestString);
|
|
381
378
|
const jsRule = config.module.rules.find(
|
|
382
379
|
(rule) => String(rule.test) === String(jsTest)
|
|
383
380
|
);
|
|
384
|
-
|
|
385
|
-
const
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
381
|
+
// is it running standalone? or is it running as a module/package?
|
|
382
|
+
const standalone = __dirname === path.resolve();
|
|
383
|
+
if (!standalone) {
|
|
384
|
+
/**
|
|
385
|
+
* Force transpiliation of solution js files; required for theming.
|
|
386
|
+
* @see https://www.gatsbyjs.com/docs/how-to/custom-configuration/add-custom-webpack-config/#modifying-the-babel-loader
|
|
387
|
+
*/
|
|
388
|
+
const solutionJsTest = new RegExp(`${__dirname}(.*)${jsTestString}`);
|
|
389
|
+
const jsRuleInclude = jsRule.include;
|
|
390
|
+
jsRule.include = (modulePath) => {
|
|
391
|
+
if (solutionJsTest.test(modulePath)) return true;
|
|
392
|
+
return jsRuleInclude(modulePath);
|
|
393
|
+
}
|
|
389
394
|
}
|
|
390
395
|
actions.setWebpackConfig({
|
|
391
396
|
module: {
|
|
@@ -406,7 +411,7 @@ exports.onCreateWebpackConfig = ({
|
|
|
406
411
|
buffer: require.resolve("buffer/")
|
|
407
412
|
},
|
|
408
413
|
// allows content and data imports to correctly resolve when theming
|
|
409
|
-
modules: [path.resolve(
|
|
414
|
+
modules: [path.resolve("src")]
|
|
410
415
|
},
|
|
411
416
|
// devtool: "source-map",
|
|
412
417
|
plugins: [
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openeventkit/event-site",
|
|
3
3
|
"description": "Event Site",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.19",
|
|
5
5
|
"author": "Tipit LLC",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@mui/base": "^5.0.0-alpha.114",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"stream-browserify": "^3.0.0",
|
|
117
117
|
"stream-chat": "^2.7.2",
|
|
118
118
|
"stream-chat-react": "3.1.7",
|
|
119
|
-
"summit-registration-lite": "4.0.
|
|
119
|
+
"summit-registration-lite": "^4.0.11",
|
|
120
120
|
"superagent": "8.0.9",
|
|
121
121
|
"sweetalert2": "^9.17.0",
|
|
122
122
|
"upcoming-events-widget": "2.0.8",
|
package/src/cms/cms.js
CHANGED
|
@@ -6,11 +6,11 @@ import "./cms-utils";
|
|
|
6
6
|
import { Widget as FileRelationWidget } from "@ncwidgets/file-relation";
|
|
7
7
|
import { Widget as IdWidget } from "@ncwidgets/id";
|
|
8
8
|
|
|
9
|
-
import
|
|
9
|
+
import ContentPagePreview from "./preview-templates/ContentPagePreview";
|
|
10
10
|
|
|
11
11
|
CMS.init({ config });
|
|
12
12
|
|
|
13
13
|
CMS.registerWidget(IdWidget);
|
|
14
14
|
CMS.registerWidget(FileRelationWidget);
|
|
15
15
|
|
|
16
|
-
CMS.registerPreviewTemplate("
|
|
16
|
+
CMS.registerPreviewTemplate("contentPages", ContentPagePreview);
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
collectionDefaults
|
|
3
|
+
} from "../../patterns";
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
hiddenField,
|
|
7
|
+
stringField,
|
|
8
|
+
selectField,
|
|
9
|
+
selectOption,
|
|
10
|
+
markdownField
|
|
11
|
+
} from "../../fields";
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
CONTENT_PAGES_DIR_PATH
|
|
15
|
+
} from "@utils/filePath";
|
|
16
|
+
|
|
17
|
+
const USER_REQUIREMENTS = {
|
|
18
|
+
none: "NONE",
|
|
19
|
+
loggedIn: "LOGGED_IN",
|
|
20
|
+
hasTicket: "HAS_TICKET"
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const getUserRequirementsOptions = () =>
|
|
24
|
+
Object.entries(USER_REQUIREMENTS).map(([key, value]) => selectOption({ label: value, value: value }));
|
|
25
|
+
|
|
26
|
+
const contentPagesCollection = {
|
|
27
|
+
...collectionDefaults({
|
|
28
|
+
label: "Content Pages",
|
|
29
|
+
name: "contentPages",
|
|
30
|
+
editor: {
|
|
31
|
+
preview: true
|
|
32
|
+
}
|
|
33
|
+
}),
|
|
34
|
+
folder: CONTENT_PAGES_DIR_PATH,
|
|
35
|
+
create: true,
|
|
36
|
+
slug: "{{slug}}",
|
|
37
|
+
fields: [
|
|
38
|
+
hiddenField({
|
|
39
|
+
label: "Template Key",
|
|
40
|
+
name: "templateKey",
|
|
41
|
+
default: "content-page"
|
|
42
|
+
}),
|
|
43
|
+
stringField({
|
|
44
|
+
label: "Title",
|
|
45
|
+
name: "title"
|
|
46
|
+
}),
|
|
47
|
+
selectField({
|
|
48
|
+
label: "User Requirement",
|
|
49
|
+
name: "userRequirement",
|
|
50
|
+
multiple: false,
|
|
51
|
+
default: USER_REQUIREMENTS.none,
|
|
52
|
+
options: getUserRequirementsOptions()
|
|
53
|
+
}),
|
|
54
|
+
markdownField({
|
|
55
|
+
label: "Body",
|
|
56
|
+
name: "body"
|
|
57
|
+
})
|
|
58
|
+
]
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export {
|
|
62
|
+
USER_REQUIREMENTS
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export default contentPagesCollection;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
booleanField,
|
|
3
|
+
numberField,
|
|
4
|
+
stringField,
|
|
5
|
+
objectField,
|
|
6
|
+
imageWithAltField
|
|
7
|
+
} from "../../../fields";
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
LOBBY_PAGE_FILE_PATH
|
|
11
|
+
} from "@utils/filePath";
|
|
12
|
+
|
|
13
|
+
const lobbyPage = {
|
|
14
|
+
label: "Lobby Page",
|
|
15
|
+
name: "lobby-page",
|
|
16
|
+
file: LOBBY_PAGE_FILE_PATH,
|
|
17
|
+
fields: [
|
|
18
|
+
objectField({
|
|
19
|
+
label: "Hero",
|
|
20
|
+
name: "hero",
|
|
21
|
+
fields: [
|
|
22
|
+
stringField({
|
|
23
|
+
label: "Title",
|
|
24
|
+
name: "title"
|
|
25
|
+
}),
|
|
26
|
+
stringField({
|
|
27
|
+
label: "Subtitle",
|
|
28
|
+
name: "subTitle",
|
|
29
|
+
required: false
|
|
30
|
+
}),
|
|
31
|
+
imageWithAltField({
|
|
32
|
+
label: "Background Image",
|
|
33
|
+
name: "background"
|
|
34
|
+
})
|
|
35
|
+
]
|
|
36
|
+
}),
|
|
37
|
+
objectField({
|
|
38
|
+
label: "Center Column",
|
|
39
|
+
name: "centerColumn",
|
|
40
|
+
fields: [
|
|
41
|
+
objectField({
|
|
42
|
+
label: "Speakers",
|
|
43
|
+
name: "speakers",
|
|
44
|
+
fields: [
|
|
45
|
+
booleanField({
|
|
46
|
+
label: "Show Today Speakers",
|
|
47
|
+
name: "showTodaySpeakers",
|
|
48
|
+
default: false
|
|
49
|
+
}),
|
|
50
|
+
booleanField({
|
|
51
|
+
label: "Show Feature Speakers",
|
|
52
|
+
name: "showFeatureSpeakers",
|
|
53
|
+
default: false
|
|
54
|
+
})
|
|
55
|
+
]
|
|
56
|
+
})
|
|
57
|
+
]
|
|
58
|
+
}),
|
|
59
|
+
numberField({
|
|
60
|
+
label: "Live Event Widget - Featured Event",
|
|
61
|
+
name: "liveNowFeaturedEventId",
|
|
62
|
+
required: false
|
|
63
|
+
})
|
|
64
|
+
]
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export default lobbyPage;
|
|
@@ -1,3 +1,24 @@
|
|
|
1
1
|
|
|
2
2
|
module.exports = `
|
|
3
|
+
type ImageWithAlt {
|
|
4
|
+
src: File @fileByRelativePath
|
|
5
|
+
alt: String
|
|
6
|
+
}
|
|
7
|
+
type LobbyPageCenterColumnSpeakersWidget {
|
|
8
|
+
showTodaySpeakers: Boolean
|
|
9
|
+
showFeatureSpeakers: Boolean
|
|
10
|
+
}
|
|
11
|
+
type LobbyPageCenterColumn {
|
|
12
|
+
speakers: LobbyPageCenterColumnSpeakersWidget
|
|
13
|
+
}
|
|
14
|
+
type LobbyPageHero {
|
|
15
|
+
title: String
|
|
16
|
+
subTitle: String
|
|
17
|
+
background: ImageWithAlt
|
|
18
|
+
}
|
|
19
|
+
type LobbyPageJson implements Node {
|
|
20
|
+
hero: LobbyPageHero
|
|
21
|
+
centerColumn: LobbyPageCenterColumn
|
|
22
|
+
liveNowFeaturedEventId: Int
|
|
23
|
+
}
|
|
3
24
|
`;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
const configurationsCollectionTypeDefs = require("./configurationsCollection/typeDefs");
|
|
2
2
|
const defaultPagesCollectionTypeDefs = require("./defaultPagesCollection/typeDefs");
|
|
3
|
+
const contentPagesCollectionTypeDefs = require("./contentPagesCollection/typeDefs");
|
|
3
4
|
|
|
4
5
|
module.exports = [
|
|
5
6
|
configurationsCollectionTypeDefs,
|
|
6
|
-
defaultPagesCollectionTypeDefs
|
|
7
|
+
defaultPagesCollectionTypeDefs,
|
|
8
|
+
contentPagesCollectionTypeDefs
|
|
7
9
|
].join("");
|
package/src/cms/config/fields.js
CHANGED
|
@@ -111,13 +111,11 @@ export const fileField = ({
|
|
|
111
111
|
export const selectField = ({
|
|
112
112
|
label = "Select",
|
|
113
113
|
name = "select",
|
|
114
|
-
required = false,
|
|
115
114
|
options = [],
|
|
116
115
|
...rest
|
|
117
116
|
} = {}) => ({
|
|
118
117
|
label,
|
|
119
118
|
name,
|
|
120
|
-
required,
|
|
121
119
|
widget: "select",
|
|
122
120
|
options,
|
|
123
121
|
...rest
|
|
@@ -126,12 +124,10 @@ export const selectField = ({
|
|
|
126
124
|
export const selectOption = ({
|
|
127
125
|
label = "SelectOption",
|
|
128
126
|
value,
|
|
129
|
-
required = false,
|
|
130
127
|
...rest
|
|
131
128
|
} = {}) => ({
|
|
132
129
|
label,
|
|
133
130
|
value,
|
|
134
|
-
required,
|
|
135
131
|
...rest
|
|
136
132
|
});
|
|
137
133
|
|
package/src/cms/config/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import configurationsCollection from "./collections/configurationsCollection";
|
|
2
2
|
import defaultPagesCollection from "./collections/defaultPagesCollection";
|
|
3
|
+
import contentPagesCollection from "./collections/contentPagesCollection";
|
|
3
4
|
|
|
4
5
|
export const collections = [
|
|
5
6
|
configurationsCollection,
|
|
6
|
-
defaultPagesCollection
|
|
7
|
+
defaultPagesCollection,
|
|
8
|
+
contentPagesCollection
|
|
7
9
|
];
|
|
8
10
|
|
|
9
11
|
const config = {
|
|
@@ -27,4 +29,4 @@ const config = {
|
|
|
27
29
|
collections: collections
|
|
28
30
|
};
|
|
29
31
|
|
|
30
|
-
export default config;
|
|
32
|
+
export default config;
|
|
@@ -6,7 +6,8 @@ import {
|
|
|
6
6
|
|
|
7
7
|
export const collectionDefaults = ({
|
|
8
8
|
label,
|
|
9
|
-
name
|
|
9
|
+
name,
|
|
10
|
+
editor = { preview: false }
|
|
10
11
|
}) => ({
|
|
11
12
|
label,
|
|
12
13
|
name,
|
|
@@ -15,9 +16,7 @@ export const collectionDefaults = ({
|
|
|
15
16
|
*/
|
|
16
17
|
media_folder: "",
|
|
17
18
|
public_folder: "",
|
|
18
|
-
editor:
|
|
19
|
-
preview: false
|
|
20
|
-
}
|
|
19
|
+
editor: editor
|
|
21
20
|
});
|
|
22
21
|
|
|
23
22
|
export const imageWithAltFieldset = ({
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import React from 'react'
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
|
-
import {
|
|
3
|
+
import { ContentPageTemplate } from '../../templates/content-page'
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const ContentPagePreview = ({ entry, getAsset, widgetFor }) => {
|
|
6
6
|
return (
|
|
7
|
-
<
|
|
7
|
+
<ContentPageTemplate
|
|
8
8
|
title={entry.getIn(['data', 'title'])}
|
|
9
9
|
content={widgetFor('body')}
|
|
10
10
|
/>
|
|
11
11
|
)
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
ContentPagePreview.propTypes = {
|
|
15
15
|
entry: PropTypes.shape({
|
|
16
16
|
getIn: PropTypes.func,
|
|
17
17
|
}),
|
|
18
18
|
getAsset: PropTypes.func,
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export default
|
|
21
|
+
export default ContentPagePreview
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { connect } from "react-redux";
|
|
3
3
|
import { DiscussionEmbed } from "disqus-react";
|
|
4
|
-
import { withMarketingSettings } from "@utils/useMarketingSettings";
|
|
4
|
+
import { withMarketingSettings, MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
5
5
|
import { getEnvVariable, DISQUS_SHORTNAME } from "@utils/envVariables";
|
|
6
6
|
import { getDisqusSSO } from "../actions/user-actions";
|
|
7
7
|
import PropTypes from "prop-types";
|
|
@@ -51,8 +51,7 @@ const DisqusComponent = class extends React.Component {
|
|
|
51
51
|
page,
|
|
52
52
|
sponsor,
|
|
53
53
|
event,
|
|
54
|
-
getMarketingSettingByKey
|
|
55
|
-
MARKETING_SETTINGS_KEYS
|
|
54
|
+
getMarketingSettingByKey
|
|
56
55
|
} = this.props;
|
|
57
56
|
|
|
58
57
|
let threadsBy = getMarketingSettingByKey(MARKETING_SETTINGS_KEYS.disqusThreadsBy) ?? "event";
|
|
@@ -102,8 +101,7 @@ const DisqusComponent = class extends React.Component {
|
|
|
102
101
|
page,
|
|
103
102
|
sponsor,
|
|
104
103
|
event,
|
|
105
|
-
getMarketingSettingByKey
|
|
106
|
-
MARKETING_SETTINGS_KEYS
|
|
104
|
+
getMarketingSettingByKey
|
|
107
105
|
} = this.props;
|
|
108
106
|
|
|
109
107
|
let suffix = '';
|
|
@@ -9,6 +9,7 @@ import { callAction, getShareLink } from "../actions/schedule-actions";
|
|
|
9
9
|
import Schedule from "full-schedule-widget/dist";
|
|
10
10
|
import "full-schedule-widget/dist/index.css";
|
|
11
11
|
|
|
12
|
+
import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
|
|
12
13
|
import { SentryFallbackFunction } from "./SentryErrorComponent";
|
|
13
14
|
|
|
14
15
|
const FullSchedule = ({
|
|
@@ -16,7 +17,6 @@ const FullSchedule = ({
|
|
|
16
17
|
className,
|
|
17
18
|
userProfile,
|
|
18
19
|
colorSettings,
|
|
19
|
-
homeSettings,
|
|
20
20
|
addToSchedule,
|
|
21
21
|
removeFromSchedule,
|
|
22
22
|
callAction,
|
|
@@ -26,13 +26,15 @@ const FullSchedule = ({
|
|
|
26
26
|
schedKey,
|
|
27
27
|
...rest
|
|
28
28
|
}) => {
|
|
29
|
+
const { getSettingByKey } = useMarketingSettings();
|
|
30
|
+
const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
|
|
29
31
|
const componentProps = {
|
|
30
32
|
title: "Schedule",
|
|
31
33
|
summit,
|
|
32
34
|
marketingSettings: colorSettings,
|
|
33
35
|
userProfile,
|
|
34
36
|
withThumbs: false,
|
|
35
|
-
defaultImage:
|
|
37
|
+
defaultImage: defaultImage,
|
|
36
38
|
showSendEmail: false,
|
|
37
39
|
onStartChat: null,
|
|
38
40
|
shareLink: getShareLink(filters, view),
|
|
@@ -57,7 +59,7 @@ const FullSchedule = ({
|
|
|
57
59
|
|
|
58
60
|
return (
|
|
59
61
|
<div className={className || "schedule-container"}>
|
|
60
|
-
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName:
|
|
62
|
+
<Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: "Full Schedule"})}>
|
|
61
63
|
<Schedule {...componentProps} />
|
|
62
64
|
</Sentry.ErrorBoundary>
|
|
63
65
|
</div>
|
|
@@ -67,7 +69,6 @@ const FullSchedule = ({
|
|
|
67
69
|
const mapStateToProps = ({ userState, settingState }) => ({
|
|
68
70
|
userProfile: userState.userProfile,
|
|
69
71
|
colorSettings: settingState.colorSettings,
|
|
70
|
-
homeSettings: settingState.homeSettings,
|
|
71
72
|
allowClick: settingState?.widgets?.schedule?.allowClick
|
|
72
73
|
});
|
|
73
74
|
|