@openeventkit/event-site 2.0.92 → 2.0.94

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openeventkit/event-site",
3
3
  "description": "Event Site",
4
- "version": "2.0.92",
4
+ "version": "2.0.94",
5
5
  "author": "Tipit LLC",
6
6
  "dependencies": {
7
7
  "@mui/base": "^5.0.0-alpha.114",
@@ -121,7 +121,7 @@
121
121
  "stream-browserify": "^3.0.0",
122
122
  "stream-chat": "^2.7.2",
123
123
  "stream-chat-react": "3.1.7",
124
- "summit-registration-lite": "5.0.19",
124
+ "summit-registration-lite": "5.0.21",
125
125
  "superagent": "8.0.9",
126
126
  "sweetalert2": "^9.17.0",
127
127
  "upcoming-events-widget": "3.0.5",
@@ -93,7 +93,11 @@ export const getUserProfile = () => async (dispatch) => {
93
93
 
94
94
  let params = {
95
95
  access_token: accessToken,
96
- expand: 'groups,summit_tickets,summit_tickets.owner,summit_tickets.owner.presentation_votes,summit_tickets.owner.extra_questions,summit_tickets.badge,summit_tickets.badge.features,summit_tickets.badge.type, summit_tickets.badge.type.access_levels,summit_tickets.badge.type.features,favorite_summit_events,feedback,schedule_summit_events,rsvp,rsvp.answers'
96
+ expand:
97
+ 'groups,summit_tickets,summit_tickets.ticket_type,summit_tickets.owner,summit_tickets.owner.presentation_votes,' +
98
+ 'summit_tickets.owner.extra_questions,summit_tickets.badge,summit_tickets.badge.features,summit_tickets.badge.type,' +
99
+ 'summit_tickets.badge.type.access_levels,summit_tickets.badge.type.features,favorite_summit_events,feedback,' +
100
+ 'schedule_summit_events,rsvp,rsvp.answers'
97
101
  };
98
102
 
99
103
  return getRequest(
@@ -21,16 +21,19 @@ const LiteScheduleComponent = ({
21
21
  page,
22
22
  addToSchedule,
23
23
  removeFromSchedule,
24
- allScheduleEvents,
24
+ schedules,
25
25
  summit,
26
+ schedKey = 'schedule-main',
26
27
  ...rest
27
28
  }) => {
28
29
  const wrapperClass = page === 'marketing-site' ? 'schedule-container-marketing' : 'schedule-container';
29
30
  const { getSettingByKey } = useMarketingSettings();
30
31
  const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
32
+ const scheduleState = schedules?.find( s => s.key === schedKey);
33
+
31
34
  const componentProps = {
32
35
  defaultImage: defaultImage,
33
- eventsData: allScheduleEvents,
36
+ eventsData: scheduleState?.allEvents || [],
34
37
  summitData: summit,
35
38
  marketingData: colorSettings,
36
39
  userProfile: userProfile,
@@ -60,7 +63,7 @@ const LiteScheduleComponent = ({
60
63
 
61
64
  const mapStateToProps = ({userState, summitState, allSchedulesState, settingState}) => ({
62
65
  userProfile: userState.userProfile,
63
- allScheduleEvents: allSchedulesState.allScheduleEvents,
66
+ schedules: allSchedulesState.schedules,
64
67
  summit: summitState.summit,
65
68
  colorSettings: settingState.colorSettings
66
69
  });
@@ -13,7 +13,7 @@ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketi
13
13
  import { SentryFallbackFunction } from "./SentryErrorComponent";
14
14
 
15
15
  const LiveEventWidgetComponent = ({
16
- allEvents,
16
+ schedules,
17
17
  summit,
18
18
  colorSettings,
19
19
  className = "live-event-container",
@@ -21,10 +21,12 @@ const LiveEventWidgetComponent = ({
21
21
  }) => {
22
22
  const { getSettingByKey } = useMarketingSettings();
23
23
  const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
24
+ const scheduleState = schedules?.find( s => s.key === 'schedule-main');
25
+
24
26
  const widgetProps = {
25
27
  title: "",
26
28
  defaultImage: defaultImage,
27
- eventsData: allEvents,
29
+ eventsData: scheduleState?.allEvents || [],
28
30
  summitData: summit,
29
31
  marketingData: colorSettings,
30
32
  ...rest
@@ -41,7 +43,7 @@ const LiveEventWidgetComponent = ({
41
43
 
42
44
  const mapStateToProps = ({ summitState, allSchedulesState, settingState }) => ({
43
45
  summit: summitState.summit,
44
- allEvents: allSchedulesState.allEvents,
46
+ schedules: allSchedulesState.schedules,
45
47
  colorSettings: settingState.colorSettings
46
48
  });
47
49
 
@@ -9,12 +9,14 @@ import 'speakers-widget/dist/index.css';
9
9
 
10
10
  import { SentryFallbackFunction } from "./SentryErrorComponent";
11
11
 
12
- const SpeakersWidgetComponent = ({now, colorSettings, allEvents, speakers, ...props}) => {
12
+ const SpeakersWidgetComponent = ({now, colorSettings, allEvents, speakers, schedules, ...props}) => {
13
+ const scheduleState = schedules?.find( s => s.key === 'schedule-main');
14
+
13
15
  const widgetProps = {
14
16
  date: now,
15
17
  // featured: true,
16
18
  speakersData: speakers,
17
- eventsData: allEvents,
19
+ eventsData: scheduleState?.allEvents || [],
18
20
  marketingData: colorSettings,
19
21
  ...props
20
22
  };
@@ -30,10 +32,10 @@ const SpeakersWidgetComponent = ({now, colorSettings, allEvents, speakers, ...pr
30
32
  )
31
33
  }
32
34
 
33
- const mapStateToProps = ({ clockState, summitState, allSchedulesState, speakerState, settingState }) => ({
35
+ const mapStateToProps = ({ clockState, allSchedulesState, speakerState, settingState }) => ({
34
36
  now: clockState.nowUtc,
35
37
  colorSettings: settingState.colorSettings,
36
- allEvents: allSchedulesState.allEvents,
38
+ schedules: allSchedulesState.schedules,
37
39
  speakers: speakerState.speakers
38
40
  });
39
41
 
@@ -21,16 +21,18 @@ const UpcomingEventsComponent = ({
21
21
  addToSchedule,
22
22
  removeFromSchedule,
23
23
  colorSettings,
24
- allEvents,
24
+ schedules,
25
25
  summit,
26
26
  ...rest
27
27
  }) => {
28
28
  const wrapperClass = page === "marketing-site" ? "schedule-container-marketing" : "schedule-container";
29
29
  const { getSettingByKey } = useMarketingSettings();
30
30
  const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
31
+ const scheduleState = schedules?.find( s => s.key === 'schedule-main');
32
+
31
33
  const componentProps = {
32
34
  defaultImage: defaultImage,
33
- eventsData: allEvents,
35
+ eventsData: scheduleState?.allEvents || [],
34
36
  summitData: summit,
35
37
  marketingData: colorSettings,
36
38
  userProfile: userProfile,
@@ -62,7 +64,7 @@ const mapStateToProps = ({ userState, summitState, allSchedulesState, settingSta
62
64
  userProfile: userState.userProfile,
63
65
  colorSettings: settingState.colorSettings,
64
66
  summit: summitState.summit,
65
- allEvents: allSchedulesState.allEvents,
67
+ schedules: allSchedulesState.schedules,
66
68
  });
67
69
 
68
70
  export default connect(mapStateToProps, {
@@ -586,6 +586,7 @@ export const FullProfilePageTemplate = ({ user, getIDPProfile, updateProfile, up
586
586
  yourSchedule={true}
587
587
  showNav={true}
588
588
  eventCount={10}
589
+ schedKey="my-schedule-main"
589
590
  />
590
591
  </div>
591
592
  </div>
@@ -131,6 +131,7 @@ export const LobbyPageTemplate = class extends React.Component {
131
131
  yourSchedule={true}
132
132
  showNav={true}
133
133
  eventCount={10}
134
+ schedKey="my-schedule-main"
134
135
  />
135
136
  <AdvertiseComponent section="lobby" column="right"/>
136
137
  </div>
@@ -4,6 +4,7 @@ import { epochToMomentTimeZone , getFromLocalStorage, putOnLocalStorage }
4
4
  import { isString } from "lodash";
5
5
  import { getEnvVariable, SCHEDULE_EXCLUDING_TAGS } from "./envVariables";
6
6
  import {getUserAccessLevelIds, isAuthorizedUser} from './authorizedGroups';
7
+ import {uniq} from "lodash";
7
8
 
8
9
  const groupByDay = (events) => {
9
10
  let groupedEvents = [];
@@ -58,6 +59,19 @@ export const filterEventsByTags = (events) => {
58
59
  : events;
59
60
  };
60
61
 
62
+ export const filterEventsByTicket = (events, user) => {
63
+ const assignedTickets = user?.summit_tickets || [];
64
+ const ticketTypeIds = uniq(assignedTickets.map(t => t.ticket_type?.id));
65
+
66
+ return events.filter(ev => {
67
+ const hasEventRestriction = ev.allowed_ticket_types.length > 0;
68
+ const typeAllowed = ev.type.allowed_ticket_types.length === 0 || ev.type.allowed_ticket_types.some(att => ticketTypeIds.includes(att));
69
+ const eventAllowed = !hasEventRestriction || ev.allowed_ticket_types.some(att => ticketTypeIds.includes(att));
70
+
71
+ return hasEventRestriction ? eventAllowed : typeAllowed;
72
+ });
73
+ };
74
+
61
75
  const filterMyEvents = (myEvents, events) => {
62
76
  const myEventsIds = myEvents?.map(ev => ev.id) || [];
63
77
  return events.filter(ev => myEventsIds.includes(ev.id));
@@ -75,6 +89,8 @@ export const preFilterEvents = (events, filters, summitTimezone, userProfile, fi
75
89
  result = filterEventsByAccessLevel(result, userProfile);
76
90
  }
77
91
 
92
+ result = filterEventsByTicket(result, userProfile);
93
+
78
94
  return getFilteredEvents(result, filters, summitTimezone, hidePast);
79
95
  };
80
96