@openeventkit/event-site 2.0.48 → 2.0.50
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-node.js +6 -3
- package/package.json +3 -3
- package/src/components/FullSchedule.js +2 -0
- 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/templates/full-profile-page.js +1 -1
- package/src/utils/useMarketingSettings.js +3 -2
- 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/gatsby-node.js
CHANGED
|
@@ -225,7 +225,7 @@ exports.onPreBootstrap = async () => {
|
|
|
225
225
|
|
|
226
226
|
const summitId = process.env.GATSBY_SUMMIT_ID;
|
|
227
227
|
const summitApiBaseUrl = process.env.GATSBY_SUMMIT_API_BASE_URL;
|
|
228
|
-
|
|
228
|
+
let marketingSettings = await SSR_getMarketingSettings(process.env.GATSBY_MARKETING_API_BASE_URL, summitId);
|
|
229
229
|
const colorSettings = fs.existsSync(COLORS_FILE_PATH) ? JSON.parse(fs.readFileSync(COLORS_FILE_PATH)) : require(`./${DEFAULT_COLORS_FILE_PATH}`);
|
|
230
230
|
const globalSettings = fs.existsSync(SITE_SETTINGS_FILE_PATH) ? JSON.parse(fs.readFileSync(SITE_SETTINGS_FILE_PATH)) : {};
|
|
231
231
|
const lobbyPageSettings = fs.existsSync(LOBBY_PAGE_FILE_PATH) ? JSON.parse(fs.readFileSync(LOBBY_PAGE_FILE_PATH)) : {};
|
|
@@ -247,9 +247,12 @@ exports.onPreBootstrap = async () => {
|
|
|
247
247
|
|
|
248
248
|
const accessToken = await getAccessToken(config, process.env.GATSBY_BUILD_SCOPES).then(({ token }) => token.access_token);
|
|
249
249
|
|
|
250
|
+
const FileType = 'FILE';
|
|
250
251
|
// extract colors from marketing settings
|
|
251
|
-
marketingSettings.map(
|
|
252
|
-
if (key.startsWith("color_")) colorSettings[key] = value;
|
|
252
|
+
marketingSettings = marketingSettings.map( entry => {
|
|
253
|
+
if (entry.key.startsWith("color_")) colorSettings[entry.key] = entry.value;
|
|
254
|
+
if(entry.type === FileType) return {...entry, value: entry.file};
|
|
255
|
+
return {...entry};
|
|
253
256
|
});
|
|
254
257
|
|
|
255
258
|
// create required directories
|
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.50",
|
|
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),
|
|
@@ -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}
|
|
@@ -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,6 +21,7 @@ export const MARKETING_SETTINGS_KEYS = {
|
|
|
21
21
|
regLiteNoAllowedTicketsMessage: "REG_LITE_NO_ALLOWED_TICKETS_MESSAGE",
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
|
|
24
25
|
const marketingSettingsQuery = graphql`
|
|
25
26
|
query {
|
|
26
27
|
allMarketingSettingsJson {
|
|
@@ -35,7 +36,7 @@ const marketingSettingsQuery = graphql`
|
|
|
35
36
|
const useMarketingSettings = () => {
|
|
36
37
|
const { allMarketingSettingsJson } = useStaticQuery(marketingSettingsQuery);
|
|
37
38
|
const getSettingByKey = (key) =>
|
|
38
|
-
|
|
39
|
+
allMarketingSettingsJson.nodes.find(setting => setting.key === key)?.value;
|
|
39
40
|
return { getSettingByKey };
|
|
40
41
|
};
|
|
41
42
|
|
|
@@ -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
|
-
};
|