stream-chat-react-native-core 9.4.0-beta.6 → 9.4.0-beta.7

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 (170) hide show
  1. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +2 -1
  2. package/lib/commonjs/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -1
  3. package/lib/commonjs/components/ChannelList/ChannelList.js +4 -1
  4. package/lib/commonjs/components/ChannelList/ChannelList.js.map +1 -1
  5. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js +5 -3
  6. package/lib/commonjs/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  7. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js +3 -0
  8. package/lib/commonjs/components/ChannelPreview/ChannelPreview.js.map +1 -1
  9. package/lib/commonjs/components/ChannelPreview/ChannelPreviewPinnedStatus.js +30 -0
  10. package/lib/commonjs/components/ChannelPreview/ChannelPreviewPinnedStatus.js.map +1 -0
  11. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js +8 -3
  12. package/lib/commonjs/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  13. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js +2 -1
  14. package/lib/commonjs/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  15. package/lib/commonjs/components/ChannelPreview/hooks/index.js +11 -0
  16. package/lib/commonjs/components/ChannelPreview/hooks/index.js.map +1 -1
  17. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js +3 -0
  18. package/lib/commonjs/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
  19. package/lib/commonjs/components/ChannelPreview/hooks/useIsChannelPinned.js +11 -0
  20. package/lib/commonjs/components/ChannelPreview/hooks/useIsChannelPinned.js.map +1 -0
  21. package/lib/commonjs/components/index.js +11 -0
  22. package/lib/commonjs/components/index.js.map +1 -1
  23. package/lib/commonjs/contexts/channelsContext/ChannelsContext.js.map +1 -1
  24. package/lib/commonjs/contexts/componentsContext/defaultComponents.js +2 -0
  25. package/lib/commonjs/contexts/componentsContext/defaultComponents.js.map +1 -1
  26. package/lib/commonjs/contexts/themeContext/utils/theme.js +1 -0
  27. package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
  28. package/lib/commonjs/hooks/actions/useChannelActionItems.js +20 -1
  29. package/lib/commonjs/hooks/actions/useChannelActionItems.js.map +1 -1
  30. package/lib/commonjs/hooks/actions/useChannelActionItemsById.js +3 -1
  31. package/lib/commonjs/hooks/actions/useChannelActionItemsById.js.map +1 -1
  32. package/lib/commonjs/i18n/ar.json +6 -1
  33. package/lib/commonjs/i18n/en.json +5 -0
  34. package/lib/commonjs/i18n/es.json +6 -1
  35. package/lib/commonjs/i18n/fr.json +6 -1
  36. package/lib/commonjs/i18n/he.json +6 -1
  37. package/lib/commonjs/i18n/hi.json +6 -1
  38. package/lib/commonjs/i18n/it.json +6 -1
  39. package/lib/commonjs/i18n/ja.json +6 -1
  40. package/lib/commonjs/i18n/ko.json +6 -1
  41. package/lib/commonjs/i18n/nl.json +6 -1
  42. package/lib/commonjs/i18n/pt-br.json +6 -1
  43. package/lib/commonjs/i18n/ru.json +6 -1
  44. package/lib/commonjs/i18n/tr.json +6 -1
  45. package/lib/commonjs/version.json +1 -1
  46. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js +2 -1
  47. package/lib/module/components/ChannelDetails/hooks/useChannelDetailsActionItems.js.map +1 -1
  48. package/lib/module/components/ChannelList/ChannelList.js +4 -1
  49. package/lib/module/components/ChannelList/ChannelList.js.map +1 -1
  50. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js +5 -3
  51. package/lib/module/components/ChannelList/hooks/useCreateChannelsContext.js.map +1 -1
  52. package/lib/module/components/ChannelPreview/ChannelPreview.js +3 -0
  53. package/lib/module/components/ChannelPreview/ChannelPreview.js.map +1 -1
  54. package/lib/module/components/ChannelPreview/ChannelPreviewPinnedStatus.js +30 -0
  55. package/lib/module/components/ChannelPreview/ChannelPreviewPinnedStatus.js.map +1 -0
  56. package/lib/module/components/ChannelPreview/ChannelPreviewView.js +8 -3
  57. package/lib/module/components/ChannelPreview/ChannelPreviewView.js.map +1 -1
  58. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js +2 -1
  59. package/lib/module/components/ChannelPreview/ChannelSwipableWrapper.js.map +1 -1
  60. package/lib/module/components/ChannelPreview/hooks/index.js +11 -0
  61. package/lib/module/components/ChannelPreview/hooks/index.js.map +1 -1
  62. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js +3 -0
  63. package/lib/module/components/ChannelPreview/hooks/useChannelPreviewData.js.map +1 -1
  64. package/lib/module/components/ChannelPreview/hooks/useIsChannelPinned.js +11 -0
  65. package/lib/module/components/ChannelPreview/hooks/useIsChannelPinned.js.map +1 -0
  66. package/lib/module/components/index.js +11 -0
  67. package/lib/module/components/index.js.map +1 -1
  68. package/lib/module/contexts/channelsContext/ChannelsContext.js.map +1 -1
  69. package/lib/module/contexts/componentsContext/defaultComponents.js +2 -0
  70. package/lib/module/contexts/componentsContext/defaultComponents.js.map +1 -1
  71. package/lib/module/contexts/themeContext/utils/theme.js +1 -0
  72. package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
  73. package/lib/module/hooks/actions/useChannelActionItems.js +20 -1
  74. package/lib/module/hooks/actions/useChannelActionItems.js.map +1 -1
  75. package/lib/module/hooks/actions/useChannelActionItemsById.js +3 -1
  76. package/lib/module/hooks/actions/useChannelActionItemsById.js.map +1 -1
  77. package/lib/module/i18n/ar.json +6 -1
  78. package/lib/module/i18n/en.json +5 -0
  79. package/lib/module/i18n/es.json +6 -1
  80. package/lib/module/i18n/fr.json +6 -1
  81. package/lib/module/i18n/he.json +6 -1
  82. package/lib/module/i18n/hi.json +6 -1
  83. package/lib/module/i18n/it.json +6 -1
  84. package/lib/module/i18n/ja.json +6 -1
  85. package/lib/module/i18n/ko.json +6 -1
  86. package/lib/module/i18n/nl.json +6 -1
  87. package/lib/module/i18n/pt-br.json +6 -1
  88. package/lib/module/i18n/ru.json +6 -1
  89. package/lib/module/i18n/tr.json +6 -1
  90. package/lib/module/version.json +1 -1
  91. package/lib/typescript/components/ChannelList/ChannelList.d.ts +1 -1
  92. package/lib/typescript/components/ChannelList/ChannelList.d.ts.map +1 -1
  93. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts +1 -1
  94. package/lib/typescript/components/ChannelList/hooks/useCreateChannelsContext.d.ts.map +1 -1
  95. package/lib/typescript/components/ChannelPreview/ChannelPreview.d.ts.map +1 -1
  96. package/lib/typescript/components/ChannelPreview/ChannelPreviewPinnedStatus.d.ts +6 -0
  97. package/lib/typescript/components/ChannelPreview/ChannelPreviewPinnedStatus.d.ts.map +1 -0
  98. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts +3 -1
  99. package/lib/typescript/components/ChannelPreview/ChannelPreviewView.d.ts.map +1 -1
  100. package/lib/typescript/components/ChannelPreview/ChannelSwipableWrapper.d.ts.map +1 -1
  101. package/lib/typescript/components/ChannelPreview/hooks/index.d.ts +1 -0
  102. package/lib/typescript/components/ChannelPreview/hooks/index.d.ts.map +1 -1
  103. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts +1 -0
  104. package/lib/typescript/components/ChannelPreview/hooks/useChannelPreviewData.d.ts.map +1 -1
  105. package/lib/typescript/components/ChannelPreview/hooks/useIsChannelPinned.d.ts +3 -0
  106. package/lib/typescript/components/ChannelPreview/hooks/useIsChannelPinned.d.ts.map +1 -0
  107. package/lib/typescript/components/index.d.ts +1 -0
  108. package/lib/typescript/components/index.d.ts.map +1 -1
  109. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts +1 -0
  110. package/lib/typescript/contexts/channelsContext/ChannelsContext.d.ts.map +1 -1
  111. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts +1 -0
  112. package/lib/typescript/contexts/componentsContext/defaultComponents.d.ts.map +1 -1
  113. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts +1 -0
  114. package/lib/typescript/contexts/themeContext/ThemeContext.d.ts.map +1 -1
  115. package/lib/typescript/contexts/themeContext/utils/theme.d.ts +1 -0
  116. package/lib/typescript/contexts/themeContext/utils/theme.d.ts.map +1 -1
  117. package/lib/typescript/hooks/actions/useChannelActionItems.d.ts +35 -2
  118. package/lib/typescript/hooks/actions/useChannelActionItems.d.ts.map +1 -1
  119. package/lib/typescript/hooks/actions/useChannelActionItemsById.d.ts +3 -2
  120. package/lib/typescript/hooks/actions/useChannelActionItemsById.d.ts.map +1 -1
  121. package/lib/typescript/i18n/ar.json +6 -1
  122. package/lib/typescript/i18n/en.json +5 -0
  123. package/lib/typescript/i18n/es.json +6 -1
  124. package/lib/typescript/i18n/fr.json +6 -1
  125. package/lib/typescript/i18n/he.json +6 -1
  126. package/lib/typescript/i18n/hi.json +6 -1
  127. package/lib/typescript/i18n/it.json +6 -1
  128. package/lib/typescript/i18n/ja.json +6 -1
  129. package/lib/typescript/i18n/ko.json +6 -1
  130. package/lib/typescript/i18n/nl.json +6 -1
  131. package/lib/typescript/i18n/pt-br.json +6 -1
  132. package/lib/typescript/i18n/ru.json +6 -1
  133. package/lib/typescript/i18n/tr.json +6 -1
  134. package/lib/typescript/utils/i18n/Streami18n.d.ts +5 -0
  135. package/lib/typescript/utils/i18n/Streami18n.d.ts.map +1 -1
  136. package/package.json +1 -1
  137. package/src/components/ChannelDetails/__tests__/useChannelDetailsActionItems.test.tsx +6 -2
  138. package/src/components/ChannelDetails/hooks/useChannelDetailsActionItems.ts +1 -1
  139. package/src/components/ChannelList/ChannelList.tsx +3 -0
  140. package/src/components/ChannelList/hooks/useCreateChannelsContext.ts +3 -0
  141. package/src/components/ChannelPreview/ChannelPreview.tsx +21 -3
  142. package/src/components/ChannelPreview/ChannelPreviewPinnedStatus.tsx +25 -0
  143. package/src/components/ChannelPreview/ChannelPreviewView.tsx +18 -2
  144. package/src/components/ChannelPreview/ChannelSwipableWrapper.tsx +5 -1
  145. package/src/components/ChannelPreview/hooks/__tests__/useIsChannelPinned.test.tsx +35 -0
  146. package/src/components/ChannelPreview/hooks/index.ts +1 -0
  147. package/src/components/ChannelPreview/hooks/useChannelPreviewData.ts +3 -1
  148. package/src/components/ChannelPreview/hooks/useIsChannelPinned.ts +8 -0
  149. package/src/components/index.ts +1 -0
  150. package/src/contexts/channelsContext/ChannelsContext.tsx +1 -0
  151. package/src/contexts/componentsContext/defaultComponents.ts +2 -0
  152. package/src/contexts/themeContext/utils/theme.ts +2 -0
  153. package/src/hooks/actions/__tests__/useChannelActionItems.test.tsx +137 -14
  154. package/src/hooks/actions/__tests__/useChannelActionItemsById.test.tsx +3 -1
  155. package/src/hooks/actions/useChannelActionItems.tsx +60 -2
  156. package/src/hooks/actions/useChannelActionItemsById.ts +8 -1
  157. package/src/i18n/ar.json +6 -1
  158. package/src/i18n/en.json +5 -0
  159. package/src/i18n/es.json +6 -1
  160. package/src/i18n/fr.json +6 -1
  161. package/src/i18n/he.json +6 -1
  162. package/src/i18n/hi.json +6 -1
  163. package/src/i18n/it.json +6 -1
  164. package/src/i18n/ja.json +6 -1
  165. package/src/i18n/ko.json +6 -1
  166. package/src/i18n/nl.json +6 -1
  167. package/src/i18n/pt-br.json +6 -1
  168. package/src/i18n/ru.json +6 -1
  169. package/src/i18n/tr.json +6 -1
  170. package/src/version.json +1 -1
@@ -15,18 +15,50 @@ import { useIsChannelMuted } from '../../components/ChannelPreview/hooks/useIsCh
15
15
  import { useUserMuteActive } from '../../components/Message/hooks/useUserMuteActive';
16
16
  import { useTheme, useTranslationContext } from '../../contexts';
17
17
  import type { TranslationContextValue } from '../../contexts/translationContext/TranslationContext';
18
- import { IconProps, Mute, BlockUser, Delete, Sound } from '../../icons';
18
+ import { IconProps, Mute, BlockUser, Delete, Pin, Sound, Unpin } from '../../icons';
19
19
  import { ArrowBoxLeft } from '../../icons/leave';
20
20
  import { useChannelMembershipState } from '../useChannelMembershipState';
21
21
  import { useIsDirectChat } from '../useIsDirectChat';
22
22
  import { useStateStore } from '../useStateStore';
23
23
 
24
24
  export type ChannelActionItem = ActionItem<
25
- 'mute' | 'muteUser' | 'block' | 'leave' | 'deleteChannel' | string
25
+ 'mute' | 'muteUser' | 'block' | 'leave' | 'deleteChannel' | 'pin' | string
26
26
  > & {
27
+ /**
28
+ * Per item routing **within a channel preview interaction** (swipe row vs
29
+ * the sheet that opens from it). Only meaningful when the items are consumed
30
+ * from `<ChannelSwipableWrapper>`:
31
+ *
32
+ * - `'swipe'`: shown only in the swipe-row chips.
33
+ * - `'sheet'`: shown only in the swipe-triggered options sheet.
34
+ * - `'both'`: shown in both swipe row and sheet.
35
+ *
36
+ * The standalone Channel Details screen does **not** filter by `placement` -
37
+ * use {@link ChannelActionSurface} (`surface`) instead to vary items between
38
+ * the channel list and the Channel Details screen.
39
+ */
27
40
  placement: 'both' | 'sheet' | 'swipe';
28
41
  };
29
42
 
43
+ /**
44
+ * Identifies which top level UI surface is requesting channel action items.
45
+ * Passed verbatim into {@link ChannelActionItemsParams} so the default builder
46
+ * and any integrator supplied `getChannelActionItems` can branch on it - i.e.
47
+ * to drop or relabel an item on a specific surface or to provide an entirely
48
+ * different builder per surface.
49
+ *
50
+ * - `'list'`: anything driven by a ChannelList interaction, the swipe row
51
+ * chips on a channel preview and the bottom sheet that opens from them.
52
+ * Subrouting between the swipe row and the sheet is handled by the per item
53
+ * {@link ChannelActionItem.placement} field.
54
+ * - `'details'`: items for the standalone Channel Details screen.
55
+ *
56
+ * `surface` operates at the call site level (which UI is asking). It is
57
+ * optional and when omitted, the default builder applies no surface specific
58
+ * filtering and returns every item it would otherwise produce.
59
+ */
60
+ export type ChannelActionSurface = 'list' | 'details';
61
+
30
62
  export type ChannelActionItemsParams = {
31
63
  actions: ChannelActions;
32
64
  channel: Channel;
@@ -35,6 +67,7 @@ export type ChannelActionItemsParams = {
35
67
  isBlocked: boolean | undefined;
36
68
  isDirectChat: boolean;
37
69
  isPinned: boolean;
70
+ surface?: ChannelActionSurface;
38
71
  t: TranslationContextValue['t'];
39
72
  userMuteActive: boolean;
40
73
  };
@@ -67,10 +100,14 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
67
100
  unmuteUser,
68
101
  blockUser,
69
102
  unblockUser,
103
+ pin,
104
+ unpin,
70
105
  },
71
106
  channelMuteActive,
72
107
  isBlocked,
73
108
  isDirectChat,
109
+ isPinned,
110
+ surface,
74
111
  userMuteActive,
75
112
  t,
76
113
  channel,
@@ -135,6 +172,23 @@ export const buildDefaultChannelActionItems: BuildDefaultChannelActionItems = (
135
172
  });
136
173
  }
137
174
 
175
+ if (surface !== 'details') {
176
+ actionItems.push({
177
+ action: isPinned ? unpin : pin,
178
+ Icon: (props) => <ChannelActionsIcon Icon={isPinned ? Unpin : Pin} {...props} />,
179
+ id: 'pin',
180
+ label: isDirectChat
181
+ ? isPinned
182
+ ? t('Unpin Chat')
183
+ : t('Pin Chat')
184
+ : isPinned
185
+ ? t('Unpin Group')
186
+ : t('Pin Group'),
187
+ placement: 'sheet',
188
+ type: 'standard',
189
+ });
190
+ }
191
+
138
192
  actionItems.push({
139
193
  action: leave,
140
194
  Icon: (props) => <ChannelActionsIcon Icon={ArrowBoxLeft} {...props} />,
@@ -186,6 +240,7 @@ export const getChannelActionItems: GetChannelActionItems = ({ defaultItems }) =
186
240
 
187
241
  type UseChannelActionItemsParams = {
188
242
  channel: Channel;
243
+ surface?: ChannelActionSurface;
189
244
  getChannelActionItems?: GetChannelActionItems;
190
245
  };
191
246
 
@@ -194,6 +249,7 @@ const blockedUsersStateSelector = (state: BlockedUsersState) =>
194
249
 
195
250
  export const useChannelActionItems = ({
196
251
  channel,
252
+ surface,
197
253
  getChannelActionItems: getChannelActionItemsProp = getChannelActionItems,
198
254
  }: UseChannelActionItemsParams) => {
199
255
  const { t } = useTranslationContext();
@@ -225,6 +281,7 @@ export const useChannelActionItems = ({
225
281
  isBlocked,
226
282
  isDirectChat,
227
283
  isPinned,
284
+ surface,
228
285
  t,
229
286
  userMuteActive,
230
287
  }),
@@ -236,6 +293,7 @@ export const useChannelActionItems = ({
236
293
  isBlocked,
237
294
  isDirectChat,
238
295
  isPinned,
296
+ surface,
239
297
  t,
240
298
  userMuteActive,
241
299
  ],
@@ -2,23 +2,30 @@ import { useMemo } from 'react';
2
2
 
3
3
  import type { Channel } from 'stream-chat';
4
4
 
5
- import type { ChannelActionItem, GetChannelActionItems } from './useChannelActionItems';
5
+ import type {
6
+ ChannelActionItem,
7
+ ChannelActionSurface,
8
+ GetChannelActionItems,
9
+ } from './useChannelActionItems';
6
10
  import { useChannelActionItems } from './useChannelActionItems';
7
11
 
8
12
  export type ChannelActionItemsById = Partial<Record<ChannelActionItem['id'], ChannelActionItem>>;
9
13
 
10
14
  type UseChannelActionItemsByIdParams = {
11
15
  channel: Channel;
16
+ surface?: ChannelActionSurface;
12
17
  getChannelActionItems?: GetChannelActionItems;
13
18
  };
14
19
 
15
20
  export const useChannelActionItemsById = ({
16
21
  channel,
22
+ surface,
17
23
  getChannelActionItems,
18
24
  }: UseChannelActionItemsByIdParams) => {
19
25
  const channelActionItems = useChannelActionItems({
20
26
  channel,
21
27
  getChannelActionItems,
28
+ surface,
22
29
  });
23
30
 
24
31
  return useMemo(
package/src/i18n/ar.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Loading failed",
275
275
  "a11y/Message actions": "Message actions",
276
276
  "a11y/Muted": "مكتوم",
277
+ "a11y/Pinned": "مثبت",
277
278
  "a11y/New message from {{user}}": "New message from {{user}}",
278
279
  "a11y/Offline": "Offline",
279
280
  "a11y/Open message actions": "Open message actions",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "رسالة من {{sender}}",
436
437
  "a11y/Gallery Image": "صورة من المعرض",
437
438
  "a11y/Gallery Video": "فيديو من المعرض",
438
- "a11y/{{position}} of {{count}}": "{{position}} من {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} من {{count}}",
440
+ "Pin Chat": "تثبيت الدردشة",
441
+ "Pin Group": "تثبيت المجموعة",
442
+ "Unpin Chat": "إلغاء تثبيت الدردشة",
443
+ "Unpin Group": "إلغاء تثبيت المجموعة"
439
444
  }
package/src/i18n/en.json CHANGED
@@ -246,6 +246,8 @@
246
246
  "Leave Group": "Leave Group",
247
247
  "Mute Chat": "Mute Chat",
248
248
  "Mute Group": "Mute Group",
249
+ "Pin Chat": "Pin Chat",
250
+ "Pin Group": "Pin Group",
249
251
  "Admin": "Admin",
250
252
  "Moderator": "Moderator",
251
253
  "Offline": "Offline",
@@ -255,6 +257,8 @@
255
257
  "Unarchive Group": "Unarchive Group",
256
258
  "Unmute Chat": "Unmute Chat",
257
259
  "Unmute Group": "Unmute Group",
260
+ "Unpin Chat": "Unpin Chat",
261
+ "Unpin Group": "Unpin Group",
258
262
  "{{memberCount}} members, {{onlineCount}} online_one": "{{memberCount}} member, {{onlineCount}} online",
259
263
  "{{memberCount}} members, {{onlineCount}} online_other": "{{memberCount}} members, {{onlineCount}} online",
260
264
  "{{memberCount}} members, {{onlineCount}} online_many": "{{memberCount}} members, {{onlineCount}} online",
@@ -284,6 +288,7 @@
284
288
  "a11y/Message from you": "Message from you",
285
289
  "a11y/Message from {{sender}}": "Message from {{sender}}",
286
290
  "a11y/Muted": "Muted",
291
+ "a11y/Pinned": "Pinned",
287
292
  "a11y/New message from {{user}}": "New message from {{user}}",
288
293
  "a11y/Offline": "Offline",
289
294
  "a11y/Open message actions": "Open message actions",
package/src/i18n/es.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Error al cargar",
275
275
  "a11y/Message actions": "Acciones del mensaje",
276
276
  "a11y/Muted": "Silenciado",
277
+ "a11y/Pinned": "Fijado",
277
278
  "a11y/New message from {{user}}": "Nuevo mensaje de {{user}}",
278
279
  "a11y/Offline": "Sin conexión",
279
280
  "a11y/Open message actions": "Abrir acciones del mensaje",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Mensaje de {{sender}}",
436
437
  "a11y/Gallery Image": "Imagen de la galería",
437
438
  "a11y/Gallery Video": "Vídeo de la galería",
438
- "a11y/{{position}} of {{count}}": "{{position}} de {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} de {{count}}",
440
+ "Pin Chat": "Fijar chat",
441
+ "Pin Group": "Fijar grupo",
442
+ "Unpin Chat": "Desfijar chat",
443
+ "Unpin Group": "Desfijar grupo"
439
444
  }
package/src/i18n/fr.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Échec du chargement",
275
275
  "a11y/Message actions": "Actions du message",
276
276
  "a11y/Muted": "Mis en sourdine",
277
+ "a11y/Pinned": "Épinglé",
277
278
  "a11y/New message from {{user}}": "Nouveau message de {{user}}",
278
279
  "a11y/Offline": "Hors ligne",
279
280
  "a11y/Open message actions": "Ouvrir les actions du message",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Message de {{sender}}",
436
437
  "a11y/Gallery Image": "Image de la galerie",
437
438
  "a11y/Gallery Video": "Vidéo de la galerie",
438
- "a11y/{{position}} of {{count}}": "{{position}} sur {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} sur {{count}}",
440
+ "Pin Chat": "Épingler la discussion",
441
+ "Pin Group": "Épingler le groupe",
442
+ "Unpin Chat": "Détacher la discussion",
443
+ "Unpin Group": "Détacher le groupe"
439
444
  }
package/src/i18n/he.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "הטעינה נכשלה",
275
275
  "a11y/Message actions": "פעולות הודעה",
276
276
  "a11y/Muted": "מושתק",
277
+ "a11y/Pinned": "מוצמד",
277
278
  "a11y/New message from {{user}}": "הודעה חדשה מ-{{user}}",
278
279
  "a11y/Offline": "לא מקוון",
279
280
  "a11y/Open message actions": "פתח פעולות הודעה",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "הודעה מאת {{sender}}",
436
437
  "a11y/Gallery Image": "תמונה מהגלריה",
437
438
  "a11y/Gallery Video": "סרטון מהגלריה",
438
- "a11y/{{position}} of {{count}}": "{{position}} מתוך {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} מתוך {{count}}",
440
+ "Pin Chat": "הצמד/י צ'אט",
441
+ "Pin Group": "הצמד/י קבוצה",
442
+ "Unpin Chat": "בטל/י הצמדת צ'אט",
443
+ "Unpin Group": "בטל/י הצמדת קבוצה"
439
444
  }
package/src/i18n/hi.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "लोड नहीं हो सका",
275
275
  "a11y/Message actions": "संदेश की कार्रवाइयां",
276
276
  "a11y/Muted": "म्यूट किया गया",
277
+ "a11y/Pinned": "पिन किया गया",
277
278
  "a11y/New message from {{user}}": "{{user}} से नया संदेश",
278
279
  "a11y/Offline": "ऑफलाइन",
279
280
  "a11y/Open message actions": "संदेश की कार्रवाइयां खोलें",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "{{sender}} से संदेश",
436
437
  "a11y/Gallery Image": "गैलरी छवि",
437
438
  "a11y/Gallery Video": "गैलरी वीडियो",
438
- "a11y/{{position}} of {{count}}": "{{count}} में से {{position}}"
439
+ "a11y/{{position}} of {{count}}": "{{count}} में से {{position}}",
440
+ "Pin Chat": "चैट पिन करें",
441
+ "Pin Group": "ग्रुप पिन करें",
442
+ "Unpin Chat": "चैट अनपिन करें",
443
+ "Unpin Group": "ग्रुप अनपिन करें"
439
444
  }
package/src/i18n/it.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Caricamento non riuscito",
275
275
  "a11y/Message actions": "Azioni del messaggio",
276
276
  "a11y/Muted": "Silenziato",
277
+ "a11y/Pinned": "Fissato",
277
278
  "a11y/New message from {{user}}": "Nuovo messaggio da {{user}}",
278
279
  "a11y/Offline": "Offline",
279
280
  "a11y/Open message actions": "Apri azioni del messaggio",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Messaggio da {{sender}}",
436
437
  "a11y/Gallery Image": "Immagine della galleria",
437
438
  "a11y/Gallery Video": "Video della galleria",
438
- "a11y/{{position}} of {{count}}": "{{position}} di {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} di {{count}}",
440
+ "Pin Chat": "Fissa chat",
441
+ "Pin Group": "Fissa gruppo",
442
+ "Unpin Chat": "Sfissa chat",
443
+ "Unpin Group": "Sfissa gruppo"
439
444
  }
package/src/i18n/ja.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "読み込みに失敗しました",
275
275
  "a11y/Message actions": "メッセージの操作",
276
276
  "a11y/Muted": "ミュート中",
277
+ "a11y/Pinned": "ピン留め中",
277
278
  "a11y/New message from {{user}}": "{{user}}からの新しいメッセージ",
278
279
  "a11y/Offline": "オフライン",
279
280
  "a11y/Open message actions": "メッセージの操作を開く",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "{{sender}}からのメッセージ",
436
437
  "a11y/Gallery Image": "ギャラリー画像",
437
438
  "a11y/Gallery Video": "ギャラリービデオ",
438
- "a11y/{{position}} of {{count}}": "{{count}} 中 {{position}}"
439
+ "a11y/{{position}} of {{count}}": "{{count}} 中 {{position}}",
440
+ "Pin Chat": "チャットをピン留め",
441
+ "Pin Group": "グループをピン留め",
442
+ "Unpin Chat": "チャットのピン留めを解除",
443
+ "Unpin Group": "グループのピン留めを解除"
439
444
  }
package/src/i18n/ko.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "로드 실패",
275
275
  "a11y/Message actions": "메시지 작업",
276
276
  "a11y/Muted": "음소거됨",
277
+ "a11y/Pinned": "고정됨",
277
278
  "a11y/New message from {{user}}": "{{user}}님의 새 메시지",
278
279
  "a11y/Offline": "오프라인",
279
280
  "a11y/Open message actions": "메시지 작업 열기",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "{{sender}}님의 메시지",
436
437
  "a11y/Gallery Image": "갤러리 이미지",
437
438
  "a11y/Gallery Video": "갤러리 동영상",
438
- "a11y/{{position}} of {{count}}": "{{count}}개 중 {{position}}번째"
439
+ "a11y/{{position}} of {{count}}": "{{count}}개 중 {{position}}번째",
440
+ "Pin Chat": "채팅 고정",
441
+ "Pin Group": "그룹 고정",
442
+ "Unpin Chat": "채팅 고정 해제",
443
+ "Unpin Group": "그룹 고정 해제"
439
444
  }
package/src/i18n/nl.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Laden mislukt",
275
275
  "a11y/Message actions": "Berichtacties",
276
276
  "a11y/Muted": "Gedempt",
277
+ "a11y/Pinned": "Vastgemaakt",
277
278
  "a11y/New message from {{user}}": "Nieuw bericht van {{user}}",
278
279
  "a11y/Offline": "Offline",
279
280
  "a11y/Open message actions": "Berichtacties openen",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Bericht van {{sender}}",
436
437
  "a11y/Gallery Image": "Galerij-afbeelding",
437
438
  "a11y/Gallery Video": "Galerij-video",
438
- "a11y/{{position}} of {{count}}": "{{position}} van {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} van {{count}}",
440
+ "Pin Chat": "Chat vastmaken",
441
+ "Pin Group": "Groep vastmaken",
442
+ "Unpin Chat": "Chat losmaken",
443
+ "Unpin Group": "Groep losmaken"
439
444
  }
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Falha ao carregar",
275
275
  "a11y/Message actions": "Ações da mensagem",
276
276
  "a11y/Muted": "Silenciado",
277
+ "a11y/Pinned": "Fixado",
277
278
  "a11y/New message from {{user}}": "Nova mensagem de {{user}}",
278
279
  "a11y/Offline": "Offline",
279
280
  "a11y/Open message actions": "Abrir ações da mensagem",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Mensagem de {{sender}}",
436
437
  "a11y/Gallery Image": "Imagem da galeria",
437
438
  "a11y/Gallery Video": "Vídeo da galeria",
438
- "a11y/{{position}} of {{count}}": "{{position}} de {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} de {{count}}",
440
+ "Pin Chat": "Fixar conversa",
441
+ "Pin Group": "Fixar grupo",
442
+ "Unpin Chat": "Desafixar conversa",
443
+ "Unpin Group": "Desafixar grupo"
439
444
  }
package/src/i18n/ru.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Не удалось загрузить",
275
275
  "a11y/Message actions": "Действия с сообщением",
276
276
  "a11y/Muted": "Без звука",
277
+ "a11y/Pinned": "Закреплено",
277
278
  "a11y/New message from {{user}}": "Новое сообщение от {{user}}",
278
279
  "a11y/Offline": "Не в сети",
279
280
  "a11y/Open message actions": "Открыть действия с сообщением",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "Сообщение от {{sender}}",
436
437
  "a11y/Gallery Image": "Изображение из галереи",
437
438
  "a11y/Gallery Video": "Видео из галереи",
438
- "a11y/{{position}} of {{count}}": "{{position}} из {{count}}"
439
+ "a11y/{{position}} of {{count}}": "{{position}} из {{count}}",
440
+ "Pin Chat": "Закрепить чат",
441
+ "Pin Group": "Закрепить группу",
442
+ "Unpin Chat": "Открепить чат",
443
+ "Unpin Group": "Открепить группу"
439
444
  }
package/src/i18n/tr.json CHANGED
@@ -274,6 +274,7 @@
274
274
  "a11y/Loading failed": "Yükleme başarısız",
275
275
  "a11y/Message actions": "Mesaj eylemleri",
276
276
  "a11y/Muted": "Sessize alındı",
277
+ "a11y/Pinned": "Sabitlendi",
277
278
  "a11y/New message from {{user}}": "{{user}} kullanıcısından yeni mesaj",
278
279
  "a11y/Offline": "Çevrimdışı",
279
280
  "a11y/Open message actions": "Mesaj eylemlerini aç",
@@ -435,5 +436,9 @@
435
436
  "a11y/Message from {{sender}}": "{{sender}} kullanıcısından mesaj",
436
437
  "a11y/Gallery Image": "Galeri görüntüsü",
437
438
  "a11y/Gallery Video": "Galeri videosu",
438
- "a11y/{{position}} of {{count}}": "{{count}} öğeden {{position}}"
439
+ "a11y/{{position}} of {{count}}": "{{count}} öğeden {{position}}",
440
+ "Pin Chat": "Sohbeti sabitle",
441
+ "Pin Group": "Grubu sabitle",
442
+ "Unpin Chat": "Sohbetin sabitlemesini kaldır",
443
+ "Unpin Group": "Grubun sabitlemesini kaldır"
439
444
  }
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "9.4.0-beta.6"
2
+ "version": "9.4.0-beta.7"
3
3
  }