@openeventkit/event-site 1.0.13 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/gatsby-browser.js +2 -2
  2. package/gatsby-config.js +39 -27
  3. package/gatsby-node.js +23 -18
  4. package/package.json +2 -2
  5. package/src/cms/cms.js +2 -2
  6. package/src/cms/config/collections/configurationsCollection/index.js +1 -1
  7. package/src/cms/config/collections/configurationsCollection/navbar/index.js +0 -1
  8. package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +0 -1
  9. package/src/cms/config/collections/contentPagesCollection/index.js +65 -0
  10. package/src/cms/config/collections/contentPagesCollection/typeDefs.js +8 -0
  11. package/src/cms/config/collections/defaultPagesCollection/index.js +2 -2
  12. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/index.js +67 -0
  13. package/src/cms/config/collections/defaultPagesCollection/lobbyPage/typeDefs.js +21 -0
  14. package/src/cms/config/collections/defaultPagesCollection/marketingPage/index.js +1 -1
  15. package/src/cms/config/collections/defaultPagesCollection/marketingPage/typeDefs.js +1 -1
  16. package/src/cms/config/collections/typeDefs.js +3 -1
  17. package/src/cms/config/fields.js +0 -4
  18. package/src/cms/config/index.js +4 -2
  19. package/src/cms/config/patterns.js +3 -4
  20. package/src/cms/preview-templates/{CustomPagePreview.js → ContentPagePreview.js} +5 -5
  21. package/src/components/DisqusComponent.js +3 -5
  22. package/src/components/FullSchedule.js +5 -4
  23. package/src/components/LiteScheduleComponent.js +34 -36
  24. package/src/components/LiveEventWidgetComponent.js +29 -24
  25. package/src/components/Navbar/index.js +1 -0
  26. package/src/components/{page-header/index.jsx → PageHeader/index.js} +9 -5
  27. package/src/components/RegistrationLiteComponent.js +66 -56
  28. package/src/components/UpcomingEventsComponent.js +46 -48
  29. package/src/content/lobby-page/index.json +1 -0
  30. package/src/pages/a/[...].js +15 -14
  31. package/src/pages/index.js +1 -1
  32. package/src/reducers/presentations-reducer.js +1 -1
  33. package/src/reducers/setting-reducer.js +3 -4
  34. package/src/styles/style.scss +1 -1
  35. package/src/templates/{custom-page.js → content-page.js} +10 -8
  36. package/src/templates/event-page.js +247 -247
  37. package/src/templates/lobby-page.js +178 -0
  38. package/src/templates/maintenance-page.js +5 -5
  39. package/src/templates/poster-detail-page.js +2 -5
  40. package/src/templates/posters-page.js +1 -1
  41. package/src/utils/filePath.js +13 -7
  42. package/src/utils/phasesUtils.js +1 -1
  43. package/src/utils/useMarketingSettings.js +10 -8
  44. package/static/admin/config.yml.template +1 -2
  45. package/src/content/disqus-settings.json +0 -1
  46. package/src/content/home-settings.json +0 -1
  47. package/src/content/marketing-settings.json +0 -1
  48. package/src/pages/custom-pages/about-event.md +0 -16
  49. package/src/pages/custom-pages/contact.md +0 -8
  50. package/src/pages/custom-pages/footer-content.md +0 -8
  51. package/src/pages/custom-pages/help.md +0 -8
  52. package/src/pages/custom-pages/past-events.md +0 -8
  53. package/src/pages/custom-pages/who-we-are.md +0 -8
  54. package/src/templates/home-page.js +0 -170
  55. /package/src/components/{page-header → PageHeader}/index.module.scss +0 -0
  56. /package/src/{content → defaults}/colors.json +0 -0
  57. /package/src/{content → defaults}/posters-filters.json +0 -0
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
- SITE_SETTINGS_FILE_PATH
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
- const resolvedSiteSettingsFilePath = path.resolve(SITE_SETTINGS_FILE_PATH);
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
- ...gatsbySourceFilesystemContentConfigs,
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
- const solutionJsTest = new RegExp(`${__dirname}(.*)${jsTestString}`);
131
- const jsRuleInclude = jsRule.include;
132
- jsRule.include = (modulePath) => {
133
- if (solutionJsTest.test(modulePath)) return true;
134
- return jsRuleInclude(modulePath);
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
- COLORS_SASS_FILE_PATH,
18
+ DEFAULT_COLORS_FILE_PATH,
19
19
  COLORS_FILE_PATH,
20
+ COLORS_SASS_FILE_PATH,
20
21
  SITE_SETTINGS_FILE_PATH,
21
- HOME_SETTINGS_FILE_PATH,
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(HOME_SETTINGS_FILE_PATH, JSON.stringify(homeSettings), "utf8");
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(/custom-pages/)) {
346
- slug = slug.replace("/custom-pages/", "/");
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
- const solutionJsTest = new RegExp(`${__dirname}(.*)${jsTestString}`);
385
- const jsRuleInclude = jsRule.include;
386
- jsRule.include = (modulePath) => {
387
- if (solutionJsTest.test(modulePath)) return true;
388
- return jsRuleInclude(modulePath);
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(__dirname, "src")]
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.13",
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.9",
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 CustomPagePreview from "./preview-templates/CustomPagePreview";
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("pages", CustomPagePreview);
16
+ CMS.registerPreviewTemplate("contentPages", ContentPagePreview);
@@ -22,4 +22,4 @@ const configurationsCollection = {
22
22
  ]
23
23
  };
24
24
 
25
- export default configurationsCollection;
25
+ export default configurationsCollection;
@@ -75,7 +75,6 @@ const navbar = {
75
75
  label: "Show only on page",
76
76
  name: "pageRestriction",
77
77
  multiple: true,
78
- required: false,
79
78
  default: [PAGE_RESTRICTIONS.any],
80
79
  options: getPageRestrictionsOptions()
81
80
  })
@@ -84,7 +84,6 @@ const siteSettings = {
84
84
  selectField({
85
85
  label: "Default Filter Criteria",
86
86
  name: "defaultScope",
87
- required: false,
88
87
  default: 'page',
89
88
  options: [
90
89
  selectOption({
@@ -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,8 @@
1
+
2
+ module.exports = `
3
+ type MarkdownRemarkFrontmatter {
4
+ templateKey: String
5
+ title: String
6
+ userRequirement: String
7
+ }
8
+ `;
@@ -12,8 +12,8 @@ const defaultPagesCollection = {
12
12
  }),
13
13
  files: [
14
14
  marketingPage,
15
- //lobbyPage
15
+ lobbyPage
16
16
  ]
17
17
  };
18
18
 
19
- export default defaultPagesCollection;
19
+ export default defaultPagesCollection;
@@ -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
  `;
@@ -36,7 +36,7 @@ const marketingPage = {
36
36
  }),
37
37
  stringField({
38
38
  label: "Subtitle",
39
- name: "subtitle",
39
+ name: "subTitle",
40
40
  required: false
41
41
  }),
42
42
  stringField({
@@ -42,7 +42,7 @@ module.exports = `
42
42
  }
43
43
  type MarketingPageHero {
44
44
  title: String
45
- subtitle: String
45
+ subTitle: String
46
46
  date: String
47
47
  time: String
48
48
  dateLayout: Boolean
@@ -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("");
@@ -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
 
@@ -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 { CustomPageTemplate } from '../../templates/custom-page'
3
+ import { ContentPageTemplate } from '../../templates/content-page'
4
4
 
5
- const CustomPagePreview = ({ entry, getAsset, widgetFor }) => {
5
+ const ContentPagePreview = ({ entry, getAsset, widgetFor }) => {
6
6
  return (
7
- <CustomPageTemplate
7
+ <ContentPageTemplate
8
8
  title={entry.getIn(['data', 'title'])}
9
9
  content={widgetFor('body')}
10
10
  />
11
11
  )
12
12
  }
13
13
 
14
- CustomPagePreview.propTypes = {
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 CustomPagePreview
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: homeSettings.schedule_default_image,
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: 'Full Schedule'})}>
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