stream-chat-react-native-core 9.6.2-beta.2 → 9.6.2-beta.3
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/components/Channel/Channel.js +1 -1
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageContent.js +19 -4
- package/lib/commonjs/components/Message/MessageItemView/MessageContent.js.map +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js +1 -1
- package/lib/commonjs/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Channel/Channel.js +1 -1
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageContent.js +19 -4
- package/lib/module/components/Message/MessageItemView/MessageContent.js.map +1 -1
- package/lib/module/components/Message/MessageItemView/MessageTextContainer.js +1 -1
- package/lib/module/components/Message/MessageItemView/MessageTextContainer.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Message/MessageItemView/MessageContent.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/Channel/Channel.tsx +1 -1
- package/src/components/Message/MessageItemView/MessageContent.tsx +24 -4
- package/src/components/Message/MessageItemView/MessageTextContainer.tsx +1 -1
- package/src/components/Message/MessageItemView/__tests__/MessageContent.test.tsx +116 -0
- package/src/components/Message/MessageItemView/__tests__/__snapshots__/MessageTextContainer.test.tsx.snap +1 -1
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.tsx.snap +120 -116
- package/src/version.json +1 -1
|
@@ -220,12 +220,25 @@ const MessageContentWithContext = (props: MessageContentPropsWithContext) => {
|
|
|
220
220
|
|
|
221
221
|
const { setNativeScrollability } = useMessageListItemContext();
|
|
222
222
|
const hasContentSideViews = !!(MessageContentLeadingView || MessageContentTrailingView);
|
|
223
|
+
const gap = primitives.spacingXs;
|
|
224
|
+
|
|
225
|
+
const messageTextContainerStyles = useMemo(() => {
|
|
226
|
+
return {
|
|
227
|
+
textContainer: {
|
|
228
|
+
// Cancel the container's 8px inter-item gap so only the caption's own
|
|
229
|
+
// paragraph marginTop shows. Skip for the first item: there is no gap to
|
|
230
|
+
// cancel
|
|
231
|
+
marginTop: -gap,
|
|
232
|
+
},
|
|
233
|
+
};
|
|
234
|
+
}, [gap]);
|
|
235
|
+
|
|
223
236
|
const contentBody = (
|
|
224
237
|
<>
|
|
225
238
|
<View
|
|
226
239
|
style={[
|
|
227
240
|
{
|
|
228
|
-
gap
|
|
241
|
+
gap,
|
|
229
242
|
paddingTop: hidePaddingTop ? 0 : primitives.spacingXs,
|
|
230
243
|
paddingHorizontal: hidePaddingHorizontal ? 0 : primitives.spacingXs,
|
|
231
244
|
paddingBottom: hidePaddingBottom ? 0 : primitives.spacingXs,
|
|
@@ -313,14 +326,21 @@ const MessageContentWithContext = (props: MessageContentPropsWithContext) => {
|
|
|
313
326
|
key={`ai_message_text_container_${messageContentOrderIndex}`}
|
|
314
327
|
/>
|
|
315
328
|
) : null;
|
|
329
|
+
case 'text': {
|
|
330
|
+
const suppressed =
|
|
331
|
+
(otherAttachments.length && otherAttachments[0].actions) || isAIGenerated;
|
|
332
|
+
return suppressed ? null : (
|
|
333
|
+
<MessageTextContainer
|
|
334
|
+
key={`message_text_container_${messageContentOrderIndex}`}
|
|
335
|
+
styles={messageContentOrderIndex === 0 ? undefined : messageTextContainerStyles}
|
|
336
|
+
/>
|
|
337
|
+
);
|
|
338
|
+
}
|
|
316
339
|
default:
|
|
317
340
|
return null;
|
|
318
341
|
}
|
|
319
342
|
})}
|
|
320
343
|
</View>
|
|
321
|
-
{(otherAttachments.length && otherAttachments[0].actions) || isAIGenerated ? null : (
|
|
322
|
-
<MessageTextContainer />
|
|
323
|
-
)}
|
|
324
344
|
</>
|
|
325
345
|
);
|
|
326
346
|
const a11yPressableLabel = useMemo(() => {
|
|
@@ -21,7 +21,7 @@ import { useTranslatedMessage } from '../../../hooks/useTranslatedMessage';
|
|
|
21
21
|
import { primitives } from '../../../theme';
|
|
22
22
|
|
|
23
23
|
const styles = StyleSheet.create({
|
|
24
|
-
textContainer: { maxWidth: 256, paddingHorizontal: primitives.
|
|
24
|
+
textContainer: { maxWidth: 256, paddingHorizontal: primitives.spacingXxs },
|
|
25
25
|
});
|
|
26
26
|
|
|
27
27
|
export type MessageTextProps = MessageTextContainerProps & {
|
|
@@ -445,6 +445,122 @@ describe('MessageContent', () => {
|
|
|
445
445
|
});
|
|
446
446
|
});
|
|
447
447
|
|
|
448
|
+
// Collects the given testIDs in the order they appear in the rendered tree.
|
|
449
|
+
const collectOrderedTestIDs = (
|
|
450
|
+
root: ReturnType<typeof screen.getByTestId>,
|
|
451
|
+
targets: string[],
|
|
452
|
+
) => {
|
|
453
|
+
const found: string[] = [];
|
|
454
|
+
const walk = (node: typeof root | string | null) => {
|
|
455
|
+
if (!node || typeof node === 'string') {
|
|
456
|
+
return;
|
|
457
|
+
}
|
|
458
|
+
const testID = node.props?.testID;
|
|
459
|
+
if (testID && targets.includes(testID) && !found.includes(testID)) {
|
|
460
|
+
found.push(testID);
|
|
461
|
+
}
|
|
462
|
+
(node.children ?? []).forEach((child) => walk(child as typeof root | string));
|
|
463
|
+
};
|
|
464
|
+
walk(root);
|
|
465
|
+
return found;
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
it('renders text after attachments with the default messageContentOrder', async () => {
|
|
469
|
+
const user = generateUser();
|
|
470
|
+
const message = generateMessage({
|
|
471
|
+
attachments: [
|
|
472
|
+
{ image_url: 'https://i.imgur.com/SLx06PP.png', type: 'image' },
|
|
473
|
+
{ image_url: 'https://i.imgur.com/iNaC3K7.jpg', type: 'image' },
|
|
474
|
+
],
|
|
475
|
+
text: 'a caption',
|
|
476
|
+
user,
|
|
477
|
+
});
|
|
478
|
+
|
|
479
|
+
renderMessage({ message });
|
|
480
|
+
|
|
481
|
+
await waitFor(() => {
|
|
482
|
+
expect(screen.getByTestId('gallery-container')).toBeTruthy();
|
|
483
|
+
expect(screen.getByTestId('message-text-container')).toBeTruthy();
|
|
484
|
+
});
|
|
485
|
+
|
|
486
|
+
expect(
|
|
487
|
+
collectOrderedTestIDs(screen.getByTestId('message-content-wrapper'), [
|
|
488
|
+
'gallery-container',
|
|
489
|
+
'message-text-container',
|
|
490
|
+
]),
|
|
491
|
+
).toEqual(['gallery-container', 'message-text-container']);
|
|
492
|
+
});
|
|
493
|
+
|
|
494
|
+
it('renders text before attachments when messageContentOrder puts text first', async () => {
|
|
495
|
+
const user = generateUser();
|
|
496
|
+
const message = generateMessage({
|
|
497
|
+
attachments: [
|
|
498
|
+
{ image_url: 'https://i.imgur.com/SLx06PP.png', type: 'image' },
|
|
499
|
+
{ image_url: 'https://i.imgur.com/iNaC3K7.jpg', type: 'image' },
|
|
500
|
+
],
|
|
501
|
+
text: 'a caption',
|
|
502
|
+
user,
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
render(
|
|
506
|
+
<Chat client={chatClient}>
|
|
507
|
+
<Channel
|
|
508
|
+
channel={channel}
|
|
509
|
+
messageContentOrder={[
|
|
510
|
+
'text',
|
|
511
|
+
'quoted_reply',
|
|
512
|
+
'gallery',
|
|
513
|
+
'files',
|
|
514
|
+
'poll',
|
|
515
|
+
'ai_text',
|
|
516
|
+
'attachments',
|
|
517
|
+
'location',
|
|
518
|
+
]}
|
|
519
|
+
>
|
|
520
|
+
<Message groupStyles={['bottom']} message={message} />
|
|
521
|
+
</Channel>
|
|
522
|
+
</Chat>,
|
|
523
|
+
);
|
|
524
|
+
|
|
525
|
+
await waitFor(() => {
|
|
526
|
+
expect(screen.getByTestId('gallery-container')).toBeTruthy();
|
|
527
|
+
expect(screen.getByTestId('message-text-container')).toBeTruthy();
|
|
528
|
+
});
|
|
529
|
+
|
|
530
|
+
expect(
|
|
531
|
+
collectOrderedTestIDs(screen.getByTestId('message-content-wrapper'), [
|
|
532
|
+
'gallery-container',
|
|
533
|
+
'message-text-container',
|
|
534
|
+
]),
|
|
535
|
+
).toEqual(['message-text-container', 'gallery-container']);
|
|
536
|
+
});
|
|
537
|
+
|
|
538
|
+
it('suppresses the text container for an ephemeral giphy preview with actions', async () => {
|
|
539
|
+
const user = generateUser();
|
|
540
|
+
const message = generateMessage({
|
|
541
|
+
attachments: [
|
|
542
|
+
{
|
|
543
|
+
...generateGiphyAttachment(),
|
|
544
|
+
actions: [
|
|
545
|
+
generateAttachmentAction(),
|
|
546
|
+
generateAttachmentAction(),
|
|
547
|
+
generateAttachmentAction(),
|
|
548
|
+
],
|
|
549
|
+
},
|
|
550
|
+
],
|
|
551
|
+
text: '/giphy hello',
|
|
552
|
+
user,
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
renderMessage({ message });
|
|
556
|
+
|
|
557
|
+
await waitFor(() => {
|
|
558
|
+
expect(screen.getByTestId('giphy-action-attachment')).toBeTruthy();
|
|
559
|
+
});
|
|
560
|
+
|
|
561
|
+
expect(screen.queryByTestId('message-text-container')).toBeFalsy();
|
|
562
|
+
});
|
|
563
|
+
|
|
448
564
|
it('renders the ReactionList when the message has reactions', async () => {
|
|
449
565
|
const user = generateUser();
|
|
450
566
|
const reaction = generateReaction();
|
|
@@ -530,57 +530,58 @@ exports[`Thread should match thread snapshot 1`] = `
|
|
|
530
530
|
{},
|
|
531
531
|
]
|
|
532
532
|
}
|
|
533
|
-
/>
|
|
534
|
-
<View
|
|
535
|
-
style={
|
|
536
|
-
[
|
|
537
|
-
{
|
|
538
|
-
"maxWidth": 256,
|
|
539
|
-
"paddingHorizontal": 12,
|
|
540
|
-
},
|
|
541
|
-
{},
|
|
542
|
-
undefined,
|
|
543
|
-
]
|
|
544
|
-
}
|
|
545
|
-
testID="message-text-container"
|
|
546
533
|
>
|
|
547
534
|
<View
|
|
548
535
|
style={
|
|
549
536
|
[
|
|
550
537
|
{
|
|
551
|
-
"
|
|
538
|
+
"maxWidth": 256,
|
|
539
|
+
"paddingHorizontal": 4,
|
|
552
540
|
},
|
|
541
|
+
{},
|
|
553
542
|
undefined,
|
|
554
543
|
]
|
|
555
544
|
}
|
|
545
|
+
testID="message-text-container"
|
|
556
546
|
>
|
|
557
|
-
<
|
|
547
|
+
<View
|
|
558
548
|
style={
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
"lineHeight": 20,
|
|
566
|
-
"marginBottom": 8,
|
|
567
|
-
"marginTop": 8,
|
|
568
|
-
}
|
|
549
|
+
[
|
|
550
|
+
{
|
|
551
|
+
"alignSelf": "stretch",
|
|
552
|
+
},
|
|
553
|
+
undefined,
|
|
554
|
+
]
|
|
569
555
|
}
|
|
570
556
|
>
|
|
571
557
|
<Text
|
|
572
558
|
style={
|
|
573
559
|
{
|
|
574
|
-
"
|
|
560
|
+
"alignItems": "flex-start",
|
|
561
|
+
"flexDirection": "row",
|
|
562
|
+
"flexWrap": "wrap",
|
|
575
563
|
"fontSize": 17,
|
|
564
|
+
"justifyContent": "flex-start",
|
|
576
565
|
"lineHeight": 20,
|
|
577
|
-
"
|
|
566
|
+
"marginBottom": 8,
|
|
567
|
+
"marginTop": 8,
|
|
578
568
|
}
|
|
579
569
|
}
|
|
580
570
|
>
|
|
581
|
-
|
|
571
|
+
<Text
|
|
572
|
+
style={
|
|
573
|
+
{
|
|
574
|
+
"color": "#1a1b25",
|
|
575
|
+
"fontSize": 17,
|
|
576
|
+
"lineHeight": 20,
|
|
577
|
+
"writingDirection": "ltr",
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
>
|
|
581
|
+
Message6
|
|
582
|
+
</Text>
|
|
582
583
|
</Text>
|
|
583
|
-
</
|
|
584
|
+
</View>
|
|
584
585
|
</View>
|
|
585
586
|
</View>
|
|
586
587
|
</View>
|
|
@@ -864,57 +865,58 @@ exports[`Thread should match thread snapshot 1`] = `
|
|
|
864
865
|
{},
|
|
865
866
|
]
|
|
866
867
|
}
|
|
867
|
-
/>
|
|
868
|
-
<View
|
|
869
|
-
style={
|
|
870
|
-
[
|
|
871
|
-
{
|
|
872
|
-
"maxWidth": 256,
|
|
873
|
-
"paddingHorizontal": 12,
|
|
874
|
-
},
|
|
875
|
-
{},
|
|
876
|
-
undefined,
|
|
877
|
-
]
|
|
878
|
-
}
|
|
879
|
-
testID="message-text-container"
|
|
880
868
|
>
|
|
881
869
|
<View
|
|
882
870
|
style={
|
|
883
871
|
[
|
|
884
872
|
{
|
|
885
|
-
"
|
|
873
|
+
"maxWidth": 256,
|
|
874
|
+
"paddingHorizontal": 4,
|
|
886
875
|
},
|
|
876
|
+
{},
|
|
887
877
|
undefined,
|
|
888
878
|
]
|
|
889
879
|
}
|
|
880
|
+
testID="message-text-container"
|
|
890
881
|
>
|
|
891
|
-
<
|
|
882
|
+
<View
|
|
892
883
|
style={
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
"lineHeight": 20,
|
|
900
|
-
"marginBottom": 8,
|
|
901
|
-
"marginTop": 8,
|
|
902
|
-
}
|
|
884
|
+
[
|
|
885
|
+
{
|
|
886
|
+
"alignSelf": "stretch",
|
|
887
|
+
},
|
|
888
|
+
undefined,
|
|
889
|
+
]
|
|
903
890
|
}
|
|
904
891
|
>
|
|
905
892
|
<Text
|
|
906
893
|
style={
|
|
907
894
|
{
|
|
908
|
-
"
|
|
895
|
+
"alignItems": "flex-start",
|
|
896
|
+
"flexDirection": "row",
|
|
897
|
+
"flexWrap": "wrap",
|
|
909
898
|
"fontSize": 17,
|
|
899
|
+
"justifyContent": "flex-start",
|
|
910
900
|
"lineHeight": 20,
|
|
911
|
-
"
|
|
901
|
+
"marginBottom": 8,
|
|
902
|
+
"marginTop": 8,
|
|
912
903
|
}
|
|
913
904
|
}
|
|
914
905
|
>
|
|
915
|
-
|
|
906
|
+
<Text
|
|
907
|
+
style={
|
|
908
|
+
{
|
|
909
|
+
"color": "#1a1b25",
|
|
910
|
+
"fontSize": 17,
|
|
911
|
+
"lineHeight": 20,
|
|
912
|
+
"writingDirection": "ltr",
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
>
|
|
916
|
+
Message5
|
|
917
|
+
</Text>
|
|
916
918
|
</Text>
|
|
917
|
-
</
|
|
919
|
+
</View>
|
|
918
920
|
</View>
|
|
919
921
|
</View>
|
|
920
922
|
</View>
|
|
@@ -1232,57 +1234,58 @@ exports[`Thread should match thread snapshot 1`] = `
|
|
|
1232
1234
|
{},
|
|
1233
1235
|
]
|
|
1234
1236
|
}
|
|
1235
|
-
/>
|
|
1236
|
-
<View
|
|
1237
|
-
style={
|
|
1238
|
-
[
|
|
1239
|
-
{
|
|
1240
|
-
"maxWidth": 256,
|
|
1241
|
-
"paddingHorizontal": 12,
|
|
1242
|
-
},
|
|
1243
|
-
{},
|
|
1244
|
-
undefined,
|
|
1245
|
-
]
|
|
1246
|
-
}
|
|
1247
|
-
testID="message-text-container"
|
|
1248
1237
|
>
|
|
1249
1238
|
<View
|
|
1250
1239
|
style={
|
|
1251
1240
|
[
|
|
1252
1241
|
{
|
|
1253
|
-
"
|
|
1242
|
+
"maxWidth": 256,
|
|
1243
|
+
"paddingHorizontal": 4,
|
|
1254
1244
|
},
|
|
1245
|
+
{},
|
|
1255
1246
|
undefined,
|
|
1256
1247
|
]
|
|
1257
1248
|
}
|
|
1249
|
+
testID="message-text-container"
|
|
1258
1250
|
>
|
|
1259
|
-
<
|
|
1251
|
+
<View
|
|
1260
1252
|
style={
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
"lineHeight": 20,
|
|
1268
|
-
"marginBottom": 8,
|
|
1269
|
-
"marginTop": 8,
|
|
1270
|
-
}
|
|
1253
|
+
[
|
|
1254
|
+
{
|
|
1255
|
+
"alignSelf": "stretch",
|
|
1256
|
+
},
|
|
1257
|
+
undefined,
|
|
1258
|
+
]
|
|
1271
1259
|
}
|
|
1272
1260
|
>
|
|
1273
1261
|
<Text
|
|
1274
1262
|
style={
|
|
1275
1263
|
{
|
|
1276
|
-
"
|
|
1264
|
+
"alignItems": "flex-start",
|
|
1265
|
+
"flexDirection": "row",
|
|
1266
|
+
"flexWrap": "wrap",
|
|
1277
1267
|
"fontSize": 17,
|
|
1268
|
+
"justifyContent": "flex-start",
|
|
1278
1269
|
"lineHeight": 20,
|
|
1279
|
-
"
|
|
1270
|
+
"marginBottom": 8,
|
|
1271
|
+
"marginTop": 8,
|
|
1280
1272
|
}
|
|
1281
1273
|
}
|
|
1282
1274
|
>
|
|
1283
|
-
|
|
1275
|
+
<Text
|
|
1276
|
+
style={
|
|
1277
|
+
{
|
|
1278
|
+
"color": "#1a1b25",
|
|
1279
|
+
"fontSize": 17,
|
|
1280
|
+
"lineHeight": 20,
|
|
1281
|
+
"writingDirection": "ltr",
|
|
1282
|
+
}
|
|
1283
|
+
}
|
|
1284
|
+
>
|
|
1285
|
+
Message4
|
|
1286
|
+
</Text>
|
|
1284
1287
|
</Text>
|
|
1285
|
-
</
|
|
1288
|
+
</View>
|
|
1286
1289
|
</View>
|
|
1287
1290
|
</View>
|
|
1288
1291
|
</View>
|
|
@@ -1560,57 +1563,58 @@ exports[`Thread should match thread snapshot 1`] = `
|
|
|
1560
1563
|
{},
|
|
1561
1564
|
]
|
|
1562
1565
|
}
|
|
1563
|
-
/>
|
|
1564
|
-
<View
|
|
1565
|
-
style={
|
|
1566
|
-
[
|
|
1567
|
-
{
|
|
1568
|
-
"maxWidth": 256,
|
|
1569
|
-
"paddingHorizontal": 12,
|
|
1570
|
-
},
|
|
1571
|
-
{},
|
|
1572
|
-
undefined,
|
|
1573
|
-
]
|
|
1574
|
-
}
|
|
1575
|
-
testID="message-text-container"
|
|
1576
1566
|
>
|
|
1577
1567
|
<View
|
|
1578
1568
|
style={
|
|
1579
1569
|
[
|
|
1580
1570
|
{
|
|
1581
|
-
"
|
|
1571
|
+
"maxWidth": 256,
|
|
1572
|
+
"paddingHorizontal": 4,
|
|
1582
1573
|
},
|
|
1574
|
+
{},
|
|
1583
1575
|
undefined,
|
|
1584
1576
|
]
|
|
1585
1577
|
}
|
|
1578
|
+
testID="message-text-container"
|
|
1586
1579
|
>
|
|
1587
|
-
<
|
|
1580
|
+
<View
|
|
1588
1581
|
style={
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
"lineHeight": 20,
|
|
1596
|
-
"marginBottom": 8,
|
|
1597
|
-
"marginTop": 8,
|
|
1598
|
-
}
|
|
1582
|
+
[
|
|
1583
|
+
{
|
|
1584
|
+
"alignSelf": "stretch",
|
|
1585
|
+
},
|
|
1586
|
+
undefined,
|
|
1587
|
+
]
|
|
1599
1588
|
}
|
|
1600
1589
|
>
|
|
1601
1590
|
<Text
|
|
1602
1591
|
style={
|
|
1603
1592
|
{
|
|
1604
|
-
"
|
|
1593
|
+
"alignItems": "flex-start",
|
|
1594
|
+
"flexDirection": "row",
|
|
1595
|
+
"flexWrap": "wrap",
|
|
1605
1596
|
"fontSize": 17,
|
|
1597
|
+
"justifyContent": "flex-start",
|
|
1606
1598
|
"lineHeight": 20,
|
|
1607
|
-
"
|
|
1599
|
+
"marginBottom": 8,
|
|
1600
|
+
"marginTop": 8,
|
|
1608
1601
|
}
|
|
1609
1602
|
}
|
|
1610
1603
|
>
|
|
1611
|
-
|
|
1604
|
+
<Text
|
|
1605
|
+
style={
|
|
1606
|
+
{
|
|
1607
|
+
"color": "#1a1b25",
|
|
1608
|
+
"fontSize": 17,
|
|
1609
|
+
"lineHeight": 20,
|
|
1610
|
+
"writingDirection": "ltr",
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1613
|
+
>
|
|
1614
|
+
Message3
|
|
1615
|
+
</Text>
|
|
1612
1616
|
</Text>
|
|
1613
|
-
</
|
|
1617
|
+
</View>
|
|
1614
1618
|
</View>
|
|
1615
1619
|
</View>
|
|
1616
1620
|
</View>
|
package/src/version.json
CHANGED