@openeventkit/event-site 2.0.93 → 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 +1 -1
- package/src/actions/user-actions.js +5 -1
- package/src/components/LiteScheduleComponent.js +6 -3
- package/src/components/LiveEventWidgetComponent.js +5 -3
- package/src/components/SpeakersWidgetComponent.js +6 -4
- package/src/components/UpcomingEventsComponent.js +5 -3
- package/src/templates/full-profile-page.js +1 -0
- package/src/templates/lobby-page.js +1 -0
- package/src/utils/schedule.js +16 -0
package/package.json
CHANGED
|
@@ -93,7 +93,11 @@ export const getUserProfile = () => async (dispatch) => {
|
|
|
93
93
|
|
|
94
94
|
let params = {
|
|
95
95
|
access_token: accessToken,
|
|
96
|
-
expand:
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
35
|
+
const mapStateToProps = ({ clockState, allSchedulesState, speakerState, settingState }) => ({
|
|
34
36
|
now: clockState.nowUtc,
|
|
35
37
|
colorSettings: settingState.colorSettings,
|
|
36
|
-
|
|
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
|
-
|
|
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
|
-
|
|
67
|
+
schedules: allSchedulesState.schedules,
|
|
66
68
|
});
|
|
67
69
|
|
|
68
70
|
export default connect(mapStateToProps, {
|
package/src/utils/schedule.js
CHANGED
|
@@ -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
|
|