@unif/react-native-chat 3.2.4 → 3.3.0

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 (114) hide show
  1. package/lib/module/components/Attachments/AttachmentItem.js +3 -2
  2. package/lib/module/components/Attachments/AttachmentItem.js.map +1 -1
  3. package/lib/module/components/Attachments/Attachments.js +1 -0
  4. package/lib/module/components/Attachments/Attachments.js.map +1 -1
  5. package/lib/module/components/Attachments/styles.js +4 -0
  6. package/lib/module/components/Attachments/styles.js.map +1 -1
  7. package/lib/module/components/Composer/Composer.js +13 -9
  8. package/lib/module/components/Composer/Composer.js.map +1 -1
  9. package/lib/module/components/Confirmation/Confirmation.js +29 -13
  10. package/lib/module/components/Confirmation/Confirmation.js.map +1 -1
  11. package/lib/module/components/Confirmation/styles.js +17 -6
  12. package/lib/module/components/Confirmation/styles.js.map +1 -1
  13. package/lib/module/components/Message/MarkdownContent/styles.js +29 -33
  14. package/lib/module/components/Message/MarkdownContent/styles.js.map +1 -1
  15. package/lib/module/components/Message/Message.js +37 -24
  16. package/lib/module/components/Message/Message.js.map +1 -1
  17. package/lib/module/components/Message/MessageWaiting.js +53 -0
  18. package/lib/module/components/Message/MessageWaiting.js.map +1 -0
  19. package/lib/module/components/Message/constants.js +3 -0
  20. package/lib/module/components/Message/constants.js.map +1 -1
  21. package/lib/module/components/Message/styles.js +41 -3
  22. package/lib/module/components/Message/styles.js.map +1 -1
  23. package/lib/module/components/MessageList/MessageList.js +60 -31
  24. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  25. package/lib/module/components/MessageList/MessageListEndButton.js +60 -0
  26. package/lib/module/components/MessageList/MessageListEndButton.js.map +1 -0
  27. package/lib/module/components/MessageList/MessageListRow.js +9 -2
  28. package/lib/module/components/MessageList/MessageListRow.js.map +1 -1
  29. package/lib/module/components/MessageList/styles.js +6 -0
  30. package/lib/module/components/MessageList/styles.js.map +1 -1
  31. package/lib/module/components/MessageList/useMessageListScroll.js +218 -13
  32. package/lib/module/components/MessageList/useMessageListScroll.js.map +1 -1
  33. package/lib/module/components/Process/Process.js +15 -5
  34. package/lib/module/components/Process/Process.js.map +1 -1
  35. package/lib/module/components/Process/ProcessCompactStep.js +21 -12
  36. package/lib/module/components/Process/ProcessCompactStep.js.map +1 -1
  37. package/lib/module/components/Process/ProcessTimelineStep.js +79 -0
  38. package/lib/module/components/Process/ProcessTimelineStep.js.map +1 -0
  39. package/lib/module/components/Process/styles.js +63 -3
  40. package/lib/module/components/Process/styles.js.map +1 -1
  41. package/lib/module/index.js.map +1 -1
  42. package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts +1 -1
  43. package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts.map +1 -1
  44. package/lib/typescript/src/components/Attachments/Attachments.d.ts.map +1 -1
  45. package/lib/typescript/src/components/Attachments/styles.d.ts +4 -0
  46. package/lib/typescript/src/components/Attachments/styles.d.ts.map +1 -1
  47. package/lib/typescript/src/components/Attachments/types.d.ts +2 -1
  48. package/lib/typescript/src/components/Attachments/types.d.ts.map +1 -1
  49. package/lib/typescript/src/components/Composer/Composer.d.ts.map +1 -1
  50. package/lib/typescript/src/components/Confirmation/Confirmation.d.ts.map +1 -1
  51. package/lib/typescript/src/components/Confirmation/styles.d.ts +13 -2
  52. package/lib/typescript/src/components/Confirmation/styles.d.ts.map +1 -1
  53. package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts +32 -66
  54. package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts.map +1 -1
  55. package/lib/typescript/src/components/Message/Message.d.ts.map +1 -1
  56. package/lib/typescript/src/components/Message/MessageWaiting.d.ts +3 -0
  57. package/lib/typescript/src/components/Message/MessageWaiting.d.ts.map +1 -0
  58. package/lib/typescript/src/components/Message/constants.d.ts +3 -0
  59. package/lib/typescript/src/components/Message/constants.d.ts.map +1 -1
  60. package/lib/typescript/src/components/Message/styles.d.ts +40 -2
  61. package/lib/typescript/src/components/Message/styles.d.ts.map +1 -1
  62. package/lib/typescript/src/components/Message/types.d.ts +5 -0
  63. package/lib/typescript/src/components/Message/types.d.ts.map +1 -1
  64. package/lib/typescript/src/components/MessageList/MessageList.d.ts.map +1 -1
  65. package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts +3 -0
  66. package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts.map +1 -0
  67. package/lib/typescript/src/components/MessageList/MessageListRow.d.ts +2 -8
  68. package/lib/typescript/src/components/MessageList/MessageListRow.d.ts.map +1 -1
  69. package/lib/typescript/src/components/MessageList/index.d.ts +1 -1
  70. package/lib/typescript/src/components/MessageList/index.d.ts.map +1 -1
  71. package/lib/typescript/src/components/MessageList/styles.d.ts +6 -0
  72. package/lib/typescript/src/components/MessageList/styles.d.ts.map +1 -1
  73. package/lib/typescript/src/components/MessageList/types.d.ts +41 -2
  74. package/lib/typescript/src/components/MessageList/types.d.ts.map +1 -1
  75. package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts +14 -3
  76. package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts.map +1 -1
  77. package/lib/typescript/src/components/Process/Process.d.ts.map +1 -1
  78. package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts +1 -1
  79. package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts.map +1 -1
  80. package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts +5 -0
  81. package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts.map +1 -0
  82. package/lib/typescript/src/components/Process/styles.d.ts +62 -2
  83. package/lib/typescript/src/components/Process/styles.d.ts.map +1 -1
  84. package/lib/typescript/src/components/Process/types.d.ts +7 -2
  85. package/lib/typescript/src/components/Process/types.d.ts.map +1 -1
  86. package/lib/typescript/src/index.d.ts +1 -1
  87. package/lib/typescript/src/index.d.ts.map +1 -1
  88. package/package.json +1 -1
  89. package/src/components/Attachments/AttachmentItem.tsx +11 -3
  90. package/src/components/Attachments/Attachments.tsx +1 -0
  91. package/src/components/Attachments/styles.ts +1 -0
  92. package/src/components/Attachments/types.ts +2 -1
  93. package/src/components/Composer/Composer.tsx +34 -8
  94. package/src/components/Confirmation/Confirmation.tsx +50 -14
  95. package/src/components/Confirmation/styles.ts +13 -6
  96. package/src/components/Message/MarkdownContent/styles.ts +18 -44
  97. package/src/components/Message/Message.tsx +53 -33
  98. package/src/components/Message/MessageWaiting.tsx +68 -0
  99. package/src/components/Message/constants.ts +4 -0
  100. package/src/components/Message/styles.ts +25 -2
  101. package/src/components/Message/types.ts +6 -0
  102. package/src/components/MessageList/MessageList.tsx +107 -35
  103. package/src/components/MessageList/MessageListEndButton.tsx +61 -0
  104. package/src/components/MessageList/MessageListRow.tsx +12 -12
  105. package/src/components/MessageList/index.ts +1 -0
  106. package/src/components/MessageList/styles.ts +6 -0
  107. package/src/components/MessageList/types.ts +52 -2
  108. package/src/components/MessageList/useMessageListScroll.ts +296 -21
  109. package/src/components/Process/Process.tsx +38 -5
  110. package/src/components/Process/ProcessCompactStep.tsx +32 -16
  111. package/src/components/Process/ProcessTimelineStep.tsx +109 -0
  112. package/src/components/Process/styles.ts +48 -3
  113. package/src/components/Process/types.ts +7 -2
  114. package/src/index.tsx +1 -0
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
 
3
3
  import { Pressable, Text, View } from 'react-native';
4
- import { Button, IconButton, Spinner, useThemedStyles, useColors } from '@unif/react-native-design';
4
+ import { Button, IconButton, useThemedStyles, useColors } from '@unif/react-native-design';
5
5
  import { MarkdownContent } from "./MarkdownContent/MarkdownContent.js";
6
6
  import { createStyles } from "./styles.js";
7
7
  import { isNestedAction } from "./isNestedAction.js";
8
+ import { MessageWaiting } from "./MessageWaiting.js";
8
9
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
10
  export function Message(props) {
10
11
  const {
@@ -18,6 +19,7 @@ export function Message(props) {
18
19
  header,
19
20
  footer,
20
21
  actions = [],
22
+ failureAction,
21
23
  onPress,
22
24
  onLongPress,
23
25
  style,
@@ -27,7 +29,8 @@ export function Message(props) {
27
29
  const colors = useColors();
28
30
  const hasContent = Boolean(props.text?.length) || props.children !== undefined && props.children !== null && props.children !== false || header !== undefined && header !== null && header !== false || footer !== undefined && footer !== null && footer !== false;
29
31
  const waiting = (status === 'pending' || status === 'streaming') && !hasContent;
30
- const contentStyle = [styles.content, fullWidth && styles.fullWidth, surface === 'bubble' && [styles.bubble, placement === 'end' && styles.outgoing], surface === 'outlined' && styles.outlined, status === 'failed' && styles.failed];
32
+ const failedAction = status === 'failed' ? failureAction : undefined;
33
+ const contentStyle = [styles.content, fullWidth && styles.fullWidth, surface === 'bubble' && [styles.bubble, placement === 'end' && styles.outgoing], surface === 'outlined' && styles.outlined, status === 'failed' && styles.failed, waiting && surface === 'bubble' && placement === 'start' && styles.waitingBubble, failedAction && styles.failureContent, failedAction && fullWidth && styles.failureFullWidth];
31
34
  const content = /*#__PURE__*/_jsxs(_Fragment, {
32
35
  children: [header, props.text !== undefined ? props.format === 'markdown' ? /*#__PURE__*/_jsx(MarkdownContent, {
33
36
  text: props.text,
@@ -38,18 +41,27 @@ export function Message(props) {
38
41
  style: [styles.text, surface === 'bubble' && placement === 'end' && styles.outgoingText],
39
42
  numberOfLines: props.numberOfLines,
40
43
  children: props.text
41
- }) : props.children, waiting ? /*#__PURE__*/_jsx(View, {
42
- accessible: true,
43
- accessibilityLabel: "\u6B63\u5728\u7B49\u5F85\u56DE\u590D",
44
- accessibilityState: {
45
- busy: true
46
- },
47
- children: /*#__PURE__*/_jsx(Spinner, {})
48
- }) : null, statusText ? /*#__PURE__*/_jsx(Text, {
44
+ }) : props.children, waiting ? /*#__PURE__*/_jsx(MessageWaiting, {
45
+ label: statusText
46
+ }) : null, statusText && !waiting ? /*#__PURE__*/_jsx(Text, {
49
47
  style: [styles.status, status === 'failed' && styles.errorText],
50
48
  children: statusText
51
49
  }) : null, footer]
52
50
  });
51
+ const bubble = onPress || onLongPress ? /*#__PURE__*/_jsx(Pressable, {
52
+ style: contentStyle,
53
+ onPress: onPress ? event => {
54
+ if (!isNestedAction(event)) onPress();
55
+ } : undefined,
56
+ onLongPress: onLongPress ? event => {
57
+ if (!isNestedAction(event)) onLongPress();
58
+ } : undefined,
59
+ accessible: false,
60
+ children: content
61
+ }) : /*#__PURE__*/_jsx(View, {
62
+ style: contentStyle,
63
+ children: content
64
+ });
53
65
  return /*#__PURE__*/_jsxs(View, {
54
66
  style: [styles.root, placement === 'end' && styles.end, style],
55
67
  testID: testID,
@@ -58,20 +70,21 @@ export function Message(props) {
58
70
  children: [name ? /*#__PURE__*/_jsx(Text, {
59
71
  style: styles.name,
60
72
  children: name
61
- }) : null, onPress || onLongPress ? /*#__PURE__*/_jsx(Pressable, {
62
- style: contentStyle,
63
- onPress: onPress ? event => {
64
- if (!isNestedAction(event)) onPress();
65
- } : undefined,
66
- onLongPress: onLongPress ? event => {
67
- if (!isNestedAction(event)) onLongPress();
68
- } : undefined,
69
- accessible: false,
70
- children: content
71
- }) : /*#__PURE__*/_jsx(View, {
72
- style: contentStyle,
73
- children: content
74
- }), actions.length ? /*#__PURE__*/_jsx(View, {
73
+ }) : null, failedAction ? /*#__PURE__*/_jsxs(View, {
74
+ style: [styles.failureRow, placement === 'end' && styles.end],
75
+ children: [bubble, /*#__PURE__*/_jsx(IconButton, {
76
+ icon: "alert",
77
+ size: "sm",
78
+ variant: "ghost",
79
+ color: colors.error,
80
+ style: styles.failureAction,
81
+ accessibilityLabel: failedAction.label,
82
+ accessibilityHint: failedAction.accessibilityHint,
83
+ disabled: failedAction.disabled,
84
+ loading: failedAction.loading,
85
+ onPress: failedAction.onPress
86
+ })]
87
+ }) : bubble, actions.length ? /*#__PURE__*/_jsx(View, {
75
88
  style: styles.actions,
76
89
  children: actions.map(action => action.icon ? /*#__PURE__*/_jsx(IconButton, {
77
90
  icon: action.icon,
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","Text","View","Button","IconButton","Spinner","useThemedStyles","useColors","MarkdownContent","createStyles","isNestedAction","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Message","props","placement","avatar","name","surface","fullWidth","status","statusText","header","footer","actions","onPress","onLongPress","style","testID","styles","colors","hasContent","Boolean","text","length","children","undefined","waiting","contentStyle","content","bubble","outgoing","outlined","failed","format","onLinkPress","selectable","outgoingText","numberOfLines","accessible","accessibilityLabel","accessibilityState","busy","errorText","root","end","column","columnEnd","event","map","action","icon","size","variant","color","foregroundSubtle","label","accessibilityHint","disabled","loading","id","leftIcon"],"sourceRoot":"../../../../src","sources":["components/Message/Message.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","Text","View","Button","IconButton","useThemedStyles","useColors","MarkdownContent","createStyles","isNestedAction","MessageWaiting","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","Message","props","placement","avatar","name","surface","fullWidth","status","statusText","header","footer","actions","failureAction","onPress","onLongPress","style","testID","styles","colors","hasContent","Boolean","text","length","children","undefined","waiting","failedAction","contentStyle","content","bubble","outgoing","outlined","failed","waitingBubble","failureContent","failureFullWidth","format","onLinkPress","selectable","outgoingText","numberOfLines","label","errorText","event","accessible","root","end","column","columnEnd","failureRow","icon","size","variant","color","error","accessibilityLabel","accessibilityHint","disabled","loading","map","action","foregroundSubtle","id","leftIcon"],"sourceRoot":"../../../../src","sources":["components/Message/Message.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useState } from 'react';
4
+ import { Animated, Easing, Platform, Text, View } from 'react-native';
5
+ import { usePrefersReducedMotion, useThemedStyles } from '@unif/react-native-design';
6
+ import { MESSAGE_WAITING_DOT_DELAYS, MESSAGE_WAITING_DOT_DURATION, MESSAGE_WAITING_DOT_MIN_OPACITY } from "./constants.js";
7
+ import { createStyles } from "./styles.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export function MessageWaiting({
10
+ label
11
+ }) {
12
+ const styles = useThemedStyles(createStyles);
13
+ const reducedMotion = usePrefersReducedMotion();
14
+ const [values] = useState(() => MESSAGE_WAITING_DOT_DELAYS.map(() => new Animated.Value(1)));
15
+ useEffect(() => {
16
+ const animations = MESSAGE_WAITING_DOT_DELAYS.map((delay, index) => {
17
+ const value = values[index];
18
+ value.setValue(reducedMotion ? 1 : MESSAGE_WAITING_DOT_MIN_OPACITY);
19
+ return Animated.sequence([Animated.delay(delay), Animated.loop(Animated.sequence([1, MESSAGE_WAITING_DOT_MIN_OPACITY].map(toValue => Animated.timing(value, {
20
+ toValue,
21
+ duration: MESSAGE_WAITING_DOT_DURATION,
22
+ easing: Easing.inOut(Easing.ease),
23
+ useNativeDriver: Platform.OS !== 'web'
24
+ }))))]);
25
+ });
26
+ if (!reducedMotion) animations.forEach(animation => animation.start());
27
+ return () => animations.forEach(animation => animation.stop());
28
+ }, [reducedMotion, values]);
29
+ return /*#__PURE__*/_jsxs(View, {
30
+ style: styles.waitingRow,
31
+ accessible: true,
32
+ accessibilityLabel: label || '正在等待回复',
33
+ accessibilityState: {
34
+ busy: true
35
+ },
36
+ children: [/*#__PURE__*/_jsx(View, {
37
+ style: styles.waitingDots,
38
+ pointerEvents: "none",
39
+ accessibilityElementsHidden: true,
40
+ importantForAccessibility: "no-hide-descendants",
41
+ children: values.map((opacity, index) => /*#__PURE__*/_jsx(Animated.View, {
42
+ testID: `message-waiting-dot-${index}`,
43
+ style: [styles.waitingDot, {
44
+ opacity
45
+ }]
46
+ }, index))
47
+ }), label ? /*#__PURE__*/_jsx(Text, {
48
+ style: styles.waitingLabel,
49
+ children: label
50
+ }) : null]
51
+ });
52
+ }
53
+ //# sourceMappingURL=MessageWaiting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useState","Animated","Easing","Platform","Text","View","usePrefersReducedMotion","useThemedStyles","MESSAGE_WAITING_DOT_DELAYS","MESSAGE_WAITING_DOT_DURATION","MESSAGE_WAITING_DOT_MIN_OPACITY","createStyles","jsx","_jsx","jsxs","_jsxs","MessageWaiting","label","styles","reducedMotion","values","map","Value","animations","delay","index","value","setValue","sequence","loop","toValue","timing","duration","easing","inOut","ease","useNativeDriver","OS","forEach","animation","start","stop","style","waitingRow","accessible","accessibilityLabel","accessibilityState","busy","children","waitingDots","pointerEvents","accessibilityElementsHidden","importantForAccessibility","opacity","testID","waitingDot","waitingLabel"],"sourceRoot":"../../../../src","sources":["components/Message/MessageWaiting.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export const INTERACTIVE_CONTENT_SELECTOR = 'button,a,input,textarea,select,[role="button"],[role="link"],[role="checkbox"],[role="switch"],[role="menuitem"],[role="tab"]';
4
+ export const MESSAGE_WAITING_DOT_DELAYS = [0, 150, 300];
5
+ export const MESSAGE_WAITING_DOT_DURATION = 600;
6
+ export const MESSAGE_WAITING_DOT_MIN_OPACITY = 0.3;
4
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["INTERACTIVE_CONTENT_SELECTOR"],"sourceRoot":"../../../../src","sources":["components/Message/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,4BAA4B,GACvC,+HAA+H","ignoreList":[]}
1
+ {"version":3,"names":["INTERACTIVE_CONTENT_SELECTOR","MESSAGE_WAITING_DOT_DELAYS","MESSAGE_WAITING_DOT_DURATION","MESSAGE_WAITING_DOT_MIN_OPACITY"],"sourceRoot":"../../../../src","sources":["components/Message/constants.ts"],"mappings":";;AAAA,OAAO,MAAMA,4BAA4B,GACvC,+HAA+H;AAEjI,OAAO,MAAMC,0BAA0B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAU;AAChE,OAAO,MAAMC,4BAA4B,GAAG,GAAG;AAC/C,OAAO,MAAMC,+BAA+B,GAAG,GAAG","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
- import { radius, space, type } from '@unif/react-native-design';
4
+ import { r, radius, space, type } from '@unif/react-native-design';
5
5
  export const createStyles = colors => StyleSheet.create({
6
6
  root: {
7
7
  flexDirection: 'row',
@@ -50,8 +50,46 @@ export const createStyles = colors => StyleSheet.create({
50
50
  borderColor: colors.outline
51
51
  },
52
52
  failed: {
53
- borderWidth: 1,
54
- borderColor: colors.error
53
+ opacity: 0.7
54
+ },
55
+ failureRow: {
56
+ flexDirection: 'row',
57
+ alignItems: 'center',
58
+ alignSelf: 'stretch',
59
+ gap: space[2]
60
+ },
61
+ failureContent: {
62
+ flexShrink: 1
63
+ },
64
+ failureAction: {
65
+ alignSelf: 'center'
66
+ },
67
+ failureFullWidth: {
68
+ flex: 1
69
+ },
70
+ waitingBubble: {
71
+ width: r(240),
72
+ borderTopLeftRadius: 0
73
+ },
74
+ waitingRow: {
75
+ flexDirection: 'row',
76
+ alignItems: 'center',
77
+ gap: space[2]
78
+ },
79
+ waitingDots: {
80
+ flexDirection: 'row',
81
+ gap: r(3)
82
+ },
83
+ waitingDot: {
84
+ width: r(6),
85
+ height: r(6),
86
+ borderRadius: r(3),
87
+ backgroundColor: colors.foregroundSubtle
88
+ },
89
+ waitingLabel: {
90
+ fontSize: type.xxs,
91
+ color: colors.foregroundSubtle,
92
+ flexShrink: 1
55
93
  },
56
94
  text: {
57
95
  fontSize: type.sm,
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","radius","space","type","createStyles","colors","create","root","flexDirection","alignItems","gap","minWidth","end","column","flex","maxWidth","columnEnd","fullWidth","alignSelf","content","bubble","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","surface","outgoing","primary","outgoingText","color","onPrimary","outlined","borderWidth","borderColor","outline","failed","error","text","fontSize","sm","lineHeight","foreground","name","foregroundMuted","status","errorText","actions","flexWrap","marginTop"],"sourceRoot":"../../../../src","sources":["components/Message/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,MAAM,EAAEC,KAAK,EAAEC,IAAI,QAAQ,2BAA2B;AAG/D,OAAO,MAAMC,YAAY,GAAIC,MAAmB,IAC9CL,UAAU,CAACM,MAAM,CAAC;EAChBC,IAAI,EAAE;IACJC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,YAAY;IACxBC,GAAG,EAAER,KAAK,CAAC,CAAC,CAAC;IACbS,QAAQ,EAAE;EACZ,CAAC;EACDC,GAAG,EAAE;IAAEJ,aAAa,EAAE;EAAc,CAAC;EACrCK,MAAM,EAAE;IACNC,IAAI,EAAE,CAAC;IACPC,QAAQ,EAAE,MAAM;IAChBL,GAAG,EAAER,KAAK,CAAC,CAAC,CAAC;IACbO,UAAU,EAAE;EACd,CAAC;EACDO,SAAS,EAAE;IAAEP,UAAU,EAAE;EAAW,CAAC;EACrCQ,SAAS,EAAE;IAAEC,SAAS,EAAE,SAAS;IAAEH,QAAQ,EAAE;EAAO,CAAC;EACrDI,OAAO,EAAE;IAAER,QAAQ,EAAE,CAAC;IAAEI,QAAQ,EAAE,KAAK;IAAEL,GAAG,EAAER,KAAK,CAAC,CAAC;EAAE,CAAC;EACxDkB,MAAM,EAAE;IACNC,iBAAiB,EAAEnB,KAAK,CAAC,CAAC,CAAC;IAC3BoB,eAAe,EAAEpB,KAAK,CAAC,CAAC,CAAC;IACzBqB,YAAY,EAAEtB,MAAM,CAAC,KAAK,CAAC;IAC3BuB,eAAe,EAAEnB,MAAM,CAACoB;EAC1B,CAAC;EACDC,QAAQ,EAAE;IAAEF,eAAe,EAAEnB,MAAM,CAACsB;EAAQ,CAAC;EAC7CC,YAAY,EAAE;IAAEC,KAAK,EAAExB,MAAM,CAACyB;EAAU,CAAC;EACzCC,QAAQ,EAAE;IACRV,iBAAiB,EAAEnB,KAAK,CAAC,CAAC,CAAC;IAC3BoB,eAAe,EAAEpB,KAAK,CAAC,CAAC,CAAC;IACzBqB,YAAY,EAAEtB,MAAM,CAAC,KAAK,CAAC;IAC3B+B,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE5B,MAAM,CAAC6B;EACtB,CAAC;EACDC,MAAM,EAAE;IAAEH,WAAW,EAAE,CAAC;IAAEC,WAAW,EAAE5B,MAAM,CAAC+B;EAAM,CAAC;EACrDC,IAAI,EAAE;IACJC,QAAQ,EAAEnC,IAAI,CAACoC,EAAE;IACjBC,UAAU,EAAErC,IAAI,CAACoC,EAAE,GAAG,GAAG;IACzBV,KAAK,EAAExB,MAAM,CAACoC;EAChB,CAAC;EACDC,IAAI,EAAE;IAAEJ,QAAQ,EAAEnC,IAAI,CAACoC,EAAE;IAAEV,KAAK,EAAExB,MAAM,CAACsC;EAAgB,CAAC;EAC1DC,MAAM,EAAE;IAAEN,QAAQ,EAAEnC,IAAI,CAACoC,EAAE;IAAEV,KAAK,EAAExB,MAAM,CAACsC;EAAgB,CAAC;EAC5DE,SAAS,EAAE;IAAEhB,KAAK,EAAExB,MAAM,CAAC+B;EAAM,CAAC;EAClCU,OAAO,EAAE;IACPtC,aAAa,EAAE,KAAK;IACpBuC,QAAQ,EAAE,MAAM;IAChBrC,GAAG,EAAER,KAAK,CAAC,CAAC,CAAC;IACb8C,SAAS,EAAE9C,KAAK,CAAC,CAAC;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","r","radius","space","type","createStyles","colors","create","root","flexDirection","alignItems","gap","minWidth","end","column","flex","maxWidth","columnEnd","fullWidth","alignSelf","content","bubble","paddingHorizontal","paddingVertical","borderRadius","backgroundColor","surface","outgoing","primary","outgoingText","color","onPrimary","outlined","borderWidth","borderColor","outline","failed","opacity","failureRow","failureContent","flexShrink","failureAction","failureFullWidth","waitingBubble","width","borderTopLeftRadius","waitingRow","waitingDots","waitingDot","height","foregroundSubtle","waitingLabel","fontSize","xxs","text","sm","lineHeight","foreground","name","foregroundMuted","status","errorText","error","actions","flexWrap","marginTop"],"sourceRoot":"../../../../src","sources":["components/Message/styles.ts"],"mappings":"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","ignoreList":[]}
@@ -1,13 +1,14 @@
1
1
  "use strict";
2
2
 
3
- import { useCallback, useImperativeHandle, useMemo, useRef } from 'react';
4
- import { FlatList, View } from 'react-native';
5
- import { Button, IconButton, Spinner, useThemedStyles } from '@unif/react-native-design';
3
+ import { useCallback, useImperativeHandle, useLayoutEffect, useMemo, useRef } from 'react';
4
+ import { FlatList, StyleSheet, View } from 'react-native';
5
+ import { Button, useThemedStyles } from '@unif/react-native-design';
6
6
  import { DEFAULT_END_THRESHOLD } from "./constants.js";
7
7
  import { createStyles } from "./styles.js";
8
8
  import { useWebPrependAnchor } from "./webPrependAnchor/index.js";
9
9
  import { useMessageListScroll } from "./useMessageListScroll.js";
10
10
  import { MessageListRow } from "./MessageListRow.js";
11
+ import { MessageListEndButton } from "./MessageListEndButton.js";
11
12
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
13
  const MAINTAIN_VISIBLE_POSITION = {
13
14
  minIndexForVisible: 0
@@ -39,6 +40,9 @@ export function MessageList({
39
40
  }) {
40
41
  const styles = useThemedStyles(createStyles);
41
42
  const listRef = useRef(null);
43
+ const listTestID = useRef(testID);
44
+ listTestID.current = testID;
45
+ const contentStyle = StyleSheet.flatten(contentContainerStyle);
42
46
  const keys = useMemo(() => items.map(keyExtractor), [items, keyExtractor]);
43
47
  const {
44
48
  getRowNativeID,
@@ -51,11 +55,19 @@ export function MessageList({
51
55
  });
52
56
  const {
53
57
  atEnd,
58
+ anchorMinimumHeight,
59
+ anchorToItem,
60
+ onCellLayout,
61
+ onItemLayout,
62
+ onCellUnmount,
63
+ onFooterLayout,
64
+ onScrollToIndexFailed,
54
65
  scrollToEnd,
55
66
  onLayout,
56
67
  onContentSizeChange,
57
68
  onScroll,
58
69
  onUserScrollBegin,
70
+ onMomentumScrollBegin,
59
71
  onScrollEndDrag,
60
72
  onMomentumScrollEnd
61
73
  } = useMessageListScroll({
@@ -65,24 +77,53 @@ export function MessageList({
65
77
  followOutput,
66
78
  endThreshold,
67
79
  onAtEndChange,
80
+ hasFooter: !!footer,
81
+ contentMinimumHeight: contentStyle?.minHeight,
82
+ contentBottomPadding: contentStyle?.paddingBottom ?? contentStyle?.paddingVertical ?? contentStyle?.padding,
68
83
  preservingPrependRef,
69
84
  cancelPrependPreservation
70
85
  });
71
86
  useImperativeHandle(ref, () => ({
72
- scrollToEnd
73
- }), [scrollToEnd]);
87
+ scrollToEnd,
88
+ anchorToItem
89
+ }), [scrollToEnd, anchorToItem]);
90
+ const CellRenderer = useCallback(function MessageListCell({
91
+ cellKey,
92
+ index,
93
+ children,
94
+ style: cellStyle,
95
+ onLayout: reportLayout,
96
+ onFocusCapture
97
+ }) {
98
+ const currentIndex = useRef(index);
99
+ currentIndex.current = index;
100
+ useLayoutEffect(() => () => onCellUnmount(cellKey, currentIndex.current), [cellKey]);
101
+ return /*#__PURE__*/_jsx(View, {
102
+ style: cellStyle,
103
+ onFocusCapture: onFocusCapture,
104
+ testID: listTestID.current ? `${listTestID.current}-cell-${encodeURIComponent(cellKey)}` : undefined,
105
+ onLayout: event => {
106
+ reportLayout?.(event);
107
+ onCellLayout(cellKey, index, event.nativeEvent.layout);
108
+ },
109
+ children: children
110
+ });
111
+ }, [onCellLayout, onCellUnmount]);
74
112
  const renderRow = useCallback(({
75
113
  item,
76
114
  index
77
115
  }) => /*#__PURE__*/_jsx(MessageListRow, {
78
116
  item: item,
79
117
  index: index,
118
+ itemKey: keys[index],
119
+ onItemLayout: onItemLayout,
120
+ testID: testID ? `${testID}-item-${encodeURIComponent(keys[index])}` : undefined,
80
121
  previous: renderSeparator ? items[index - 1] : undefined,
81
122
  nativeID: getRowNativeID(keys[index]),
82
123
  renderItem: renderItem,
83
124
  renderSeparator: renderSeparator,
84
125
  extraData: extraData
85
- }), [extraData, getRowNativeID, items, keys, renderItem, renderSeparator]);
126
+ }), [extraData, getRowNativeID, items, keys, onItemLayout, renderItem, renderSeparator, testID]);
86
127
  const history = hasEarlier && onRequestEarlier;
87
128
  const hasHeader = Boolean(header || history);
88
129
  const listHeader = useMemo(() => hasHeader ? /*#__PURE__*/_jsxs(View, {
@@ -94,8 +135,9 @@ export function MessageList({
94
135
  }) : null]
95
136
  }) : undefined, [hasHeader, header, history, loadingEarlier, onRequestEarlier]);
96
137
  const listFooter = useMemo(() => footer ? /*#__PURE__*/_jsx(View, {
138
+ onLayout: onFooterLayout,
97
139
  children: footer
98
- }) : undefined, [footer]);
140
+ }) : undefined, [footer, onFooterLayout]);
99
141
  const listEmpty = useMemo(() => empty ? /*#__PURE__*/_jsx(_Fragment, {
100
142
  children: empty
101
143
  }) : undefined, [empty]);
@@ -110,12 +152,15 @@ export function MessageList({
110
152
  keyExtractor: keyExtractor,
111
153
  extraData: extraData,
112
154
  renderItem: renderRow,
155
+ CellRendererComponent: CellRenderer,
113
156
  ListHeaderComponent: listHeader,
114
157
  ListFooterComponent: listFooter,
115
158
  ListEmptyComponent: listEmpty,
116
- maintainVisibleContentPosition: items.length > 0 ? MAINTAIN_VISIBLE_POSITION : undefined,
159
+ maintainVisibleContentPosition: items.length > 0 && anchorMinimumHeight === undefined ? MAINTAIN_VISIBLE_POSITION : undefined,
117
160
  keyboardDismissMode: keyboardDismissMode,
118
- contentContainerStyle: contentContainerStyle,
161
+ contentContainerStyle: anchorMinimumHeight ? [contentContainerStyle, {
162
+ minHeight: anchorMinimumHeight
163
+ }] : contentContainerStyle,
119
164
  showsVerticalScrollIndicator: showsVerticalScrollIndicator,
120
165
  keyboardShouldPersistTaps: "handled",
121
166
  scrollEventThrottle: 16,
@@ -123,29 +168,13 @@ export function MessageList({
123
168
  onContentSizeChange: onContentSizeChange,
124
169
  onScroll: onScroll,
125
170
  onScrollBeginDrag: onUserScrollBegin,
126
- onMomentumScrollBegin: onUserScrollBegin,
171
+ onMomentumScrollBegin: onMomentumScrollBegin,
127
172
  onScrollEndDrag: onScrollEndDrag,
128
- onMomentumScrollEnd: onMomentumScrollEnd
129
- }), showScrollToEnd && items.length > 0 && !atEnd ? /*#__PURE__*/_jsxs(View, {
130
- style: styles.returnToEnd,
131
- pointerEvents: "box-none",
132
- children: [scrollToEndBusy ? /*#__PURE__*/_jsx(View, {
133
- style: styles.returnProgress,
134
- pointerEvents: "none",
135
- children: /*#__PURE__*/_jsx(Spinner, {
136
- size: 44,
137
- thickness: 2
138
- })
139
- }) : null, /*#__PURE__*/_jsx(IconButton, {
140
- icon: "arrow-down",
141
- accessibilityLabel: scrollToEndBusy ? '回到最新消息,正在处理' : '回到最新消息',
142
- variant: "ghost",
143
- size: "md",
144
- surfaceSize: 36,
145
- iconSize: 18,
146
- style: styles.returnButton,
147
- onPress: () => scrollToEnd()
148
- })]
173
+ onMomentumScrollEnd: onMomentumScrollEnd,
174
+ onScrollToIndexFailed: onScrollToIndexFailed
175
+ }), showScrollToEnd && items.length > 0 && !atEnd ? /*#__PURE__*/_jsx(MessageListEndButton, {
176
+ busy: scrollToEndBusy,
177
+ onPress: () => scrollToEnd()
149
178
  }) : null]
150
179
  });
151
180
  }
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useImperativeHandle","useMemo","useRef","FlatList","View","Button","IconButton","Spinner","useThemedStyles","DEFAULT_END_THRESHOLD","createStyles","useWebPrependAnchor","useMessageListScroll","MessageListRow","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MAINTAIN_VISIBLE_POSITION","minIndexForVisible","MessageList","items","keyExtractor","renderItem","extraData","header","footer","empty","renderSeparator","initialPosition","followOutput","endThreshold","showScrollToEnd","scrollToEndBusy","onAtEndChange","hasEarlier","loadingEarlier","onRequestEarlier","keyboardDismissMode","contentContainerStyle","showsVerticalScrollIndicator","style","testID","ref","styles","listRef","keys","map","getRowNativeID","preservingPrependRef","cancelPrependPreservation","itemsIdentity","atEnd","scrollToEnd","onLayout","onContentSizeChange","onScroll","onUserScrollBegin","onScrollEndDrag","onMomentumScrollEnd","renderRow","item","index","previous","undefined","nativeID","history","hasHeader","Boolean","listHeader","children","label","variant","loading","onPress","listFooter","listEmpty","root","list","data","ListHeaderComponent","ListFooterComponent","ListEmptyComponent","maintainVisibleContentPosition","length","keyboardShouldPersistTaps","scrollEventThrottle","onScrollBeginDrag","onMomentumScrollBegin","returnToEnd","pointerEvents","returnProgress","size","thickness","icon","accessibilityLabel","surfaceSize","iconSize","returnButton"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageList.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useImperativeHandle","useLayoutEffect","useMemo","useRef","FlatList","StyleSheet","View","Button","useThemedStyles","DEFAULT_END_THRESHOLD","createStyles","useWebPrependAnchor","useMessageListScroll","MessageListRow","MessageListEndButton","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","MAINTAIN_VISIBLE_POSITION","minIndexForVisible","MessageList","items","keyExtractor","renderItem","extraData","header","footer","empty","renderSeparator","initialPosition","followOutput","endThreshold","showScrollToEnd","scrollToEndBusy","onAtEndChange","hasEarlier","loadingEarlier","onRequestEarlier","keyboardDismissMode","contentContainerStyle","showsVerticalScrollIndicator","style","testID","ref","styles","listRef","listTestID","current","contentStyle","flatten","keys","map","getRowNativeID","preservingPrependRef","cancelPrependPreservation","itemsIdentity","atEnd","anchorMinimumHeight","anchorToItem","onCellLayout","onItemLayout","onCellUnmount","onFooterLayout","onScrollToIndexFailed","scrollToEnd","onLayout","onContentSizeChange","onScroll","onUserScrollBegin","onMomentumScrollBegin","onScrollEndDrag","onMomentumScrollEnd","hasFooter","contentMinimumHeight","minHeight","contentBottomPadding","paddingBottom","paddingVertical","padding","CellRenderer","MessageListCell","cellKey","index","children","cellStyle","reportLayout","onFocusCapture","currentIndex","encodeURIComponent","undefined","event","nativeEvent","layout","renderRow","item","itemKey","previous","nativeID","history","hasHeader","Boolean","listHeader","label","variant","loading","onPress","listFooter","listEmpty","root","list","data","CellRendererComponent","ListHeaderComponent","ListFooterComponent","ListEmptyComponent","maintainVisibleContentPosition","length","keyboardShouldPersistTaps","scrollEventThrottle","onScrollBeginDrag","busy"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageList.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from 'react';
4
+ import { Animated, View } from 'react-native';
5
+ import { IconButton, Reveal, Spinner, usePrefersReducedMotion, useThemedStyles } from '@unif/react-native-design';
6
+ import { createStyles } from "./styles.js";
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ export function MessageListEndButton({
9
+ busy,
10
+ onPress
11
+ }) {
12
+ const styles = useThemedStyles(createStyles);
13
+ const reducedMotion = usePrefersReducedMotion();
14
+ const scale = useRef(new Animated.Value(reducedMotion ? 1 : 0.8)).current;
15
+ useEffect(() => {
16
+ if (reducedMotion) {
17
+ scale.setValue(1);
18
+ return;
19
+ }
20
+ const animation = Animated.spring(scale, {
21
+ toValue: 1,
22
+ friction: 6,
23
+ tension: 120,
24
+ useNativeDriver: true
25
+ });
26
+ animation.start();
27
+ return () => animation.stop();
28
+ }, [reducedMotion, scale]);
29
+ return /*#__PURE__*/_jsx(View, {
30
+ style: styles.returnToEnd,
31
+ pointerEvents: "box-none",
32
+ children: /*#__PURE__*/_jsx(Reveal, {
33
+ children: /*#__PURE__*/_jsxs(Animated.View, {
34
+ style: [styles.returnVisual, {
35
+ transform: [{
36
+ scale
37
+ }]
38
+ }],
39
+ children: [busy ? /*#__PURE__*/_jsx(View, {
40
+ style: styles.returnProgress,
41
+ pointerEvents: "none",
42
+ children: /*#__PURE__*/_jsx(Spinner, {
43
+ size: 44,
44
+ thickness: 2
45
+ })
46
+ }) : null, /*#__PURE__*/_jsx(IconButton, {
47
+ icon: "arrow-down",
48
+ accessibilityLabel: busy ? '回到最新消息,正在处理' : '回到最新消息',
49
+ variant: "ghost",
50
+ size: "md",
51
+ surfaceSize: 36,
52
+ iconSize: 18,
53
+ style: styles.returnButton,
54
+ onPress: onPress
55
+ })]
56
+ })
57
+ })
58
+ });
59
+ }
60
+ //# sourceMappingURL=MessageListEndButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","View","IconButton","Reveal","Spinner","usePrefersReducedMotion","useThemedStyles","createStyles","jsx","_jsx","jsxs","_jsxs","MessageListEndButton","busy","onPress","styles","reducedMotion","scale","Value","current","setValue","animation","spring","toValue","friction","tension","useNativeDriver","start","stop","style","returnToEnd","pointerEvents","children","returnVisual","transform","returnProgress","size","thickness","icon","accessibilityLabel","variant","surfaceSize","iconSize","returnButton"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageListEndButton.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,EAAEC,IAAI,QAAQ,cAAc;AAC7C,SACEC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,uBAAuB,EACvBC,eAAe,QACV,2BAA2B;AAClC,SAASC,YAAY,QAAQ,aAAU;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGxC,OAAO,SAASC,oBAAoBA,CAAC;EACnCC,IAAI;EACJC;AACyB,CAAC,EAAE;EAC5B,MAAMC,MAAM,GAAGT,eAAe,CAACC,YAAY,CAAC;EAC5C,MAAMS,aAAa,GAAGX,uBAAuB,CAAC,CAAC;EAC/C,MAAMY,KAAK,GAAGlB,MAAM,CAAC,IAAIC,QAAQ,CAACkB,KAAK,CAACF,aAAa,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAACG,OAAO;EACzErB,SAAS,CAAC,MAAM;IACd,IAAIkB,aAAa,EAAE;MACjBC,KAAK,CAACG,QAAQ,CAAC,CAAC,CAAC;MACjB;IACF;IACA,MAAMC,SAAS,GAAGrB,QAAQ,CAACsB,MAAM,CAACL,KAAK,EAAE;MACvCM,OAAO,EAAE,CAAC;MACVC,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAE,GAAG;MACZC,eAAe,EAAE;IACnB,CAAC,CAAC;IACFL,SAAS,CAACM,KAAK,CAAC,CAAC;IACjB,OAAO,MAAMN,SAAS,CAACO,IAAI,CAAC,CAAC;EAC/B,CAAC,EAAE,CAACZ,aAAa,EAAEC,KAAK,CAAC,CAAC;EAC1B,oBACER,IAAA,CAACR,IAAI;IAAC4B,KAAK,EAAEd,MAAM,CAACe,WAAY;IAACC,aAAa,EAAC,UAAU;IAAAC,QAAA,eACvDvB,IAAA,CAACN,MAAM;MAAA6B,QAAA,eACLrB,KAAA,CAACX,QAAQ,CAACC,IAAI;QACZ4B,KAAK,EAAE,CAACd,MAAM,CAACkB,YAAY,EAAE;UAAEC,SAAS,EAAE,CAAC;YAAEjB;UAAM,CAAC;QAAE,CAAC,CAAE;QAAAe,QAAA,GAExDnB,IAAI,gBACHJ,IAAA,CAACR,IAAI;UAAC4B,KAAK,EAAEd,MAAM,CAACoB,cAAe;UAACJ,aAAa,EAAC,MAAM;UAAAC,QAAA,eACtDvB,IAAA,CAACL,OAAO;YAACgC,IAAI,EAAE,EAAG;YAACC,SAAS,EAAE;UAAE,CAAE;QAAC,CAC/B,CAAC,GACL,IAAI,eACR5B,IAAA,CAACP,UAAU;UACToC,IAAI,EAAC,YAAY;UACjBC,kBAAkB,EAChB1B,IAAI,GAAG,aAAa,GAAG,QACxB;UACD2B,OAAO,EAAC,OAAO;UACfJ,IAAI,EAAC,IAAI;UACTK,WAAW,EAAE,EAAG;UAChBC,QAAQ,EAAE,EAAG;UACbb,KAAK,EAAEd,MAAM,CAAC4B,YAAa;UAC3B7B,OAAO,EAAEA;QAAQ,CAClB,CAAC;MAAA,CACW;IAAC,CACV;EAAC,CACL,CAAC;AAEX","ignoreList":[]}
@@ -2,18 +2,25 @@
2
2
 
3
3
  import { memo } from 'react';
4
4
  import { View } from 'react-native';
5
- import { jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
6
6
  function MessageListRowContent({
7
7
  item,
8
8
  previous,
9
9
  index,
10
10
  nativeID,
11
+ itemKey,
12
+ testID,
13
+ onItemLayout,
11
14
  renderItem,
12
15
  renderSeparator
13
16
  }) {
14
17
  return /*#__PURE__*/_jsxs(View, {
15
18
  nativeID: nativeID,
16
- children: [index > 0 && renderSeparator ? renderSeparator(previous, item) : null, renderItem(item, index)]
19
+ children: [index > 0 && renderSeparator ? renderSeparator(previous, item) : null, /*#__PURE__*/_jsx(View, {
20
+ testID: testID,
21
+ onLayout: event => onItemLayout(itemKey, index, event.nativeEvent.layout.y),
22
+ children: renderItem(item, index)
23
+ })]
17
24
  });
18
25
  }
19
26
 
@@ -1 +1 @@
1
- {"version":3,"names":["memo","View","jsxs","_jsxs","MessageListRowContent","item","previous","index","nativeID","renderItem","renderSeparator","children","MessageListRow"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageListRow.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,IAAA,IAAAC,KAAA;AAapC,SAASC,qBAAqBA,CAAI;EAChCC,IAAI;EACJC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACRC,UAAU;EACVC;AACsB,CAAC,EAAE;EACzB,oBACEP,KAAA,CAACF,IAAI;IAACO,QAAQ,EAAEA,QAAS;IAAAG,QAAA,GACtBJ,KAAK,GAAG,CAAC,IAAIG,eAAe,GAAGA,eAAe,CAACJ,QAAQ,EAAGD,IAAI,CAAC,GAAG,IAAI,EACtEI,UAAU,CAACJ,IAAI,EAAEE,KAAK,CAAC;EAAA,CACpB,CAAC;AAEX;;AAEA;AACA;AACA,OAAO,MAAMK,cAAc,gBAAGZ,IAAI,CAChCI,qBACF,CAAiC","ignoreList":[]}
1
+ {"version":3,"names":["memo","View","jsx","_jsx","jsxs","_jsxs","MessageListRowContent","item","previous","index","nativeID","itemKey","testID","onItemLayout","renderItem","renderSeparator","children","onLayout","event","nativeEvent","layout","y","MessageListRow"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageListRow.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,IAAI,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAGpC,SAASC,qBAAqBA,CAAI;EAChCC,IAAI;EACJC,QAAQ;EACRC,KAAK;EACLC,QAAQ;EACRC,OAAO;EACPC,MAAM;EACNC,YAAY;EACZC,UAAU;EACVC;AACsB,CAAC,EAAE;EACzB,oBACEV,KAAA,CAACJ,IAAI;IAACS,QAAQ,EAAEA,QAAS;IAAAM,QAAA,GACtBP,KAAK,GAAG,CAAC,IAAIM,eAAe,GAAGA,eAAe,CAACP,QAAQ,EAAGD,IAAI,CAAC,GAAG,IAAI,eACvEJ,IAAA,CAACF,IAAI;MACHW,MAAM,EAAEA,MAAO;MACfK,QAAQ,EAAGC,KAAK,IACdL,YAAY,CAACF,OAAO,EAAEF,KAAK,EAAES,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,CAAC,CACxD;MAAAL,QAAA,EAEAF,UAAU,CAACP,IAAI,EAAEE,KAAK;IAAC,CACpB,CAAC;EAAA,CACH,CAAC;AAEX;;AAEA;AACA;AACA,OAAO,MAAMa,cAAc,gBAAGtB,IAAI,CAChCM,qBACF,CAAiC","ignoreList":[]}
@@ -20,6 +20,12 @@ export const createStyles = (colors, shadows) => StyleSheet.create({
20
20
  justifyContent: 'center'
21
21
  },
22
22
  returnProgress: StyleSheet.absoluteFill,
23
+ returnVisual: {
24
+ width: 44,
25
+ height: 44,
26
+ alignItems: 'center',
27
+ justifyContent: 'center'
28
+ },
23
29
  returnButton: {
24
30
  alignSelf: 'center',
25
31
  borderRadius: 18,