@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.
Files changed (30) hide show
  1. package/lib/cjs/components/Event/Event.d.ts +2 -2
  2. package/lib/cjs/components/Event/Event.js +11 -11
  3. package/lib/cjs/components/EventSubscribeButton/EventSubscribeButton.js +6 -4
  4. package/lib/cjs/components/Events/Events.js +1 -1
  5. package/lib/cjs/components/Events/PastEventsFilter.d.ts +2 -1
  6. package/lib/cjs/components/Events/PastEventsFilter.js +4 -3
  7. package/lib/cjs/components/SuggestedEventsWidget/Arrow.d.ts +8 -0
  8. package/lib/cjs/components/SuggestedEventsWidget/Arrow.js +30 -0
  9. package/lib/cjs/components/SuggestedEventsWidget/Skeleton.js +4 -4
  10. package/lib/cjs/components/SuggestedEventsWidget/SuggestedEventsWidget.d.ts +0 -1
  11. package/lib/cjs/components/SuggestedEventsWidget/SuggestedEventsWidget.js +16 -6
  12. package/lib/cjs/components/SuggestedEventsWidget/index.d.ts +2 -1
  13. package/lib/cjs/components/SuggestedEventsWidget/index.js +3 -1
  14. package/lib/esm/components/Event/Event.d.ts +2 -2
  15. package/lib/esm/components/Event/Event.js +11 -11
  16. package/lib/esm/components/EventSubscribeButton/EventSubscribeButton.js +6 -4
  17. package/lib/esm/components/Events/Events.js +1 -1
  18. package/lib/esm/components/Events/PastEventsFilter.d.ts +2 -1
  19. package/lib/esm/components/Events/PastEventsFilter.js +4 -3
  20. package/lib/esm/components/SuggestedEventsWidget/Arrow.d.ts +8 -0
  21. package/lib/esm/components/SuggestedEventsWidget/Arrow.js +27 -0
  22. package/lib/esm/components/SuggestedEventsWidget/Skeleton.js +4 -4
  23. package/lib/esm/components/SuggestedEventsWidget/SuggestedEventsWidget.d.ts +0 -1
  24. package/lib/esm/components/SuggestedEventsWidget/SuggestedEventsWidget.js +16 -6
  25. package/lib/esm/components/SuggestedEventsWidget/index.d.ts +2 -1
  26. package/lib/esm/components/SuggestedEventsWidget/index.js +2 -1
  27. package/lib/umd/{224.js → 401.js} +2 -2
  28. package/lib/umd/react-ui.js +1 -1
  29. package/package.json +7 -7
  30. /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/css';
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) => console.log('*** res ***', 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" }) })), _jsx(Swiper, Object.assign({ spaceBetween: 8, slidesPerView: "auto", onReachEnd: handleReachEnd }, { children: eventsData === null || eventsData === void 0 ? void 0 : eventsData.results.map((event, i) => (_jsx(SwiperSlide, Object.assign({ className: classes.swiper }, { children: _jsx(Event, { event: event, template: SCEventTemplateType.PREVIEW, actions: _jsx(_Fragment, {}), variant: "outlined", className: classes.event }) }), i))) }))] })), _jsx(CardActions, Object.assign({ className: classes.actions }, { children: _jsx(Button, Object.assign({ component: Link, to: scRoutingContext.url(SCRoutes.EVENT_ROUTE_NAME, {}), className: classes.actionButton }, { children: _jsx(Typography, Object.assign({ variant: "caption" }, { children: _jsx(FormattedMessage, { id: "ui.suggestedEventsWidget.showAll", defaultMessage: "ui.suggestedEventsWidget.showAll" }) })) })) }))] })));
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 };