@selfcommunity/react-ui 0.7.50-events.56 → 0.7.50-events.58
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/lib/cjs/components/Event/Event.d.ts +2 -2
- package/lib/cjs/components/Event/Event.js +11 -11
- package/lib/cjs/components/EventSubscribeButton/EventSubscribeButton.js +6 -4
- package/lib/cjs/components/Events/Events.js +1 -1
- package/lib/cjs/components/Events/PastEventsFilter.d.ts +2 -1
- package/lib/cjs/components/Events/PastEventsFilter.js +4 -3
- package/lib/cjs/components/SuggestedEventsWidget/Arrow.d.ts +8 -0
- package/lib/cjs/components/SuggestedEventsWidget/Arrow.js +30 -0
- package/lib/cjs/components/SuggestedEventsWidget/Skeleton.js +4 -4
- package/lib/cjs/components/SuggestedEventsWidget/SuggestedEventsWidget.d.ts +0 -1
- package/lib/cjs/components/SuggestedEventsWidget/SuggestedEventsWidget.js +16 -6
- package/lib/cjs/components/SuggestedEventsWidget/index.d.ts +2 -1
- package/lib/cjs/components/SuggestedEventsWidget/index.js +3 -1
- package/lib/esm/components/Event/Event.d.ts +2 -2
- package/lib/esm/components/Event/Event.js +11 -11
- package/lib/esm/components/EventSubscribeButton/EventSubscribeButton.js +6 -4
- package/lib/esm/components/Events/Events.js +1 -1
- package/lib/esm/components/Events/PastEventsFilter.d.ts +2 -1
- package/lib/esm/components/Events/PastEventsFilter.js +4 -3
- package/lib/esm/components/SuggestedEventsWidget/Arrow.d.ts +8 -0
- package/lib/esm/components/SuggestedEventsWidget/Arrow.js +27 -0
- package/lib/esm/components/SuggestedEventsWidget/Skeleton.js +4 -4
- package/lib/esm/components/SuggestedEventsWidget/SuggestedEventsWidget.d.ts +0 -1
- package/lib/esm/components/SuggestedEventsWidget/SuggestedEventsWidget.js +16 -6
- package/lib/esm/components/SuggestedEventsWidget/index.d.ts +2 -1
- package/lib/esm/components/SuggestedEventsWidget/index.js +2 -1
- package/lib/umd/{224.js → 401.js} +2 -2
- package/lib/umd/react-ui.js +1 -1
- package/package.json +7 -7
- /package/lib/umd/{224.js.LICENSE.txt → 401.js.LICENSE.txt} +0 -0
|
@@ -7,21 +7,25 @@ import { Link, SCRoutes, useSCRouting } from '@selfcommunity/react-core';
|
|
|
7
7
|
import { Logger } from '@selfcommunity/utils';
|
|
8
8
|
import { useCallback, useEffect, useState } from 'react';
|
|
9
9
|
import { FormattedMessage } from 'react-intl';
|
|
10
|
-
import 'swiper/
|
|
10
|
+
import { Navigation } from 'swiper/modules';
|
|
11
11
|
import { Swiper, SwiperSlide } from 'swiper/react';
|
|
12
12
|
import { SCOPE_SC_UI } from '../../constants/Errors';
|
|
13
13
|
import { DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET } from '../../constants/Pagination';
|
|
14
14
|
import HiddenPlaceholder from '../../shared/HiddenPlaceholder';
|
|
15
|
+
import { SCEventTemplateType } from '../../types/event';
|
|
16
|
+
import Event from '../Event';
|
|
15
17
|
import Widget from '../Widget';
|
|
18
|
+
import Arrow from './Arrow';
|
|
16
19
|
import { PREFIX } from './constants';
|
|
17
20
|
import Skeleton from './Skeleton';
|
|
18
|
-
import { SCEventTemplateType } from '../../types/event';
|
|
19
|
-
import Event from '../Event';
|
|
20
21
|
const classes = {
|
|
21
22
|
root: `${PREFIX}-root`,
|
|
22
23
|
content: `${PREFIX}-content`,
|
|
23
24
|
title: `${PREFIX}-title`,
|
|
24
25
|
swiper: `${PREFIX}-swiper`,
|
|
26
|
+
swiperSlide: `${PREFIX}-swiper-slide`,
|
|
27
|
+
swiperPrevArrow: `${PREFIX}-swiper-prev-arrow`,
|
|
28
|
+
swiperNextArrow: `${PREFIX}-swiper-next-arrow`,
|
|
25
29
|
event: `${PREFIX}-event`,
|
|
26
30
|
actions: `${PREFIX}-actions`,
|
|
27
31
|
actionButton: `${PREFIX}-action-button`
|
|
@@ -41,6 +45,8 @@ export default function SuggestedEventsWidget(inProps) {
|
|
|
41
45
|
// STATE
|
|
42
46
|
const [eventsData, setEventsData] = useState(null);
|
|
43
47
|
const [loading, setLoading] = useState(true);
|
|
48
|
+
const [showSkeleton, setShowSkeleton] = useState(false);
|
|
49
|
+
const [currentItem, setCurrentItem] = useState(0);
|
|
44
50
|
// CONTEXT
|
|
45
51
|
const scRoutingContext = useSCRouting();
|
|
46
52
|
useEffect(() => {
|
|
@@ -54,13 +60,17 @@ export default function SuggestedEventsWidget(inProps) {
|
|
|
54
60
|
});
|
|
55
61
|
}, []);
|
|
56
62
|
const handleReachEnd = useCallback(() => {
|
|
57
|
-
if (eventsData.count > eventsData.results.length) {
|
|
63
|
+
if (eventsData.count > eventsData.results.length && eventsData.next) {
|
|
64
|
+
setShowSkeleton(true);
|
|
58
65
|
http
|
|
59
66
|
.request({
|
|
60
67
|
url: eventsData.next,
|
|
61
68
|
method: Endpoints.GetEventSuggestedUsers.method
|
|
62
69
|
})
|
|
63
|
-
.then((res) =>
|
|
70
|
+
.then((res) => {
|
|
71
|
+
setEventsData(res.data);
|
|
72
|
+
setShowSkeleton(false);
|
|
73
|
+
})
|
|
64
74
|
.catch((error) => {
|
|
65
75
|
Logger.error(SCOPE_SC_UI, error);
|
|
66
76
|
});
|
|
@@ -73,5 +83,5 @@ export default function SuggestedEventsWidget(inProps) {
|
|
|
73
83
|
if (!eventsData) {
|
|
74
84
|
return _jsx(HiddenPlaceholder, {});
|
|
75
85
|
}
|
|
76
|
-
return (_jsxs(Root, Object.assign({ className: classes.root }, rest, { children: [_jsxs(CardContent, Object.assign({ className: classes.content }, { children: [_jsx(Typography, Object.assign({ variant: "h5", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.suggestedEventsWidget.title", defaultMessage: "ui.suggestedEventsWidget.title" }) })),
|
|
86
|
+
return (_jsxs(Root, Object.assign({ className: classes.root }, rest, { children: [_jsxs(CardContent, Object.assign({ className: classes.content }, { children: [_jsx(Typography, Object.assign({ variant: "h5", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.suggestedEventsWidget.title", defaultMessage: "ui.suggestedEventsWidget.title" }) })), _jsxs(Swiper, Object.assign({ spaceBetween: 8, slidesPerView: "auto", grabCursor: true, modules: [Navigation], onReachEnd: handleReachEnd, onSlideChange: (swiper) => setCurrentItem(swiper.snapIndex), className: classes.swiper }, { children: [(showSkeleton ? [...eventsData.results, undefined] : eventsData.results).map((event, i) => (_jsx(SwiperSlide, Object.assign({ className: classes.swiperSlide }, { children: _jsx(Event, { event: event, template: SCEventTemplateType.PREVIEW, actions: _jsx(_Fragment, {}), variant: "outlined", className: classes.event }) }), i))), _jsx(Arrow, { className: classes.swiperPrevArrow, type: "prev", currentItem: currentItem, setCurrentItem: setCurrentItem }), _jsx(Arrow, { className: classes.swiperNextArrow, type: "next", currentItem: currentItem, setCurrentItem: setCurrentItem })] }))] })), _jsx(CardActions, Object.assign({ className: classes.actions }, { children: _jsx(Button, Object.assign({ component: Link, to: scRoutingContext.url(SCRoutes.EVENTS_SUGGESTED_ROUTE_NAME, {}), className: classes.actionButton }, { children: _jsx(Typography, Object.assign({ variant: "caption" }, { children: _jsx(FormattedMessage, { id: "ui.suggestedEventsWidget.showAll", defaultMessage: "ui.suggestedEventsWidget.showAll" }) })) })) }))] })));
|
|
77
87
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import Arrow, { ArrowProps } from './Arrow';
|
|
1
2
|
import SuggestedEventsWidgetSkeleton from './Skeleton';
|
|
2
3
|
import SuggestedEventsWidget, { SuggestedEventsWidgetProps } from './SuggestedEventsWidget';
|
|
3
4
|
export default SuggestedEventsWidget;
|
|
4
|
-
export { SuggestedEventsWidgetSkeleton, type SuggestedEventsWidgetProps };
|
|
5
|
+
export { Arrow, SuggestedEventsWidgetSkeleton, type ArrowProps, type SuggestedEventsWidgetProps };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import Arrow from './Arrow';
|
|
1
2
|
import SuggestedEventsWidgetSkeleton from './Skeleton';
|
|
2
3
|
import SuggestedEventsWidget from './SuggestedEventsWidget';
|
|
3
4
|
export default SuggestedEventsWidget;
|
|
4
|
-
export { SuggestedEventsWidgetSkeleton };
|
|
5
|
+
export { Arrow, SuggestedEventsWidgetSkeleton };
|