stream-chat-react 14.12.0 → 15.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ListItemLayout.60c3b287.js +2181 -0
- package/dist/cjs/ListItemLayout.60c3b287.js.map +1 -0
- package/dist/cjs/{ReactPlayerWrapper.7cc7b0d8.js → ReactPlayerWrapper.f04b1d06.js} +3 -3
- package/dist/cjs/{ReactPlayerWrapper.7cc7b0d8.js.map → ReactPlayerWrapper.f04b1d06.js.map} +1 -1
- package/dist/cjs/SlotLayout.de45be2d.js +1672 -0
- package/dist/cjs/SlotLayout.de45be2d.js.map +1 -0
- package/dist/cjs/Thread.373af587.js +7479 -0
- package/dist/cjs/Thread.373af587.js.map +1 -0
- package/dist/cjs/channel-detail.js +409 -389
- package/dist/cjs/channel-detail.js.map +1 -1
- package/dist/cjs/emojis.js +18 -16
- package/dist/cjs/emojis.js.map +1 -1
- package/dist/cjs/index.js +14467 -20208
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/slot-geometry.js +145 -0
- package/dist/cjs/slot-geometry.js.map +1 -0
- package/dist/cjs/slot-layout.js +37 -0
- package/dist/cjs/useChannel.1004ed4c.js +18 -0
- package/dist/cjs/useChannel.1004ed4c.js.map +1 -0
- package/dist/cjs/useComponentContextIcons.d16834d9.js +1729 -0
- package/dist/cjs/useComponentContextIcons.d16834d9.js.map +1 -0
- package/dist/cjs/useIsCooldownActive.1f778bc1.js +110 -0
- package/dist/cjs/useIsCooldownActive.1f778bc1.js.map +1 -0
- package/dist/css/channel-detail.css.map +1 -1
- package/dist/css/index.css +208 -103
- package/dist/css/index.css.map +1 -1
- package/dist/es/a11y/accessibleLabel.mjs +6 -2
- package/dist/es/a11y/accessibleLabel.mjs.map +1 -1
- package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs +6 -5
- package/dist/es/components/AIStateIndicator/AIStateIndicator.mjs.map +1 -1
- package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs +9 -33
- package/dist/es/components/AIStateIndicator/hooks/useAIState.mjs.map +1 -1
- package/dist/es/components/Accessibility/NotificationAnnouncer.mjs +2 -3
- package/dist/es/components/Accessibility/NotificationAnnouncer.mjs.map +1 -1
- package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs +10 -5
- package/dist/es/components/Accessibility/hooks/useIncomingMessageAnnouncements.mjs.map +1 -1
- package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs +38 -28
- package/dist/es/components/Accessibility/hooks/useInteractionAnnouncements.mjs.map +1 -1
- package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs +5 -8
- package/dist/es/components/Accessibility/useAriaLiveAnnouncer.mjs.map +1 -1
- package/dist/es/components/Attachment/Attachment.mjs +21 -6
- package/dist/es/components/Attachment/Attachment.mjs.map +1 -1
- package/dist/es/components/Attachment/AttachmentActions.mjs +10 -9
- package/dist/es/components/Attachment/AttachmentActions.mjs.map +1 -1
- package/dist/es/components/Attachment/AttachmentContainer.mjs +21 -17
- package/dist/es/components/Attachment/AttachmentContainer.mjs.map +1 -1
- package/dist/es/components/Attachment/Audio.mjs +15 -10
- package/dist/es/components/Attachment/Audio.mjs.map +1 -1
- package/dist/es/components/Attachment/FileAttachment.mjs +4 -5
- package/dist/es/components/Attachment/FileAttachment.mjs.map +1 -1
- package/dist/es/components/Attachment/Geolocation.mjs +29 -17
- package/dist/es/components/Attachment/Geolocation.mjs.map +1 -1
- package/dist/es/components/Attachment/Giphy.mjs +4 -4
- package/dist/es/components/Attachment/Giphy.mjs.map +1 -1
- package/dist/es/components/Attachment/LinkPreview/Card.mjs +4 -4
- package/dist/es/components/Attachment/LinkPreview/Card.mjs.map +1 -1
- package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs +2 -2
- package/dist/es/components/Attachment/LinkPreview/UnableToRenderCard.mjs.map +1 -1
- package/dist/es/components/Attachment/ModalGallery.mjs +20 -8
- package/dist/es/components/Attachment/ModalGallery.mjs.map +1 -1
- package/dist/es/components/Attachment/UnsupportedAttachment.mjs +3 -3
- package/dist/es/components/Attachment/UnsupportedAttachment.mjs.map +1 -1
- package/dist/es/components/Attachment/VideoAttachment.mjs +10 -10
- package/dist/es/components/Attachment/VideoAttachment.mjs.map +1 -1
- package/dist/es/components/Attachment/VisibilityDisclaimer.mjs +2 -2
- package/dist/es/components/Attachment/VisibilityDisclaimer.mjs.map +1 -1
- package/dist/es/components/Attachment/VoiceRecording.mjs +17 -12
- package/dist/es/components/Attachment/VoiceRecording.mjs.map +1 -1
- package/dist/es/components/Attachment/components/AttachmentUploadProgressIndicator.mjs +1 -1
- package/dist/es/components/Attachment/components/DownloadButton.mjs +3 -3
- package/dist/es/components/Attachment/components/DownloadButton.mjs.map +1 -1
- package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs +4 -30
- package/dist/es/components/Attachment/hooks/useAttachmentUploadState.mjs.map +1 -1
- package/dist/es/components/Attachment/utils.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/AudioPlaybackArbiter.mjs +57 -0
- package/dist/es/components/AudioPlayback/AudioPlaybackArbiter.mjs.map +1 -0
- package/dist/es/components/AudioPlayback/AudioPlayer.mjs +329 -314
- package/dist/es/components/AudioPlayback/AudioPlayer.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs +54 -90
- package/dist/es/components/AudioPlayback/AudioPlayerPool.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs +20 -6
- package/dist/es/components/AudioPlayback/WithAudioPlayback.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/components/ProgressBar.mjs +2 -2
- package/dist/es/components/AudioPlayback/components/ProgressBar.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs +2 -2
- package/dist/es/components/AudioPlayback/components/WaveProgressBar.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs +2 -2
- package/dist/es/components/AudioPlayback/components/progressBarA11y.mjs.map +1 -1
- package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs +4 -4
- package/dist/es/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.mjs.map +1 -1
- package/dist/es/components/Avatar/Avatar.mjs.map +1 -1
- package/dist/es/components/Avatar/AvatarStack.mjs +1 -1
- package/dist/es/components/Avatar/AvatarStack.mjs.map +1 -1
- package/dist/es/components/Badge/Badge.mjs.map +1 -1
- package/dist/es/components/Badge/MediaBadge.mjs +2 -1
- package/dist/es/components/Badge/MediaBadge.mjs.map +1 -1
- package/dist/es/components/BaseImage/ImagePlaceholder.mjs +3 -3
- package/dist/es/components/BaseImage/ImagePlaceholder.mjs.map +1 -1
- package/dist/es/components/Button/PlayButton.mjs +3 -3
- package/dist/es/components/Button/PlayButton.mjs.map +1 -1
- package/dist/es/components/Button/WorkspaceNavigationButtons.mjs +94 -0
- package/dist/es/components/Button/WorkspaceNavigationButtons.mjs.map +1 -0
- package/dist/es/components/Channel/Channel.mjs +34 -720
- package/dist/es/components/Channel/Channel.mjs.map +1 -1
- package/dist/es/components/Channel/hooks/useChannelCapabilities.mjs +21 -0
- package/dist/es/components/Channel/hooks/useChannelCapabilities.mjs.map +1 -0
- package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs +1 -1
- package/dist/es/components/Channel/hooks/useChannelContainerClasses.mjs.map +1 -1
- package/dist/es/components/ChannelHeader/ChannelHeader.mjs +17 -16
- package/dist/es/components/ChannelHeader/ChannelHeader.mjs.map +1 -1
- package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs +16 -41
- package/dist/es/components/ChannelHeader/hooks/useChannelHasMembersOnline.mjs.map +1 -1
- package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs +19 -21
- package/dist/es/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.mjs.map +1 -1
- package/dist/es/components/ChannelList/ChannelList.mjs +60 -131
- package/dist/es/components/ChannelList/ChannelList.mjs.map +1 -1
- package/dist/es/components/ChannelList/ChannelListHeader.mjs +4 -4
- package/dist/es/components/ChannelList/ChannelListHeader.mjs.map +1 -1
- package/dist/es/components/ChannelList/ChannelLists.mjs +31 -0
- package/dist/es/components/ChannelList/ChannelLists.mjs.map +1 -0
- package/dist/es/components/ChannelList/ChannelNavigation.mjs +36 -0
- package/dist/es/components/ChannelList/ChannelNavigation.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useChannelMembersState.mjs.map +1 -1
- package/dist/es/components/ChannelList/hooks/useChannelMembershipState.mjs.map +1 -1
- package/dist/es/components/ChannelList/hooks/useChannelPaginatorState.mjs +21 -0
- package/dist/es/components/ChannelList/hooks/useChannelPaginatorState.mjs.map +1 -0
- package/dist/es/components/ChannelList/hooks/useSelectedChannelState.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/ChannelListItem.mjs +23 -74
- package/dist/es/components/ChannelListItem/ChannelListItem.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs +34 -34
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.defaults.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs +2 -2
- package/dist/es/components/ChannelListItem/ChannelListItemActionButtons.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs +7 -6
- package/dist/es/components/ChannelListItem/ChannelListItemTimestamp.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs +15 -13
- package/dist/es/components/ChannelListItem/ChannelListItemUI.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs +7 -7
- package/dist/es/components/ChannelListItem/hooks/useChannelDisplayName.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs +8 -26
- package/dist/es/components/ChannelListItem/hooks/useIsChannelMuted.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs +1 -1
- package/dist/es/components/ChannelListItem/hooks/useIsUserMuted.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs +18 -50
- package/dist/es/components/ChannelListItem/hooks/useMessageDeliveryStatus.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/utils.a11y.mjs +35 -21
- package/dist/es/components/ChannelListItem/utils.a11y.mjs.map +1 -1
- package/dist/es/components/ChannelListItem/utils.mjs +31 -30
- package/dist/es/components/ChannelListItem/utils.mjs.map +1 -1
- package/dist/es/components/Chat/Chat.mjs +17 -16
- package/dist/es/components/Chat/Chat.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useChat.mjs +7 -49
- package/dist/es/components/Chat/hooks/useChat.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useCreateChatClient.mjs +1 -1
- package/dist/es/components/Chat/hooks/useCreateChatClient.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useCreateChatContext.mjs +3 -11
- package/dist/es/components/Chat/hooks/useCreateChatContext.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useNetworkConnectionState.mjs +46 -0
- package/dist/es/components/Chat/hooks/useNetworkConnectionState.mjs.map +1 -0
- package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs +112 -24
- package/dist/es/components/Chat/hooks/useReportLostConnectionSystemNotification.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useSplitActionSet.mjs +1 -1
- package/dist/es/components/Chat/hooks/useSplitActionSet.mjs.map +1 -1
- package/dist/es/components/Chat/hooks/useWSConnectionState.mjs +31 -0
- package/dist/es/components/Chat/hooks/useWSConnectionState.mjs.map +1 -0
- package/dist/es/components/DateSeparator/DateSeparator.mjs +2 -2
- package/dist/es/components/DateSeparator/DateSeparator.mjs.map +1 -1
- package/dist/es/components/Dialog/components/Alert.mjs +1 -1
- package/dist/es/components/Dialog/components/Callout.mjs +2 -2
- package/dist/es/components/Dialog/components/Callout.mjs.map +1 -1
- package/dist/es/components/Dialog/components/ContextMenu.mjs +9 -8
- package/dist/es/components/Dialog/components/ContextMenu.mjs.map +1 -1
- package/dist/es/components/Dialog/components/Prompt.mjs +5 -5
- package/dist/es/components/Dialog/components/Prompt.mjs.map +1 -1
- package/dist/es/components/Dialog/components/Viewer.mjs +5 -5
- package/dist/es/components/Dialog/components/Viewer.mjs.map +1 -1
- package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs +9 -1
- package/dist/es/components/Dialog/hooks/usePopoverPosition.mjs.map +1 -1
- package/dist/es/components/Dialog/service/DialogManager.mjs +22 -19
- package/dist/es/components/Dialog/service/DialogManager.mjs.map +1 -1
- package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs +6 -5
- package/dist/es/components/EmptyStateIndicator/EmptyStateIndicator.mjs.map +1 -1
- package/dist/es/components/Form/Dropdown.mjs +6 -3
- package/dist/es/components/Form/Dropdown.mjs.map +1 -1
- package/dist/es/components/Form/NumericInput.mjs +6 -5
- package/dist/es/components/Form/NumericInput.mjs.map +1 -1
- package/dist/es/components/Form/SwitchField.mjs +2 -2
- package/dist/es/components/Form/SwitchField.mjs.map +1 -1
- package/dist/es/components/Form/TextInput.mjs +1 -1
- package/dist/es/components/Gallery/GalleryContext.mjs +2 -8
- package/dist/es/components/Gallery/GalleryContext.mjs.map +1 -1
- package/dist/es/components/Gallery/GalleryHeader.mjs +39 -12
- package/dist/es/components/Gallery/GalleryHeader.mjs.map +1 -1
- package/dist/es/components/Gallery/GalleryUI.mjs +4 -4
- package/dist/es/components/Gallery/GalleryUI.mjs.map +1 -1
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs +16 -14
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollPaginator.mjs.map +1 -1
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.mjs +43 -0
- package/dist/es/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.mjs.map +1 -0
- package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs +1 -1
- package/dist/es/components/InfiniteScrollPaginator/hooks/useCursorPaginator.mjs.map +1 -1
- package/dist/es/components/LoadMore/LoadMoreButton.mjs +3 -3
- package/dist/es/components/LoadMore/LoadMoreButton.mjs.map +1 -1
- package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs +2 -11
- package/dist/es/components/Loading/AttachmentUploadedSizeIndicator.mjs.map +1 -1
- package/dist/es/components/Loading/LoadingErrorIndicator.mjs +2 -2
- package/dist/es/components/Loading/LoadingErrorIndicator.mjs.map +1 -1
- package/dist/es/components/Loading/LoadingIndicator.mjs.map +1 -1
- package/dist/es/components/Loading/UploadProgressIndicator.mjs.map +1 -1
- package/dist/es/components/Loading/progress-indicators.mjs +2 -2
- package/dist/es/components/Loading/progress-indicators.mjs.map +1 -1
- package/dist/es/components/Location/ShareLocationDialog.mjs +13 -13
- package/dist/es/components/Location/ShareLocationDialog.mjs.map +1 -1
- package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs +1 -0
- package/dist/es/components/Location/hooks/useLiveLocationSharingManager.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs +4 -4
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorder.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs +7 -7
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs +4 -4
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs +2 -2
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs +1 -1
- package/dist/es/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs +4 -4
- package/dist/es/components/MediaRecorder/RecordingPermissionDeniedNotification.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs +32 -26
- package/dist/es/components/MediaRecorder/classes/AmplitudeRecorder.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs +5 -4
- package/dist/es/components/MediaRecorder/classes/BrowserPermission.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs +195 -181
- package/dist/es/components/MediaRecorder/classes/MediaRecorderController.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs +7 -11
- package/dist/es/components/MediaRecorder/hooks/useMediaRecorder.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs +1 -0
- package/dist/es/components/MediaRecorder/observable/BehaviorSubject.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/observable/Observable.mjs +2 -1
- package/dist/es/components/MediaRecorder/observable/Observable.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/observable/Subject.mjs +3 -2
- package/dist/es/components/MediaRecorder/observable/Subject.mjs.map +1 -1
- package/dist/es/components/MediaRecorder/observable/Subscription.mjs +2 -1
- package/dist/es/components/MediaRecorder/observable/Subscription.mjs.map +1 -1
- package/dist/es/components/Message/Message.mjs +13 -54
- package/dist/es/components/Message/Message.mjs.map +1 -1
- package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs +10 -54
- package/dist/es/components/Message/MessageAlsoSentInChannelIndicator.mjs.map +1 -1
- package/dist/es/components/Message/MessageBlocked.mjs +2 -2
- package/dist/es/components/Message/MessageBlocked.mjs.map +1 -1
- package/dist/es/components/Message/MessageDeletedBubble.mjs +2 -2
- package/dist/es/components/Message/MessageDeletedBubble.mjs.map +1 -1
- package/dist/es/components/Message/MessageEditedIndicator.mjs +8 -7
- package/dist/es/components/Message/MessageEditedIndicator.mjs.map +1 -1
- package/dist/es/components/Message/MessageRepliesCountButton.mjs +43 -9
- package/dist/es/components/Message/MessageRepliesCountButton.mjs.map +1 -1
- package/dist/es/components/Message/MessageStatus.mjs +13 -11
- package/dist/es/components/Message/MessageStatus.mjs.map +1 -1
- package/dist/es/components/Message/MessageText.mjs +4 -4
- package/dist/es/components/Message/MessageText.mjs.map +1 -1
- package/dist/es/components/Message/MessageTimestamp.mjs +4 -3
- package/dist/es/components/Message/MessageTimestamp.mjs.map +1 -1
- package/dist/es/components/Message/MessageTranslationIndicator.mjs +7 -7
- package/dist/es/components/Message/MessageTranslationIndicator.mjs.map +1 -1
- package/dist/es/components/Message/MessageUI.mjs +22 -21
- package/dist/es/components/Message/MessageUI.mjs.map +1 -1
- package/dist/es/components/Message/PinIndicator.mjs +3 -3
- package/dist/es/components/Message/PinIndicator.mjs.map +1 -1
- package/dist/es/components/Message/QuotedMessage.mjs +4 -4
- package/dist/es/components/Message/QuotedMessage.mjs.map +1 -1
- package/dist/es/components/Message/ReminderNotification.mjs +13 -12
- package/dist/es/components/Message/ReminderNotification.mjs.map +1 -1
- package/dist/es/components/Message/StreamedMessageText.mjs +5 -4
- package/dist/es/components/Message/StreamedMessageText.mjs.map +1 -1
- package/dist/es/components/Message/Timestamp.mjs +5 -5
- package/dist/es/components/Message/Timestamp.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useActionHandler.mjs +8 -7
- package/dist/es/components/Message/hooks/useActionHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useDeleteHandler.mjs +30 -11
- package/dist/es/components/Message/hooks/useDeleteHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useFlagHandler.mjs +3 -3
- package/dist/es/components/Message/hooks/useFlagHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs +8 -3
- package/dist/es/components/Message/hooks/useMarkUnreadHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useMentionsHandler.mjs +2 -4
- package/dist/es/components/Message/hooks/useMentionsHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useMessageAlsoSentInChannelNavigation.mjs +72 -0
- package/dist/es/components/Message/hooks/useMessageAlsoSentInChannelNavigation.mjs.map +1 -0
- package/dist/es/components/Message/hooks/useMessageReminder.mjs +1 -1
- package/dist/es/components/Message/hooks/useMuteHandler.mjs +26 -9
- package/dist/es/components/Message/hooks/useMuteHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs +13 -5
- package/dist/es/components/Message/hooks/useOpenThreadHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/usePinHandler.mjs +26 -21
- package/dist/es/components/Message/hooks/usePinHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useReactionHandler.mjs +25 -17
- package/dist/es/components/Message/hooks/useReactionHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useReactionsFetcher.mjs +6 -3
- package/dist/es/components/Message/hooks/useReactionsFetcher.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useRetryHandler.mjs +9 -7
- package/dist/es/components/Message/hooks/useRetryHandler.mjs.map +1 -1
- package/dist/es/components/Message/hooks/useUserRole.mjs +16 -12
- package/dist/es/components/Message/hooks/useUserRole.mjs.map +1 -1
- package/dist/es/components/Message/renderText/renderText.mjs +1 -1
- package/dist/es/components/Message/utils.mjs +19 -56
- package/dist/es/components/Message/utils.mjs.map +1 -1
- package/dist/es/components/MessageActions/DeleteMessageAlert.mjs +5 -5
- package/dist/es/components/MessageActions/DeleteMessageAlert.mjs.map +1 -1
- package/dist/es/components/MessageActions/DownloadSubmenu.mjs +4 -4
- package/dist/es/components/MessageActions/DownloadSubmenu.mjs.map +1 -1
- package/dist/es/components/MessageActions/MessageActions.defaults.mjs +72 -73
- package/dist/es/components/MessageActions/MessageActions.defaults.mjs.map +1 -1
- package/dist/es/components/MessageActions/MessageActions.mjs +3 -3
- package/dist/es/components/MessageActions/MessageActions.mjs.map +1 -1
- package/dist/es/components/MessageActions/RemindMeSubmenu.mjs +7 -7
- package/dist/es/components/MessageActions/RemindMeSubmenu.mjs.map +1 -1
- package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs +7 -4
- package/dist/es/components/MessageActions/hooks/useBaseMessageActionSetFilter.mjs.map +1 -1
- package/dist/es/components/MessageBounce/MessageBounceModal.mjs +1 -1
- package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs +8 -8
- package/dist/es/components/MessageBounce/MessageBouncePrompt.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AttachmentPreviewList.mjs +2 -2
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs +14 -14
- package/dist/es/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs +9 -9
- package/dist/es/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs +6 -6
- package/dist/es/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs +3 -4
- package/dist/es/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs +2 -2
- package/dist/es/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentPreviewList/VoiceRecordingPreviewSlot.mjs +2 -2
- package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs +2 -2
- package/dist/es/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs +33 -30
- package/dist/es/components/MessageComposer/AttachmentSelector/AttachmentSelector.mjs.map +1 -1
- package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs +26 -31
- package/dist/es/components/MessageComposer/AttachmentSelector/CommandsMenu.mjs.map +1 -1
- package/dist/es/components/MessageComposer/CommandChip.mjs +3 -3
- package/dist/es/components/MessageComposer/CommandChip.mjs.map +1 -1
- package/dist/es/components/MessageComposer/EditedMessagePreview.mjs +1 -1
- package/dist/es/components/MessageComposer/EditedMessagePreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/LinkPreviewList.mjs +3 -3
- package/dist/es/components/MessageComposer/MessageComposer.mjs +12 -17
- package/dist/es/components/MessageComposer/MessageComposer.mjs.map +1 -1
- package/dist/es/components/MessageComposer/MessageComposerActions.mjs +17 -13
- package/dist/es/components/MessageComposer/MessageComposerActions.mjs.map +1 -1
- package/dist/es/components/MessageComposer/MessageComposerUI.mjs +8 -8
- package/dist/es/components/MessageComposer/MessageComposerUI.mjs.map +1 -1
- package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs +40 -40
- package/dist/es/components/MessageComposer/QuotedMessagePreview.mjs.map +1 -1
- package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs +2 -2
- package/dist/es/components/MessageComposer/RemoveAttachmentPreviewButton.mjs.map +1 -1
- package/dist/es/components/MessageComposer/SendButton.mjs +2 -2
- package/dist/es/components/MessageComposer/SendButton.mjs.map +1 -1
- package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs +2 -2
- package/dist/es/components/MessageComposer/SendToChannelCheckbox.mjs.map +1 -1
- package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs +1 -1
- package/dist/es/components/MessageComposer/StopAIGenerationButton.mjs.map +1 -1
- package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs +9 -13
- package/dist/es/components/MessageComposer/WithDragAndDropUpload.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs +15 -2
- package/dist/es/components/MessageComposer/hooks/useAttachmentManagerState.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs +2 -3
- package/dist/es/components/MessageComposer/hooks/useCooldownRemaining.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs +1 -3
- package/dist/es/components/MessageComposer/hooks/useCreateMessageComposerContext.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs +2 -3
- package/dist/es/components/MessageComposer/hooks/useIsCooldownActive.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs +0 -4
- package/dist/es/components/MessageComposer/hooks/useMessageComposerBindings.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs +4 -4
- package/dist/es/components/MessageComposer/hooks/useMessageComposerCommands.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs +8 -34
- package/dist/es/components/MessageComposer/hooks/useMessageComposerController.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useMessageComposerHasSendableData.mjs.map +1 -1
- package/dist/es/components/MessageComposer/hooks/useMessageComposerSubmitFn.mjs +16 -0
- package/dist/es/components/MessageComposer/hooks/useMessageComposerSubmitFn.mjs.map +1 -0
- package/dist/es/components/MessageComposer/hooks/usePasteHandler.mjs +1 -1
- package/dist/es/components/MessageComposer/hooks/utils.mjs.map +1 -1
- package/dist/es/components/MessageComposer/icons.mjs +2 -2
- package/dist/es/components/MessageComposer/icons.mjs.map +1 -1
- package/dist/es/components/MessageComposer/preEditSnapshot.mjs +1 -7
- package/dist/es/components/MessageComposer/preEditSnapshot.mjs.map +1 -1
- package/dist/es/components/MessageList/FloatingDateSeparator.mjs +7 -7
- package/dist/es/components/MessageList/FloatingDateSeparator.mjs.map +1 -1
- package/dist/es/components/MessageList/MessageList.mjs +168 -213
- package/dist/es/components/MessageList/MessageList.mjs.map +1 -1
- package/dist/es/components/MessageList/NewMessageNotification.mjs +5 -1
- package/dist/es/components/MessageList/NewMessageNotification.mjs.map +1 -1
- package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs +27 -22
- package/dist/es/components/MessageList/ScrollToLatestMessageButton.mjs.map +1 -1
- package/dist/es/components/MessageList/UnreadMessagesNotification.mjs +25 -9
- package/dist/es/components/MessageList/UnreadMessagesNotification.mjs.map +1 -1
- package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs +18 -7
- package/dist/es/components/MessageList/UnreadMessagesSeparator.mjs.map +1 -1
- package/dist/es/components/MessageList/VirtualizedMessageList.mjs +186 -167
- package/dist/es/components/MessageList/VirtualizedMessageList.mjs.map +1 -1
- package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs +12 -12
- package/dist/es/components/MessageList/VirtualizedMessageListComponents.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs +6 -7
- package/dist/es/components/MessageList/hooks/MessageList/useEnrichedMessages.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs +6 -10
- package/dist/es/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs +18 -10
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListElements.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs +6 -4
- package/dist/es/components/MessageList/hooks/MessageList/useMessageListScrollManager.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs +27 -202
- package/dist/es/components/MessageList/hooks/MessageList/useScrollLocationLogic.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs +10 -5
- package/dist/es/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs +6 -5
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs +4 -4
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useGiphyPreview.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs +5 -1
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs +14 -9
- package/dist/es/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/useCanPaginateReplies.mjs +47 -0
- package/dist/es/components/MessageList/hooks/useCanPaginateReplies.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs +6 -38
- package/dist/es/components/MessageList/hooks/useLastDeliveredData.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/useLastReadData.mjs +6 -23
- package/dist/es/components/MessageList/hooks/useLastReadData.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/useMarkRead.mjs +78 -48
- package/dist/es/components/MessageList/hooks/useMarkRead.mjs.map +1 -1
- package/dist/es/components/MessageList/hooks/useReceiptsByMessageId.mjs +71 -0
- package/dist/es/components/MessageList/hooks/useReceiptsByMessageId.mjs.map +1 -0
- package/dist/es/components/MessageList/hooks/useThreadHead.mjs +26 -0
- package/dist/es/components/MessageList/hooks/useThreadHead.mjs.map +1 -0
- package/dist/es/components/MessageList/messageSourceKey.mjs +37 -0
- package/dist/es/components/MessageList/messageSourceKey.mjs.map +1 -0
- package/dist/es/components/MessageList/renderMessages.mjs +11 -11
- package/dist/es/components/MessageList/renderMessages.mjs.map +1 -1
- package/dist/es/components/MessageList/utils.mjs +40 -33
- package/dist/es/components/MessageList/utils.mjs.map +1 -1
- package/dist/es/components/Modal/GlobalModal.mjs +2 -2
- package/dist/es/components/Notifications/Notification.mjs +10 -9
- package/dist/es/components/Notifications/Notification.mjs.map +1 -1
- package/dist/es/components/Notifications/NotificationList.mjs +5 -19
- package/dist/es/components/Notifications/NotificationList.mjs.map +1 -1
- package/dist/es/components/Notifications/hooks/useNotificationApi.mjs +69 -62
- package/dist/es/components/Notifications/hooks/useNotificationApi.mjs.map +1 -1
- package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs +8 -12
- package/dist/es/components/Notifications/hooks/useNotificationTarget.mjs.map +1 -1
- package/dist/es/components/Notifications/hooks/useNotifications.mjs +1 -1
- package/dist/es/components/Notifications/hooks/useSystemNotifications.mjs +1 -1
- package/dist/es/components/Notifications/notificationTarget.mjs +17 -2
- package/dist/es/components/Notifications/notificationTarget.mjs.map +1 -1
- package/dist/es/components/Poll/Poll.mjs +1 -1
- package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs +8 -8
- package/dist/es/components/Poll/PollActions/AddCommentPrompt.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/EndPollAlert.mjs +9 -9
- package/dist/es/components/Poll/PollActions/EndPollAlert.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollActions.mjs +20 -14
- package/dist/es/components/Poll/PollActions/PollActions.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollAnswerList.mjs +8 -8
- package/dist/es/components/Poll/PollActions/PollAnswerList.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs +4 -4
- package/dist/es/components/Poll/PollActions/PollOptionsFullList.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollQuestion.mjs +1 -1
- package/dist/es/components/Poll/PollActions/PollQuestion.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs +7 -5
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotes.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs +8 -4
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs +1 -1
- package/dist/es/components/Poll/PollActions/PollResults/PollOptionWithVotesList.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs +11 -7
- package/dist/es/components/Poll/PollActions/PollResults/PollResults.mjs.map +1 -1
- package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs +15 -12
- package/dist/es/components/Poll/PollActions/SuggestPollOptionPrompt.mjs.map +1 -1
- package/dist/es/components/Poll/PollContent.mjs +2 -2
- package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs +13 -11
- package/dist/es/components/Poll/PollCreationDialog/MultipleAnswersField.mjs.map +1 -1
- package/dist/es/components/Poll/PollCreationDialog/NameField.mjs +6 -5
- package/dist/es/components/Poll/PollCreationDialog/NameField.mjs.map +1 -1
- package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs +14 -13
- package/dist/es/components/Poll/PollCreationDialog/OptionFieldSet.mjs.map +1 -1
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs +11 -12
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialog.mjs.map +1 -1
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs +11 -20
- package/dist/es/components/Poll/PollCreationDialog/PollCreationDialogControls.mjs.map +1 -1
- package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs +5 -5
- package/dist/es/components/Poll/PollCreationDialog/PollOptionReorderHandle.mjs.map +1 -1
- package/dist/es/components/Poll/PollHeader.mjs +10 -6
- package/dist/es/components/Poll/PollHeader.mjs.map +1 -1
- package/dist/es/components/Poll/PollOptionList.mjs +8 -4
- package/dist/es/components/Poll/PollOptionList.mjs.map +1 -1
- package/dist/es/components/Poll/PollOptionSelector.mjs +13 -7
- package/dist/es/components/Poll/PollOptionSelector.mjs.map +1 -1
- package/dist/es/components/Poll/PollVote.mjs +6 -5
- package/dist/es/components/Poll/PollVote.mjs.map +1 -1
- package/dist/es/components/Poll/hooks/useManagePollVotesRealtime.mjs.map +1 -1
- package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs +5 -5
- package/dist/es/components/Poll/hooks/usePollAnswerPagination.mjs.map +1 -1
- package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs +6 -5
- package/dist/es/components/Poll/hooks/usePollOptionVotesPagination.mjs.map +1 -1
- package/dist/es/components/ReactFileUtilities/UploadButton.mjs +5 -5
- package/dist/es/components/ReactFileUtilities/UploadButton.mjs.map +1 -1
- package/dist/es/components/Reactions/MessageReactions.mjs +7 -7
- package/dist/es/components/Reactions/MessageReactions.mjs.map +1 -1
- package/dist/es/components/Reactions/MessageReactionsDetail.mjs +19 -12
- package/dist/es/components/Reactions/MessageReactionsDetail.mjs.map +1 -1
- package/dist/es/components/Reactions/ReactionSelector.mjs +15 -21
- package/dist/es/components/Reactions/ReactionSelector.mjs.map +1 -1
- package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs +4 -4
- package/dist/es/components/Reactions/ReactionSelectorWithButton.mjs.map +1 -1
- package/dist/es/components/Reactions/hooks/useFetchReactions.mjs +3 -3
- package/dist/es/components/Reactions/hooks/useFetchReactions.mjs.map +1 -1
- package/dist/es/components/Reactions/hooks/useProcessReactions.mjs +5 -4
- package/dist/es/components/Reactions/hooks/useProcessReactions.mjs.map +1 -1
- package/dist/es/components/Search/Search.mjs +1 -1
- package/dist/es/components/Search/SearchBar/SearchBar.mjs +8 -7
- package/dist/es/components/Search/SearchBar/SearchBar.mjs.map +1 -1
- package/dist/es/components/Search/SearchContext.mjs +2 -3
- package/dist/es/components/Search/SearchContext.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchResultItem.mjs +56 -39
- package/dist/es/components/Search/SearchResults/SearchResultItem.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchResults.mjs +4 -4
- package/dist/es/components/Search/SearchResults/SearchResults.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs +6 -5
- package/dist/es/components/Search/SearchResults/SearchResultsHeader.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs +1 -1
- package/dist/es/components/Search/SearchResults/SearchResultsPresearch.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultList.mjs +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs +2 -2
- package/dist/es/components/Search/SearchResults/SearchSourceResultListFooter.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResults.mjs +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultsEmpty.mjs.map +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs +1 -1
- package/dist/es/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.mjs.map +1 -1
- package/dist/es/components/Search/SearchSourceResultsContext.mjs +2 -3
- package/dist/es/components/Search/SearchSourceResultsContext.mjs.map +1 -1
- package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs +1 -1
- package/dist/es/components/SummarizedMessagePreview/SummarizedMessagePreview.mjs.map +1 -1
- package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs +44 -19
- package/dist/es/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/CommandItem.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs +2 -2
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs +2 -2
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs +11 -11
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionList.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/SuggestionList/SuggestionListItem.mjs +1 -1
- package/dist/es/components/TextareaComposer/TextareaComposer.mjs +13 -11
- package/dist/es/components/TextareaComposer/TextareaComposer.mjs.map +1 -1
- package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs +12 -11
- package/dist/es/components/TextareaComposer/hooks/useTextareaPlaceholder.mjs.map +1 -1
- package/dist/es/components/Thread/Thread.mjs +89 -92
- package/dist/es/components/Thread/Thread.mjs.map +1 -1
- package/dist/es/components/Thread/ThreadHead.mjs +5 -4
- package/dist/es/components/Thread/ThreadHead.mjs.map +1 -1
- package/dist/es/components/Thread/ThreadHeader.mjs +31 -41
- package/dist/es/components/Thread/ThreadHeader.mjs.map +1 -1
- package/dist/es/components/Thread/ThreadStart.mjs +11 -10
- package/dist/es/components/Thread/ThreadStart.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadContext.mjs +1 -5
- package/dist/es/components/Threads/ThreadContext.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadList.mjs +19 -27
- package/dist/es/components/Threads/ThreadList/ThreadList.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs +3 -3
- package/dist/es/components/Threads/ThreadList/ThreadListEmptyPlaceholder.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs +4 -4
- package/dist/es/components/Threads/ThreadList/ThreadListHeader.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs +30 -30
- package/dist/es/components/Threads/ThreadList/ThreadListItemUI.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadListLoadingIndicator.mjs +1 -1
- package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs +7 -3
- package/dist/es/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.mjs.map +1 -1
- package/dist/es/components/Threads/ThreadList/useThreadHighlighting.mjs +47 -0
- package/dist/es/components/Threads/ThreadList/useThreadHighlighting.mjs.map +1 -0
- package/dist/es/components/Threads/ThreadList/utils.a11y.mjs +13 -8
- package/dist/es/components/Threads/ThreadList/utils.a11y.mjs.map +1 -1
- package/dist/es/components/Threads/hooks/useCloseThread.mjs +30 -0
- package/dist/es/components/Threads/hooks/useCloseThread.mjs.map +1 -0
- package/dist/es/components/TypingIndicator/TypingIndicator.mjs +23 -17
- package/dist/es/components/TypingIndicator/TypingIndicator.mjs.map +1 -1
- package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs +15 -11
- package/dist/es/components/TypingIndicator/TypingIndicatorHeader.mjs.map +1 -1
- package/dist/es/components/TypingIndicator/hooks/useDebouncedTypingActive.mjs.map +1 -1
- package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs +7 -3
- package/dist/es/components/TypingIndicator/utils/getTypingStatusMessage.mjs.map +1 -1
- package/dist/es/components/VideoPlayer/VideoThumbnail.mjs +2 -2
- package/dist/es/components/VideoPlayer/VideoThumbnail.mjs.map +1 -1
- package/dist/es/context/AttachmentContext.mjs +16 -0
- package/dist/es/context/AttachmentContext.mjs.map +1 -0
- package/dist/es/context/ChannelInstanceContext.mjs +17 -0
- package/dist/es/context/ChannelInstanceContext.mjs.map +1 -0
- package/dist/es/context/ChannelListContext.mjs +3 -6
- package/dist/es/context/ChannelListContext.mjs.map +1 -1
- package/dist/es/context/ChatContext.mjs +2 -8
- package/dist/es/context/ChatContext.mjs.map +1 -1
- package/dist/es/context/ComponentContext.mjs +1 -1
- package/dist/es/context/ComponentContext.mjs.map +1 -1
- package/dist/es/context/DialogManagerContext.mjs +2 -2
- package/dist/es/context/DialogManagerContext.mjs.map +1 -1
- package/dist/es/context/MessageBounceContext.mjs +12 -14
- package/dist/es/context/MessageBounceContext.mjs.map +1 -1
- package/dist/es/context/MessageComposerContext.mjs +8 -6
- package/dist/es/context/MessageComposerContext.mjs.map +1 -1
- package/dist/es/context/MessageComposerControllerContext.mjs +19 -0
- package/dist/es/context/MessageComposerControllerContext.mjs.map +1 -0
- package/dist/es/context/MessageContext.mjs +2 -5
- package/dist/es/context/MessageContext.mjs.map +1 -1
- package/dist/es/context/MessageListContext.mjs +2 -8
- package/dist/es/context/MessageListContext.mjs.map +1 -1
- package/dist/es/context/MessageTranslationViewContext.mjs +3 -6
- package/dist/es/context/MessageTranslationViewContext.mjs.map +1 -1
- package/dist/es/context/ModalContext.mjs +6 -8
- package/dist/es/context/ModalContext.mjs.map +1 -1
- package/dist/es/context/PollContext.mjs +2 -3
- package/dist/es/context/PollContext.mjs.map +1 -1
- package/dist/es/context/TranslationContext.mjs +8 -21
- package/dist/es/context/TranslationContext.mjs.map +1 -1
- package/dist/es/context/VirtualizedMessageListContext.mjs +2 -1
- package/dist/es/context/VirtualizedMessageListContext.mjs.map +1 -1
- package/dist/es/context/WithComponents.mjs +3 -3
- package/dist/es/context/WithComponents.mjs.map +1 -1
- package/dist/es/context/WorkspaceNavigationContext.mjs +45 -0
- package/dist/es/context/WorkspaceNavigationContext.mjs.map +1 -0
- package/dist/es/context/requireContext.mjs +17 -0
- package/dist/es/context/requireContext.mjs.map +1 -0
- package/dist/es/context/useChannel.mjs +14 -0
- package/dist/es/context/useChannel.mjs.map +1 -0
- package/dist/es/context/useComponentContextIcons.mjs +8 -13
- package/dist/es/context/useComponentContextIcons.mjs.map +1 -1
- package/dist/es/hooks/useIsDmChannel.mjs +30 -0
- package/dist/es/hooks/useIsDmChannel.mjs.map +1 -0
- package/dist/es/hooks/useMessagePaginator.mjs +14 -0
- package/dist/es/hooks/useMessagePaginator.mjs.map +1 -0
- package/dist/es/i18n/Streami18n.mjs +38 -521
- package/dist/es/i18n/Streami18n.mjs.map +1 -1
- package/dist/es/i18n/TranslationBuilder/index.mjs +3 -0
- package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs +22 -24
- package/dist/es/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.mjs.map +1 -1
- package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs +20 -31
- package/dist/es/i18n/TranslationBuilder/notifications/translators.mjs.map +1 -1
- package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs +42 -15
- package/dist/es/i18n/TranslationBuilder/notifications/translatorsByNotificationType.mjs.map +1 -1
- package/dist/es/i18n/runtimeDefaults.mjs +41 -0
- package/dist/es/i18n/runtimeDefaults.mjs.map +1 -0
- package/dist/es/i18n/useStreami18n.mjs +41 -0
- package/dist/es/i18n/useStreami18n.mjs.map +1 -0
- package/dist/es/i18n/utils.mjs +7 -125
- package/dist/es/i18n/utils.mjs.map +1 -1
- package/dist/es/index.mjs +175 -180
- package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs +4 -4
- package/dist/es/plugins/ChannelDetail/AvatarWithChannelDetail.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs +1 -1
- package/dist/es/plugins/ChannelDetail/ChannelDetail.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/ChannelDetailEmptyList.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs +3 -3
- package/dist/es/plugins/ChannelDetail/ChannelDetailSearchInput.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs +4 -5
- package/dist/es/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs +4 -4
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs +9 -8
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs +7 -6
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelFilesView/useChannelFilesSearch.mjs +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs +44 -44
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs +25 -25
- package/dist/es/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs +4 -4
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs +13 -13
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs +8 -3
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMediaView/useChannelMediaSearch.mjs +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs +44 -41
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs +6 -5
- package/dist/es/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs +19 -11
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs +12 -11
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs +8 -8
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs +8 -4
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs +1 -1
- package/dist/es/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs +3 -3
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs +24 -21
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs +9 -17
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.mjs.map +1 -1
- package/dist/es/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.mjs +1 -1
- package/dist/es/plugins/Emojis/EmojiPicker.mjs +9 -8
- package/dist/es/plugins/Emojis/EmojiPicker.mjs.map +1 -1
- package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs +2 -1
- package/dist/es/plugins/Emojis/middleware/textComposerEmojiMiddleware.mjs.map +1 -1
- package/dist/es/plugins/SlotGeometry/SlotGeometry.mjs +141 -0
- package/dist/es/plugins/SlotGeometry/SlotGeometry.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/ChannelSlot.mjs +30 -0
- package/dist/es/plugins/SlotLayout/ChannelSlot.mjs.map +1 -0
- package/dist/es/{components/ChatView → plugins/SlotLayout}/ChatView.a11y.utility.mjs +1 -1
- package/dist/es/plugins/SlotLayout/ChatView.a11y.utility.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/ChatView.mjs +277 -0
- package/dist/es/plugins/SlotLayout/ChatView.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/ChatViewNavigationContext.mjs +239 -0
- package/dist/es/plugins/SlotLayout/ChatViewNavigationContext.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/ThreadListSlot.mjs +42 -0
- package/dist/es/plugins/SlotLayout/ThreadListSlot.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/ThreadSlot.mjs +34 -0
- package/dist/es/plugins/SlotLayout/ThreadSlot.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/hooks/useLayoutViewState.mjs +26 -0
- package/dist/es/plugins/SlotLayout/hooks/useLayoutViewState.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/hooks/useSlotEntity.mjs +167 -0
- package/dist/es/plugins/SlotLayout/hooks/useSlotEntity.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/layout/Slot.mjs +46 -0
- package/dist/es/plugins/SlotLayout/layout/Slot.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/layout/WorkspaceLayout.mjs +23 -0
- package/dist/es/plugins/SlotLayout/layout/WorkspaceLayout.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/layoutController/LayoutController.mjs +376 -0
- package/dist/es/plugins/SlotLayout/layoutController/LayoutController.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/layoutController/serialization.mjs +80 -0
- package/dist/es/plugins/SlotLayout/layoutController/serialization.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/slotBinding.mjs +15 -0
- package/dist/es/plugins/SlotLayout/slotBinding.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/slotRegistry.mjs +64 -0
- package/dist/es/plugins/SlotLayout/slotRegistry.mjs.map +1 -0
- package/dist/es/plugins/SlotLayout/workspaceNavigationAdapter.mjs +130 -0
- package/dist/es/plugins/SlotLayout/workspaceNavigationAdapter.mjs.map +1 -0
- package/dist/es/slot-geometry.mjs +2 -0
- package/dist/es/slot-layout.mjs +14 -0
- package/dist/es/store/hooks/useStateStore.mjs.map +1 -1
- package/dist/es/utils/getChannel.mjs +5 -2
- package/dist/es/utils/getChannel.mjs.map +1 -1
- package/dist/es/utils/useStableCallback.mjs +1 -1
- package/dist/es/utils/useStableCallback.mjs.map +1 -1
- package/dist/types/a11y/accessibleLabel.d.ts.map +1 -1
- package/dist/types/components/AIStateIndicator/AIStateIndicator.d.ts.map +1 -1
- package/dist/types/components/AIStateIndicator/hooks/useAIState.d.ts +3 -8
- package/dist/types/components/AIStateIndicator/hooks/useAIState.d.ts.map +1 -1
- package/dist/types/components/Accessibility/NotificationAnnouncer.d.ts +1 -2
- package/dist/types/components/Accessibility/NotificationAnnouncer.d.ts.map +1 -1
- package/dist/types/components/Accessibility/hooks/useIncomingMessageAnnouncements.d.ts.map +1 -1
- package/dist/types/components/Accessibility/hooks/useInteractionAnnouncements.d.ts.map +1 -1
- package/dist/types/components/Accessibility/useAriaLiveAnnouncer.d.ts +4 -0
- package/dist/types/components/Accessibility/useAriaLiveAnnouncer.d.ts.map +1 -1
- package/dist/types/components/Attachment/Attachment.d.ts +13 -2
- package/dist/types/components/Attachment/Attachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/types/components/Attachment/AttachmentContainer.d.ts +2 -2
- package/dist/types/components/Attachment/AttachmentContainer.d.ts.map +1 -1
- package/dist/types/components/Attachment/Audio.d.ts.map +1 -1
- package/dist/types/components/Attachment/FileAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/Geolocation.d.ts +3 -3
- package/dist/types/components/Attachment/Geolocation.d.ts.map +1 -1
- package/dist/types/components/Attachment/Giphy.d.ts.map +1 -1
- package/dist/types/components/Attachment/LinkPreview/Card.d.ts.map +1 -1
- package/dist/types/components/Attachment/LinkPreview/CardAudio.d.ts +1 -1
- package/dist/types/components/Attachment/LinkPreview/CardAudio.d.ts.map +1 -1
- package/dist/types/components/Attachment/ModalGallery.d.ts.map +1 -1
- package/dist/types/components/Attachment/UnsupportedAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/VideoAttachment.d.ts.map +1 -1
- package/dist/types/components/Attachment/VisibilityDisclaimer.d.ts.map +1 -1
- package/dist/types/components/Attachment/VoiceRecording.d.ts.map +1 -1
- package/dist/types/components/Attachment/components/DownloadButton.d.ts.map +1 -1
- package/dist/types/components/Attachment/components/index.d.ts +1 -1
- package/dist/types/components/Attachment/components/index.d.ts.map +1 -1
- package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts +0 -28
- package/dist/types/components/Attachment/hooks/useAttachmentUploadState.d.ts.map +1 -1
- package/dist/types/components/Attachment/index.d.ts +1 -1
- package/dist/types/components/Attachment/index.d.ts.map +1 -1
- package/dist/types/components/Attachment/utils.d.ts +2 -2
- package/dist/types/components/Attachment/utils.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/AudioPlaybackArbiter.d.ts +37 -0
- package/dist/types/components/AudioPlayback/AudioPlaybackArbiter.d.ts.map +1 -0
- package/dist/types/components/AudioPlayback/AudioPlayer.d.ts +1 -1
- package/dist/types/components/AudioPlayback/AudioPlayer.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/AudioPlayerPool.d.ts +19 -31
- package/dist/types/components/AudioPlayback/AudioPlayerPool.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/WithAudioPlayback.d.ts +17 -2
- package/dist/types/components/AudioPlayback/WithAudioPlayback.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/ProgressBar.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/WaveProgressBar.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/components/progressBarA11y.d.ts +2 -2
- package/dist/types/components/AudioPlayback/components/progressBarA11y.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/index.d.ts.map +1 -1
- package/dist/types/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.d.ts +2 -2
- package/dist/types/components/AudioPlayback/plugins/AudioPlayerNotificationsPlugin.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts +1 -5
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Badge/MediaBadge.d.ts.map +1 -1
- package/dist/types/components/BaseImage/ImagePlaceholder.d.ts.map +1 -1
- package/dist/types/components/Button/PlayButton.d.ts.map +1 -1
- package/dist/types/components/Button/WorkspaceNavigationButtons.d.ts +11 -0
- package/dist/types/components/Button/WorkspaceNavigationButtons.d.ts.map +1 -0
- package/dist/types/components/Button/index.d.ts +1 -0
- package/dist/types/components/Button/index.d.ts.map +1 -1
- package/dist/types/components/Channel/Channel.d.ts +9 -57
- package/dist/types/components/Channel/Channel.d.ts.map +1 -1
- package/dist/types/components/Channel/hooks/useChannelCapabilities.d.ts +4 -0
- package/dist/types/components/Channel/hooks/useChannelCapabilities.d.ts.map +1 -0
- package/dist/types/components/Channel/index.d.ts +1 -2
- package/dist/types/components/Channel/index.d.ts.map +1 -1
- package/dist/types/components/ChannelHeader/ChannelHeader.d.ts +12 -0
- package/dist/types/components/ChannelHeader/ChannelHeader.d.ts.map +1 -1
- package/dist/types/components/ChannelHeader/hooks/useChannelHasMembersOnline.d.ts +8 -0
- package/dist/types/components/ChannelHeader/hooks/useChannelHasMembersOnline.d.ts.map +1 -1
- package/dist/types/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.d.ts +7 -8
- package/dist/types/components/ChannelHeader/hooks/useChannelHeaderOnlineStatus.d.ts.map +1 -1
- package/dist/types/components/ChannelList/ChannelList.d.ts +11 -78
- package/dist/types/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/types/components/ChannelList/ChannelListHeader.d.ts.map +1 -1
- package/dist/types/components/ChannelList/ChannelLists.d.ts +10 -0
- package/dist/types/components/ChannelList/ChannelLists.d.ts.map +1 -0
- package/dist/types/components/ChannelList/ChannelNavigation.d.ts +9 -0
- package/dist/types/components/ChannelList/ChannelNavigation.d.ts.map +1 -0
- package/dist/types/components/ChannelList/hooks/index.d.ts +1 -2
- package/dist/types/components/ChannelList/hooks/index.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useChannelMembersState.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useChannelMembershipState.d.ts.map +1 -1
- package/dist/types/components/ChannelList/hooks/useChannelPaginatorState.d.ts +18 -0
- package/dist/types/components/ChannelList/hooks/useChannelPaginatorState.d.ts.map +1 -0
- package/dist/types/components/ChannelList/hooks/useSelectedChannelState.d.ts +3 -3
- package/dist/types/components/ChannelList/hooks/useSelectedChannelState.d.ts.map +1 -1
- package/dist/types/components/ChannelList/index.d.ts +3 -2
- package/dist/types/components/ChannelList/index.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItem.d.ts +9 -18
- package/dist/types/components/ChannelListItem/ChannelListItem.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItemActionButtons.defaults.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItemTimestamp.d.ts +3 -3
- package/dist/types/components/ChannelListItem/ChannelListItemTimestamp.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/ChannelListItemUI.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useChannelDisplayName.d.ts +1 -1
- package/dist/types/components/ChannelListItem/hooks/useChannelDisplayName.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useIsChannelMuted.d.ts +8 -5
- package/dist/types/components/ChannelListItem/hooks/useIsChannelMuted.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/hooks/useMessageDeliveryStatus.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/utils.a11y.d.ts +14 -5
- package/dist/types/components/ChannelListItem/utils.a11y.d.ts.map +1 -1
- package/dist/types/components/ChannelListItem/utils.d.ts +1 -1
- package/dist/types/components/ChannelListItem/utils.d.ts.map +1 -1
- package/dist/types/components/Chat/Chat.d.ts +1 -4
- package/dist/types/components/Chat/Chat.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useChat.d.ts +4 -16
- package/dist/types/components/Chat/hooks/useChat.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useCreateChatClient.d.ts +2 -2
- package/dist/types/components/Chat/hooks/useCreateChatClient.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useCreateChatContext.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useNetworkConnectionState.d.ts +34 -0
- package/dist/types/components/Chat/hooks/useNetworkConnectionState.d.ts.map +1 -0
- package/dist/types/components/Chat/hooks/useReportLostConnectionSystemNotification.d.ts +26 -2
- package/dist/types/components/Chat/hooks/useReportLostConnectionSystemNotification.d.ts.map +1 -1
- package/dist/types/components/Chat/hooks/useWSConnectionState.d.ts +22 -0
- package/dist/types/components/Chat/hooks/useWSConnectionState.d.ts.map +1 -0
- package/dist/types/components/Chat/index.d.ts +2 -0
- package/dist/types/components/Chat/index.d.ts.map +1 -1
- package/dist/types/components/Dialog/components/ContextMenu.d.ts +0 -4
- package/dist/types/components/Dialog/components/ContextMenu.d.ts.map +1 -1
- package/dist/types/components/Dialog/hooks/usePopoverPosition.d.ts +2 -2
- package/dist/types/components/Dialog/hooks/usePopoverPosition.d.ts.map +1 -1
- package/dist/types/components/Dialog/service/DialogManager.d.ts +1 -1
- package/dist/types/components/Dialog/service/DialogManager.d.ts.map +1 -1
- package/dist/types/components/EmptyStateIndicator/EmptyStateIndicator.d.ts.map +1 -1
- package/dist/types/components/Form/Dropdown.d.ts +4 -1
- package/dist/types/components/Form/Dropdown.d.ts.map +1 -1
- package/dist/types/components/Form/NumericInput.d.ts.map +1 -1
- package/dist/types/components/Gallery/GalleryContext.d.ts +5 -0
- package/dist/types/components/Gallery/GalleryContext.d.ts.map +1 -1
- package/dist/types/components/Gallery/GalleryHeader.d.ts.map +1 -1
- package/dist/types/components/Gallery/GalleryUI.d.ts.map +1 -1
- package/dist/types/components/Icons/index.d.ts +1 -1
- package/dist/types/components/Icons/index.d.ts.map +1 -1
- package/dist/types/components/Icons/slots.d.ts +18 -7
- package/dist/types/components/Icons/slots.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts +8 -2
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScrollPaginator.d.ts.map +1 -1
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.d.ts +43 -0
- package/dist/types/components/InfiniteScrollPaginator/InfiniteScrollWithComponents.d.ts.map +1 -0
- package/dist/types/components/InfiniteScrollPaginator/hooks/useCursorPaginator.d.ts +1 -1
- package/dist/types/components/InfiniteScrollPaginator/hooks/useCursorPaginator.d.ts.map +1 -1
- package/dist/types/components/LoadMore/LoadMoreButton.d.ts.map +1 -1
- package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts +3 -0
- package/dist/types/components/Loading/AttachmentUploadedSizeIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/LoadingErrorIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/LoadingIndicator.d.ts +2 -3
- package/dist/types/components/Loading/LoadingIndicator.d.ts.map +1 -1
- package/dist/types/components/Loading/UploadProgressIndicator.d.ts +2 -2
- package/dist/types/components/Loading/index.d.ts +1 -1
- package/dist/types/components/Loading/index.d.ts.map +1 -1
- package/dist/types/components/Loading/progress-indicators.d.ts.map +1 -1
- package/dist/types/components/Location/ShareLocationDialog.d.ts.map +1 -1
- package/dist/types/components/Location/hooks/useLiveLocationSharingManager.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecorderRecordingControls.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecordingButtonWithNotification.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecordingPlayback.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/AudioRecorder/AudioRecordingPreview.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/RecordingPermissionDeniedNotification.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/classes/MediaRecorderController.d.ts.map +1 -1
- package/dist/types/components/MediaRecorder/hooks/useMediaRecorder.d.ts +2 -2
- package/dist/types/components/MediaRecorder/hooks/useMediaRecorder.d.ts.map +1 -1
- package/dist/types/components/Message/Message.d.ts.map +1 -1
- package/dist/types/components/Message/MessageAlsoSentInChannelIndicator.d.ts +11 -1
- package/dist/types/components/Message/MessageAlsoSentInChannelIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/MessageDeletedBubble.d.ts.map +1 -1
- package/dist/types/components/Message/MessageEditedIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/MessageRepliesCountButton.d.ts.map +1 -1
- package/dist/types/components/Message/MessageStatus.d.ts.map +1 -1
- package/dist/types/components/Message/MessageText.d.ts.map +1 -1
- package/dist/types/components/Message/MessageTimestamp.d.ts.map +1 -1
- package/dist/types/components/Message/MessageTranslationIndicator.d.ts.map +1 -1
- package/dist/types/components/Message/MessageUI.d.ts.map +1 -1
- package/dist/types/components/Message/ReminderNotification.d.ts.map +1 -1
- package/dist/types/components/Message/StreamedMessageText.d.ts.map +1 -1
- package/dist/types/components/Message/Timestamp.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/index.d.ts +1 -0
- package/dist/types/components/Message/hooks/index.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useActionHandler.d.ts +1 -1
- package/dist/types/components/Message/hooks/useActionHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useDeleteHandler.d.ts +6 -2
- package/dist/types/components/Message/hooks/useDeleteHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMarkUnreadHandler.d.ts +6 -1
- package/dist/types/components/Message/hooks/useMarkUnreadHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMentionsHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useMessageAlsoSentInChannelNavigation.d.ts +22 -0
- package/dist/types/components/Message/hooks/useMessageAlsoSentInChannelNavigation.d.ts.map +1 -0
- package/dist/types/components/Message/hooks/useMuteHandler.d.ts +7 -2
- package/dist/types/components/Message/hooks/useMuteHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useOpenThreadHandler.d.ts +1 -0
- package/dist/types/components/Message/hooks/useOpenThreadHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/usePinHandler.d.ts +23 -2
- package/dist/types/components/Message/hooks/usePinHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useReactionHandler.d.ts +1 -1
- package/dist/types/components/Message/hooks/useReactionHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useReactionsFetcher.d.ts +2 -2
- package/dist/types/components/Message/hooks/useReactionsFetcher.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useRetryHandler.d.ts +3 -2
- package/dist/types/components/Message/hooks/useRetryHandler.d.ts.map +1 -1
- package/dist/types/components/Message/hooks/useUserRole.d.ts +1 -0
- package/dist/types/components/Message/hooks/useUserRole.d.ts.map +1 -1
- package/dist/types/components/Message/types.d.ts +11 -20
- package/dist/types/components/Message/types.d.ts.map +1 -1
- package/dist/types/components/Message/utils.d.ts +7 -38
- package/dist/types/components/Message/utils.d.ts.map +1 -1
- package/dist/types/components/MessageActions/DeleteMessageAlert.d.ts.map +1 -1
- package/dist/types/components/MessageActions/DownloadSubmenu.d.ts.map +1 -1
- package/dist/types/components/MessageActions/MessageActions.d.ts +6 -2
- package/dist/types/components/MessageActions/MessageActions.d.ts.map +1 -1
- package/dist/types/components/MessageActions/MessageActions.defaults.d.ts.map +1 -1
- package/dist/types/components/MessageActions/RemindMeSubmenu.d.ts.map +1 -1
- package/dist/types/components/MessageActions/hooks/useBaseMessageActionSetFilter.d.ts.map +1 -1
- package/dist/types/components/MessageBounce/MessageBouncePrompt.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/AudioAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/FileAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/GeolocationPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/MediaAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/UnsupportedAttachmentPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/index.d.ts +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/index.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentPreviewList/utils/AttachmentPreviewRoot.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentSelector/AttachmentSelector.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/AttachmentSelector/CommandsMenu.d.ts +5 -5
- package/dist/types/components/MessageComposer/AttachmentSelector/CommandsMenu.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/CommandChip.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/EditMessageForm.d.ts +1 -0
- package/dist/types/components/MessageComposer/EditMessageForm.d.ts.map +1 -0
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +1 -17
- package/dist/types/components/MessageComposer/MessageComposer.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/MessageComposerActions.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/MessageComposerUI.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/QuotedMessagePreview.d.ts +3 -3
- package/dist/types/components/MessageComposer/QuotedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/RemoveAttachmentPreviewButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/SendButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/SendToChannelCheckbox.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/StopAIGenerationButton.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/WithDragAndDropUpload.d.ts +2 -5
- package/dist/types/components/MessageComposer/WithDragAndDropUpload.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/index.d.ts +1 -0
- package/dist/types/components/MessageComposer/hooks/index.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useAttachmentManagerState.d.ts +5 -1
- package/dist/types/components/MessageComposer/hooks/useAttachmentManagerState.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useAttachmentsForPreview.d.ts +1 -2
- package/dist/types/components/MessageComposer/hooks/useAttachmentsForPreview.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useCreateMessageComposerContext.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerBindings.d.ts +0 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerBindings.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerCommands.d.ts +2 -2
- package/dist/types/components/MessageComposer/hooks/useMessageComposerCommands.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerController.d.ts +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerController.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerHasSendableData.d.ts.map +1 -1
- package/dist/types/components/MessageComposer/hooks/useMessageComposerSubmitFn.d.ts +7 -0
- package/dist/types/components/MessageComposer/hooks/useMessageComposerSubmitFn.d.ts.map +1 -0
- package/dist/types/components/MessageComposer/index.d.ts +2 -1
- package/dist/types/components/MessageComposer/index.d.ts.map +1 -1
- package/dist/types/components/MessageList/FloatingDateSeparator.d.ts +1 -1
- package/dist/types/components/MessageList/FloatingDateSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/MessageList.d.ts +24 -25
- package/dist/types/components/MessageList/MessageList.d.ts.map +1 -1
- package/dist/types/components/MessageList/NewMessageNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/ScrollToLatestMessageButton.d.ts +0 -1
- package/dist/types/components/MessageList/ScrollToLatestMessageButton.d.ts.map +1 -1
- package/dist/types/components/MessageList/UnreadMessagesNotification.d.ts +1 -4
- package/dist/types/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/UnreadMessagesSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/VirtualizedMessageList.d.ts +23 -42
- package/dist/types/components/MessageList/VirtualizedMessageList.d.ts.map +1 -1
- package/dist/types/components/MessageList/VirtualizedMessageListComponents.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts +3 -3
- package/dist/types/components/MessageList/hooks/MessageList/useEnrichedMessages.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.d.ts +2 -2
- package/dist/types/components/MessageList/hooks/MessageList/useFloatingDateSeparatorMessageList.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListElements.d.ts +1 -3
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListElements.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts +1 -0
- package/dist/types/components/MessageList/hooks/MessageList/useMessageListScrollManager.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts +6 -25
- package/dist/types/components/MessageList/hooks/MessageList/useScrollLocationLogic.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts +1 -1
- package/dist/types/components/MessageList/hooks/MessageList/useUnreadMessagesNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.d.ts +2 -2
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useFloatingDateSeparator.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useNewMessageNotification.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts +1 -5
- package/dist/types/components/MessageList/hooks/VirtualizedMessageList/useUnreadMessagesNotificationVirtualized.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useCanPaginateReplies.d.ts +32 -0
- package/dist/types/components/MessageList/hooks/useCanPaginateReplies.d.ts.map +1 -0
- package/dist/types/components/MessageList/hooks/useLastDeliveredData.d.ts +1 -0
- package/dist/types/components/MessageList/hooks/useLastDeliveredData.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useLastReadData.d.ts +1 -0
- package/dist/types/components/MessageList/hooks/useLastReadData.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useMarkRead.d.ts +5 -9
- package/dist/types/components/MessageList/hooks/useMarkRead.d.ts.map +1 -1
- package/dist/types/components/MessageList/hooks/useReceiptsByMessageId.d.ts +12 -0
- package/dist/types/components/MessageList/hooks/useReceiptsByMessageId.d.ts.map +1 -0
- package/dist/types/components/MessageList/hooks/useThreadHead.d.ts +9 -0
- package/dist/types/components/MessageList/hooks/useThreadHead.d.ts.map +1 -0
- package/dist/types/components/MessageList/messageSourceKey.d.ts +14 -0
- package/dist/types/components/MessageList/messageSourceKey.d.ts.map +1 -0
- package/dist/types/components/MessageList/renderMessages.d.ts +11 -9
- package/dist/types/components/MessageList/renderMessages.d.ts.map +1 -1
- package/dist/types/components/MessageList/utils.d.ts +22 -13
- package/dist/types/components/MessageList/utils.d.ts.map +1 -1
- package/dist/types/components/Modal/CloseButtonOnModalOverlay.d.ts.map +1 -1
- package/dist/types/components/Notifications/Notification.d.ts.map +1 -1
- package/dist/types/components/Notifications/NotificationList.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useNotificationApi.d.ts +3 -0
- package/dist/types/components/Notifications/hooks/useNotificationApi.d.ts.map +1 -1
- package/dist/types/components/Notifications/hooks/useNotificationTarget.d.ts.map +1 -1
- package/dist/types/components/Notifications/notificationTarget.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/AddCommentPrompt.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/EndPollAlert.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollActions.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollAnswerList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollOptionsFullList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollQuestion.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotes.d.ts +2 -2
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotes.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts +2 -2
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesHeader.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesList.d.ts +2 -2
- package/dist/types/components/Poll/PollActions/PollResults/PollOptionWithVotesList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/PollResults/PollResults.d.ts.map +1 -1
- package/dist/types/components/Poll/PollActions/SuggestPollOptionPrompt.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/MultipleAnswersField.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/NameField.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/OptionFieldSet.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/PollCreationDialog.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/PollCreationDialogControls.d.ts.map +1 -1
- package/dist/types/components/Poll/PollCreationDialog/PollOptionReorderHandle.d.ts.map +1 -1
- package/dist/types/components/Poll/PollHeader.d.ts.map +1 -1
- package/dist/types/components/Poll/PollOptionList.d.ts.map +1 -1
- package/dist/types/components/Poll/PollOptionSelector.d.ts +2 -2
- package/dist/types/components/Poll/PollOptionSelector.d.ts.map +1 -1
- package/dist/types/components/Poll/PollVote.d.ts +1 -1
- package/dist/types/components/Poll/PollVote.d.ts.map +1 -1
- package/dist/types/components/Poll/hooks/useManagePollVotesRealtime.d.ts +2 -2
- package/dist/types/components/Poll/hooks/useManagePollVotesRealtime.d.ts.map +1 -1
- package/dist/types/components/Poll/hooks/usePollAnswerPagination.d.ts +2 -2
- package/dist/types/components/Poll/hooks/usePollAnswerPagination.d.ts.map +1 -1
- package/dist/types/components/Poll/hooks/usePollOptionVotesPagination.d.ts +2 -2
- package/dist/types/components/Poll/hooks/usePollOptionVotesPagination.d.ts.map +1 -1
- package/dist/types/components/Reactions/MessageReactions.d.ts.map +1 -1
- package/dist/types/components/Reactions/MessageReactionsDetail.d.ts +2 -2
- package/dist/types/components/Reactions/MessageReactionsDetail.d.ts.map +1 -1
- package/dist/types/components/Reactions/ReactionSelector.d.ts.map +1 -1
- package/dist/types/components/Reactions/ReactionSelectorWithButton.d.ts +0 -5
- package/dist/types/components/Reactions/ReactionSelectorWithButton.d.ts.map +1 -1
- package/dist/types/components/Reactions/hooks/useFetchReactions.d.ts +2 -2
- package/dist/types/components/Reactions/hooks/useFetchReactions.d.ts.map +1 -1
- package/dist/types/components/Reactions/hooks/useProcessReactions.d.ts +1 -3
- package/dist/types/components/Reactions/hooks/useProcessReactions.d.ts.map +1 -1
- package/dist/types/components/Search/SearchBar/SearchBar.d.ts.map +1 -1
- package/dist/types/components/Search/SearchContext.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchResultItem.d.ts +20 -6
- package/dist/types/components/Search/SearchResults/SearchResultItem.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchResultsHeader.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchSourceResultsEmpty.d.ts.map +1 -1
- package/dist/types/components/Search/SearchResults/SearchSourceResultsLoadingIndicator.d.ts.map +1 -1
- package/dist/types/components/Search/SearchSourceResultsContext.d.ts.map +1 -1
- package/dist/types/components/Search/hooks/index.d.ts +0 -1
- package/dist/types/components/Search/hooks/index.d.ts.map +1 -1
- package/dist/types/components/SummarizedMessagePreview/SummarizedMessagePreview.d.ts +6 -0
- package/dist/types/components/SummarizedMessagePreview/SummarizedMessagePreview.d.ts.map +1 -1
- package/dist/types/components/SummarizedMessagePreview/hooks/useLatestMessagePreview.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/CommandItem.d.ts +2 -2
- package/dist/types/components/TextareaComposer/SuggestionList/CommandItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/BroadcastMentionItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/RoleItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/MentionItem/UserGroupItem.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/SuggestionList/SuggestionList.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/TextareaComposer.d.ts.map +1 -1
- package/dist/types/components/TextareaComposer/hooks/useTextareaPlaceholder.d.ts.map +1 -1
- package/dist/types/components/Thread/Thread.d.ts +31 -27
- package/dist/types/components/Thread/Thread.d.ts.map +1 -1
- package/dist/types/components/Thread/ThreadHead.d.ts.map +1 -1
- package/dist/types/components/Thread/ThreadHeader.d.ts +13 -6
- package/dist/types/components/Thread/ThreadHeader.d.ts.map +1 -1
- package/dist/types/components/Thread/ThreadStart.d.ts.map +1 -1
- package/dist/types/components/Thread/index.d.ts +0 -1
- package/dist/types/components/Thread/index.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadContext.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadList.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListEmptyPlaceholder.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListHeader.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListItemUI.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/ThreadListUnseenThreadsBanner.d.ts.map +1 -1
- package/dist/types/components/Threads/ThreadList/useThreadHighlighting.d.ts +15 -0
- package/dist/types/components/Threads/ThreadList/useThreadHighlighting.d.ts.map +1 -0
- package/dist/types/components/Threads/ThreadList/utils.a11y.d.ts.map +1 -1
- package/dist/types/components/Threads/hooks/useCloseThread.d.ts +9 -0
- package/dist/types/components/Threads/hooks/useCloseThread.d.ts.map +1 -0
- package/dist/types/components/Threads/index.d.ts +1 -0
- package/dist/types/components/Threads/index.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/TypingIndicator.d.ts +4 -5
- package/dist/types/components/TypingIndicator/TypingIndicator.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/TypingIndicatorHeader.d.ts +1 -1
- package/dist/types/components/TypingIndicator/TypingIndicatorHeader.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/hooks/useDebouncedTypingActive.d.ts +2 -2
- package/dist/types/components/TypingIndicator/hooks/useDebouncedTypingActive.d.ts.map +1 -1
- package/dist/types/components/TypingIndicator/utils/getTypingStatusMessage.d.ts +2 -3
- package/dist/types/components/TypingIndicator/utils/getTypingStatusMessage.d.ts.map +1 -1
- package/dist/types/components/VideoPlayer/VideoThumbnail.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +0 -2
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/context/AttachmentContext.d.ts +19 -0
- package/dist/types/context/AttachmentContext.d.ts.map +1 -0
- package/dist/types/context/ChannelInstanceContext.d.ts +16 -0
- package/dist/types/context/ChannelInstanceContext.d.ts.map +1 -0
- package/dist/types/context/ChannelListContext.d.ts +9 -18
- package/dist/types/context/ChannelListContext.d.ts.map +1 -1
- package/dist/types/context/ChatContext.d.ts +10 -23
- package/dist/types/context/ChatContext.d.ts.map +1 -1
- package/dist/types/context/ComponentContext.d.ts +30 -23
- package/dist/types/context/ComponentContext.d.ts.map +1 -1
- package/dist/types/context/DialogManagerContext.d.ts.map +1 -1
- package/dist/types/context/MessageBounceContext.d.ts +1 -1
- package/dist/types/context/MessageBounceContext.d.ts.map +1 -1
- package/dist/types/context/MessageComposerContext.d.ts +7 -2
- package/dist/types/context/MessageComposerContext.d.ts.map +1 -1
- package/dist/types/context/MessageComposerControllerContext.d.ts +13 -0
- package/dist/types/context/MessageComposerControllerContext.d.ts.map +1 -0
- package/dist/types/context/MessageContext.d.ts +8 -21
- package/dist/types/context/MessageContext.d.ts.map +1 -1
- package/dist/types/context/MessageListContext.d.ts +2 -2
- package/dist/types/context/MessageListContext.d.ts.map +1 -1
- package/dist/types/context/MessageTranslationViewContext.d.ts.map +1 -1
- package/dist/types/context/ModalContext.d.ts +4 -0
- package/dist/types/context/ModalContext.d.ts.map +1 -1
- package/dist/types/context/PollContext.d.ts.map +1 -1
- package/dist/types/context/TranslationContext.d.ts +21 -11
- package/dist/types/context/TranslationContext.d.ts.map +1 -1
- package/dist/types/context/VirtualizedMessageListContext.d.ts.map +1 -1
- package/dist/types/context/WithComponents.d.ts.map +1 -1
- package/dist/types/context/WorkspaceNavigationContext.d.ts +128 -0
- package/dist/types/context/WorkspaceNavigationContext.d.ts.map +1 -0
- package/dist/types/context/index.d.ts +6 -4
- package/dist/types/context/index.d.ts.map +1 -1
- package/dist/types/context/requireContext.d.ts +10 -0
- package/dist/types/context/requireContext.d.ts.map +1 -0
- package/dist/types/context/useChannel.d.ts +3 -0
- package/dist/types/context/useChannel.d.ts.map +1 -0
- package/dist/types/context/useComponentContextIcons.d.ts +4 -6
- package/dist/types/context/useComponentContextIcons.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +3 -0
- package/dist/types/hooks/index.d.ts.map +1 -0
- package/dist/types/hooks/useIsDmChannel.d.ts +13 -0
- package/dist/types/hooks/useIsDmChannel.d.ts.map +1 -0
- package/dist/types/hooks/useMessagePaginator.d.ts +6 -0
- package/dist/types/hooks/useMessagePaginator.d.ts.map +1 -0
- package/dist/types/i18n/Streami18n.d.ts +48 -848
- package/dist/types/i18n/Streami18n.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/index.d.ts +6 -1
- package/dist/types/i18n/TranslationBuilder/index.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/notifications/NotificationTranslationTopic.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/notifications/translators.d.ts.map +1 -1
- package/dist/types/i18n/TranslationBuilder/notifications/translatorsByNotificationType.d.ts +3 -1
- package/dist/types/i18n/TranslationBuilder/notifications/translatorsByNotificationType.d.ts.map +1 -1
- package/dist/types/i18n/index.d.ts +2 -2
- package/dist/types/i18n/index.d.ts.map +1 -1
- package/dist/types/i18n/keys.d.ts +583 -0
- package/dist/types/i18n/keys.d.ts.map +1 -0
- package/dist/types/i18n/runtimeDefaults.d.ts +37 -0
- package/dist/types/i18n/runtimeDefaults.d.ts.map +1 -0
- package/dist/types/i18n/types.d.ts +34 -104
- package/dist/types/i18n/types.d.ts.map +1 -1
- package/dist/types/i18n/useStreami18n.d.ts +19 -0
- package/dist/types/i18n/useStreami18n.d.ts.map +1 -0
- package/dist/types/i18n/utils.d.ts +18 -14
- package/dist/types/i18n/utils.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/AvatarWithChannelDetail.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/ChannelDetail.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/ChannelDetailEmptyList.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/ChannelDetailSearchInput.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/SectionNavigator/SectionNavigatorHeader.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesView.utils.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementActions.defaults.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.utils.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberActions.defaults.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersAddView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersHeaderActions.defaults.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.d.ts.map +1 -1
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.d.ts +5 -1
- package/dist/types/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.d.ts.map +1 -1
- package/dist/types/plugins/Emojis/EmojiPicker.d.ts +0 -4
- package/dist/types/plugins/Emojis/EmojiPicker.d.ts.map +1 -1
- package/dist/types/plugins/SlotGeometry/SlotGeometry.d.ts +72 -0
- package/dist/types/plugins/SlotGeometry/SlotGeometry.d.ts.map +1 -0
- package/dist/types/plugins/SlotGeometry/index.d.ts +3 -0
- package/dist/types/plugins/SlotGeometry/index.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ChannelSlot.d.ts +24 -0
- package/dist/types/plugins/SlotLayout/ChannelSlot.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ChatView.a11y.utility.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ChatView.d.ts +113 -0
- package/dist/types/plugins/SlotLayout/ChatView.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ChatViewNavigationContext.d.ts +111 -0
- package/dist/types/plugins/SlotLayout/ChatViewNavigationContext.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ThreadListSlot.d.ts +8 -0
- package/dist/types/plugins/SlotLayout/ThreadListSlot.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/ThreadSlot.d.ts +10 -0
- package/dist/types/plugins/SlotLayout/ThreadSlot.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/hooks/index.d.ts +3 -0
- package/dist/types/plugins/SlotLayout/hooks/index.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/hooks/useLayoutViewState.d.ts +5 -0
- package/dist/types/plugins/SlotLayout/hooks/useLayoutViewState.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/hooks/useSlotEntity.d.ts +162 -0
- package/dist/types/plugins/SlotLayout/hooks/useSlotEntity.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/index.d.ts +12 -0
- package/dist/types/plugins/SlotLayout/index.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/layout/Slot.d.ts +8 -0
- package/dist/types/plugins/SlotLayout/layout/Slot.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/layout/WorkspaceLayout.d.ts +11 -0
- package/dist/types/plugins/SlotLayout/layout/WorkspaceLayout.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/layoutController/LayoutController.d.ts +25 -0
- package/dist/types/plugins/SlotLayout/layoutController/LayoutController.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/layoutController/layoutControllerTypes.d.ts +121 -0
- package/dist/types/plugins/SlotLayout/layoutController/layoutControllerTypes.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/layoutController/serialization.d.ts +6 -0
- package/dist/types/plugins/SlotLayout/layoutController/serialization.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/slotBinding.d.ts +85 -0
- package/dist/types/plugins/SlotLayout/slotBinding.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/slotRegistry.d.ts +60 -0
- package/dist/types/plugins/SlotLayout/slotRegistry.d.ts.map +1 -0
- package/dist/types/plugins/SlotLayout/workspaceNavigationAdapter.d.ts +26 -0
- package/dist/types/plugins/SlotLayout/workspaceNavigationAdapter.d.ts.map +1 -0
- package/dist/types/store/hooks/useStateStore.d.ts +1 -1
- package/dist/types/store/hooks/useStateStore.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +0 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/types/types.d.ts +0 -10
- package/dist/types/types/types.d.ts.map +1 -1
- package/dist/types/utils/getChannel.d.ts +2 -2
- package/dist/types/utils/getChannel.d.ts.map +1 -1
- package/dist/types/utils/useStableCallback.d.ts +1 -1
- package/package.json +34 -16
- package/dist/cjs/NotificationList.4ce251ea.js +0 -9552
- package/dist/cjs/NotificationList.4ce251ea.js.map +0 -1
- package/dist/cjs/useChannelHeaderOnlineStatus.64c443f5.js +0 -961
- package/dist/cjs/useChannelHeaderOnlineStatus.64c443f5.js.map +0 -1
- package/dist/cjs/useInertWhenHidden.1a2a6a2b.js +0 -6573
- package/dist/cjs/useInertWhenHidden.1a2a6a2b.js.map +0 -1
- package/dist/es/components/Channel/channelState.mjs +0 -195
- package/dist/es/components/Channel/channelState.mjs.map +0 -1
- package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs +0 -86
- package/dist/es/components/Channel/hooks/useCreateChannelStateContext.mjs.map +0 -1
- package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs +0 -10
- package/dist/es/components/Channel/hooks/useCreateTypingContext.mjs.map +0 -1
- package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs +0 -13
- package/dist/es/components/Channel/hooks/useEditMessageHandler.mjs.map +0 -1
- package/dist/es/components/Channel/hooks/useIsMounted.mjs +0 -16
- package/dist/es/components/Channel/hooks/useIsMounted.mjs.map +0 -1
- package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs +0 -18
- package/dist/es/components/Channel/hooks/useMentionsHandlers.mjs.map +0 -1
- package/dist/es/components/Channel/utils.mjs +0 -156
- package/dist/es/components/Channel/utils.mjs.map +0 -1
- package/dist/es/components/ChannelList/ChannelListUI.mjs +0 -35
- package/dist/es/components/ChannelList/ChannelListUI.mjs.map +0 -1
- package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs +0 -310
- package/dist/es/components/ChannelList/hooks/useChannelListShape.mjs.map +0 -1
- package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs +0 -19
- package/dist/es/components/ChannelList/hooks/useConnectionRecoveredListener.mjs.map +0 -1
- package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs +0 -110
- package/dist/es/components/ChannelList/hooks/usePaginatedChannels.mjs.map +0 -1
- package/dist/es/components/ChannelList/utils.mjs +0 -86
- package/dist/es/components/ChannelList/utils.mjs.map +0 -1
- package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs +0 -16
- package/dist/es/components/Chat/hooks/useChannelsQueryState.mjs.map +0 -1
- package/dist/es/components/ChatView/ChatView.a11y.utility.mjs.map +0 -1
- package/dist/es/components/ChatView/ChatView.mjs +0 -224
- package/dist/es/components/ChatView/ChatView.mjs.map +0 -1
- package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs +0 -98
- package/dist/es/components/MessageComposer/hooks/useSubmitHandler.mjs.map +0 -1
- package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs +0 -23
- package/dist/es/components/MessageList/hooks/useReducedMotionPreference.mjs.map +0 -1
- package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs +0 -13
- package/dist/es/components/Search/hooks/useSearchFocusedMessage.mjs.map +0 -1
- package/dist/es/components/Thread/LegacyThreadContext.mjs +0 -8
- package/dist/es/components/Thread/LegacyThreadContext.mjs.map +0 -1
- package/dist/es/components/UtilityComponents/NullComponent.mjs +0 -6
- package/dist/es/components/UtilityComponents/NullComponent.mjs.map +0 -1
- package/dist/es/components/Window/Window.mjs +0 -21
- package/dist/es/components/Window/Window.mjs.map +0 -1
- package/dist/es/context/ChannelActionContext.mjs +0 -20
- package/dist/es/context/ChannelActionContext.mjs.map +0 -1
- package/dist/es/context/ChannelStateContext.mjs +0 -24
- package/dist/es/context/ChannelStateContext.mjs.map +0 -1
- package/dist/es/context/TypingContext.mjs +0 -20
- package/dist/es/context/TypingContext.mjs.map +0 -1
- package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs +0 -86
- package/dist/es/i18n/TranslationBuilder/TranslationBuilder.mjs.map +0 -1
- package/dist/es/i18n/de.mjs +0 -782
- package/dist/es/i18n/de.mjs.map +0 -1
- package/dist/es/i18n/en.mjs +0 -779
- package/dist/es/i18n/en.mjs.map +0 -1
- package/dist/es/i18n/es.mjs +0 -821
- package/dist/es/i18n/es.mjs.map +0 -1
- package/dist/es/i18n/fr.mjs +0 -822
- package/dist/es/i18n/fr.mjs.map +0 -1
- package/dist/es/i18n/hi.mjs +0 -786
- package/dist/es/i18n/hi.mjs.map +0 -1
- package/dist/es/i18n/it.mjs +0 -821
- package/dist/es/i18n/it.mjs.map +0 -1
- package/dist/es/i18n/ja.mjs +0 -760
- package/dist/es/i18n/ja.mjs.map +0 -1
- package/dist/es/i18n/ko.mjs +0 -760
- package/dist/es/i18n/ko.mjs.map +0 -1
- package/dist/es/i18n/nl.mjs +0 -786
- package/dist/es/i18n/nl.mjs.map +0 -1
- package/dist/es/i18n/pt.mjs +0 -819
- package/dist/es/i18n/pt.mjs.map +0 -1
- package/dist/es/i18n/ru.mjs +0 -868
- package/dist/es/i18n/ru.mjs.map +0 -1
- package/dist/es/i18n/tr.mjs +0 -781
- package/dist/es/i18n/tr.mjs.map +0 -1
- package/dist/es/utils/getChannelConfig.mjs +0 -11
- package/dist/es/utils/getChannelConfig.mjs.map +0 -1
- package/dist/types/components/Channel/channelState.d.ts +0 -90
- package/dist/types/components/Channel/channelState.d.ts.map +0 -1
- package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts +0 -6
- package/dist/types/components/Channel/hooks/useCreateChannelStateContext.d.ts.map +0 -1
- package/dist/types/components/Channel/hooks/useCreateTypingContext.d.ts +0 -3
- package/dist/types/components/Channel/hooks/useCreateTypingContext.d.ts.map +0 -1
- package/dist/types/components/Channel/hooks/useEditMessageHandler.d.ts +0 -5
- package/dist/types/components/Channel/hooks/useEditMessageHandler.d.ts.map +0 -1
- package/dist/types/components/Channel/hooks/useMentionsHandlers.d.ts +0 -10
- package/dist/types/components/Channel/hooks/useMentionsHandlers.d.ts.map +0 -1
- package/dist/types/components/Channel/utils.d.ts +0 -55
- package/dist/types/components/Channel/utils.d.ts.map +0 -1
- package/dist/types/components/ChannelList/ChannelListUI.d.ts +0 -18
- package/dist/types/components/ChannelList/ChannelListUI.d.ts.map +0 -1
- package/dist/types/components/ChannelList/hooks/useChannelListShape.d.ts +0 -61
- package/dist/types/components/ChannelList/hooks/useChannelListShape.d.ts.map +0 -1
- package/dist/types/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts +0 -2
- package/dist/types/components/ChannelList/hooks/useConnectionRecoveredListener.d.ts.map +0 -1
- package/dist/types/components/ChannelList/hooks/usePaginatedChannels.d.ts +0 -29
- package/dist/types/components/ChannelList/hooks/usePaginatedChannels.d.ts.map +0 -1
- package/dist/types/components/ChannelList/utils.d.ts +0 -46
- package/dist/types/components/ChannelList/utils.d.ts.map +0 -1
- package/dist/types/components/Chat/hooks/useChannelsQueryState.d.ts +0 -12
- package/dist/types/components/Chat/hooks/useChannelsQueryState.d.ts.map +0 -1
- package/dist/types/components/ChatView/ChatView.a11y.utility.d.ts.map +0 -1
- package/dist/types/components/ChatView/ChatView.d.ts +0 -59
- package/dist/types/components/ChatView/ChatView.d.ts.map +0 -1
- package/dist/types/components/ChatView/index.d.ts +0 -2
- package/dist/types/components/ChatView/index.d.ts.map +0 -1
- package/dist/types/components/MessageComposer/hooks/useSubmitHandler.d.ts +0 -5
- package/dist/types/components/MessageComposer/hooks/useSubmitHandler.d.ts.map +0 -1
- package/dist/types/components/Search/hooks/useSearchFocusedMessage.d.ts +0 -2
- package/dist/types/components/Search/hooks/useSearchFocusedMessage.d.ts.map +0 -1
- package/dist/types/components/Thread/LegacyThreadContext.d.ts +0 -9
- package/dist/types/components/Thread/LegacyThreadContext.d.ts.map +0 -1
- package/dist/types/components/Window/Window.d.ts +0 -13
- package/dist/types/components/Window/Window.d.ts.map +0 -1
- package/dist/types/components/Window/index.d.ts +0 -2
- package/dist/types/components/Window/index.d.ts.map +0 -1
- package/dist/types/context/ChannelActionContext.d.ts +0 -46
- package/dist/types/context/ChannelActionContext.d.ts.map +0 -1
- package/dist/types/context/ChannelStateContext.d.ts +0 -51
- package/dist/types/context/ChannelStateContext.d.ts.map +0 -1
- package/dist/types/context/TypingContext.d.ts +0 -12
- package/dist/types/context/TypingContext.d.ts.map +0 -1
- package/dist/types/i18n/TranslationBuilder/TranslationBuilder.d.ts +0 -36
- package/dist/types/i18n/TranslationBuilder/TranslationBuilder.d.ts.map +0 -1
- package/dist/types/i18n/translations.d.ts +0 -14
- package/dist/types/i18n/translations.d.ts.map +0 -1
- package/dist/types/utils/getChannelConfig.d.ts +0 -8
- package/dist/types/utils/getChannelConfig.d.ts.map +0 -1
- /package/dist/types/{components/ChatView → plugins/SlotLayout}/ChatView.a11y.utility.d.ts +0 -0
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
2
|
+
const require_useComponentContextIcons = require("./useComponentContextIcons.d16834d9.js");
|
|
3
|
+
const require_Thread = require("./Thread.373af587.js");
|
|
4
|
+
const require_ListItemLayout = require("./ListItemLayout.60c3b287.js");
|
|
5
|
+
const require_useChannel = require("./useChannel.1004ed4c.js");
|
|
6
|
+
const require_SlotLayout = require("./SlotLayout.de45be2d.js");
|
|
4
7
|
let react = require("react");
|
|
5
|
-
react =
|
|
8
|
+
react = require_useComponentContextIcons.__toESM(react);
|
|
9
|
+
let stream_chat = require("stream-chat");
|
|
6
10
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
7
11
|
let clsx = require("clsx");
|
|
8
|
-
clsx =
|
|
9
|
-
let stream_chat = require("stream-chat");
|
|
10
|
-
let lodash_debounce = require("lodash.debounce");
|
|
11
|
-
lodash_debounce = require_NotificationList.__toESM(lodash_debounce);
|
|
12
|
-
let lodash_uniqby = require("lodash.uniqby");
|
|
13
|
-
lodash_uniqby = require_NotificationList.__toESM(lodash_uniqby);
|
|
12
|
+
clsx = require_useComponentContextIcons.__toESM(clsx);
|
|
14
13
|
let react_virtuoso = require("react-virtuoso");
|
|
14
|
+
let lodash_debounce = require("lodash.debounce");
|
|
15
|
+
lodash_debounce = require_useComponentContextIcons.__toESM(lodash_debounce);
|
|
16
|
+
let _stream_io_i18n = require("@stream-io/i18n");
|
|
15
17
|
//#region src/plugins/ChannelDetail/SectionNavigator/SectionNavigator.tsx
|
|
16
18
|
var SECTION_NAVIGATOR_LAYOUT = {
|
|
17
19
|
inline: "inline",
|
|
@@ -179,16 +181,16 @@ var SectionNavigator = ({ className, createLayoutObserver = defaultCreateLayoutO
|
|
|
179
181
|
* (`goBack`), where it would compete with the back affordance.
|
|
180
182
|
*/
|
|
181
183
|
var SectionNavigatorHeader = (props) => {
|
|
182
|
-
const {
|
|
183
|
-
const { t } = require_NotificationList.useTranslationContext("SectionNavigatorHeader");
|
|
184
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
184
185
|
const { layout, openNavigation } = useSectionNavigatorContext();
|
|
185
186
|
const MenuButton = (0, react.useMemo)(() => {
|
|
186
187
|
if (layout !== SECTION_NAVIGATOR_LAYOUT.inline) return void 0;
|
|
187
188
|
if (props.goBack) return void 0;
|
|
188
189
|
return function SectionNavigatorHeaderMenuButton() {
|
|
189
|
-
|
|
190
|
+
const { IconMenu } = require_useComponentContextIcons.useComponentContextIcons();
|
|
191
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
190
192
|
appearance: "ghost",
|
|
191
|
-
"aria-label": t("Open menu"),
|
|
193
|
+
"aria-label": t("channelDetail.sectionNavigatorHeader.openMenu.ariaLabel", "Open menu"),
|
|
192
194
|
circular: true,
|
|
193
195
|
className: "str-chat__section-navigator__header-menu-button",
|
|
194
196
|
onClick: openNavigation,
|
|
@@ -198,13 +200,12 @@ var SectionNavigatorHeader = (props) => {
|
|
|
198
200
|
});
|
|
199
201
|
};
|
|
200
202
|
}, [
|
|
201
|
-
IconMenu,
|
|
202
203
|
layout,
|
|
203
204
|
openNavigation,
|
|
204
205
|
props.goBack,
|
|
205
206
|
t
|
|
206
207
|
]);
|
|
207
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
208
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Header, {
|
|
208
209
|
...props,
|
|
209
210
|
LeadingContent: MenuButton
|
|
210
211
|
});
|
|
@@ -216,7 +217,7 @@ var SectionNavigatorHeader = (props) => {
|
|
|
216
217
|
* `ListItemLayout` as a `<button>` and wires the SectionNavigator selection
|
|
217
218
|
* state into `aria-current` and the click handler.
|
|
218
219
|
*/
|
|
219
|
-
var ChannelDetailNavButton = ({ className, LeadingIcon, sectionId: _sectionId, select, selected, title, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
220
|
+
var ChannelDetailNavButton = ({ className, LeadingIcon, sectionId: _sectionId, select, selected, title, ...props }) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
220
221
|
LeadingIcon,
|
|
221
222
|
RootElement: "button",
|
|
222
223
|
rootProps: {
|
|
@@ -246,18 +247,18 @@ var useChannelDetailContext = () => {
|
|
|
246
247
|
//#endregion
|
|
247
248
|
//#region src/plugins/ChannelDetail/Views/ChannelFilesView/ChannelFilesEmptyList.tsx
|
|
248
249
|
var ChannelFilesEmptyList = () => {
|
|
249
|
-
const { IconFolder } =
|
|
250
|
-
const { t } =
|
|
250
|
+
const { IconFolder } = require_useComponentContextIcons.useComponentContextIcons();
|
|
251
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
251
252
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
252
253
|
className: "str-chat__channel-detail__files-view__empty-state",
|
|
253
254
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconFolder, { className: "str-chat__channel-detail__files-view__empty-state__icon" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
254
255
|
className: "str-chat__channel-detail__files-view__empty-state__content",
|
|
255
256
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
256
257
|
className: "str-chat__channel-detail__files-view__empty-state__title",
|
|
257
|
-
children: t("No files")
|
|
258
|
+
children: t("channelDetail.channelFilesEmpty.noFiles.text", "No files")
|
|
258
259
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
259
260
|
className: "str-chat__channel-detail__files-view__empty-state__description",
|
|
260
|
-
children: t("Share a file to see it here")
|
|
261
|
+
children: t("channelDetail.channelFilesEmpty.shareFileSee.text", "Share a file to see it here")
|
|
261
262
|
})]
|
|
262
263
|
})]
|
|
263
264
|
});
|
|
@@ -269,11 +270,11 @@ var searchSourceFooterStateSelector = (state) => ({
|
|
|
269
270
|
isLoading: state.isLoading
|
|
270
271
|
});
|
|
271
272
|
var ChannelDetailListLoadingIndicator = ({ searchSource }) => {
|
|
272
|
-
const { hasNextPage, isLoading } =
|
|
273
|
+
const { hasNextPage, isLoading } = require_useComponentContextIcons.useStateStore(searchSource.state, searchSourceFooterStateSelector);
|
|
273
274
|
if (!hasNextPage || !isLoading) return null;
|
|
274
275
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
275
276
|
className: "str-chat__loading-indicator-placeholder",
|
|
276
|
-
children: isLoading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
277
|
+
children: isLoading && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Thread.LoadingIndicator, {})
|
|
277
278
|
});
|
|
278
279
|
};
|
|
279
280
|
//#endregion
|
|
@@ -281,10 +282,12 @@ var ChannelDetailListLoadingIndicator = ({ searchSource }) => {
|
|
|
281
282
|
/** Attachment types listed by the files view (everything that is not an image/video). */
|
|
282
283
|
var FILE_ATTACHMENT_TYPES = ["file", "audio"];
|
|
283
284
|
var FILE_ATTACHMENT_TYPE_SET = new Set(FILE_ATTACHMENT_TYPES);
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
285
|
+
/**
|
|
286
|
+
* A wire timestamp as an ISO string — what `getDateString` accepts, what the month key slices, and
|
|
287
|
+
* what `byCreatedAtDesc` compares. `convertTimestampToDate` rather than `new Date`: a nanosecond value is out of
|
|
288
|
+
* Date's range, so constructing one directly yields an Invalid Date.
|
|
289
|
+
*/
|
|
290
|
+
var normalizeTimestamp$1 = (timestamp) => timestamp == null ? void 0 : (0, stream_chat.convertTimestampToDate)(timestamp)?.toISOString();
|
|
288
291
|
var isChannelFileAttachment = (attachment) => !(0, stream_chat.isScrapedContent)(attachment) && !!attachment.type && FILE_ATTACHMENT_TYPE_SET.has(attachment.type);
|
|
289
292
|
var byCreatedAtDesc = (a, b) => (b.createdAt ?? "").localeCompare(a.createdAt ?? "");
|
|
290
293
|
/**
|
|
@@ -342,7 +345,7 @@ var channelFilesSearchSourceStateSelector = (state) => ({
|
|
|
342
345
|
messages: state.items
|
|
343
346
|
});
|
|
344
347
|
var useChannelFilesSearch = () => {
|
|
345
|
-
const { client } =
|
|
348
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
346
349
|
const { channel } = useChannelDetailContext();
|
|
347
350
|
const channelFilesSearchSource = (0, react.useMemo)(() => {
|
|
348
351
|
const source = new stream_chat.MessageSearchSource(client, {
|
|
@@ -354,7 +357,7 @@ var useChannelFilesSearch = () => {
|
|
|
354
357
|
source.messageSearchFilters = { "attachments.type": { $in: [...FILE_ATTACHMENT_TYPES] } };
|
|
355
358
|
return source;
|
|
356
359
|
}, [channel.cid, client]);
|
|
357
|
-
const { isLoading, messages } =
|
|
360
|
+
const { isLoading, messages } = require_useComponentContextIcons.useStateStore(channelFilesSearchSource.state, channelFilesSearchSourceStateSelector);
|
|
358
361
|
const { groupCounts, items, sections } = (0, react.useMemo)(() => toChannelFileSections(messages ?? []), [messages]);
|
|
359
362
|
(0, react.useEffect)(() => {
|
|
360
363
|
channelFilesSearchSource.activate();
|
|
@@ -389,8 +392,8 @@ var ChannelFilesGroup = (0, react.forwardRef)(function ChannelFilesGroup({ class
|
|
|
389
392
|
});
|
|
390
393
|
});
|
|
391
394
|
var ChannelFilesSectionHeader = ({ timestamp }) => {
|
|
392
|
-
const { t, tDateTimeParser } =
|
|
393
|
-
const label =
|
|
395
|
+
const { t, tDateTimeParser } = require_useComponentContextIcons.useTranslationContext();
|
|
396
|
+
const label = (0, _stream_io_i18n.getDateString)({
|
|
394
397
|
format: "MMMM YYYY",
|
|
395
398
|
messageCreatedAt: timestamp,
|
|
396
399
|
t,
|
|
@@ -407,22 +410,23 @@ var ChannelFileListItem = ({ item }) => {
|
|
|
407
410
|
const { attachment } = item;
|
|
408
411
|
const fileName = getAttachmentFileName(attachment);
|
|
409
412
|
const assetUrl = attachment.asset_url;
|
|
413
|
+
const { file_size: fileSize, mime_type: mimeType } = attachment.custom ?? {};
|
|
410
414
|
const LeadingSlot = (0, react.useMemo)(() => function FileListItemIcon() {
|
|
411
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
415
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.FileIcon, {
|
|
412
416
|
className: "str-chat__channel-detail__files-view__list-item__icon",
|
|
413
417
|
fileName,
|
|
414
|
-
mimeType
|
|
418
|
+
mimeType,
|
|
415
419
|
size: "md"
|
|
416
420
|
});
|
|
417
|
-
}, [
|
|
421
|
+
}, [mimeType, fileName]);
|
|
418
422
|
const sharedProps = (0, react.useMemo)(() => ({
|
|
419
423
|
LeadingSlot,
|
|
420
|
-
subtitle: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
424
|
+
subtitle: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.FileSizeIndicator, { fileSize }),
|
|
421
425
|
subtitleClassName: "str-chat__channel-detail__files-view__list-item__size",
|
|
422
426
|
title: fileName,
|
|
423
427
|
titleClassName: "str-chat__channel-detail__files-view__list-item__name"
|
|
424
428
|
}), [
|
|
425
|
-
|
|
429
|
+
fileSize,
|
|
426
430
|
fileName,
|
|
427
431
|
LeadingSlot
|
|
428
432
|
]);
|
|
@@ -434,20 +438,20 @@ var ChannelFileListItem = ({ item }) => {
|
|
|
434
438
|
target: "_blank"
|
|
435
439
|
}), [assetUrl, fileName]);
|
|
436
440
|
const divRootProps = (0, react.useMemo)(() => ({ className: "str-chat__channel-detail__files-view__list-item" }), []);
|
|
437
|
-
if (assetUrl) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
441
|
+
if (assetUrl) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
438
442
|
...sharedProps,
|
|
439
443
|
RootElement: "a",
|
|
440
444
|
rootProps: linkRootProps
|
|
441
445
|
});
|
|
442
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
446
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
443
447
|
...sharedProps,
|
|
444
448
|
RootElement: "div",
|
|
445
449
|
rootProps: divRootProps
|
|
446
450
|
});
|
|
447
451
|
};
|
|
448
452
|
var ChannelFilesView = () => {
|
|
449
|
-
const { t } =
|
|
450
|
-
const { close } =
|
|
453
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
454
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
451
455
|
const { channelFilesSearchSource, fileItems, groupCounts, hasResultsLoaded, sections } = useChannelFilesSearch();
|
|
452
456
|
const groupContent = (0, react.useCallback)((groupIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelFilesSectionHeader, { timestamp: sections[groupIndex]?.timestamp }), [sections]);
|
|
453
457
|
const itemContent = (0, react.useCallback)((index) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelFileListItem, { item: fileItems[index] }), [fileItems]);
|
|
@@ -470,8 +474,8 @@ var ChannelFilesView = () => {
|
|
|
470
474
|
className: "str-chat__channel-detail__files-view",
|
|
471
475
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
472
476
|
close,
|
|
473
|
-
title: t("Files")
|
|
474
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
477
|
+
title: t("channelDetail.channelFilesView.files.title", "Files")
|
|
478
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Body, {
|
|
475
479
|
className: "str-chat__channel-detail__files-view__body",
|
|
476
480
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_virtuoso.GroupedVirtuoso, {
|
|
477
481
|
atBottomStateChange,
|
|
@@ -489,34 +493,34 @@ var ChannelFilesView = () => {
|
|
|
489
493
|
var toError$1 = (error) => error instanceof Error ? error : /* @__PURE__ */ new Error("An unknown error occurred");
|
|
490
494
|
var getDisplayName = (name, fallback) => name || fallback || "";
|
|
491
495
|
var BlockUserActionIcon$1 = () => {
|
|
492
|
-
const { IconNoSign } =
|
|
496
|
+
const { IconNoSign } = require_useComponentContextIcons.useComponentContextIcons();
|
|
493
497
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconNoSign, { className: "str-chat__icon--destructive str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--block-user" });
|
|
494
498
|
};
|
|
495
499
|
var DeleteChatActionIcon = () => {
|
|
496
|
-
const { IconDelete } =
|
|
500
|
+
const { IconDelete } = require_useComponentContextIcons.useComponentContextIcons();
|
|
497
501
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconDelete, { className: "str-chat__icon--destructive str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--delete-chat" });
|
|
498
502
|
};
|
|
499
503
|
var MuteActionIcon = () => {
|
|
500
|
-
const { IconMute } =
|
|
504
|
+
const { IconMute } = require_useComponentContextIcons.useComponentContextIcons();
|
|
501
505
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconMute, { className: "str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--mute" });
|
|
502
506
|
};
|
|
503
507
|
var MutedActionIcon = () => {
|
|
504
|
-
const { IconAudio } =
|
|
508
|
+
const { IconAudio } = require_useComponentContextIcons.useComponentContextIcons();
|
|
505
509
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconAudio, { className: "str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--unmute" });
|
|
506
510
|
};
|
|
507
511
|
var LeaveChannelActionIcon = () => {
|
|
508
|
-
const { IconLeave } =
|
|
512
|
+
const { IconLeave } = require_useComponentContextIcons.useComponentContextIcons();
|
|
509
513
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconLeave, { className: "str-chat__icon--destructive str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--leave-channel" });
|
|
510
514
|
};
|
|
511
515
|
var channelManagementViewActionClassName = "str-chat__channel-management-view-action";
|
|
512
516
|
var blockedUsersSelector$1 = ({ userIds }) => ({ userIds });
|
|
513
|
-
var ChannelManagementConfirmationAlert = ({ action, cancelLabel, confirmLabel, description, isSubmitting, onCancel, onConfirm, testId, title }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
517
|
+
var ChannelManagementConfirmationAlert = ({ action, cancelLabel, confirmLabel, description, isSubmitting, onCancel, onConfirm, testId, title }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Alert.Root, {
|
|
514
518
|
className: (0, clsx.default)("str-chat__channel-management-confirmation-alert", { [`str-chat__channel-management-confirmation-alert--${action}`]: action }),
|
|
515
519
|
"data-testid": testId,
|
|
516
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
520
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Alert.Header, {
|
|
517
521
|
description,
|
|
518
522
|
title
|
|
519
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
523
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Alert.Actions, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
520
524
|
appearance: "solid",
|
|
521
525
|
"data-testid": `${testId}-confirm-button`,
|
|
522
526
|
disabled: isSubmitting,
|
|
@@ -524,7 +528,7 @@ var ChannelManagementConfirmationAlert = ({ action, cancelLabel, confirmLabel, d
|
|
|
524
528
|
size: "md",
|
|
525
529
|
variant: "danger",
|
|
526
530
|
children: confirmLabel
|
|
527
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
531
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
528
532
|
appearance: "outline",
|
|
529
533
|
autoFocus: true,
|
|
530
534
|
"data-testid": `${testId}-cancel-button`,
|
|
@@ -536,7 +540,7 @@ var ChannelManagementConfirmationAlert = ({ action, cancelLabel, confirmLabel, d
|
|
|
536
540
|
})] })]
|
|
537
541
|
});
|
|
538
542
|
var useOtherMember = () => {
|
|
539
|
-
const { client } =
|
|
543
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
540
544
|
const { channel } = useChannelDetailContext();
|
|
541
545
|
return (0, react.useMemo)(() => {
|
|
542
546
|
const stateMembers = Object.values(channel.state?.members ?? {});
|
|
@@ -544,10 +548,10 @@ var useOtherMember = () => {
|
|
|
544
548
|
}, [channel, client.user?.id]);
|
|
545
549
|
};
|
|
546
550
|
var useChannelManagementActionFilterState = () => {
|
|
547
|
-
const { client } =
|
|
551
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
548
552
|
const { channel } = useChannelDetailContext();
|
|
549
553
|
const otherMember = useOtherMember();
|
|
550
|
-
const resolvedIsDmChannel =
|
|
554
|
+
const resolvedIsDmChannel = require_ListItemLayout.isDmChannel({
|
|
551
555
|
channel,
|
|
552
556
|
ownUserId: client.user?.id
|
|
553
557
|
});
|
|
@@ -584,18 +588,18 @@ var useBaseChannelManagementActionSetFilter = (channelManagementActionSet) => {
|
|
|
584
588
|
};
|
|
585
589
|
var ChannelMuteAction = () => {
|
|
586
590
|
const { channel } = useChannelDetailContext();
|
|
587
|
-
const { addNotification } =
|
|
588
|
-
const { t } =
|
|
589
|
-
const { muted: channelMuted } =
|
|
591
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
592
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
593
|
+
const { muted: channelMuted } = require_Thread.useIsChannelMuted(channel);
|
|
590
594
|
const [optimisticChannelMuted, setOptimisticChannelMuted] = (0, react.useState)(channelMuted);
|
|
591
595
|
(0, react.useEffect)(() => {
|
|
592
596
|
setOptimisticChannelMuted(channelMuted);
|
|
593
597
|
}, [channelMuted]);
|
|
594
|
-
const toggleChannelMuteRequest =
|
|
598
|
+
const toggleChannelMuteRequest = require_Thread.useStableCallback((nextMuted, targetChannel) => {
|
|
595
599
|
if (!nextMuted) return targetChannel.unmute().then(() => addNotification({
|
|
596
600
|
context: { channel: targetChannel },
|
|
597
601
|
emitter: "ChannelManagementView",
|
|
598
|
-
message: t("Channel unmuted"),
|
|
602
|
+
message: t("common.channelUnmuted.text", "Channel unmuted"),
|
|
599
603
|
severity: "success",
|
|
600
604
|
type: "api:channel:unmute:success"
|
|
601
605
|
})).catch((error) => {
|
|
@@ -604,7 +608,7 @@ var ChannelMuteAction = () => {
|
|
|
604
608
|
context: { channel: targetChannel },
|
|
605
609
|
emitter: "ChannelManagementView",
|
|
606
610
|
error: toError$1(error),
|
|
607
|
-
message: t("Error unmuting channel"),
|
|
611
|
+
message: t("channelDetail.channelManagementActions.errorUnmutingChannel.text", "Error unmuting channel"),
|
|
608
612
|
severity: "error",
|
|
609
613
|
type: "api:channel:unmute:failed"
|
|
610
614
|
});
|
|
@@ -612,7 +616,7 @@ var ChannelMuteAction = () => {
|
|
|
612
616
|
return targetChannel.mute().then(() => addNotification({
|
|
613
617
|
context: { channel: targetChannel },
|
|
614
618
|
emitter: "ChannelManagementView",
|
|
615
|
-
message: t("Channel muted"),
|
|
619
|
+
message: t("common.channelMuted.text", "Channel muted"),
|
|
616
620
|
severity: "success",
|
|
617
621
|
type: "api:channel:mute:success"
|
|
618
622
|
})).catch((error) => {
|
|
@@ -621,7 +625,7 @@ var ChannelMuteAction = () => {
|
|
|
621
625
|
context: { channel: targetChannel },
|
|
622
626
|
emitter: "ChannelManagementView",
|
|
623
627
|
error: toError$1(error),
|
|
624
|
-
message: t("Error muting channel"),
|
|
628
|
+
message: t("channelDetail.channelManagementActions.errorMutingChannel.text", "Error muting channel"),
|
|
625
629
|
severity: "error",
|
|
626
630
|
type: "api:channel:mute:failed"
|
|
627
631
|
});
|
|
@@ -647,39 +651,39 @@ var ChannelMuteAction = () => {
|
|
|
647
651
|
}), [optimisticChannelMuted, toggleOptimisticChannelMute]);
|
|
648
652
|
const TrailingSlot = (0, react.useMemo)(() => {
|
|
649
653
|
function ChannelMuteSwitch() {
|
|
650
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
654
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Switch, {
|
|
651
655
|
on: optimisticChannelMuted,
|
|
652
656
|
presentation: true
|
|
653
657
|
});
|
|
654
658
|
}
|
|
655
659
|
return ChannelMuteSwitch;
|
|
656
660
|
}, [optimisticChannelMuted]);
|
|
657
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
661
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
658
662
|
LeadingIcon: optimisticChannelMuted ? MutedActionIcon : MuteActionIcon,
|
|
659
663
|
RootElement: "button",
|
|
660
664
|
rootProps,
|
|
661
|
-
title: optimisticChannelMuted ? t("Unmute chat") : t("Mute chat"),
|
|
665
|
+
title: optimisticChannelMuted ? t("channelDetail.channelManagementActions.unmuteChat.title", "Unmute chat") : t("channelDetail.channelManagementActions.muteChat.title", "Mute chat"),
|
|
662
666
|
TrailingSlot
|
|
663
667
|
});
|
|
664
668
|
};
|
|
665
669
|
var UserMuteAction$1 = () => {
|
|
666
|
-
const { client, mutes } =
|
|
670
|
+
const { client, mutes } = require_useComponentContextIcons.useChatContext();
|
|
667
671
|
const { channel } = useChannelDetailContext();
|
|
668
|
-
const { addNotification } =
|
|
669
|
-
const { t } =
|
|
672
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
673
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
670
674
|
const otherMember = useOtherMember();
|
|
671
|
-
const userMuted = !!mutes.find((mute) => mute.target
|
|
675
|
+
const userMuted = !!mutes.find((mute) => mute.target?.id === otherMember?.user?.id);
|
|
672
676
|
const [optimisticUserMuted, setOptimisticUserMuted] = (0, react.useState)(userMuted);
|
|
673
677
|
(0, react.useEffect)(() => {
|
|
674
678
|
setOptimisticUserMuted(userMuted);
|
|
675
679
|
}, [userMuted]);
|
|
676
680
|
const otherMemberUserId = otherMember?.user?.id;
|
|
677
|
-
const toggleUserMuteRequest =
|
|
681
|
+
const toggleUserMuteRequest = require_Thread.useStableCallback((nextMuted, targetUserId) => {
|
|
678
682
|
if (!targetUserId) return;
|
|
679
|
-
if (!nextMuted) return client.
|
|
683
|
+
if (!nextMuted) return client.moderation.unmute({ target_ids: [targetUserId] }).then(() => addNotification({
|
|
680
684
|
context: { channel },
|
|
681
685
|
emitter: "ChannelManagementView",
|
|
682
|
-
message: t("User unmuted"),
|
|
686
|
+
message: t("channelDetail.channelManagementActions.userUnmuted.text", "User unmuted"),
|
|
683
687
|
severity: "success",
|
|
684
688
|
type: "api:user:unmute:success"
|
|
685
689
|
})).catch((error) => {
|
|
@@ -688,15 +692,15 @@ var UserMuteAction$1 = () => {
|
|
|
688
692
|
context: { channel },
|
|
689
693
|
emitter: "ChannelManagementView",
|
|
690
694
|
error: toError$1(error),
|
|
691
|
-
message: t("Error unmuting user"),
|
|
695
|
+
message: t("channelDetail.channelManagementActions.errorUnmutingUser.text", "Error unmuting user"),
|
|
692
696
|
severity: "error",
|
|
693
697
|
type: "api:user:unmute:failed"
|
|
694
698
|
});
|
|
695
699
|
});
|
|
696
|
-
return client.
|
|
700
|
+
return client.moderation.mute({ target_ids: [targetUserId] }).then(() => addNotification({
|
|
697
701
|
context: { channel },
|
|
698
702
|
emitter: "ChannelManagementView",
|
|
699
|
-
message: t("User muted"),
|
|
703
|
+
message: t("channelDetail.channelManagementActions.userMuted.text", "User muted"),
|
|
700
704
|
severity: "success",
|
|
701
705
|
type: "api:user:mute:success"
|
|
702
706
|
})).catch((error) => {
|
|
@@ -705,7 +709,7 @@ var UserMuteAction$1 = () => {
|
|
|
705
709
|
context: { channel },
|
|
706
710
|
emitter: "ChannelManagementView",
|
|
707
711
|
error: toError$1(error),
|
|
708
|
-
message: t("Error muting user"),
|
|
712
|
+
message: t("channelDetail.channelManagementActions.errorMutingUser.text", "Error muting user"),
|
|
709
713
|
severity: "error",
|
|
710
714
|
type: "api:user:mute:failed"
|
|
711
715
|
});
|
|
@@ -731,29 +735,29 @@ var UserMuteAction$1 = () => {
|
|
|
731
735
|
}), [optimisticUserMuted, toggleOptimisticUserMute]);
|
|
732
736
|
const TrailingSlot = (0, react.useMemo)(() => {
|
|
733
737
|
function UserMuteSwitch() {
|
|
734
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
738
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Switch, {
|
|
735
739
|
on: optimisticUserMuted,
|
|
736
740
|
presentation: true
|
|
737
741
|
});
|
|
738
742
|
}
|
|
739
743
|
return UserMuteSwitch;
|
|
740
744
|
}, [optimisticUserMuted]);
|
|
741
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
745
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
742
746
|
LeadingIcon: optimisticUserMuted ? MutedActionIcon : MuteActionIcon,
|
|
743
747
|
RootElement: "button",
|
|
744
748
|
rootProps,
|
|
745
|
-
title: optimisticUserMuted ? t("Unmute user") : t("Mute user"),
|
|
749
|
+
title: optimisticUserMuted ? t("channelDetail.channelManagementActions.unmuteUser.title", "Unmute user") : t("channelDetail.channelManagementActions.muteUser.title", "Mute user"),
|
|
746
750
|
TrailingSlot
|
|
747
751
|
});
|
|
748
752
|
};
|
|
749
753
|
var BlockUserAction$1 = () => {
|
|
750
|
-
const { client } =
|
|
751
|
-
const { Modal =
|
|
754
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
755
|
+
const { Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
752
756
|
const { channel } = useChannelDetailContext();
|
|
753
|
-
const { addNotification } =
|
|
754
|
-
const { t } =
|
|
757
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
758
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
755
759
|
const targetUserId = useOtherMember()?.user?.id;
|
|
756
|
-
const { userIds: blockedUserIds } =
|
|
760
|
+
const { userIds: blockedUserIds } = require_useComponentContextIcons.useStateStore(client.blockedUsers, blockedUsersSelector$1);
|
|
757
761
|
const isBlocked = (0, react.useMemo)(() => !!targetUserId && new Set(blockedUserIds).has(targetUserId), [blockedUserIds, targetUserId]);
|
|
758
762
|
const [alertOpen, setAlertOpen] = (0, react.useState)(false);
|
|
759
763
|
const [userBlockInProgress, setUserBlockInProgress] = (0, react.useState)(false);
|
|
@@ -767,11 +771,11 @@ var BlockUserAction$1 = () => {
|
|
|
767
771
|
if (!targetUserId) return;
|
|
768
772
|
try {
|
|
769
773
|
setUserBlockInProgress(true);
|
|
770
|
-
await client.
|
|
774
|
+
await client.unblockUser(targetUserId);
|
|
771
775
|
addNotification({
|
|
772
776
|
context: { channel },
|
|
773
777
|
emitter: "ChannelManagementView",
|
|
774
|
-
message: t("User unblocked"),
|
|
778
|
+
message: t("common.userUnblocked.text", "User unblocked"),
|
|
775
779
|
severity: "success",
|
|
776
780
|
type: "api:user:unblock:success"
|
|
777
781
|
});
|
|
@@ -780,7 +784,7 @@ var BlockUserAction$1 = () => {
|
|
|
780
784
|
context: { channel },
|
|
781
785
|
emitter: "ChannelManagementView",
|
|
782
786
|
error: toError$1(error),
|
|
783
|
-
message: t("Error unblocking user"),
|
|
787
|
+
message: t("channelDetail.channelManagementActions.errorUnblockingUser.text", "Error unblocking user"),
|
|
784
788
|
severity: "error",
|
|
785
789
|
type: "api:user:unblock:failed"
|
|
786
790
|
});
|
|
@@ -803,7 +807,7 @@ var BlockUserAction$1 = () => {
|
|
|
803
807
|
addNotification({
|
|
804
808
|
context: { channel },
|
|
805
809
|
emitter: "ChannelManagementView",
|
|
806
|
-
message: t("User blocked"),
|
|
810
|
+
message: t("common.userBlocked.text", "User blocked"),
|
|
807
811
|
severity: "success",
|
|
808
812
|
type: "api:user:block:success"
|
|
809
813
|
});
|
|
@@ -812,7 +816,7 @@ var BlockUserAction$1 = () => {
|
|
|
812
816
|
context: { channel },
|
|
813
817
|
emitter: "ChannelManagementView",
|
|
814
818
|
error: toError$1(error),
|
|
815
|
-
message: t("Error blocking user"),
|
|
819
|
+
message: t("channelDetail.channelManagementActions.errorBlockingUser.text", "Error blocking user"),
|
|
816
820
|
severity: "error",
|
|
817
821
|
type: "api:user:block:failed"
|
|
818
822
|
});
|
|
@@ -827,7 +831,7 @@ var BlockUserAction$1 = () => {
|
|
|
827
831
|
targetUserId,
|
|
828
832
|
t
|
|
829
833
|
]);
|
|
830
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
834
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
831
835
|
destructive: true,
|
|
832
836
|
LeadingIcon: BlockUserActionIcon$1,
|
|
833
837
|
RootElement: "button",
|
|
@@ -836,30 +840,30 @@ var BlockUserAction$1 = () => {
|
|
|
836
840
|
disabled: userBlockInProgress,
|
|
837
841
|
onClick: openBlockUserAlert
|
|
838
842
|
}), [openBlockUserAlert, userBlockInProgress]),
|
|
839
|
-
title: isBlocked ? t("Unblock") : t("Block user")
|
|
843
|
+
title: isBlocked ? t("common.unblock.ariaLabel", "Unblock") : t("channelDetail.channelManagementActions.blockUser.title", "Block user")
|
|
840
844
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
841
845
|
open: alertOpen,
|
|
842
846
|
role: "alertdialog",
|
|
843
847
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelManagementConfirmationAlert, {
|
|
844
848
|
action: "blockUser",
|
|
845
|
-
cancelLabel: t("Cancel"),
|
|
846
|
-
confirmLabel: isBlocked ? t("Unblock") : t("Block User"),
|
|
847
|
-
description: isBlocked ? t("This user will be able to message you again.") : t("This user won't be able to message you anymore. You can unblock them anytime."),
|
|
849
|
+
cancelLabel: t("common.cancel.label", "Cancel"),
|
|
850
|
+
confirmLabel: isBlocked ? t("common.unblock.ariaLabel", "Unblock") : t("common.blockUser.title", "Block User"),
|
|
851
|
+
description: isBlocked ? t("channelDetail.channelManagementActions.userAbleMessageAgain.description", "This user will be able to message you again.") : t("channelDetail.channelManagementActions.userWonTAble.description", "This user won't be able to message you anymore. You can unblock them anytime."),
|
|
848
852
|
isSubmitting: userBlockInProgress,
|
|
849
853
|
onCancel: closeBlockUserAlert,
|
|
850
854
|
onConfirm: isBlocked ? unblockUser : blockUser,
|
|
851
855
|
testId: "channel-detail-block-user-alert",
|
|
852
|
-
title: isBlocked ? t("Unblock") : t("Block User")
|
|
856
|
+
title: isBlocked ? t("common.unblock.ariaLabel", "Unblock") : t("common.blockUser.title", "Block User")
|
|
853
857
|
})
|
|
854
858
|
})] });
|
|
855
859
|
};
|
|
856
860
|
var LeaveChannelAction = () => {
|
|
857
|
-
const { client } =
|
|
861
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
858
862
|
const { channel } = useChannelDetailContext();
|
|
859
|
-
const { Modal =
|
|
860
|
-
const { close } =
|
|
861
|
-
const { addNotification } =
|
|
862
|
-
const { t } =
|
|
863
|
+
const { Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
864
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
865
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
866
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
863
867
|
const [alertOpen, setAlertOpen] = (0, react.useState)(false);
|
|
864
868
|
const [leaveChannelInProgress, setLeaveChannelInProgress] = (0, react.useState)(false);
|
|
865
869
|
const closeLeaveChannelAlert = (0, react.useCallback)(() => {
|
|
@@ -876,7 +880,7 @@ var LeaveChannelAction = () => {
|
|
|
876
880
|
addNotification({
|
|
877
881
|
context: { channel },
|
|
878
882
|
emitter: "ChannelManagementView",
|
|
879
|
-
message: t("Left channel"),
|
|
883
|
+
message: t("common.leftChannel.text", "Left channel"),
|
|
880
884
|
severity: "success",
|
|
881
885
|
type: "api:channel:leave:success"
|
|
882
886
|
});
|
|
@@ -887,7 +891,7 @@ var LeaveChannelAction = () => {
|
|
|
887
891
|
context: { channel },
|
|
888
892
|
emitter: "ChannelManagementView",
|
|
889
893
|
error: toError$1(error),
|
|
890
|
-
message: t("Failed to leave channel"),
|
|
894
|
+
message: t("common.failedLeaveChannel.text", "Failed to leave channel"),
|
|
891
895
|
severity: "error",
|
|
892
896
|
type: "api:channel:leave:failed"
|
|
893
897
|
});
|
|
@@ -901,7 +905,7 @@ var LeaveChannelAction = () => {
|
|
|
901
905
|
close,
|
|
902
906
|
t
|
|
903
907
|
]);
|
|
904
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
908
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
905
909
|
destructive: true,
|
|
906
910
|
LeadingIcon: LeaveChannelActionIcon,
|
|
907
911
|
RootElement: "button",
|
|
@@ -910,29 +914,29 @@ var LeaveChannelAction = () => {
|
|
|
910
914
|
disabled: leaveChannelInProgress,
|
|
911
915
|
onClick: openLeaveChannelAlert
|
|
912
916
|
}), [leaveChannelInProgress, openLeaveChannelAlert]),
|
|
913
|
-
title: t("Leave chat")
|
|
917
|
+
title: t("channelDetail.channelManagementActions.leaveChat.title", "Leave chat")
|
|
914
918
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
915
919
|
open: alertOpen,
|
|
916
920
|
role: "alertdialog",
|
|
917
921
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelManagementConfirmationAlert, {
|
|
918
922
|
action: "leaveChannel",
|
|
919
|
-
cancelLabel: t("Cancel"),
|
|
920
|
-
confirmLabel: t("Leave chat"),
|
|
921
|
-
description: t("Are you sure you want to leave this channel?"),
|
|
923
|
+
cancelLabel: t("common.cancel.label", "Cancel"),
|
|
924
|
+
confirmLabel: t("channelDetail.channelManagementActions.leaveChat.title", "Leave chat"),
|
|
925
|
+
description: t("channelDetail.channelManagementActions.sureWantLeaveChannel.description", "Are you sure you want to leave this channel?"),
|
|
922
926
|
isSubmitting: leaveChannelInProgress,
|
|
923
927
|
onCancel: closeLeaveChannelAlert,
|
|
924
928
|
onConfirm: leaveChannel,
|
|
925
929
|
testId: "channel-detail-leave-channel-alert",
|
|
926
|
-
title: t("Leave chat")
|
|
930
|
+
title: t("channelDetail.channelManagementActions.leaveChat.title", "Leave chat")
|
|
927
931
|
})
|
|
928
932
|
})] });
|
|
929
933
|
};
|
|
930
934
|
var DeleteChatAction = () => {
|
|
931
935
|
const { channel } = useChannelDetailContext();
|
|
932
|
-
const { Modal =
|
|
933
|
-
const { close: closeChannelDetail } =
|
|
934
|
-
const { addNotification } =
|
|
935
|
-
const { t } =
|
|
936
|
+
const { Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
937
|
+
const { close: closeChannelDetail } = require_ListItemLayout.useModalContext();
|
|
938
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
939
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
936
940
|
const otherMember = useOtherMember();
|
|
937
941
|
const [alertOpen, setAlertOpen] = (0, react.useState)(false);
|
|
938
942
|
const [deleteChatInProgress, setDeleteChatInProgress] = (0, react.useState)(false);
|
|
@@ -950,7 +954,7 @@ var DeleteChatAction = () => {
|
|
|
950
954
|
addNotification({
|
|
951
955
|
context: { channel },
|
|
952
956
|
emitter: "ChannelManagementView",
|
|
953
|
-
message: t("Chat deleted"),
|
|
957
|
+
message: t("channelDetail.channelManagementActions.chatDeleted.text", "Chat deleted"),
|
|
954
958
|
severity: "success",
|
|
955
959
|
type: "api:channel:delete:success"
|
|
956
960
|
});
|
|
@@ -961,7 +965,7 @@ var DeleteChatAction = () => {
|
|
|
961
965
|
context: { channel },
|
|
962
966
|
emitter: "ChannelManagementView",
|
|
963
967
|
error: toError$1(error),
|
|
964
|
-
message: t("Error deleting chat"),
|
|
968
|
+
message: t("channelDetail.channelManagementActions.errorDeletingChat.text", "Error deleting chat"),
|
|
965
969
|
severity: "error",
|
|
966
970
|
type: "api:channel:delete:failed"
|
|
967
971
|
});
|
|
@@ -974,7 +978,7 @@ var DeleteChatAction = () => {
|
|
|
974
978
|
closeChannelDetail,
|
|
975
979
|
t
|
|
976
980
|
]);
|
|
977
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
981
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
978
982
|
destructive: true,
|
|
979
983
|
LeadingIcon: DeleteChatActionIcon,
|
|
980
984
|
RootElement: "button",
|
|
@@ -983,20 +987,20 @@ var DeleteChatAction = () => {
|
|
|
983
987
|
disabled: deleteChatInProgress,
|
|
984
988
|
onClick: openDeleteChatAlert
|
|
985
989
|
}), [deleteChatInProgress, openDeleteChatAlert]),
|
|
986
|
-
title: t("Delete chat")
|
|
990
|
+
title: t("channelDetail.channelManagementActions.deleteChat.title", "Delete chat")
|
|
987
991
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
988
992
|
open: alertOpen,
|
|
989
993
|
role: "alertdialog",
|
|
990
994
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelManagementConfirmationAlert, {
|
|
991
995
|
action: "deleteChat",
|
|
992
|
-
cancelLabel: t("Cancel"),
|
|
993
|
-
confirmLabel: t("Delete chat"),
|
|
994
|
-
description: t("This permanently deletes your message history with {{ user }}. This can't be undone.", { user: userName }),
|
|
996
|
+
cancelLabel: t("common.cancel.label", "Cancel"),
|
|
997
|
+
confirmLabel: t("channelDetail.channelManagementActions.deleteChat.title", "Delete chat"),
|
|
998
|
+
description: t("channelDetail.channelManagementActions.permanentlyDeletesMessageHistory.description", "This permanently deletes your message history with {{ user }}. This can't be undone.", { user: userName }),
|
|
995
999
|
isSubmitting: deleteChatInProgress,
|
|
996
1000
|
onCancel: closeDeleteChatAlert,
|
|
997
1001
|
onConfirm: deleteChat,
|
|
998
1002
|
testId: "channel-detail-delete-chat-alert",
|
|
999
|
-
title: t("Delete chat")
|
|
1003
|
+
title: t("channelDetail.channelManagementActions.deleteChat.title", "Delete chat")
|
|
1000
1004
|
})
|
|
1001
1005
|
})] });
|
|
1002
1006
|
};
|
|
@@ -1032,12 +1036,12 @@ var defaultChannelManagementActionSet = [
|
|
|
1032
1036
|
//#endregion
|
|
1033
1037
|
//#region src/plugins/ChannelDetail/Views/ChannelManagementView/ChannelManagementView.tsx
|
|
1034
1038
|
var ChannelManagementInfoBody = ({ actions }) => {
|
|
1035
|
-
const { IconMute, IconPin } =
|
|
1036
|
-
const { client } =
|
|
1039
|
+
const { IconMute, IconPin } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1040
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
1037
1041
|
const { channel } = useChannelDetailContext();
|
|
1038
|
-
const { Avatar =
|
|
1039
|
-
const { displayImage, displayTitle, groupChannelDisplayInfo } =
|
|
1040
|
-
const resolvedIsDmChannel =
|
|
1042
|
+
const { Avatar = require_Thread.ChannelAvatar } = require_useComponentContextIcons.useComponentContext();
|
|
1043
|
+
const { displayImage, displayTitle, groupChannelDisplayInfo } = require_Thread.useChannelPreviewInfo({ channel });
|
|
1044
|
+
const resolvedIsDmChannel = require_ListItemLayout.isDmChannel({
|
|
1041
1045
|
channel,
|
|
1042
1046
|
ownUserId: client.user?.id
|
|
1043
1047
|
});
|
|
@@ -1049,13 +1053,13 @@ var ChannelManagementInfoBody = ({ actions }) => {
|
|
|
1049
1053
|
client.user?.id,
|
|
1050
1054
|
resolvedIsDmChannel
|
|
1051
1055
|
]);
|
|
1052
|
-
const isOnline =
|
|
1053
|
-
const { muted: channelMuted } =
|
|
1054
|
-
const userMuted =
|
|
1055
|
-
const membership =
|
|
1056
|
-
const onlineStatusText =
|
|
1057
|
-
const pinned =
|
|
1058
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1056
|
+
const isOnline = require_ListItemLayout.useChannelHasMembersOnline({ channel });
|
|
1057
|
+
const { muted: channelMuted } = require_Thread.useIsChannelMuted(channel);
|
|
1058
|
+
const userMuted = require_ListItemLayout.useIsUserMuted(otherMemberUserId);
|
|
1059
|
+
const membership = require_Thread.useChannelMembershipState(channel);
|
|
1060
|
+
const onlineStatusText = require_ListItemLayout.useChannelHeaderOnlineStatus();
|
|
1061
|
+
const pinned = membership.pinned_at != null;
|
|
1062
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
1059
1063
|
className: "str-chat__channel-detail__channel-management-view__body",
|
|
1060
1064
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1061
1065
|
className: "str-chat__channel-detail__channel-management-view__profile",
|
|
@@ -1094,10 +1098,10 @@ var EDIT_BODY_EMITTER = "ChannelManagementEditBody";
|
|
|
1094
1098
|
var buildChannelUpdatePayload = ({ image, name }) => {
|
|
1095
1099
|
const payload = {};
|
|
1096
1100
|
const set = {};
|
|
1097
|
-
if (name !== void 0) set.name = name;
|
|
1098
|
-
if (typeof image === "string") set.image = image;
|
|
1101
|
+
if (name !== void 0) set["custom.name"] = name;
|
|
1102
|
+
if (typeof image === "string") set["custom.image"] = image;
|
|
1099
1103
|
if (Object.keys(set).length > 0) payload.set = set;
|
|
1100
|
-
if (image === null) payload.unset = ["image"];
|
|
1104
|
+
if (image === null) payload.unset = ["custom.image"];
|
|
1101
1105
|
return Object.keys(payload).length > 0 ? payload : null;
|
|
1102
1106
|
};
|
|
1103
1107
|
/**
|
|
@@ -1106,19 +1110,19 @@ var buildChannelUpdatePayload = ({ image, name }) => {
|
|
|
1106
1110
|
* notify). The component is left to render the values this returns.
|
|
1107
1111
|
*/
|
|
1108
1112
|
var useChannelManagementEditForm = ({ uploadImage }) => {
|
|
1109
|
-
const { t } =
|
|
1110
|
-
const { client } =
|
|
1113
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1114
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
1111
1115
|
const { channel } = useChannelDetailContext();
|
|
1112
|
-
const { displayImage, displayTitle, groupChannelDisplayInfo } =
|
|
1113
|
-
const { addNotification } =
|
|
1114
|
-
const resolvedIsDmChannel =
|
|
1116
|
+
const { displayImage, displayTitle, groupChannelDisplayInfo } = require_Thread.useChannelPreviewInfo({ channel });
|
|
1117
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
1118
|
+
const resolvedIsDmChannel = require_ListItemLayout.isDmChannel({
|
|
1115
1119
|
channel,
|
|
1116
1120
|
ownUserId: client.user?.id
|
|
1117
1121
|
});
|
|
1118
|
-
const hasMembersOnline =
|
|
1122
|
+
const hasMembersOnline = require_ListItemLayout.useChannelHasMembersOnline({ channel });
|
|
1119
1123
|
const isOnline = resolvedIsDmChannel ? hasMembersOnline : void 0;
|
|
1120
|
-
const nameLabel = resolvedIsDmChannel ? t("Contact name") : t("Group name");
|
|
1121
|
-
const [baselineName, setBaselineName] = (0, react.useState)(channel.data?.name ?? "");
|
|
1124
|
+
const nameLabel = resolvedIsDmChannel ? t("channelDetail.channelManagementView.contactName.label", "Contact name") : t("channelDetail.channelManagementView.groupName.label", "Group name");
|
|
1125
|
+
const [baselineName, setBaselineName] = (0, react.useState)(channel.data?.custom?.name ?? "");
|
|
1122
1126
|
const [name, setName] = (0, react.useState)(baselineName);
|
|
1123
1127
|
const [imageEdit, setImageEdit] = (0, react.useState)(null);
|
|
1124
1128
|
const [isSaving, setIsSaving] = (0, react.useState)(false);
|
|
@@ -1144,7 +1148,7 @@ var useChannelManagementEditForm = ({ uploadImage }) => {
|
|
|
1144
1148
|
}, []);
|
|
1145
1149
|
const handleDeleteImage = (0, react.useCallback)(() => setImageEdit("removed"), []);
|
|
1146
1150
|
const resolveImageUrl = (0, react.useCallback)(async (file) => {
|
|
1147
|
-
const url = uploadImage ? await uploadImage(file) : (await channel.
|
|
1151
|
+
const url = uploadImage ? await uploadImage(file) : (await channel.uploadImage({ file })).file;
|
|
1148
1152
|
if (!url) throw new Error("Image upload did not return a URL");
|
|
1149
1153
|
return url;
|
|
1150
1154
|
}, [channel, uploadImage]);
|
|
@@ -1181,7 +1185,7 @@ var useChannelManagementEditForm = ({ uploadImage }) => {
|
|
|
1181
1185
|
operation: "update",
|
|
1182
1186
|
status: "success"
|
|
1183
1187
|
},
|
|
1184
|
-
message: t("Changes saved"),
|
|
1188
|
+
message: t("channelDetail.channelManagementView.changesSaved.text", "Changes saved"),
|
|
1185
1189
|
severity: "success"
|
|
1186
1190
|
});
|
|
1187
1191
|
} catch (error) {
|
|
@@ -1194,7 +1198,7 @@ var useChannelManagementEditForm = ({ uploadImage }) => {
|
|
|
1194
1198
|
operation: "update",
|
|
1195
1199
|
status: "failed"
|
|
1196
1200
|
},
|
|
1197
|
-
message: t("Failed to save changes"),
|
|
1201
|
+
message: t("channelDetail.channelManagementView.failedSaveChanges.text", "Failed to save changes"),
|
|
1198
1202
|
severity: "error"
|
|
1199
1203
|
});
|
|
1200
1204
|
} finally {
|
|
@@ -1222,13 +1226,13 @@ var useChannelManagementEditForm = ({ uploadImage }) => {
|
|
|
1222
1226
|
};
|
|
1223
1227
|
};
|
|
1224
1228
|
var ChannelManagementEditBody = (props) => {
|
|
1225
|
-
const { IconCheckmark } =
|
|
1226
|
-
const { Avatar =
|
|
1229
|
+
const { IconCheckmark } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1230
|
+
const { Avatar = require_Thread.ChannelAvatar } = require_useComponentContextIcons.useComponentContext();
|
|
1227
1231
|
const { canSubmit, displayTitle, fileInputRef, groupChannelDisplayInfo, handleDeleteImage, handleFileChange, handleOpenFilePicker, handleSubmit, hasAvatarImage, isOnline, name, nameLabel, previewImageUrl, setName, t, trimmedName } = useChannelManagementEditForm(props);
|
|
1228
1232
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("form", {
|
|
1229
1233
|
className: "str-chat__channel-detail__channel-management-view__form",
|
|
1230
1234
|
onSubmit: handleSubmit,
|
|
1231
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1235
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
1232
1236
|
className: "str-chat__channel-detail__channel-management-view__body",
|
|
1233
1237
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1234
1238
|
className: "str-chat__channel-detail__channel-management-view__avatar-row",
|
|
@@ -1241,21 +1245,21 @@ var ChannelManagementEditBody = (props) => {
|
|
|
1241
1245
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1242
1246
|
className: "str-chat__channel-detail__channel-management-view__avatar-row__actions",
|
|
1243
1247
|
children: [
|
|
1244
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1248
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
1245
1249
|
appearance: "outline",
|
|
1246
1250
|
onClick: handleOpenFilePicker,
|
|
1247
1251
|
size: "sm",
|
|
1248
1252
|
type: "button",
|
|
1249
1253
|
variant: "secondary",
|
|
1250
|
-
children: t("Upload Picture")
|
|
1254
|
+
children: t("channelDetail.channelManagementView.uploadPicture.text", "Upload Picture")
|
|
1251
1255
|
}),
|
|
1252
|
-
hasAvatarImage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1256
|
+
hasAvatarImage && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
1253
1257
|
appearance: "outline",
|
|
1254
1258
|
onClick: handleDeleteImage,
|
|
1255
1259
|
size: "sm",
|
|
1256
1260
|
type: "button",
|
|
1257
1261
|
variant: "secondary",
|
|
1258
|
-
children: t("Delete")
|
|
1262
|
+
children: t("common.delete.text", "Delete")
|
|
1259
1263
|
}),
|
|
1260
1264
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)("input", {
|
|
1261
1265
|
accept: "image/*",
|
|
@@ -1268,7 +1272,7 @@ var ChannelManagementEditBody = (props) => {
|
|
|
1268
1272
|
})
|
|
1269
1273
|
]
|
|
1270
1274
|
})]
|
|
1271
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1275
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.TextInput, {
|
|
1272
1276
|
"aria-label": nameLabel,
|
|
1273
1277
|
autoFocus: true,
|
|
1274
1278
|
className: "str-chat__channel-detail__channel-management-view__name-input",
|
|
@@ -1277,22 +1281,22 @@ var ChannelManagementEditBody = (props) => {
|
|
|
1277
1281
|
placeholder: nameLabel,
|
|
1278
1282
|
value: name
|
|
1279
1283
|
})]
|
|
1280
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1284
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Footer, {
|
|
1281
1285
|
className: "str-chat__channel-detail__channel-management-view__footer",
|
|
1282
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1286
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.FooterControls, { children: canSubmit && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.FooterControlsButtonPrimary, {
|
|
1283
1287
|
className: "str-chat__channel-detail__channel-management-view__footer__save-button",
|
|
1284
1288
|
type: "submit",
|
|
1285
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconCheckmark, {}), t("Save")]
|
|
1289
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconCheckmark, {}), t("channelDetail.channelManagementView.save.text", "Save")]
|
|
1286
1290
|
}) })
|
|
1287
1291
|
})]
|
|
1288
1292
|
});
|
|
1289
1293
|
};
|
|
1290
1294
|
var ChannelManagementView = ({ channelManagementActionSet = defaultChannelManagementActionSet, EditModeComponent = ChannelManagementEditBody, uploadImage, ViewModeComponent = ChannelManagementInfoBody }) => {
|
|
1291
|
-
const { t } =
|
|
1292
|
-
const { client } =
|
|
1295
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1296
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
1293
1297
|
const { channel } = useChannelDetailContext();
|
|
1294
|
-
const { close } =
|
|
1295
|
-
const resolvedIsDmChannel =
|
|
1298
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
1299
|
+
const resolvedIsDmChannel = require_ListItemLayout.isDmChannel({
|
|
1296
1300
|
channel,
|
|
1297
1301
|
ownUserId: client.user?.id
|
|
1298
1302
|
});
|
|
@@ -1302,26 +1306,26 @@ var ChannelManagementView = ({ channelManagementActionSet = defaultChannelManage
|
|
|
1302
1306
|
const isEditMode = isEditing && canEditChannel;
|
|
1303
1307
|
(0, react.useEffect)(() => {
|
|
1304
1308
|
setIsEditing(false);
|
|
1305
|
-
}, [channel
|
|
1309
|
+
}, [channel]);
|
|
1306
1310
|
const EditChannelButton = (0, react.useMemo)(() => function EditChannelButton() {
|
|
1307
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1311
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
1308
1312
|
appearance: "outline",
|
|
1309
|
-
"aria-label": t("Edit chat data"),
|
|
1313
|
+
"aria-label": t("channelDetail.channelManagementView.editChatData.ariaLabel", "Edit chat data"),
|
|
1310
1314
|
className: "str-chat__channel-detail__channel-management-view__edit-button",
|
|
1311
1315
|
onClick: () => {
|
|
1312
1316
|
setIsEditing(true);
|
|
1313
1317
|
},
|
|
1314
1318
|
size: "md",
|
|
1315
1319
|
variant: "secondary",
|
|
1316
|
-
children: t("Edit")
|
|
1320
|
+
children: t("channelDetail.channelManagementView.edit.text", "Edit")
|
|
1317
1321
|
});
|
|
1318
1322
|
}, [t]);
|
|
1319
|
-
const headerTitle = isEditMode ? resolvedIsDmChannel ? t("Edit contact") : t("Edit group") : resolvedIsDmChannel ? t("Contact info") : t("Group info");
|
|
1323
|
+
const headerTitle = isEditMode ? resolvedIsDmChannel ? t("channelDetail.channelManagementView.editContact.label", "Edit contact") : t("channelDetail.channelManagementView.editGroup.label", "Edit group") : resolvedIsDmChannel ? t("channelDetail.channelManagementView.contactInfo.label", "Contact info") : t("channelDetail.channelManagementView.groupInfo.label", "Group info");
|
|
1320
1324
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1321
1325
|
className: "str-chat__channel-detail__channel-management-view",
|
|
1322
1326
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
1323
1327
|
close,
|
|
1324
|
-
description: isEditMode ? void 0 : t("Manage channel"),
|
|
1328
|
+
description: isEditMode ? void 0 : t("channelDetail.channelManagementView.manageChannel.description", "Manage channel"),
|
|
1325
1329
|
goBack: isEditMode ? () => setIsEditing(false) : void 0,
|
|
1326
1330
|
title: headerTitle,
|
|
1327
1331
|
TrailingContent: !isEditMode && canEditChannel ? EditChannelButton : void 0
|
|
@@ -1331,18 +1335,18 @@ var ChannelManagementView = ({ channelManagementActionSet = defaultChannelManage
|
|
|
1331
1335
|
//#endregion
|
|
1332
1336
|
//#region src/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaEmptyList.tsx
|
|
1333
1337
|
var ChannelMediaEmptyList = () => {
|
|
1334
|
-
const { IconImage } =
|
|
1335
|
-
const { t } =
|
|
1338
|
+
const { IconImage } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1339
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1336
1340
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1337
1341
|
className: "str-chat__channel-detail__media-view__empty-state",
|
|
1338
1342
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconImage, { className: "str-chat__channel-detail__media-view__empty-state__icon" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1339
1343
|
className: "str-chat__channel-detail__media-view__empty-state__content",
|
|
1340
1344
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1341
1345
|
className: "str-chat__channel-detail__media-view__empty-state__title",
|
|
1342
|
-
children: t("No photos or videos")
|
|
1346
|
+
children: t("channelDetail.channelMediaEmpty.noPhotosVideos.text", "No photos or videos")
|
|
1343
1347
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
1344
1348
|
className: "str-chat__channel-detail__media-view__empty-state__description",
|
|
1345
|
-
children: t("Share a photo or video to see it here")
|
|
1349
|
+
children: t("channelDetail.channelMediaEmpty.sharePhotoVideoSee.text", "Share a photo or video to see it here")
|
|
1346
1350
|
})]
|
|
1347
1351
|
})]
|
|
1348
1352
|
});
|
|
@@ -1351,7 +1355,7 @@ var ChannelMediaEmptyList = () => {
|
|
|
1351
1355
|
//#region src/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersView.utils.ts
|
|
1352
1356
|
var getMemberDisplayName = (member) => getUserDisplayName(member.user) || member.user_id || "";
|
|
1353
1357
|
var getMemberUserId = (member) => member.user?.id || member.user_id;
|
|
1354
|
-
var getUserDisplayName = (user) => user?.name || user?.username || user?.id || "";
|
|
1358
|
+
var getUserDisplayName = (user) => user?.name || (user?.custom)?.username || user?.id || "";
|
|
1355
1359
|
var getChannelMemberUserIds = (channel) => Object.values(channel.state?.members ?? {}).map((member) => member.user?.id || member.user_id).filter((userId) => !!userId);
|
|
1356
1360
|
var canUpdateChannelMembers = (channel) => channel.data?.own_capabilities?.includes("update-channel-members") ?? false;
|
|
1357
1361
|
//#endregion
|
|
@@ -1372,12 +1376,17 @@ var toChannelMediaItems = (messages) => {
|
|
|
1372
1376
|
message.attachments?.forEach((attachment, index) => {
|
|
1373
1377
|
const type = getMediaAttachmentType(attachment);
|
|
1374
1378
|
if (!type) return;
|
|
1375
|
-
const descriptor =
|
|
1379
|
+
const descriptor = require_ListItemLayout.toBaseImageDescriptors(attachment);
|
|
1376
1380
|
if (!descriptor) return;
|
|
1377
1381
|
if (!(type === "video" ? Boolean(descriptor.videoThumbnailUrl || descriptor.videoUrl) : Boolean(descriptor.imageUrl))) return;
|
|
1382
|
+
const attachmentDuration = attachment.custom?.duration;
|
|
1378
1383
|
items.push({
|
|
1379
|
-
durationSeconds: typeof
|
|
1380
|
-
galleryItem:
|
|
1384
|
+
durationSeconds: typeof attachmentDuration === "number" ? attachmentDuration : void 0,
|
|
1385
|
+
galleryItem: {
|
|
1386
|
+
...descriptor,
|
|
1387
|
+
createdAt: (0, stream_chat.convertTimestampToDate)(message.created_at),
|
|
1388
|
+
user: message.user ?? void 0
|
|
1389
|
+
},
|
|
1381
1390
|
id: `${message.id}-${index}`,
|
|
1382
1391
|
type,
|
|
1383
1392
|
user: message.user ?? void 0
|
|
@@ -1395,7 +1404,7 @@ var channelMediaSearchSourceItemsStateSelector = (state) => ({
|
|
|
1395
1404
|
messages: state.items
|
|
1396
1405
|
});
|
|
1397
1406
|
var useChannelMediaSearch = () => {
|
|
1398
|
-
const { client } =
|
|
1407
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
1399
1408
|
const { channel } = useChannelDetailContext();
|
|
1400
1409
|
const channelMediaSearchSource = (0, react.useMemo)(() => {
|
|
1401
1410
|
const source = new stream_chat.MessageSearchSource(client, {
|
|
@@ -1407,7 +1416,7 @@ var useChannelMediaSearch = () => {
|
|
|
1407
1416
|
source.messageSearchFilters = { "attachments.type": { $in: [...MEDIA_ATTACHMENT_TYPES] } };
|
|
1408
1417
|
return source;
|
|
1409
1418
|
}, [channel.cid, client]);
|
|
1410
|
-
const { hasNext, isLoading, messages } =
|
|
1419
|
+
const { hasNext, isLoading, messages } = require_useComponentContextIcons.useStateStore(channelMediaSearchSource.state, channelMediaSearchSourceItemsStateSelector);
|
|
1411
1420
|
const mediaItems = (0, react.useMemo)(() => toChannelMediaItems(messages ?? []), [messages]);
|
|
1412
1421
|
(0, react.useEffect)(() => {
|
|
1413
1422
|
channelMediaSearchSource.activate();
|
|
@@ -1428,14 +1437,14 @@ var useChannelMediaSearch = () => {
|
|
|
1428
1437
|
//#region src/plugins/ChannelDetail/Views/ChannelMediaView/ChannelMediaView.tsx
|
|
1429
1438
|
var DEFAULT_CHANNEL_MEDIA_ITEMS_PER_PAGE = 30;
|
|
1430
1439
|
var ChannelMediaGridItem = ({ BaseImage, item, onClick }) => {
|
|
1431
|
-
const {
|
|
1432
|
-
const {
|
|
1433
|
-
const {
|
|
1440
|
+
const { IconImage, IconVideoFill } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1441
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1442
|
+
const { Avatar: Avatar$4 = require_Thread.Avatar, extractDisplayInfo: extractDisplayInfo$4 = require_Thread.extractDisplayInfo } = require_useComponentContextIcons.useComponentContext();
|
|
1434
1443
|
const displayName = getUserDisplayName(item.user);
|
|
1435
1444
|
const mediaSrc = item.type === "video" ? item.galleryItem.videoThumbnailUrl : item.galleryItem.imageUrl;
|
|
1436
|
-
const durationLabel =
|
|
1445
|
+
const durationLabel = require_ListItemLayout.formatTime(item.durationSeconds, "floor");
|
|
1437
1446
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("button", {
|
|
1438
|
-
"aria-label": item.type === "video" ? t("
|
|
1447
|
+
"aria-label": item.type === "video" ? t("channelDetail.channelMediaView.openVideoShared.ariaLabel", "Open video shared by {{ name }}", { name: displayName }) : t("channelDetail.channelMediaView.openImageShared.ariaLabel", "Open image shared by {{ name }}", { name: displayName }),
|
|
1439
1448
|
className: "str-chat__channel-detail__media-view__item",
|
|
1440
1449
|
onClick,
|
|
1441
1450
|
type: "button",
|
|
@@ -1455,7 +1464,7 @@ var ChannelMediaGridItem = ({ BaseImage, item, onClick }) => {
|
|
|
1455
1464
|
className: "str-chat__channel-detail__media-view__item__avatar",
|
|
1456
1465
|
size: "sm"
|
|
1457
1466
|
}),
|
|
1458
|
-
item.type === "video" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1467
|
+
item.type === "video" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Thread.Badge, {
|
|
1459
1468
|
className: "str-chat__channel-detail__media-view__item__duration",
|
|
1460
1469
|
size: "sm",
|
|
1461
1470
|
variant: "inverse",
|
|
@@ -1465,35 +1474,35 @@ var ChannelMediaGridItem = ({ BaseImage, item, onClick }) => {
|
|
|
1465
1474
|
});
|
|
1466
1475
|
};
|
|
1467
1476
|
var ChannelMediaPagination = ({ nextDisabled, onNext, onPrevious, previousDisabled }) => {
|
|
1468
|
-
const {
|
|
1469
|
-
const {
|
|
1477
|
+
const { IconChevronLeft, IconChevronRight } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1478
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1470
1479
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1471
1480
|
className: "str-chat__channel-detail__media-view__pagination",
|
|
1472
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1481
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_useComponentContextIcons.Button, {
|
|
1473
1482
|
appearance: "outline",
|
|
1474
|
-
"aria-label": t("
|
|
1483
|
+
"aria-label": t("channelDetail.channelMediaView.previousPage.ariaLabel", "Previous page"),
|
|
1475
1484
|
className: "str-chat__channel-detail__media-view__pagination__button str-chat__channel-detail__media-view__pagination__button--previous",
|
|
1476
1485
|
disabled: previousDisabled,
|
|
1477
1486
|
onClick: onPrevious,
|
|
1478
1487
|
size: "md",
|
|
1479
1488
|
variant: "secondary",
|
|
1480
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronLeft, {}), t("Previous")]
|
|
1481
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1489
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronLeft, {}), t("channelDetail.channelMediaView.previous.text", "Previous")]
|
|
1490
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_useComponentContextIcons.Button, {
|
|
1482
1491
|
appearance: "outline",
|
|
1483
|
-
"aria-label": t("
|
|
1492
|
+
"aria-label": t("channelDetail.channelMediaView.nextPage.ariaLabel", "Next page"),
|
|
1484
1493
|
className: "str-chat__channel-detail__media-view__pagination__button str-chat__channel-detail__media-view__pagination__button--next",
|
|
1485
1494
|
disabled: nextDisabled,
|
|
1486
1495
|
onClick: onNext,
|
|
1487
1496
|
size: "md",
|
|
1488
1497
|
variant: "secondary",
|
|
1489
|
-
children: [t("Next"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronRight, {})]
|
|
1498
|
+
children: [t("channelDetail.channelMediaView.next.text", "Next"), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconChevronRight, {})]
|
|
1490
1499
|
})]
|
|
1491
1500
|
});
|
|
1492
1501
|
};
|
|
1493
1502
|
var ChannelMediaView = ({ itemsPerPage = DEFAULT_CHANNEL_MEDIA_ITEMS_PER_PAGE }) => {
|
|
1494
|
-
const { t } =
|
|
1495
|
-
const { close } =
|
|
1496
|
-
const { BaseImage: BaseImage$1 =
|
|
1503
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1504
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
1505
|
+
const { BaseImage: BaseImage$1 = require_ListItemLayout.BaseImage, Gallery: Gallery$1 = require_ListItemLayout.Gallery, Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
1497
1506
|
const { channelMediaSearchSource, hasNext, hasResultsLoaded, isLoading, mediaItems } = useChannelMediaSearch();
|
|
1498
1507
|
const [viewerOpen, setViewerOpen] = (0, react.useState)(false);
|
|
1499
1508
|
const [selectedIndex, setSelectedIndex] = (0, react.useState)(0);
|
|
@@ -1571,9 +1580,9 @@ var ChannelMediaView = ({ itemsPerPage = DEFAULT_CHANNEL_MEDIA_ITEMS_PER_PAGE })
|
|
|
1571
1580
|
children: [
|
|
1572
1581
|
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
1573
1582
|
close,
|
|
1574
|
-
title: t("Photos & videos")
|
|
1583
|
+
title: t("channelDetail.channelMediaView.photosVideos.title", "Photos & videos")
|
|
1575
1584
|
}),
|
|
1576
|
-
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1585
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Body, {
|
|
1577
1586
|
className: "str-chat__channel-detail__media-view__body",
|
|
1578
1587
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1579
1588
|
className: "str-chat__channel-detail__media-view__grid",
|
|
@@ -1605,7 +1614,7 @@ var ChannelMediaView = ({ itemsPerPage = DEFAULT_CHANNEL_MEDIA_ITEMS_PER_PAGE })
|
|
|
1605
1614
|
onClose: closeViewer,
|
|
1606
1615
|
open: viewerOpen,
|
|
1607
1616
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Gallery$1, {
|
|
1608
|
-
GalleryUI:
|
|
1617
|
+
GalleryUI: require_ListItemLayout.GalleryUI,
|
|
1609
1618
|
initialIndex: selectedIndex,
|
|
1610
1619
|
items: galleryItems,
|
|
1611
1620
|
onRequestClose: closeViewer
|
|
@@ -1635,30 +1644,30 @@ var useBaseChannelMembersHeaderActionSetFilter = (channelMembersHeaderActionSet)
|
|
|
1635
1644
|
]);
|
|
1636
1645
|
};
|
|
1637
1646
|
var AddMembersHeaderAction = ({ modeController }) => {
|
|
1638
|
-
const { t } =
|
|
1647
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1639
1648
|
if (modeController.mode !== "browse") return null;
|
|
1640
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1649
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
1641
1650
|
appearance: "outline",
|
|
1642
|
-
"aria-label": t("Add channel members"),
|
|
1651
|
+
"aria-label": t("channelDetail.channelMembersHeader.addChannelMembers.ariaLabel", "Add channel members"),
|
|
1643
1652
|
className: "str-chat__channel-detail__channel-members-view__add-button",
|
|
1644
1653
|
onClick: () => modeController.setMode("add"),
|
|
1645
1654
|
size: "md",
|
|
1646
1655
|
variant: "secondary",
|
|
1647
|
-
children: t("Add")
|
|
1656
|
+
children: t("channelDetail.channelMembersHeader.add.text", "Add")
|
|
1648
1657
|
});
|
|
1649
1658
|
};
|
|
1650
1659
|
var AddMembersMenuAction = ({ closeMenu, modeController }) => {
|
|
1651
|
-
const {
|
|
1652
|
-
const {
|
|
1660
|
+
const { IconUserAdd } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1661
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1653
1662
|
if (modeController.mode !== "browse") return null;
|
|
1654
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1655
|
-
"aria-label": t("Add channel members"),
|
|
1663
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Thread.ContextMenuButton, {
|
|
1664
|
+
"aria-label": t("channelDetail.channelMembersHeader.addChannelMembers.ariaLabel", "Add channel members"),
|
|
1656
1665
|
Icon: IconUserAdd,
|
|
1657
1666
|
onClick: () => {
|
|
1658
1667
|
modeController.setMode("add");
|
|
1659
1668
|
closeMenu?.();
|
|
1660
1669
|
},
|
|
1661
|
-
children: t("Add")
|
|
1670
|
+
children: t("channelDetail.channelMembersHeader.add.text", "Add")
|
|
1662
1671
|
});
|
|
1663
1672
|
};
|
|
1664
1673
|
var DefaultChannelMembersHeaderActions = {
|
|
@@ -1671,28 +1680,28 @@ var defaultChannelMembersHeaderActionSet = [{
|
|
|
1671
1680
|
type: "addMembers"
|
|
1672
1681
|
}];
|
|
1673
1682
|
var DefaultHeaderActionsMenuTrigger = ({ referenceRef, ...props }) => {
|
|
1674
|
-
const { t } =
|
|
1675
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1683
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1684
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
1676
1685
|
appearance: "outline",
|
|
1677
|
-
"aria-label": t("Open members actions"),
|
|
1686
|
+
"aria-label": t("channelDetail.channelMembersHeader.openMembersActions.ariaLabel", "Open members actions"),
|
|
1678
1687
|
className: "str-chat__channel-detail__channel-members-view__actions-button",
|
|
1679
1688
|
ref: referenceRef,
|
|
1680
1689
|
size: "md",
|
|
1681
1690
|
variant: "secondary",
|
|
1682
1691
|
...props,
|
|
1683
|
-
children: t("Actions")
|
|
1692
|
+
children: t("channelDetail.channelMembersHeader.actions.text", "Actions")
|
|
1684
1693
|
});
|
|
1685
1694
|
};
|
|
1686
1695
|
var getHeaderActionsDialogId = (channelId) => `channel-members-header-actions-${channelId ?? "unknown"}`;
|
|
1687
1696
|
var DefaultHeaderActions = ({ headerActionSet, HeaderActionsMenuTrigger = DefaultHeaderActionsMenuTrigger, modeController }) => {
|
|
1688
|
-
const { ContextMenu: ContextMenuComponent =
|
|
1697
|
+
const { ContextMenu: ContextMenuComponent = require_Thread.ContextMenu } = require_useComponentContextIcons.useComponentContext();
|
|
1689
1698
|
const { channel } = useChannelDetailContext();
|
|
1690
1699
|
const actions = useBaseChannelMembersHeaderActionSetFilter(headerActionSet);
|
|
1691
1700
|
const [referenceElement, setReferenceElement] = (0, react.useState)(null);
|
|
1692
1701
|
const dialogId = getHeaderActionsDialogId(channel.id);
|
|
1693
|
-
const { dialog, dialogManager } =
|
|
1702
|
+
const { dialog, dialogManager } = require_Thread.useDialogOnNearestManager({ id: dialogId });
|
|
1694
1703
|
const dialogManagerId = dialogManager?.id;
|
|
1695
|
-
const dialogIsOpen =
|
|
1704
|
+
const dialogIsOpen = require_Thread.useDialogIsOpen(dialogId, dialogManagerId);
|
|
1696
1705
|
if (!actions.length) return null;
|
|
1697
1706
|
const quickActions = actions.filter((action) => action.placement === "quick");
|
|
1698
1707
|
const menuActions = actions.filter((action) => action.placement === "menu");
|
|
@@ -1777,8 +1786,8 @@ var useChannelMemberIds = (channel) => {
|
|
|
1777
1786
|
//#endregion
|
|
1778
1787
|
//#region src/plugins/ChannelDetail/ChannelDetailSearchInput.tsx
|
|
1779
1788
|
var ChannelDetailSearchInput = react.default.memo(({ autoFocus, onSearchChange, resetKey }) => {
|
|
1780
|
-
const { IconSearch } =
|
|
1781
|
-
const { t } =
|
|
1789
|
+
const { IconSearch } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1790
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1782
1791
|
const [searchInput, setSearchInput] = (0, react.useState)("");
|
|
1783
1792
|
(0, react.useEffect)(() => {
|
|
1784
1793
|
setSearchInput("");
|
|
@@ -1788,14 +1797,14 @@ var ChannelDetailSearchInput = react.default.memo(({ autoFocus, onSearchChange,
|
|
|
1788
1797
|
setSearchInput(value);
|
|
1789
1798
|
onSearchChange(value);
|
|
1790
1799
|
}, [onSearchChange]);
|
|
1791
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1792
|
-
"aria-label": t("Search"),
|
|
1800
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.TextInput, {
|
|
1801
|
+
"aria-label": t("common.search.ariaLabel", "Search"),
|
|
1793
1802
|
autoComplete: "off",
|
|
1794
1803
|
autoFocus,
|
|
1795
1804
|
className: "str-chat__channel-detail__search-input",
|
|
1796
1805
|
leading: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconSearch, {}),
|
|
1797
1806
|
onChange: handleSearchChange,
|
|
1798
|
-
placeholder: t("Search"),
|
|
1807
|
+
placeholder: t("common.search.ariaLabel", "Search"),
|
|
1799
1808
|
type: "search",
|
|
1800
1809
|
value: searchInput
|
|
1801
1810
|
});
|
|
@@ -1804,7 +1813,7 @@ ChannelDetailSearchInput.displayName = "ChannelDetailSearchInput";
|
|
|
1804
1813
|
//#endregion
|
|
1805
1814
|
//#region src/plugins/ChannelDetail/ChannelDetailEmptyList.tsx
|
|
1806
1815
|
var ChannelDetailEmptyList = ({ children }) => {
|
|
1807
|
-
const { IconSearch } =
|
|
1816
|
+
const { IconSearch } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1808
1817
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1809
1818
|
className: "str-chat__channel-detail__channel-members-view__empty-state",
|
|
1810
1819
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconSearch, {}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children })]
|
|
@@ -1820,13 +1829,13 @@ var searchSourceItemsStateSelector = (state) => ({
|
|
|
1820
1829
|
var EMPTY_USERS = [];
|
|
1821
1830
|
var computeUserItemKey = (_, user) => user.id;
|
|
1822
1831
|
var MuteIndicator = () => {
|
|
1823
|
-
const { IconMute } =
|
|
1832
|
+
const { IconMute } = require_useComponentContextIcons.useComponentContextIcons();
|
|
1824
1833
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconMute, { className: "str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--mute" });
|
|
1825
1834
|
};
|
|
1826
1835
|
var readOnlyRootProps = { className: "str-chat__channel-detail__channel-members-view__list-item" };
|
|
1827
1836
|
var ChannelMembersAddViewItem = ({ canManageChannelMembers, isMember, isMuted, isSelected, toggleSelectedUser, user }) => {
|
|
1828
|
-
const { t } =
|
|
1829
|
-
const { Avatar: Avatar$3 =
|
|
1837
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1838
|
+
const { Avatar: Avatar$3 = require_Thread.Avatar, extractDisplayInfo: extractDisplayInfo$3 = require_Thread.extractDisplayInfo } = require_useComponentContextIcons.useComponentContext();
|
|
1830
1839
|
const displayName = getUserDisplayName(user);
|
|
1831
1840
|
const LeadingSlot = (0, react.useMemo)(() => function MemberAvatar() {
|
|
1832
1841
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Avatar$3, {
|
|
@@ -1840,7 +1849,7 @@ var ChannelMembersAddViewItem = ({ canManageChannelMembers, isMember, isMuted, i
|
|
|
1840
1849
|
user
|
|
1841
1850
|
]);
|
|
1842
1851
|
const SelectableTrailingSlot = (0, react.useMemo)(() => function SelectCheckbox() {
|
|
1843
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1852
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Checkbox, {
|
|
1844
1853
|
"aria-hidden": true,
|
|
1845
1854
|
checked: isSelected
|
|
1846
1855
|
});
|
|
@@ -1854,27 +1863,27 @@ var ChannelMembersAddViewItem = ({ canManageChannelMembers, isMember, isMuted, i
|
|
|
1854
1863
|
toggleSelectedUser,
|
|
1855
1864
|
user.id
|
|
1856
1865
|
]);
|
|
1857
|
-
if (canManageChannelMembers && !isMember) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1866
|
+
if (canManageChannelMembers && !isMember) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
1858
1867
|
LeadingSlot,
|
|
1859
1868
|
RootElement: "button",
|
|
1860
1869
|
rootProps: selectableRootProps,
|
|
1861
1870
|
title: displayName,
|
|
1862
1871
|
TrailingSlot: SelectableTrailingSlot
|
|
1863
1872
|
});
|
|
1864
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1873
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
1865
1874
|
LeadingSlot,
|
|
1866
1875
|
rootProps: readOnlyRootProps,
|
|
1867
|
-
subtitle: isMember ? t("Already a member") : void 0,
|
|
1876
|
+
subtitle: isMember ? t("channelDetail.channelMembersAdd.alreadyMember.label", "Already a member") : void 0,
|
|
1868
1877
|
title: displayName,
|
|
1869
1878
|
TrailingSlot: isMuted ? MuteIndicator : void 0
|
|
1870
1879
|
});
|
|
1871
1880
|
};
|
|
1872
1881
|
var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
1873
|
-
const { client, mutes } =
|
|
1874
|
-
const { t } =
|
|
1882
|
+
const { client, mutes } = require_useComponentContextIcons.useChatContext();
|
|
1883
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
1875
1884
|
const { channel } = useChannelDetailContext();
|
|
1876
1885
|
const canManageChannelMembers = canUpdateChannelMembers(channel);
|
|
1877
|
-
const { addNotification } =
|
|
1886
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
1878
1887
|
const memberUserIds = useChannelMemberIds(channel);
|
|
1879
1888
|
const memberIdSet = (0, react.useMemo)(() => new Set(memberUserIds), [memberUserIds]);
|
|
1880
1889
|
const userSearchSource = (0, react.useMemo)(() => searchSource ?? new stream_chat.UserSearchSource(client, {
|
|
@@ -1882,7 +1891,7 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1882
1891
|
pageSize: USER_SEARCH_PAGE_SIZE,
|
|
1883
1892
|
resetOnNewSearchQuery: false
|
|
1884
1893
|
}), [client, searchSource]);
|
|
1885
|
-
const { isLoading, users } =
|
|
1894
|
+
const { isLoading, users } = require_useComponentContextIcons.useStateStore(userSearchSource.state, searchSourceItemsStateSelector);
|
|
1886
1895
|
const [isSaving, setIsSaving] = (0, react.useState)(false);
|
|
1887
1896
|
const [selectedUserIds, setSelectedUserIds] = (0, react.useState)([]);
|
|
1888
1897
|
(0, react.useEffect)(() => {
|
|
@@ -1891,7 +1900,7 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1891
1900
|
return () => userSearchSource.cancelScheduledQuery();
|
|
1892
1901
|
}, [userSearchSource]);
|
|
1893
1902
|
const selectedUserIdSet = (0, react.useMemo)(() => new Set(selectedUserIds), [selectedUserIds]);
|
|
1894
|
-
const mutedUserIdSet = (0, react.useMemo)(() => new Set(mutes.map((mute) => mute.target
|
|
1903
|
+
const mutedUserIdSet = (0, react.useMemo)(() => new Set(mutes.map((mute) => mute.target?.id)), [mutes]);
|
|
1895
1904
|
const handleSearchChange = (0, react.useCallback)((query) => {
|
|
1896
1905
|
userSearchSource.search(query);
|
|
1897
1906
|
}, [userSearchSource]);
|
|
@@ -1912,7 +1921,7 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1912
1921
|
]);
|
|
1913
1922
|
const EmptyPlaceholder = (0, react.useMemo)(() => function ChannelMembersAddEmptyPlaceholder() {
|
|
1914
1923
|
if (isLoading || !users) return null;
|
|
1915
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("No user found") });
|
|
1924
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("channelDetail.channelMembersAdd.noUserFound.text", "No user found") });
|
|
1916
1925
|
}, [
|
|
1917
1926
|
isLoading,
|
|
1918
1927
|
t,
|
|
@@ -1929,7 +1938,11 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1929
1938
|
addNotification({
|
|
1930
1939
|
context: { channel },
|
|
1931
1940
|
emitter: "ChannelMembersView",
|
|
1932
|
-
message: t("
|
|
1941
|
+
message: t("channelDetail.channelMembersAdd.membersAdded.text", {
|
|
1942
|
+
count: selectedUserIds.length,
|
|
1943
|
+
defaultValue_one: "{{ count }} member added",
|
|
1944
|
+
defaultValue_other: "{{ count }} members added"
|
|
1945
|
+
}),
|
|
1933
1946
|
severity: "success",
|
|
1934
1947
|
type: "api:channel:addMembers:success"
|
|
1935
1948
|
});
|
|
@@ -1942,13 +1955,13 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1942
1955
|
context: { channel },
|
|
1943
1956
|
emitter: "ChannelMembersView",
|
|
1944
1957
|
error,
|
|
1945
|
-
message: t("Error adding members"),
|
|
1958
|
+
message: t("channelDetail.channelMembersAdd.errorAddingMembers.text", "Error adding members"),
|
|
1946
1959
|
severity: "error",
|
|
1947
1960
|
type: "api:channel:addMembers:failed"
|
|
1948
1961
|
});
|
|
1949
1962
|
}
|
|
1950
1963
|
};
|
|
1951
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
1964
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
1952
1965
|
className: "str-chat__channel-members-view__body",
|
|
1953
1966
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailSearchInput, {
|
|
1954
1967
|
autoFocus: true,
|
|
@@ -1962,10 +1975,14 @@ var ChannelMembersAddView = ({ modeController, searchSource }) => {
|
|
|
1962
1975
|
itemContent: renderItem,
|
|
1963
1976
|
loadNext: userSearchSource.search
|
|
1964
1977
|
})]
|
|
1965
|
-
}), canManageChannelMembers && selectedUserIds.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
1978
|
+
}), canManageChannelMembers && selectedUserIds.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Footer, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.FooterControls, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.FooterControlsButtonPrimary, {
|
|
1966
1979
|
disabled: isSaving,
|
|
1967
1980
|
onClick: handleSave,
|
|
1968
|
-
children: t("
|
|
1981
|
+
children: t("channelDetail.channelMembersAdd.addMembers.text", {
|
|
1982
|
+
count: selectedUserIds.length,
|
|
1983
|
+
defaultValue_one: "Add {{ count }} member",
|
|
1984
|
+
defaultValue_other: "Add {{ count }} members"
|
|
1985
|
+
})
|
|
1969
1986
|
}) }) })] });
|
|
1970
1987
|
};
|
|
1971
1988
|
//#endregion
|
|
@@ -2001,7 +2018,7 @@ var useChannelMembersSearch = () => {
|
|
|
2001
2018
|
pageSize: 100,
|
|
2002
2019
|
resetOnNewSearchQuery: false
|
|
2003
2020
|
}), [channel]);
|
|
2004
|
-
const { members } =
|
|
2021
|
+
const { members } = require_useComponentContextIcons.useStateStore(membersSearchSource.state, membersSearchSourceItemsStateSelector);
|
|
2005
2022
|
const [searchInputResetKey, setSearchInputResetKey] = (0, react.useState)(0);
|
|
2006
2023
|
const resetMembersSearch = (0, react.useCallback)(() => {
|
|
2007
2024
|
membersSearchSource.cancelScheduledQuery();
|
|
@@ -2033,18 +2050,18 @@ var useChannelMembersSearch = () => {
|
|
|
2033
2050
|
//#endregion
|
|
2034
2051
|
//#region src/plugins/ChannelDetail/Views/ChannelMembersView/ChannelMembersBrowseView.tsx
|
|
2035
2052
|
var getMemberRoleTranslation = (member, t) => {
|
|
2036
|
-
if ([member.user?.role, member.channel_role].includes("admin")) return t("Admin");
|
|
2037
|
-
if (member.channel_role === "channel_moderator" || member.channel_role === "moderator") return t("Moderator");
|
|
2038
|
-
if (member.role === "owner") return t("Owner");
|
|
2053
|
+
if ([member.user?.role, member.channel_role].includes("admin")) return t("channelDetail.channelMembersBrowse.admin.label", "Admin");
|
|
2054
|
+
if (member.channel_role === "channel_moderator" || member.channel_role === "moderator") return t("channelDetail.channelMembersBrowse.moderator.label", "Moderator");
|
|
2055
|
+
if (member.role === "owner") return t("channelDetail.channelMembersBrowse.owner.label", "Owner");
|
|
2039
2056
|
};
|
|
2040
2057
|
var getPresenceStatusText$1 = (user, t) => {
|
|
2041
|
-
if (user?.online) return t("Online");
|
|
2042
|
-
if (user?.last_active) return t("Last seen {{ timestamp }}", { timestamp: t("timestamp
|
|
2043
|
-
return t("Offline");
|
|
2058
|
+
if (user?.online) return t("common.online.label", "Online");
|
|
2059
|
+
if (user?.last_active != null) return t("channelDetail.channelMemberDetail.lastSeen.label", "Last seen {{ timestamp }}", { timestamp: t("timestamp.ChannelMembersLastActive", { timestamp: (0, stream_chat.convertTimestampToDate)(user.last_active) }) });
|
|
2060
|
+
return t("common.offline.label", "Offline");
|
|
2044
2061
|
};
|
|
2045
2062
|
var ChannelMembersBrowseViewItem = ({ isMuted, member, onMemberSelect }) => {
|
|
2046
|
-
const { t } =
|
|
2047
|
-
const { Avatar: Avatar$2 =
|
|
2063
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2064
|
+
const { Avatar: Avatar$2 = require_Thread.Avatar, extractDisplayInfo: extractDisplayInfo$2 = require_Thread.extractDisplayInfo } = require_useComponentContextIcons.useComponentContext();
|
|
2048
2065
|
const user = member.user;
|
|
2049
2066
|
const displayName = getMemberDisplayName(member);
|
|
2050
2067
|
const roleTranslation = getMemberRoleTranslation(member, t);
|
|
@@ -2060,7 +2077,7 @@ var ChannelMembersBrowseViewItem = ({ isMuted, member, onMemberSelect }) => {
|
|
|
2060
2077
|
user
|
|
2061
2078
|
]);
|
|
2062
2079
|
const TrailingSlot = (0, react.useMemo)(() => function MemberTrailingSlot() {
|
|
2063
|
-
const { IconMute } =
|
|
2080
|
+
const { IconMute } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2064
2081
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2065
2082
|
className: "str-chat__channel-detail__channel-members-view__list-item__trailing-slot",
|
|
2066
2083
|
children: [roleTranslation ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -2069,11 +2086,11 @@ var ChannelMembersBrowseViewItem = ({ isMuted, member, onMemberSelect }) => {
|
|
|
2069
2086
|
}) : null, isMuted ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconMute, { className: "str-chat__channel-detail__channel-members-view__list-item__indicator-icon str-chat__channel-detail__channel-members-view__list-item__indicator-icon--mute" }) : null]
|
|
2070
2087
|
});
|
|
2071
2088
|
}, [isMuted, roleTranslation]);
|
|
2072
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2089
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2073
2090
|
LeadingSlot,
|
|
2074
2091
|
RootElement: "button",
|
|
2075
2092
|
rootProps: (0, react.useMemo)(() => ({
|
|
2076
|
-
"aria-label": t("View member details for {{ member }}", { member: displayName }),
|
|
2093
|
+
"aria-label": t("channelDetail.channelMembersBrowse.viewMemberDetails.ariaLabel", "View member details for {{ member }}", { member: displayName }),
|
|
2077
2094
|
className: "str-chat__channel-detail__channel-members-view__list-item",
|
|
2078
2095
|
onClick: () => onMemberSelect?.(member)
|
|
2079
2096
|
}), [
|
|
@@ -2089,10 +2106,10 @@ var ChannelMembersBrowseViewItem = ({ isMuted, member, onMemberSelect }) => {
|
|
|
2089
2106
|
};
|
|
2090
2107
|
var computeMemberItemKey = (_, member) => getMemberUserId(member);
|
|
2091
2108
|
var ChannelMembersBrowseView = ({ onMemberSelect }) => {
|
|
2092
|
-
const { mutes } =
|
|
2093
|
-
const { t } =
|
|
2109
|
+
const { mutes } = require_useComponentContextIcons.useChatContext();
|
|
2110
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2094
2111
|
const { displayedMembers, handleSearchChange, hasMembers, membersSearchSource, searchInputResetKey } = useChannelMembersSearch();
|
|
2095
|
-
const mutedUserIdSet = (0, react.useMemo)(() => new Set(mutes.map((mute) => mute.target
|
|
2112
|
+
const mutedUserIdSet = (0, react.useMemo)(() => new Set(mutes.map((mute) => mute.target?.id)), [mutes]);
|
|
2096
2113
|
const renderableMembers = (0, react.useMemo)(() => displayedMembers.filter((member) => getMemberUserId(member)), [displayedMembers]);
|
|
2097
2114
|
const renderItem = (0, react.useCallback)((_, member) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelMembersBrowseViewItem, {
|
|
2098
2115
|
isMuted: mutedUserIdSet.has(getMemberUserId(member)),
|
|
@@ -2100,12 +2117,12 @@ var ChannelMembersBrowseView = ({ onMemberSelect }) => {
|
|
|
2100
2117
|
onMemberSelect
|
|
2101
2118
|
}), [mutedUserIdSet, onMemberSelect]);
|
|
2102
2119
|
const EmptyPlaceholder = (0, react.useMemo)(() => function ChannelMembersEmptyPlaceholder() {
|
|
2103
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("No member found") });
|
|
2120
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("channelDetail.channelMembersBrowse.noMemberFound.text", "No member found") });
|
|
2104
2121
|
}, [t]);
|
|
2105
2122
|
const Footer = (0, react.useMemo)(() => function ChannelMembersListFooter() {
|
|
2106
2123
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailListLoadingIndicator, { searchSource: membersSearchSource });
|
|
2107
2124
|
}, [membersSearchSource]);
|
|
2108
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
2125
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
2109
2126
|
className: "str-chat__channel-members-view__body",
|
|
2110
2127
|
children: [hasMembers && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailSearchInput, {
|
|
2111
2128
|
onSearchChange: handleSearchChange,
|
|
@@ -2135,34 +2152,34 @@ var useChannelMemberActionContext = () => {
|
|
|
2135
2152
|
};
|
|
2136
2153
|
var toError = (error) => error instanceof Error ? error : /* @__PURE__ */ new Error("An unknown error occurred");
|
|
2137
2154
|
var MemberMuteActionIcon = () => {
|
|
2138
|
-
const { IconMute } =
|
|
2155
|
+
const { IconMute } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2139
2156
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconMute, { className: "str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--mute" });
|
|
2140
2157
|
};
|
|
2141
2158
|
var MemberUnmuteActionIcon = () => {
|
|
2142
|
-
const { IconAudio } =
|
|
2159
|
+
const { IconAudio } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2143
2160
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconAudio, { className: "str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--unmute" });
|
|
2144
2161
|
};
|
|
2145
2162
|
var SendDirectMessageActionIcon = () => {
|
|
2146
|
-
const { IconMessageBubble } =
|
|
2163
|
+
const { IconMessageBubble } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2147
2164
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconMessageBubble, { className: "str-chat__channel-detail__action-icon" });
|
|
2148
2165
|
};
|
|
2149
2166
|
var BlockUserActionIcon = () => {
|
|
2150
|
-
const { IconNoSign } =
|
|
2167
|
+
const { IconNoSign } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2151
2168
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconNoSign, { className: "str-chat__icon--destructive str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--block-user" });
|
|
2152
2169
|
};
|
|
2153
2170
|
var RemoveUserActionIcon = () => {
|
|
2154
|
-
const { IconUserRemove } =
|
|
2171
|
+
const { IconUserRemove } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2155
2172
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconUserRemove, { className: "str-chat__icon--destructive str-chat__channel-detail__action-icon str-chat__channel-detail__action-icon--remove-user" });
|
|
2156
2173
|
};
|
|
2157
2174
|
var channelMemberDetailActionClassName = "str-chat__channel-member-detail-action";
|
|
2158
2175
|
var blockedUsersSelector = ({ userIds }) => ({ userIds });
|
|
2159
|
-
var ChannelMemberConfirmationAlert = ({ action, cancelLabel, confirmLabel, description, isSubmitting, onCancel, onConfirm, testId, title }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
2176
|
+
var ChannelMemberConfirmationAlert = ({ action, cancelLabel, confirmLabel, description, isSubmitting, onCancel, onConfirm, testId, title }) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Alert.Root, {
|
|
2160
2177
|
className: (0, clsx.default)("str-chat__channel-member-confirmation-alert", { [`str-chat__channel-member-confirmation-alert--${action}`]: action }),
|
|
2161
2178
|
"data-testid": testId,
|
|
2162
|
-
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2179
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Alert.Header, {
|
|
2163
2180
|
description,
|
|
2164
2181
|
title
|
|
2165
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
2182
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Alert.Actions, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
2166
2183
|
appearance: "solid",
|
|
2167
2184
|
"data-testid": `${testId}-confirm-button`,
|
|
2168
2185
|
disabled: isSubmitting,
|
|
@@ -2170,7 +2187,7 @@ var ChannelMemberConfirmationAlert = ({ action, cancelLabel, confirmLabel, descr
|
|
|
2170
2187
|
size: "md",
|
|
2171
2188
|
variant: "danger",
|
|
2172
2189
|
children: confirmLabel
|
|
2173
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2190
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_useComponentContextIcons.Button, {
|
|
2174
2191
|
appearance: "outline",
|
|
2175
2192
|
autoFocus: true,
|
|
2176
2193
|
"data-testid": `${testId}-cancel-button`,
|
|
@@ -2182,7 +2199,7 @@ var ChannelMemberConfirmationAlert = ({ action, cancelLabel, confirmLabel, descr
|
|
|
2182
2199
|
})] })]
|
|
2183
2200
|
});
|
|
2184
2201
|
var useChannelMemberActionFilterState = () => {
|
|
2185
|
-
const { client } =
|
|
2202
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
2186
2203
|
const { channel } = useChannelDetailContext();
|
|
2187
2204
|
const { targetUserId } = useChannelMemberActionContext();
|
|
2188
2205
|
const ownCapabilities = channel.data?.own_capabilities;
|
|
@@ -2213,29 +2230,33 @@ var useBaseChannelMemberActionSetFilter = (channelMemberActionSet) => {
|
|
|
2213
2230
|
]);
|
|
2214
2231
|
};
|
|
2215
2232
|
var SendDirectMessageAction = () => {
|
|
2216
|
-
const {
|
|
2217
|
-
const {
|
|
2218
|
-
const { close } =
|
|
2233
|
+
const { channelManager, client } = require_useComponentContextIcons.useChatContext();
|
|
2234
|
+
const { open } = require_SlotLayout.useChatViewNavigation();
|
|
2235
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
2219
2236
|
const { channel } = useChannelDetailContext();
|
|
2220
|
-
const { addNotification } =
|
|
2221
|
-
const { t } =
|
|
2237
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
2238
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2222
2239
|
const { targetUserId } = useChannelMemberActionContext();
|
|
2223
2240
|
const [isSending, setIsSending] = (0, react.useState)(false);
|
|
2224
2241
|
const openDirectMessage = (0, react.useCallback)(async () => {
|
|
2225
2242
|
if (!client.userID || !targetUserId || isSending) return;
|
|
2226
2243
|
setIsSending(true);
|
|
2227
2244
|
try {
|
|
2228
|
-
const directMessageChannel = client.channel(channel.type, { members: [client.userID, targetUserId] });
|
|
2245
|
+
const directMessageChannel = client.channel(channel.type, { members: [client.userID, targetUserId].map((user_id) => ({ user_id })) });
|
|
2229
2246
|
await directMessageChannel.watch();
|
|
2230
|
-
|
|
2231
|
-
|
|
2247
|
+
open({
|
|
2248
|
+
key: directMessageChannel.cid ?? void 0,
|
|
2249
|
+
kind: "channel",
|
|
2250
|
+
source: directMessageChannel
|
|
2251
|
+
});
|
|
2252
|
+
channelManager.ingestChannel(directMessageChannel);
|
|
2232
2253
|
close();
|
|
2233
2254
|
} catch (error) {
|
|
2234
2255
|
addNotification({
|
|
2235
2256
|
context: { channel },
|
|
2236
2257
|
emitter: "ChannelMemberDetail",
|
|
2237
2258
|
error: toError(error),
|
|
2238
|
-
message: t("Error opening direct message"),
|
|
2259
|
+
message: t("channelDetail.channelMemberActions.errorOpeningDirectMessage.text", "Error opening direct message"),
|
|
2239
2260
|
severity: "error",
|
|
2240
2261
|
type: "api:channel:watch:failed"
|
|
2241
2262
|
});
|
|
@@ -2247,13 +2268,13 @@ var SendDirectMessageAction = () => {
|
|
|
2247
2268
|
channel,
|
|
2248
2269
|
client,
|
|
2249
2270
|
close,
|
|
2271
|
+
channelManager,
|
|
2250
2272
|
isSending,
|
|
2251
|
-
|
|
2252
|
-
setChannels,
|
|
2273
|
+
open,
|
|
2253
2274
|
t,
|
|
2254
2275
|
targetUserId
|
|
2255
2276
|
]);
|
|
2256
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2277
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2257
2278
|
LeadingIcon: SendDirectMessageActionIcon,
|
|
2258
2279
|
RootElement: "button",
|
|
2259
2280
|
rootProps: (0, react.useMemo)(() => ({
|
|
@@ -2261,26 +2282,26 @@ var SendDirectMessageAction = () => {
|
|
|
2261
2282
|
disabled: isSending,
|
|
2262
2283
|
onClick: openDirectMessage
|
|
2263
2284
|
}), [isSending, openDirectMessage]),
|
|
2264
|
-
title: t("Send direct message")
|
|
2285
|
+
title: t("channelDetail.channelMemberActions.sendDirectMessage.title", "Send direct message")
|
|
2265
2286
|
});
|
|
2266
2287
|
};
|
|
2267
2288
|
var UserMuteAction = () => {
|
|
2268
2289
|
const { channel } = useChannelDetailContext();
|
|
2269
|
-
const { client, mutes } =
|
|
2270
|
-
const { addNotification } =
|
|
2271
|
-
const { t } =
|
|
2290
|
+
const { client, mutes } = require_useComponentContextIcons.useChatContext();
|
|
2291
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
2292
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2272
2293
|
const { targetUserId } = useChannelMemberActionContext();
|
|
2273
|
-
const userMuted = !!targetUserId && mutes.some((mute) => mute.target
|
|
2294
|
+
const userMuted = !!targetUserId && mutes.some((mute) => mute.target?.id === targetUserId);
|
|
2274
2295
|
const [optimisticUserMuted, setOptimisticUserMuted] = (0, react.useState)(userMuted);
|
|
2275
2296
|
(0, react.useEffect)(() => {
|
|
2276
2297
|
setOptimisticUserMuted(userMuted);
|
|
2277
2298
|
}, [userMuted]);
|
|
2278
|
-
const toggleUserMuteRequest =
|
|
2299
|
+
const toggleUserMuteRequest = require_Thread.useStableCallback((nextMuted, userId) => {
|
|
2279
2300
|
if (!userId) return;
|
|
2280
|
-
if (!nextMuted) return client.
|
|
2301
|
+
if (!nextMuted) return client.moderation.unmute({ target_ids: [userId] }).then(() => addNotification({
|
|
2281
2302
|
context: { channel },
|
|
2282
2303
|
emitter: "ChannelMemberDetail",
|
|
2283
|
-
message: t("User unmuted"),
|
|
2304
|
+
message: t("channelDetail.channelManagementActions.userUnmuted.text", "User unmuted"),
|
|
2284
2305
|
severity: "success",
|
|
2285
2306
|
type: "api:user:unmute:success"
|
|
2286
2307
|
})).catch((error) => {
|
|
@@ -2289,15 +2310,15 @@ var UserMuteAction = () => {
|
|
|
2289
2310
|
context: { channel },
|
|
2290
2311
|
emitter: "ChannelMemberDetail",
|
|
2291
2312
|
error: toError(error),
|
|
2292
|
-
message: t("Error unmuting user"),
|
|
2313
|
+
message: t("channelDetail.channelManagementActions.errorUnmutingUser.text", "Error unmuting user"),
|
|
2293
2314
|
severity: "error",
|
|
2294
2315
|
type: "api:user:unmute:failed"
|
|
2295
2316
|
});
|
|
2296
2317
|
});
|
|
2297
|
-
return client.
|
|
2318
|
+
return client.moderation.mute({ target_ids: [userId] }).then(() => addNotification({
|
|
2298
2319
|
context: { channel },
|
|
2299
2320
|
emitter: "ChannelMemberDetail",
|
|
2300
|
-
message: t("User muted"),
|
|
2321
|
+
message: t("channelDetail.channelManagementActions.userMuted.text", "User muted"),
|
|
2301
2322
|
severity: "success",
|
|
2302
2323
|
type: "api:user:mute:success"
|
|
2303
2324
|
})).catch((error) => {
|
|
@@ -2306,7 +2327,7 @@ var UserMuteAction = () => {
|
|
|
2306
2327
|
context: { channel },
|
|
2307
2328
|
emitter: "ChannelMemberDetail",
|
|
2308
2329
|
error: toError(error),
|
|
2309
|
-
message: t("Error muting user"),
|
|
2330
|
+
message: t("channelDetail.channelManagementActions.errorMutingUser.text", "Error muting user"),
|
|
2310
2331
|
severity: "error",
|
|
2311
2332
|
type: "api:user:mute:failed"
|
|
2312
2333
|
});
|
|
@@ -2332,29 +2353,29 @@ var UserMuteAction = () => {
|
|
|
2332
2353
|
}), [optimisticUserMuted, toggleOptimisticUserMute]);
|
|
2333
2354
|
const TrailingSlot = (0, react.useMemo)(() => {
|
|
2334
2355
|
function UserMuteSwitch() {
|
|
2335
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2356
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Switch, {
|
|
2336
2357
|
on: optimisticUserMuted,
|
|
2337
2358
|
presentation: true
|
|
2338
2359
|
});
|
|
2339
2360
|
}
|
|
2340
2361
|
return UserMuteSwitch;
|
|
2341
2362
|
}, [optimisticUserMuted]);
|
|
2342
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2363
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2343
2364
|
LeadingIcon: optimisticUserMuted ? MemberUnmuteActionIcon : MemberMuteActionIcon,
|
|
2344
2365
|
RootElement: "button",
|
|
2345
2366
|
rootProps,
|
|
2346
|
-
title: optimisticUserMuted ? t("Unmute user") : t("Mute user"),
|
|
2367
|
+
title: optimisticUserMuted ? t("channelDetail.channelManagementActions.unmuteUser.title", "Unmute user") : t("channelDetail.channelManagementActions.muteUser.title", "Mute user"),
|
|
2347
2368
|
TrailingSlot
|
|
2348
2369
|
});
|
|
2349
2370
|
};
|
|
2350
2371
|
var BlockUserAction = () => {
|
|
2351
|
-
const { client } =
|
|
2352
|
-
const { Modal =
|
|
2372
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
2373
|
+
const { Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
2353
2374
|
const { channel } = useChannelDetailContext();
|
|
2354
|
-
const { addNotification } =
|
|
2355
|
-
const { t } =
|
|
2375
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
2376
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2356
2377
|
const { memberDisplayName, targetUserId } = useChannelMemberActionContext();
|
|
2357
|
-
const { userIds: blockedUserIds } =
|
|
2378
|
+
const { userIds: blockedUserIds } = require_useComponentContextIcons.useStateStore(client.blockedUsers, blockedUsersSelector);
|
|
2358
2379
|
const isBlocked = !!targetUserId && new Set(blockedUserIds).has(targetUserId);
|
|
2359
2380
|
const [alertOpen, setAlertOpen] = (0, react.useState)(false);
|
|
2360
2381
|
const [userBlockInProgress, setUserBlockInProgress] = (0, react.useState)(false);
|
|
@@ -2368,11 +2389,11 @@ var BlockUserAction = () => {
|
|
|
2368
2389
|
if (!targetUserId) return;
|
|
2369
2390
|
try {
|
|
2370
2391
|
setUserBlockInProgress(true);
|
|
2371
|
-
await client.
|
|
2392
|
+
await client.unblockUser(targetUserId);
|
|
2372
2393
|
addNotification({
|
|
2373
2394
|
context: { channel },
|
|
2374
2395
|
emitter: "ChannelMemberDetail",
|
|
2375
|
-
message: t("User unblocked"),
|
|
2396
|
+
message: t("common.userUnblocked.text", "User unblocked"),
|
|
2376
2397
|
severity: "success",
|
|
2377
2398
|
type: "api:user:unblock:success"
|
|
2378
2399
|
});
|
|
@@ -2381,7 +2402,7 @@ var BlockUserAction = () => {
|
|
|
2381
2402
|
context: { channel },
|
|
2382
2403
|
emitter: "ChannelMemberDetail",
|
|
2383
2404
|
error: toError(error),
|
|
2384
|
-
message: t("Error unblocking user"),
|
|
2405
|
+
message: t("channelDetail.channelManagementActions.errorUnblockingUser.text", "Error unblocking user"),
|
|
2385
2406
|
severity: "error",
|
|
2386
2407
|
type: "api:user:unblock:failed"
|
|
2387
2408
|
});
|
|
@@ -2404,7 +2425,7 @@ var BlockUserAction = () => {
|
|
|
2404
2425
|
addNotification({
|
|
2405
2426
|
context: { channel },
|
|
2406
2427
|
emitter: "ChannelMemberDetail",
|
|
2407
|
-
message: t("User blocked"),
|
|
2428
|
+
message: t("common.userBlocked.text", "User blocked"),
|
|
2408
2429
|
severity: "success",
|
|
2409
2430
|
type: "api:user:block:success"
|
|
2410
2431
|
});
|
|
@@ -2413,7 +2434,7 @@ var BlockUserAction = () => {
|
|
|
2413
2434
|
context: { channel },
|
|
2414
2435
|
emitter: "ChannelMemberDetail",
|
|
2415
2436
|
error: toError(error),
|
|
2416
|
-
message: t("Error blocking user"),
|
|
2437
|
+
message: t("channelDetail.channelManagementActions.errorBlockingUser.text", "Error blocking user"),
|
|
2417
2438
|
severity: "error",
|
|
2418
2439
|
type: "api:user:block:failed"
|
|
2419
2440
|
});
|
|
@@ -2428,7 +2449,7 @@ var BlockUserAction = () => {
|
|
|
2428
2449
|
t,
|
|
2429
2450
|
targetUserId
|
|
2430
2451
|
]);
|
|
2431
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2452
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2432
2453
|
destructive: true,
|
|
2433
2454
|
LeadingIcon: BlockUserActionIcon,
|
|
2434
2455
|
RootElement: "button",
|
|
@@ -2437,28 +2458,28 @@ var BlockUserAction = () => {
|
|
|
2437
2458
|
disabled: userBlockInProgress,
|
|
2438
2459
|
onClick: openBlockUserAlert
|
|
2439
2460
|
}), [openBlockUserAlert, userBlockInProgress]),
|
|
2440
|
-
title: isBlocked ? t("Unblock user") : t("Block user")
|
|
2461
|
+
title: isBlocked ? t("channelDetail.channelMemberActions.unblockUser.title", "Unblock user") : t("channelDetail.channelManagementActions.blockUser.title", "Block user")
|
|
2441
2462
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
2442
2463
|
open: alertOpen,
|
|
2443
2464
|
role: "alertdialog",
|
|
2444
2465
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelMemberConfirmationAlert, {
|
|
2445
2466
|
action: "blockUser",
|
|
2446
|
-
cancelLabel: t("Cancel"),
|
|
2447
|
-
confirmLabel: isBlocked ? t("Unblock user") : t("Block user"),
|
|
2448
|
-
description: isBlocked ? t("{{ member }} will be able to message you again.", { member: memberDisplayName }) : t("{{ member }} won't be able to message you anymore.", { member: memberDisplayName }),
|
|
2467
|
+
cancelLabel: t("common.cancel.label", "Cancel"),
|
|
2468
|
+
confirmLabel: isBlocked ? t("channelDetail.channelMemberActions.unblockUser.title", "Unblock user") : t("channelDetail.channelManagementActions.blockUser.title", "Block user"),
|
|
2469
|
+
description: isBlocked ? t("channelDetail.channelMemberActions.ableMessageAgain.description", "{{ member }} will be able to message you again.", { member: memberDisplayName }) : t("channelDetail.channelMemberActions.wonTAbleMessage.description", "{{ member }} won't be able to message you anymore.", { member: memberDisplayName }),
|
|
2449
2470
|
isSubmitting: userBlockInProgress,
|
|
2450
2471
|
onCancel: closeBlockUserAlert,
|
|
2451
2472
|
onConfirm: isBlocked ? unblockUser : blockUser,
|
|
2452
2473
|
testId: "channel-detail-block-member-alert",
|
|
2453
|
-
title: isBlocked ? t("Unblock user") : t("Block user")
|
|
2474
|
+
title: isBlocked ? t("channelDetail.channelMemberActions.unblockUser.title", "Unblock user") : t("channelDetail.channelManagementActions.blockUser.title", "Block user")
|
|
2454
2475
|
})
|
|
2455
2476
|
})] });
|
|
2456
2477
|
};
|
|
2457
2478
|
var RemoveUserAction = () => {
|
|
2458
|
-
const { Modal =
|
|
2479
|
+
const { Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
2459
2480
|
const { channel } = useChannelDetailContext();
|
|
2460
|
-
const { addNotification } =
|
|
2461
|
-
const { t } =
|
|
2481
|
+
const { addNotification } = require_Thread.useNotificationApi();
|
|
2482
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2462
2483
|
const { memberDisplayName, targetUserId } = useChannelMemberActionContext();
|
|
2463
2484
|
const [alertOpen, setAlertOpen] = (0, react.useState)(false);
|
|
2464
2485
|
const [removeMemberInProgress, setRemoveMemberInProgress] = (0, react.useState)(false);
|
|
@@ -2476,7 +2497,7 @@ var RemoveUserAction = () => {
|
|
|
2476
2497
|
addNotification({
|
|
2477
2498
|
context: { channel },
|
|
2478
2499
|
emitter: "ChannelMemberDetail",
|
|
2479
|
-
message: t("User removed"),
|
|
2500
|
+
message: t("channelDetail.channelMemberActions.userRemoved.text", "User removed"),
|
|
2480
2501
|
severity: "success",
|
|
2481
2502
|
type: "api:channel:remove-members:success"
|
|
2482
2503
|
});
|
|
@@ -2486,7 +2507,7 @@ var RemoveUserAction = () => {
|
|
|
2486
2507
|
context: { channel },
|
|
2487
2508
|
emitter: "ChannelMemberDetail",
|
|
2488
2509
|
error: toError(error),
|
|
2489
|
-
message: t("Error removing user"),
|
|
2510
|
+
message: t("channelDetail.channelMemberActions.errorRemovingUser.text", "Error removing user"),
|
|
2490
2511
|
severity: "error",
|
|
2491
2512
|
type: "api:channel:remove-members:failed"
|
|
2492
2513
|
});
|
|
@@ -2499,7 +2520,7 @@ var RemoveUserAction = () => {
|
|
|
2499
2520
|
t,
|
|
2500
2521
|
targetUserId
|
|
2501
2522
|
]);
|
|
2502
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2523
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2503
2524
|
destructive: true,
|
|
2504
2525
|
LeadingIcon: RemoveUserActionIcon,
|
|
2505
2526
|
RootElement: "button",
|
|
@@ -2508,20 +2529,20 @@ var RemoveUserAction = () => {
|
|
|
2508
2529
|
disabled: removeMemberInProgress,
|
|
2509
2530
|
onClick: openRemoveUserAlert
|
|
2510
2531
|
}), [openRemoveUserAlert, removeMemberInProgress]),
|
|
2511
|
-
title: t("Remove user")
|
|
2532
|
+
title: t("channelDetail.channelMemberActions.removeUser.title", "Remove user")
|
|
2512
2533
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
2513
2534
|
open: alertOpen,
|
|
2514
2535
|
role: "alertdialog",
|
|
2515
2536
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelMemberConfirmationAlert, {
|
|
2516
2537
|
action: "removeUser",
|
|
2517
|
-
cancelLabel: t("Cancel"),
|
|
2518
|
-
confirmLabel: t("Remove user"),
|
|
2519
|
-
description: t("Remove {{ member }} from this channel?", { member: memberDisplayName }),
|
|
2538
|
+
cancelLabel: t("common.cancel.label", "Cancel"),
|
|
2539
|
+
confirmLabel: t("channelDetail.channelMemberActions.removeUser.title", "Remove user"),
|
|
2540
|
+
description: t("channelDetail.channelMemberActions.removeChannel.description", "Remove {{ member }} from this channel?", { member: memberDisplayName }),
|
|
2520
2541
|
isSubmitting: removeMemberInProgress,
|
|
2521
2542
|
onCancel: closeRemoveUserAlert,
|
|
2522
2543
|
onConfirm: removeUser,
|
|
2523
2544
|
testId: "channel-detail-remove-member-alert",
|
|
2524
|
-
title: t("Remove user")
|
|
2545
|
+
title: t("channelDetail.channelMemberActions.removeUser.title", "Remove user")
|
|
2525
2546
|
})
|
|
2526
2547
|
})] });
|
|
2527
2548
|
};
|
|
@@ -2552,12 +2573,12 @@ var defaultChannelMemberActionSet = [
|
|
|
2552
2573
|
//#endregion
|
|
2553
2574
|
//#region src/plugins/ChannelDetail/Views/ChannelMemberDetailView/ChannelMemberDetail.tsx
|
|
2554
2575
|
var getPresenceStatusText = (user, t) => {
|
|
2555
|
-
if (user?.online) return t("Online");
|
|
2556
|
-
if (user?.last_active) return t("Last seen {{ timestamp }}", { timestamp: t("timestamp
|
|
2557
|
-
return t("Offline");
|
|
2576
|
+
if (user?.online) return t("common.online.label", "Online");
|
|
2577
|
+
if (user?.last_active != null) return t("channelDetail.channelMemberDetail.lastSeen.label", "Last seen {{ timestamp }}", { timestamp: t("timestamp.ChannelMembersLastActive", { timestamp: (0, stream_chat.convertTimestampToDate)(user.last_active) }) });
|
|
2578
|
+
return t("common.offline.label", "Offline");
|
|
2558
2579
|
};
|
|
2559
2580
|
var ChannelMemberDetail = ({ channelMemberActionSet = defaultChannelMemberActionSet, member, onBack }) => {
|
|
2560
|
-
const { t } =
|
|
2581
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2561
2582
|
const memberDisplayName = getMemberDisplayName(member);
|
|
2562
2583
|
const memberStatusText = getPresenceStatusText(member.user, t);
|
|
2563
2584
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelMemberActionProvider, {
|
|
@@ -2575,9 +2596,9 @@ var ChannelMemberDetail = ({ channelMemberActionSet = defaultChannelMemberAction
|
|
|
2575
2596
|
});
|
|
2576
2597
|
};
|
|
2577
2598
|
var ChannelMemberDetailContent = ({ channelMemberActionSet, memberDisplayName, memberStatusText, onBack }) => {
|
|
2578
|
-
const { close } =
|
|
2579
|
-
const { t } =
|
|
2580
|
-
const { Avatar =
|
|
2599
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
2600
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2601
|
+
const { Avatar = require_Thread.ChannelAvatar } = require_useComponentContextIcons.useComponentContext();
|
|
2581
2602
|
const { member } = useChannelMemberActionContext();
|
|
2582
2603
|
const filteredActions = useBaseChannelMemberActionSetFilter(channelMemberActionSet);
|
|
2583
2604
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
@@ -2585,8 +2606,8 @@ var ChannelMemberDetailContent = ({ channelMemberActionSet, memberDisplayName, m
|
|
|
2585
2606
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
2586
2607
|
close,
|
|
2587
2608
|
goBack: onBack,
|
|
2588
|
-
title: t("Member detail")
|
|
2589
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
2609
|
+
title: t("channelDetail.channelMemberDetail.memberDetail.title", "Member detail")
|
|
2610
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
2590
2611
|
className: "str-chat__channel-detail__channel-member-detail-view__body",
|
|
2591
2612
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2592
2613
|
className: "str-chat__channel-detail__channel-member-detail-view__profile",
|
|
@@ -2617,8 +2638,8 @@ var ChannelMemberDetailContent = ({ channelMemberActionSet, memberDisplayName, m
|
|
|
2617
2638
|
var RESERVED_MODES = ["browse", "memberDetail"];
|
|
2618
2639
|
var isReservedMode = (mode) => RESERVED_MODES.includes(mode);
|
|
2619
2640
|
var AddMembersModeTitle = () => {
|
|
2620
|
-
const { t } =
|
|
2621
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: t("Add members") });
|
|
2641
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2642
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: t("channelDetail.channelMembersView.addMembers.label", "Add members") });
|
|
2622
2643
|
};
|
|
2623
2644
|
/** Built-in mode descriptors. Merged with (and overridable by) the `modeViews` prop. */
|
|
2624
2645
|
var defaultChannelMembersModeViews = { add: {
|
|
@@ -2626,9 +2647,9 @@ var defaultChannelMembersModeViews = { add: {
|
|
|
2626
2647
|
Title: AddMembersModeTitle
|
|
2627
2648
|
} };
|
|
2628
2649
|
var ChannelMembersView = ({ HeaderActions = DefaultHeaderActions, headerActionSet = defaultChannelMembersHeaderActionSet, HeaderActionsMenuTrigger, layout, modeViews: customModeViews }) => {
|
|
2629
|
-
const { t } =
|
|
2650
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2630
2651
|
const { channel } = useChannelDetailContext();
|
|
2631
|
-
const { close } =
|
|
2652
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
2632
2653
|
const [mode, setMode] = (0, react.useState)("browse");
|
|
2633
2654
|
const [selectedMember, setSelectedMember] = (0, react.useState)();
|
|
2634
2655
|
const memberCount = useChannelMemberCount(channel);
|
|
@@ -2679,9 +2700,13 @@ var ChannelMembersView = ({ HeaderActions = DefaultHeaderActions, headerActionSe
|
|
|
2679
2700
|
className: "str-chat__channel-detail__channel-members-view",
|
|
2680
2701
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
2681
2702
|
close,
|
|
2682
|
-
description: activeModeDescriptor ? void 0 : t("Browse channel members"),
|
|
2703
|
+
description: activeModeDescriptor ? void 0 : t("channelDetail.channelMembersView.browseChannelMembers.description", "Browse channel members"),
|
|
2683
2704
|
goBack: activeModeDescriptor ? goBack : void 0,
|
|
2684
|
-
title: ActiveModeTitle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActiveModeTitle, {}) : t("
|
|
2705
|
+
title: ActiveModeTitle ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActiveModeTitle, {}) : t("channelDetail.channelMembersView.members.title", {
|
|
2706
|
+
count: memberCount,
|
|
2707
|
+
defaultValue_one: "{{ count }} member",
|
|
2708
|
+
defaultValue_other: "{{ count }} members"
|
|
2709
|
+
}),
|
|
2685
2710
|
TrailingContent: HeaderTrailingActions
|
|
2686
2711
|
}), ActiveModeBody ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ActiveModeBody, { modeController }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelMembersBrowseView, { onMemberSelect: (member) => {
|
|
2687
2712
|
setSelectedMember(member);
|
|
@@ -2692,41 +2717,33 @@ var ChannelMembersView = ({ HeaderActions = DefaultHeaderActions, headerActionSe
|
|
|
2692
2717
|
//#endregion
|
|
2693
2718
|
//#region src/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesEmptyList.tsx
|
|
2694
2719
|
var PinnedMessagesEmptyList = () => {
|
|
2695
|
-
const { IconPin } =
|
|
2696
|
-
const { t } =
|
|
2720
|
+
const { IconPin } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2721
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2697
2722
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2698
2723
|
className: "str-chat__channel-detail__pinned-messages-view__empty-state",
|
|
2699
2724
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconPin, { className: "str-chat__channel-detail__pinned-messages-view__empty-state__icon" }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
2700
2725
|
className: "str-chat__channel-detail__pinned-messages-view__empty-state__content",
|
|
2701
2726
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
2702
2727
|
className: "str-chat__channel-detail__pinned-messages-view__empty-state__title",
|
|
2703
|
-
children: t("No pinned messages")
|
|
2728
|
+
children: t("channelDetail.pinnedMessagesEmpty.noPinnedMessages.text", "No pinned messages")
|
|
2704
2729
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
|
|
2705
2730
|
className: "str-chat__channel-detail__pinned-messages-view__empty-state__description",
|
|
2706
|
-
children: t("Pin a message to see it here")
|
|
2731
|
+
children: t("channelDetail.pinnedMessagesEmpty.pinMessageSee.text", "Pin a message to see it here")
|
|
2707
2732
|
})]
|
|
2708
2733
|
})]
|
|
2709
2734
|
});
|
|
2710
2735
|
};
|
|
2711
2736
|
//#endregion
|
|
2712
2737
|
//#region src/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesCount.ts
|
|
2713
|
-
var
|
|
2714
|
-
|
|
2715
|
-
|
|
2716
|
-
|
|
2717
|
-
|
|
2718
|
-
|
|
2719
|
-
var getPinnedMessagesCount = (channel) => channel.state?.pinnedMessages?.length ?? 0;
|
|
2720
|
-
/** Reactive count of the channel's pinned messages derived from channel state. */
|
|
2738
|
+
var selector = (state) => ({ count: state.items?.length ?? 0 });
|
|
2739
|
+
/**
|
|
2740
|
+
* Reactive count of the channel's loaded pinned messages, sourced from
|
|
2741
|
+
* `channel.pinnedMessagesPaginator`. The paginator is kept current by the SDK's channel event
|
|
2742
|
+
* handlers (pin/unpin/delete/truncate); `useStateStore` re-renders on every change.
|
|
2743
|
+
*/
|
|
2721
2744
|
var usePinnedMessagesCount = (channel) => {
|
|
2722
|
-
const
|
|
2723
|
-
|
|
2724
|
-
const syncPinnedMessagesCount = () => setPinnedMessagesCount(getPinnedMessagesCount(channel));
|
|
2725
|
-
syncPinnedMessagesCount();
|
|
2726
|
-
const subscriptions = PINNED_MESSAGES_EVENTS.map((event) => channel.on(event, syncPinnedMessagesCount));
|
|
2727
|
-
return () => subscriptions.forEach((subscription) => subscription.unsubscribe());
|
|
2728
|
-
}, [channel]);
|
|
2729
|
-
return pinnedMessagesCount;
|
|
2745
|
+
const { count } = require_useComponentContextIcons.useStateStore(channel.pinnedMessagesPaginator.state, selector);
|
|
2746
|
+
return count;
|
|
2730
2747
|
};
|
|
2731
2748
|
//#endregion
|
|
2732
2749
|
//#region src/plugins/ChannelDetail/Views/PinnedMessagesView/usePinnedMessagesSearch.ts
|
|
@@ -2734,7 +2751,7 @@ var PINNED_MESSAGES_SEARCH_PAGE_SIZE = 30;
|
|
|
2734
2751
|
var PINNED_MESSAGES_SEARCH_DEBOUNCE_MS = 300;
|
|
2735
2752
|
var pinnedMessagesSearchSourceItemsStateSelector = (state) => ({ messages: state.items });
|
|
2736
2753
|
var usePinnedMessagesSearch = ({ searchSource } = {}) => {
|
|
2737
|
-
const { client } =
|
|
2754
|
+
const { client } = require_useComponentContextIcons.useChatContext();
|
|
2738
2755
|
const { channel } = useChannelDetailContext();
|
|
2739
2756
|
const pinnedMessagesSearchSource = (0, react.useMemo)(() => {
|
|
2740
2757
|
const source = searchSource ?? new stream_chat.MessageSearchSource(client, {
|
|
@@ -2756,7 +2773,7 @@ var usePinnedMessagesSearch = ({ searchSource } = {}) => {
|
|
|
2756
2773
|
client,
|
|
2757
2774
|
searchSource
|
|
2758
2775
|
]);
|
|
2759
|
-
const { messages } =
|
|
2776
|
+
const { messages } = require_useComponentContextIcons.useStateStore(pinnedMessagesSearchSource.state, pinnedMessagesSearchSourceItemsStateSelector);
|
|
2760
2777
|
(0, react.useEffect)(() => {
|
|
2761
2778
|
pinnedMessagesSearchSource.activate();
|
|
2762
2779
|
return () => {
|
|
@@ -2790,24 +2807,25 @@ var usePinnedMessagesSearch = ({ searchSource } = {}) => {
|
|
|
2790
2807
|
//#endregion
|
|
2791
2808
|
//#region src/plugins/ChannelDetail/Views/PinnedMessagesView/PinnedMessagesView.tsx
|
|
2792
2809
|
var computeItemKey = (_, message) => message.id;
|
|
2793
|
-
|
|
2794
|
-
|
|
2795
|
-
|
|
2796
|
-
|
|
2810
|
+
/**
|
|
2811
|
+
* A wire timestamp as an ISO string, for `getDateString` and the `dateTime` attribute. `convertTimestampToDate`
|
|
2812
|
+
* rather than `new Date`: a nanosecond value is out of Date's range.
|
|
2813
|
+
*/
|
|
2814
|
+
var normalizeTimestamp = (timestamp) => timestamp == null ? void 0 : (0, stream_chat.convertTimestampToDate)(timestamp)?.toISOString();
|
|
2797
2815
|
var getPinnedMessagePreview = (message, t) => {
|
|
2798
2816
|
const text = message.text?.trim();
|
|
2799
2817
|
if (text) return text;
|
|
2800
2818
|
const attachment = message.attachments?.[0];
|
|
2801
|
-
return attachment?.title || attachment?.text || attachment?.fallback || attachment?.type || t("Pinned message");
|
|
2819
|
+
return attachment?.title || attachment?.text || attachment?.fallback || attachment?.type || t("channelDetail.pinnedMessagesView.pinnedMessage.label", "Pinned message");
|
|
2802
2820
|
};
|
|
2803
2821
|
var PinnedMessageDate = ({ message }) => {
|
|
2804
|
-
const { t, tDateTimeParser } =
|
|
2822
|
+
const { t, tDateTimeParser } = require_useComponentContextIcons.useTranslationContext();
|
|
2805
2823
|
const normalizedTimestamp = normalizeTimestamp(message.created_at);
|
|
2806
|
-
const when = (0, react.useMemo)(() =>
|
|
2824
|
+
const when = (0, react.useMemo)(() => (0, _stream_io_i18n.getDateString)({
|
|
2807
2825
|
messageCreatedAt: normalizedTimestamp,
|
|
2808
2826
|
t,
|
|
2809
2827
|
tDateTimeParser,
|
|
2810
|
-
timestampTranslationKey: "timestamp
|
|
2828
|
+
timestampTranslationKey: "timestamp.ChannelDetailPinnedMessageTimestamp"
|
|
2811
2829
|
}), [
|
|
2812
2830
|
normalizedTimestamp,
|
|
2813
2831
|
t,
|
|
@@ -2821,8 +2839,8 @@ var PinnedMessageDate = ({ message }) => {
|
|
|
2821
2839
|
});
|
|
2822
2840
|
};
|
|
2823
2841
|
var PinnedMessagesViewItem = ({ message, onSelect }) => {
|
|
2824
|
-
const { t } =
|
|
2825
|
-
const { Avatar: Avatar$1 =
|
|
2842
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2843
|
+
const { Avatar: Avatar$1 = require_Thread.Avatar, extractDisplayInfo: extractDisplayInfo$1 = require_Thread.extractDisplayInfo } = require_useComponentContextIcons.useComponentContext();
|
|
2826
2844
|
const displayName = getUserDisplayName(message.user ?? void 0);
|
|
2827
2845
|
const LeadingSlot = (0, react.useMemo)(() => function MessageAuthorAvatar() {
|
|
2828
2846
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Avatar$1, {
|
|
@@ -2837,7 +2855,7 @@ var PinnedMessagesViewItem = ({ message, onSelect }) => {
|
|
|
2837
2855
|
const TrailingSlot = (0, react.useMemo)(() => function MessageDate() {
|
|
2838
2856
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PinnedMessageDate, { message });
|
|
2839
2857
|
}, [message]);
|
|
2840
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
2858
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.ListItemLayout, {
|
|
2841
2859
|
LeadingSlot,
|
|
2842
2860
|
RootElement: "button",
|
|
2843
2861
|
rootProps: (0, react.useMemo)(() => ({
|
|
@@ -2851,21 +2869,23 @@ var PinnedMessagesViewItem = ({ message, onSelect }) => {
|
|
|
2851
2869
|
});
|
|
2852
2870
|
};
|
|
2853
2871
|
var PinnedMessagesView = ({ searchSource }) => {
|
|
2854
|
-
const {
|
|
2855
|
-
const { t } =
|
|
2856
|
-
const { close } =
|
|
2857
|
-
const { jumpToMessage } = require_NotificationList.useChannelActionContext();
|
|
2872
|
+
const { open } = require_SlotLayout.useChatViewNavigation();
|
|
2873
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
2874
|
+
const { close } = require_ListItemLayout.useModalContext();
|
|
2858
2875
|
const { channel } = useChannelDetailContext();
|
|
2859
2876
|
const { displayedMessages, handleSearchChange, hasPinnedMessages, hasSearchResultsLoaded, pinnedMessagesSearchSource } = usePinnedMessagesSearch({ searchSource });
|
|
2860
2877
|
const handleSelectMessage = (0, react.useCallback)((message) => {
|
|
2861
|
-
|
|
2862
|
-
|
|
2878
|
+
open({
|
|
2879
|
+
key: channel.cid ?? void 0,
|
|
2880
|
+
kind: "channel",
|
|
2881
|
+
source: channel
|
|
2882
|
+
});
|
|
2883
|
+
channel.messagePaginator.jumpToMessage(message.id);
|
|
2863
2884
|
close();
|
|
2864
2885
|
}, [
|
|
2865
2886
|
channel,
|
|
2866
2887
|
close,
|
|
2867
|
-
|
|
2868
|
-
setActiveChannel
|
|
2888
|
+
open
|
|
2869
2889
|
]);
|
|
2870
2890
|
const renderItem = (0, react.useCallback)((_, message) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PinnedMessagesViewItem, {
|
|
2871
2891
|
message,
|
|
@@ -2873,7 +2893,7 @@ var PinnedMessagesView = ({ searchSource }) => {
|
|
|
2873
2893
|
}), [handleSelectMessage]);
|
|
2874
2894
|
const EmptyPlaceholder = (0, react.useMemo)(() => function PinnedMessagesEmptyPlaceholder() {
|
|
2875
2895
|
if (!hasPinnedMessages) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PinnedMessagesEmptyList, {});
|
|
2876
|
-
if (hasSearchResultsLoaded) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("No messages found") });
|
|
2896
|
+
if (hasSearchResultsLoaded) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailEmptyList, { children: t("channelDetail.pinnedMessagesView.noMessagesFound.text", "No messages found") });
|
|
2877
2897
|
return null;
|
|
2878
2898
|
}, [
|
|
2879
2899
|
hasPinnedMessages,
|
|
@@ -2887,9 +2907,9 @@ var PinnedMessagesView = ({ searchSource }) => {
|
|
|
2887
2907
|
className: "str-chat__channel-detail__pinned-messages-view",
|
|
2888
2908
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigatorHeader, {
|
|
2889
2909
|
close,
|
|
2890
|
-
description: t("Browse pinned messages"),
|
|
2891
|
-
title: t("Pinned messages")
|
|
2892
|
-
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(
|
|
2910
|
+
description: t("channelDetail.pinnedMessagesView.browsePinnedMessages.description", "Browse pinned messages"),
|
|
2911
|
+
title: t("channelDetail.pinnedMessagesView.pinnedMessages.title", "Pinned messages")
|
|
2912
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_ListItemLayout.Prompt.Body, {
|
|
2893
2913
|
className: "str-chat__channel-detail__pinned-messages-view__body",
|
|
2894
2914
|
children: [hasPinnedMessages && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailSearchInput, { onSearchChange: handleSearchChange }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VirtualizedList, {
|
|
2895
2915
|
className: "str-chat__channel-detail__pinned-messages-view__list",
|
|
@@ -2906,23 +2926,23 @@ var PinnedMessagesView = ({ searchSource }) => {
|
|
|
2906
2926
|
//#endregion
|
|
2907
2927
|
//#region src/plugins/ChannelDetail/ChannelDetail.tsx
|
|
2908
2928
|
var ChannelManagementNavButtonIcon = () => {
|
|
2909
|
-
const { IconInfo } =
|
|
2929
|
+
const { IconInfo } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2910
2930
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconInfo, { className: "str-chat__channel-detail__action-icon" });
|
|
2911
2931
|
};
|
|
2912
2932
|
var ChannelMembersNavButtonIcon = () => {
|
|
2913
|
-
const { IconUser } =
|
|
2933
|
+
const { IconUser } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2914
2934
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconUser, { className: "str-chat__channel-detail__action-icon" });
|
|
2915
2935
|
};
|
|
2916
2936
|
var PinnedMessagesNavButtonIcon = () => {
|
|
2917
|
-
const { IconPin } =
|
|
2937
|
+
const { IconPin } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2918
2938
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconPin, { className: "str-chat__channel-detail__action-icon" });
|
|
2919
2939
|
};
|
|
2920
2940
|
var ChannelMediaNavButtonIcon = () => {
|
|
2921
|
-
const { IconImage } =
|
|
2941
|
+
const { IconImage } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2922
2942
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconImage, { className: "str-chat__channel-detail__action-icon" });
|
|
2923
2943
|
};
|
|
2924
2944
|
var ChannelFilesNavButtonIcon = () => {
|
|
2925
|
-
const { IconFolder } =
|
|
2945
|
+
const { IconFolder } = require_useComponentContextIcons.useComponentContextIcons();
|
|
2926
2946
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconFolder, { className: "str-chat__channel-detail__action-icon" });
|
|
2927
2947
|
};
|
|
2928
2948
|
var ChannelManagementNavButton = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailNavButton, {
|
|
@@ -2981,7 +3001,7 @@ var ChannelDetail = ({ channel, className, defaultLayout = SECTION_NAVIGATOR_LAY
|
|
|
2981
3001
|
const [layout, setLayout] = (0, react.useState)(defaultLayout);
|
|
2982
3002
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ChannelDetailProvider, {
|
|
2983
3003
|
channel,
|
|
2984
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(
|
|
3004
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ListItemLayout.Prompt.Root, {
|
|
2985
3005
|
className: (0, clsx.default)("str-chat__channel-detail", { "str-chat__channel-detail--inline": layout === SECTION_NAVIGATOR_LAYOUT.inline }, className),
|
|
2986
3006
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SectionNavigator, {
|
|
2987
3007
|
...props,
|
|
@@ -2996,15 +3016,15 @@ var ChannelDetail = ({ channel, className, defaultLayout = SECTION_NAVIGATOR_LAY
|
|
|
2996
3016
|
//#region src/plugins/ChannelDetail/AvatarWithChannelDetail.tsx
|
|
2997
3017
|
var avatarWithChannelDetailDialogRootProps = { className: "str-chat__channel-detail-modal" };
|
|
2998
3018
|
var AvatarWithChannelDetail = ({ Avatar, ChannelDetail: ChannelDetail$1 = ChannelDetail, className, ...avatarProps }) => {
|
|
2999
|
-
const { t } =
|
|
3000
|
-
const
|
|
3001
|
-
const { Avatar: ContextAvatar, Modal =
|
|
3019
|
+
const { t } = require_useComponentContextIcons.useTranslationContext();
|
|
3020
|
+
const channel = require_useChannel.useChannel();
|
|
3021
|
+
const { Avatar: ContextAvatar, Modal = require_ListItemLayout.GlobalModal } = require_useComponentContextIcons.useComponentContext();
|
|
3002
3022
|
const [isModalOpen, setIsModalOpen] = (0, react.useState)(false);
|
|
3003
3023
|
const openModal = (0, react.useCallback)(() => setIsModalOpen(true), []);
|
|
3004
3024
|
const closeModal = (0, react.useCallback)(() => setIsModalOpen(false), []);
|
|
3005
|
-
const AvatarComponent = Avatar ?? (ContextAvatar === AvatarWithChannelDetail ? void 0 : ContextAvatar) ??
|
|
3025
|
+
const AvatarComponent = Avatar ?? (ContextAvatar === AvatarWithChannelDetail ? void 0 : ContextAvatar) ?? require_Thread.ChannelAvatar;
|
|
3006
3026
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
3007
|
-
"aria-label": t("
|
|
3027
|
+
"aria-label": t("channelDetail.avatarChannelDetail.openChannelDetails.ariaLabel", "Open channel details"),
|
|
3008
3028
|
className: "str-chat__avatar-with-channel-detail-button",
|
|
3009
3029
|
onClick: openModal,
|
|
3010
3030
|
type: "button",
|
|
@@ -3013,7 +3033,7 @@ var AvatarWithChannelDetail = ({ Avatar, ChannelDetail: ChannelDetail$1 = Channe
|
|
|
3013
3033
|
className: (0, clsx.default)("str-chat__avatar-with-channel-detail-button__avatar", className)
|
|
3014
3034
|
})
|
|
3015
3035
|
}), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Modal, {
|
|
3016
|
-
"aria-label": t("
|
|
3036
|
+
"aria-label": t("channelDetail.avatarChannelDetail.channelDetails.ariaLabel", "Channel details"),
|
|
3017
3037
|
dialogRootProps: avatarWithChannelDetailDialogRootProps,
|
|
3018
3038
|
onClose: closeModal,
|
|
3019
3039
|
open: isModalOpen,
|