iticket-seatingplan-dev 0.0.4 → 1.0.16
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.
|
@@ -21,7 +21,8 @@ const SeatingPlan = _ref => {
|
|
|
21
21
|
price,
|
|
22
22
|
quantity,
|
|
23
23
|
callbackFunction,
|
|
24
|
-
apiKey
|
|
24
|
+
apiKey,
|
|
25
|
+
baseUrl
|
|
25
26
|
} = _ref;
|
|
26
27
|
const [position, setPosition] = (0, _react.useState)(null);
|
|
27
28
|
const [height, setHeight] = (0, _react.useState)(0);
|
|
@@ -37,11 +38,12 @@ const SeatingPlan = _ref => {
|
|
|
37
38
|
sold: '#95a5a6',
|
|
38
39
|
reserved: '#95a5a6',
|
|
39
40
|
pending: '#e74c3c',
|
|
40
|
-
booked: '#e74c3c'
|
|
41
|
+
booked: '#e74c3c',
|
|
42
|
+
bookedWithDifferentPrice: '#fab1a0'
|
|
41
43
|
};
|
|
42
44
|
const setInitialColor = s => {
|
|
43
45
|
return {
|
|
44
|
-
fillColor: s.status === 1 ? statusColors.available : s.status === 4 ? statusColors.booked : statusColors.sold,
|
|
46
|
+
fillColor: s.status === 1 ? statusColors.available : s.status === 4 ? s.bookedPrice === price ? statusColors.booked : statusColors.bookedWithDifferentPrice : statusColors.sold,
|
|
45
47
|
color: 'none',
|
|
46
48
|
fillOpacity: 100
|
|
47
49
|
};
|
|
@@ -65,7 +67,7 @@ const SeatingPlan = _ref => {
|
|
|
65
67
|
});
|
|
66
68
|
setProcessing(true);
|
|
67
69
|
if (s.status === 1) {
|
|
68
|
-
fetch("https://
|
|
70
|
+
fetch("https://iticket-shop-dev.azurewebsites.net/seatingplan/addseat", {
|
|
69
71
|
method: 'POST',
|
|
70
72
|
body: JSON.stringify({
|
|
71
73
|
basketKey: '',
|
|
@@ -83,6 +85,7 @@ const SeatingPlan = _ref => {
|
|
|
83
85
|
}
|
|
84
86
|
}).then(response => response.json()).then(response => {
|
|
85
87
|
s.status = 4;
|
|
88
|
+
s.bookedPrice = price;
|
|
86
89
|
e.target.setStyle({
|
|
87
90
|
fillColor: statusColors.booked
|
|
88
91
|
});
|
|
@@ -117,53 +120,69 @@ const SeatingPlan = _ref => {
|
|
|
117
120
|
setProcessing(false);
|
|
118
121
|
});
|
|
119
122
|
} else {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
123
|
+
if (s.bookedPrice === price) {
|
|
124
|
+
fetch("https://iticket-shop-dev.azurewebsites.net/seatingplan/removeseat", {
|
|
125
|
+
method: 'POST',
|
|
126
|
+
body: JSON.stringify({
|
|
127
|
+
basketKey: '',
|
|
128
|
+
seatId: s.showingSeatId
|
|
129
|
+
}),
|
|
130
|
+
headers: {
|
|
131
|
+
'content-type': 'application/json',
|
|
132
|
+
'session-id': "ASP.NET_SessionId=".concat(sessionId),
|
|
133
|
+
'showingseat-id': s.showingSeatId
|
|
134
|
+
}
|
|
135
|
+
}).then(response => response.json()).then(response => {
|
|
136
|
+
s.status = 1;
|
|
137
|
+
s.bookedPrice = null;
|
|
138
|
+
e.target.setStyle({
|
|
139
|
+
fillColor: statusColors.available
|
|
140
|
+
});
|
|
141
|
+
setBookedSeats(bookedSeats.filter(bs => bs.showingSeatId !== s.showingSeatId));
|
|
142
|
+
setProcessing(false);
|
|
143
|
+
}).catch(error => {
|
|
144
|
+
e.target.setStyle({
|
|
145
|
+
fillColor: statusColors.booked
|
|
146
|
+
});
|
|
147
|
+
const event = {
|
|
148
|
+
type: 'error',
|
|
149
|
+
details: {
|
|
150
|
+
error: {
|
|
151
|
+
code: 500,
|
|
152
|
+
message: 'Oops! Something went wrong. Please try again.'
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
callbackFunction(event);
|
|
157
|
+
setProcessing(false);
|
|
141
158
|
});
|
|
159
|
+
} else {
|
|
142
160
|
const event = {
|
|
143
161
|
type: 'error',
|
|
144
162
|
details: {
|
|
145
163
|
error: {
|
|
146
|
-
code:
|
|
147
|
-
message:
|
|
164
|
+
code: 403,
|
|
165
|
+
message: "Unable to remove seat. Price specified does not match the selected seat price, please select $".concat(s.bookedPrice, " to be able to remove this seat.")
|
|
148
166
|
}
|
|
149
167
|
}
|
|
150
168
|
};
|
|
151
169
|
callbackFunction(event);
|
|
152
170
|
setProcessing(false);
|
|
153
|
-
}
|
|
171
|
+
}
|
|
154
172
|
}
|
|
155
173
|
};
|
|
174
|
+
// https://ecommerce-main-f0c3c0b.d2.zuplo.dev
|
|
156
175
|
(0, _react.useEffect)(() => {
|
|
157
176
|
if (!position && !error) {
|
|
158
|
-
fetch("
|
|
177
|
+
fetch("".concat(baseUrl, "/ecommerce/v1/events/").concat(eventId, "/showings/").concat(showingId, "/seats?priceage=").concat(priceAgeId), {
|
|
159
178
|
headers: {
|
|
160
|
-
|
|
179
|
+
basketId: sessionId,
|
|
161
180
|
Authorization: "Bearer ".concat(apiKey)
|
|
162
181
|
}
|
|
163
182
|
}).then(response => response.json() || null).then(data => {
|
|
164
183
|
const img = new Image();
|
|
165
184
|
img.src = data.background;
|
|
166
|
-
setBookedSeats(data.seats.filter(s => s.status === 4).map(s => ({
|
|
185
|
+
setBookedSeats(data.seats.filter(s => s.status === 4 && s.bookedPrice === price).map(s => ({
|
|
167
186
|
showingSeatId: s.showingSeatId,
|
|
168
187
|
rowName: s.rowName,
|
|
169
188
|
columnName: s.columnName,
|
|
@@ -208,6 +227,7 @@ const SeatingPlan = _ref => {
|
|
|
208
227
|
// return seating plan
|
|
209
228
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
210
229
|
style: {
|
|
230
|
+
width: '100%',
|
|
211
231
|
height: '100%'
|
|
212
232
|
}
|
|
213
233
|
}, error ? /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -233,7 +253,7 @@ const SeatingPlan = _ref => {
|
|
|
233
253
|
opacity: chosenSeat && chosenSeat.seat.showingSeatId === s.showingSeatId ? 100 : 0,
|
|
234
254
|
zIndex: 10
|
|
235
255
|
}), !priceSectionId || s.priceSectionId === priceSectionId ? s.status === 6 ? /*#__PURE__*/_react.default.createElement(_reactLeaflet.ImageOverlay, {
|
|
236
|
-
url:
|
|
256
|
+
url: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iNTBweCIgaGVpZ2h0PSI1MHB4IiB2aWV3Qm94PSIwIDAgNTAgNTAiIHZlcnNpb249IjEuMSI+CjxnIGlkPSJzdXJmYWNlMSI+CjxwYXRoIHN0eWxlPSIgc3Ryb2tlOm5vbmU7ZmlsbC1ydWxlOm5vbnplcm87ZmlsbDpyZ2IoMCUsMCUsMCUpO2ZpbGwtb3BhY2l0eToxOyIgZD0iTSAzNC4xMjg5MDYgNDEuMzA0Njg4IEMgMzMuMjY5NTMxIDQwLjQ0OTIxOSAzMS45MDYyNSA0MC4zNzUgMzAuOTY0ODQ0IDQxLjE0MDYyNSBDIDI4LjY0ODQzOCA0My4wMTk1MzEgMjUuNzczNDM4IDQ0LjA2NjQwNiAyMi43MzgyODEgNDQuMDY2NDA2IEMgMTUuNDU3MDMxIDQ0LjA2NjQwNiA5LjUzMTI1IDM4LjE0MDYyNSA5LjUzMTI1IDMwLjg1NTQ2OSBDIDkuNTMxMjUgMjcuNjI4OTA2IDEwLjcxODc1IDI0LjU2NjQwNiAxMi44MzU5MzggMjIuMTcxODc1IEMgMTMuNSAyMS40MTc5NjkgMTMuNDg0Mzc1IDIwLjI4MTI1IDEyLjc4OTA2MiAxOS41NTA3ODEgQyAxMi4zMzk4NDQgMTkuMDc0MjE5IDExLjg5NDUzMSAxOC41OTc2NTYgMTEuNDQ1MzEyIDE4LjEyMTA5NCBDIDExLjA4MjAzMSAxNy43MzgyODEgMTAuNTc4MTI1IDE3LjUyMzQzOCAxMC4wNTA3ODEgMTcuNTIzNDM4IEMgOS41MjM0MzggMTcuNTI3MzQ0IDkuMDIzNDM4IDE3Ljc1IDguNjY3OTY5IDE4LjEzNjcxOSBDIDcuNTY2NDA2IDE5LjMyODEyNSA2LjYxNzE4OCAyMC42NTIzNDQgNS44NjcxODggMjIuMDg1OTM4IEMgNC40NjA5MzggMjQuNzczNDM4IDMuNzE4NzUgMjcuODA4NTk0IDMuNzE4NzUgMzAuODU1NDY5IEMgMy43MTg3NSA0MS4zNDM3NSAxMi4yNTM5MDYgNDkuODc4OTA2IDIyLjc0MjE4OCA0OS44Nzg5MDYgQyAyNS43Njk1MzEgNDkuODc4OTA2IDI4Ljc4NTE1NiA0OS4xNDQ1MzEgMzEuNDY0ODQ0IDQ3Ljc1NzgxMiBDIDMyLjYyNSA0Ny4xNTYyNSAzMy43MjI2NTYgNDYuNDI5Njg4IDM0LjczODI4MSA0NS42MDE1NjIgQyAzNS4yNTM5MDYgNDUuMTc5Njg4IDM1LjU3MDMxMiA0NC41NTQ2ODggMzUuNjA1NDY5IDQzLjg4NjcxOSBDIDM1LjYzNjcxOSA0My4yMTg3NSAzNS4zOTA2MjUgNDIuNTY2NDA2IDM0LjkxNDA2MiA0Mi4wOTM3NSBaIE0gMzQuMTI4OTA2IDQxLjMwNDY4OCAiLz4KPHBhdGggc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7IiBkPSJNIDE2LjgxMjUgOS4yODUxNTYgQyAxOS4zNzEwOTQgOS4yODUxNTYgMjEuNDUzMTI1IDcuMjAzMTI1IDIxLjQ1MzEyNSA0LjY0NDUzMSBDIDIxLjQ1MzEyNSAyLjA4MjAzMSAxOS4zNzEwOTQgMCAxNi44MTI1IDAgQyAxNC4yNSAwIDEyLjE2Nzk2OSAyLjA4MjAzMSAxMi4xNjc5NjkgNC42NDQ1MzEgQyAxMi4xNjc5NjkgNy4yMDMxMjUgMTQuMjUgOS4yODUxNTYgMTYuODEyNSA5LjI4NTE1NiBaIE0gMTYuODEyNSA5LjI4NTE1NiAiLz4KPHBhdGggc3R5bGU9IiBzdHJva2U6bm9uZTtmaWxsLXJ1bGU6bm9uemVybztmaWxsOnJnYigwJSwwJSwwJSk7ZmlsbC1vcGFjaXR5OjE7IiBkPSJNIDQ2LjIzNDM3NSA0Ni41NzAzMTIgTCA0My4zMTY0MDYgMzAuNjA5Mzc1IEMgNDMuMTQwNjI1IDI5LjYyNSA0Mi41NTg1OTQgMjguNzQyMTg4IDQxLjczNDM3NSAyOC4xNzk2ODggQyA0MS4xMTMyODEgMjcuNzU3ODEyIDQwLjM4MjgxMiAyNy41MzEyNSAzOS42Mjg5MDYgMjcuNTMxMjUgQyAzOS4zODI4MTIgMjcuNTMxMjUgMzkuMTMyODEyIDI3LjU1NDY4OCAzOC44OTQ1MzEgMjcuNjAxNTYyIEwgMjUuNTg1OTM4IDMwLjI2MTcxOSBDIDI1LjUzOTA2MiAzMC4yNzM0MzggMjUuNDkyMTg4IDMwLjI3NzM0NCAyNS40NDUzMTIgMzAuMjc3MzQ0IEMgMjUuMTEzMjgxIDMwLjI3NzM0NCAyNC44MjQyMTkgMzAuMDM5MDYyIDI0Ljc1NzgxMiAyOS43MTA5MzggTCAyMy42NjAxNTYgMjQuMzA4NTk0IEwgMzIuODk4NDM4IDIyLjczNDM3NSBDIDM0LjM0NzY1NiAyMi40ODQzNzUgMzUuMzI4MTI1IDIxLjEwNTQ2OSAzNS4wNzgxMjUgMTkuNjU2MjUgQyAzNC44NTkzNzUgMTguMzcxMDk0IDMzLjc1MzkwNiAxNy40Mzc1IDMyLjQ0NTMxMiAxNy40Mzc1IEMgMzIuMjk2ODc1IDE3LjQzNzUgMzIuMTQ4NDM4IDE3LjQ0OTIxOSAzMiAxNy40NzI2NTYgTCAyMi41OTc2NTYgMTkuMDc4MTI1IEwgMjEuMzkwNjI1IDEzLjEyODkwNiBDIDIxLjEzNjcxOSAxMS43NDYwOTQgMTkuOTM3NSAxMC43NDYwOTQgMTguNTM1MTU2IDEwLjc0NjA5NCBDIDE4LjM1OTM3NSAxMC43NDYwOTQgMTguMTc5Njg4IDEwLjc2MTcxOSAxOC4wMDc4MTIgMTAuNzkyOTY5IEMgMTcuMjQyMTg4IDEwLjkyOTY4OCAxNi41NzgxMjUgMTEuMzU5Mzc1IDE2LjE0MDYyNSAxMiBDIDE1LjY5NTMxMiAxMi42NDA2MjUgMTUuNTMxMjUgMTMuNDEwMTU2IDE1LjY3MTg3NSAxNC4xNzk2ODggTCAxOS41MTk1MzEgMzMuNTc0MjE5IEMgMTkuNzE0ODQ0IDM0LjU1ODU5NCAyMC4yODEyNSAzNS40MDYyNSAyMS4xMTMyODEgMzUuOTYwOTM4IEMgMjEuNzM0Mzc1IDM2LjM3NSAyMi40NTMxMjUgMzYuNTkzNzUgMjMuMTk5MjE5IDM2LjU5Mzc1IEMgMjMuNDQ1MzEyIDM2LjU5Mzc1IDIzLjY5MTQwNiAzNi41NzAzMTIgMjMuOTMzNTk0IDM2LjUxOTUzMSBMIDM3LjI2OTUzMSAzMy44NTkzNzUgQyAzNy40NTcwMzEgMzMuODIwMzEyIDM3LjY1MjM0NCAzMy44NTkzNzUgMzcuODA4NTk0IDMzLjk2NDg0NCBDIDM3Ljk2MDkzOCAzNC4wNzAzMTIgMzguMDcwMzEyIDM0LjIzODI4MSAzOC4xMDU0NjkgMzQuNDIxODc1IEwgNDAuNTE1NjI1IDQ3LjYxNzE4OCBDIDQwLjc2NTYyNSA0OSA0MS45Njg3NSA1MC4wMDM5MDYgNDMuMzcxMDk0IDUwLjAwMzkwNiBDIDQzLjU0Njg3NSA1MC4wMDM5MDYgNDMuNzE4NzUgNDkuOTg0Mzc1IDQzLjg5NDUzMSA0OS45NTMxMjUgQyA0NC42NjAxNTYgNDkuODE2NDA2IDQ1LjMyMDMxMiA0OS4zODY3MTkgNDUuNzYxNzE5IDQ4Ljc0NjA5NCBDIDQ2LjIwNzAzMSA0OC4xMDkzNzUgNDYuMzcxMDk0IDQ3LjMzNTkzOCA0Ni4yMzQzNzUgNDYuNTcwMzEyIFogTSA0Ni4yMzQzNzUgNDYuNTcwMzEyICIvPgo8L2c+Cjwvc3ZnPgo=',
|
|
237
257
|
bounds: [[height * 0.03 - s.raw_y * 0.61 - 0.17, s.raw_x * 0.615 - 0.17], [height * 0.03 - s.raw_y * 0.61 + 0.17, s.raw_x * 0.615 + 0.17]],
|
|
238
258
|
zIndex: 10
|
|
239
259
|
}) : /*#__PURE__*/_react.default.createElement(_reactLeaflet.Circle, {
|
|
@@ -250,7 +270,7 @@ const SeatingPlan = _ref => {
|
|
|
250
270
|
}, /*#__PURE__*/_react.default.createElement(_reactLeaflet.Tooltip, {
|
|
251
271
|
direction: 'top',
|
|
252
272
|
offset: [0, height * 0.03 + -30]
|
|
253
|
-
}, s.rowName + '-' + s.columnName)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
273
|
+
}, s.rowName + '-' + s.columnName, ' ', s.bookedPrice && s.bookedPrice !== price && "(Select $".concat(s.bookedPrice, " to remove from cart.)"))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null)))) : /*#__PURE__*/_react.default.createElement("div", {
|
|
254
274
|
className: "loading"
|
|
255
275
|
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("svg", {
|
|
256
276
|
width: "105",
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "iticket-seatingplan-dev",
|
|
3
3
|
"description": "Seating plan with FLEXi pricing",
|
|
4
4
|
"author": "gedwyne",
|
|
5
|
-
"version": "
|
|
5
|
+
"version": "1.0.16",
|
|
6
6
|
"private": false,
|
|
7
7
|
"keywords": [
|
|
8
8
|
"iticket",
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"leaflet": "^1.9.3",
|
|
20
20
|
"react-leaflet": "^4.2.1"
|
|
21
21
|
},
|
|
22
|
+
"codependencies": {
|
|
23
|
+
"@babel/polyfill": "^7.12.1",
|
|
24
|
+
"leaflet": "^1.9.3",
|
|
25
|
+
"react-leaflet": "^4.2.1"
|
|
26
|
+
},
|
|
22
27
|
"scripts": {
|
|
23
28
|
"build": "rm -rf dist && NODE_ENV=production babel src/lib --out-dir dist --copy-files",
|
|
24
29
|
"start": "react-scripts start"
|