stream-chat-react-native-core 9.1.3 → 9.2.0-beta.2
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/lib/commonjs/a11y/a11yUtils.js +40 -0
- package/lib/commonjs/a11y/a11yUtils.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useA11yLabel.js +16 -0
- package/lib/commonjs/a11y/hooks/useA11yLabel.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useAccessibilityActivateAction.js +25 -0
- package/lib/commonjs/a11y/hooks/useAccessibilityActivateAction.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useAnnounceOnStateChange.js +36 -0
- package/lib/commonjs/a11y/hooks/useAnnounceOnStateChange.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useReducedMotionPreference.js +34 -0
- package/lib/commonjs/a11y/hooks/useReducedMotionPreference.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useResolvedModalAccessibilityProps.js +20 -0
- package/lib/commonjs/a11y/hooks/useResolvedModalAccessibilityProps.js.map +1 -0
- package/lib/commonjs/a11y/hooks/useScreenReaderEnabled.js +37 -0
- package/lib/commonjs/a11y/hooks/useScreenReaderEnabled.js.map +1 -0
- package/lib/commonjs/a11y/index.js +81 -0
- package/lib/commonjs/a11y/index.js.map +1 -0
- package/lib/commonjs/components/AITypingIndicatorView/AITypingIndicatorView.js +10 -0
- package/lib/commonjs/components/AITypingIndicatorView/AITypingIndicatorView.js.map +1 -1
- package/lib/commonjs/components/Accessibility/NotificationAnnouncer.js +37 -0
- package/lib/commonjs/components/Accessibility/NotificationAnnouncer.js.map +1 -0
- package/lib/commonjs/components/Accessibility/hooks/useIncomingMessageAnnouncements.js +109 -0
- package/lib/commonjs/components/Accessibility/hooks/useIncomingMessageAnnouncements.js.map +1 -0
- package/lib/commonjs/components/Accessibility/index.js +37 -0
- package/lib/commonjs/components/Accessibility/index.js.map +1 -0
- package/lib/commonjs/components/Accessibility/useAccessibilityAnnouncer.js +15 -0
- package/lib/commonjs/components/Accessibility/useAccessibilityAnnouncer.js.map +1 -0
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +20 -0
- package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js +1 -0
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +19 -2
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerContent.js +2 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerContent.js.map +1 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentTypePickerButton.js +9 -1
- package/lib/commonjs/components/AttachmentPicker/components/AttachmentTypePickerButton.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +2 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js +4 -0
- package/lib/commonjs/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +2 -2
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
- package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingDots.js +2 -0
- package/lib/commonjs/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js +3 -0
- package/lib/commonjs/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/commonjs/components/Indicators/LoadingIndicator.js +2 -0
- package/lib/commonjs/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js +16 -4
- package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +5 -0
- package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/InputButtons/AttachButton.js +12 -3
- package/lib/commonjs/components/MessageInput/components/InputButtons/AttachButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/OutputButtons/EditButton.js +1 -0
- package/lib/commonjs/components/MessageInput/components/OutputButtons/EditButton.js.map +1 -1
- package/lib/commonjs/components/MessageInput/components/OutputButtons/SendButton.js +1 -0
- package/lib/commonjs/components/MessageInput/components/OutputButtons/SendButton.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageFlashList.js +19 -2
- package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/commonjs/components/MessageList/MessageList.js +32 -8
- package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +12 -1
- package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js +1 -0
- package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js +47 -0
- package/lib/commonjs/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js.map +1 -0
- package/lib/commonjs/components/MessageMenu/MessageActionList.js +4 -1
- package/lib/commonjs/components/MessageMenu/MessageActionList.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageActionListItem.js +12 -3
- package/lib/commonjs/components/MessageMenu/MessageActionListItem.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/MessageReactionPicker.js +2 -0
- package/lib/commonjs/components/MessageMenu/MessageReactionPicker.js.map +1 -1
- package/lib/commonjs/components/MessageMenu/ReactionButton.js +9 -1
- package/lib/commonjs/components/MessageMenu/ReactionButton.js.map +1 -1
- package/lib/commonjs/components/Poll/components/CreatePollHeader.js +2 -0
- package/lib/commonjs/components/Poll/components/CreatePollHeader.js.map +1 -1
- package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js +2 -0
- package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollModalHeader.js +1 -0
- package/lib/commonjs/components/Poll/components/PollModalHeader.js.map +1 -1
- package/lib/commonjs/components/Poll/components/PollOption.js +15 -0
- package/lib/commonjs/components/Poll/components/PollOption.js.map +1 -1
- package/lib/commonjs/components/ProgressControl/ProgressControl.js +10 -0
- package/lib/commonjs/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/commonjs/components/Reply/Reply.js +3 -0
- package/lib/commonjs/components/Reply/Reply.js.map +1 -1
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js +6 -3
- package/lib/commonjs/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/commonjs/components/index.js +11 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/components/ui/Avatar/Avatar.js +17 -2
- package/lib/commonjs/components/ui/Avatar/Avatar.js.map +1 -1
- package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js +3 -1
- package/lib/commonjs/components/ui/Avatar/ChannelAvatar.js.map +1 -1
- package/lib/commonjs/components/ui/Avatar/UserAvatar.js +1 -0
- package/lib/commonjs/components/ui/Avatar/UserAvatar.js.map +1 -1
- package/lib/commonjs/components/ui/Button/Button.js +64 -21
- package/lib/commonjs/components/ui/Button/Button.js.map +1 -1
- package/lib/commonjs/components/ui/Input/Input.js +63 -21
- package/lib/commonjs/components/ui/Input/Input.js.map +1 -1
- package/lib/commonjs/contexts/accessibilityContext/AccessibilityContext.js +134 -0
- package/lib/commonjs/contexts/accessibilityContext/AccessibilityContext.js.map +1 -0
- package/lib/commonjs/contexts/accessibilityContext/index.js +15 -0
- package/lib/commonjs/contexts/accessibilityContext/index.js.map +1 -0
- package/lib/commonjs/contexts/index.js +11 -0
- package/lib/commonjs/contexts/index.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js +19 -14
- package/lib/commonjs/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/commonjs/hooks/index.js +11 -0
- package/lib/commonjs/hooks/index.js.map +1 -1
- package/lib/commonjs/i18n/en.json +57 -1
- package/lib/commonjs/i18n/es.json +57 -1
- package/lib/commonjs/i18n/fr.json +57 -1
- package/lib/commonjs/i18n/he.json +57 -1
- package/lib/commonjs/i18n/hi.json +57 -1
- package/lib/commonjs/i18n/it.json +57 -1
- package/lib/commonjs/i18n/ja.json +57 -1
- package/lib/commonjs/i18n/ko.json +57 -1
- package/lib/commonjs/i18n/nl.json +57 -1
- package/lib/commonjs/i18n/pt-br.json +57 -1
- package/lib/commonjs/i18n/ru.json +57 -1
- package/lib/commonjs/i18n/tr.json +57 -1
- package/lib/commonjs/mock-builders/DB/mock.js +3 -1
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/test-utils/BetterSqlite.js +3 -2
- package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/a11y/a11yUtils.js +40 -0
- package/lib/module/a11y/a11yUtils.js.map +1 -0
- package/lib/module/a11y/hooks/useA11yLabel.js +16 -0
- package/lib/module/a11y/hooks/useA11yLabel.js.map +1 -0
- package/lib/module/a11y/hooks/useAccessibilityActivateAction.js +25 -0
- package/lib/module/a11y/hooks/useAccessibilityActivateAction.js.map +1 -0
- package/lib/module/a11y/hooks/useAnnounceOnStateChange.js +36 -0
- package/lib/module/a11y/hooks/useAnnounceOnStateChange.js.map +1 -0
- package/lib/module/a11y/hooks/useReducedMotionPreference.js +34 -0
- package/lib/module/a11y/hooks/useReducedMotionPreference.js.map +1 -0
- package/lib/module/a11y/hooks/useResolvedModalAccessibilityProps.js +20 -0
- package/lib/module/a11y/hooks/useResolvedModalAccessibilityProps.js.map +1 -0
- package/lib/module/a11y/hooks/useScreenReaderEnabled.js +37 -0
- package/lib/module/a11y/hooks/useScreenReaderEnabled.js.map +1 -0
- package/lib/module/a11y/index.js +81 -0
- package/lib/module/a11y/index.js.map +1 -0
- package/lib/module/components/AITypingIndicatorView/AITypingIndicatorView.js +10 -0
- package/lib/module/components/AITypingIndicatorView/AITypingIndicatorView.js.map +1 -1
- package/lib/module/components/Accessibility/NotificationAnnouncer.js +37 -0
- package/lib/module/components/Accessibility/NotificationAnnouncer.js.map +1 -0
- package/lib/module/components/Accessibility/hooks/useIncomingMessageAnnouncements.js +109 -0
- package/lib/module/components/Accessibility/hooks/useIncomingMessageAnnouncements.js.map +1 -0
- package/lib/module/components/Accessibility/index.js +37 -0
- package/lib/module/components/Accessibility/index.js.map +1 -0
- package/lib/module/components/Accessibility/useAccessibilityAnnouncer.js +15 -0
- package/lib/module/components/Accessibility/useAccessibilityAnnouncer.js.map +1 -0
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js +20 -0
- package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js +1 -0
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +19 -2
- package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerContent.js +2 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentPickerContent.js.map +1 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentTypePickerButton.js +9 -1
- package/lib/module/components/AttachmentPicker/components/AttachmentTypePickerButton.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +2 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js +4 -0
- package/lib/module/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +2 -2
- package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
- package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
- package/lib/module/components/Indicators/LoadingDots.js +2 -0
- package/lib/module/components/Indicators/LoadingDots.js.map +1 -1
- package/lib/module/components/Indicators/LoadingErrorIndicator.js +3 -0
- package/lib/module/components/Indicators/LoadingErrorIndicator.js.map +1 -1
- package/lib/module/components/Indicators/LoadingIndicator.js +2 -0
- package/lib/module/components/Indicators/LoadingIndicator.js.map +1 -1
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js +16 -4
- package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +5 -0
- package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
- package/lib/module/components/MessageInput/components/InputButtons/AttachButton.js +12 -3
- package/lib/module/components/MessageInput/components/InputButtons/AttachButton.js.map +1 -1
- package/lib/module/components/MessageInput/components/OutputButtons/EditButton.js +1 -0
- package/lib/module/components/MessageInput/components/OutputButtons/EditButton.js.map +1 -1
- package/lib/module/components/MessageInput/components/OutputButtons/SendButton.js +1 -0
- package/lib/module/components/MessageInput/components/OutputButtons/SendButton.js.map +1 -1
- package/lib/module/components/MessageList/MessageFlashList.js +19 -2
- package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +32 -8
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js +12 -1
- package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
- package/lib/module/components/MessageList/UnreadMessagesNotification.js +1 -0
- package/lib/module/components/MessageList/UnreadMessagesNotification.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js +47 -0
- package/lib/module/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js.map +1 -0
- package/lib/module/components/MessageMenu/MessageActionList.js +4 -1
- package/lib/module/components/MessageMenu/MessageActionList.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageActionListItem.js +12 -3
- package/lib/module/components/MessageMenu/MessageActionListItem.js.map +1 -1
- package/lib/module/components/MessageMenu/MessageReactionPicker.js +2 -0
- package/lib/module/components/MessageMenu/MessageReactionPicker.js.map +1 -1
- package/lib/module/components/MessageMenu/ReactionButton.js +9 -1
- package/lib/module/components/MessageMenu/ReactionButton.js.map +1 -1
- package/lib/module/components/Poll/components/CreatePollHeader.js +2 -0
- package/lib/module/components/Poll/components/CreatePollHeader.js.map +1 -1
- package/lib/module/components/Poll/components/MultipleVotesSettings.js +2 -0
- package/lib/module/components/Poll/components/MultipleVotesSettings.js.map +1 -1
- package/lib/module/components/Poll/components/PollModalHeader.js +1 -0
- package/lib/module/components/Poll/components/PollModalHeader.js.map +1 -1
- package/lib/module/components/Poll/components/PollOption.js +15 -0
- package/lib/module/components/Poll/components/PollOption.js.map +1 -1
- package/lib/module/components/ProgressControl/ProgressControl.js +10 -0
- package/lib/module/components/ProgressControl/ProgressControl.js.map +1 -1
- package/lib/module/components/Reply/Reply.js +3 -0
- package/lib/module/components/Reply/Reply.js.map +1 -1
- package/lib/module/components/UIComponents/BottomSheetModal.js +6 -3
- package/lib/module/components/UIComponents/BottomSheetModal.js.map +1 -1
- package/lib/module/components/index.js +11 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/components/ui/Avatar/Avatar.js +17 -2
- package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
- package/lib/module/components/ui/Avatar/ChannelAvatar.js +3 -1
- package/lib/module/components/ui/Avatar/ChannelAvatar.js.map +1 -1
- package/lib/module/components/ui/Avatar/UserAvatar.js +1 -0
- package/lib/module/components/ui/Avatar/UserAvatar.js.map +1 -1
- package/lib/module/components/ui/Button/Button.js +64 -21
- package/lib/module/components/ui/Button/Button.js.map +1 -1
- package/lib/module/components/ui/Input/Input.js +63 -21
- package/lib/module/components/ui/Input/Input.js.map +1 -1
- package/lib/module/contexts/accessibilityContext/AccessibilityContext.js +134 -0
- package/lib/module/contexts/accessibilityContext/AccessibilityContext.js.map +1 -0
- package/lib/module/contexts/accessibilityContext/index.js +15 -0
- package/lib/module/contexts/accessibilityContext/index.js.map +1 -0
- package/lib/module/contexts/index.js +11 -0
- package/lib/module/contexts/index.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayContext.js.map +1 -1
- package/lib/module/contexts/overlayContext/OverlayProvider.js +19 -14
- package/lib/module/contexts/overlayContext/OverlayProvider.js.map +1 -1
- package/lib/module/hooks/index.js +11 -0
- package/lib/module/hooks/index.js.map +1 -1
- package/lib/module/i18n/en.json +57 -1
- package/lib/module/i18n/es.json +57 -1
- package/lib/module/i18n/fr.json +57 -1
- package/lib/module/i18n/he.json +57 -1
- package/lib/module/i18n/hi.json +57 -1
- package/lib/module/i18n/it.json +57 -1
- package/lib/module/i18n/ja.json +57 -1
- package/lib/module/i18n/ko.json +57 -1
- package/lib/module/i18n/nl.json +57 -1
- package/lib/module/i18n/pt-br.json +57 -1
- package/lib/module/i18n/ru.json +57 -1
- package/lib/module/i18n/tr.json +57 -1
- package/lib/module/mock-builders/DB/mock.js +3 -1
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/test-utils/BetterSqlite.js +3 -2
- package/lib/module/test-utils/BetterSqlite.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/a11y/a11yUtils.d.ts +31 -0
- package/lib/typescript/a11y/a11yUtils.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useA11yLabel.d.ts +13 -0
- package/lib/typescript/a11y/hooks/useA11yLabel.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useAccessibilityActivateAction.d.ts +17 -0
- package/lib/typescript/a11y/hooks/useAccessibilityActivateAction.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useAnnounceOnStateChange.d.ts +14 -0
- package/lib/typescript/a11y/hooks/useAnnounceOnStateChange.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useReducedMotionPreference.d.ts +6 -0
- package/lib/typescript/a11y/hooks/useReducedMotionPreference.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useResolvedModalAccessibilityProps.d.ts +18 -0
- package/lib/typescript/a11y/hooks/useResolvedModalAccessibilityProps.d.ts.map +1 -0
- package/lib/typescript/a11y/hooks/useScreenReaderEnabled.d.ts +10 -0
- package/lib/typescript/a11y/hooks/useScreenReaderEnabled.d.ts.map +1 -0
- package/lib/typescript/a11y/index.d.ts +8 -0
- package/lib/typescript/a11y/index.d.ts.map +1 -0
- package/lib/typescript/components/AITypingIndicatorView/AITypingIndicatorView.d.ts.map +1 -1
- package/lib/typescript/components/Accessibility/NotificationAnnouncer.d.ts +12 -0
- package/lib/typescript/components/Accessibility/NotificationAnnouncer.d.ts.map +1 -0
- package/lib/typescript/components/Accessibility/hooks/useIncomingMessageAnnouncements.d.ts +20 -0
- package/lib/typescript/components/Accessibility/hooks/useIncomingMessageAnnouncements.d.ts.map +1 -0
- package/lib/typescript/components/Accessibility/index.d.ts +4 -0
- package/lib/typescript/components/Accessibility/index.d.ts.map +1 -0
- package/lib/typescript/components/Accessibility/useAccessibilityAnnouncer.d.ts +15 -0
- package/lib/typescript/components/Accessibility/useAccessibilityAnnouncer.d.ts.map +1 -0
- package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerContent.d.ts.map +1 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentTypePickerButton.d.ts +2 -1
- package/lib/typescript/components/AttachmentPicker/components/AttachmentTypePickerButton.d.ts.map +1 -1
- package/lib/typescript/components/Channel/Channel.d.ts.map +1 -1
- package/lib/typescript/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.d.ts.map +1 -1
- package/lib/typescript/components/Indicators/LoadingDots.d.ts.map +1 -1
- package/lib/typescript/components/Indicators/LoadingErrorIndicator.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.d.ts +5 -2
- package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/InputButtons/AttachButton.d.ts +1 -0
- package/lib/typescript/components/MessageInput/components/InputButtons/AttachButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/OutputButtons/EditButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageInput/components/OutputButtons/SendButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts +2 -0
- package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
- package/lib/typescript/components/MessageList/hooks/useScrollToBottomAccessibilityAction.d.ts +20 -0
- package/lib/typescript/components/MessageList/hooks/useScrollToBottomAccessibilityAction.d.ts.map +1 -0
- package/lib/typescript/components/MessageMenu/MessageActionList.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageActionListItem.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/MessageReactionPicker.d.ts.map +1 -1
- package/lib/typescript/components/MessageMenu/ReactionButton.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/CreatePollHeader.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/MultipleVotesSettings.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollModalHeader.d.ts.map +1 -1
- package/lib/typescript/components/Poll/components/PollOption.d.ts.map +1 -1
- package/lib/typescript/components/ProgressControl/ProgressControl.d.ts.map +1 -1
- package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
- package/lib/typescript/components/UIComponents/BottomSheetModal.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +1 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/components/ui/Avatar/Avatar.d.ts +12 -1
- package/lib/typescript/components/ui/Avatar/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/ui/Avatar/ChannelAvatar.d.ts.map +1 -1
- package/lib/typescript/components/ui/Avatar/UserAvatar.d.ts.map +1 -1
- package/lib/typescript/components/ui/Button/Button.d.ts +10 -1
- package/lib/typescript/components/ui/Button/Button.d.ts.map +1 -1
- package/lib/typescript/components/ui/Input/Input.d.ts.map +1 -1
- package/lib/typescript/contexts/accessibilityContext/AccessibilityContext.d.ts +34 -0
- package/lib/typescript/contexts/accessibilityContext/AccessibilityContext.d.ts.map +1 -0
- package/lib/typescript/contexts/accessibilityContext/index.d.ts +2 -0
- package/lib/typescript/contexts/accessibilityContext/index.d.ts.map +1 -0
- package/lib/typescript/contexts/index.d.ts +1 -0
- package/lib/typescript/contexts/index.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts +7 -0
- package/lib/typescript/contexts/overlayContext/OverlayContext.d.ts.map +1 -1
- package/lib/typescript/contexts/overlayContext/OverlayProvider.d.ts.map +1 -1
- package/lib/typescript/hooks/index.d.ts +1 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -1
- package/lib/typescript/hooks/useTranslatedMessage.d.ts +2 -2
- package/lib/typescript/i18n/en.json +57 -1
- package/lib/typescript/i18n/es.json +57 -1
- package/lib/typescript/i18n/fr.json +57 -1
- package/lib/typescript/i18n/he.json +57 -1
- package/lib/typescript/i18n/hi.json +57 -1
- package/lib/typescript/i18n/it.json +57 -1
- package/lib/typescript/i18n/ja.json +57 -1
- package/lib/typescript/i18n/ko.json +57 -1
- package/lib/typescript/i18n/nl.json +57 -1
- package/lib/typescript/i18n/pt-br.json +57 -1
- package/lib/typescript/i18n/ru.json +57 -1
- package/lib/typescript/i18n/tr.json +57 -1
- package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
- package/lib/typescript/utils/i18n/Streami18n.d.ts +56 -0
- package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__tests__/offline-support/offline-feature.tsx +40 -34
- package/src/a11y/__tests__/a11yUtils.test.ts +70 -0
- package/src/a11y/a11yUtils.ts +50 -0
- package/src/a11y/hooks/useA11yLabel.ts +22 -0
- package/src/a11y/hooks/useAccessibilityActivateAction.ts +44 -0
- package/src/a11y/hooks/useAnnounceOnStateChange.ts +47 -0
- package/src/a11y/hooks/useReducedMotionPreference.ts +38 -0
- package/src/a11y/hooks/useResolvedModalAccessibilityProps.ts +30 -0
- package/src/a11y/hooks/useScreenReaderEnabled.ts +44 -0
- package/src/a11y/index.ts +7 -0
- package/src/components/AITypingIndicatorView/AITypingIndicatorView.tsx +17 -2
- package/src/components/AITypingIndicatorView/__tests__/AITypingIndicatorView.test.tsx +73 -0
- package/src/components/Accessibility/NotificationAnnouncer.tsx +43 -0
- package/src/components/Accessibility/__tests__/AccessibilityAnnouncer.test.tsx +75 -0
- package/src/components/Accessibility/hooks/useIncomingMessageAnnouncements.ts +157 -0
- package/src/components/Accessibility/index.ts +3 -0
- package/src/components/Accessibility/useAccessibilityAnnouncer.ts +30 -0
- package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -1
- package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.tsx +1 -0
- package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +15 -2
- package/src/components/AttachmentPicker/components/AttachmentPickerContent.tsx +1 -0
- package/src/components/AttachmentPicker/components/AttachmentTypePickerButton.tsx +9 -0
- package/src/components/Channel/Channel.tsx +3 -0
- package/src/components/ChannelList/__tests__/ChannelListView.test.tsx +16 -5
- package/src/components/ChannelPreview/ChannelMessagePreviewDeliveryStatus.tsx +14 -1
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +9 -3
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +4 -1
- package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -2
- package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +1 -1
- package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +1 -1
- package/src/components/Indicators/LoadingDots.tsx +5 -1
- package/src/components/Indicators/LoadingErrorIndicator.tsx +7 -1
- package/src/components/Indicators/LoadingIndicator.tsx +1 -1
- package/src/components/Message/MessageItemView/__tests__/__snapshots__/MessageAuthor.test.tsx.snap +2 -0
- package/src/components/MessageInput/__tests__/__snapshots__/AttachButton.test.tsx.snap +30 -15
- package/src/components/MessageInput/__tests__/__snapshots__/SendButton.test.tsx.snap +20 -10
- package/src/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.tsx +18 -2
- package/src/components/MessageInput/components/AudioRecorder/AudioRecorder.tsx +3 -0
- package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +8 -1
- package/src/components/MessageInput/components/InputButtons/AttachButton.tsx +13 -3
- package/src/components/MessageInput/components/OutputButtons/EditButton.tsx +1 -0
- package/src/components/MessageInput/components/OutputButtons/SendButton.tsx +1 -0
- package/src/components/MessageList/MessageFlashList.tsx +23 -2
- package/src/components/MessageList/MessageList.tsx +32 -2
- package/src/components/MessageList/ScrollToBottomButton.tsx +19 -1
- package/src/components/MessageList/UnreadMessagesNotification.tsx +1 -0
- package/src/components/MessageList/__tests__/MessageList.test.tsx +186 -0
- package/src/components/MessageList/__tests__/ScrollToBottomButton.test.tsx +2 -2
- package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.tsx.snap +4 -1
- package/src/components/MessageList/__tests__/__snapshots__/TypingIndicator.test.tsx.snap +6 -0
- package/src/components/MessageList/hooks/useScrollToBottomAccessibilityAction.ts +74 -0
- package/src/components/MessageMenu/MessageActionList.tsx +4 -1
- package/src/components/MessageMenu/MessageActionListItem.tsx +11 -4
- package/src/components/MessageMenu/MessageReactionPicker.tsx +2 -0
- package/src/components/MessageMenu/ReactionButton.tsx +7 -1
- package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +13 -15
- package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +20 -18
- package/src/components/MessageMenu/__tests__/ReactionButton.test.tsx +18 -5
- package/src/components/Poll/components/CreatePollHeader.tsx +2 -0
- package/src/components/Poll/components/MultipleVotesSettings.tsx +2 -0
- package/src/components/Poll/components/PollModalHeader.tsx +1 -0
- package/src/components/Poll/components/PollOption.tsx +11 -0
- package/src/components/ProgressControl/ProgressControl.tsx +8 -0
- package/src/components/Reply/Reply.tsx +9 -2
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.tsx.snap +23 -6
- package/src/components/UIComponents/BottomSheetModal.tsx +4 -0
- package/src/components/index.ts +2 -0
- package/src/components/ui/Avatar/Avatar.tsx +24 -2
- package/src/components/ui/Avatar/ChannelAvatar.tsx +3 -0
- package/src/components/ui/Avatar/UserAvatar.tsx +1 -0
- package/src/components/ui/Button/Button.tsx +50 -0
- package/src/components/ui/Button/__tests__/Button.test.tsx +44 -0
- package/src/components/ui/Input/Input.tsx +35 -0
- package/src/contexts/accessibilityContext/AccessibilityContext.tsx +199 -0
- package/src/contexts/accessibilityContext/__tests__/AccessibilityContext.test.tsx +65 -0
- package/src/contexts/accessibilityContext/index.ts +1 -0
- package/src/contexts/index.ts +1 -0
- package/src/contexts/overlayContext/OverlayContext.tsx +7 -0
- package/src/contexts/overlayContext/OverlayProvider.tsx +18 -14
- package/src/contexts/overlayContext/__tests__/OverlayProvider.test.tsx +51 -0
- package/src/hooks/index.ts +1 -0
- package/src/i18n/en.json +57 -1
- package/src/i18n/es.json +57 -1
- package/src/i18n/fr.json +57 -1
- package/src/i18n/he.json +57 -1
- package/src/i18n/hi.json +57 -1
- package/src/i18n/it.json +57 -1
- package/src/i18n/ja.json +57 -1
- package/src/i18n/ko.json +57 -1
- package/src/i18n/nl.json +57 -1
- package/src/i18n/pt-br.json +57 -1
- package/src/i18n/ru.json +57 -1
- package/src/i18n/tr.json +57 -1
- package/src/mock-builders/DB/mock.ts +2 -1
- package/src/test-utils/BetterSqlite.ts +3 -1
- package/src/version.json +1 -1
|
@@ -36,13 +36,14 @@ exports[`SendButton should render a SendButton 1`] = `
|
|
|
36
36
|
}
|
|
37
37
|
>
|
|
38
38
|
<View
|
|
39
|
+
accessibilityRole="button"
|
|
39
40
|
accessibilityState={
|
|
40
41
|
{
|
|
41
42
|
"busy": undefined,
|
|
42
43
|
"checked": undefined,
|
|
43
44
|
"disabled": false,
|
|
44
45
|
"expanded": undefined,
|
|
45
|
-
"selected":
|
|
46
|
+
"selected": false,
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
accessibilityValue={
|
|
@@ -194,13 +195,14 @@ exports[`SendButton should render a SendButton 1`] = `
|
|
|
194
195
|
}
|
|
195
196
|
>
|
|
196
197
|
<View
|
|
198
|
+
accessibilityRole="button"
|
|
197
199
|
accessibilityState={
|
|
198
200
|
{
|
|
199
201
|
"busy": undefined,
|
|
200
202
|
"checked": undefined,
|
|
201
203
|
"disabled": false,
|
|
202
204
|
"expanded": undefined,
|
|
203
|
-
"selected":
|
|
205
|
+
"selected": false,
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
208
|
accessibilityValue={
|
|
@@ -333,13 +335,14 @@ exports[`SendButton should render a SendButton 1`] = `
|
|
|
333
335
|
}
|
|
334
336
|
>
|
|
335
337
|
<View
|
|
338
|
+
accessibilityRole="button"
|
|
336
339
|
accessibilityState={
|
|
337
340
|
{
|
|
338
341
|
"busy": undefined,
|
|
339
342
|
"checked": undefined,
|
|
340
343
|
"disabled": false,
|
|
341
344
|
"expanded": undefined,
|
|
342
|
-
"selected":
|
|
345
|
+
"selected": false,
|
|
343
346
|
}
|
|
344
347
|
}
|
|
345
348
|
accessibilityValue={
|
|
@@ -501,13 +504,14 @@ exports[`SendButton should render a SendButton 1`] = `
|
|
|
501
504
|
}
|
|
502
505
|
>
|
|
503
506
|
<View
|
|
507
|
+
accessibilityRole="button"
|
|
504
508
|
accessibilityState={
|
|
505
509
|
{
|
|
506
510
|
"busy": undefined,
|
|
507
511
|
"checked": undefined,
|
|
508
512
|
"disabled": false,
|
|
509
513
|
"expanded": undefined,
|
|
510
|
-
"selected":
|
|
514
|
+
"selected": false,
|
|
511
515
|
}
|
|
512
516
|
}
|
|
513
517
|
accessibilityValue={
|
|
@@ -636,13 +640,14 @@ exports[`SendButton should render a SendButton 1`] = `
|
|
|
636
640
|
}
|
|
637
641
|
>
|
|
638
642
|
<View
|
|
643
|
+
accessibilityRole="button"
|
|
639
644
|
accessibilityState={
|
|
640
645
|
{
|
|
641
646
|
"busy": undefined,
|
|
642
647
|
"checked": undefined,
|
|
643
648
|
"disabled": false,
|
|
644
649
|
"expanded": undefined,
|
|
645
|
-
"selected":
|
|
650
|
+
"selected": false,
|
|
646
651
|
}
|
|
647
652
|
}
|
|
648
653
|
accessibilityValue={
|
|
@@ -903,13 +908,14 @@ exports[`SendButton should render a disabled SendButton 1`] = `
|
|
|
903
908
|
}
|
|
904
909
|
>
|
|
905
910
|
<View
|
|
911
|
+
accessibilityRole="button"
|
|
906
912
|
accessibilityState={
|
|
907
913
|
{
|
|
908
914
|
"busy": undefined,
|
|
909
915
|
"checked": undefined,
|
|
910
916
|
"disabled": true,
|
|
911
917
|
"expanded": undefined,
|
|
912
|
-
"selected":
|
|
918
|
+
"selected": false,
|
|
913
919
|
}
|
|
914
920
|
}
|
|
915
921
|
accessibilityValue={
|
|
@@ -1061,13 +1067,14 @@ exports[`SendButton should render a disabled SendButton 1`] = `
|
|
|
1061
1067
|
}
|
|
1062
1068
|
>
|
|
1063
1069
|
<View
|
|
1070
|
+
accessibilityRole="button"
|
|
1064
1071
|
accessibilityState={
|
|
1065
1072
|
{
|
|
1066
1073
|
"busy": undefined,
|
|
1067
1074
|
"checked": undefined,
|
|
1068
1075
|
"disabled": false,
|
|
1069
1076
|
"expanded": undefined,
|
|
1070
|
-
"selected":
|
|
1077
|
+
"selected": false,
|
|
1071
1078
|
}
|
|
1072
1079
|
}
|
|
1073
1080
|
accessibilityValue={
|
|
@@ -1200,13 +1207,14 @@ exports[`SendButton should render a disabled SendButton 1`] = `
|
|
|
1200
1207
|
}
|
|
1201
1208
|
>
|
|
1202
1209
|
<View
|
|
1210
|
+
accessibilityRole="button"
|
|
1203
1211
|
accessibilityState={
|
|
1204
1212
|
{
|
|
1205
1213
|
"busy": undefined,
|
|
1206
1214
|
"checked": undefined,
|
|
1207
1215
|
"disabled": false,
|
|
1208
1216
|
"expanded": undefined,
|
|
1209
|
-
"selected":
|
|
1217
|
+
"selected": false,
|
|
1210
1218
|
}
|
|
1211
1219
|
}
|
|
1212
1220
|
accessibilityValue={
|
|
@@ -1368,13 +1376,14 @@ exports[`SendButton should render a disabled SendButton 1`] = `
|
|
|
1368
1376
|
}
|
|
1369
1377
|
>
|
|
1370
1378
|
<View
|
|
1379
|
+
accessibilityRole="button"
|
|
1371
1380
|
accessibilityState={
|
|
1372
1381
|
{
|
|
1373
1382
|
"busy": undefined,
|
|
1374
1383
|
"checked": undefined,
|
|
1375
1384
|
"disabled": false,
|
|
1376
1385
|
"expanded": undefined,
|
|
1377
|
-
"selected":
|
|
1386
|
+
"selected": false,
|
|
1378
1387
|
}
|
|
1379
1388
|
}
|
|
1380
1389
|
accessibilityValue={
|
|
@@ -1503,13 +1512,14 @@ exports[`SendButton should render a disabled SendButton 1`] = `
|
|
|
1503
1512
|
}
|
|
1504
1513
|
>
|
|
1505
1514
|
<View
|
|
1515
|
+
accessibilityRole="button"
|
|
1506
1516
|
accessibilityState={
|
|
1507
1517
|
{
|
|
1508
1518
|
"busy": undefined,
|
|
1509
1519
|
"checked": undefined,
|
|
1510
1520
|
"disabled": false,
|
|
1511
1521
|
"expanded": undefined,
|
|
1512
|
-
"selected":
|
|
1522
|
+
"selected": false,
|
|
1513
1523
|
}
|
|
1514
1524
|
}
|
|
1515
1525
|
accessibilityValue={
|
package/src/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.tsx
CHANGED
|
@@ -2,13 +2,22 @@ import React, { useMemo } from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { Pressable, PressableProps, StyleSheet } from 'react-native';
|
|
4
4
|
|
|
5
|
+
import { useA11yLabel } from '../../../../a11y/hooks/useA11yLabel';
|
|
5
6
|
import { useTheme } from '../../../../contexts/themeContext/ThemeContext';
|
|
6
7
|
import { NewClose } from '../../../../icons/xmark';
|
|
7
8
|
import { primitives } from '../../../../theme';
|
|
8
9
|
|
|
9
|
-
type AttachmentRemoveControlProps = PressableProps
|
|
10
|
+
type AttachmentRemoveControlProps = PressableProps & {
|
|
11
|
+
accessibilityLabelKey?: string;
|
|
12
|
+
accessibilityLabelParams?: Record<string, unknown>;
|
|
13
|
+
};
|
|
10
14
|
|
|
11
|
-
export const AttachmentRemoveControl = ({
|
|
15
|
+
export const AttachmentRemoveControl = ({
|
|
16
|
+
accessibilityLabelKey = 'a11y/Remove attachment',
|
|
17
|
+
accessibilityLabelParams,
|
|
18
|
+
onPress,
|
|
19
|
+
...rest
|
|
20
|
+
}: AttachmentRemoveControlProps) => {
|
|
12
21
|
const {
|
|
13
22
|
theme: {
|
|
14
23
|
semantics,
|
|
@@ -18,9 +27,15 @@ export const AttachmentRemoveControl = ({ onPress }: AttachmentRemoveControlProp
|
|
|
18
27
|
},
|
|
19
28
|
} = useTheme();
|
|
20
29
|
const styles = useStyles();
|
|
30
|
+
const translatedAccessibilityLabel = useA11yLabel(
|
|
31
|
+
accessibilityLabelKey,
|
|
32
|
+
accessibilityLabelParams,
|
|
33
|
+
);
|
|
21
34
|
|
|
22
35
|
return (
|
|
23
36
|
<Pressable
|
|
37
|
+
accessibilityLabel={translatedAccessibilityLabel}
|
|
38
|
+
accessibilityRole='button'
|
|
24
39
|
hitSlop={15}
|
|
25
40
|
onPress={onPress}
|
|
26
41
|
style={({ pressed }) => [
|
|
@@ -31,6 +46,7 @@ export const AttachmentRemoveControl = ({ onPress }: AttachmentRemoveControlProp
|
|
|
31
46
|
dismiss,
|
|
32
47
|
]}
|
|
33
48
|
testID='remove-upload-preview'
|
|
49
|
+
{...rest}
|
|
34
50
|
>
|
|
35
51
|
<NewClose
|
|
36
52
|
height={16}
|
|
@@ -59,6 +59,7 @@ const StopRecording = ({
|
|
|
59
59
|
|
|
60
60
|
return (
|
|
61
61
|
<Button
|
|
62
|
+
accessibilityLabelKey='a11y/Stop voice recording'
|
|
62
63
|
variant='destructive'
|
|
63
64
|
type='outline'
|
|
64
65
|
size='sm'
|
|
@@ -83,6 +84,7 @@ const UploadRecording = ({
|
|
|
83
84
|
|
|
84
85
|
return (
|
|
85
86
|
<Button
|
|
87
|
+
accessibilityLabelKey='a11y/Send voice recording'
|
|
86
88
|
variant='primary'
|
|
87
89
|
type='solid'
|
|
88
90
|
onPress={onUploadVoiceRecording}
|
|
@@ -104,6 +106,7 @@ const DeleteRecording = ({
|
|
|
104
106
|
};
|
|
105
107
|
return (
|
|
106
108
|
<Button
|
|
109
|
+
accessibilityLabelKey='a11y/Delete voice recording'
|
|
107
110
|
variant='secondary'
|
|
108
111
|
type='outline'
|
|
109
112
|
size='sm'
|
|
@@ -10,6 +10,7 @@ import Animated, {
|
|
|
10
10
|
withSpring,
|
|
11
11
|
} from 'react-native-reanimated';
|
|
12
12
|
|
|
13
|
+
import { useA11yLabel } from '../../../../a11y/hooks/useA11yLabel';
|
|
13
14
|
import { useActiveAudioPlayer } from '../../../../contexts/audioPlayerContext/AudioPlayerContext';
|
|
14
15
|
import {
|
|
15
16
|
MessageInputContextValue,
|
|
@@ -83,6 +84,7 @@ export const AudioRecordingButtonWithContext = (props: AudioRecordingButtonProps
|
|
|
83
84
|
const pressed = useSharedValue(false);
|
|
84
85
|
|
|
85
86
|
const { t } = useTranslationContext();
|
|
87
|
+
const startVoiceRecordingAccessibilityLabel = useA11yLabel('a11y/Start voice recording');
|
|
86
88
|
const {
|
|
87
89
|
theme: {
|
|
88
90
|
messageComposer: { micButtonContainer },
|
|
@@ -238,7 +240,12 @@ export const AudioRecordingButtonWithContext = (props: AudioRecordingButtonProps
|
|
|
238
240
|
|
|
239
241
|
return (
|
|
240
242
|
<GestureDetector gesture={Gesture.Simultaneous(panGesture, tapGesture)}>
|
|
241
|
-
<Animated.View
|
|
243
|
+
<Animated.View
|
|
244
|
+
accessibilityLabel={startVoiceRecordingAccessibilityLabel}
|
|
245
|
+
accessibilityRole='button'
|
|
246
|
+
accessible
|
|
247
|
+
style={[styles.container, animatedStyle, micButtonContainer]}
|
|
248
|
+
>
|
|
242
249
|
<Mic height={20} width={20} strokeWidth={1.5} stroke={buttonStyles.foregroundColor} />
|
|
243
250
|
</Animated.View>
|
|
244
251
|
</GestureDetector>
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
useMessageInputContext,
|
|
11
11
|
} from '../../../../contexts/messageInputContext/MessageInputContext';
|
|
12
12
|
import { useStableCallback } from '../../../../hooks';
|
|
13
|
+
import { useAttachmentPickerState } from '../../../../hooks/useAttachmentPickerState';
|
|
13
14
|
import { Plus } from '../../../../icons/plus';
|
|
14
15
|
import { Button } from '../../../ui/';
|
|
15
16
|
|
|
@@ -18,6 +19,7 @@ type AttachButtonPropsWithContext = Pick<MessageInputContextValue, 'handleAttach
|
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
/** Function that opens attachment options bottom sheet */
|
|
20
21
|
handleOnPress?: ((event: GestureResponderEvent) => void) & (() => void);
|
|
22
|
+
isAttachmentPickerOpen?: boolean;
|
|
21
23
|
} & { toggleAttachmentPicker: () => void };
|
|
22
24
|
|
|
23
25
|
const AttachButtonWithContext = (props: AttachButtonPropsWithContext) => {
|
|
@@ -25,6 +27,7 @@ const AttachButtonWithContext = (props: AttachButtonPropsWithContext) => {
|
|
|
25
27
|
disabled = false,
|
|
26
28
|
handleAttachButtonPress,
|
|
27
29
|
handleOnPress,
|
|
30
|
+
isAttachmentPickerOpen = false,
|
|
28
31
|
toggleAttachmentPicker,
|
|
29
32
|
} = props;
|
|
30
33
|
|
|
@@ -45,6 +48,9 @@ const AttachButtonWithContext = (props: AttachButtonPropsWithContext) => {
|
|
|
45
48
|
|
|
46
49
|
return (
|
|
47
50
|
<Button
|
|
51
|
+
accessibilityLabelKey={
|
|
52
|
+
isAttachmentPickerOpen ? 'a11y/Close attachments' : 'a11y/Add attachment'
|
|
53
|
+
}
|
|
48
54
|
variant='secondary'
|
|
49
55
|
type='outline'
|
|
50
56
|
size='lg'
|
|
@@ -61,15 +67,17 @@ const areEqual = (
|
|
|
61
67
|
prevProps: AttachButtonPropsWithContext,
|
|
62
68
|
nextProps: AttachButtonPropsWithContext,
|
|
63
69
|
) => {
|
|
64
|
-
const { handleOnPress: prevHandleOnPress } =
|
|
65
|
-
|
|
70
|
+
const { handleOnPress: prevHandleOnPress, isAttachmentPickerOpen: prevIsAttachmentPickerOpen } =
|
|
71
|
+
prevProps;
|
|
72
|
+
const { handleOnPress: nextHandleOnPress, isAttachmentPickerOpen: nextIsAttachmentPickerOpen } =
|
|
73
|
+
nextProps;
|
|
66
74
|
|
|
67
75
|
const handleOnPressEqual = prevHandleOnPress === nextHandleOnPress;
|
|
68
76
|
if (!handleOnPressEqual) {
|
|
69
77
|
return false;
|
|
70
78
|
}
|
|
71
79
|
|
|
72
|
-
return
|
|
80
|
+
return prevIsAttachmentPickerOpen === nextIsAttachmentPickerOpen;
|
|
73
81
|
};
|
|
74
82
|
|
|
75
83
|
const MemoizedAttachButton = React.memo(
|
|
@@ -86,6 +94,7 @@ export const AttachButton = (props: AttachButtonProps) => {
|
|
|
86
94
|
const { disableAttachmentPicker } = useAttachmentPickerContext();
|
|
87
95
|
const { inputBoxRef, handleAttachButtonPress, openAttachmentPicker } = useMessageInputContext();
|
|
88
96
|
const { attachmentPickerStore } = useAttachmentPickerContext();
|
|
97
|
+
const { selectedPicker } = useAttachmentPickerState();
|
|
89
98
|
|
|
90
99
|
const toggleAttachmentPicker = useStableCallback(() => {
|
|
91
100
|
if (attachmentPickerStore.state.getLatestValue().selectedPicker) {
|
|
@@ -100,6 +109,7 @@ export const AttachButton = (props: AttachButtonProps) => {
|
|
|
100
109
|
{...{
|
|
101
110
|
disableAttachmentPicker,
|
|
102
111
|
handleAttachButtonPress,
|
|
112
|
+
isAttachmentPickerOpen: !!selectedPicker,
|
|
103
113
|
toggleAttachmentPicker,
|
|
104
114
|
}}
|
|
105
115
|
{...props}
|
|
@@ -14,6 +14,7 @@ import type { FlashListProps, FlashListRef } from '@shopify/flash-list';
|
|
|
14
14
|
import type { Channel, Event, LocalMessage, MessageResponse } from 'stream-chat';
|
|
15
15
|
|
|
16
16
|
import { useMessageList } from './hooks/useMessageList';
|
|
17
|
+
import { useScrollToBottomAccessibilityAction } from './hooks/useScrollToBottomAccessibilityAction';
|
|
17
18
|
import { useShouldScrollToRecentOnNewOwnMessage } from './hooks/useShouldScrollToRecentOnNewOwnMessage';
|
|
18
19
|
import { useTypingUsers } from './hooks/useTypingUsers';
|
|
19
20
|
import { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';
|
|
@@ -920,6 +921,19 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
|
|
|
920
921
|
});
|
|
921
922
|
});
|
|
922
923
|
|
|
924
|
+
const scrollToBottomUnreadCount =
|
|
925
|
+
scrollToBottomButtonVisible && !threadList ? channel?.countUnread() : undefined;
|
|
926
|
+
const {
|
|
927
|
+
accessibilityActions: messageListAccessibilityActions,
|
|
928
|
+
onAccessibilityAction: messageListOnAccessibilityAction,
|
|
929
|
+
} = useScrollToBottomAccessibilityAction({
|
|
930
|
+
accessibilityActions: additionalFlashListProps?.accessibilityActions,
|
|
931
|
+
onAccessibilityAction: additionalFlashListProps?.onAccessibilityAction,
|
|
932
|
+
onScrollToBottom: goToNewMessages,
|
|
933
|
+
unreadCount: scrollToBottomUnreadCount,
|
|
934
|
+
visible: scrollToBottomButtonVisible,
|
|
935
|
+
});
|
|
936
|
+
|
|
923
937
|
const dismissImagePicker = useStableCallback(() => {
|
|
924
938
|
if (attachmentPickerStore.state.getLatestValue().selectedPicker) {
|
|
925
939
|
attachmentPickerStore.setSelectedPicker(undefined);
|
|
@@ -1072,10 +1086,17 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
|
|
|
1072
1086
|
testID='message-flash-list'
|
|
1073
1087
|
viewabilityConfig={flatListViewabilityConfig}
|
|
1074
1088
|
{...additionalFlashListPropsExcludingStyle}
|
|
1089
|
+
accessibilityActions={messageListAccessibilityActions}
|
|
1090
|
+
onAccessibilityAction={messageListOnAccessibilityAction}
|
|
1075
1091
|
/>
|
|
1076
1092
|
</MessageListItemProvider>
|
|
1077
1093
|
)}
|
|
1078
|
-
<View
|
|
1094
|
+
<View
|
|
1095
|
+
accessibilityElementsHidden
|
|
1096
|
+
accessible={false}
|
|
1097
|
+
importantForAccessibility='no-hide-descendants'
|
|
1098
|
+
style={styles.stickyHeaderContainer}
|
|
1099
|
+
>
|
|
1079
1100
|
{messageListLengthAfterUpdate && StickyHeader ? (
|
|
1080
1101
|
<StickyHeader date={stickyHeaderDate} />
|
|
1081
1102
|
) : null}
|
|
@@ -1094,7 +1115,7 @@ const MessageFlashListWithContext = (props: MessageFlashListPropsWithContext) =>
|
|
|
1094
1115
|
<ScrollToBottomButton
|
|
1095
1116
|
onPress={goToNewMessages}
|
|
1096
1117
|
showNotification={scrollToBottomButtonVisible}
|
|
1097
|
-
unreadCount={
|
|
1118
|
+
unreadCount={scrollToBottomUnreadCount}
|
|
1098
1119
|
/>
|
|
1099
1120
|
</Animated.View>
|
|
1100
1121
|
<NetworkDownIndicator />
|
|
@@ -18,6 +18,7 @@ import debounce from 'lodash/debounce';
|
|
|
18
18
|
import type { Channel, Event, LocalMessage, MessageResponse } from 'stream-chat';
|
|
19
19
|
|
|
20
20
|
import { useMessageList } from './hooks/useMessageList';
|
|
21
|
+
import { useScrollToBottomAccessibilityAction } from './hooks/useScrollToBottomAccessibilityAction';
|
|
21
22
|
import { useShouldScrollToRecentOnNewOwnMessage } from './hooks/useShouldScrollToRecentOnNewOwnMessage';
|
|
22
23
|
|
|
23
24
|
import { InlineLoadingMoreIndicator } from './InlineLoadingMoreIndicator';
|
|
@@ -37,6 +38,7 @@ import {
|
|
|
37
38
|
ChannelContextValue,
|
|
38
39
|
useChannelContext,
|
|
39
40
|
} from '../../contexts/channelContext/ChannelContext';
|
|
41
|
+
|
|
40
42
|
import { ChatContextValue, useChatContext } from '../../contexts/chatContext/ChatContext';
|
|
41
43
|
import { useComponentsContext } from '../../contexts/componentsContext/ComponentsContext';
|
|
42
44
|
import { useDebugContext } from '../../contexts/debugContext/DebugContext';
|
|
@@ -70,6 +72,7 @@ import { bumpOverlayLayoutRevision } from '../../state-store';
|
|
|
70
72
|
import { MessageInputHeightState } from '../../state-store/message-input-height-store';
|
|
71
73
|
import { primitives } from '../../theme';
|
|
72
74
|
import { transitions } from '../../utils/transitions';
|
|
75
|
+
import { useIncomingMessageAnnouncements } from '../Accessibility/hooks/useIncomingMessageAnnouncements';
|
|
73
76
|
import { MessageWrapper } from '../Message/MessageItemView/MessageWrapper';
|
|
74
77
|
|
|
75
78
|
// This is just to make sure that the scrolling happens in a different task queue.
|
|
@@ -365,6 +368,13 @@ const MessageListWithContext = (props: MessageListPropsWithContext) => {
|
|
|
365
368
|
messageInputHeightStoreSelector,
|
|
366
369
|
);
|
|
367
370
|
|
|
371
|
+
useIncomingMessageAnnouncements({
|
|
372
|
+
activeThreadId: thread?.id,
|
|
373
|
+
channel,
|
|
374
|
+
ownUserId: client.user?.id,
|
|
375
|
+
threadList,
|
|
376
|
+
});
|
|
377
|
+
|
|
368
378
|
const myMessageThemeString = useMemo(() => JSON.stringify(myMessageTheme), [myMessageTheme]);
|
|
369
379
|
|
|
370
380
|
const modifiedTheme = useMemo(
|
|
@@ -1037,6 +1047,19 @@ const MessageListWithContext = (props: MessageListPropsWithContext) => {
|
|
|
1037
1047
|
});
|
|
1038
1048
|
});
|
|
1039
1049
|
|
|
1050
|
+
const scrollToBottomUnreadCount =
|
|
1051
|
+
scrollToBottomButtonVisible && !threadList ? channel?.countUnread() : undefined;
|
|
1052
|
+
const {
|
|
1053
|
+
accessibilityActions: messageListAccessibilityActions,
|
|
1054
|
+
onAccessibilityAction: messageListOnAccessibilityAction,
|
|
1055
|
+
} = useScrollToBottomAccessibilityAction({
|
|
1056
|
+
accessibilityActions: additionalFlatListProps?.accessibilityActions,
|
|
1057
|
+
onAccessibilityAction: additionalFlatListProps?.onAccessibilityAction,
|
|
1058
|
+
onScrollToBottom: goToNewMessages,
|
|
1059
|
+
unreadCount: scrollToBottomUnreadCount,
|
|
1060
|
+
visible: scrollToBottomButtonVisible,
|
|
1061
|
+
});
|
|
1062
|
+
|
|
1040
1063
|
const scrollToIndexFailedRetryCountRef = useRef<number>(0);
|
|
1041
1064
|
const failScrollTimeoutId = useRef<ReturnType<typeof setTimeout>>(undefined);
|
|
1042
1065
|
const onScrollToIndexFailedRef = useRef<
|
|
@@ -1289,10 +1312,17 @@ const MessageListWithContext = (props: MessageListPropsWithContext) => {
|
|
|
1289
1312
|
testID='message-flat-list'
|
|
1290
1313
|
viewabilityConfig={flatListViewabilityConfig}
|
|
1291
1314
|
{...additionalFlatListPropsExcludingStyle}
|
|
1315
|
+
accessibilityActions={messageListAccessibilityActions}
|
|
1316
|
+
onAccessibilityAction={messageListOnAccessibilityAction}
|
|
1292
1317
|
/>
|
|
1293
1318
|
</MessageListItemProvider>
|
|
1294
1319
|
)}
|
|
1295
|
-
<View
|
|
1320
|
+
<View
|
|
1321
|
+
accessibilityElementsHidden
|
|
1322
|
+
accessible={false}
|
|
1323
|
+
importantForAccessibility='no-hide-descendants'
|
|
1324
|
+
style={styles.stickyHeaderContainer}
|
|
1325
|
+
>
|
|
1296
1326
|
{messageListLengthAfterUpdate && StickyHeader ? (
|
|
1297
1327
|
<StickyHeader date={stickyHeaderDate} />
|
|
1298
1328
|
) : null}
|
|
@@ -1312,7 +1342,7 @@ const MessageListWithContext = (props: MessageListPropsWithContext) => {
|
|
|
1312
1342
|
<ScrollToBottomButton
|
|
1313
1343
|
onPress={goToNewMessages}
|
|
1314
1344
|
showNotification={scrollToBottomButtonVisible}
|
|
1315
|
-
unreadCount={
|
|
1345
|
+
unreadCount={scrollToBottomUnreadCount}
|
|
1316
1346
|
/>
|
|
1317
1347
|
</Animated.View>
|
|
1318
1348
|
) : null}
|
|
@@ -9,6 +9,10 @@ import { primitives } from '../../theme';
|
|
|
9
9
|
import { BadgeNotification } from '../ui';
|
|
10
10
|
import { Button } from '../ui/Button';
|
|
11
11
|
|
|
12
|
+
export const SCROLL_TO_BOTTOM_ACCESSIBILITY_LABEL_KEY = 'a11y/Scroll to bottom';
|
|
13
|
+
export const SCROLL_TO_BOTTOM_WITH_COUNT_ACCESSIBILITY_LABEL_KEY =
|
|
14
|
+
'a11y/Scroll to bottom, {{count}} new messages';
|
|
15
|
+
|
|
12
16
|
export type ScrollToBottomButtonProps = {
|
|
13
17
|
/** onPress handler */
|
|
14
18
|
onPress: () => void;
|
|
@@ -22,6 +26,10 @@ export const ScrollToBottomButton = (props: ScrollToBottomButtonProps) => {
|
|
|
22
26
|
const {
|
|
23
27
|
theme: { semantics },
|
|
24
28
|
} = useTheme();
|
|
29
|
+
const accessibilityLabelParams = React.useMemo(
|
|
30
|
+
() => (unreadCount ? { count: unreadCount } : undefined),
|
|
31
|
+
[unreadCount],
|
|
32
|
+
);
|
|
25
33
|
|
|
26
34
|
if (!showNotification) {
|
|
27
35
|
return null;
|
|
@@ -42,6 +50,12 @@ export const ScrollToBottomButton = (props: ScrollToBottomButtonProps) => {
|
|
|
42
50
|
]}
|
|
43
51
|
>
|
|
44
52
|
<Button
|
|
53
|
+
accessibilityLabelKey={
|
|
54
|
+
unreadCount
|
|
55
|
+
? SCROLL_TO_BOTTOM_WITH_COUNT_ACCESSIBILITY_LABEL_KEY
|
|
56
|
+
: SCROLL_TO_BOTTOM_ACCESSIBILITY_LABEL_KEY
|
|
57
|
+
}
|
|
58
|
+
accessibilityLabelParams={accessibilityLabelParams}
|
|
45
59
|
variant='secondary'
|
|
46
60
|
type='outline'
|
|
47
61
|
LeadingIcon={Down}
|
|
@@ -52,7 +66,11 @@ export const ScrollToBottomButton = (props: ScrollToBottomButtonProps) => {
|
|
|
52
66
|
/>
|
|
53
67
|
</View>
|
|
54
68
|
|
|
55
|
-
<View
|
|
69
|
+
<View
|
|
70
|
+
accessibilityElementsHidden
|
|
71
|
+
importantForAccessibility='no-hide-descendants'
|
|
72
|
+
style={styles.unreadCountNotificationContainer}
|
|
73
|
+
>
|
|
56
74
|
{unreadCount ? (
|
|
57
75
|
<BadgeNotification count={unreadCount} size='xs' type='primary' testID='unread-count' />
|
|
58
76
|
) : null}
|