@treely/strapi-slices 7.3.0 → 7.4.1
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/README.md +2 -1
- package/dist/models/strapi/StrapiEvent.d.ts +2 -2
- package/dist/strapi-slices.cjs.development.js +96 -46
- package/dist/strapi-slices.cjs.development.js.map +1 -1
- package/dist/strapi-slices.cjs.production.min.js +1 -1
- package/dist/strapi-slices.cjs.production.min.js.map +1 -1
- package/dist/strapi-slices.esm.js +96 -46
- package/dist/strapi-slices.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/EventCard/EventCard.test.tsx +3 -3
- package/src/components/EventCard/EventCard.tsx +39 -35
- package/src/models/strapi/StrapiEvent.ts +2 -2
- package/src/slices/Events/Events.stories.tsx +2 -2
- package/src/slices/Events/Events.test.tsx +8 -2
- package/src/slices/Events/Events.tsx +78 -49
package/README.md
CHANGED
|
@@ -39,7 +39,8 @@ npm run build
|
|
|
39
39
|
npm pack
|
|
40
40
|
```
|
|
41
41
|
|
|
42
|
-
Go to the project which uses the strapi-slices package and remove the
|
|
42
|
+
Go to the project which uses the strapi-slices package and remove the
|
|
43
|
+
`node_modules` and the `.next` folder before installing the package there:
|
|
43
44
|
|
|
44
45
|
```bash
|
|
45
46
|
cd ../path/to/your/project
|
|
@@ -17,10 +17,10 @@ export declare enum EventType {
|
|
|
17
17
|
interface StrapiEvent {
|
|
18
18
|
title: string;
|
|
19
19
|
description: string;
|
|
20
|
-
button
|
|
20
|
+
button?: StrapiLink;
|
|
21
21
|
buttonVariant?: 'outline' | 'ghost' | 'link' | 'solid' | 'outlineWhite';
|
|
22
22
|
recommended?: boolean;
|
|
23
|
-
speakers
|
|
23
|
+
speakers?: {
|
|
24
24
|
id: number;
|
|
25
25
|
name: string;
|
|
26
26
|
image: StrapiImage;
|
|
@@ -6061,7 +6061,7 @@ var EventCard = function EventCard(_ref) {
|
|
|
6061
6061
|
justifyContent: mobile ? undefined : 'space-between',
|
|
6062
6062
|
flexDir: mobile ? 'column-reverse' : 'row',
|
|
6063
6063
|
gap: mobile ? '4' : '0'
|
|
6064
|
-
}, React__default.default.createElement(boemly.Flex, {
|
|
6064
|
+
}, event.button && React__default.default.createElement(boemly.Flex, {
|
|
6065
6065
|
width: mobile ? 'full' : 'auto'
|
|
6066
6066
|
}, React__default.default.createElement(StrapiLinkButton, {
|
|
6067
6067
|
key: event.button.id,
|
|
@@ -6072,7 +6072,7 @@ var EventCard = function EventCard(_ref) {
|
|
|
6072
6072
|
size: "10"
|
|
6073
6073
|
}),
|
|
6074
6074
|
width: "full"
|
|
6075
|
-
})), React__default.default.createElement(boemly.Flex, {
|
|
6075
|
+
})), event.speakers && event.speakers.length > 0 && React__default.default.createElement(boemly.Flex, {
|
|
6076
6076
|
flexDir: "row",
|
|
6077
6077
|
gap: "2"
|
|
6078
6078
|
}, event.speakers.map(function (speaker) {
|
|
@@ -6155,6 +6155,12 @@ var Events = function Events(_ref) {
|
|
|
6155
6155
|
var _useState3 = React.useState([Sort.NEWEST_FIRST]),
|
|
6156
6156
|
sort = _useState3[0],
|
|
6157
6157
|
setSort = _useState3[1];
|
|
6158
|
+
var _useState4 = React.useState([]),
|
|
6159
|
+
allEventTypeOptions = _useState4[0],
|
|
6160
|
+
setAllEventTypeOptions = _useState4[1];
|
|
6161
|
+
var _useState5 = React.useState([]),
|
|
6162
|
+
allLanguageOptions = _useState5[0],
|
|
6163
|
+
setAllLanguageOptions = _useState5[1];
|
|
6158
6164
|
var now = new Date().toISOString();
|
|
6159
6165
|
var buildEventsUrl = function buildEventsUrl(index, batchSize, startFilter) {
|
|
6160
6166
|
var url = new URL("/treely-events", STRAPI_URI);
|
|
@@ -6168,10 +6174,14 @@ var Events = function Events(_ref) {
|
|
|
6168
6174
|
} else {
|
|
6169
6175
|
url.searchParams.append('sort', 'start:desc');
|
|
6170
6176
|
}
|
|
6171
|
-
if (
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
|
|
6177
|
+
if (eventTypeFilter.length) {
|
|
6178
|
+
eventTypeFilter.forEach(function (filter, i) {
|
|
6179
|
+
url.searchParams.append("filters[$or][" + i + "][eventTypes][eventType]", filter);
|
|
6180
|
+
});
|
|
6181
|
+
}
|
|
6182
|
+
if (languageFilter.length) {
|
|
6183
|
+
languageFilter.forEach(function (filter, i) {
|
|
6184
|
+
url.searchParams.append("filters[$or][" + (eventTypeFilter.length + i) + "][languages][language]", filter);
|
|
6175
6185
|
});
|
|
6176
6186
|
}
|
|
6177
6187
|
return "/treely-events" + url.search;
|
|
@@ -6217,38 +6227,66 @@ var Events = function Events(_ref) {
|
|
|
6217
6227
|
var pastEvents = React.useMemo(function () {
|
|
6218
6228
|
return processEvents(pastData);
|
|
6219
6229
|
}, [pastData]);
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6234
|
-
|
|
6235
|
-
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
|
|
6249
|
-
|
|
6250
|
-
|
|
6251
|
-
|
|
6230
|
+
// Function to fetch all possible options
|
|
6231
|
+
var fetchAllOptions = React.useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6232
|
+
var url, response, data, events, allEventTypes, allLanguages;
|
|
6233
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6234
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6235
|
+
case 0:
|
|
6236
|
+
url = new URL("/treely-events", STRAPI_URI);
|
|
6237
|
+
url.searchParams.append('locale', locale);
|
|
6238
|
+
url.searchParams.append('populate', 'deep,6');
|
|
6239
|
+
_context.next = 5;
|
|
6240
|
+
return fetch(STRAPI_URI + "/api/treely-events" + url.search);
|
|
6241
|
+
case 5:
|
|
6242
|
+
response = _context.sent;
|
|
6243
|
+
_context.next = 8;
|
|
6244
|
+
return response.json();
|
|
6245
|
+
case 8:
|
|
6246
|
+
data = _context.sent;
|
|
6247
|
+
events = (data == null ? void 0 : data.data) || []; // Extract all event types
|
|
6248
|
+
allEventTypes = new Set();
|
|
6249
|
+
events.forEach(function (event) {
|
|
6250
|
+
var _event$attributes;
|
|
6251
|
+
if (event != null && (_event$attributes = event.attributes) != null && _event$attributes.eventTypes) {
|
|
6252
|
+
event.attributes.eventTypes.forEach(function (item) {
|
|
6253
|
+
allEventTypes.add(item.eventType);
|
|
6254
|
+
});
|
|
6255
|
+
}
|
|
6256
|
+
});
|
|
6257
|
+
// Extract all languages
|
|
6258
|
+
allLanguages = new Set();
|
|
6259
|
+
events.forEach(function (event) {
|
|
6260
|
+
var _event$attributes2;
|
|
6261
|
+
if (event != null && (_event$attributes2 = event.attributes) != null && _event$attributes2.languages) {
|
|
6262
|
+
event.attributes.languages.forEach(function (item) {
|
|
6263
|
+
allLanguages.add(item.language);
|
|
6264
|
+
});
|
|
6265
|
+
}
|
|
6266
|
+
});
|
|
6267
|
+
// Update state with all options
|
|
6268
|
+
setAllEventTypeOptions(Array.from(allEventTypes).map(function (value) {
|
|
6269
|
+
return {
|
|
6270
|
+
value: value,
|
|
6271
|
+
label: value
|
|
6272
|
+
};
|
|
6273
|
+
}));
|
|
6274
|
+
setAllLanguageOptions(Array.from(allLanguages).map(function (value) {
|
|
6275
|
+
return {
|
|
6276
|
+
value: value,
|
|
6277
|
+
label: value
|
|
6278
|
+
};
|
|
6279
|
+
}));
|
|
6280
|
+
case 16:
|
|
6281
|
+
case "end":
|
|
6282
|
+
return _context.stop();
|
|
6283
|
+
}
|
|
6284
|
+
}, _callee);
|
|
6285
|
+
})), [locale]);
|
|
6286
|
+
// Fetch all options when component mounts
|
|
6287
|
+
React.useEffect(function () {
|
|
6288
|
+
fetchAllOptions();
|
|
6289
|
+
}, [fetchAllOptions]);
|
|
6252
6290
|
var removeFilter = function removeFilter(filterType, valueToRemove) {
|
|
6253
6291
|
if (filterType === 'eventTypes') {
|
|
6254
6292
|
setEventTypeFilter(function (prev) {
|
|
@@ -6269,7 +6307,13 @@ var Events = function Events(_ref) {
|
|
|
6269
6307
|
}, [eventTypeFilter, languageFilter, sort]);
|
|
6270
6308
|
return React__default.default.createElement(boemly.DefaultSectionContainer, null, React__default.default.createElement(boemly.Wrapper, null, slice.upcomingTitle ? React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.DefaultSectionHeader, {
|
|
6271
6309
|
title: slice.upcomingTitle,
|
|
6272
|
-
text: slice.upcomingDescription
|
|
6310
|
+
text: slice.upcomingDescription,
|
|
6311
|
+
titleProps: {
|
|
6312
|
+
maxW: '3xl'
|
|
6313
|
+
},
|
|
6314
|
+
textProps: {
|
|
6315
|
+
maxW: '3xl'
|
|
6316
|
+
}
|
|
6273
6317
|
}), React__default.default.createElement(boemly.Spacer, {
|
|
6274
6318
|
h: "10"
|
|
6275
6319
|
})) : React__default.default.createElement(React__default.default.Fragment, null), slice.filterSearch && (upcomingEvents || pastEvents) ? React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Flex, {
|
|
@@ -6300,7 +6344,7 @@ var Events = function Events(_ref) {
|
|
|
6300
6344
|
searchPlaceholder: formatMessage({
|
|
6301
6345
|
id: 'sections.events.eventsFilter.searchPlaceholder'
|
|
6302
6346
|
}),
|
|
6303
|
-
options:
|
|
6347
|
+
options: allEventTypeOptions,
|
|
6304
6348
|
value: eventTypeFilter != null ? eventTypeFilter : [],
|
|
6305
6349
|
onChange: function onChange(selected) {
|
|
6306
6350
|
setEventTypeFilter(selected);
|
|
@@ -6319,7 +6363,7 @@ var Events = function Events(_ref) {
|
|
|
6319
6363
|
searchPlaceholder: formatMessage({
|
|
6320
6364
|
id: 'sections.events.eventsFilter.searchPlaceholder'
|
|
6321
6365
|
}),
|
|
6322
|
-
options:
|
|
6366
|
+
options: allLanguageOptions,
|
|
6323
6367
|
value: languageFilter != null ? languageFilter : [],
|
|
6324
6368
|
onChange: function onChange(selected) {
|
|
6325
6369
|
setLanguageFilter(selected);
|
|
@@ -6330,7 +6374,7 @@ var Events = function Events(_ref) {
|
|
|
6330
6374
|
minHeight: "6",
|
|
6331
6375
|
gap: "2"
|
|
6332
6376
|
}, eventTypeFilter.map(function (eventType) {
|
|
6333
|
-
var event =
|
|
6377
|
+
var event = allEventTypeOptions.find(function (option) {
|
|
6334
6378
|
return option.value === eventType;
|
|
6335
6379
|
});
|
|
6336
6380
|
return React__default.default.createElement(boemly.BoemlyTag, {
|
|
@@ -6341,7 +6385,7 @@ var Events = function Events(_ref) {
|
|
|
6341
6385
|
}
|
|
6342
6386
|
}, event == null ? void 0 : event.label);
|
|
6343
6387
|
}), languageFilter.map(function (singleLanguage) {
|
|
6344
|
-
var language =
|
|
6388
|
+
var language = allLanguageOptions.find(function (option) {
|
|
6345
6389
|
return option.value === singleLanguage;
|
|
6346
6390
|
});
|
|
6347
6391
|
return React__default.default.createElement(boemly.BoemlyTag, {
|
|
@@ -6396,7 +6440,7 @@ var Events = function Events(_ref) {
|
|
|
6396
6440
|
return React__default.default.createElement(boemly.Box, {
|
|
6397
6441
|
key: event.id,
|
|
6398
6442
|
width: "full",
|
|
6399
|
-
height:
|
|
6443
|
+
height: "full"
|
|
6400
6444
|
}, React__default.default.createElement(EventCard, {
|
|
6401
6445
|
event: event.attributes
|
|
6402
6446
|
}));
|
|
@@ -6417,7 +6461,13 @@ var Events = function Events(_ref) {
|
|
|
6417
6461
|
pt: ['8', null, null, '24']
|
|
6418
6462
|
}, React__default.default.createElement(boemly.Wrapper, null, React__default.default.createElement(boemly.DefaultSectionHeader, {
|
|
6419
6463
|
title: slice.pastTitle,
|
|
6420
|
-
text: slice.pastDescription
|
|
6464
|
+
text: slice.pastDescription,
|
|
6465
|
+
titleProps: {
|
|
6466
|
+
maxW: '3xl'
|
|
6467
|
+
},
|
|
6468
|
+
textProps: {
|
|
6469
|
+
maxW: '3xl'
|
|
6470
|
+
}
|
|
6421
6471
|
}), React__default.default.createElement(boemly.Spacer, {
|
|
6422
6472
|
h: "10"
|
|
6423
6473
|
}), (!pastEvents || pastEvents.length === 0) && !isLoadingPast ? React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(boemly.Center, null, formatMessage({
|
|
@@ -6436,7 +6486,7 @@ var Events = function Events(_ref) {
|
|
|
6436
6486
|
}, pastEvents.map(function (event) {
|
|
6437
6487
|
return React__default.default.createElement(boemly.Box, {
|
|
6438
6488
|
key: event.id,
|
|
6439
|
-
height:
|
|
6489
|
+
height: "full",
|
|
6440
6490
|
width: "full"
|
|
6441
6491
|
}, React__default.default.createElement(EventCard, {
|
|
6442
6492
|
event: event.attributes
|