@selfcommunity/react-ui 0.10.2-alpha.2 → 0.10.2-alpha.4

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.
@@ -6,7 +6,6 @@ const material_1 = require("@mui/material");
6
6
  const Icon_1 = tslib_1.__importDefault(require("@mui/material/Icon"));
7
7
  const styles_1 = require("@mui/material/styles");
8
8
  const system_1 = require("@mui/system");
9
- const api_1 = require("@react-google-maps/api");
10
9
  const types_1 = require("@selfcommunity/types");
11
10
  const axios_1 = tslib_1.__importDefault(require("axios"));
12
11
  const classnames_1 = tslib_1.__importDefault(require("classnames"));
@@ -48,18 +47,8 @@ function EventAddress(inProps) {
48
47
  const [inputValue, setInputValue] = (0, react_1.useState)('');
49
48
  const [suggestions, setSuggestions] = (0, react_1.useState)([]);
50
49
  const [timeoutId, setTimeoutId] = (0, react_1.useState)(null);
51
- // PREFERENCES
52
- const { preferences } = (0, react_core_1.useSCPreferences)();
53
- // MEMO
54
- const geocodingApiKey = (0, react_1.useMemo)(() => {
55
- return preferences && react_core_1.SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY in preferences
56
- ? preferences[react_core_1.SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY].value
57
- : null;
58
- }, [preferences]);
59
- const { isLoaded } = (0, api_1.useLoadScript)({
60
- googleMapsApiKey: geocodingApiKey,
61
- libraries: ['places', 'geocoding']
62
- });
50
+ // HOOKS
51
+ const { isLoaded, geocodingApiKey } = (0, react_core_1.useSCGoogleApiLoader)();
63
52
  // HANDLERS
64
53
  const handleChange = (_event, newValue) => {
65
54
  setLocation(newValue);
@@ -15,7 +15,6 @@ const string_1 = require("../../utils/string");
15
15
  const Widget_1 = tslib_1.__importDefault(require("../Widget"));
16
16
  const constants_1 = require("./constants");
17
17
  const Skeleton_1 = tslib_1.__importDefault(require("./Skeleton"));
18
- const react_1 = require("react");
19
18
  const classes = {
20
19
  root: `${constants_1.PREFIX}-root`,
21
20
  title: `${constants_1.PREFIX}-title`,
@@ -67,18 +66,8 @@ function EventLocationWidget(inProps) {
67
66
  const { className, event, eventId } = props, rest = tslib_1.__rest(props, ["className", "event", "eventId"]);
68
67
  // STATE
69
68
  const { scEvent } = (0, react_core_1.useSCFetchEvent)({ id: eventId, event });
70
- // PREFERENCES
71
- const { preferences } = (0, react_core_1.useSCPreferences)();
72
- // MEMO
73
- const geocodingApiKey = (0, react_1.useMemo)(() => {
74
- return preferences && react_core_1.SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY in preferences
75
- ? preferences[react_core_1.SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY].value
76
- : null;
77
- }, [preferences]);
78
- const { isLoaded } = (0, api_1.useLoadScript)({
79
- googleMapsApiKey: geocodingApiKey,
80
- libraries: ['maps']
81
- });
69
+ // HOOKS
70
+ const { isLoaded, geocodingApiKey } = (0, react_core_1.useSCGoogleApiLoader)();
82
71
  const mapOptions = {
83
72
  fullscreenControl: false,
84
73
  mapTypeControl: false,
@@ -213,8 +213,7 @@ function Events(inProps) {
213
213
  * Renders events list
214
214
  */
215
215
  const c = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [showFilters && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ container: true, className: classes.filters, gap: 2 }, { children: filters ? (filters) : !general ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(events.length !== 0 || (events.length === 0 && showMyEvents)) && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(exports.EventsChipRoot, { color: showMyEvents ? 'secondary' : 'default', variant: showMyEvents ? 'filled' : 'outlined', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByCreatedByMe", defaultMessage: "ui.events.filterByCreatedByMe" }), onClick: () => setShowMyEvents(!showMyEvents),
216
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
217
- // @ts-ignore
216
+ // @ts-expect-error this is needed to use showFollowed into SCEvents
218
217
  showFollowed: showMyEvents, deleteIcon: showMyEvents ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(PastEventsFilter_1.default, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsx)(LocationEventsFilter_1.default, { value: location, autoHide: !loading && !events.length, disabled: loading || (!events.length && !location), handleOnChange: handleOnChangeLocation }) }))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 3 }, { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { className: classes.search, size: 'small', fullWidth: true, value: query, label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByName", defaultMessage: "ui.events.filterByName" }), variant: "outlined", onChange: handleOnChangeFilterName, disabled: loading || (!events.length && !query), onKeyUp: (e) => {
219
218
  e.preventDefault();
220
219
  if (e.key === 'Enter') {
@@ -223,8 +222,7 @@ function Events(inProps) {
223
222
  }, InputProps: {
224
223
  endAdornment: ((0, jsx_runtime_1.jsx)(material_1.InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? ((0, jsx_runtime_1.jsx)(material_1.IconButton, Object.assign({ onClick: () => fetchEvents(true), disabled: loading || (!events.length && !query) }, { children: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "search" }) }))) : ((0, jsx_runtime_1.jsx)(material_1.Button, { size: "small", variant: "contained", color: "secondary", onClick: () => fetchEvents(true), endIcon: (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "search" }), disabled: loading || (!events.length && !query) })) })))
225
224
  } }) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsxs)(material_1.FormControl, Object.assign({ fullWidth: true }, { children: [(0, jsx_runtime_1.jsx)(material_1.InputLabel, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), (0, jsx_runtime_1.jsx)(material_1.Select, Object.assign({ disabled: showPastEvents || loading || (!events.length && dateSearch === types_1.SCEventDateFilterType.ANY), size: 'small', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }), value: dateSearch, onChange: handleOnChangeTimeFrame, renderValue: (selected) => options.find((option) => option.value === selected).label }, { children: options.map((option) => ((0, jsx_runtime_1.jsxs)(material_1.MenuItem, Object.assign({ value: option.value }, { children: [(0, jsx_runtime_1.jsx)(material_1.Radio, { checked: dateSearch === option.value, value: option.value, name: "radio-button-select", inputProps: { 'aria-label': option.label } }), option.label] }), option.value))) }))] })) })), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: (0, jsx_runtime_1.jsx)(LocationEventsFilter_1.default, { value: location, disabled: loading || (!events.length && !location), handleOnChange: handleOnChangeLocation }) })), authUserId && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(exports.EventsChipRoot, { color: showFollowed ? 'secondary' : 'default', variant: showFollowed ? 'filled' : 'outlined', label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.filterByFollowedInterest", defaultMessage: "ui.events.filterByFollowedInterest" }), onClick: handleChipClick,
226
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
227
- // @ts-ignore
225
+ // @ts-expect-error this is needed to use showFollowed into SCEvents
228
226
  showFollowed: showFollowed, deleteIcon: showFollowed ? (0, jsx_runtime_1.jsx)(material_1.Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading || (!events.length && !showFollowed) }) }))), (0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true }, { children: (0, jsx_runtime_1.jsx)(PastEventsFilter_1.default, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: dateSearch !== types_1.SCEventDateFilterType.ANY || loading }) }))] })) }))), (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: loading ? ((0, jsx_runtime_1.jsx)(Skeleton_1.default, Object.assign({}, EventsSkeletonComponentProps, { EventSkeletonProps: EventSkeletonComponentProps }))) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: !events.length ? ((0, jsx_runtime_1.jsx)(material_1.Box, Object.assign({ className: classes.noResults }, { children: general ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && react_core_1.UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, {}) : null })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.noEvents.title", defaultMessage: "ui.events.noEvents.title" }) }))] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && react_core_1.UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, {}) : null })), (0, jsx_runtime_1.jsx)(material_1.Typography, Object.assign({ variant: "body1" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.noEvents.title.personal", defaultMessage: "ui.events.noEvents.title.personal" }) }))] })) }))) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ container: true, spacing: { xs: 2 }, className: classes.events }, GridContainerComponentProps, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [events.map((event) => ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.item }, GridItemComponentProps, { children: (0, jsx_runtime_1.jsx)(Event_1.default, Object.assign({ event: event, eventId: event.id }, EventComponentProps)) }), event.id))), authUserId && events.length % 2 !== 0 && ((0, jsx_runtime_1.jsx)(material_1.Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.itemSkeleton }, GridItemComponentProps, { children: (0, jsx_runtime_1.jsx)(Event_1.EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (0, jsx_runtime_1.jsx)(CreateEventButton_1.default, Object.assign({ variant: "outlined", color: "primary", size: "small" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.skeleton.action.add", defaultMessage: "ui.events.skeleton.action.add" }) })) })) }), 'skeleton-item'))] }) })), Boolean(next) && ((0, jsx_runtime_1.jsx)(material_1.Button, Object.assign({ color: "secondary", variant: "text", onClick: handleNext, className: classes.showMore }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.events.button.seeMore", defaultMessage: "ui.events.button.seeMore" }) })))] })) })) })] }));
229
227
  /**
230
228
  * Renders root object (if content availability community option is false and user is anonymous, component is hidden)
@@ -4,16 +4,15 @@ import { Autocomplete, Box, InputAdornment, Tab, Tabs, TextField } from '@mui/ma
4
4
  import Icon from '@mui/material/Icon';
5
5
  import { styled } from '@mui/material/styles';
6
6
  import { useThemeProps } from '@mui/system';
7
- import { useLoadScript } from '@react-google-maps/api';
8
7
  import { SCEventLocationType } from '@selfcommunity/types';
9
8
  import axios from 'axios';
10
9
  import classNames from 'classnames';
11
- import { useEffect, useMemo, useState } from 'react';
10
+ import { useEffect, useState } from 'react';
12
11
  import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
13
12
  import HiddenPlaceholder from '../../shared/HiddenPlaceholder';
14
13
  import UrlTextField from '../../shared/UrlTextField';
15
14
  import { PREFIX } from './constants';
16
- import { SCPreferences, useSCPreferences } from '@selfcommunity/react-core';
15
+ import { useSCGoogleApiLoader } from '@selfcommunity/react-core';
17
16
  const messages = defineMessages({
18
17
  virtualPlaceholder: {
19
18
  id: 'ui.eventForm.address.online.placeholder',
@@ -46,18 +45,8 @@ export default function EventAddress(inProps) {
46
45
  const [inputValue, setInputValue] = useState('');
47
46
  const [suggestions, setSuggestions] = useState([]);
48
47
  const [timeoutId, setTimeoutId] = useState(null);
49
- // PREFERENCES
50
- const { preferences } = useSCPreferences();
51
- // MEMO
52
- const geocodingApiKey = useMemo(() => {
53
- return preferences && SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY in preferences
54
- ? preferences[SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY].value
55
- : null;
56
- }, [preferences]);
57
- const { isLoaded } = useLoadScript({
58
- googleMapsApiKey: geocodingApiKey,
59
- libraries: ['places', 'geocoding']
60
- });
48
+ // HOOKS
49
+ const { isLoaded, geocodingApiKey } = useSCGoogleApiLoader();
61
50
  // HANDLERS
62
51
  const handleChange = (_event, newValue) => {
63
52
  setLocation(newValue);
@@ -3,8 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Box, CardContent, Typography } from '@mui/material';
4
4
  import { styled } from '@mui/material/styles';
5
5
  import { useThemeProps } from '@mui/system';
6
- import { GoogleMap, MarkerF, useLoadScript } from '@react-google-maps/api';
7
- import { SCPreferences, useSCFetchEvent, useSCPreferences } from '@selfcommunity/react-core';
6
+ import { GoogleMap, MarkerF } from '@react-google-maps/api';
7
+ import { useSCGoogleApiLoader, useSCFetchEvent } from '@selfcommunity/react-core';
8
8
  import { SCEventLocationType } from '@selfcommunity/types';
9
9
  import classNames from 'classnames';
10
10
  import { FormattedMessage } from 'react-intl';
@@ -13,7 +13,6 @@ import { formatEventLocationGeolocation } from '../../utils/string';
13
13
  import Widget from '../Widget';
14
14
  import { PREFIX } from './constants';
15
15
  import EventLocationWidgetSkeleton from './Skeleton';
16
- import { useMemo } from 'react';
17
16
  const classes = {
18
17
  root: `${PREFIX}-root`,
19
18
  title: `${PREFIX}-title`,
@@ -65,18 +64,8 @@ export default function EventLocationWidget(inProps) {
65
64
  const { className, event, eventId } = props, rest = __rest(props, ["className", "event", "eventId"]);
66
65
  // STATE
67
66
  const { scEvent } = useSCFetchEvent({ id: eventId, event });
68
- // PREFERENCES
69
- const { preferences } = useSCPreferences();
70
- // MEMO
71
- const geocodingApiKey = useMemo(() => {
72
- return preferences && SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY in preferences
73
- ? preferences[SCPreferences.PROVIDERS_GOOGLE_GEOCODING_API_KEY].value
74
- : null;
75
- }, [preferences]);
76
- const { isLoaded } = useLoadScript({
77
- googleMapsApiKey: geocodingApiKey,
78
- libraries: ['maps']
79
- });
67
+ // HOOKS
68
+ const { isLoaded, geocodingApiKey } = useSCGoogleApiLoader();
80
69
  const mapOptions = {
81
70
  fullscreenControl: false,
82
71
  mapTypeControl: false,
@@ -210,8 +210,7 @@ export default function Events(inProps) {
210
210
  * Renders events list
211
211
  */
212
212
  const c = (_jsxs(_Fragment, { children: [showFilters && (_jsx(Grid, Object.assign({ container: true, className: classes.filters, gap: 2 }, { children: filters ? (filters) : !general ? (_jsxs(_Fragment, { children: [(events.length !== 0 || (events.length === 0 && showMyEvents)) && (_jsx(Grid, Object.assign({ item: true }, { children: _jsx(EventsChipRoot, { color: showMyEvents ? 'secondary' : 'default', variant: showMyEvents ? 'filled' : 'outlined', label: _jsx(FormattedMessage, { id: "ui.events.filterByCreatedByMe", defaultMessage: "ui.events.filterByCreatedByMe" }), onClick: () => setShowMyEvents(!showMyEvents),
213
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
214
- // @ts-ignore
213
+ // @ts-expect-error this is needed to use showFollowed into SCEvents
215
214
  showFollowed: showMyEvents, deleteIcon: showMyEvents ? _jsx(Icon, { children: "close" }) : null, onDelete: showMyEvents ? handleDeleteClick : null, disabled: loading }) }))), _jsx(Grid, Object.assign({ item: true }, { children: _jsx(PastEventsFilter, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: loading }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsx(LocationEventsFilter, { value: location, autoHide: !loading && !events.length, disabled: loading || (!events.length && !location), handleOnChange: handleOnChangeLocation }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(Grid, Object.assign({ item: true, xs: 12, md: 3 }, { children: _jsx(TextField, { className: classes.search, size: 'small', fullWidth: true, value: query, label: _jsx(FormattedMessage, { id: "ui.events.filterByName", defaultMessage: "ui.events.filterByName" }), variant: "outlined", onChange: handleOnChangeFilterName, disabled: loading || (!events.length && !query), onKeyUp: (e) => {
216
215
  e.preventDefault();
217
216
  if (e.key === 'Enter') {
@@ -220,8 +219,7 @@ export default function Events(inProps) {
220
219
  }, InputProps: {
221
220
  endAdornment: (_jsx(InputAdornment, Object.assign({ position: "end" }, { children: isMobile ? (_jsx(IconButton, Object.assign({ onClick: () => fetchEvents(true), disabled: loading || (!events.length && !query) }, { children: _jsx(Icon, { children: "search" }) }))) : (_jsx(Button, { size: "small", variant: "contained", color: "secondary", onClick: () => fetchEvents(true), endIcon: _jsx(Icon, { children: "search" }), disabled: loading || (!events.length && !query) })) })))
222
221
  } }) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsxs(FormControl, Object.assign({ fullWidth: true }, { children: [_jsx(InputLabel, { children: _jsx(FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }) }), _jsx(Select, Object.assign({ disabled: showPastEvents || loading || (!events.length && dateSearch === SCEventDateFilterType.ANY), size: 'small', label: _jsx(FormattedMessage, { id: "ui.events.filterByDate", defaultMessage: "ui.events.filterByDate" }), value: dateSearch, onChange: handleOnChangeTimeFrame, renderValue: (selected) => options.find((option) => option.value === selected).label }, { children: options.map((option) => (_jsxs(MenuItem, Object.assign({ value: option.value }, { children: [_jsx(Radio, { checked: dateSearch === option.value, value: option.value, name: "radio-button-select", inputProps: { 'aria-label': option.label } }), option.label] }), option.value))) }))] })) })), _jsx(Grid, Object.assign({ item: true, xs: 12, md: 2 }, { children: _jsx(LocationEventsFilter, { value: location, disabled: loading || (!events.length && !location), handleOnChange: handleOnChangeLocation }) })), authUserId && (_jsx(Grid, Object.assign({ item: true }, { children: _jsx(EventsChipRoot, { color: showFollowed ? 'secondary' : 'default', variant: showFollowed ? 'filled' : 'outlined', label: _jsx(FormattedMessage, { id: "ui.events.filterByFollowedInterest", defaultMessage: "ui.events.filterByFollowedInterest" }), onClick: handleChipClick,
223
- // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
224
- // @ts-ignore
222
+ // @ts-expect-error this is needed to use showFollowed into SCEvents
225
223
  showFollowed: showFollowed, deleteIcon: showFollowed ? _jsx(Icon, { children: "close" }) : null, onDelete: showFollowed ? handleDeleteClick : null, disabled: loading || (!events.length && !showFollowed) }) }))), _jsx(Grid, Object.assign({ item: true }, { children: _jsx(PastEventsFilter, { showPastEvents: showPastEvents, handleClick: handleChipPastClick, handleDeleteClick: handleDeletePastClick, disabled: dateSearch !== SCEventDateFilterType.ANY || loading }) }))] })) }))), _jsx(_Fragment, { children: loading ? (_jsx(Skeleton, Object.assign({}, EventsSkeletonComponentProps, { EventSkeletonProps: EventSkeletonComponentProps }))) : (_jsx(_Fragment, { children: !events.length ? (_jsx(Box, Object.assign({ className: classes.noResults }, { children: general ? (_jsxs(_Fragment, { children: [_jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? _jsx(CreateEventButton, {}) : null })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.events.noEvents.title", defaultMessage: "ui.events.noEvents.title" }) }))] })) : (_jsxs(_Fragment, { children: [_jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: (onlyStaffEnabled && UserUtils.isStaff(scUserContext.user)) || !onlyStaffEnabled ? _jsx(CreateEventButton, {}) : null })), _jsx(Typography, Object.assign({ variant: "body1" }, { children: _jsx(FormattedMessage, { id: "ui.events.noEvents.title.personal", defaultMessage: "ui.events.noEvents.title.personal" }) }))] })) }))) : (_jsxs(_Fragment, { children: [_jsx(Grid, Object.assign({ container: true, spacing: { xs: 2 }, className: classes.events }, GridContainerComponentProps, { children: _jsxs(_Fragment, { children: [events.map((event) => (_jsx(Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.item }, GridItemComponentProps, { children: _jsx(Event, Object.assign({ event: event, eventId: event.id }, EventComponentProps)) }), event.id))), authUserId && events.length % 2 !== 0 && (_jsx(Grid, Object.assign({ item: true, xs: 12, sm: 12, md: 6, className: classes.itemSkeleton }, GridItemComponentProps, { children: _jsx(EventSkeleton, Object.assign({}, EventSkeletonComponentProps, { skeletonsAnimation: false, actions: _jsx(CreateEventButton, Object.assign({ variant: "outlined", color: "primary", size: "small" }, { children: _jsx(FormattedMessage, { id: "ui.events.skeleton.action.add", defaultMessage: "ui.events.skeleton.action.add" }) })) })) }), 'skeleton-item'))] }) })), Boolean(next) && (_jsx(Button, Object.assign({ color: "secondary", variant: "text", onClick: handleNext, className: classes.showMore }, { children: _jsx(FormattedMessage, { id: "ui.events.button.seeMore", defaultMessage: "ui.events.button.seeMore" }) })))] })) })) })] }));
226
224
  /**
227
225
  * Renders root object (if content availability community option is false and user is anonymous, component is hidden)