@treely/strapi-slices 7.3.0 → 7.4.0
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 +80 -42
- 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 +80 -42
- 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.test.tsx +8 -2
- package/src/slices/Events/Events.tsx +72 -39
|
@@ -6043,7 +6043,7 @@ var EventCard = function EventCard(_ref) {
|
|
|
6043
6043
|
justifyContent: mobile ? undefined : 'space-between',
|
|
6044
6044
|
flexDir: mobile ? 'column-reverse' : 'row',
|
|
6045
6045
|
gap: mobile ? '4' : '0'
|
|
6046
|
-
}, React.createElement(Flex, {
|
|
6046
|
+
}, event.button && React.createElement(Flex, {
|
|
6047
6047
|
width: mobile ? 'full' : 'auto'
|
|
6048
6048
|
}, React.createElement(StrapiLinkButton, {
|
|
6049
6049
|
key: event.button.id,
|
|
@@ -6054,7 +6054,7 @@ var EventCard = function EventCard(_ref) {
|
|
|
6054
6054
|
size: "10"
|
|
6055
6055
|
}),
|
|
6056
6056
|
width: "full"
|
|
6057
|
-
})), React.createElement(Flex, {
|
|
6057
|
+
})), event.speakers && event.speakers.length > 0 && React.createElement(Flex, {
|
|
6058
6058
|
flexDir: "row",
|
|
6059
6059
|
gap: "2"
|
|
6060
6060
|
}, event.speakers.map(function (speaker) {
|
|
@@ -6137,6 +6137,12 @@ var Events = function Events(_ref) {
|
|
|
6137
6137
|
var _useState3 = useState([Sort.NEWEST_FIRST]),
|
|
6138
6138
|
sort = _useState3[0],
|
|
6139
6139
|
setSort = _useState3[1];
|
|
6140
|
+
var _useState4 = useState([]),
|
|
6141
|
+
allEventTypeOptions = _useState4[0],
|
|
6142
|
+
setAllEventTypeOptions = _useState4[1];
|
|
6143
|
+
var _useState5 = useState([]),
|
|
6144
|
+
allLanguageOptions = _useState5[0],
|
|
6145
|
+
setAllLanguageOptions = _useState5[1];
|
|
6140
6146
|
var now = new Date().toISOString();
|
|
6141
6147
|
var buildEventsUrl = function buildEventsUrl(index, batchSize, startFilter) {
|
|
6142
6148
|
var url = new URL("/treely-events", STRAPI_URI);
|
|
@@ -6150,10 +6156,14 @@ var Events = function Events(_ref) {
|
|
|
6150
6156
|
} else {
|
|
6151
6157
|
url.searchParams.append('sort', 'start:desc');
|
|
6152
6158
|
}
|
|
6153
|
-
if (
|
|
6154
|
-
|
|
6155
|
-
|
|
6156
|
-
|
|
6159
|
+
if (eventTypeFilter.length) {
|
|
6160
|
+
eventTypeFilter.forEach(function (filter, i) {
|
|
6161
|
+
url.searchParams.append("filters[$or][" + i + "][eventTypes][eventType]", filter);
|
|
6162
|
+
});
|
|
6163
|
+
}
|
|
6164
|
+
if (languageFilter.length) {
|
|
6165
|
+
languageFilter.forEach(function (filter, i) {
|
|
6166
|
+
url.searchParams.append("filters[$or][" + (eventTypeFilter.length + i) + "][languages][language]", filter);
|
|
6157
6167
|
});
|
|
6158
6168
|
}
|
|
6159
6169
|
return "/treely-events" + url.search;
|
|
@@ -6199,38 +6209,66 @@ var Events = function Events(_ref) {
|
|
|
6199
6209
|
var pastEvents = useMemo(function () {
|
|
6200
6210
|
return processEvents(pastData);
|
|
6201
6211
|
}, [pastData]);
|
|
6202
|
-
|
|
6203
|
-
|
|
6204
|
-
|
|
6205
|
-
|
|
6206
|
-
|
|
6207
|
-
|
|
6208
|
-
|
|
6209
|
-
|
|
6210
|
-
|
|
6211
|
-
|
|
6212
|
-
|
|
6213
|
-
|
|
6214
|
-
|
|
6215
|
-
|
|
6216
|
-
|
|
6217
|
-
|
|
6218
|
-
|
|
6219
|
-
|
|
6220
|
-
|
|
6221
|
-
|
|
6222
|
-
|
|
6223
|
-
|
|
6224
|
-
|
|
6225
|
-
|
|
6226
|
-
|
|
6227
|
-
|
|
6228
|
-
|
|
6229
|
-
|
|
6230
|
-
|
|
6231
|
-
|
|
6232
|
-
|
|
6233
|
-
|
|
6212
|
+
// Function to fetch all possible options
|
|
6213
|
+
var fetchAllOptions = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
6214
|
+
var url, response, data, events, allEventTypes, allLanguages;
|
|
6215
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
6216
|
+
while (1) switch (_context.prev = _context.next) {
|
|
6217
|
+
case 0:
|
|
6218
|
+
url = new URL("/treely-events", STRAPI_URI);
|
|
6219
|
+
url.searchParams.append('locale', locale);
|
|
6220
|
+
url.searchParams.append('populate', 'deep,6');
|
|
6221
|
+
_context.next = 5;
|
|
6222
|
+
return fetch(STRAPI_URI + "/api/treely-events" + url.search);
|
|
6223
|
+
case 5:
|
|
6224
|
+
response = _context.sent;
|
|
6225
|
+
_context.next = 8;
|
|
6226
|
+
return response.json();
|
|
6227
|
+
case 8:
|
|
6228
|
+
data = _context.sent;
|
|
6229
|
+
events = (data == null ? void 0 : data.data) || []; // Extract all event types
|
|
6230
|
+
allEventTypes = new Set();
|
|
6231
|
+
events.forEach(function (event) {
|
|
6232
|
+
var _event$attributes;
|
|
6233
|
+
if (event != null && (_event$attributes = event.attributes) != null && _event$attributes.eventTypes) {
|
|
6234
|
+
event.attributes.eventTypes.forEach(function (item) {
|
|
6235
|
+
allEventTypes.add(item.eventType);
|
|
6236
|
+
});
|
|
6237
|
+
}
|
|
6238
|
+
});
|
|
6239
|
+
// Extract all languages
|
|
6240
|
+
allLanguages = new Set();
|
|
6241
|
+
events.forEach(function (event) {
|
|
6242
|
+
var _event$attributes2;
|
|
6243
|
+
if (event != null && (_event$attributes2 = event.attributes) != null && _event$attributes2.languages) {
|
|
6244
|
+
event.attributes.languages.forEach(function (item) {
|
|
6245
|
+
allLanguages.add(item.language);
|
|
6246
|
+
});
|
|
6247
|
+
}
|
|
6248
|
+
});
|
|
6249
|
+
// Update state with all options
|
|
6250
|
+
setAllEventTypeOptions(Array.from(allEventTypes).map(function (value) {
|
|
6251
|
+
return {
|
|
6252
|
+
value: value,
|
|
6253
|
+
label: value
|
|
6254
|
+
};
|
|
6255
|
+
}));
|
|
6256
|
+
setAllLanguageOptions(Array.from(allLanguages).map(function (value) {
|
|
6257
|
+
return {
|
|
6258
|
+
value: value,
|
|
6259
|
+
label: value
|
|
6260
|
+
};
|
|
6261
|
+
}));
|
|
6262
|
+
case 16:
|
|
6263
|
+
case "end":
|
|
6264
|
+
return _context.stop();
|
|
6265
|
+
}
|
|
6266
|
+
}, _callee);
|
|
6267
|
+
})), [locale]);
|
|
6268
|
+
// Fetch all options when component mounts
|
|
6269
|
+
useEffect(function () {
|
|
6270
|
+
fetchAllOptions();
|
|
6271
|
+
}, [fetchAllOptions]);
|
|
6234
6272
|
var removeFilter = function removeFilter(filterType, valueToRemove) {
|
|
6235
6273
|
if (filterType === 'eventTypes') {
|
|
6236
6274
|
setEventTypeFilter(function (prev) {
|
|
@@ -6282,7 +6320,7 @@ var Events = function Events(_ref) {
|
|
|
6282
6320
|
searchPlaceholder: formatMessage({
|
|
6283
6321
|
id: 'sections.events.eventsFilter.searchPlaceholder'
|
|
6284
6322
|
}),
|
|
6285
|
-
options:
|
|
6323
|
+
options: allEventTypeOptions,
|
|
6286
6324
|
value: eventTypeFilter != null ? eventTypeFilter : [],
|
|
6287
6325
|
onChange: function onChange(selected) {
|
|
6288
6326
|
setEventTypeFilter(selected);
|
|
@@ -6301,7 +6339,7 @@ var Events = function Events(_ref) {
|
|
|
6301
6339
|
searchPlaceholder: formatMessage({
|
|
6302
6340
|
id: 'sections.events.eventsFilter.searchPlaceholder'
|
|
6303
6341
|
}),
|
|
6304
|
-
options:
|
|
6342
|
+
options: allLanguageOptions,
|
|
6305
6343
|
value: languageFilter != null ? languageFilter : [],
|
|
6306
6344
|
onChange: function onChange(selected) {
|
|
6307
6345
|
setLanguageFilter(selected);
|
|
@@ -6312,7 +6350,7 @@ var Events = function Events(_ref) {
|
|
|
6312
6350
|
minHeight: "6",
|
|
6313
6351
|
gap: "2"
|
|
6314
6352
|
}, eventTypeFilter.map(function (eventType) {
|
|
6315
|
-
var event =
|
|
6353
|
+
var event = allEventTypeOptions.find(function (option) {
|
|
6316
6354
|
return option.value === eventType;
|
|
6317
6355
|
});
|
|
6318
6356
|
return React.createElement(BoemlyTag, {
|
|
@@ -6323,7 +6361,7 @@ var Events = function Events(_ref) {
|
|
|
6323
6361
|
}
|
|
6324
6362
|
}, event == null ? void 0 : event.label);
|
|
6325
6363
|
}), languageFilter.map(function (singleLanguage) {
|
|
6326
|
-
var language =
|
|
6364
|
+
var language = allLanguageOptions.find(function (option) {
|
|
6327
6365
|
return option.value === singleLanguage;
|
|
6328
6366
|
});
|
|
6329
6367
|
return React.createElement(BoemlyTag, {
|