@selfcommunity/react-ui 0.7.50-events.38 → 0.7.50-events.39

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 (60) hide show
  1. package/lib/cjs/components/CreateEventButton/CreateEventButton.js +1 -1
  2. package/lib/cjs/components/EditEventButton/EditEventButton.d.ts +43 -0
  3. package/lib/cjs/components/EditEventButton/EditEventButton.js +61 -0
  4. package/lib/cjs/components/EditEventButton/index.d.ts +3 -0
  5. package/lib/cjs/components/EditEventButton/index.js +5 -0
  6. package/lib/cjs/components/EventForm/EventAddress.d.ts +2 -1
  7. package/lib/cjs/components/EventForm/EventAddress.js +4 -4
  8. package/lib/cjs/components/EventForm/EventForm.d.ts +6 -0
  9. package/lib/cjs/components/EventForm/EventForm.js +51 -25
  10. package/lib/cjs/components/EventForm/UploadEventCover.d.ts +10 -0
  11. package/lib/cjs/components/EventForm/UploadEventCover.js +34 -7
  12. package/lib/cjs/components/EventHeader/EventHeader.d.ts +67 -0
  13. package/lib/cjs/components/EventHeader/EventHeader.js +175 -0
  14. package/lib/cjs/components/EventHeader/Skeleton.d.ts +25 -0
  15. package/lib/cjs/components/EventHeader/Skeleton.js +56 -0
  16. package/lib/cjs/components/EventHeader/constants.d.ts +1 -0
  17. package/lib/cjs/components/EventHeader/constants.js +4 -0
  18. package/lib/cjs/components/EventHeader/index.d.ts +4 -0
  19. package/lib/cjs/components/EventHeader/index.js +8 -0
  20. package/lib/cjs/components/EventLocationWidget/EventLocationWidget.js +1 -0
  21. package/lib/cjs/components/EventSubscribeButton/EventSubscribeButton.d.ts +56 -0
  22. package/lib/cjs/components/EventSubscribeButton/EventSubscribeButton.js +193 -0
  23. package/lib/cjs/components/EventSubscribeButton/index.d.ts +3 -0
  24. package/lib/cjs/components/EventSubscribeButton/index.js +5 -0
  25. package/lib/cjs/components/Events/Events.js +3 -2
  26. package/lib/cjs/components/FeedObject/FeedObject.js +1 -1
  27. package/lib/cjs/constants/PubSub.d.ts +5 -1
  28. package/lib/cjs/index.d.ts +4 -1
  29. package/lib/cjs/index.js +9 -2
  30. package/lib/esm/components/CreateEventButton/CreateEventButton.js +1 -1
  31. package/lib/esm/components/EditEventButton/EditEventButton.d.ts +43 -0
  32. package/lib/esm/components/EditEventButton/EditEventButton.js +58 -0
  33. package/lib/esm/components/EditEventButton/index.d.ts +3 -0
  34. package/lib/esm/components/EditEventButton/index.js +2 -0
  35. package/lib/esm/components/EventForm/EventAddress.d.ts +2 -1
  36. package/lib/esm/components/EventForm/EventAddress.js +4 -4
  37. package/lib/esm/components/EventForm/EventForm.d.ts +6 -0
  38. package/lib/esm/components/EventForm/EventForm.js +51 -25
  39. package/lib/esm/components/EventForm/UploadEventCover.d.ts +10 -0
  40. package/lib/esm/components/EventForm/UploadEventCover.js +34 -7
  41. package/lib/esm/components/EventHeader/EventHeader.d.ts +67 -0
  42. package/lib/esm/components/EventHeader/EventHeader.js +172 -0
  43. package/lib/esm/components/EventHeader/Skeleton.d.ts +25 -0
  44. package/lib/esm/components/EventHeader/Skeleton.js +53 -0
  45. package/lib/esm/components/EventHeader/constants.d.ts +1 -0
  46. package/lib/esm/components/EventHeader/constants.js +1 -0
  47. package/lib/esm/components/EventHeader/index.d.ts +4 -0
  48. package/lib/esm/components/EventHeader/index.js +4 -0
  49. package/lib/esm/components/EventLocationWidget/EventLocationWidget.js +1 -0
  50. package/lib/esm/components/EventSubscribeButton/EventSubscribeButton.d.ts +56 -0
  51. package/lib/esm/components/EventSubscribeButton/EventSubscribeButton.js +190 -0
  52. package/lib/esm/components/EventSubscribeButton/index.d.ts +3 -0
  53. package/lib/esm/components/EventSubscribeButton/index.js +2 -0
  54. package/lib/esm/components/Events/Events.js +3 -2
  55. package/lib/esm/components/FeedObject/FeedObject.js +1 -1
  56. package/lib/esm/constants/PubSub.d.ts +5 -1
  57. package/lib/esm/index.d.ts +4 -1
  58. package/lib/esm/index.js +5 -2
  59. package/lib/umd/react-ui.js +1 -1
  60. package/package.json +7 -7
@@ -91,6 +91,7 @@ import TagChip, { TagChipProps } from './shared/TagChip';
91
91
  import UserDeletedSnackBar, { UserDeletedSnackBarProps } from './shared/UserDeletedSnackBar';
92
92
  import UserAvatar, { UserAvatarProps } from './shared/UserAvatar';
93
93
  import Lightbox from './shared/Lightbox';
94
+ import Calendar from './shared/Calendar';
94
95
  import { MEDIA_TYPE_EMBED } from './constants/Media';
95
96
  import PollSuggestionWidget, { PollSuggestionWidgetProps } from './components/PollSuggestionWidget';
96
97
  import ConsentSolution, { ConsentSolutionProps, ConsentSolutionSkeleton } from './components/ConsentSolution';
@@ -129,6 +130,8 @@ import EventLocationWidget, { EventLocationWidgetProps, EventLocationWidgetSkele
129
130
  import Event, { EventProps, EventSkeleton, EventSkeletonProps } from './components/Event';
130
131
  import Events, { EventsProps, EventsSkeleton, EventsSkeletonProps } from './components/Events';
131
132
  import EventInviteButton, { EventInviteButtonProps } from './components/EventInviteButton';
133
+ import EventHeader, { EventHeaderProps, EventHeaderSkeleton } from './components/EventHeader';
134
+ import EditEventButton, { EditEventButtonProps } from './components/EditEventButton';
132
135
  /**
133
136
  * Constants
134
137
  */
@@ -157,4 +160,4 @@ import LogoSelfCommunity from './assets/logo';
157
160
  /**
158
161
  * List all exports
159
162
  */
160
- export { AccountDataPortability, AccountDataPortabilityProps, AccountDataPortabilityButton, AccountDataPortabilityButtonProps, AccountDelete, AccountDeleteProps, AccountDeleteButton, AccountDeleteButtonProps, AccountRecover, AccountRecoverProps, AccountReset, AccountResetProps, AccountVerify, AccountVerifyProps, AccountChangeMailValidation, AccountChangeMailValidationProps, NavigationSettingsIconButton, NavigationSettingsIconButtonProps, NavigationSettingsItem, NavigationToolbarMobile, NavigationToolbarMobileProps, NavigationToolbarMobileSkeleton, NavigationToolbar, NavigationToolbarProps, NavigationToolbarSkeleton, NavigationMenuIconButton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButtonProps, BottomNavigation, BottomNavigationProps, BroadcastMessages, BroadcastMessagesProps, BroadcastMessagesSkeleton, Category, CategoryProps, CategorySkeleton, CategoryAutocomplete, CategoryAutocompleteProps, CategoryFollowersButton, CategoryFollowersButtonProps, CategoryHeader, CategoryHeaderProps, CategoryHeaderSkeleton, Categories, CategoriesProps, CategoriesSkeleton, CategoriesSkeletonProps, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetProps, UserFollowedCategoriesWidgetSkeleton, CategoriesPopularWidget, CategoriesPopularWidgetSkeleton, CategoriesSuggestionWidget, CategoriesSuggestionWidgetProps, CategoriesSuggestionWidgetSkeleton, ChangeCover, ChangePicture, ChangePictureProps, ChangeCoverProps, Composer, ComposerProps, ComposerIconButton, ComposerIconButtonProps, Editor, EditorProps, EditorSkeleton, FriendshipUserButton, FriendshipButtonProps, Feed, FeedRef, FeedProps, FeedSidebarProps, FeedSkeleton, CategoryFollowButton, CategoryFollowButtonProps, FollowUserButton, FollowUserButtonProps, ConnectionUserButton, FeedObject, FeedObjectProps, FeedObjectSkeleton, FeedObjectMediaPreview, FeedObjectMediaPreviewProps, FeedUpdatesWidget, FeedUpdatesWidgetProps, FeedUpdatesWidgetSkeleton, GenericSkeleton, AvatarGroupSkeleton, CommentObject, CommentsObject, CommentsObjectProps, CommentObjectProps, CommentsObjectSkeleton, CommentObjectSkeleton, CommentObjectReply, CommentObjectReplyProps, CommentsFeedObject, CommentsFeedObjectProps, CommentsFeedObjectSkeleton, ReplyComment, InlineComposerWidget, InlineComposerWidgetProps, InlineComposerWidgetSkeleton, Notification, NotificationProps, NotificationSkeleton, UserSuggestionWidget, UserSuggestionWidgetProps, UserSuggestionWidgetSkeleton, PlatformWidget, PlatformWidgetProps, PlatformWidgetSkeleton, LocationAutocomplete, LocationAutocompleteProps, LoyaltyProgramWidget, LoyaltyProgramWidgetProps, LoyaltyProgramWidgetSkeleton, CategoryTrendingFeedWidget, CategoryTrendingFeedWidgetProps, CategoryTrendingFeedWidgetSkeleton, CategoryTrendingUsersWidget, CategoryTrendingUsersWidgetProps, CategoryTrendingPeopleWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectWidgetProps, RelatedFeedObjectsWidgetSkeleton, UserActionIconButton, UserActionIconButtonProps, UserCounters, UserCountersProps, UserProfileHeader, UserProfileHeaderProps, UserProfileHeaderSkeleton, UserInfoDialog, UserInfoDialogProps, UserInfo, UserInfoProps, UserInfoSkeleton, UserProfileBlocked, UserProfileBlockedProps, SCUserProfileFields, SCUserProfileSettings, UserProfileEdit, UserProfileEditProps, UserProfileEditSkeleton, UserProfileEditSectionPublicInfo, UserProfileEditSectionPublicInfoProps, UserProfileEditSectionSettings, UserProfileEditSectionSettingsProps, UserProfileEditSectionAccount, UserProfileEditSectionAccountProps, UserFollowedUsersWidget, UserFollowedUsersWidgetProps, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetProps, UserFollowersWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetProps, UserConnectionsWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetProps, UserConnectionsRequestsWidgetSkeleton, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetProps, UserConnectionsRequestsSentWidgetSkeleton, UserSocialAssociation, UserSocialAssociationProps, SCUserSocialAssociations, VirtualScrollerItemProps, PlatformWidgetActionType, CustomAdv, CustomAdvProps, CustomAdvSkeleton, User, UserProps, UserSkeleton, PrivateMessageThread, PrivateMessageThreadProps, PrivateMessageThreadSkeleton, PrivateMessageThreadItem, PrivateMessageThreadItemProps, PrivateMessageThreadItemSkeleton, PrivateMessageSnippetItem, PrivateMessageSnippetItemProps, PrivateMessageSnippetItemSkeleton, PrivateMessageEditor, PrivateMessageEditorProps, PrivateMessageEditorSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsProps, PrivateMessageSnippetsSkeleton, PrivateMessageComponent, PrivateMessageComponentProps, PrivateMessageComponentSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSettingsIconButtonProps, ToastNotifications, ToastNotificationsProps, ToastNotificationsSkeleton, SnippetNotifications, SnippetNotificationsProps, SnippetNotificationsSkeleton, SearchAutocomplete, SearchAutocompleteProps, SearchDialog, SearchDialogProps, Widget, WidgetProps, SCFeedWidgetType, SCFeedObjectTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCMediaObjectType, SCMediaChunkType, SCNotificationObjectTemplateType, SCBroadcastMessageTemplateType, ChangeGroupCover, ChangeGroupCoverProps, ChangeGroupPicture, ChangeGroupPictureProps, GroupHeader, GroupHeaderProps, GroupHeaderSkeleton, GroupMembersButton, GroupMembersButtonProps, CreateGroupButton, CreateGroupButtonProps, EditGroupButton, EditGroupButtonProps, GroupInviteButton, GroupInviteButtonProps, GroupInfoWidget, GroupInfoWidgetProps, GroupInfoWidgetSkeleton, Group, GroupProps, GroupSkeleton, GroupSubscribeButton, GroupSubscribeButtonProps, GroupMembersWidget, GroupMembersWidgetProps, GroupMembersWidgetSkeleton, GroupRequestsWidget, GroupRequestsWidgetProps, GroupRequestsWidgetSkeleton, Groups, GroupsProps, GroupsSkeleton, GroupForm, GroupFormProps, GroupInvitedWidget, GroupInvitedWidgetProps, GroupInvitedWidgetSkeleton, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetProps, UserSubscribedGroupsWidgetSkeleton, DefaultDrawerContent, DefaultDrawerContentProps, DefaultHeaderContent, DefaultHeaderContentProps, CreateEventButton, CreateEventButtonProps, EventLocationWidget, EventLocationWidgetProps, EventLocationWidgetSkeleton, Event, EventProps, EventSkeleton, Events, EventsProps, EventsSkeleton, EventSkeletonProps, EventsSkeletonProps, EventInviteButton, EventInviteButtonProps, HiddenPlaceholder, UrlTextField, UsernameTextField, EmailTextField, PasswordTextField, PhoneTextField, MetadataField, MetadataFieldProps, InfiniteScroll, StickyBox, useStickyBox, StickyBoxProps, StickyBoxComponent, UseStickyBoxProps, TagChip, TagChipProps, UserDeletedSnackBar, UserDeletedSnackBarProps, UserAvatar, UserAvatarProps, Lightbox, CentralProgress, ConfirmDialog, LanguageSwitcher, MediaChunkUploader, MediaChunkUploaderProps, File, Link, Share, EditMediaProps, MEDIA_TYPE_EMBED, FACEBOOK_SHARE, X_SHARE, LINKEDIN_SHARE, DEFAULT_PRELOAD_OFFSET_VIEWPORT, MIN_PRELOAD_OFFSET_VIEWPORT, MAX_PRELOAD_OFFSET_VIEWPORT, ConsentSolution, ConsentSolutionProps, ConsentSolutionSkeleton, ConsentSolutionButton, ConsentSolutionButtonProps, LEGAL_POLICIES, DEFAULT_FIELDS, DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_LIMIT, DEFAULT_WIDGETS_NUMBER, PollSuggestionWidget, PollSuggestionWidgetProps, Incubator, IncubatorSubscribeButton, IncubatorSubscribeButtonProps, IncubatorProps, IncubatorListWidget, IncubatorListWidgetProps, IncubatorDetail, IncubatorDetailProps, IncubatorSuggestionWidget, IncubatorSuggestionWidgetProps, ContributionUtils, bytesToSize, getUnseenNotification, getUnseenNotificationCounter, MessageUploaderUtils, getRelativeTime, Footer, FooterProps, FooterSkeleton, BaseItem, BaseItemProps, BaseDialog, BaseDialogProps, GroupSettingsIconButton, GroupSettingsIconButtonProps, LogoSelfCommunity };
163
+ export { AccountDataPortability, AccountDataPortabilityProps, AccountDataPortabilityButton, AccountDataPortabilityButtonProps, AccountDelete, AccountDeleteProps, AccountDeleteButton, AccountDeleteButtonProps, AccountRecover, AccountRecoverProps, AccountReset, AccountResetProps, AccountVerify, AccountVerifyProps, AccountChangeMailValidation, AccountChangeMailValidationProps, NavigationSettingsIconButton, NavigationSettingsIconButtonProps, NavigationSettingsItem, NavigationToolbarMobile, NavigationToolbarMobileProps, NavigationToolbarMobileSkeleton, NavigationToolbar, NavigationToolbarProps, NavigationToolbarSkeleton, NavigationMenuIconButton, NavigationMenuContent, NavigationMenuHeader, NavigationMenuIconButtonProps, BottomNavigation, BottomNavigationProps, BroadcastMessages, BroadcastMessagesProps, BroadcastMessagesSkeleton, Category, CategoryProps, CategorySkeleton, CategoryAutocomplete, CategoryAutocompleteProps, CategoryFollowersButton, CategoryFollowersButtonProps, CategoryHeader, CategoryHeaderProps, CategoryHeaderSkeleton, Categories, CategoriesProps, CategoriesSkeleton, CategoriesSkeletonProps, UserFollowedCategoriesWidget, UserFollowedCategoriesWidgetProps, UserFollowedCategoriesWidgetSkeleton, CategoriesPopularWidget, CategoriesPopularWidgetSkeleton, CategoriesSuggestionWidget, CategoriesSuggestionWidgetProps, CategoriesSuggestionWidgetSkeleton, ChangeCover, ChangePicture, ChangePictureProps, ChangeCoverProps, Composer, ComposerProps, ComposerIconButton, ComposerIconButtonProps, Editor, EditorProps, EditorSkeleton, FriendshipUserButton, FriendshipButtonProps, Feed, FeedRef, FeedProps, FeedSidebarProps, FeedSkeleton, CategoryFollowButton, CategoryFollowButtonProps, FollowUserButton, FollowUserButtonProps, ConnectionUserButton, FeedObject, FeedObjectProps, FeedObjectSkeleton, FeedObjectMediaPreview, FeedObjectMediaPreviewProps, FeedUpdatesWidget, FeedUpdatesWidgetProps, FeedUpdatesWidgetSkeleton, GenericSkeleton, AvatarGroupSkeleton, CommentObject, CommentsObject, CommentsObjectProps, CommentObjectProps, CommentsObjectSkeleton, CommentObjectSkeleton, CommentObjectReply, CommentObjectReplyProps, CommentsFeedObject, CommentsFeedObjectProps, CommentsFeedObjectSkeleton, ReplyComment, InlineComposerWidget, InlineComposerWidgetProps, InlineComposerWidgetSkeleton, Notification, NotificationProps, NotificationSkeleton, UserSuggestionWidget, UserSuggestionWidgetProps, UserSuggestionWidgetSkeleton, PlatformWidget, PlatformWidgetProps, PlatformWidgetSkeleton, LocationAutocomplete, LocationAutocompleteProps, LoyaltyProgramWidget, LoyaltyProgramWidgetProps, LoyaltyProgramWidgetSkeleton, CategoryTrendingFeedWidget, CategoryTrendingFeedWidgetProps, CategoryTrendingFeedWidgetSkeleton, CategoryTrendingUsersWidget, CategoryTrendingUsersWidgetProps, CategoryTrendingPeopleWidgetSkeleton, RelatedFeedObjectsWidget, RelatedFeedObjectWidgetProps, RelatedFeedObjectsWidgetSkeleton, UserActionIconButton, UserActionIconButtonProps, UserCounters, UserCountersProps, UserProfileHeader, UserProfileHeaderProps, UserProfileHeaderSkeleton, UserInfoDialog, UserInfoDialogProps, UserInfo, UserInfoProps, UserInfoSkeleton, UserProfileBlocked, UserProfileBlockedProps, SCUserProfileFields, SCUserProfileSettings, UserProfileEdit, UserProfileEditProps, UserProfileEditSkeleton, UserProfileEditSectionPublicInfo, UserProfileEditSectionPublicInfoProps, UserProfileEditSectionSettings, UserProfileEditSectionSettingsProps, UserProfileEditSectionAccount, UserProfileEditSectionAccountProps, UserFollowedUsersWidget, UserFollowedUsersWidgetProps, UserFollowedUsersWidgetSkeleton, UserFollowersWidget, UserFollowersWidgetProps, UserFollowersWidgetSkeleton, UserConnectionsWidget, UserConnectionsWidgetProps, UserConnectionsWidgetSkeleton, UserConnectionsRequestsWidget, UserConnectionsRequestsWidgetProps, UserConnectionsRequestsWidgetSkeleton, UserConnectionsRequestsSentWidget, UserConnectionsRequestsSentWidgetProps, UserConnectionsRequestsSentWidgetSkeleton, UserSocialAssociation, UserSocialAssociationProps, SCUserSocialAssociations, VirtualScrollerItemProps, PlatformWidgetActionType, CustomAdv, CustomAdvProps, CustomAdvSkeleton, User, UserProps, UserSkeleton, PrivateMessageThread, PrivateMessageThreadProps, PrivateMessageThreadSkeleton, PrivateMessageThreadItem, PrivateMessageThreadItemProps, PrivateMessageThreadItemSkeleton, PrivateMessageSnippetItem, PrivateMessageSnippetItemProps, PrivateMessageSnippetItemSkeleton, PrivateMessageEditor, PrivateMessageEditorProps, PrivateMessageEditorSkeleton, PrivateMessageSnippets, PrivateMessageSnippetsProps, PrivateMessageSnippetsSkeleton, PrivateMessageComponent, PrivateMessageComponentProps, PrivateMessageComponentSkeleton, PrivateMessageSettingsIconButton, PrivateMessageSettingsIconButtonProps, ToastNotifications, ToastNotificationsProps, ToastNotificationsSkeleton, SnippetNotifications, SnippetNotificationsProps, SnippetNotificationsSkeleton, SearchAutocomplete, SearchAutocompleteProps, SearchDialog, SearchDialogProps, Widget, WidgetProps, SCFeedWidgetType, SCFeedObjectTemplateType, SCCommentsOrderBy, SCFeedObjectActivitiesType, SCMediaObjectType, SCMediaChunkType, SCNotificationObjectTemplateType, SCBroadcastMessageTemplateType, ChangeGroupCover, ChangeGroupCoverProps, ChangeGroupPicture, ChangeGroupPictureProps, GroupHeader, GroupHeaderProps, GroupHeaderSkeleton, GroupMembersButton, GroupMembersButtonProps, CreateGroupButton, CreateGroupButtonProps, EditGroupButton, EditGroupButtonProps, GroupInviteButton, GroupInviteButtonProps, GroupInfoWidget, GroupInfoWidgetProps, GroupInfoWidgetSkeleton, Group, GroupProps, GroupSkeleton, GroupSubscribeButton, GroupSubscribeButtonProps, GroupMembersWidget, GroupMembersWidgetProps, GroupMembersWidgetSkeleton, GroupRequestsWidget, GroupRequestsWidgetProps, GroupRequestsWidgetSkeleton, Groups, GroupsProps, GroupsSkeleton, GroupForm, GroupFormProps, GroupInvitedWidget, GroupInvitedWidgetProps, GroupInvitedWidgetSkeleton, UserSubscribedGroupsWidget, UserSubscribedGroupsWidgetProps, UserSubscribedGroupsWidgetSkeleton, DefaultDrawerContent, DefaultDrawerContentProps, DefaultHeaderContent, DefaultHeaderContentProps, CreateEventButton, CreateEventButtonProps, EventLocationWidget, EventLocationWidgetProps, EventLocationWidgetSkeleton, Event, EventProps, EventSkeleton, Events, EventsProps, EventsSkeleton, EventSkeletonProps, EventsSkeletonProps, EventInviteButton, EventInviteButtonProps, EventHeader, EventHeaderProps, EventHeaderSkeleton, EditEventButton, EditEventButtonProps, HiddenPlaceholder, UrlTextField, UsernameTextField, EmailTextField, PasswordTextField, PhoneTextField, MetadataField, MetadataFieldProps, InfiniteScroll, StickyBox, useStickyBox, StickyBoxProps, StickyBoxComponent, UseStickyBoxProps, TagChip, TagChipProps, UserDeletedSnackBar, UserDeletedSnackBarProps, UserAvatar, UserAvatarProps, Lightbox, Calendar, CentralProgress, ConfirmDialog, LanguageSwitcher, MediaChunkUploader, MediaChunkUploaderProps, File, Link, Share, EditMediaProps, MEDIA_TYPE_EMBED, FACEBOOK_SHARE, X_SHARE, LINKEDIN_SHARE, DEFAULT_PRELOAD_OFFSET_VIEWPORT, MIN_PRELOAD_OFFSET_VIEWPORT, MAX_PRELOAD_OFFSET_VIEWPORT, ConsentSolution, ConsentSolutionProps, ConsentSolutionSkeleton, ConsentSolutionButton, ConsentSolutionButtonProps, LEGAL_POLICIES, DEFAULT_FIELDS, DEFAULT_PAGINATION_QUERY_PARAM_NAME, DEFAULT_PAGINATION_OFFSET, DEFAULT_PAGINATION_LIMIT, DEFAULT_WIDGETS_NUMBER, PollSuggestionWidget, PollSuggestionWidgetProps, Incubator, IncubatorSubscribeButton, IncubatorSubscribeButtonProps, IncubatorProps, IncubatorListWidget, IncubatorListWidgetProps, IncubatorDetail, IncubatorDetailProps, IncubatorSuggestionWidget, IncubatorSuggestionWidgetProps, ContributionUtils, bytesToSize, getUnseenNotification, getUnseenNotificationCounter, MessageUploaderUtils, getRelativeTime, Footer, FooterProps, FooterSkeleton, BaseItem, BaseItemProps, BaseDialog, BaseDialogProps, GroupSettingsIconButton, GroupSettingsIconButtonProps, LogoSelfCommunity };
package/lib/cjs/index.js CHANGED
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FeedUpdatesWidgetSkeleton = exports.FeedUpdatesWidget = exports.FeedObjectMediaPreview = exports.FeedObjectSkeleton = exports.FeedObject = exports.ConnectionUserButton = exports.FollowUserButton = exports.CategoryFollowButton = exports.FeedSkeleton = exports.Feed = exports.FriendshipUserButton = exports.EditorSkeleton = exports.Editor = exports.ComposerIconButton = exports.Composer = exports.ChangePicture = exports.ChangeCover = exports.CategoriesSuggestionWidgetSkeleton = exports.CategoriesSuggestionWidget = exports.CategoriesPopularWidgetSkeleton = exports.CategoriesPopularWidget = exports.UserFollowedCategoriesWidgetSkeleton = exports.UserFollowedCategoriesWidget = exports.CategoriesSkeleton = exports.Categories = exports.CategoryHeaderSkeleton = exports.CategoryHeader = exports.CategoryFollowersButton = exports.CategoryAutocomplete = exports.CategorySkeleton = exports.Category = exports.BroadcastMessagesSkeleton = exports.BroadcastMessages = exports.BottomNavigation = exports.NavigationMenuHeader = exports.NavigationMenuContent = exports.NavigationMenuIconButton = exports.NavigationToolbarSkeleton = exports.NavigationToolbar = exports.NavigationToolbarMobileSkeleton = exports.NavigationToolbarMobile = exports.NavigationSettingsIconButton = exports.AccountChangeMailValidation = exports.AccountVerify = exports.AccountReset = exports.AccountRecover = exports.AccountDeleteButton = exports.AccountDelete = exports.AccountDataPortabilityButton = exports.AccountDataPortability = void 0;
4
4
  exports.UserConnectionsRequestsWidgetSkeleton = exports.UserConnectionsRequestsWidget = exports.UserConnectionsWidgetSkeleton = exports.UserConnectionsWidget = exports.UserFollowersWidgetSkeleton = exports.UserFollowersWidget = exports.UserFollowedUsersWidgetSkeleton = exports.UserFollowedUsersWidget = exports.UserProfileEditSectionAccount = exports.UserProfileEditSectionSettings = exports.UserProfileEditSectionPublicInfo = exports.UserProfileEditSkeleton = exports.UserProfileEdit = exports.SCUserProfileSettings = exports.SCUserProfileFields = exports.UserProfileBlocked = exports.UserInfoSkeleton = exports.UserInfo = exports.UserInfoDialog = exports.UserProfileHeaderSkeleton = exports.UserProfileHeader = exports.UserCounters = exports.UserActionIconButton = exports.RelatedFeedObjectsWidgetSkeleton = exports.RelatedFeedObjectsWidget = exports.CategoryTrendingPeopleWidgetSkeleton = exports.CategoryTrendingUsersWidget = exports.CategoryTrendingFeedWidgetSkeleton = exports.CategoryTrendingFeedWidget = exports.LoyaltyProgramWidgetSkeleton = exports.LoyaltyProgramWidget = exports.LocationAutocomplete = exports.PlatformWidgetSkeleton = exports.PlatformWidget = exports.UserSuggestionWidgetSkeleton = exports.UserSuggestionWidget = exports.NotificationSkeleton = exports.Notification = exports.InlineComposerWidgetSkeleton = exports.InlineComposerWidget = exports.ReplyComment = exports.CommentsFeedObjectSkeleton = exports.CommentsFeedObject = exports.CommentObjectReply = exports.CommentObjectSkeleton = exports.CommentsObjectSkeleton = exports.CommentsObject = exports.CommentObject = exports.AvatarGroupSkeleton = exports.GenericSkeleton = void 0;
5
5
  exports.GroupRequestsWidgetSkeleton = exports.GroupRequestsWidget = exports.GroupMembersWidgetSkeleton = exports.GroupMembersWidget = exports.GroupSubscribeButton = exports.GroupSkeleton = exports.Group = exports.GroupInfoWidgetSkeleton = exports.GroupInfoWidget = exports.GroupInviteButton = exports.EditGroupButton = exports.CreateGroupButton = exports.GroupMembersButton = exports.GroupHeaderSkeleton = exports.GroupHeader = exports.ChangeGroupPicture = exports.ChangeGroupCover = exports.SCBroadcastMessageTemplateType = exports.SCNotificationObjectTemplateType = exports.SCFeedObjectActivitiesType = exports.SCCommentsOrderBy = exports.SCFeedObjectTemplateType = exports.Widget = exports.SearchDialog = exports.SearchAutocomplete = exports.SnippetNotificationsSkeleton = exports.SnippetNotifications = exports.ToastNotificationsSkeleton = exports.ToastNotifications = exports.PrivateMessageSettingsIconButton = exports.PrivateMessageComponentSkeleton = exports.PrivateMessageComponent = exports.PrivateMessageSnippetsSkeleton = exports.PrivateMessageSnippets = exports.PrivateMessageEditorSkeleton = exports.PrivateMessageEditor = exports.PrivateMessageSnippetItemSkeleton = exports.PrivateMessageSnippetItem = exports.PrivateMessageThreadItemSkeleton = exports.PrivateMessageThreadItem = exports.PrivateMessageThreadSkeleton = exports.PrivateMessageThread = exports.UserSkeleton = exports.User = exports.CustomAdvSkeleton = exports.CustomAdv = exports.SCUserSocialAssociations = exports.UserSocialAssociation = exports.UserConnectionsRequestsSentWidgetSkeleton = exports.UserConnectionsRequestsSentWidget = void 0;
6
- exports.DEFAULT_FIELDS = exports.LEGAL_POLICIES = exports.ConsentSolutionButton = exports.ConsentSolutionSkeleton = exports.ConsentSolution = exports.MAX_PRELOAD_OFFSET_VIEWPORT = exports.MIN_PRELOAD_OFFSET_VIEWPORT = exports.DEFAULT_PRELOAD_OFFSET_VIEWPORT = exports.LINKEDIN_SHARE = exports.X_SHARE = exports.FACEBOOK_SHARE = exports.MEDIA_TYPE_EMBED = exports.Share = exports.Link = exports.File = exports.MediaChunkUploader = exports.LanguageSwitcher = exports.ConfirmDialog = exports.CentralProgress = exports.Lightbox = exports.UserAvatar = exports.UserDeletedSnackBar = exports.TagChip = exports.useStickyBox = exports.StickyBox = exports.InfiniteScroll = exports.MetadataField = exports.PhoneTextField = exports.PasswordTextField = exports.EmailTextField = exports.UsernameTextField = exports.UrlTextField = exports.HiddenPlaceholder = exports.EventInviteButton = exports.EventsSkeleton = exports.Events = exports.EventSkeleton = exports.Event = exports.EventLocationWidgetSkeleton = exports.EventLocationWidget = exports.CreateEventButton = exports.DefaultHeaderContent = exports.DefaultDrawerContent = exports.UserSubscribedGroupsWidgetSkeleton = exports.UserSubscribedGroupsWidget = exports.GroupInvitedWidgetSkeleton = exports.GroupInvitedWidget = exports.GroupForm = exports.GroupsSkeleton = exports.Groups = void 0;
7
- exports.LogoSelfCommunity = exports.GroupSettingsIconButton = exports.BaseDialog = exports.BaseItem = exports.FooterSkeleton = exports.Footer = exports.getRelativeTime = exports.MessageUploaderUtils = exports.getUnseenNotificationCounter = exports.getUnseenNotification = exports.bytesToSize = exports.ContributionUtils = exports.IncubatorSuggestionWidget = exports.IncubatorDetail = exports.IncubatorListWidget = exports.IncubatorSubscribeButton = exports.Incubator = exports.PollSuggestionWidget = exports.DEFAULT_WIDGETS_NUMBER = exports.DEFAULT_PAGINATION_LIMIT = exports.DEFAULT_PAGINATION_OFFSET = exports.DEFAULT_PAGINATION_QUERY_PARAM_NAME = void 0;
6
+ exports.ConsentSolution = exports.MAX_PRELOAD_OFFSET_VIEWPORT = exports.MIN_PRELOAD_OFFSET_VIEWPORT = exports.DEFAULT_PRELOAD_OFFSET_VIEWPORT = exports.LINKEDIN_SHARE = exports.X_SHARE = exports.FACEBOOK_SHARE = exports.MEDIA_TYPE_EMBED = exports.Share = exports.Link = exports.File = exports.MediaChunkUploader = exports.LanguageSwitcher = exports.ConfirmDialog = exports.CentralProgress = exports.Calendar = exports.Lightbox = exports.UserAvatar = exports.UserDeletedSnackBar = exports.TagChip = exports.useStickyBox = exports.StickyBox = exports.InfiniteScroll = exports.MetadataField = exports.PhoneTextField = exports.PasswordTextField = exports.EmailTextField = exports.UsernameTextField = exports.UrlTextField = exports.HiddenPlaceholder = exports.EditEventButton = exports.EventHeaderSkeleton = exports.EventHeader = exports.EventInviteButton = exports.EventsSkeleton = exports.Events = exports.EventSkeleton = exports.Event = exports.EventLocationWidgetSkeleton = exports.EventLocationWidget = exports.CreateEventButton = exports.DefaultHeaderContent = exports.DefaultDrawerContent = exports.UserSubscribedGroupsWidgetSkeleton = exports.UserSubscribedGroupsWidget = exports.GroupInvitedWidgetSkeleton = exports.GroupInvitedWidget = exports.GroupForm = exports.GroupsSkeleton = exports.Groups = void 0;
7
+ exports.LogoSelfCommunity = exports.GroupSettingsIconButton = exports.BaseDialog = exports.BaseItem = exports.FooterSkeleton = exports.Footer = exports.getRelativeTime = exports.MessageUploaderUtils = exports.getUnseenNotificationCounter = exports.getUnseenNotification = exports.bytesToSize = exports.ContributionUtils = exports.IncubatorSuggestionWidget = exports.IncubatorDetail = exports.IncubatorListWidget = exports.IncubatorSubscribeButton = exports.Incubator = exports.PollSuggestionWidget = exports.DEFAULT_WIDGETS_NUMBER = exports.DEFAULT_PAGINATION_LIMIT = exports.DEFAULT_PAGINATION_OFFSET = exports.DEFAULT_PAGINATION_QUERY_PARAM_NAME = exports.DEFAULT_FIELDS = exports.LEGAL_POLICIES = exports.ConsentSolutionButton = exports.ConsentSolutionSkeleton = void 0;
8
8
  const tslib_1 = require("tslib");
9
9
  /**
10
10
  * Components
@@ -246,6 +246,8 @@ const UserAvatar_1 = tslib_1.__importDefault(require("./shared/UserAvatar"));
246
246
  exports.UserAvatar = UserAvatar_1.default;
247
247
  const Lightbox_1 = tslib_1.__importDefault(require("./shared/Lightbox"));
248
248
  exports.Lightbox = Lightbox_1.default;
249
+ const Calendar_1 = tslib_1.__importDefault(require("./shared/Calendar"));
250
+ exports.Calendar = Calendar_1.default;
249
251
  const Media_2 = require("./constants/Media");
250
252
  Object.defineProperty(exports, "MEDIA_TYPE_EMBED", { enumerable: true, get: function () { return Media_2.MEDIA_TYPE_EMBED; } });
251
253
  const PollSuggestionWidget_1 = tslib_1.__importDefault(require("./components/PollSuggestionWidget"));
@@ -336,6 +338,11 @@ exports.Events = Events_1.default;
336
338
  Object.defineProperty(exports, "EventsSkeleton", { enumerable: true, get: function () { return Events_1.EventsSkeleton; } });
337
339
  const EventInviteButton_1 = tslib_1.__importDefault(require("./components/EventInviteButton"));
338
340
  exports.EventInviteButton = EventInviteButton_1.default;
341
+ const EventHeader_1 = tslib_1.__importStar(require("./components/EventHeader"));
342
+ exports.EventHeader = EventHeader_1.default;
343
+ Object.defineProperty(exports, "EventHeaderSkeleton", { enumerable: true, get: function () { return EventHeader_1.EventHeaderSkeleton; } });
344
+ const EditEventButton_1 = tslib_1.__importDefault(require("./components/EditEventButton"));
345
+ exports.EditEventButton = EditEventButton_1.default;
339
346
  /**
340
347
  * Constants
341
348
  */
@@ -71,6 +71,6 @@ export default function CreateEventButton(inProps) {
71
71
  * Renders root object
72
72
  */
73
73
  return (React.createElement(React.Fragment, null,
74
- React.createElement(Root, Object.assign({ className: classNames(classes.root, className), onClick: handleClick, variant: "contained", color: "secondary", startIcon: React.createElement(Icon, { fontSize: "small" }, "add") }, rest), children !== null && children !== void 0 ? children : React.createElement(FormattedMessage, { id: "ui.createEventButton", defaultMessage: "ui.createEventButton" })),
74
+ React.createElement(Root, Object.assign({ className: classNames(classes.root, className), onClick: handleClick, variant: "contained", color: "secondary", startIcon: !EventFormProps.event && React.createElement(Icon, { fontSize: "small" }, "add") }, rest), children !== null && children !== void 0 ? children : React.createElement(FormattedMessage, { id: "ui.createEventButton", defaultMessage: "ui.createEventButton" })),
75
75
  open && React.createElement(EventForm, Object.assign({}, EventFormProps, { open: true, onClose: handleClick }))));
76
76
  }
@@ -0,0 +1,43 @@
1
+ import { CreateEventButtonProps } from '../CreateEventButton';
2
+ import { SCEventType } from '@selfcommunity/types';
3
+ export interface EditEventButtonProps extends CreateEventButtonProps {
4
+ /**
5
+ * Event Object
6
+ * @default null
7
+ */
8
+ event?: SCEventType;
9
+ /**
10
+ * Id of the event
11
+ * @default null
12
+ */
13
+ eventId?: number | string;
14
+ /**
15
+ * On edit success callback function
16
+ * @default null
17
+ */
18
+ onEditSuccess?: (data: SCEventType) => void;
19
+ /**
20
+ * Any other properties
21
+ */
22
+ [p: string]: any;
23
+ }
24
+ /**
25
+ *> API documentation for the Community-JS Create Event Button component. Learn about the available props and the CSS API.
26
+ *
27
+ #### Import
28
+ ```jsx
29
+ import {CreateEventButton} from '@selfcommunity/react-ui';
30
+ ```
31
+
32
+ #### Component Name
33
+ The name `SCEditEventButton` can be used when providing style overrides in the theme.
34
+
35
+ #### CSS
36
+
37
+ |Rule Name|Global class|Description|
38
+ |---|---|---|
39
+ |root|.SCEditEventButton-root|Styles applied to the root element.|
40
+
41
+ * @param inProps
42
+ */
43
+ export default function EditEventButton(inProps: EditEventButtonProps): JSX.Element;
@@ -0,0 +1,58 @@
1
+ import { __rest } from "tslib";
2
+ import React from 'react';
3
+ import { useThemeProps } from '@mui/system';
4
+ import { styled } from '@mui/material/styles';
5
+ import { FormattedMessage } from 'react-intl';
6
+ import { useSCFetchEvent, useSCUser } from '@selfcommunity/react-core';
7
+ import classNames from 'classnames';
8
+ import CreateEventButton from '../CreateEventButton';
9
+ const PREFIX = 'SCEditEventButton';
10
+ const classes = {
11
+ root: `${PREFIX}-root`
12
+ };
13
+ const Root = styled(CreateEventButton, {
14
+ name: PREFIX,
15
+ slot: 'Root',
16
+ overridesResolver: (props, styles) => styles.root
17
+ })(({ theme }) => ({}));
18
+ /**
19
+ *> API documentation for the Community-JS Create Event Button component. Learn about the available props and the CSS API.
20
+ *
21
+ #### Import
22
+ ```jsx
23
+ import {CreateEventButton} from '@selfcommunity/react-ui';
24
+ ```
25
+
26
+ #### Component Name
27
+ The name `SCEditEventButton` can be used when providing style overrides in the theme.
28
+
29
+ #### CSS
30
+
31
+ |Rule Name|Global class|Description|
32
+ |---|---|---|
33
+ |root|.SCEditEventButton-root|Styles applied to the root element.|
34
+
35
+ * @param inProps
36
+ */
37
+ export default function EditEventButton(inProps) {
38
+ //PROPS
39
+ const props = useThemeProps({
40
+ props: inProps,
41
+ name: PREFIX
42
+ });
43
+ const { className, eventId, event, onEditSuccess } = props, rest = __rest(props, ["className", "eventId", "event", "onEditSuccess"]);
44
+ const { scEvent, setSCEvent } = useSCFetchEvent({ id: eventId, event });
45
+ const scUserContext = useSCUser();
46
+ const handleSuccess = (data) => {
47
+ setSCEvent(data);
48
+ onEditSuccess && onEditSuccess(data);
49
+ };
50
+ if (!scUserContext.user) {
51
+ return null;
52
+ }
53
+ /**
54
+ * Renders root object
55
+ */
56
+ return (React.createElement(Root, Object.assign({ variant: "outlined", className: classNames(classes.root, className), EventFormProps: { event: scEvent, onSuccess: handleSuccess } }, rest),
57
+ React.createElement(FormattedMessage, { id: "ui.editEventButton", defaultMessage: "ui.editEventButton" })));
58
+ }
@@ -0,0 +1,3 @@
1
+ import EditEventButton, { EditEventButtonProps } from './EditEventButton';
2
+ export default EditEventButton;
3
+ export { EditEventButtonProps };
@@ -0,0 +1,2 @@
1
+ import EditEventButton from './EditEventButton';
2
+ export default EditEventButton;
@@ -1,5 +1,6 @@
1
- import { SCEventLocationType } from '@selfcommunity/types';
1
+ import { SCEventLocationType, SCEventType } from '@selfcommunity/types';
2
2
  export interface EventAddressProps {
3
+ event?: SCEventType;
3
4
  forwardGeolocationData: (data: {
4
5
  location: SCEventLocationType;
5
6
  geolocation?: string;
@@ -38,10 +38,10 @@ export default function EventAddress(inProps) {
38
38
  // INTL
39
39
  const intl = useIntl();
40
40
  // PROPS
41
- const { className, forwardGeolocationData } = props;
41
+ const { className, forwardGeolocationData, event } = props;
42
42
  // STATE
43
- const [location, setLocation] = useState(SCEventLocationType.PERSON);
44
- const [geolocation, setGeoLocation] = useState(null);
43
+ const [location, setLocation] = useState(event ? event.location : SCEventLocationType.PERSON);
44
+ const [geolocation, setGeoLocation] = useState(event ? event.geolocation : null);
45
45
  const [inputValue, setInputValue] = useState('');
46
46
  const [suggestions, setSuggestions] = useState([]);
47
47
  const [timeoutId, setTimeoutId] = useState(null);
@@ -116,7 +116,7 @@ export default function EventAddress(inProps) {
116
116
  React.createElement(Tab, { value: SCEventLocationType.PERSON, classes: { root: classes.tab }, icon: React.createElement(Icon, null, "add_location_alt"), iconPosition: "start", label: React.createElement(FormattedMessage, { id: "ui.eventForm.address.live.label", defaultMessage: "ui.eventForm.address.live.label" }) }),
117
117
  React.createElement(Tab, { value: SCEventLocationType.ONLINE, classes: { root: classes.tab }, icon: React.createElement(Icon, null, "play_circle_outline"), iconPosition: "start", label: React.createElement(FormattedMessage, { id: "ui.eventForm.address.online.label", defaultMessage: "ui.eventForm.address.online.label" }) })),
118
118
  React.createElement(Box, { className: classes.tabContent },
119
- location === SCEventLocationType.PERSON && (React.createElement(Autocomplete, { freeSolo: true, size: "small", value: geolocation, onChange: handleSelection, inputValue: inputValue, onInputChange: handleLocationChange, options: suggestions, getOptionLabel: (option) => option.description, noOptionsText: React.createElement(FormattedMessage, { id: "ui.eventForm.address.live.noResults", defaultMessage: "ui.eventForm.address.live.noResults" }), renderInput: (params) => (React.createElement(TextField, Object.assign({}, params, { label: React.createElement(FormattedMessage, { id: "ui.eventForm.address.live.placeholder", defaultMessage: "ui.eventForm.address.live.placeholder" }), variant: "outlined", fullWidth: true, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
119
+ location === SCEventLocationType.PERSON && (React.createElement(Autocomplete, { freeSolo: true, size: "small", value: geolocation, onChange: handleSelection, inputValue: inputValue, onInputChange: handleLocationChange, options: suggestions, getOptionLabel: (option) => option.description || geolocation, noOptionsText: React.createElement(FormattedMessage, { id: "ui.eventForm.address.live.noResults", defaultMessage: "ui.eventForm.address.live.noResults" }), renderInput: (params) => (React.createElement(TextField, Object.assign({}, params, { label: React.createElement(FormattedMessage, { id: "ui.eventForm.address.live.placeholder", defaultMessage: "ui.eventForm.address.live.placeholder" }), variant: "outlined", fullWidth: true, InputProps: Object.assign(Object.assign({}, params.InputProps), { endAdornment: (React.createElement(React.Fragment, null,
120
120
  React.createElement(InputAdornment, { position: "start" },
121
121
  React.createElement(Icon, null, "add_location_alt")),
122
122
  params.InputProps.endAdornment)) }) }))) })),
@@ -1,4 +1,5 @@
1
1
  import { BaseDialogProps } from '../../shared/BaseDialog';
2
+ import { SCEventType } from '@selfcommunity/types';
2
3
  export interface EventFormProps extends BaseDialogProps {
3
4
  /**
4
5
  * Overrides or extends the styles applied to the component.
@@ -15,6 +16,11 @@ export interface EventFormProps extends BaseDialogProps {
15
16
  * @default null
16
17
  */
17
18
  onClose?: () => void;
19
+ /**
20
+ * Event Object
21
+ * @default null
22
+ */
23
+ event?: SCEventType;
18
24
  /**
19
25
  * On success callback function
20
26
  * @default null
@@ -20,6 +20,8 @@ import { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns';
20
20
  import EventAddress from './EventAddress';
21
21
  import itLocale from 'date-fns/locale/it';
22
22
  import enLocale from 'date-fns/locale/en-US';
23
+ import { SCGroupEventType, SCTopicType } from '../../constants/PubSub';
24
+ import PubSub from 'pubsub-js';
23
25
  const messages = defineMessages({
24
26
  name: {
25
27
  id: 'ui.eventForm.name.placeholder',
@@ -108,35 +110,35 @@ const Root = styled(BaseDialog, {
108
110
  * @param inProps
109
111
  */
110
112
  export default function EventForm(inProps) {
111
- var _a, _b, _c, _d, _e;
113
+ var _a, _b, _c, _d, _e, _f, _g;
112
114
  //PROPS
113
115
  const props = useThemeProps({
114
116
  props: inProps,
115
117
  name: PREFIX
116
118
  });
117
- const { className, open = true, onClose, onSuccess } = props, rest = __rest(props, ["className", "open", "onClose", "onSuccess"]);
119
+ const { className, open = true, onClose, onSuccess, event = null } = props, rest = __rest(props, ["className", "open", "onClose", "onSuccess", "event"]);
118
120
  // CONTEXT
119
121
  const scContext = useSCContext();
120
122
  // INTL
121
123
  const intl = useIntl();
122
124
  const initialFieldState = {
123
- imageOriginal: '',
125
+ imageOriginal: event ? event.image_bigger : '',
124
126
  imageOriginalFile: '',
125
- startDate: null,
126
- startTime: null,
127
- endDate: null,
128
- endTime: null,
129
- location: SCEventLocationType.PERSON,
130
- geolocation: '',
131
- lat: null,
132
- lng: null,
133
- link: '',
134
- recurring: SCEventRecurrenceType.NEVER,
135
- name: '',
136
- description: '',
137
- isPublic: true,
127
+ startDate: event ? new Date(event.start_date) : null,
128
+ startTime: event ? new Date(event.start_date) : null,
129
+ endDate: event && event.end_date ? new Date(event.end_date) : null,
130
+ endTime: event && event.end_date ? new Date(event.end_date) : null,
131
+ location: event ? event.location : SCEventLocationType.PERSON,
132
+ geolocation: event ? event.geolocation : '',
133
+ lat: event ? event.geolocation_lat : null,
134
+ lng: event ? event.geolocation_lng : null,
135
+ link: event ? event.link : '',
136
+ recurring: event ? event.recurring : SCEventRecurrenceType.NEVER,
137
+ name: event ? event.name : '',
138
+ description: event ? event.description : '',
139
+ isPublic: (_a = (event && event.privacy === SCEventPrivacyType.PUBLIC)) !== null && _a !== void 0 ? _a : true,
138
140
  isSubmitting: false,
139
- showEndDateTime: false
141
+ showEndDateTime: (_b = (event && event.end_date)) !== null && _b !== void 0 ? _b : false
140
142
  };
141
143
  // STATE
142
144
  const [field, setField] = useState(initialFieldState);
@@ -171,6 +173,22 @@ export default function EventForm(inProps) {
171
173
  setError(error);
172
174
  }
173
175
  }
176
+ /**
177
+ * Notify when a group info changed
178
+ * @param data
179
+ */
180
+ function notifyChanges(data) {
181
+ if (data) {
182
+ if (event) {
183
+ // Edit group
184
+ PubSub.publish(`${SCTopicType.EVENT}.${SCGroupEventType.EDIT}`, data);
185
+ }
186
+ else {
187
+ // Create group
188
+ PubSub.publish(`${SCTopicType.EVENT}.${SCGroupEventType.CREATE}`, data);
189
+ }
190
+ }
191
+ }
174
192
  const handleGeoData = (data) => {
175
193
  setField((prev) => (Object.assign(Object.assign({}, prev), data)));
176
194
  };
@@ -202,9 +220,17 @@ export default function EventForm(inProps) {
202
220
  formData.append('visible', true);
203
221
  }
204
222
  formData.append('description', field.description);
205
- EventService.createEvent(formData, { headers: { 'Content-Type': 'multipart/form-data' } })
223
+ let eventService;
224
+ if (event) {
225
+ eventService = EventService.updateEvent(event.id, formData, { headers: { 'Content-Type': 'multipart/form-data' } });
226
+ }
227
+ else {
228
+ eventService = EventService.createEvent(formData, { headers: { 'Content-Type': 'multipart/form-data' } });
229
+ }
230
+ eventService
206
231
  .then((data) => {
207
232
  onSuccess && onSuccess(data);
233
+ notifyChanges(data);
208
234
  onClose && onClose();
209
235
  setField((prev) => (Object.assign(Object.assign({}, prev), { ['isSubmitting']: false })));
210
236
  })
@@ -240,21 +266,21 @@ export default function EventForm(inProps) {
240
266
  /**
241
267
  * Renders root object
242
268
  */
243
- return (React.createElement(Root, Object.assign({ DialogContentProps: { dividers: false }, title: React.createElement(FormattedMessage, { id: "ui.eventForm.title", defaultMessage: "ui.eventForm.title" }), open: open, onClose: onClose, className: classNames(classes.root, className), actions: React.createElement(LoadingButton, { loading: field.isSubmitting, disabled: !field.name ||
269
+ return (React.createElement(Root, Object.assign({ DialogContentProps: { dividers: false }, title: event ? (React.createElement(FormattedMessage, { id: "ui.eventForm.title.edit", defaultMessage: "ui.eventForm.title.edit" })) : (React.createElement(FormattedMessage, { id: "ui.eventForm.title", defaultMessage: "ui.eventForm.title" })), open: open, onClose: onClose, className: classNames(classes.root, className), actions: React.createElement(LoadingButton, { loading: field.isSubmitting, disabled: !field.name ||
244
270
  (!field.startDate && !field.startTime) ||
245
271
  (field.location === SCEventLocationType.ONLINE && !field.link) ||
246
272
  (field.location === SCEventLocationType.PERSON && !field.geolocation) ||
247
273
  (field.recurring !== SCEventRecurrenceType.NEVER && !field.endDate && !field.endTime) ||
248
274
  Object.keys(error).length !== 0 ||
249
275
  field.name.length > EVENT_TITLE_MAX_LENGTH ||
250
- field.description.length > EVENT_DESCRIPTION_MAX_LENGTH, variant: "contained", onClick: handleSubmit, color: "secondary" }, React.createElement(FormattedMessage, { id: "ui.eventForm.button.create", defaultMessage: "ui.eventForm.button.create" })) }, rest),
276
+ field.description.length > EVENT_DESCRIPTION_MAX_LENGTH, variant: "contained", onClick: handleSubmit, color: "secondary" }, event ? (React.createElement(FormattedMessage, { id: "ui.eventForm.button.edit", defaultMessage: "ui.eventForm.button.edit" })) : (React.createElement(FormattedMessage, { id: "ui.eventForm.button.create", defaultMessage: "ui.eventForm.button.create" }))) }, rest),
251
277
  React.createElement(React.Fragment, null,
252
278
  React.createElement(Paper, { style: _backgroundCover, classes: { root: classes.cover } },
253
- React.createElement(UploadEventCover, { onChange: handleChangeCover })),
279
+ React.createElement(UploadEventCover, { isCreationMode: true, onChange: handleChangeCover })),
254
280
  React.createElement(FormGroup, { className: classes.form },
255
281
  React.createElement(TextField, { required: true, className: classes.name, placeholder: `${intl.formatMessage(messages.name)}`, margin: "normal", value: field.name, name: "name", onChange: handleChange, InputProps: {
256
282
  endAdornment: React.createElement(Typography, { variant: "body2" }, EVENT_TITLE_MAX_LENGTH - field.name.length)
257
- }, error: Boolean(((_a = field === null || field === void 0 ? void 0 : field.name) === null || _a === void 0 ? void 0 : _a.length) > EVENT_TITLE_MAX_LENGTH) || Boolean(error[`nameError`]), helperText: ((_b = field === null || field === void 0 ? void 0 : field.name) === null || _b === void 0 ? void 0 : _b.length) > EVENT_TITLE_MAX_LENGTH ? (React.createElement(FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error[`nameError`] ? (error[`nameError`]) : null }),
283
+ }, error: Boolean(((_c = field === null || field === void 0 ? void 0 : field.name) === null || _c === void 0 ? void 0 : _c.length) > EVENT_TITLE_MAX_LENGTH) || Boolean(error[`nameError`]), helperText: ((_d = field === null || field === void 0 ? void 0 : field.name) === null || _d === void 0 ? void 0 : _d.length) > EVENT_TITLE_MAX_LENGTH ? (React.createElement(FormattedMessage, { id: "ui.eventForm.name.error.maxLength", defaultMessage: "ui.eventForm.name.error.maxLength" })) : error[`nameError`] ? (error[`nameError`]) : null }),
258
284
  React.createElement(Box, { className: classes.dateTime },
259
285
  React.createElement(LocalizationProvider, { dateAdapter: AdapterDateFns, adapterLocale: scContext.settings.locale.default === 'it' ? itLocale : enLocale },
260
286
  React.createElement(MobileDatePicker, { className: classes.picker, disablePast: true, label: field.startDate && React.createElement(FormattedMessage, { id: "ui.eventForm.date.placeholder", defaultMessage: "ui.eventForm.date.placeholder" }), value: field.startDate, slots: {
@@ -304,7 +330,7 @@ export default function EventForm(inProps) {
304
330
  }, onChange: (value) => handleChangeDateTime(value, 'endTime') })))),
305
331
  React.createElement(Button, { variant: "text", color: "secondary", onClick: () => setField((prev) => (Object.assign(Object.assign({}, prev), { ['showEndDateTime']: !field.showEndDateTime }))), disabled: field.showEndDateTime && field.recurring !== SCEventRecurrenceType.NEVER },
306
332
  React.createElement(FormattedMessage, { id: "ui.eventForm.dateTime.placeholder", defaultMessage: "ui.eventForm.dateTime.placeholder", values: { symbol: field.showEndDateTime ? '-' : '+' } })),
307
- React.createElement(EventAddress, { forwardGeolocationData: handleGeoData }),
333
+ React.createElement(EventAddress, { forwardGeolocationData: handleGeoData, event: event !== null && event !== void 0 ? event : null }),
308
334
  privateEnabled && (React.createElement(Box, { className: classes.privacySection },
309
335
  React.createElement(Stack, { direction: "row", spacing: 1, alignItems: "center", justifyContent: "center" },
310
336
  React.createElement(Typography, { className: classNames(classes.switchLabel, { [classes.active]: !field.isPublic }) },
@@ -328,6 +354,6 @@ export default function EventForm(inProps) {
328
354
  b: (chunks) => React.createElement("strong", null, chunks)
329
355
  } }))))))),
330
356
  React.createElement(TextField, { multiline: true, className: classes.description, placeholder: `${intl.formatMessage(messages.description)}`, margin: "normal", value: field.description, name: "description", onChange: handleChange, InputProps: {
331
- endAdornment: (React.createElement(Typography, { variant: "body2" }, ((_c = field.description) === null || _c === void 0 ? void 0 : _c.length) ? EVENT_DESCRIPTION_MAX_LENGTH - field.description.length : EVENT_DESCRIPTION_MAX_LENGTH))
332
- }, error: Boolean(((_d = field.description) === null || _d === void 0 ? void 0 : _d.length) > EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_e = field.description) === null || _e === void 0 ? void 0 : _e.length) > EVENT_DESCRIPTION_MAX_LENGTH ? (React.createElement(FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null })))));
357
+ endAdornment: (React.createElement(Typography, { variant: "body2" }, ((_e = field.description) === null || _e === void 0 ? void 0 : _e.length) ? EVENT_DESCRIPTION_MAX_LENGTH - field.description.length : EVENT_DESCRIPTION_MAX_LENGTH))
358
+ }, error: Boolean(((_f = field.description) === null || _f === void 0 ? void 0 : _f.length) > EVENT_DESCRIPTION_MAX_LENGTH), helperText: ((_g = field.description) === null || _g === void 0 ? void 0 : _g.length) > EVENT_DESCRIPTION_MAX_LENGTH ? (React.createElement(FormattedMessage, { id: "ui.eventForm.description.error.maxLength", defaultMessage: "ui.eventForm.description.error.maxLength" })) : null })))));
333
359
  }
@@ -1,4 +1,9 @@
1
1
  export interface UploadEventCoverProps {
2
+ /**
3
+ * Id of the event. It is optional only for event creation modal.
4
+ * @default null
5
+ */
6
+ eventId?: number;
2
7
  /**
3
8
  * On change function.
4
9
  * @default null
@@ -9,6 +14,11 @@ export interface UploadEventCoverProps {
9
14
  * @default null
10
15
  */
11
16
  className?: string;
17
+ /**
18
+ * Prop to handle cover loading in the create event modal.
19
+ * @default false
20
+ */
21
+ isCreationMode?: boolean;
12
22
  /**
13
23
  * Any other properties
14
24
  */
@@ -8,6 +8,16 @@ import classNames from 'classnames';
8
8
  import { useThemeProps } from '@mui/system';
9
9
  import { PREFIX } from './constants';
10
10
  import { LoadingButton } from '@mui/lab';
11
+ import { SCOPE_SC_UI } from '../../constants/Errors';
12
+ import { EventService } from '@selfcommunity/api-services';
13
+ import { Logger } from '@selfcommunity/utils';
14
+ import { defineMessages, useIntl } from 'react-intl';
15
+ const messages = defineMessages({
16
+ errorLoadImage: {
17
+ id: 'ui.changeGroupCover.button.change.alertErrorImage',
18
+ defaultMessage: 'ui.changeGroupCover.button.change.alertErrorImage'
19
+ }
20
+ });
11
21
  const classes = {
12
22
  root: `${PREFIX}-upload-event-cover-root`
13
23
  };
@@ -44,13 +54,15 @@ export default function UploadEventCover(inProps) {
44
54
  props: inProps,
45
55
  name: PREFIX
46
56
  });
47
- const { onChange, className = false } = props, rest = __rest(props, ["onChange", "className"]);
57
+ const { eventId, onChange, className = false, isCreationMode = false } = props, rest = __rest(props, ["eventId", "onChange", "className", "isCreationMode"]);
48
58
  //CONTEXT
49
59
  const scUserContext = useContext(SCUserContext);
50
60
  //STATE
51
61
  let fileInput = useRef(null);
52
62
  const [loading, setLoading] = useState(false);
53
63
  const [alert, setAlert] = useState(null);
64
+ // INTL
65
+ const intl = useIntl();
54
66
  // Anonymous
55
67
  if (!scUserContext.user) {
56
68
  return null;
@@ -66,12 +78,7 @@ export default function UploadEventCover(inProps) {
66
78
  reader.onload = (e) => {
67
79
  const img = new Image();
68
80
  img.onload = () => {
69
- onChange && onChange(fileInput);
70
- // if (img.width < 1920) {
71
- // setAlert(intl.formatMessage(messages.errorImageSize));
72
- // } else {
73
- // isCreationMode ? onChange && onChange(fileInput) : handleSave();
74
- // }
81
+ isCreationMode ? onChange && onChange(fileInput) : handleSave();
75
82
  };
76
83
  // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
77
84
  // @ts-ignore
@@ -82,6 +89,26 @@ export default function UploadEventCover(inProps) {
82
89
  reader.readAsDataURL(fileInput);
83
90
  }
84
91
  };
92
+ /**
93
+ * Handles cover saving after upload action
94
+ */
95
+ function handleSave() {
96
+ setLoading(true);
97
+ const formData = new FormData();
98
+ // eslint-disable-next-line @typescript-eslint/ban-ts-ignore
99
+ // @ts-ignore
100
+ formData.append('image_original', fileInput);
101
+ EventService.changeEventCover(eventId, formData, { headers: { 'Content-Type': 'multipart/form-data' } })
102
+ .then((data) => {
103
+ onChange && onChange(data.image_medium);
104
+ setLoading(false);
105
+ })
106
+ .catch((error) => {
107
+ Logger.error(SCOPE_SC_UI, error);
108
+ setLoading(false);
109
+ setAlert(intl.formatMessage(messages.errorLoadImage));
110
+ });
111
+ }
85
112
  /**
86
113
  * If there is an error
87
114
  */
@@ -0,0 +1,67 @@
1
+ import { SCEventType } from '@selfcommunity/types';
2
+ import { EventSubscribeButtonProps } from '../EventSubscribeButton';
3
+ export interface EventHeaderProps {
4
+ /**
5
+ * Id of event object
6
+ * @default null
7
+ */
8
+ id?: string;
9
+ /**
10
+ * Overrides or extends the styles applied to the component.
11
+ * @default null
12
+ */
13
+ className?: string;
14
+ /**
15
+ * Event Object
16
+ * @default null
17
+ */
18
+ event?: SCEventType;
19
+ /**
20
+ * Id of the event
21
+ * @default null
22
+ */
23
+ eventId?: number;
24
+ /**
25
+ * Props to spread event button followed
26
+ * @default {}
27
+ */
28
+ EventSubscribeButtonProps?: EventSubscribeButtonProps;
29
+ /**
30
+ * Any other properties
31
+ */
32
+ [p: string]: any;
33
+ }
34
+ /**
35
+ * > API documentation for the Community-JS Event Header component. Learn about the available props and the CSS API.
36
+ *
37
+ *
38
+ * This component renders the events top section.
39
+
40
+ #### Import
41
+
42
+ ```jsx
43
+ import {UserProfileHeader} from '@selfcommunity/react-ui';
44
+ ```
45
+
46
+ #### Component Name
47
+
48
+ The name `SCEventHeader` can be used when providing style overrides in the theme.
49
+
50
+
51
+ #### CSS
52
+
53
+ |Rule Name|Global class|Description|
54
+ |---|---|---|
55
+ |root|.SCEventHeader-root|Styles applied to the root element.|
56
+ |cover|.SCEventHeader-cover|Styles applied to the cover element.|
57
+ |time|.SCEventHeader-time|Styles applied to the time element.|
58
+ |calendar|.SCEventHeader-calendar|Styles applied to the calendar element.|
59
+ |info|SCEventHeader-info|Styles applied to the info section.|
60
+ |name|SCEventHeader-username|Styles applied to the username element.|
61
+ |visibility|SCEventHeader-visibility|Styles applied to the visibility section.|
62
+ |visibilityItem|SCEventHeader-visibility-item|Styles applied to the visibility element.|
63
+ |multiActions|SCEventHeader-multi-action|Styles applied to the multi actions section.|
64
+
65
+ * @param inProps
66
+ */
67
+ export default function EventHeader(inProps: EventHeaderProps): JSX.Element;