@selfcommunity/react-ui 0.8.0-alpha.3 → 0.8.0-alpha.31

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 (107) hide show
  1. package/lib/cjs/components/BottomNavigation/BottomNavigation.js +11 -2
  2. package/lib/cjs/components/Composer/Composer.js +10 -2
  3. package/lib/cjs/components/Composer/Layer/AudienceLayer/AudienceLayer.js +12 -3
  4. package/lib/cjs/components/CreateEventButton/CreateEventButton.js +5 -1
  5. package/lib/cjs/components/CreateEventWidget/CreateEventWidget.js +5 -1
  6. package/lib/cjs/components/EventForm/EventForm.d.ts +1 -1
  7. package/lib/cjs/components/EventForm/EventForm.js +72 -54
  8. package/lib/cjs/components/EventForm/constants.d.ts +4 -0
  9. package/lib/cjs/components/EventForm/constants.js +5 -1
  10. package/lib/cjs/components/EventForm/types.d.ts +1 -2
  11. package/lib/cjs/components/EventForm/utils.d.ts +4 -0
  12. package/lib/cjs/components/EventForm/utils.js +28 -0
  13. package/lib/cjs/components/EventInfoWidget/EventInfoWidget.js +24 -1
  14. package/lib/cjs/components/Events/Events.js +17 -7
  15. package/lib/cjs/components/Events/LocationEventsFilter.d.ts +14 -0
  16. package/lib/cjs/components/Events/LocationEventsFilter.js +45 -0
  17. package/lib/cjs/components/Events/PastEventsFilter.js +1 -2
  18. package/lib/cjs/components/Feed/Feed.js +12 -3
  19. package/lib/cjs/components/GroupActionsMenu/index.d.ts +57 -0
  20. package/lib/cjs/components/GroupActionsMenu/index.js +157 -0
  21. package/lib/cjs/components/GroupHeader/GroupHeader.d.ts +6 -0
  22. package/lib/cjs/components/GroupHeader/GroupHeader.js +8 -4
  23. package/lib/cjs/components/Groups/Groups.js +26 -0
  24. package/lib/cjs/components/MyEventsWidget/MyEventsWidget.js +6 -2
  25. package/lib/cjs/components/NavigationMenuIconButton/NavigationMenuDrawer.d.ts +35 -0
  26. package/lib/cjs/components/NavigationMenuIconButton/NavigationMenuDrawer.js +68 -0
  27. package/lib/cjs/components/NavigationMenuIconButton/NavigationMenuIconButton.d.ts +9 -20
  28. package/lib/cjs/components/NavigationMenuIconButton/NavigationMenuIconButton.js +8 -27
  29. package/lib/cjs/components/NavigationMenuIconButton/index.d.ts +2 -1
  30. package/lib/cjs/components/NavigationMenuIconButton/index.js +3 -1
  31. package/lib/cjs/components/NavigationToolbar/NavigationToolbar.d.ts +5 -0
  32. package/lib/cjs/components/NavigationToolbar/NavigationToolbar.js +14 -5
  33. package/lib/cjs/components/NavigationToolbarMobile/NavigationToolbarMobile.js +11 -2
  34. package/lib/cjs/components/Notification/Event/Event.js +4 -0
  35. package/lib/cjs/components/OnBoardingWidget/OnBoardingWidget.d.ts +10 -1
  36. package/lib/cjs/components/OnBoardingWidget/OnBoardingWidget.js +69 -26
  37. package/lib/cjs/components/OnBoardingWidget/Steps/Appearance/Appearance.js +8 -4
  38. package/lib/cjs/components/OnBoardingWidget/Steps/Invite/Invite.js +56 -12
  39. package/lib/cjs/components/PlatformWidget/constants.d.ts +0 -4
  40. package/lib/cjs/components/PlatformWidget/constants.js +1 -5
  41. package/lib/cjs/components/UserSubscribedGroupsWidget/UserSubscribedGroupsWidget.js +7 -2
  42. package/lib/cjs/constants/GroupActionsMenu.d.ts +5 -0
  43. package/lib/cjs/constants/GroupActionsMenu.js +8 -0
  44. package/lib/cjs/constants/PubSub.d.ts +16 -1
  45. package/lib/cjs/constants/PubSub.js +11 -1
  46. package/lib/cjs/index.d.ts +4 -2
  47. package/lib/cjs/index.js +12 -5
  48. package/lib/cjs/shared/ContributionActionsMenu/index.js +6 -6
  49. package/lib/cjs/shared/InfiniteScroll/index.js +3 -3
  50. package/lib/cjs/shared/Media/Link/DisplayComponent.js +21 -5
  51. package/lib/cjs/utils/formatRelativeTime.js +2 -2
  52. package/lib/esm/components/BottomNavigation/BottomNavigation.js +11 -2
  53. package/lib/esm/components/Composer/Composer.js +10 -2
  54. package/lib/esm/components/Composer/Layer/AudienceLayer/AudienceLayer.js +13 -4
  55. package/lib/esm/components/CreateEventButton/CreateEventButton.js +5 -1
  56. package/lib/esm/components/CreateEventWidget/CreateEventWidget.js +5 -1
  57. package/lib/esm/components/EventForm/EventForm.d.ts +1 -1
  58. package/lib/esm/components/EventForm/EventForm.js +74 -56
  59. package/lib/esm/components/EventForm/constants.d.ts +4 -0
  60. package/lib/esm/components/EventForm/constants.js +4 -0
  61. package/lib/esm/components/EventForm/types.d.ts +1 -2
  62. package/lib/esm/components/EventForm/utils.d.ts +4 -0
  63. package/lib/esm/components/EventForm/utils.js +21 -0
  64. package/lib/esm/components/EventInfoWidget/EventInfoWidget.js +25 -2
  65. package/lib/esm/components/Events/Events.js +18 -8
  66. package/lib/esm/components/Events/LocationEventsFilter.d.ts +14 -0
  67. package/lib/esm/components/Events/LocationEventsFilter.js +41 -0
  68. package/lib/esm/components/Events/PastEventsFilter.js +1 -2
  69. package/lib/esm/components/Feed/Feed.js +14 -5
  70. package/lib/esm/components/GroupActionsMenu/index.d.ts +57 -0
  71. package/lib/esm/components/GroupActionsMenu/index.js +154 -0
  72. package/lib/esm/components/GroupHeader/GroupHeader.d.ts +6 -0
  73. package/lib/esm/components/GroupHeader/GroupHeader.js +9 -5
  74. package/lib/esm/components/Groups/Groups.js +27 -1
  75. package/lib/esm/components/MyEventsWidget/MyEventsWidget.js +7 -3
  76. package/lib/esm/components/NavigationMenuIconButton/NavigationMenuDrawer.d.ts +35 -0
  77. package/lib/esm/components/NavigationMenuIconButton/NavigationMenuDrawer.js +65 -0
  78. package/lib/esm/components/NavigationMenuIconButton/NavigationMenuIconButton.d.ts +9 -20
  79. package/lib/esm/components/NavigationMenuIconButton/NavigationMenuIconButton.js +11 -30
  80. package/lib/esm/components/NavigationMenuIconButton/index.d.ts +2 -1
  81. package/lib/esm/components/NavigationMenuIconButton/index.js +2 -1
  82. package/lib/esm/components/NavigationToolbar/NavigationToolbar.d.ts +5 -0
  83. package/lib/esm/components/NavigationToolbar/NavigationToolbar.js +14 -5
  84. package/lib/esm/components/NavigationToolbarMobile/NavigationToolbarMobile.js +11 -2
  85. package/lib/esm/components/Notification/Event/Event.js +4 -0
  86. package/lib/esm/components/OnBoardingWidget/OnBoardingWidget.d.ts +10 -1
  87. package/lib/esm/components/OnBoardingWidget/OnBoardingWidget.js +71 -28
  88. package/lib/esm/components/OnBoardingWidget/Steps/Appearance/Appearance.js +9 -5
  89. package/lib/esm/components/OnBoardingWidget/Steps/Invite/Invite.js +59 -14
  90. package/lib/esm/components/PlatformWidget/constants.d.ts +0 -4
  91. package/lib/esm/components/PlatformWidget/constants.js +0 -4
  92. package/lib/esm/components/UserSubscribedGroupsWidget/UserSubscribedGroupsWidget.js +8 -3
  93. package/lib/esm/constants/GroupActionsMenu.d.ts +5 -0
  94. package/lib/esm/constants/GroupActionsMenu.js +5 -0
  95. package/lib/esm/constants/PubSub.d.ts +16 -1
  96. package/lib/esm/constants/PubSub.js +10 -0
  97. package/lib/esm/index.d.ts +4 -2
  98. package/lib/esm/index.js +5 -3
  99. package/lib/esm/shared/ContributionActionsMenu/index.js +6 -6
  100. package/lib/esm/shared/InfiniteScroll/index.js +3 -3
  101. package/lib/esm/shared/Media/Link/DisplayComponent.js +21 -5
  102. package/lib/esm/utils/formatRelativeTime.js +2 -2
  103. package/lib/umd/148.js +2 -0
  104. package/lib/umd/react-ui.js +1 -1
  105. package/package.json +7 -7
  106. package/lib/umd/99.js +0 -2
  107. /package/lib/umd/{99.js.LICENSE.txt → 148.js.LICENSE.txt} +0 -0
@@ -1,5 +1,6 @@
1
+ import { __awaiter } from "tslib";
1
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useContext } from 'react';
3
+ import { useContext, useMemo, useState } from 'react';
3
4
  import { styled } from '@mui/material/styles';
4
5
  import Box from '@mui/material/Box';
5
6
  import { useThemeProps } from '@mui/system';
@@ -7,9 +8,12 @@ import classNames from 'classnames';
7
8
  import { PREFIX } from '../../constants';
8
9
  import { Button, Icon, IconButton, Typography } from '@mui/material';
9
10
  import { FormattedMessage } from 'react-intl';
10
- import { Link, SCPreferences, SCPreferencesContext, useSCContext } from '@selfcommunity/react-core';
11
+ import { SCPreferences, SCPreferencesContext } from '@selfcommunity/react-core';
11
12
  import { FACEBOOK_SHARE, LINKEDIN_SHARE, X_SHARE } from '../../../../constants/SocialShare';
12
- import { MAKE_MARKETING_PROD, MAKE_MARKETING_STAGE } from '../../../PlatformWidget/constants';
13
+ import { Endpoints, http, PreferenceService } from '@selfcommunity/api-services';
14
+ import { Logger } from '@selfcommunity/utils';
15
+ import { SCOPE_SC_UI } from '../../../../constants/Errors';
16
+ import { SCPreferenceName } from '@selfcommunity/types';
13
17
  const classes = {
14
18
  root: `${PREFIX}-invite-root`,
15
19
  title: `${PREFIX}-invite-title`,
@@ -23,6 +27,7 @@ const Root = styled(Box, {
23
27
  name: PREFIX,
24
28
  slot: 'InviteRoot'
25
29
  })(() => ({}));
30
+ const META_ROBOTS_ENABLE_DEFAULT = 'index,follow';
26
31
  export default function Invite(inProps) {
27
32
  // PROPS
28
33
  const props = useThemeProps({
@@ -30,21 +35,61 @@ export default function Invite(inProps) {
30
35
  name: PREFIX
31
36
  });
32
37
  const { className, onCompleteAction = null } = props;
38
+ // STATUS
39
+ const [isMetaRobotsUpdating, setMetaRobotsUpdating] = useState(false);
33
40
  // CONTEXT
34
- const scContext = useSCContext();
35
41
  const scPreferencesContext = useContext(SCPreferencesContext);
36
- const facebookShareEnabled = SCPreferences.ADDONS_SHARE_POST_ON_FACEBOOK_ENABLED in scPreferencesContext.preferences &&
37
- scPreferencesContext.preferences[SCPreferences.ADDONS_SHARE_POST_ON_FACEBOOK_ENABLED].value;
38
- const xShareEnabled = SCPreferences.ADDONS_SHARE_POST_ON_TWITTER_ENABLED in scPreferencesContext.preferences &&
39
- scPreferencesContext.preferences[SCPreferences.ADDONS_SHARE_POST_ON_TWITTER_ENABLED].value;
40
- const linkedinShareEnabled = SCPreferences.ADDONS_SHARE_POST_ON_LINKEDIN_ENABLED in scPreferencesContext.preferences &&
41
- scPreferencesContext.preferences[SCPreferences.ADDONS_SHARE_POST_ON_LINKEDIN_ENABLED].value;
42
- const url = scContext.settings.portal;
43
- const isStage = scContext.settings.portal.includes('stage');
42
+ const metaRobots = useMemo(() => {
43
+ return scPreferencesContext.preferences && SCPreferences.WEBMASTER_META_ROBOTS in scPreferencesContext.preferences
44
+ ? scPreferencesContext.preferences[SCPreferences.WEBMASTER_META_ROBOTS].value
45
+ : null;
46
+ }, [scPreferencesContext.preferences]);
47
+ const url = useMemo(() => scPreferencesContext.preferences &&
48
+ SCPreferences.CONFIGURATIONS_GROUPS_ENABLED in scPreferencesContext.preferences &&
49
+ scPreferencesContext.preferences[SCPreferences.CONFIGURATIONS_APP_URL].value, [scPreferencesContext.preferences]);
44
50
  // HANDLERS
45
- const handleShare = (shareUrl, shareType) => {
51
+ const handleShare = (shareUrl, shareType) => __awaiter(this, void 0, void 0, function* () {
52
+ if (metaRobots.toLowerCase().replace(/\s+/g, '') !== META_ROBOTS_ENABLE_DEFAULT) {
53
+ yield enableSeo();
54
+ }
46
55
  window.open(shareUrl, `${shareType}-share-dialog`, 'width=626,height=436');
47
56
  onCompleteAction();
57
+ });
58
+ const enableSeo = () => __awaiter(this, void 0, void 0, function* () {
59
+ try {
60
+ setMetaRobotsUpdating(true);
61
+ yield PreferenceService.updatePreferences({ [SCPreferenceName.META_ROBOTS]: 'index, follow' });
62
+ }
63
+ catch (e) {
64
+ Logger.error(SCOPE_SC_UI, e);
65
+ }
66
+ finally {
67
+ setMetaRobotsUpdating(false);
68
+ }
69
+ });
70
+ /**
71
+ * Fetches platform url
72
+ */
73
+ function fetchPlatform(query) {
74
+ http
75
+ .request({
76
+ url: Endpoints.Platform.url(),
77
+ method: Endpoints.Platform.method,
78
+ params: {
79
+ next: query
80
+ }
81
+ })
82
+ .then((res) => {
83
+ const platformUrl = res.data.platform_url;
84
+ window.open(platformUrl, '_blank').focus();
85
+ })
86
+ .catch((error) => {
87
+ console.log(error);
88
+ });
89
+ }
90
+ const handleCompleteAction = () => {
91
+ onCompleteAction();
92
+ fetchPlatform('/marketing/invitation');
48
93
  };
49
- return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.invite", defaultMessage: "ui.onBoardingWidget.invite" }) })), _jsxs(Box, Object.assign({ className: classes.social }, { children: [_jsx(Typography, Object.assign({ className: classes.title, variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.social.title", defaultMessage: "ui.onBoardingWidget.step.invite.social.title" }) })), _jsx(Typography, Object.assign({ variant: "subtitle1" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.social.subtitle", defaultMessage: "ui.onBoardingWidget.step.invite.social.subtitle" }) })), _jsxs(Box, Object.assign({ className: classes.iconContainer }, { children: [facebookShareEnabled && (_jsx(IconButton, Object.assign({ onClick: () => handleShare(FACEBOOK_SHARE + url, 'facebook') }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "facebook" })) }))), xShareEnabled && (_jsx(IconButton, Object.assign({ onClick: () => handleShare(X_SHARE + url, 'x') }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "twitter" })) }))), linkedinShareEnabled && (_jsx(IconButton, Object.assign({ onClick: () => handleShare(LINKEDIN_SHARE + url, 'linkedin') }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "linkedin" })) })))] }))] })), _jsxs(Box, Object.assign({ className: classes.email }, { children: [_jsx(Typography, Object.assign({ className: classes.title, variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.email.title", defaultMessage: "ui.onBoardingWidget.step.invite.email.title" }) })), _jsx(Typography, Object.assign({ variant: "subtitle1" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.email.subtitle", defaultMessage: "ui.onBoardingWidget.step.invite.email.subtitle" }) }))] })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: _jsx(Button, Object.assign({ variant: "outlined", size: "small", component: Link, to: isStage ? MAKE_MARKETING_STAGE : MAKE_MARKETING_PROD, target: "_blank", onClick: onCompleteAction }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.invite.button", id: "ui.onBoardingWidget.step.invite.button" }) })) }))] })));
94
+ return (_jsxs(Root, Object.assign({ className: classNames(classes.root, className) }, { children: [_jsx(Typography, Object.assign({ variant: "h4", className: classes.title }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.invite", defaultMessage: "ui.onBoardingWidget.invite" }) })), _jsxs(Box, Object.assign({ className: classes.social }, { children: [_jsx(Typography, Object.assign({ className: classes.title, variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.social.title", defaultMessage: "ui.onBoardingWidget.step.invite.social.title" }) })), _jsx(Typography, Object.assign({ variant: "subtitle1" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.social.subtitle", defaultMessage: "ui.onBoardingWidget.step.invite.social.subtitle" }) })), _jsxs(Box, Object.assign({ className: classes.iconContainer }, { children: [_jsx(IconButton, Object.assign({ onClick: () => handleShare(FACEBOOK_SHARE + url, 'facebook'), disabled: !url || isMetaRobotsUpdating }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "facebook" })) })), _jsx(IconButton, Object.assign({ onClick: () => handleShare(X_SHARE + url, 'x'), disabled: !url || isMetaRobotsUpdating }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "twitter" })) })), _jsx(IconButton, Object.assign({ onClick: () => handleShare(LINKEDIN_SHARE + url, 'linkedin'), disabled: !url || isMetaRobotsUpdating }, { children: _jsx(Icon, Object.assign({ classes: { root: classes.icon } }, { children: "linkedin" })) }))] }))] })), _jsxs(Box, Object.assign({ className: classes.email }, { children: [_jsx(Typography, Object.assign({ className: classes.title, variant: "h4" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.email.title", defaultMessage: "ui.onBoardingWidget.step.invite.email.title" }) })), _jsx(Typography, Object.assign({ variant: "subtitle1" }, { children: _jsx(FormattedMessage, { id: "ui.onBoardingWidget.step.invite.email.subtitle", defaultMessage: "ui.onBoardingWidget.step.invite.email.subtitle" }) }))] })), _jsx(Box, Object.assign({ component: "span", className: classes.action }, { children: _jsx(Button, Object.assign({ variant: "outlined", size: "small", onClick: handleCompleteAction }, { children: _jsx(FormattedMessage, { defaultMessage: "ui.onBoardingWidget.step.invite.button", id: "ui.onBoardingWidget.step.invite.button" }) })) }))] })));
50
95
  }
@@ -3,7 +3,3 @@ export declare const HUB_STAGE = "https://hub.stage.quentrix.com/";
3
3
  export declare const HUB_PROD = "https://hub.selfcommunity.com/";
4
4
  export declare const CONTACT_STAGE = "https://hub.stage.quentrix.com/dashboard/account/contact-us";
5
5
  export declare const CONTACT_PROD = "https://hub.selfcommunity.com/dashboard/account/contact-us";
6
- export declare const MAKE_MARKETING_STAGE = "https://make.selfcommunity.io/marketing/invitation";
7
- export declare const MAKE_MARKETING_PROD = "https://make.stage.quentrix.com/marketing/invitation";
8
- export declare const CONSOLE_STAGE = "https://make.selfcommunity.io/contents/interests";
9
- export declare const CONSOLE_PROD = "https://make.stage.quentrix.com/contents/interests";
@@ -3,7 +3,3 @@ export const HUB_STAGE = 'https://hub.stage.quentrix.com/';
3
3
  export const HUB_PROD = 'https://hub.selfcommunity.com/';
4
4
  export const CONTACT_STAGE = 'https://hub.stage.quentrix.com/dashboard/account/contact-us';
5
5
  export const CONTACT_PROD = 'https://hub.selfcommunity.com/dashboard/account/contact-us';
6
- export const MAKE_MARKETING_STAGE = 'https://make.selfcommunity.io/marketing/invitation';
7
- export const MAKE_MARKETING_PROD = 'https://make.stage.quentrix.com/marketing/invitation';
8
- export const CONSOLE_STAGE = 'https://make.selfcommunity.io/contents/interests';
9
- export const CONSOLE_PROD = 'https://make.stage.quentrix.com/contents/interests';
@@ -6,7 +6,7 @@ import List from '@mui/material/List';
6
6
  import { Button, CardContent, ListItem, Typography } from '@mui/material';
7
7
  import { GroupService } from '@selfcommunity/api-services';
8
8
  import { CacheStrategies, isInteger, Logger } from '@selfcommunity/utils';
9
- import { SCCache, useSCPreferences, useSCUser } from '@selfcommunity/react-core';
9
+ import { SCCache, SCPreferences, useSCPreferences, useSCUser } from '@selfcommunity/react-core';
10
10
  import { actionWidgetTypes, dataWidgetReducer, stateWidgetInitializer } from '../../utils/widget';
11
11
  import { SCFeatureName, SCGroupPrivacyType, SCGroupSubscriptionStatusType } from '@selfcommunity/types';
12
12
  import { SCOPE_SC_UI } from '../../constants/Errors';
@@ -71,8 +71,13 @@ export default function UserSubscribedGroupsWidget(inProps) {
71
71
  // CONTEXT
72
72
  const scUserContext = useSCUser();
73
73
  const isMe = useMemo(() => scUserContext.user && userId === scUserContext.user.id, [scUserContext.user, userId]);
74
- const { features } = useSCPreferences();
75
- const groupsEnabled = useMemo(() => features.includes(SCFeatureName.GROUPING) && features.includes(SCFeatureName.TAGGING), [features]);
74
+ const { preferences, features } = useSCPreferences();
75
+ const groupsEnabled = useMemo(() => preferences &&
76
+ features &&
77
+ features.includes(SCFeatureName.TAGGING) &&
78
+ features.includes(SCFeatureName.GROUPING) &&
79
+ SCPreferences.CONFIGURATIONS_GROUPS_ENABLED in preferences &&
80
+ preferences[SCPreferences.CONFIGURATIONS_GROUPS_ENABLED].value, [preferences, features]);
76
81
  // STATE
77
82
  const [state, dispatch] = useReducer(dataWidgetReducer, {
78
83
  isLoadingNext: false,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Actions
3
+ */
4
+ export declare const GET_GROUP_LINK = "_get_link";
5
+ export declare const DELETE_GROUP = "_delete_event";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Actions
3
+ */
4
+ export const GET_GROUP_LINK = '_get_link';
5
+ export const DELETE_GROUP = '_delete_event';
@@ -4,7 +4,8 @@ import { SCUserType, SCGroupType, SCEventType } from '@selfcommunity/types';
4
4
  */
5
5
  export declare enum SCTopicType {
6
6
  GROUP = "group",
7
- EVENT = "event"
7
+ EVENT = "event",
8
+ LAYOUT = "layout"
8
9
  }
9
10
  /**
10
11
  * Group/Event event types
@@ -26,3 +27,17 @@ export interface SCEventMembersEventType {
26
27
  event: SCEventType;
27
28
  user?: SCUserType;
28
29
  }
30
+ /**
31
+ * Layout event types
32
+ */
33
+ export declare enum SCLayoutEventType {
34
+ DRAWER = "drawer",
35
+ SET_DRAWER = "drawer.set",
36
+ TOGGLE_DRAWER = "drawer.toggle"
37
+ }
38
+ /**
39
+ * Layout event types
40
+ */
41
+ export interface SCLayoutDrawerType {
42
+ open: boolean;
43
+ }
@@ -5,6 +5,7 @@ export var SCTopicType;
5
5
  (function (SCTopicType) {
6
6
  SCTopicType["GROUP"] = "group";
7
7
  SCTopicType["EVENT"] = "event";
8
+ SCTopicType["LAYOUT"] = "layout";
8
9
  })(SCTopicType || (SCTopicType = {}));
9
10
  /**
10
11
  * Group/Event event types
@@ -19,3 +20,12 @@ export var SCGroupEventType;
19
20
  SCGroupEventType["INVITE_MEMBER"] = "members.invite_member";
20
21
  SCGroupEventType["REMOVE_MEMBER"] = "members.remove_member";
21
22
  })(SCGroupEventType || (SCGroupEventType = {}));
23
+ /**
24
+ * Layout event types
25
+ */
26
+ export var SCLayoutEventType;
27
+ (function (SCLayoutEventType) {
28
+ SCLayoutEventType["DRAWER"] = "drawer";
29
+ SCLayoutEventType["SET_DRAWER"] = "drawer.set";
30
+ SCLayoutEventType["TOGGLE_DRAWER"] = "drawer.toggle";
31
+ })(SCLayoutEventType || (SCLayoutEventType = {}));
@@ -57,6 +57,7 @@ import FollowUserButton, { FollowUserButtonProps } from './components/FollowUser
57
57
  import Footer, { FooterProps, FooterSkeleton } from './components/Footer';
58
58
  import FriendshipUserButton, { FriendshipButtonProps } from './components/FriendshipUserButton';
59
59
  import Group, { GroupProps, GroupSkeleton } from './components/Group';
60
+ import GroupActionsMenu, { GroupActionsMenuProps } from './components/GroupActionsMenu';
60
61
  import GroupForm, { GroupFormProps } from './components/GroupForm';
61
62
  import GroupHeader, { GroupHeaderProps, GroupHeaderSkeleton } from './components/GroupHeader';
62
63
  import GroupInfoWidget, { GroupInfoWidgetProps, GroupInfoWidgetSkeleton } from './components/GroupInfoWidget';
@@ -78,7 +79,7 @@ import InviteUserEventButton, { InviteUserEventButtonProps } from './components/
78
79
  import LocationAutocomplete, { LocationAutocompleteProps } from './components/LocationAutocomplete';
79
80
  import LoyaltyProgramWidget, { LoyaltyProgramWidgetProps, LoyaltyProgramWidgetSkeleton } from './components/LoyaltyProgramWidget';
80
81
  import MyEventsWidget, { MyEventsWidgetProps, MyEventsWidgetSkeleton } from './components/MyEventsWidget';
81
- import NavigationMenuIconButton, { NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButtonProps } from './components/NavigationMenuIconButton';
82
+ import NavigationMenuIconButton, { NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButtonProps, NavigationMenuDrawer, NavigationMenuDrawerProps } from './components/NavigationMenuIconButton';
82
83
  import DefaultDrawerContent, { DefaultDrawerContentProps } from './components/NavigationMenuIconButton/DefaultDrawerContent';
83
84
  import DefaultHeaderContent, { DefaultHeaderContentProps } from './components/NavigationMenuIconButton/DefaultHeaderContent';
84
85
  import NavigationSettingsIconButton, { NavigationSettingsIconButtonProps, NavigationSettingsItem } from './components/NavigationSettingsIconButton';
@@ -153,6 +154,7 @@ import { LEGAL_POLICIES } from './constants/LegalPolicies';
153
154
  import { DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_QUERY_PARAM_NAME } from './constants/Pagination';
154
155
  import { FACEBOOK_SHARE, LINKEDIN_SHARE, X_SHARE } from './constants/SocialShare';
155
156
  import { DEFAULT_FIELDS } from './constants/UserProfile';
157
+ import { SCTopicType, SCGroupEventType, SCEventMembersEventType, SCGroupMembersEventType, SCLayoutEventType, SCLayoutDrawerType } from './constants/PubSub';
156
158
  /**
157
159
  * Utilities
158
160
  */
@@ -172,4 +174,4 @@ import LogoSelfCommunity from './assets/logo';
172
174
  /**
173
175
  * List all exports
174
176
  */
175
- export { AcceptRequestUserEventButton, AcceptRequestUserEventButtonProps, AccountChangeMailValidation, AccountChangeMailValidationProps, AccountDataPortability, AccountDataPortabilityButton, AccountDataPortabilityButtonProps, AccountDataPortabilityProps, AccountDelete, AccountDeleteButton, AccountDeleteButtonProps, AccountDeleteProps, AccountRecover, AccountRecoverProps, AccountReset, AccountResetProps, AccountVerify, AccountVerifyProps, AvatarGroupSkeleton, BaseDialog, BaseDialogProps, BaseItem, BaseItemProps, BottomNavigation, BottomNavigationProps, BroadcastMessages, BroadcastMessagesProps, BroadcastMessagesSkeleton, bytesToSize, Calendar, CalendarProps, Categories, CategoriesPopularWidget, CategoriesPopularWidgetSkeleton, CategoriesProps, CategoriesSkeleton, CategoriesSkeletonProps, CategoriesSuggestionWidget, CategoriesSuggestionWidgetProps, CategoriesSuggestionWidgetSkeleton, Category, CategoryAutocomplete, CategoryAutocompleteProps, CategoryFollowButton, CategoryFollowButtonProps, CategoryFollowersButton, CategoryFollowersButtonProps, CategoryHeader, CategoryHeaderProps, CategoryHeaderSkeleton, CategoryProps, CategorySkeleton, CategoryTrendingFeedWidget, CategoryTrendingFeedWidgetProps, CategoryTrendingFeedWidgetSkeleton, CategoryTrendingPeopleWidgetSkeleton, CategoryTrendingUsersWidget, CategoryTrendingUsersWidgetProps, CentralProgress, ChangeCover, ChangeCoverProps, ChangeGroupCover, ChangeGroupCoverProps, ChangeGroupPicture, ChangeGroupPictureProps, ChangePicture, ChangePictureProps, CommentObject, CommentObjectProps, CommentObjectReply, CommentObjectReplyProps, CommentObjectSkeleton, CommentsFeedObject, CommentsFeedObjectProps, CommentsFeedObjectSkeleton, CommentsObject, CommentsObjectProps, CommentsObjectSkeleton, Composer, ComposerIconButton, ComposerIconButtonProps, ComposerProps, ConfirmDialog, ConnectionUserButton, ConsentSolution, ConsentSolutionButton, ConsentSolutionButtonProps, ConsentSolutionProps, ConsentSolutionSkeleton, ContributionUtils, CreateEventButton, CreateEventButtonProps, CreateEventWidget, CreateEventWidgetProps, CreateEventWidgetSkeleton, CreateGroupButton, CreateGroupButtonProps, CustomAdv, CustomAdvProps, CustomAdvSkeleton, DEFAULT_FIELDS, DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PRELOAD_OFFSET_VIEWPORT, DEFAULT_WIDGETS_NUMBER, DefaultDrawerContent, DefaultDrawerContentProps, DefaultHeaderContent, DefaultHeaderContentProps, EditEventButton, EditEventButtonProps, EditGroupButton, EditGroupButtonProps, EditMediaProps, Editor, EditorProps, EditorSkeleton, EmailTextField, Event, EventActionsMenu, EventActionsMenuProps, EventHeader, EventHeaderProps, EventHeaderSkeleton, EventInfoDetails, EventInfoDetailsProps, EventInfoWidget, EventInfoWidgetProps, EventInviteButton, EventInviteButtonProps, EventLocationWidget, EventLocationWidgetProps, EventLocationWidgetSkeleton, EventMembersWidget, EventMembersWidgetProps, EventMembersWidgetSkeleton, EventParticipantsButton, EventParticipantsButtonProps, EventProps, Events, EventSkeleton, EventSkeletonProps, EventsProps, EventsSkeleton, EventsSkeletonProps, FACEBOOK_SHARE, Feed, FeedObject, FeedObjectMediaPreview, FeedObjectMediaPreviewProps, FeedObjectProps, FeedObjectSkeleton, FeedProps, FeedRef, FeedSidebarProps, FeedSkeleton, FeedUpdatesWidget, FeedUpdatesWidgetProps, FeedUpdatesWidgetSkeleton, File, FollowUserButton, FollowUserButtonProps, Footer, FooterProps, FooterSkeleton, FriendshipButtonProps, FriendshipUserButton, GenericSkeleton, getRelativeTime, getUnseenNotification, getUnseenNotificationCounter, Group, GroupForm, GroupFormProps, GroupHeader, GroupHeaderProps, GroupHeaderSkeleton, GroupInfoWidget, GroupInfoWidgetProps, GroupInfoWidgetSkeleton, GroupInviteButton, GroupInviteButtonProps, GroupInvitedWidget, GroupInvitedWidgetProps, GroupInvitedWidgetSkeleton, GroupMembersButton, GroupMembersButtonProps, GroupMembersWidget, GroupMembersWidgetProps, GroupMembersWidgetSkeleton, GroupProps, GroupRequestsWidget, GroupRequestsWidgetProps, GroupRequestsWidgetSkeleton, Groups, GroupSettingsIconButton, GroupSettingsIconButtonProps, GroupSkeleton, GroupsProps, GroupsSkeleton, GroupSubscribeButton, GroupSubscribeButtonProps, HiddenPlaceholder, Incubator, IncubatorDetail, IncubatorDetailProps, IncubatorListWidget, IncubatorListWidgetProps, IncubatorProps, IncubatorSubscribeButton, IncubatorSubscribeButtonProps, IncubatorSuggestionWidget, IncubatorSuggestionWidgetProps, InfiniteScroll, InlineComposerWidget, InlineComposerWidgetProps, InlineComposerWidgetSkeleton, InviteUserEventButton, InviteUserEventButtonProps, LanguageSwitcher, LEGAL_POLICIES, Lightbox, Link, LINKEDIN_SHARE, LocationAutocomplete, LocationAutocompleteProps, LogoSelfCommunity, LoyaltyProgramWidget, LoyaltyProgramWidgetProps, LoyaltyProgramWidgetSkeleton, MAX_PRELOAD_OFFSET_VIEWPORT, MEDIA_EMBED_SC_LINK_TYPE, MEDIA_EMBED_SC_SHARED_EVENT, MEDIA_EMBED_SC_SHARED_OBJECT, MEDIA_TYPE_DOCUMENT, MEDIA_TYPE_EMBED, MEDIA_TYPE_EVENT, MEDIA_TYPE_IMAGE, MEDIA_TYPE_LINK, MEDIA_TYPE_SHARE, MEDIA_TYPE_URL, MEDIA_TYPE_VIDEO, MediaChunkUploader, MediaChunkUploaderProps, MessageUploaderUtils, MetadataField, MetadataFieldProps, MIN_PRELOAD_OFFSET_VIEWPORT, MyEventsWidget, MyEventsWidgetProps, MyEventsWidgetSkeleton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButton, NavigationMenuIconButtonProps, NavigationSettingsIconButton, NavigationSettingsIconButtonProps, NavigationSettingsItem, NavigationToolbar, NavigationToolbarMobile, NavigationToolbarMobileProps, NavigationToolbarMobileSkeleton, NavigationToolbarProps, NavigationToolbarSkeleton, Notification, NotificationProps, NotificationSkeleton, OnBoardingWidget, OnBoardingWidgetProps, OnBoardingWidgetSkeleton, PasswordTextField, PhoneTextField, PlatformWidget, PlatformWidgetActionType, PlatformWidgetProps, PlatformWidgetSkeleton, PollSuggestionWidget, PollSuggestionWidgetProps, PrivateMessageComponent, PrivateMessageComponentProps, PrivateMessageComponentSkeleton, PrivateMessageEditor, PrivateMessageEditorProps, PrivateMessageEditorSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSettingsIconButtonProps, PrivateMessageSnippetItem, PrivateMessageSnippetItemProps, PrivateMessageSnippetItemSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsProps, PrivateMessageSnippetsSkeleton, PrivateMessageThread, PrivateMessageThreadItem, PrivateMessageThreadItemProps, PrivateMessageThreadItemSkeleton, PrivateMessageThreadProps, PrivateMessageThreadSkeleton, ProgressBar, ProgressBarProps, RelatedEventsWidget, RelatedEventsWidgetProps, RelatedEventsWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectsWidgetSkeleton, RelatedFeedObjectWidgetProps, ReplyComment, SCBroadcastMessageTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCFeedObjectTemplateType, SCFeedWidgetType, SCMediaChunkType, SCMediaObjectType, SCNotificationObjectTemplateType, SCUserProfileFields, SCUserProfileSettings, SCUserSocialAssociations, SearchAutocomplete, SearchAutocompleteProps, SearchDialog, SearchDialogProps, Share, SnippetNotifications, SnippetNotificationsProps, SnippetNotificationsSkeleton, StickyBox, StickyBoxComponent, StickyBoxProps, SuggestedEventsWidget, SuggestedEventsWidgetProps, SuggestedEventsWidgetSkeleton, TagChip, TagChipProps, ToastNotifications, ToastNotificationsProps, ToastNotificationsSkeleton, UrlTextField, User, UserActionIconButton, UserActionIconButtonProps, UserAvatar, UserAvatarProps, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetProps, UserConnectionsRequestsSentWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetProps, UserConnectionsRequestsWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetProps, UserConnectionsWidgetSkeleton, UserCounters, UserCountersProps, UserDeletedSnackBar, UserDeletedSnackBarProps, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetProps, UserFollowedCategoriesWidgetSkeleton, UserFollowedUsersWidget, UserFollowedUsersWidgetProps, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetProps, UserFollowersWidgetSkeleton, UserInfo, UserInfoDialog, UserInfoDialogProps, UserInfoProps, UserInfoSkeleton, UsernameTextField, UserProfileBlocked, UserProfileBlockedProps, UserProfileEdit, UserProfileEditProps, UserProfileEditSectionAccount, UserProfileEditSectionAccountProps, UserProfileEditSectionPublicInfo, UserProfileEditSectionPublicInfoProps, UserProfileEditSectionSettings, UserProfileEditSectionSettingsProps, UserProfileEditSkeleton, UserProfileHeader, UserProfileHeaderProps, UserProfileHeaderSkeleton, UserProps, UserSkeleton, UserSocialAssociation, UserSocialAssociationProps, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetProps, UserSubscribedGroupsWidgetSkeleton, UserSuggestionWidget, UserSuggestionWidgetProps, UserSuggestionWidgetSkeleton, useStickyBox, UseStickyBoxProps, VirtualScrollerItemProps, SCEventTemplateType, Widget, WidgetProps, X_SHARE };
177
+ export { AcceptRequestUserEventButton, AcceptRequestUserEventButtonProps, AccountChangeMailValidation, AccountChangeMailValidationProps, AccountDataPortability, AccountDataPortabilityButton, AccountDataPortabilityButtonProps, AccountDataPortabilityProps, AccountDelete, AccountDeleteButton, AccountDeleteButtonProps, AccountDeleteProps, AccountRecover, AccountRecoverProps, AccountReset, AccountResetProps, AccountVerify, AccountVerifyProps, AvatarGroupSkeleton, BaseDialog, BaseDialogProps, BaseItem, BaseItemProps, BottomNavigation, BottomNavigationProps, BroadcastMessages, BroadcastMessagesProps, BroadcastMessagesSkeleton, bytesToSize, Calendar, CalendarProps, Categories, CategoriesPopularWidget, CategoriesPopularWidgetSkeleton, CategoriesProps, CategoriesSkeleton, CategoriesSkeletonProps, CategoriesSuggestionWidget, CategoriesSuggestionWidgetProps, CategoriesSuggestionWidgetSkeleton, Category, CategoryAutocomplete, CategoryAutocompleteProps, CategoryFollowButton, CategoryFollowButtonProps, CategoryFollowersButton, CategoryFollowersButtonProps, CategoryHeader, CategoryHeaderProps, CategoryHeaderSkeleton, CategoryProps, CategorySkeleton, CategoryTrendingFeedWidget, CategoryTrendingFeedWidgetProps, CategoryTrendingFeedWidgetSkeleton, CategoryTrendingPeopleWidgetSkeleton, CategoryTrendingUsersWidget, CategoryTrendingUsersWidgetProps, CentralProgress, ChangeCover, ChangeCoverProps, ChangeGroupCover, ChangeGroupCoverProps, ChangeGroupPicture, ChangeGroupPictureProps, ChangePicture, ChangePictureProps, CommentObject, CommentObjectProps, CommentObjectReply, CommentObjectReplyProps, CommentObjectSkeleton, CommentsFeedObject, CommentsFeedObjectProps, CommentsFeedObjectSkeleton, CommentsObject, CommentsObjectProps, CommentsObjectSkeleton, Composer, ComposerIconButton, ComposerIconButtonProps, ComposerProps, ConfirmDialog, ConnectionUserButton, ConsentSolution, ConsentSolutionButton, ConsentSolutionButtonProps, ConsentSolutionProps, ConsentSolutionSkeleton, ContributionUtils, CreateEventButton, CreateEventButtonProps, CreateEventWidget, CreateEventWidgetProps, CreateEventWidgetSkeleton, CreateGroupButton, CreateGroupButtonProps, CustomAdv, CustomAdvProps, CustomAdvSkeleton, DEFAULT_FIELDS, DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PRELOAD_OFFSET_VIEWPORT, DEFAULT_WIDGETS_NUMBER, DefaultDrawerContent, DefaultDrawerContentProps, DefaultHeaderContent, DefaultHeaderContentProps, SCTopicType, SCGroupEventType, SCEventMembersEventType, SCGroupMembersEventType, SCLayoutEventType, SCLayoutDrawerType, EditEventButton, EditEventButtonProps, EditGroupButton, EditGroupButtonProps, EditMediaProps, Editor, EditorProps, EditorSkeleton, EmailTextField, Event, EventActionsMenu, EventActionsMenuProps, EventHeader, EventHeaderProps, EventHeaderSkeleton, EventInfoDetails, EventInfoDetailsProps, EventInfoWidget, EventInfoWidgetProps, EventInviteButton, EventInviteButtonProps, EventLocationWidget, EventLocationWidgetProps, EventLocationWidgetSkeleton, EventMembersWidget, EventMembersWidgetProps, EventMembersWidgetSkeleton, EventParticipantsButton, EventParticipantsButtonProps, EventProps, Events, EventSkeleton, EventSkeletonProps, EventsProps, EventsSkeleton, EventsSkeletonProps, FACEBOOK_SHARE, Feed, FeedObject, FeedObjectMediaPreview, FeedObjectMediaPreviewProps, FeedObjectProps, FeedObjectSkeleton, FeedProps, FeedRef, FeedSidebarProps, FeedSkeleton, FeedUpdatesWidget, FeedUpdatesWidgetProps, FeedUpdatesWidgetSkeleton, File, FollowUserButton, FollowUserButtonProps, Footer, FooterProps, FooterSkeleton, FriendshipButtonProps, FriendshipUserButton, GenericSkeleton, getRelativeTime, getUnseenNotification, getUnseenNotificationCounter, Group, GroupActionsMenu, GroupActionsMenuProps, GroupForm, GroupFormProps, GroupHeader, GroupHeaderProps, GroupHeaderSkeleton, GroupInfoWidget, GroupInfoWidgetProps, GroupInfoWidgetSkeleton, GroupInviteButton, GroupInviteButtonProps, GroupInvitedWidget, GroupInvitedWidgetProps, GroupInvitedWidgetSkeleton, GroupMembersButton, GroupMembersButtonProps, GroupMembersWidget, GroupMembersWidgetProps, GroupMembersWidgetSkeleton, GroupProps, GroupRequestsWidget, GroupRequestsWidgetProps, GroupRequestsWidgetSkeleton, Groups, GroupSettingsIconButton, GroupSettingsIconButtonProps, GroupSkeleton, GroupsProps, GroupsSkeleton, GroupSubscribeButton, GroupSubscribeButtonProps, HiddenPlaceholder, Incubator, IncubatorDetail, IncubatorDetailProps, IncubatorListWidget, IncubatorListWidgetProps, IncubatorProps, IncubatorSubscribeButton, IncubatorSubscribeButtonProps, IncubatorSuggestionWidget, IncubatorSuggestionWidgetProps, InfiniteScroll, InlineComposerWidget, InlineComposerWidgetProps, InlineComposerWidgetSkeleton, InviteUserEventButton, InviteUserEventButtonProps, LanguageSwitcher, LEGAL_POLICIES, Lightbox, Link, LINKEDIN_SHARE, LocationAutocomplete, LocationAutocompleteProps, LogoSelfCommunity, LoyaltyProgramWidget, LoyaltyProgramWidgetProps, LoyaltyProgramWidgetSkeleton, MAX_PRELOAD_OFFSET_VIEWPORT, MEDIA_EMBED_SC_LINK_TYPE, MEDIA_EMBED_SC_SHARED_EVENT, MEDIA_EMBED_SC_SHARED_OBJECT, MEDIA_TYPE_DOCUMENT, MEDIA_TYPE_EMBED, MEDIA_TYPE_EVENT, MEDIA_TYPE_IMAGE, MEDIA_TYPE_LINK, MEDIA_TYPE_SHARE, MEDIA_TYPE_URL, MEDIA_TYPE_VIDEO, MediaChunkUploader, MediaChunkUploaderProps, MessageUploaderUtils, MetadataField, MetadataFieldProps, MIN_PRELOAD_OFFSET_VIEWPORT, MyEventsWidget, MyEventsWidgetProps, MyEventsWidgetSkeleton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButton, NavigationMenuIconButtonProps, NavigationMenuDrawer, NavigationMenuDrawerProps, NavigationSettingsIconButton, NavigationSettingsIconButtonProps, NavigationSettingsItem, NavigationToolbar, NavigationToolbarMobile, NavigationToolbarMobileProps, NavigationToolbarMobileSkeleton, NavigationToolbarProps, NavigationToolbarSkeleton, Notification, NotificationProps, NotificationSkeleton, OnBoardingWidget, OnBoardingWidgetProps, OnBoardingWidgetSkeleton, PasswordTextField, PhoneTextField, PlatformWidget, PlatformWidgetActionType, PlatformWidgetProps, PlatformWidgetSkeleton, PollSuggestionWidget, PollSuggestionWidgetProps, PrivateMessageComponent, PrivateMessageComponentProps, PrivateMessageComponentSkeleton, PrivateMessageEditor, PrivateMessageEditorProps, PrivateMessageEditorSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSettingsIconButtonProps, PrivateMessageSnippetItem, PrivateMessageSnippetItemProps, PrivateMessageSnippetItemSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsProps, PrivateMessageSnippetsSkeleton, PrivateMessageThread, PrivateMessageThreadItem, PrivateMessageThreadItemProps, PrivateMessageThreadItemSkeleton, PrivateMessageThreadProps, PrivateMessageThreadSkeleton, ProgressBar, ProgressBarProps, RelatedEventsWidget, RelatedEventsWidgetProps, RelatedEventsWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectsWidgetSkeleton, RelatedFeedObjectWidgetProps, ReplyComment, SCBroadcastMessageTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCFeedObjectTemplateType, SCFeedWidgetType, SCMediaChunkType, SCMediaObjectType, SCNotificationObjectTemplateType, SCUserProfileFields, SCUserProfileSettings, SCUserSocialAssociations, SearchAutocomplete, SearchAutocompleteProps, SearchDialog, SearchDialogProps, Share, SnippetNotifications, SnippetNotificationsProps, SnippetNotificationsSkeleton, StickyBox, StickyBoxComponent, StickyBoxProps, SuggestedEventsWidget, SuggestedEventsWidgetProps, SuggestedEventsWidgetSkeleton, TagChip, TagChipProps, ToastNotifications, ToastNotificationsProps, ToastNotificationsSkeleton, UrlTextField, User, UserActionIconButton, UserActionIconButtonProps, UserAvatar, UserAvatarProps, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetProps, UserConnectionsRequestsSentWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetProps, UserConnectionsRequestsWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetProps, UserConnectionsWidgetSkeleton, UserCounters, UserCountersProps, UserDeletedSnackBar, UserDeletedSnackBarProps, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetProps, UserFollowedCategoriesWidgetSkeleton, UserFollowedUsersWidget, UserFollowedUsersWidgetProps, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetProps, UserFollowersWidgetSkeleton, UserInfo, UserInfoDialog, UserInfoDialogProps, UserInfoProps, UserInfoSkeleton, UsernameTextField, UserProfileBlocked, UserProfileBlockedProps, UserProfileEdit, UserProfileEditProps, UserProfileEditSectionAccount, UserProfileEditSectionAccountProps, UserProfileEditSectionPublicInfo, UserProfileEditSectionPublicInfoProps, UserProfileEditSectionSettings, UserProfileEditSectionSettingsProps, UserProfileEditSkeleton, UserProfileHeader, UserProfileHeaderProps, UserProfileHeaderSkeleton, UserProps, UserSkeleton, UserSocialAssociation, UserSocialAssociationProps, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetProps, UserSubscribedGroupsWidgetSkeleton, UserSuggestionWidget, UserSuggestionWidgetProps, UserSuggestionWidgetSkeleton, useStickyBox, UseStickyBoxProps, VirtualScrollerItemProps, SCEventTemplateType, Widget, WidgetProps, X_SHARE };
package/lib/esm/index.js CHANGED
@@ -57,6 +57,7 @@ import FollowUserButton from './components/FollowUserButton';
57
57
  import Footer, { FooterSkeleton } from './components/Footer';
58
58
  import FriendshipUserButton from './components/FriendshipUserButton';
59
59
  import Group, { GroupSkeleton } from './components/Group';
60
+ import GroupActionsMenu from './components/GroupActionsMenu';
60
61
  import GroupForm from './components/GroupForm';
61
62
  import GroupHeader, { GroupHeaderSkeleton } from './components/GroupHeader';
62
63
  import GroupInfoWidget, { GroupInfoWidgetSkeleton } from './components/GroupInfoWidget';
@@ -78,7 +79,7 @@ import InviteUserEventButton from './components/InviteUserEventButton';
78
79
  import LocationAutocomplete from './components/LocationAutocomplete';
79
80
  import LoyaltyProgramWidget, { LoyaltyProgramWidgetSkeleton } from './components/LoyaltyProgramWidget';
80
81
  import MyEventsWidget, { MyEventsWidgetSkeleton } from './components/MyEventsWidget';
81
- import NavigationMenuIconButton, { NavigationMenuContent, NavigationMenuHeader } from './components/NavigationMenuIconButton';
82
+ import NavigationMenuIconButton, { NavigationMenuContent, NavigationMenuHeader, NavigationMenuDrawer } from './components/NavigationMenuIconButton';
82
83
  import DefaultDrawerContent from './components/NavigationMenuIconButton/DefaultDrawerContent';
83
84
  import DefaultHeaderContent from './components/NavigationMenuIconButton/DefaultHeaderContent';
84
85
  import NavigationSettingsIconButton from './components/NavigationSettingsIconButton';
@@ -153,6 +154,7 @@ import { LEGAL_POLICIES } from './constants/LegalPolicies';
153
154
  import { DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_QUERY_PARAM_NAME } from './constants/Pagination';
154
155
  import { FACEBOOK_SHARE, LINKEDIN_SHARE, X_SHARE } from './constants/SocialShare';
155
156
  import { DEFAULT_FIELDS } from './constants/UserProfile';
157
+ import { SCTopicType, SCGroupEventType, SCLayoutEventType } from './constants/PubSub';
156
158
  /**
157
159
  * Utilities
158
160
  */
@@ -176,8 +178,8 @@ export { AcceptRequestUserEventButton, AccountChangeMailValidation, AccountDataP
176
178
  /* SC CONSENT SOLUTION */
177
179
  ConsentSolution, ConsentSolutionButton, ConsentSolutionSkeleton, ContributionUtils, CreateEventButton, CreateEventWidget, CreateEventWidgetSkeleton, CreateGroupButton, CustomAdv, CustomAdvSkeleton, DEFAULT_FIELDS, DEFAULT_PAGINATION_LIMIT, DEFAULT_PAGINATION_OFFSET,
178
180
  /* SC UI PAGINATION */
179
- DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PRELOAD_OFFSET_VIEWPORT, DEFAULT_WIDGETS_NUMBER, DefaultDrawerContent, DefaultHeaderContent, EditEventButton, EditGroupButton, Editor, EditorSkeleton, EmailTextField, Event, EventActionsMenu, EventHeader, EventHeaderSkeleton, EventInfoDetails, EventInfoWidget, EventInviteButton, EventLocationWidget, EventLocationWidgetSkeleton, EventMembersWidget, EventMembersWidgetSkeleton, EventParticipantsButton, Events, EventSkeleton, EventsSkeleton, FACEBOOK_SHARE, Feed, FeedObject, FeedObjectMediaPreview, FeedObjectSkeleton, FeedSkeleton, FeedUpdatesWidget, FeedUpdatesWidgetSkeleton, File, FollowUserButton, Footer, FooterSkeleton, FriendshipUserButton, GenericSkeleton, getRelativeTime, getUnseenNotification, getUnseenNotificationCounter, Group, GroupForm, GroupHeader, GroupHeaderSkeleton, GroupInfoWidget, GroupInfoWidgetSkeleton, GroupInviteButton, GroupInvitedWidget, GroupInvitedWidgetSkeleton, GroupMembersButton, GroupMembersWidget, GroupMembersWidgetSkeleton, GroupRequestsWidget, GroupRequestsWidgetSkeleton, Groups, GroupSettingsIconButton, GroupSkeleton, GroupsSkeleton, GroupSubscribeButton,
181
+ DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PRELOAD_OFFSET_VIEWPORT, DEFAULT_WIDGETS_NUMBER, DefaultDrawerContent, DefaultHeaderContent, SCTopicType, SCGroupEventType, SCLayoutEventType, EditEventButton, EditGroupButton, Editor, EditorSkeleton, EmailTextField, Event, EventActionsMenu, EventHeader, EventHeaderSkeleton, EventInfoDetails, EventInfoWidget, EventInviteButton, EventLocationWidget, EventLocationWidgetSkeleton, EventMembersWidget, EventMembersWidgetSkeleton, EventParticipantsButton, Events, EventSkeleton, EventsSkeleton, FACEBOOK_SHARE, Feed, FeedObject, FeedObjectMediaPreview, FeedObjectSkeleton, FeedSkeleton, FeedUpdatesWidget, FeedUpdatesWidgetSkeleton, File, FollowUserButton, Footer, FooterSkeleton, FriendshipUserButton, GenericSkeleton, getRelativeTime, getUnseenNotification, getUnseenNotificationCounter, Group, GroupActionsMenu, GroupForm, GroupHeader, GroupHeaderSkeleton, GroupInfoWidget, GroupInfoWidgetSkeleton, GroupInviteButton, GroupInvitedWidget, GroupInvitedWidgetSkeleton, GroupMembersButton, GroupMembersWidget, GroupMembersWidgetSkeleton, GroupRequestsWidget, GroupRequestsWidgetSkeleton, Groups, GroupSettingsIconButton, GroupSkeleton, GroupsSkeleton, GroupSubscribeButton,
180
182
  /* SC UI SHARED */
181
183
  HiddenPlaceholder, Incubator, IncubatorDetail, IncubatorListWidget, IncubatorSubscribeButton, IncubatorSuggestionWidget, InfiniteScroll, InlineComposerWidget, InlineComposerWidgetSkeleton, InviteUserEventButton, LanguageSwitcher, LEGAL_POLICIES, Lightbox, Link, LINKEDIN_SHARE, LocationAutocomplete,
182
184
  /* Assets */
183
- LogoSelfCommunity, LoyaltyProgramWidget, LoyaltyProgramWidgetSkeleton, MAX_PRELOAD_OFFSET_VIEWPORT, MEDIA_EMBED_SC_LINK_TYPE, MEDIA_EMBED_SC_SHARED_EVENT, MEDIA_EMBED_SC_SHARED_OBJECT, MEDIA_TYPE_DOCUMENT, MEDIA_TYPE_EMBED, MEDIA_TYPE_EVENT, MEDIA_TYPE_IMAGE, MEDIA_TYPE_LINK, MEDIA_TYPE_SHARE, MEDIA_TYPE_URL, MEDIA_TYPE_VIDEO, MediaChunkUploader, MessageUploaderUtils, MetadataField, MIN_PRELOAD_OFFSET_VIEWPORT, MyEventsWidget, MyEventsWidgetSkeleton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButton, NavigationSettingsIconButton, NavigationToolbar, NavigationToolbarMobile, NavigationToolbarMobileSkeleton, NavigationToolbarSkeleton, Notification, NotificationSkeleton, OnBoardingWidget, OnBoardingWidgetSkeleton, PasswordTextField, PhoneTextField, PlatformWidget, PlatformWidgetSkeleton, PollSuggestionWidget, PrivateMessageComponent, PrivateMessageComponentSkeleton, PrivateMessageEditor, PrivateMessageEditorSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSnippetItem, PrivateMessageSnippetItemSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsSkeleton, PrivateMessageThread, PrivateMessageThreadItem, PrivateMessageThreadItemSkeleton, PrivateMessageThreadSkeleton, ProgressBar, RelatedEventsWidget, RelatedEventsWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectsWidgetSkeleton, ReplyComment, SCBroadcastMessageTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCFeedObjectTemplateType, SCNotificationObjectTemplateType, SCUserProfileFields, SCUserProfileSettings, SCUserSocialAssociations, SearchAutocomplete, SearchDialog, Share, SnippetNotifications, SnippetNotificationsSkeleton, StickyBox, SuggestedEventsWidget, SuggestedEventsWidgetSkeleton, TagChip, ToastNotifications, ToastNotificationsSkeleton, UrlTextField, User, UserActionIconButton, UserAvatar, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetSkeleton, UserCounters, UserDeletedSnackBar, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetSkeleton, UserFollowedUsersWidget, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetSkeleton, UserInfo, UserInfoDialog, UserInfoSkeleton, UsernameTextField, UserProfileBlocked, UserProfileEdit, UserProfileEditSectionAccount, UserProfileEditSectionPublicInfo, UserProfileEditSectionSettings, UserProfileEditSkeleton, UserProfileHeader, UserProfileHeaderSkeleton, UserSkeleton, UserSocialAssociation, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetSkeleton, UserSuggestionWidget, UserSuggestionWidgetSkeleton, useStickyBox, SCEventTemplateType, Widget, X_SHARE };
185
+ LogoSelfCommunity, LoyaltyProgramWidget, LoyaltyProgramWidgetSkeleton, MAX_PRELOAD_OFFSET_VIEWPORT, MEDIA_EMBED_SC_LINK_TYPE, MEDIA_EMBED_SC_SHARED_EVENT, MEDIA_EMBED_SC_SHARED_OBJECT, MEDIA_TYPE_DOCUMENT, MEDIA_TYPE_EMBED, MEDIA_TYPE_EVENT, MEDIA_TYPE_IMAGE, MEDIA_TYPE_LINK, MEDIA_TYPE_SHARE, MEDIA_TYPE_URL, MEDIA_TYPE_VIDEO, MediaChunkUploader, MessageUploaderUtils, MetadataField, MIN_PRELOAD_OFFSET_VIEWPORT, MyEventsWidget, MyEventsWidgetSkeleton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButton, NavigationMenuDrawer, NavigationSettingsIconButton, NavigationToolbar, NavigationToolbarMobile, NavigationToolbarMobileSkeleton, NavigationToolbarSkeleton, Notification, NotificationSkeleton, OnBoardingWidget, OnBoardingWidgetSkeleton, PasswordTextField, PhoneTextField, PlatformWidget, PlatformWidgetSkeleton, PollSuggestionWidget, PrivateMessageComponent, PrivateMessageComponentSkeleton, PrivateMessageEditor, PrivateMessageEditorSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSnippetItem, PrivateMessageSnippetItemSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsSkeleton, PrivateMessageThread, PrivateMessageThreadItem, PrivateMessageThreadItemSkeleton, PrivateMessageThreadSkeleton, ProgressBar, RelatedEventsWidget, RelatedEventsWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectsWidgetSkeleton, ReplyComment, SCBroadcastMessageTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCFeedObjectTemplateType, SCNotificationObjectTemplateType, SCUserProfileFields, SCUserProfileSettings, SCUserSocialAssociations, SearchAutocomplete, SearchDialog, Share, SnippetNotifications, SnippetNotificationsSkeleton, StickyBox, SuggestedEventsWidget, SuggestedEventsWidgetSkeleton, TagChip, ToastNotifications, ToastNotificationsSkeleton, UrlTextField, User, UserActionIconButton, UserAvatar, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetSkeleton, UserCounters, UserDeletedSnackBar, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetSkeleton, UserFollowedUsersWidget, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetSkeleton, UserInfo, UserInfoDialog, UserInfoSkeleton, UsernameTextField, UserProfileBlocked, UserProfileEdit, UserProfileEditSectionAccount, UserProfileEditSectionPublicInfo, UserProfileEditSectionSettings, UserProfileEditSkeleton, UserProfileHeader, UserProfileHeaderSkeleton, UserSkeleton, UserSocialAssociation, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetSkeleton, UserSuggestionWidget, UserSuggestionWidgetSkeleton, useStickyBox, SCEventTemplateType, Widget, X_SHARE };
@@ -75,7 +75,6 @@ const messages = defineMessages({
75
75
  }
76
76
  });
77
77
  export default function ContributionActionsMenu(props) {
78
- var _a, _b, _c;
79
78
  // PROPS
80
79
  const { className, feedObjectId, feedObject, feedObjectType = SCContributionType.POST, commentObjectId, commentObject, onFlagContribution, onEditContribution, onHideContribution, onDeleteContribution, onRestoreContribution, onSuspendNotificationContribution, onSuspendNotificationEvent, PopperProps = {} } = props, rest = __rest(props, ["className", "feedObjectId", "feedObject", "feedObjectType", "commentObjectId", "commentObject", "onFlagContribution", "onEditContribution", "onHideContribution", "onDeleteContribution", "onRestoreContribution", "onSuspendNotificationContribution", "onSuspendNotificationEvent", "PopperProps"]);
81
80
  // INTL
@@ -622,9 +621,9 @@ export default function ContributionActionsMenu(props) {
622
621
  return name;
623
622
  }
624
623
  /**
625
- * action
626
- * @param sectionId
627
- */
624
+ * action
625
+ * @param sectionId
626
+ */
628
627
  function handleOpenSection(sectionId) {
629
628
  if (sectionId) {
630
629
  if (sectionId === openSection) {
@@ -703,7 +702,8 @@ export default function ContributionActionsMenu(props) {
703
702
  scUserContext.user.id !== contributionObj.author.id &&
704
703
  contributionObj &&
705
704
  contributionObj.type !== SCContributionType.COMMENT &&
706
- Boolean(contributionObj.event));
705
+ Boolean(contributionObj.event) &&
706
+ Boolean(contributionObj.event.active));
707
707
  }
708
708
  /**
709
709
  * Renders section general
@@ -726,7 +726,7 @@ export default function ContributionActionsMenu(props) {
726
726
  , Object.assign({
727
727
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
728
728
  // @ts-ignore
729
- disabled: contributionObj && ((_a = contributionObj === null || contributionObj === void 0 ? void 0 : contributionObj.medias) === null || _a === void 0 ? void 0 : _a.length) && !((_c = (_b = contributionObj.medias[0].embed) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.active), ref: (ref) => {
729
+ ref: (ref) => {
730
730
  popperRef.current = ref;
731
731
  }, "aria-haspopup": "true", onClick: handleOpen, className: classes.button, size: "small" }, { children: contributionObj && (contributionObj.collapsed || contributionObj.deleted) ? (_jsxs("span", Object.assign({ className: classes.visibilityIcons }, { children: [contributionObj.collapsed ? _jsx(Icon, { children: "visibility_off" }) : _jsx(Icon, { children: "delete" }), _jsx(Icon, { children: "expand_more" })] }))) : (_jsx(Icon, { children: "more_vert" })) })), isMobile ? (_jsx(SwipeableDrawer, Object.assign({ open: open, onClose: handleClose, onOpen: handleOpen, anchor: "bottom", disableSwipeToOpen: true }, { children: renderContent() }))) : (_jsx(PopperRoot, Object.assign({ open: open, anchorEl: popperRef.current, role: undefined, transition: true, className: classes.popperRoot }, PopperProps, { placement: "bottom-end" }, { children: ({ TransitionProps, placement }) => (_jsx(Grow, Object.assign({}, TransitionProps, { style: { transformOrigin: placement === 'bottom' ? 'center top' : 'center bottom' } }, { children: _jsx(Paper, Object.assign({ variant: 'outlined', className: classes.paper }, { children: _jsx(ClickAwayListener, Object.assign({ onClickAway: handleClose }, { children: renderContent() })) })) }))) }))), openConfirmDialog && (_jsx(ConfirmDialog, Object.assign({ open: openConfirmDialog }, (currentAction === DELETE_CONTRIBUTION
732
732
  ? {
@@ -225,9 +225,9 @@ class InfiniteScroll extends Component {
225
225
  const outerDivStyle = this.props.pullDownToRefresh && this.props.height ? { overflow: 'auto' } : {};
226
226
  return (_jsx("div", Object.assign({ style: outerDivStyle, className: "infinite-scroll-component__outerdiv" }, { children: _jsxs("div", Object.assign({ className: `infinite-scroll-component ${this.props.className || ''}`, ref: (infScroll) => (this._infScroll = infScroll), style: style }, { children: [this.props.header, this.props.pullDownToRefresh && (_jsx("div", Object.assign({ style: { position: 'relative' }, ref: (pullDown) => (this._pullDown = pullDown) }, { children: _jsx("div", Object.assign({ style: {
227
227
  position: 'absolute',
228
- left: 0,
229
- right: 0,
230
- top: -1 * this.maxPullDownDistance
228
+ left: '50%',
229
+ transform: 'translateX(-50%)',
230
+ zIndex: 1
231
231
  } }, { children: this.state.pullToRefreshThresholdBreached ? this.props.releaseToRefreshContent : this.props.pullDownToRefreshContent })) }))), !this.props.inverse && this.state.showLoaderPrevious && this.props.hasMorePrevious && this.props.loaderPrevious, this.props.children, this.props.inverse && this.state.showLoaderPrevious && this.props.hasMorePrevious && this.props.loaderPrevious, !this.state.showLoaderNext && !hasChildren && this.props.hasMoreNext && this.props.loaderNext, this.state.showLoaderNext && this.props.hasMoreNext && this.props.loaderNext, !this.props.hasMoreNext && this.props.endMessage, this.props.footer] })) })));
232
232
  }
233
233
  }
@@ -10,10 +10,15 @@ import { DEFAULT_PRELOAD_OFFSET_VIEWPORT } from '../../../constants/LazyLoad';
10
10
  import Skeleton from '@mui/material/Skeleton';
11
11
  import classNames from 'classnames';
12
12
  import { PREFIX } from './constants';
13
+ import { CircularProgress } from '@mui/material';
13
14
  import filter from './filter';
14
15
  const classes = {
15
16
  displayRoot: `${PREFIX}-display-root`,
16
17
  displayLink: `${PREFIX}-link`,
18
+ displayHtmlWrap: `${PREFIX}-html-wrap`,
19
+ displayHtml: `${PREFIX}-html`,
20
+ displayHtmlPlaceholder: `${PREFIX}-html-placeholder`,
21
+ displayHtmlLoading: `${PREFIX}-html-loading`,
17
22
  displayVideo: `${PREFIX}-video`,
18
23
  thumbnail: `${PREFIX}-thumbnail`,
19
24
  thumbnailFullWidth: `${PREFIX}-thumbnail`,
@@ -38,12 +43,23 @@ export default (props) => {
38
43
  // RENDER
39
44
  /**
40
45
  * Renders link display
41
- * @param (link)
42
- * @param(key)
46
+ * @param media
47
+ * @param key
43
48
  */
44
- const renderPreview = (link, key) => {
45
- const domain = new URL(link.embed.metadata.url).hostname.replace('www.', '');
46
- return (_jsxs(Box, Object.assign({ className: classes.displayLink }, { children: [link.embed.metadata.images && link.embed.metadata.images.length > 0 && (_jsx(_Fragment, { children: fullWidth ? (_jsx(Box, { className: classNames(classes.thumbnailFullWidth, classes.image), style: { background: `url(${link.image})`, paddingBottom: `${100 / link.image_width / link.image_height}%` } })) : (_jsx(Box, { className: classNames(classes.thumbnail, classes.image), style: { background: `url(${link.image})` } })) })), _jsxs(Box, Object.assign({ className: classes.snippet }, { children: [_jsx("b", Object.assign({ className: classes.snippetTitle }, { children: link.embed.metadata.title })), _jsx("br", {}), _jsx("p", Object.assign({ className: classes.snippetDescription }, { children: link.embed.metadata.description })), _jsx("a", Object.assign({ href: link.embed.metadata.url, target: '_blank', onClick: () => handleLinkClick(link) }, { children: domain }))] })), _jsx("div", { style: { clear: 'both' } })] }), key));
49
+ const renderPreview = (media, key) => {
50
+ // if (media.embed.metadata.html) {
51
+ // return renderHtml(media, key);
52
+ // }
53
+ const domain = new URL(media.embed.metadata.url).hostname.replace('www.', '');
54
+ return (_jsxs(Box, Object.assign({ className: classes.displayLink }, { children: [media.embed.metadata.images && media.embed.metadata.images.length > 0 && (_jsx(_Fragment, { children: fullWidth ? (_jsx(Box, { className: classNames(classes.thumbnailFullWidth, classes.image), style: { background: `url(${media.image})`, paddingBottom: `${100 / media.image_width / media.image_height}%` } })) : (_jsx(Box, { className: classNames(classes.thumbnail, classes.image), style: { background: `url(${media.image})` } })) })), _jsxs(Box, Object.assign({ className: classes.snippet }, { children: [_jsx("b", Object.assign({ className: classes.snippetTitle }, { children: media.embed.metadata.title })), _jsx("br", {}), _jsx("p", Object.assign({ className: classes.snippetDescription }, { children: media.embed.metadata.description })), _jsx("a", Object.assign({ href: media.embed.metadata.url, target: '_blank', onClick: () => handleLinkClick(media) }, { children: domain }))] })), _jsx("div", { style: { clear: 'both' } })] }), key));
55
+ };
56
+ /**
57
+ * Render html embed
58
+ * @param media
59
+ * @param key
60
+ */
61
+ const renderHtml = (media, key) => {
62
+ return (_jsxs(Box, Object.assign({ className: classes.displayHtmlWrap }, { children: [_jsx("div", { dangerouslySetInnerHTML: { __html: media.embed.metadata.html }, className: classes.displayHtml }), _jsx("div", Object.assign({ className: classes.displayHtmlPlaceholder, style: { paddingTop: `${(100 * media.embed.metadata.height) / media.embed.metadata.width}%`, maxHeight: media.embed.metadata.height } }, { children: _jsx(CircularProgress, { size: 20, className: classes.displayHtmlLoading }) }))] }), key));
47
63
  };
48
64
  /**
49
65
  * Renders component
@@ -2,8 +2,8 @@ export const getRelativeTime = (date) => {
2
2
  const diffInMilliseconds = new Date().getTime() - new Date(date).getTime();
3
3
  const seconds = Math.floor(diffInMilliseconds / 1000);
4
4
  const minutes = Math.floor(seconds / 60);
5
- const hours = Math.ceil(minutes / 60);
6
- const days = Math.floor(hours / 24);
5
+ const hours = Math.floor(minutes / 60);
6
+ const days = Math.round(hours / 24);
7
7
  const weeks = Math.floor(days / 7);
8
8
  const months = Math.floor(days / 30);
9
9
  const years = Math.floor(months / 12);