@openeventkit/event-site 2.0.47 → 2.0.49
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 +3 -3
- package/src/components/FullSchedule.js +2 -0
- package/src/components/HeroComponent.js +1 -1
- package/src/components/RegistrationLiteComponent.js +0 -2
- package/src/components/summit-my-orders-tickets/components/MyOrdersTickets.js +2 -5
- package/src/components/summit-my-orders-tickets/components/OrderDetails/OrderDetails.js +12 -7
- package/src/components/summit-my-orders-tickets/components/OrderList/OrderList.js +1 -3
- package/src/components/summit-my-orders-tickets/components/OrderList/OrderListItem.js +8 -5
- package/src/components/summit-my-orders-tickets/store/actions/order-actions.js +6 -1
- package/src/components/summit-my-orders-tickets/store/actions/ticket-actions.js +4 -2
- package/src/components/summit-my-orders-tickets/store/reducers/order-reducer.js +11 -0
- package/src/content/site-settings/index.json +1 -1
- package/src/styles/style.scss +5 -16
- package/src/templates/event-page.js +1 -11
- package/src/templates/full-profile-page.js +1 -1
- package/src/utils/useMarketingSettings.js +9 -3
- package/src/components/summit-my-orders-tickets/components/OrderList/OrderList.helpers.js +0 -36
- package/src/components/summit-my-orders-tickets/context/OrdersTicketsContext.js +0 -38
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.49",
|
|
5
5
|
"author": "Tipit LLC",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@mui/base": "^5.0.0-alpha.114",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"font-awesome": "^4.7.0",
|
|
43
43
|
"formik": "^2.2.9",
|
|
44
44
|
"fs-extra": "^9.0.1",
|
|
45
|
-
"full-schedule-widget": "3.0.
|
|
45
|
+
"full-schedule-widget": "3.0.2",
|
|
46
46
|
"gatsby": "^5.8.1",
|
|
47
47
|
"gatsby-alias-imports": "^1.0.6",
|
|
48
48
|
"gatsby-plugin-image": "^3.8.0",
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"stream-browserify": "^3.0.0",
|
|
118
118
|
"stream-chat": "^2.7.2",
|
|
119
119
|
"stream-chat-react": "3.1.7",
|
|
120
|
-
"summit-registration-lite": "5.0.
|
|
120
|
+
"summit-registration-lite": "5.0.6",
|
|
121
121
|
"superagent": "8.0.9",
|
|
122
122
|
"sweetalert2": "^9.17.0",
|
|
123
123
|
"upcoming-events-widget": "3.0.4",
|
|
@@ -28,6 +28,7 @@ const FullSchedule = ({
|
|
|
28
28
|
}) => {
|
|
29
29
|
const { getSettingByKey } = useMarketingSettings();
|
|
30
30
|
const defaultImage = getSettingByKey(MARKETING_SETTINGS_KEYS.schedultDefaultImage);
|
|
31
|
+
const summitLogoPrint = getSettingByKey(MARKETING_SETTINGS_KEYS.fullScheduleSummitLogoPrint);
|
|
31
32
|
const componentProps = {
|
|
32
33
|
title: "Schedule",
|
|
33
34
|
summit,
|
|
@@ -35,6 +36,7 @@ const FullSchedule = ({
|
|
|
35
36
|
userProfile,
|
|
36
37
|
withThumbs: false,
|
|
37
38
|
defaultImage: defaultImage,
|
|
39
|
+
summitLogoPrint: summitLogoPrint ? summitLogoPrint : null,
|
|
38
40
|
showSendEmail: false,
|
|
39
41
|
onStartChat: null,
|
|
40
42
|
shareLink: getShareLink(filters, view),
|
|
@@ -9,7 +9,7 @@ const HeroComponent = ({ title, subtitle, event, redirectTo, options = {} }) =>
|
|
|
9
9
|
}, [redirectTo]);
|
|
10
10
|
|
|
11
11
|
return (
|
|
12
|
-
<section className={`hero
|
|
12
|
+
<section className={`hero ${event ? 'talk__break' : 'is-fullheight'}`}>
|
|
13
13
|
<div className="hero-body hero-component">
|
|
14
14
|
<div className={`${event ? '' : 'container has-text-centered'}`}>
|
|
15
15
|
<h1 className="title">{title}</h1>
|
|
@@ -111,7 +111,6 @@ const RegistrationLiteComponent = ({
|
|
|
111
111
|
|
|
112
112
|
const inPersonDisclaimer = getSettingByKey(MARKETING_SETTINGS_KEYS.registrationInPersonDisclaimer);
|
|
113
113
|
const allowPromoCodes = !!Number(getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteAllowPromoCodes));
|
|
114
|
-
const companyInputPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyInputPlaceholder);
|
|
115
114
|
const companyDDLPlaceholder = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteCompanyDDLPlaceholder);
|
|
116
115
|
const initialOrderComplete1stParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete1stParagraph)
|
|
117
116
|
const initialOrderComplete2ndParagraph = getSettingByKey(MARKETING_SETTINGS_KEYS.regLiteInitialOrderComplete2ndParagraph)
|
|
@@ -178,7 +177,6 @@ const RegistrationLiteComponent = ({
|
|
|
178
177
|
});
|
|
179
178
|
},
|
|
180
179
|
allowPromoCodes: allowPromoCodes,
|
|
181
|
-
companyInputPlaceholder: companyInputPlaceholder,
|
|
182
180
|
companyDDLPlaceholder: companyDDLPlaceholder,
|
|
183
181
|
supportEmail: getEnvVariable(SUPPORT_EMAIL),
|
|
184
182
|
initialOrderComplete1stParagraph: initialOrderComplete1stParagraph,
|
|
@@ -6,7 +6,6 @@ import { AjaxLoader } from "openstack-uicore-foundation/lib/components";
|
|
|
6
6
|
import { getUserOrders } from '../store/actions/order-actions';
|
|
7
7
|
import { getUserTickets } from '../store/actions/ticket-actions';
|
|
8
8
|
import { OrderList } from './OrderList/OrderList';
|
|
9
|
-
import { OrderListContextProvider } from './OrderList/OrderList.helpers';
|
|
10
9
|
import { TicketList } from './TicketList/TicketList';
|
|
11
10
|
|
|
12
11
|
export const MyOrdersTickets = ({ className }) => {
|
|
@@ -63,10 +62,8 @@ export const MyOrdersTickets = ({ className }) => {
|
|
|
63
62
|
)}
|
|
64
63
|
|
|
65
64
|
<div className={classNames('my-orders-tickets', className)}>
|
|
66
|
-
{hasOrders && (
|
|
67
|
-
<
|
|
68
|
-
<OrderList />
|
|
69
|
-
</OrderListContextProvider>
|
|
65
|
+
{hasOrders && (
|
|
66
|
+
<OrderList />
|
|
70
67
|
)}
|
|
71
68
|
|
|
72
69
|
{(hasOrders && hasTickets) && (
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { useEffect, useRef } from "react"
|
|
2
|
-
import { useDispatch } from "react-redux";
|
|
2
|
+
import { useDispatch, useSelector } from "react-redux";
|
|
3
3
|
import { useTranslation } from "react-i18next";
|
|
4
4
|
import classNames from 'classnames';
|
|
5
5
|
import { getNow } from "../../store/actions/timer-actions";
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
getSummitFormattedDate,
|
|
12
12
|
formatCurrency
|
|
13
13
|
} from "../../util";
|
|
14
|
-
import {
|
|
14
|
+
import { setActiveOrderId } from "../../store/actions/order-actions";
|
|
15
15
|
|
|
16
16
|
import './order-details.scss';
|
|
17
17
|
|
|
@@ -20,16 +20,21 @@ export const OrderDetails = ({ order, summit, className }) => {
|
|
|
20
20
|
|
|
21
21
|
const { t } = useTranslation();
|
|
22
22
|
const dispatch = useDispatch();
|
|
23
|
-
|
|
23
|
+
|
|
24
|
+
const {
|
|
25
|
+
activeOrderId
|
|
26
|
+
} = useSelector(state => state.orderState || {});
|
|
24
27
|
|
|
25
28
|
const isSummitPast = checkSummitPast(summit, dispatch(getNow()));
|
|
26
29
|
const statusData = getOrderStatusData(order, isSummitPast);
|
|
27
|
-
const isActive =
|
|
30
|
+
const isActive = activeOrderId === order.id;
|
|
31
|
+
|
|
32
|
+
const handleSetOrderActive = (orderId) => dispatch(setActiveOrderId( orderId ));
|
|
28
33
|
|
|
29
34
|
const handleClick = (event) => {
|
|
30
|
-
if (isActive) return
|
|
35
|
+
if (isActive) return handleSetOrderActive(null);
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
handleSetOrderActive(order.id);
|
|
33
38
|
|
|
34
39
|
setTimeout(() => {
|
|
35
40
|
const offset = getDocumentOffset(elementRef.current);
|
|
@@ -42,7 +47,7 @@ export const OrderDetails = ({ order, summit, className }) => {
|
|
|
42
47
|
};
|
|
43
48
|
|
|
44
49
|
// Clear active order on unmount (i.e., when page pagination changes)
|
|
45
|
-
useEffect(() => () =>
|
|
50
|
+
useEffect(() => () => setActiveOrderId(null), []);
|
|
46
51
|
|
|
47
52
|
return (
|
|
48
53
|
<div
|
|
@@ -6,7 +6,6 @@ import classNames from 'classnames';
|
|
|
6
6
|
import { getUserOrders } from "../../store/actions/order-actions";
|
|
7
7
|
import { getTicketsByOrder } from "../../store/actions/ticket-actions";
|
|
8
8
|
import { OrderListItem } from './OrderListItem';
|
|
9
|
-
import { useOrderListContext } from "./OrderList.helpers";
|
|
10
9
|
|
|
11
10
|
import './order-list.scss';
|
|
12
11
|
|
|
@@ -19,6 +18,7 @@ export const OrderList = ({ className }) => {
|
|
|
19
18
|
current_page: currentPage,
|
|
20
19
|
last_page: lastPage,
|
|
21
20
|
per_page: perPage,
|
|
21
|
+
activeOrderId,
|
|
22
22
|
total
|
|
23
23
|
} = useSelector(state => state.orderState || {});
|
|
24
24
|
|
|
@@ -28,8 +28,6 @@ export const OrderList = ({ className }) => {
|
|
|
28
28
|
}
|
|
29
29
|
} = useSelector(state => state.ticketState || {});
|
|
30
30
|
|
|
31
|
-
const { state : { activeOrderId } } = useOrderListContext();
|
|
32
|
-
|
|
33
31
|
const handlePageChange = (page) => dispatch(getUserOrders({ page, perPage }));
|
|
34
32
|
|
|
35
33
|
const handleTicketPageChange = (orderId, page) => dispatch(getTicketsByOrder({ orderId, page }));
|
|
@@ -5,21 +5,24 @@ import { OrderDetails } from '../OrderDetails/OrderDetails';
|
|
|
5
5
|
import { OrderSummary } from '../OrderSummary/OrderSummary';
|
|
6
6
|
import { OrderTicketList } from '../OrderTicketList/OrderTicketList';
|
|
7
7
|
import { OrderOptions } from "../OrderOptions/OrderOptions";
|
|
8
|
-
import { useOrderListContext } from "./OrderList.helpers";
|
|
9
8
|
import Pager from "../../../Pager";
|
|
10
9
|
|
|
11
10
|
export const OrderListItem = ({ order, className, changeTicketsPage }) => {
|
|
12
11
|
const summit = useSelector(state => state.summitState.summit);
|
|
13
|
-
const { state } = useOrderListContext();
|
|
14
12
|
|
|
15
13
|
const {
|
|
16
14
|
orderTickets: {
|
|
17
15
|
total, per_page, current_page, last_page, tickets
|
|
18
16
|
},
|
|
19
|
-
loading
|
|
17
|
+
loading,
|
|
20
18
|
} = useSelector(state => state.ticketState || {});
|
|
21
19
|
|
|
22
|
-
const
|
|
20
|
+
const {
|
|
21
|
+
activeOrderId,
|
|
22
|
+
isOrderLoading
|
|
23
|
+
} = useSelector(state => state.orderState || {});
|
|
24
|
+
|
|
25
|
+
const isActive = activeOrderId === order.id;
|
|
23
26
|
|
|
24
27
|
return (
|
|
25
28
|
<li className={classNames('order-list__item', { 'order-list__item--active': isActive }, className)}>
|
|
@@ -27,7 +30,7 @@ export const OrderListItem = ({ order, className, changeTicketsPage }) => {
|
|
|
27
30
|
<div className="col-md-8">
|
|
28
31
|
<OrderDetails order={order} summit={summit} />
|
|
29
32
|
|
|
30
|
-
{isActive && tickets.length > 0 && (
|
|
33
|
+
{!isOrderLoading && isActive && tickets.length > 0 && (
|
|
31
34
|
<>
|
|
32
35
|
<OrderSummary type="mobile" order={order} summit={summit} tickets={tickets}/>
|
|
33
36
|
|
|
@@ -23,6 +23,7 @@ import history from '../history';
|
|
|
23
23
|
|
|
24
24
|
export const GET_USER_ORDERS = 'GET_ORDERS';
|
|
25
25
|
export const REFUND_ORDER = 'REFUND_ORDER';
|
|
26
|
+
export const SET_ACTIVE_ORDER_ID = 'SET_ACTIVE_ORDER_ID';
|
|
26
27
|
|
|
27
28
|
export const getUserOrders = ({ page = 1, perPage = 5 }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
28
29
|
const { summitState: { summit } } = getState();
|
|
@@ -81,4 +82,8 @@ export const cancelOrder = ({ order }) => async (dispatch, getState, { getAccess
|
|
|
81
82
|
dispatch(stopLoading());
|
|
82
83
|
return e;
|
|
83
84
|
});
|
|
84
|
-
};
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export const setActiveOrderId = (orderId) => async (dispatch, getState) => {
|
|
88
|
+
return dispatch(createAction(SET_ACTIVE_ORDER_ID)(orderId));
|
|
89
|
+
}
|
|
@@ -35,6 +35,7 @@ export const REMOVE_TICKET_ATTENDEE = 'REMOVE_TICKET_ATTENDEE';
|
|
|
35
35
|
export const REFUND_TICKET = 'REFUND_TICKET';
|
|
36
36
|
export const RESEND_NOTIFICATION = 'RESEND_NOTIFICATION';
|
|
37
37
|
export const GET_TICKETS_BY_ORDER = 'GET_TICKETS_BY_ORDER';
|
|
38
|
+
export const GET_TICKETS_BY_ORDER_ERROR = 'GET_TICKETS_BY_ORDER_ERROR';
|
|
38
39
|
export const GET_ORDER_TICKET_DETAILS = 'GET_ORDER_TICKET_DETAILS';
|
|
39
40
|
export const GET_TICKET_DETAILS = 'GET_TICKET_DETAILS';
|
|
40
41
|
|
|
@@ -148,12 +149,12 @@ export const getTicketById = ({order, ticket}) => async (dispatch, getState, { g
|
|
|
148
149
|
|
|
149
150
|
export const getTicketsByOrder = ({ orderId, page = 1, perPage = 5 }) => async (dispatch, getState, { getAccessToken, apiBaseUrl, loginUrl }) => {
|
|
150
151
|
|
|
152
|
+
dispatch(startLoading());
|
|
153
|
+
|
|
151
154
|
const accessToken = await getAccessToken().catch(_ => history.replace(loginUrl));
|
|
152
155
|
|
|
153
156
|
if (!accessToken) return;
|
|
154
157
|
|
|
155
|
-
dispatch(startLoading());
|
|
156
|
-
|
|
157
158
|
const params = {
|
|
158
159
|
access_token: accessToken,
|
|
159
160
|
expand: 'refund_requests, owner, owner.extra_questions, badge, badge.features',
|
|
@@ -171,6 +172,7 @@ export const getTicketsByOrder = ({ orderId, page = 1, perPage = 5 }) => async (
|
|
|
171
172
|
dispatch(stopLoading());
|
|
172
173
|
}).catch(e => {
|
|
173
174
|
dispatch(stopLoading());
|
|
175
|
+
dispatch(createAction(GET_TICKETS_BY_ORDER_ERROR));
|
|
174
176
|
return (e);
|
|
175
177
|
});
|
|
176
178
|
}
|
|
@@ -17,8 +17,10 @@ import { RESET_STATE } from "../actions/base-actions";
|
|
|
17
17
|
|
|
18
18
|
import {
|
|
19
19
|
GET_USER_ORDERS,
|
|
20
|
+
SET_ACTIVE_ORDER_ID,
|
|
20
21
|
REFUND_ORDER,
|
|
21
22
|
} from "../actions/order-actions";
|
|
23
|
+
import { GET_TICKETS_BY_ORDER, GET_TICKETS_BY_ORDER_ERROR } from "../actions/ticket-actions";
|
|
22
24
|
|
|
23
25
|
const DEFAULT_ENTITY = {
|
|
24
26
|
first_name: '',
|
|
@@ -47,6 +49,8 @@ const DEFAULT_STATE = {
|
|
|
47
49
|
stripeForm: false,
|
|
48
50
|
loaded: false,
|
|
49
51
|
loading: false,
|
|
52
|
+
activeOrderId: null,
|
|
53
|
+
isOrderLoading: false,
|
|
50
54
|
current_page: 1,
|
|
51
55
|
last_page: 1,
|
|
52
56
|
per_page: 5,
|
|
@@ -69,6 +73,13 @@ const orderReducer = (state = DEFAULT_STATE, action) => {
|
|
|
69
73
|
case STOP_LOADING:
|
|
70
74
|
return { ...state, loading: false };
|
|
71
75
|
break;
|
|
76
|
+
case SET_ACTIVE_ORDER_ID:
|
|
77
|
+
return { ...state, activeOrderId: payload, isOrderLoading: true };
|
|
78
|
+
break;
|
|
79
|
+
case GET_TICKETS_BY_ORDER_ERROR:
|
|
80
|
+
case GET_TICKETS_BY_ORDER:
|
|
81
|
+
return { ...state, isOrderLoading: false };
|
|
82
|
+
break;
|
|
72
83
|
case GET_USER_ORDERS:
|
|
73
84
|
let { data, current_page, total, last_page } = payload.response;
|
|
74
85
|
return { ...state, memberOrders: data, current_page, total, last_page };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"widgets":{"chat":{"showQA":false,"showHelp":false,"defaultScope":"page"},"schedule":{"allowClick":true}},"favicons":{"favicon180":"/img/favicon.png","favicon32":"/img/favicon.png","favicon16":"/img/favicon.png"},"staticJsonFilesBuildTime":[{"file":"src/data/summit.json","build_time":
|
|
1
|
+
{"widgets":{"chat":{"showQA":false,"showHelp":false,"defaultScope":"page"},"schedule":{"allowClick":true}},"favicons":{"favicon180":"/img/favicon.png","favicon32":"/img/favicon.png","favicon16":"/img/favicon.png"},"staticJsonFilesBuildTime":[{"file":"src/data/summit.json","build_time":1692922259099},{"file":"src/data/events.json","build_time":1692922264079},{"file":"src/data/events.idx.json","build_time":1692922264084},{"file":"src/data/speakers.json","build_time":1692922268263},{"file":"src/data/speakers.idx.json","build_time":1692922268264},{"file":"src/content/sponsors.json","build_time":1692922271753},{"file":"src/data/voteable-presentations.json","build_time":1692922272661}],"lastBuild":1692922272663}
|
package/src/styles/style.scss
CHANGED
|
@@ -241,9 +241,8 @@ h2 {
|
|
|
241
241
|
|
|
242
242
|
&__break {
|
|
243
243
|
background-color: var(--color_secondary);
|
|
244
|
-
min-height: 92vh !important;
|
|
245
244
|
width: 100%;
|
|
246
|
-
|
|
245
|
+
aspect-ratio: auto 16 / 9;
|
|
247
246
|
|
|
248
247
|
h1,
|
|
249
248
|
h2 {
|
|
@@ -306,6 +305,10 @@ h2 {
|
|
|
306
305
|
align-items: flex-end;
|
|
307
306
|
}
|
|
308
307
|
|
|
308
|
+
.hero-body {
|
|
309
|
+
align-items: center;
|
|
310
|
+
display: flex;
|
|
311
|
+
}
|
|
309
312
|
}
|
|
310
313
|
|
|
311
314
|
.join-zoom-container {
|
|
@@ -504,12 +507,6 @@ div.event-feedback-container {
|
|
|
504
507
|
}
|
|
505
508
|
}
|
|
506
509
|
|
|
507
|
-
.talk {
|
|
508
|
-
&__break {
|
|
509
|
-
height: auto;
|
|
510
|
-
}
|
|
511
|
-
}
|
|
512
|
-
|
|
513
510
|
.join-zoom-container {
|
|
514
511
|
flex-direction: column;
|
|
515
512
|
height: 100px;
|
|
@@ -563,14 +560,6 @@ div.event-feedback-container {
|
|
|
563
560
|
}
|
|
564
561
|
}
|
|
565
562
|
|
|
566
|
-
@media (min-width: 1921px) {
|
|
567
|
-
.talk {
|
|
568
|
-
&__break {
|
|
569
|
-
min-height: 100vh !important;
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
|
|
574
563
|
/* extra questions */
|
|
575
564
|
[id^="chl_wrapper"] {
|
|
576
565
|
.checkboxes-div {
|
|
@@ -103,17 +103,7 @@ export const EventPageTemplate = class extends React.Component {
|
|
|
103
103
|
return (
|
|
104
104
|
<React.Fragment>
|
|
105
105
|
{/* <EventHeroComponent /> */}
|
|
106
|
-
<section
|
|
107
|
-
className="section px-0 py-0"
|
|
108
|
-
style={{
|
|
109
|
-
marginBottom:
|
|
110
|
-
event.class_name !== "Presentation" ||
|
|
111
|
-
currentPhase < PHASES.DURING ||
|
|
112
|
-
!event.streaming_url
|
|
113
|
-
? "-3rem"
|
|
114
|
-
: "",
|
|
115
|
-
}}
|
|
116
|
-
>
|
|
106
|
+
<section className="section px-0 py-0">
|
|
117
107
|
<div className="columns is-gapless">
|
|
118
108
|
{this.canRenderVideo(currentPhase) ? (
|
|
119
109
|
<div className="column is-three-quarters px-0 py-0">
|
|
@@ -435,7 +435,7 @@ export const FullProfilePageTemplate = ({ user, getIDPProfile, updateProfile, up
|
|
|
435
435
|
<br />
|
|
436
436
|
<label className={styles.checkbox}>
|
|
437
437
|
<input type="checkbox" checked={allowChatWithMe} onChange={e => setAllowChatWithMe(e.target.checked)} />
|
|
438
|
-
Allow people to chat with me
|
|
438
|
+
Allow people to chat with me?
|
|
439
439
|
</label>
|
|
440
440
|
<div className={`columns is-mobile ${styles.buttons}`}>
|
|
441
441
|
<div className={`column is-half`}>
|
|
@@ -7,10 +7,10 @@ export const MARKETING_SETTINGS_KEYS = {
|
|
|
7
7
|
disqusExcludeTracks: "disqus_exclude_tracks",
|
|
8
8
|
registrationInPersonDisclaimer: "registration_in_person_disclaimer",
|
|
9
9
|
scheduleDefaultImage: "schedule_default_image",
|
|
10
|
+
fullScheduleSummitLogoPrint: "FULL_SCHEDULE_SUMMIT_LOGO_PRINT",
|
|
10
11
|
summitDeltaStartTime: "summit_delta_start_time",
|
|
11
12
|
activityCtaText: "ACTIVITY_CTA_TEXT",
|
|
12
13
|
regLiteAllowPromoCodes: "REG_LITE_ALLOW_PROMO_CODES",
|
|
13
|
-
regLiteCompanyInputPlaceholder: "REG_LITE_COMPANY_INPUT_PLACEHOLDER",
|
|
14
14
|
regLiteCompanyDDLPlaceholder: "REG_LITE_COMPANY_DDL_PLACEHOLDER",
|
|
15
15
|
regLiteInitialOrderComplete1stParagraph: "REG_LITE_INITIAL_ORDER_COMPLETE_STEP_1ST_PARAGRAPH",
|
|
16
16
|
regLiteInitialOrderComplete2ndParagraph: "REG_LITE_INITIAL_ORDER_COMPLETE_STEP_2ND_PARAGRAPH",
|
|
@@ -21,12 +21,15 @@ export const MARKETING_SETTINGS_KEYS = {
|
|
|
21
21
|
regLiteNoAllowedTicketsMessage: "REG_LITE_NO_ALLOWED_TICKETS_MESSAGE",
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
const FileType = 'FILE';
|
|
24
25
|
const marketingSettingsQuery = graphql`
|
|
25
26
|
query {
|
|
26
27
|
allMarketingSettingsJson {
|
|
27
28
|
nodes {
|
|
28
29
|
key
|
|
30
|
+
type
|
|
29
31
|
value
|
|
32
|
+
file
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
}
|
|
@@ -34,8 +37,11 @@ const marketingSettingsQuery = graphql`
|
|
|
34
37
|
|
|
35
38
|
const useMarketingSettings = () => {
|
|
36
39
|
const { allMarketingSettingsJson } = useStaticQuery(marketingSettingsQuery);
|
|
37
|
-
const getSettingByKey = (key) =>
|
|
38
|
-
allMarketingSettingsJson.nodes.find(setting => setting.key === key)
|
|
40
|
+
const getSettingByKey = (key) => {
|
|
41
|
+
const node = allMarketingSettingsJson.nodes.find(setting => setting.key === key);
|
|
42
|
+
if(!node) return null;
|
|
43
|
+
return node.type === FileType ? node?.file : node?.value;
|
|
44
|
+
}
|
|
39
45
|
return { getSettingByKey };
|
|
40
46
|
};
|
|
41
47
|
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useContext, useReducer } from "react";
|
|
2
|
-
import { createReducer } from '../../util/helpers/createReducer';
|
|
3
|
-
|
|
4
|
-
const initialState = {
|
|
5
|
-
activeOrderId: null,
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
const actions = ({ state, dispatch }) => ({
|
|
9
|
-
setActiveOrderId: (orderId) => dispatch({ type: 'setActiveOrderId', payload: orderId }),
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
const actionHandlers = {
|
|
13
|
-
setActiveOrderId: (state, orderId) => ({ ...state, activeOrderId: orderId })
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const reducer = createReducer({ actionHandlers });
|
|
17
|
-
|
|
18
|
-
export const OrderListContext = createContext(null);
|
|
19
|
-
|
|
20
|
-
export const OrderListContextProvider = ({ children }) => {
|
|
21
|
-
const [state, dispatch] = useReducer(reducer, {}, () => initialState);
|
|
22
|
-
|
|
23
|
-
return (
|
|
24
|
-
<OrderListContext.Provider value={{ state, dispatch }}>
|
|
25
|
-
{children}
|
|
26
|
-
</OrderListContext.Provider>
|
|
27
|
-
)
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export const useOrderListContext = () => {
|
|
31
|
-
const context = useContext(OrderListContext);
|
|
32
|
-
|
|
33
|
-
if (!context) throw new Error('useOrderListContext must be used within a OrderListContextProvider');
|
|
34
|
-
|
|
35
|
-
return { ...context, actions: actions(context) };
|
|
36
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import React, { createContext, useContext, useReducer } from 'react';
|
|
2
|
-
import { createReducer } from '../util/helpers/createReducer';
|
|
3
|
-
|
|
4
|
-
const initialState = {
|
|
5
|
-
orders: []
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
const actions = ({ state, dispatch }) => ({
|
|
9
|
-
setOrders: (orders) => dispatch({ type: 'setOrders', payload: orders }),
|
|
10
|
-
setLoading: (loading) => dispatch({ type: 'setLoading', payload: loading })
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const actionHandlers = {
|
|
14
|
-
setOrders: (state, orders) => ({ ...state, orders }),
|
|
15
|
-
setLoading: (state, loading) => ({ ...state, loading })
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
const reducer = createReducer({ actionHandlers });
|
|
19
|
-
|
|
20
|
-
export const OrdersTicketsContext = createContext(null);
|
|
21
|
-
|
|
22
|
-
export const OrdersTicketsProvider = ({ children }) => {
|
|
23
|
-
const [state, dispatch] = useReducer(reducer, {}, () => initialState);
|
|
24
|
-
|
|
25
|
-
return (
|
|
26
|
-
<OrdersTicketsContext.Provider value={{ state, dispatch }}>
|
|
27
|
-
{children}
|
|
28
|
-
</OrdersTicketsContext.Provider>
|
|
29
|
-
);
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
export const useOrdersTicketsContext = () => {
|
|
33
|
-
const context = useContext(OrdersTicketsContext);
|
|
34
|
-
|
|
35
|
-
if (!context) throw new Error('useOrdersTicketsContext must be used within a OrdersTicketsProvider');
|
|
36
|
-
|
|
37
|
-
return { ...context, actions: actions(context) };
|
|
38
|
-
};
|