stream-chat-react-native-core 9.2.0-beta.1 → 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.
Files changed (279) hide show
  1. package/lib/commonjs/a11y/hooks/useA11yLabel.js +4 -3
  2. package/lib/commonjs/a11y/hooks/useA11yLabel.js.map +1 -1
  3. package/lib/commonjs/a11y/hooks/useAccessibilityActivateAction.js +25 -0
  4. package/lib/commonjs/a11y/hooks/useAccessibilityActivateAction.js.map +1 -0
  5. package/lib/commonjs/a11y/index.js +11 -0
  6. package/lib/commonjs/a11y/index.js.map +1 -1
  7. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js +20 -0
  8. package/lib/commonjs/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  9. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js +1 -0
  10. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js.map +1 -1
  11. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +19 -2
  12. package/lib/commonjs/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  13. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerContent.js +2 -1
  14. package/lib/commonjs/components/AttachmentPicker/components/AttachmentPickerContent.js.map +1 -1
  15. package/lib/commonjs/components/AttachmentPicker/components/AttachmentTypePickerButton.js +9 -1
  16. package/lib/commonjs/components/AttachmentPicker/components/AttachmentTypePickerButton.js.map +1 -1
  17. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js +2 -2
  18. package/lib/commonjs/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  19. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  20. package/lib/commonjs/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  21. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  22. package/lib/commonjs/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  23. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js +16 -4
  24. package/lib/commonjs/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js.map +1 -1
  25. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -0
  26. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
  27. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +5 -0
  28. package/lib/commonjs/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  29. package/lib/commonjs/components/MessageInput/components/InputButtons/AttachButton.js +12 -3
  30. package/lib/commonjs/components/MessageInput/components/InputButtons/AttachButton.js.map +1 -1
  31. package/lib/commonjs/components/MessageInput/components/OutputButtons/EditButton.js +1 -0
  32. package/lib/commonjs/components/MessageInput/components/OutputButtons/EditButton.js.map +1 -1
  33. package/lib/commonjs/components/MessageInput/components/OutputButtons/SendButton.js +1 -0
  34. package/lib/commonjs/components/MessageInput/components/OutputButtons/SendButton.js.map +1 -1
  35. package/lib/commonjs/components/MessageList/MessageFlashList.js +19 -2
  36. package/lib/commonjs/components/MessageList/MessageFlashList.js.map +1 -1
  37. package/lib/commonjs/components/MessageList/MessageList.js +19 -2
  38. package/lib/commonjs/components/MessageList/MessageList.js.map +1 -1
  39. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js +12 -6
  40. package/lib/commonjs/components/MessageList/ScrollToBottomButton.js.map +1 -1
  41. package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js +1 -0
  42. package/lib/commonjs/components/MessageList/UnreadMessagesNotification.js.map +1 -1
  43. package/lib/commonjs/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js +47 -0
  44. package/lib/commonjs/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js.map +1 -0
  45. package/lib/commonjs/components/MessageMenu/MessageActionListItem.js +12 -4
  46. package/lib/commonjs/components/MessageMenu/MessageActionListItem.js.map +1 -1
  47. package/lib/commonjs/components/MessageMenu/MessageReactionPicker.js +1 -0
  48. package/lib/commonjs/components/MessageMenu/MessageReactionPicker.js.map +1 -1
  49. package/lib/commonjs/components/MessageMenu/ReactionButton.js +9 -6
  50. package/lib/commonjs/components/MessageMenu/ReactionButton.js.map +1 -1
  51. package/lib/commonjs/components/Poll/components/CreatePollHeader.js +2 -0
  52. package/lib/commonjs/components/Poll/components/CreatePollHeader.js.map +1 -1
  53. package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js +2 -0
  54. package/lib/commonjs/components/Poll/components/MultipleVotesSettings.js.map +1 -1
  55. package/lib/commonjs/components/Poll/components/PollModalHeader.js +1 -0
  56. package/lib/commonjs/components/Poll/components/PollModalHeader.js.map +1 -1
  57. package/lib/commonjs/components/Reply/Reply.js +1 -0
  58. package/lib/commonjs/components/Reply/Reply.js.map +1 -1
  59. package/lib/commonjs/components/ui/Avatar/Avatar.js +6 -3
  60. package/lib/commonjs/components/ui/Avatar/Avatar.js.map +1 -1
  61. package/lib/commonjs/components/ui/Button/Button.js +16 -3
  62. package/lib/commonjs/components/ui/Button/Button.js.map +1 -1
  63. package/lib/commonjs/contexts/accessibilityContext/AccessibilityContext.js +21 -1
  64. package/lib/commonjs/contexts/accessibilityContext/AccessibilityContext.js.map +1 -1
  65. package/lib/commonjs/i18n/en.json +35 -1
  66. package/lib/commonjs/i18n/es.json +35 -1
  67. package/lib/commonjs/i18n/fr.json +35 -1
  68. package/lib/commonjs/i18n/he.json +35 -1
  69. package/lib/commonjs/i18n/hi.json +35 -1
  70. package/lib/commonjs/i18n/it.json +35 -1
  71. package/lib/commonjs/i18n/ja.json +35 -1
  72. package/lib/commonjs/i18n/ko.json +35 -1
  73. package/lib/commonjs/i18n/nl.json +35 -1
  74. package/lib/commonjs/i18n/pt-br.json +35 -1
  75. package/lib/commonjs/i18n/ru.json +35 -1
  76. package/lib/commonjs/i18n/tr.json +35 -1
  77. package/lib/commonjs/mock-builders/DB/mock.js +3 -1
  78. package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
  79. package/lib/commonjs/test-utils/BetterSqlite.js +3 -2
  80. package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
  81. package/lib/commonjs/version.json +1 -1
  82. package/lib/module/a11y/hooks/useA11yLabel.js +4 -3
  83. package/lib/module/a11y/hooks/useA11yLabel.js.map +1 -1
  84. package/lib/module/a11y/hooks/useAccessibilityActivateAction.js +25 -0
  85. package/lib/module/a11y/hooks/useAccessibilityActivateAction.js.map +1 -0
  86. package/lib/module/a11y/index.js +11 -0
  87. package/lib/module/a11y/index.js.map +1 -1
  88. package/lib/module/components/AttachmentPicker/AttachmentPicker.js +20 -0
  89. package/lib/module/components/AttachmentPicker/AttachmentPicker.js.map +1 -1
  90. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js +1 -0
  91. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.js.map +1 -1
  92. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js +19 -2
  93. package/lib/module/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.js.map +1 -1
  94. package/lib/module/components/AttachmentPicker/components/AttachmentPickerContent.js +2 -1
  95. package/lib/module/components/AttachmentPicker/components/AttachmentPickerContent.js.map +1 -1
  96. package/lib/module/components/AttachmentPicker/components/AttachmentTypePickerButton.js +9 -1
  97. package/lib/module/components/AttachmentPicker/components/AttachmentTypePickerButton.js.map +1 -1
  98. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js +2 -2
  99. package/lib/module/components/ImageGallery/components/ImageGalleryFooter.js.map +1 -1
  100. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js +1 -1
  101. package/lib/module/components/ImageGallery/components/ImageGalleryHeader.js.map +1 -1
  102. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js +1 -1
  103. package/lib/module/components/ImageGallery/components/ImageGalleryVideoControl.js.map +1 -1
  104. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js +16 -4
  105. package/lib/module/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.js.map +1 -1
  106. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js +3 -0
  107. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecorder.js.map +1 -1
  108. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js +5 -0
  109. package/lib/module/components/MessageInput/components/AudioRecorder/AudioRecordingButton.js.map +1 -1
  110. package/lib/module/components/MessageInput/components/InputButtons/AttachButton.js +12 -3
  111. package/lib/module/components/MessageInput/components/InputButtons/AttachButton.js.map +1 -1
  112. package/lib/module/components/MessageInput/components/OutputButtons/EditButton.js +1 -0
  113. package/lib/module/components/MessageInput/components/OutputButtons/EditButton.js.map +1 -1
  114. package/lib/module/components/MessageInput/components/OutputButtons/SendButton.js +1 -0
  115. package/lib/module/components/MessageInput/components/OutputButtons/SendButton.js.map +1 -1
  116. package/lib/module/components/MessageList/MessageFlashList.js +19 -2
  117. package/lib/module/components/MessageList/MessageFlashList.js.map +1 -1
  118. package/lib/module/components/MessageList/MessageList.js +19 -2
  119. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  120. package/lib/module/components/MessageList/ScrollToBottomButton.js +12 -6
  121. package/lib/module/components/MessageList/ScrollToBottomButton.js.map +1 -1
  122. package/lib/module/components/MessageList/UnreadMessagesNotification.js +1 -0
  123. package/lib/module/components/MessageList/UnreadMessagesNotification.js.map +1 -1
  124. package/lib/module/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js +47 -0
  125. package/lib/module/components/MessageList/hooks/useScrollToBottomAccessibilityAction.js.map +1 -0
  126. package/lib/module/components/MessageMenu/MessageActionListItem.js +12 -4
  127. package/lib/module/components/MessageMenu/MessageActionListItem.js.map +1 -1
  128. package/lib/module/components/MessageMenu/MessageReactionPicker.js +1 -0
  129. package/lib/module/components/MessageMenu/MessageReactionPicker.js.map +1 -1
  130. package/lib/module/components/MessageMenu/ReactionButton.js +9 -6
  131. package/lib/module/components/MessageMenu/ReactionButton.js.map +1 -1
  132. package/lib/module/components/Poll/components/CreatePollHeader.js +2 -0
  133. package/lib/module/components/Poll/components/CreatePollHeader.js.map +1 -1
  134. package/lib/module/components/Poll/components/MultipleVotesSettings.js +2 -0
  135. package/lib/module/components/Poll/components/MultipleVotesSettings.js.map +1 -1
  136. package/lib/module/components/Poll/components/PollModalHeader.js +1 -0
  137. package/lib/module/components/Poll/components/PollModalHeader.js.map +1 -1
  138. package/lib/module/components/Reply/Reply.js +1 -0
  139. package/lib/module/components/Reply/Reply.js.map +1 -1
  140. package/lib/module/components/ui/Avatar/Avatar.js +6 -3
  141. package/lib/module/components/ui/Avatar/Avatar.js.map +1 -1
  142. package/lib/module/components/ui/Button/Button.js +16 -3
  143. package/lib/module/components/ui/Button/Button.js.map +1 -1
  144. package/lib/module/contexts/accessibilityContext/AccessibilityContext.js +21 -1
  145. package/lib/module/contexts/accessibilityContext/AccessibilityContext.js.map +1 -1
  146. package/lib/module/i18n/en.json +35 -1
  147. package/lib/module/i18n/es.json +35 -1
  148. package/lib/module/i18n/fr.json +35 -1
  149. package/lib/module/i18n/he.json +35 -1
  150. package/lib/module/i18n/hi.json +35 -1
  151. package/lib/module/i18n/it.json +35 -1
  152. package/lib/module/i18n/ja.json +35 -1
  153. package/lib/module/i18n/ko.json +35 -1
  154. package/lib/module/i18n/nl.json +35 -1
  155. package/lib/module/i18n/pt-br.json +35 -1
  156. package/lib/module/i18n/ru.json +35 -1
  157. package/lib/module/i18n/tr.json +35 -1
  158. package/lib/module/mock-builders/DB/mock.js +3 -1
  159. package/lib/module/mock-builders/DB/mock.js.map +1 -1
  160. package/lib/module/test-utils/BetterSqlite.js +3 -2
  161. package/lib/module/test-utils/BetterSqlite.js.map +1 -1
  162. package/lib/module/version.json +1 -1
  163. package/lib/typescript/a11y/a11yUtils.d.ts +3 -3
  164. package/lib/typescript/a11y/a11yUtils.d.ts.map +1 -1
  165. package/lib/typescript/a11y/hooks/useA11yLabel.d.ts +2 -1
  166. package/lib/typescript/a11y/hooks/useA11yLabel.d.ts.map +1 -1
  167. package/lib/typescript/a11y/hooks/useAccessibilityActivateAction.d.ts +17 -0
  168. package/lib/typescript/a11y/hooks/useAccessibilityActivateAction.d.ts.map +1 -0
  169. package/lib/typescript/a11y/index.d.ts +1 -0
  170. package/lib/typescript/a11y/index.d.ts.map +1 -1
  171. package/lib/typescript/components/AttachmentPicker/AttachmentPicker.d.ts.map +1 -1
  172. package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.d.ts.map +1 -1
  173. package/lib/typescript/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.d.ts.map +1 -1
  174. package/lib/typescript/components/AttachmentPicker/components/AttachmentPickerContent.d.ts.map +1 -1
  175. package/lib/typescript/components/AttachmentPicker/components/AttachmentTypePickerButton.d.ts +2 -1
  176. package/lib/typescript/components/AttachmentPicker/components/AttachmentTypePickerButton.d.ts.map +1 -1
  177. package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.d.ts +5 -2
  178. package/lib/typescript/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.d.ts.map +1 -1
  179. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecorder.d.ts.map +1 -1
  180. package/lib/typescript/components/MessageInput/components/AudioRecorder/AudioRecordingButton.d.ts.map +1 -1
  181. package/lib/typescript/components/MessageInput/components/InputButtons/AttachButton.d.ts +1 -0
  182. package/lib/typescript/components/MessageInput/components/InputButtons/AttachButton.d.ts.map +1 -1
  183. package/lib/typescript/components/MessageInput/components/OutputButtons/EditButton.d.ts.map +1 -1
  184. package/lib/typescript/components/MessageInput/components/OutputButtons/SendButton.d.ts.map +1 -1
  185. package/lib/typescript/components/MessageList/MessageFlashList.d.ts.map +1 -1
  186. package/lib/typescript/components/MessageList/MessageList.d.ts.map +1 -1
  187. package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts +2 -0
  188. package/lib/typescript/components/MessageList/ScrollToBottomButton.d.ts.map +1 -1
  189. package/lib/typescript/components/MessageList/UnreadMessagesNotification.d.ts.map +1 -1
  190. package/lib/typescript/components/MessageList/hooks/useScrollToBottomAccessibilityAction.d.ts +20 -0
  191. package/lib/typescript/components/MessageList/hooks/useScrollToBottomAccessibilityAction.d.ts.map +1 -0
  192. package/lib/typescript/components/MessageMenu/MessageActionListItem.d.ts.map +1 -1
  193. package/lib/typescript/components/MessageMenu/MessageReactionPicker.d.ts.map +1 -1
  194. package/lib/typescript/components/MessageMenu/ReactionButton.d.ts.map +1 -1
  195. package/lib/typescript/components/Poll/components/CreatePollHeader.d.ts.map +1 -1
  196. package/lib/typescript/components/Poll/components/MultipleVotesSettings.d.ts.map +1 -1
  197. package/lib/typescript/components/Poll/components/PollModalHeader.d.ts.map +1 -1
  198. package/lib/typescript/components/Reply/Reply.d.ts.map +1 -1
  199. package/lib/typescript/components/ui/Avatar/Avatar.d.ts.map +1 -1
  200. package/lib/typescript/components/ui/Button/Button.d.ts +10 -1
  201. package/lib/typescript/components/ui/Button/Button.d.ts.map +1 -1
  202. package/lib/typescript/contexts/accessibilityContext/AccessibilityContext.d.ts +1 -1
  203. package/lib/typescript/contexts/accessibilityContext/AccessibilityContext.d.ts.map +1 -1
  204. package/lib/typescript/i18n/en.json +35 -1
  205. package/lib/typescript/i18n/es.json +35 -1
  206. package/lib/typescript/i18n/fr.json +35 -1
  207. package/lib/typescript/i18n/he.json +35 -1
  208. package/lib/typescript/i18n/hi.json +35 -1
  209. package/lib/typescript/i18n/it.json +35 -1
  210. package/lib/typescript/i18n/ja.json +35 -1
  211. package/lib/typescript/i18n/ko.json +35 -1
  212. package/lib/typescript/i18n/nl.json +35 -1
  213. package/lib/typescript/i18n/pt-br.json +35 -1
  214. package/lib/typescript/i18n/ru.json +35 -1
  215. package/lib/typescript/i18n/tr.json +35 -1
  216. package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
  217. package/lib/typescript/utils/i18n/Streami18n.d.ts +34 -0
  218. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  219. package/package.json +1 -1
  220. package/src/__tests__/offline-support/offline-feature.tsx +40 -34
  221. package/src/a11y/a11yUtils.ts +2 -2
  222. package/src/a11y/hooks/useA11yLabel.ts +7 -4
  223. package/src/a11y/hooks/useAccessibilityActivateAction.ts +44 -0
  224. package/src/a11y/index.ts +1 -0
  225. package/src/components/AttachmentPicker/AttachmentPicker.tsx +23 -1
  226. package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentMediaPicker.tsx +1 -0
  227. package/src/components/AttachmentPicker/components/AttachmentMediaPicker/AttachmentPickerItem.tsx +15 -2
  228. package/src/components/AttachmentPicker/components/AttachmentPickerContent.tsx +1 -0
  229. package/src/components/AttachmentPicker/components/AttachmentTypePickerButton.tsx +9 -0
  230. package/src/components/ChannelList/__tests__/ChannelListView.test.tsx +16 -5
  231. package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +9 -3
  232. package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +4 -1
  233. package/src/components/ImageGallery/components/ImageGalleryFooter.tsx +2 -2
  234. package/src/components/ImageGallery/components/ImageGalleryHeader.tsx +1 -1
  235. package/src/components/ImageGallery/components/ImageGalleryVideoControl.tsx +1 -1
  236. package/src/components/MessageInput/components/AttachmentPreview/AttachmentRemoveControl.tsx +18 -2
  237. package/src/components/MessageInput/components/AudioRecorder/AudioRecorder.tsx +3 -0
  238. package/src/components/MessageInput/components/AudioRecorder/AudioRecordingButton.tsx +8 -1
  239. package/src/components/MessageInput/components/InputButtons/AttachButton.tsx +13 -3
  240. package/src/components/MessageInput/components/OutputButtons/EditButton.tsx +1 -0
  241. package/src/components/MessageInput/components/OutputButtons/SendButton.tsx +1 -0
  242. package/src/components/MessageList/MessageFlashList.tsx +23 -2
  243. package/src/components/MessageList/MessageList.tsx +23 -2
  244. package/src/components/MessageList/ScrollToBottomButton.tsx +18 -6
  245. package/src/components/MessageList/UnreadMessagesNotification.tsx +1 -0
  246. package/src/components/MessageList/__tests__/MessageList.test.tsx +186 -0
  247. package/src/components/MessageList/__tests__/ScrollToBottomButton.test.tsx +2 -2
  248. package/src/components/MessageList/__tests__/__snapshots__/ScrollToBottomButton.test.tsx.snap +2 -0
  249. package/src/components/MessageList/hooks/useScrollToBottomAccessibilityAction.ts +74 -0
  250. package/src/components/MessageMenu/MessageActionListItem.tsx +10 -4
  251. package/src/components/MessageMenu/MessageReactionPicker.tsx +1 -0
  252. package/src/components/MessageMenu/ReactionButton.tsx +7 -9
  253. package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +13 -15
  254. package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +20 -18
  255. package/src/components/MessageMenu/__tests__/ReactionButton.test.tsx +18 -5
  256. package/src/components/Poll/components/CreatePollHeader.tsx +2 -0
  257. package/src/components/Poll/components/MultipleVotesSettings.tsx +2 -0
  258. package/src/components/Poll/components/PollModalHeader.tsx +1 -0
  259. package/src/components/Reply/Reply.tsx +4 -1
  260. package/src/components/Thread/__tests__/__snapshots__/Thread.test.tsx.snap +3 -0
  261. package/src/components/ui/Avatar/Avatar.tsx +2 -1
  262. package/src/components/ui/Button/Button.tsx +26 -0
  263. package/src/components/ui/Button/__tests__/Button.test.tsx +44 -0
  264. package/src/contexts/accessibilityContext/AccessibilityContext.tsx +35 -1
  265. package/src/i18n/en.json +35 -1
  266. package/src/i18n/es.json +35 -1
  267. package/src/i18n/fr.json +35 -1
  268. package/src/i18n/he.json +35 -1
  269. package/src/i18n/hi.json +35 -1
  270. package/src/i18n/it.json +35 -1
  271. package/src/i18n/ja.json +35 -1
  272. package/src/i18n/ko.json +35 -1
  273. package/src/i18n/nl.json +35 -1
  274. package/src/i18n/pt-br.json +35 -1
  275. package/src/i18n/ru.json +35 -1
  276. package/src/i18n/tr.json +35 -1
  277. package/src/mock-builders/DB/mock.ts +2 -1
  278. package/src/test-utils/BetterSqlite.ts +3 -1
  279. package/src/version.json +1 -1
@@ -2,6 +2,8 @@ import React from 'react';
2
2
 
3
3
  import { Text } from 'react-native';
4
4
 
5
+ import type { ReactTestInstance } from 'react-test-renderer';
6
+
5
7
  import { fireEvent, render } from '@testing-library/react-native';
6
8
 
7
9
  import { ReactionResponse } from 'stream-chat';
@@ -39,6 +41,9 @@ const defaultProps = {
39
41
  supportedReactions: mockSupportedReactions,
40
42
  };
41
43
 
44
+ const filterReactionButtons = (buttons: ReactTestInstance[]) =>
45
+ buttons.filter((button) => button.props.accessibilityLabel !== 'more-reactions-button');
46
+
42
47
  const renderComponent = (props = {}) =>
43
48
  render(
44
49
  <ThemeProvider theme={defaultTheme}>
@@ -87,35 +92,32 @@ describe('MessageUserReactions when the supportedReactions are defined', () => {
87
92
  });
88
93
 
89
94
  it('renders reaction buttons', () => {
90
- const { getByLabelText } = renderComponent();
91
- const likeReactionButton = getByLabelText('reaction-button-like-unselected');
92
- expect(likeReactionButton).toBeDefined();
93
- const loveReactionButton = getByLabelText('reaction-button-love-unselected');
94
- expect(loveReactionButton).toBeDefined();
95
+ const { getAllByRole } = renderComponent();
96
+ expect(filterReactionButtons(getAllByRole('button'))).toHaveLength(2);
95
97
  });
96
98
 
97
99
  it('starts with no reaction filter selected by default', () => {
98
- const { getAllByLabelText } = renderComponent();
99
- const reactionButtons = getAllByLabelText(/\breaction-button[^\s]+/);
100
- expect(reactionButtons[0].props.accessibilityLabel).toBe('reaction-button-like-unselected');
101
- expect(reactionButtons[1].props.accessibilityLabel).toBe('reaction-button-love-unselected');
100
+ const { getAllByRole } = renderComponent();
101
+ const reactionButtons = filterReactionButtons(getAllByRole('button'));
102
+ expect(reactionButtons[0].props.accessibilityState.selected).toBe(false);
103
+ expect(reactionButtons[1].props.accessibilityState.selected).toBe(false);
102
104
  });
103
105
 
104
106
  it('toggles the selected reaction when a reaction button is pressed twice', () => {
105
- const { getAllByLabelText } = renderComponent();
106
- let reactionButtons = getAllByLabelText(/\breaction-button[^\s]+/);
107
+ const { getAllByRole } = renderComponent();
108
+ let reactionButtons = filterReactionButtons(getAllByRole('button'));
107
109
 
108
110
  fireEvent.press(reactionButtons[1]);
109
111
 
110
- expect(reactionButtons[0].props.accessibilityLabel).toBe('reaction-button-like-unselected');
111
- expect(reactionButtons[1].props.accessibilityLabel).toBe('reaction-button-love-selected');
112
+ expect(reactionButtons[0].props.accessibilityState.selected).toBe(false);
113
+ expect(reactionButtons[1].props.accessibilityState.selected).toBe(true);
112
114
 
113
115
  fireEvent.press(reactionButtons[1]);
114
116
 
115
- reactionButtons = getAllByLabelText(/\breaction-button[^\s]+/);
117
+ reactionButtons = filterReactionButtons(getAllByRole('button'));
116
118
 
117
- expect(reactionButtons[0].props.accessibilityLabel).toBe('reaction-button-like-unselected');
118
- expect(reactionButtons[1].props.accessibilityLabel).toBe('reaction-button-love-unselected');
119
+ expect(reactionButtons[0].props.accessibilityState.selected).toBe(false);
120
+ expect(reactionButtons[1].props.accessibilityState.selected).toBe(false);
119
121
  });
120
122
 
121
123
  it('renders reactions list', () => {
@@ -133,10 +135,10 @@ describe('MessageUserReactions when the supportedReactions are defined', () => {
133
135
  });
134
136
 
135
137
  it("don't render reaction buttons that is of unsupported type", () => {
136
- const { queryAllByLabelText } = renderComponent({
138
+ const { queryAllByRole } = renderComponent({
137
139
  message: { ...generateMessage(), reaction_groups: { money: 1 } },
138
140
  });
139
- const reactionButtons = queryAllByLabelText(/\breaction-button[^\s]+/);
141
+ const reactionButtons = filterReactionButtons(queryAllByRole('button'));
140
142
 
141
143
  expect(reactionButtons.length).toBe(0);
142
144
  });
@@ -2,8 +2,9 @@ import React from 'react';
2
2
 
3
3
  import { Text } from 'react-native';
4
4
 
5
- import { cleanup, fireEvent, render } from '@testing-library/react-native';
5
+ import { cleanup, fireEvent, render, screen, waitFor } from '@testing-library/react-native';
6
6
 
7
+ import { OverlayProvider } from '../../../contexts/overlayContext/OverlayProvider';
7
8
  import { ThemeProvider } from '../../../contexts/themeContext/ThemeContext';
8
9
  import { defaultTheme } from '../../../contexts/themeContext/utils/theme';
9
10
  import { IconProps } from '../../../icons';
@@ -37,28 +38,40 @@ describe('ReactionButton', () => {
37
38
  expect(getByText('24')).toBeTruthy();
38
39
  });
39
40
 
41
+ it('uses the released reaction button label when accessibility labels are translated', async () => {
42
+ render(
43
+ <OverlayProvider accessibility={{ enabled: true }}>
44
+ <ReactionButton {...defaultProps} />
45
+ </OverlayProvider>,
46
+ );
47
+
48
+ await waitFor(() => {
49
+ expect(screen.getByLabelText('reaction-button-like-unselected')).toBeTruthy();
50
+ });
51
+ });
52
+
40
53
  it('should call onPress function with the correct reaction type when pressed', () => {
41
- const { getByLabelText } = render(
54
+ const { getByRole } = render(
42
55
  <ThemeProvider theme={defaultTheme}>
43
56
  <ReactionButton {...defaultProps} />
44
57
  </ThemeProvider>,
45
58
  );
46
59
 
47
60
  // Simulate a press event
48
- fireEvent.press(getByLabelText('reaction-button-like-unselected'));
61
+ fireEvent.press(getByRole('button'));
49
62
 
50
63
  // Verify if the mock function has been called with the correct reaction type
51
64
  expect(mockOnPress).toHaveBeenCalledWith('like');
52
65
  });
53
66
 
54
67
  it('should not call onPress when the onPress prop is not provided', () => {
55
- const { getByLabelText } = render(
68
+ const { getByRole } = render(
56
69
  <ThemeProvider theme={defaultTheme}>
57
70
  <ReactionButton {...defaultProps} onPress={undefined} />
58
71
  </ThemeProvider>,
59
72
  );
60
73
 
61
- fireEvent.press(getByLabelText('reaction-button-like-unselected'));
74
+ fireEvent.press(getByRole('button'));
62
75
 
63
76
  expect(mockOnPress).not.toHaveBeenCalled();
64
77
  });
@@ -51,6 +51,7 @@ export const CreatePollHeader = ({
51
51
  return (
52
52
  <View style={[styles.headerContainer, headerContainer]}>
53
53
  <Button
54
+ accessibilityLabelKey='a11y/Close poll creation'
54
55
  variant='secondary'
55
56
  onPress={onBackPressHandler}
56
57
  type='solid'
@@ -63,6 +64,7 @@ export const CreatePollHeader = ({
63
64
  </Text>
64
65
 
65
66
  <Button
67
+ accessibilityLabelKey='a11y/Create poll'
66
68
  variant='primary'
67
69
  onPress={onCreatePollPressHandler}
68
70
  type='solid'
@@ -163,6 +163,7 @@ export const MultipleVotesSettings = () => {
163
163
  style={[styles.row, multipleAnswers.row]}
164
164
  >
165
165
  <Button
166
+ accessibilityLabelKey='a11y/Decrease maximum votes'
166
167
  variant='secondary'
167
168
  type='outline'
168
169
  size='md'
@@ -175,6 +176,7 @@ export const MultipleVotesSettings = () => {
175
176
  />
176
177
  <MaxVotesTextInput />
177
178
  <Button
179
+ accessibilityLabelKey='a11y/Increase maximum votes'
178
180
  variant='secondary'
179
181
  type='outline'
180
182
  size='md'
@@ -25,6 +25,7 @@ export const PollModalHeader = ({ onPress, title }: PollModalHeaderProps) => {
25
25
  <View style={[styles.container, container]}>
26
26
  <View style={styles.sideContainer}>
27
27
  <Button
28
+ accessibilityLabelKey='a11y/Close poll'
28
29
  variant='secondary'
29
30
  type='solid'
30
31
  size='md'
@@ -170,7 +170,10 @@ export const ReplyWithContext = (props: ReplyPropsWithContext) => {
170
170
  </View>
171
171
  {onDismiss ? (
172
172
  <View style={[styles.dismissWrapper, dismissWrapper, stylesProp?.dismissWrapper]}>
173
- <AttachmentRemoveControl onPress={onDismiss} />
173
+ <AttachmentRemoveControl
174
+ accessibilityLabelKey={mode === 'edit' ? 'a11y/Remove edit' : 'a11y/Remove reply'}
175
+ onPress={onDismiss}
176
+ />
174
177
  </View>
175
178
  ) : null}
176
179
  </View>
@@ -1734,6 +1734,9 @@ exports[`Thread should match thread snapshot 1`] = `
1734
1734
  </View>
1735
1735
  </RCTScrollView>
1736
1736
  <View
1737
+ accessibilityElementsHidden={true}
1738
+ accessible={false}
1739
+ importantForAccessibility="no-hide-descendants"
1737
1740
  style={
1738
1741
  {
1739
1742
  "left": 0,
@@ -46,7 +46,8 @@ export const Avatar = (props: AvatarProps) => {
46
46
  style,
47
47
  } = props;
48
48
  const styles = useStyles();
49
- const composedLabel = useA11yLabel('a11y/Avatar of {{name}}', { name: name ?? '' });
49
+ const accessibilityLabelParams = useMemo(() => ({ name: name ?? '' }), [name]);
50
+ const composedLabel = useA11yLabel('a11y/Avatar of {{name}}', accessibilityLabelParams);
50
51
  const accessibilityLabel = accessibilityLabelOverride ?? (name ? composedLabel : undefined);
51
52
 
52
53
  const onHandleError = useCallback(() => {
@@ -6,6 +6,8 @@ import { Pressable, PressableProps } from 'react-native-gesture-handler';
6
6
  import { buttonPadding, buttonSizes } from './constants';
7
7
  import { useButtonStyles } from './hooks/useButtonStyles';
8
8
 
9
+ import { useA11yLabel } from '../../../a11y/hooks/useA11yLabel';
10
+ import { useAccessibilityActivateAction } from '../../../a11y/hooks/useAccessibilityActivateAction';
9
11
  import { useTheme } from '../../../contexts/themeContext/ThemeContext';
10
12
  import { IconProps } from '../../../icons/utils/base';
11
13
  import { primitives } from '../../../theme';
@@ -34,6 +36,15 @@ const getButtonAccessibilityState = ({
34
36
  };
35
37
 
36
38
  export type ButtonProps = PressableProps & {
39
+ /**
40
+ * Translation key used for the button's accessibility label when SDK
41
+ * accessibility is enabled. Prefer this for SDK-owned icon-only buttons.
42
+ */
43
+ accessibilityLabelKey?: string;
44
+ /**
45
+ * Optional interpolation params for `accessibilityLabelKey`.
46
+ */
47
+ accessibilityLabelParams?: Record<string, unknown>;
37
48
  /**
38
49
  * The style of the button.
39
50
  */
@@ -74,6 +85,9 @@ export type ButtonProps = PressableProps & {
74
85
  };
75
86
 
76
87
  export const Button = ({
88
+ accessibilityLabel,
89
+ accessibilityLabelKey,
90
+ accessibilityLabelParams,
77
91
  variant,
78
92
  type,
79
93
  selected = false,
@@ -100,6 +114,15 @@ export const Button = ({
100
114
  const IconOnlyIcon = LeadingIcon ?? TrailingIcon;
101
115
  const PrimaryIcon = iconOnly ? IconOnlyIcon : LeftIcon;
102
116
  const accessibilityState = getButtonAccessibilityState({ disabled: !!disabled, selected });
117
+ const translatedAccessibilityLabel = useA11yLabel(
118
+ accessibilityLabelKey ?? '',
119
+ accessibilityLabelParams,
120
+ );
121
+ const resolvedAccessibilityLabel = translatedAccessibilityLabel ?? accessibilityLabel;
122
+ const accessibilityActivateActionProps = useAccessibilityActivateAction({
123
+ onPress: rest.onPress,
124
+ shouldHandleActivate: !!rest.onPress && !disabled && !!resolvedAccessibilityLabel,
125
+ });
103
126
 
104
127
  return (
105
128
  <View
@@ -119,6 +142,8 @@ export const Button = ({
119
142
  onLayout={onLayout}
120
143
  >
121
144
  <Pressable
145
+ accessible
146
+ accessibilityLabel={resolvedAccessibilityLabel}
122
147
  accessibilityRole='button'
123
148
  accessibilityState={accessibilityState}
124
149
  style={({ pressed }) => [
@@ -133,6 +158,7 @@ export const Button = ({
133
158
  styles.container,
134
159
  ]}
135
160
  disabled={disabled}
161
+ {...accessibilityActivateActionProps}
136
162
  {...rest}
137
163
  >
138
164
  {PrimaryIcon ? (
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+
3
+ import { render, screen, waitFor } from '@testing-library/react-native';
4
+
5
+ import { OverlayProvider } from '../../../../contexts';
6
+ import { Button } from '../Button';
7
+
8
+ describe('Button accessibilityLabelKey', () => {
9
+ it('uses the translated accessibility label when accessibility is enabled', async () => {
10
+ render(
11
+ <OverlayProvider accessibility={{ enabled: true }}>
12
+ <Button
13
+ accessibilityLabelKey='a11y/Add attachment'
14
+ iconOnly
15
+ onPress={jest.fn()}
16
+ size='md'
17
+ type='outline'
18
+ variant='secondary'
19
+ />
20
+ </OverlayProvider>,
21
+ );
22
+
23
+ await waitFor(() => {
24
+ expect(screen.getByLabelText('Add attachment')).toBeTruthy();
25
+ });
26
+ });
27
+
28
+ it('supports a plain accessibilityLabel without the translation path', () => {
29
+ render(
30
+ <OverlayProvider>
31
+ <Button
32
+ accessibilityLabel='Legacy label'
33
+ iconOnly
34
+ onPress={jest.fn()}
35
+ size='md'
36
+ type='outline'
37
+ variant='secondary'
38
+ />
39
+ </OverlayProvider>,
40
+ );
41
+
42
+ expect(screen.getByLabelText('Legacy label')).toBeTruthy();
43
+ });
44
+ });
@@ -162,4 +162,38 @@ export const AccessibilityProvider = ({
162
162
  );
163
163
  };
164
164
 
165
- export const useAccessibilityContext = () => useContext(AccessibilityContext);
165
+ export const useAccessibilityContext = (): ResolvedAccessibilityConfig => {
166
+ const {
167
+ announceConnectionState,
168
+ announceNewMessages,
169
+ announceTypingIndicator,
170
+ audioRecorderTapMode,
171
+ enabled,
172
+ forceScreenReaderMode,
173
+ imageGalleryScreenReaderMode,
174
+ messageActionsTrigger,
175
+ } = useContext(AccessibilityContext);
176
+
177
+ return useMemo(
178
+ () => ({
179
+ announceConnectionState,
180
+ announceNewMessages,
181
+ announceTypingIndicator,
182
+ audioRecorderTapMode,
183
+ enabled,
184
+ forceScreenReaderMode,
185
+ imageGalleryScreenReaderMode,
186
+ messageActionsTrigger,
187
+ }),
188
+ [
189
+ announceConnectionState,
190
+ announceNewMessages,
191
+ announceTypingIndicator,
192
+ audioRecorderTapMode,
193
+ enabled,
194
+ forceScreenReaderMode,
195
+ imageGalleryScreenReaderMode,
196
+ messageActionsTrigger,
197
+ ],
198
+ );
199
+ };
package/src/i18n/en.json CHANGED
@@ -252,11 +252,45 @@
252
252
  "a11y/Read": "Read",
253
253
  "a11y/Reconnecting": "Reconnecting",
254
254
  "a11y/Reply to {{user}}": "Reply to {{user}}",
255
+ "a11y/Remove edit": "Remove edit",
256
+ "a11y/Remove reply": "Remove reply",
257
+ "a11y/Scroll to bottom": "Scroll to bottom",
258
+ "a11y/Scroll to bottom, {{count}} new messages": "Scroll to bottom, {{count}} new messages",
255
259
  "a11y/Scroll to latest": "Scroll to latest",
256
260
  "a11y/Scroll to latest, {{count}} unread": "Scroll to latest, {{count}} unread",
257
261
  "a11y/Send message": "Send message",
258
262
  "a11y/Sending": "Sending",
259
263
  "a11y/Sent": "Sent",
260
264
  "a11y/Voice message recording. Hold to record.": "Voice message recording. Hold to record.",
261
- "a11y/{{count}} new messages": "{{count}} new messages"
265
+ "a11y/{{count}} new messages": "{{count}} new messages",
266
+ "a11y/Add attachment": "Add attachment",
267
+ "a11y/Close attachments": "Close attachments",
268
+ "a11y/Remove attachment": "Remove Attachment",
269
+ "a11y/Close poll": "Close poll",
270
+ "a11y/Close poll creation": "Close poll creation",
271
+ "a11y/Create poll": "Create poll",
272
+ "a11y/Decrease maximum votes": "Decrease maximum votes",
273
+ "a11y/Delete voice recording": "Delete voice recording",
274
+ "a11y/Deselect image": "Deselect image",
275
+ "a11y/Deselect video": "Deselect video",
276
+ "a11y/Dismiss unread messages": "Dismiss unread messages",
277
+ "a11y/Grid Icon": "Grid Icon",
278
+ "a11y/Hide Overlay": "Hide Overlay",
279
+ "a11y/Increase maximum votes": "Increase maximum votes",
280
+ "a11y/Open camera": "Open camera",
281
+ "a11y/Open commands": "Open commands",
282
+ "a11y/Open file picker": "Open file picker",
283
+ "a11y/Open more reactions": "Open more reactions",
284
+ "a11y/Open photo picker": "Open photo picker",
285
+ "a11y/Open poll creation": "Open poll creation",
286
+ "a11y/Open video recorder": "Open video recorder",
287
+ "a11y/Play Pause Button": "Play Pause Button",
288
+ "a11y/reaction-button-{{type}}-{{selected}}": "reaction-button-{{type}}-{{selected}}",
289
+ "a11y/Save edited message": "Save edited message",
290
+ "a11y/Select image": "Select image",
291
+ "a11y/Select video": "Select video",
292
+ "a11y/Send voice recording": "Send voice recording",
293
+ "a11y/Share Button": "Share Button",
294
+ "a11y/Start voice recording": "Start voice recording",
295
+ "a11y/Stop voice recording": "Stop voice recording"
262
296
  }
package/src/i18n/es.json CHANGED
@@ -252,11 +252,45 @@
252
252
  "a11y/Read": "Leído",
253
253
  "a11y/Reconnecting": "Reconectando",
254
254
  "a11y/Reply to {{user}}": "Responder a {{user}}",
255
+ "a11y/Remove edit": "Eliminar edición",
256
+ "a11y/Remove reply": "Eliminar respuesta",
257
+ "a11y/Scroll to bottom": "Ir al final",
258
+ "a11y/Scroll to bottom, {{count}} new messages": "Ir al final, {{count}} mensajes nuevos",
255
259
  "a11y/Scroll to latest": "Ir al último mensaje",
256
260
  "a11y/Scroll to latest, {{count}} unread": "Ir al último mensaje, {{count}} sin leer",
257
261
  "a11y/Send message": "Enviar mensaje",
258
262
  "a11y/Sending": "Enviando",
259
263
  "a11y/Sent": "Enviado",
260
264
  "a11y/Voice message recording. Hold to record.": "Grabación de mensaje de voz. Mantén pulsado para grabar.",
261
- "a11y/{{count}} new messages": "{{count}} mensajes nuevos"
265
+ "a11y/{{count}} new messages": "{{count}} mensajes nuevos",
266
+ "a11y/Add attachment": "Add attachment",
267
+ "a11y/Close attachments": "Close attachments",
268
+ "a11y/Remove attachment": "Remove Attachment",
269
+ "a11y/Close poll": "Close poll",
270
+ "a11y/Close poll creation": "Close poll creation",
271
+ "a11y/Create poll": "Create poll",
272
+ "a11y/Decrease maximum votes": "Decrease maximum votes",
273
+ "a11y/Delete voice recording": "Delete voice recording",
274
+ "a11y/Deselect image": "Deselect image",
275
+ "a11y/Deselect video": "Deselect video",
276
+ "a11y/Dismiss unread messages": "Dismiss unread messages",
277
+ "a11y/Grid Icon": "Grid Icon",
278
+ "a11y/Hide Overlay": "Hide Overlay",
279
+ "a11y/Increase maximum votes": "Increase maximum votes",
280
+ "a11y/Open camera": "Open camera",
281
+ "a11y/Open commands": "Open commands",
282
+ "a11y/Open file picker": "Open file picker",
283
+ "a11y/Open more reactions": "Open more reactions",
284
+ "a11y/Open photo picker": "Open photo picker",
285
+ "a11y/Open poll creation": "Open poll creation",
286
+ "a11y/Open video recorder": "Open video recorder",
287
+ "a11y/Play Pause Button": "Play Pause Button",
288
+ "a11y/reaction-button-{{type}}-{{selected}}": "reaction-button-{{type}}-{{selected}}",
289
+ "a11y/Save edited message": "Save edited message",
290
+ "a11y/Select image": "Select image",
291
+ "a11y/Select video": "Select video",
292
+ "a11y/Send voice recording": "Send voice recording",
293
+ "a11y/Share Button": "Share Button",
294
+ "a11y/Start voice recording": "Start voice recording",
295
+ "a11y/Stop voice recording": "Stop voice recording"
262
296
  }
package/src/i18n/fr.json CHANGED
@@ -252,11 +252,45 @@
252
252
  "a11y/Read": "Lu",
253
253
  "a11y/Reconnecting": "Reconnexion",
254
254
  "a11y/Reply to {{user}}": "Répondre à {{user}}",
255
+ "a11y/Remove edit": "Supprimer la modification",
256
+ "a11y/Remove reply": "Supprimer la réponse",
257
+ "a11y/Scroll to bottom": "Aller en bas",
258
+ "a11y/Scroll to bottom, {{count}} new messages": "Aller en bas, {{count}} nouveaux messages",
255
259
  "a11y/Scroll to latest": "Aller au dernier message",
256
260
  "a11y/Scroll to latest, {{count}} unread": "Aller au dernier message, {{count}} non lus",
257
261
  "a11y/Send message": "Envoyer le message",
258
262
  "a11y/Sending": "Envoi",
259
263
  "a11y/Sent": "Envoyé",
260
264
  "a11y/Voice message recording. Hold to record.": "Enregistrement d'un message vocal. Maintenez appuyé pour enregistrer.",
261
- "a11y/{{count}} new messages": "{{count}} nouveaux messages"
265
+ "a11y/{{count}} new messages": "{{count}} nouveaux messages",
266
+ "a11y/Add attachment": "Add attachment",
267
+ "a11y/Close attachments": "Close attachments",
268
+ "a11y/Remove attachment": "Remove Attachment",
269
+ "a11y/Close poll": "Close poll",
270
+ "a11y/Close poll creation": "Close poll creation",
271
+ "a11y/Create poll": "Create poll",
272
+ "a11y/Decrease maximum votes": "Decrease maximum votes",
273
+ "a11y/Delete voice recording": "Delete voice recording",
274
+ "a11y/Deselect image": "Deselect image",
275
+ "a11y/Deselect video": "Deselect video",
276
+ "a11y/Dismiss unread messages": "Dismiss unread messages",
277
+ "a11y/Grid Icon": "Grid Icon",
278
+ "a11y/Hide Overlay": "Hide Overlay",
279
+ "a11y/Increase maximum votes": "Increase maximum votes",
280
+ "a11y/Open camera": "Open camera",
281
+ "a11y/Open commands": "Open commands",
282
+ "a11y/Open file picker": "Open file picker",
283
+ "a11y/Open more reactions": "Open more reactions",
284
+ "a11y/Open photo picker": "Open photo picker",
285
+ "a11y/Open poll creation": "Open poll creation",
286
+ "a11y/Open video recorder": "Open video recorder",
287
+ "a11y/Play Pause Button": "Play Pause Button",
288
+ "a11y/reaction-button-{{type}}-{{selected}}": "reaction-button-{{type}}-{{selected}}",
289
+ "a11y/Save edited message": "Save edited message",
290
+ "a11y/Select image": "Select image",
291
+ "a11y/Select video": "Select video",
292
+ "a11y/Send voice recording": "Send voice recording",
293
+ "a11y/Share Button": "Share Button",
294
+ "a11y/Start voice recording": "Start voice recording",
295
+ "a11y/Stop voice recording": "Stop voice recording"
262
296
  }
package/src/i18n/he.json CHANGED
@@ -252,11 +252,45 @@
252
252
  "a11y/Read": "נקרא",
253
253
  "a11y/Reconnecting": "מתחבר מחדש",
254
254
  "a11y/Reply to {{user}}": "השב ל-{{user}}",
255
+ "a11y/Remove edit": "הסר עריכה",
256
+ "a11y/Remove reply": "הסר תגובה",
257
+ "a11y/Scroll to bottom": "גלול לתחתית",
258
+ "a11y/Scroll to bottom, {{count}} new messages": "גלול לתחתית, {{count}} הודעות חדשות",
255
259
  "a11y/Scroll to latest": "גלול להודעה האחרונה",
256
260
  "a11y/Scroll to latest, {{count}} unread": "גלול להודעה האחרונה, {{count}} לא נקראו",
257
261
  "a11y/Send message": "שלח הודעה",
258
262
  "a11y/Sending": "שולח",
259
263
  "a11y/Sent": "נשלח",
260
264
  "a11y/Voice message recording. Hold to record.": "הקלטת הודעה קולית. החזק כדי להקליט.",
261
- "a11y/{{count}} new messages": "{{count}} הודעות חדשות"
265
+ "a11y/{{count}} new messages": "{{count}} הודעות חדשות",
266
+ "a11y/Add attachment": "Add attachment",
267
+ "a11y/Close attachments": "Close attachments",
268
+ "a11y/Remove attachment": "Remove Attachment",
269
+ "a11y/Close poll": "Close poll",
270
+ "a11y/Close poll creation": "Close poll creation",
271
+ "a11y/Create poll": "Create poll",
272
+ "a11y/Decrease maximum votes": "Decrease maximum votes",
273
+ "a11y/Delete voice recording": "Delete voice recording",
274
+ "a11y/Deselect image": "Deselect image",
275
+ "a11y/Deselect video": "Deselect video",
276
+ "a11y/Dismiss unread messages": "Dismiss unread messages",
277
+ "a11y/Grid Icon": "Grid Icon",
278
+ "a11y/Hide Overlay": "Hide Overlay",
279
+ "a11y/Increase maximum votes": "Increase maximum votes",
280
+ "a11y/Open camera": "Open camera",
281
+ "a11y/Open commands": "Open commands",
282
+ "a11y/Open file picker": "Open file picker",
283
+ "a11y/Open more reactions": "Open more reactions",
284
+ "a11y/Open photo picker": "Open photo picker",
285
+ "a11y/Open poll creation": "Open poll creation",
286
+ "a11y/Open video recorder": "Open video recorder",
287
+ "a11y/Play Pause Button": "Play Pause Button",
288
+ "a11y/reaction-button-{{type}}-{{selected}}": "reaction-button-{{type}}-{{selected}}",
289
+ "a11y/Save edited message": "Save edited message",
290
+ "a11y/Select image": "Select image",
291
+ "a11y/Select video": "Select video",
292
+ "a11y/Send voice recording": "Send voice recording",
293
+ "a11y/Share Button": "Share Button",
294
+ "a11y/Start voice recording": "Start voice recording",
295
+ "a11y/Stop voice recording": "Stop voice recording"
262
296
  }
package/src/i18n/hi.json CHANGED
@@ -252,11 +252,45 @@
252
252
  "a11y/Read": "पढ़ा गया",
253
253
  "a11y/Reconnecting": "फिर से कनेक्ट हो रहा है",
254
254
  "a11y/Reply to {{user}}": "{{user}} को जवाब दें",
255
+ "a11y/Remove edit": "संपादन हटाएं",
256
+ "a11y/Remove reply": "जवाब हटाएं",
257
+ "a11y/Scroll to bottom": "नीचे स्क्रॉल करें",
258
+ "a11y/Scroll to bottom, {{count}} new messages": "नीचे स्क्रॉल करें, {{count}} नए संदेश",
255
259
  "a11y/Scroll to latest": "नवीनतम संदेश पर जाएं",
256
260
  "a11y/Scroll to latest, {{count}} unread": "नवीनतम संदेश पर जाएं, {{count}} अपठित",
257
261
  "a11y/Send message": "संदेश भेजें",
258
262
  "a11y/Sending": "भेजा जा रहा है",
259
263
  "a11y/Sent": "भेजा गया",
260
264
  "a11y/Voice message recording. Hold to record.": "वॉइस संदेश रिकॉर्डिंग। रिकॉर्ड करने के लिए दबाकर रखें।",
261
- "a11y/{{count}} new messages": "{{count}} नए संदेश"
265
+ "a11y/{{count}} new messages": "{{count}} नए संदेश",
266
+ "a11y/Add attachment": "Add attachment",
267
+ "a11y/Close attachments": "Close attachments",
268
+ "a11y/Remove attachment": "Remove Attachment",
269
+ "a11y/Close poll": "Close poll",
270
+ "a11y/Close poll creation": "Close poll creation",
271
+ "a11y/Create poll": "Create poll",
272
+ "a11y/Decrease maximum votes": "Decrease maximum votes",
273
+ "a11y/Delete voice recording": "Delete voice recording",
274
+ "a11y/Deselect image": "Deselect image",
275
+ "a11y/Deselect video": "Deselect video",
276
+ "a11y/Dismiss unread messages": "Dismiss unread messages",
277
+ "a11y/Grid Icon": "Grid Icon",
278
+ "a11y/Hide Overlay": "Hide Overlay",
279
+ "a11y/Increase maximum votes": "Increase maximum votes",
280
+ "a11y/Open camera": "Open camera",
281
+ "a11y/Open commands": "Open commands",
282
+ "a11y/Open file picker": "Open file picker",
283
+ "a11y/Open more reactions": "Open more reactions",
284
+ "a11y/Open photo picker": "Open photo picker",
285
+ "a11y/Open poll creation": "Open poll creation",
286
+ "a11y/Open video recorder": "Open video recorder",
287
+ "a11y/Play Pause Button": "Play Pause Button",
288
+ "a11y/reaction-button-{{type}}-{{selected}}": "reaction-button-{{type}}-{{selected}}",
289
+ "a11y/Save edited message": "Save edited message",
290
+ "a11y/Select image": "Select image",
291
+ "a11y/Select video": "Select video",
292
+ "a11y/Send voice recording": "Send voice recording",
293
+ "a11y/Share Button": "Share Button",
294
+ "a11y/Start voice recording": "Start voice recording",
295
+ "a11y/Stop voice recording": "Stop voice recording"
262
296
  }