@unif/react-native-chat 4.6.1 → 4.6.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/module/components/Message/MarkdownContent/MarkdownContent.js +14 -0
- package/lib/module/components/Message/MarkdownContent/MarkdownContent.js.map +1 -1
- package/lib/module/components/MessageList/MessageList.js +2 -1
- package/lib/module/components/MessageList/MessageList.js.map +1 -1
- package/lib/module/components/MessageList/useMessageListScroll.js +69 -31
- package/lib/module/components/MessageList/useMessageListScroll.js.map +1 -1
- package/lib/typescript/src/components/Message/MarkdownContent/MarkdownContent.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/MessageList.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/types.d.ts +1 -0
- package/lib/typescript/src/components/MessageList/types.d.ts.map +1 -1
- package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts +1 -0
- package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/components/Message/MarkdownContent/MarkdownContent.tsx +19 -0
- package/src/components/MessageList/MessageList.tsx +2 -1
- package/src/components/MessageList/types.ts +1 -0
- package/src/components/MessageList/useMessageListScroll.ts +106 -51
|
@@ -19,6 +19,20 @@ export function MarkdownContent({
|
|
|
19
19
|
const styles = useThemedStyles(outgoing ? createOutgoingStyles : createStyles);
|
|
20
20
|
const markdown = useMemo(() => {
|
|
21
21
|
const instance = new Renderer();
|
|
22
|
+
const renderList = instance.list.bind(instance);
|
|
23
|
+
instance.list = (ordered, items, listStyle, textStyle, startIndex = 1) => {
|
|
24
|
+
if (!ordered) return renderList(ordered, items, listStyle, textStyle, startIndex);
|
|
25
|
+
// 每行独立保留编号宽度,追加两位数编号不再挤压已有正文。
|
|
26
|
+
return items.map((item, index) => {
|
|
27
|
+
const content = /*#__PURE__*/isValidElement(item) ? /*#__PURE__*/cloneElement(item, {
|
|
28
|
+
key: index
|
|
29
|
+
}) : item;
|
|
30
|
+
const row = renderList(true, [content], listStyle, textStyle, startIndex + index);
|
|
31
|
+
return /*#__PURE__*/isValidElement(row) ? /*#__PURE__*/cloneElement(row, {
|
|
32
|
+
key: index
|
|
33
|
+
}) : row;
|
|
34
|
+
});
|
|
35
|
+
};
|
|
22
36
|
const renderCode = instance.code.bind(instance);
|
|
23
37
|
instance.code = (value, language, containerStyle, textStyle) => renderCode(value, language, containerStyle, {
|
|
24
38
|
...textStyle,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Children","cloneElement","Fragment","isValidElement","useMemo","Pressable","Text","View","Renderer","useMarkdown","useTheme","useThemedStyles","createStyles","createOutgoingStyles","MarkdownImage","jsx","_jsx","MarkdownContent","text","onLinkPress","outgoing","style","scheme","styles","markdown","instance","
|
|
1
|
+
{"version":3,"names":["Children","cloneElement","Fragment","isValidElement","useMemo","Pressable","Text","View","Renderer","useMarkdown","useTheme","useThemedStyles","createStyles","createOutgoingStyles","MarkdownImage","jsx","_jsx","MarkdownContent","text","onLinkPress","outgoing","style","scheme","styles","markdown","instance","renderList","list","bind","ordered","items","listStyle","textStyle","startIndex","map","item","index","content","key","row","renderCode","code","value","language","containerStyle","codeText","renderTable","table","args","children","getKey","renderImage","image","uri","alt","imageStyle","title","endsWith","undefined","label","link","href","linkStyle","selectable","accessibilityRole","accessibilityLabel","onPress","event","stopPropagation","linkImage","renderer","nodes","colorScheme","toArray","length"],"sourceRoot":"../../../../../src","sources":["components/Message/MarkdownContent/MarkdownContent.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -56,6 +56,7 @@ export function MessageList({
|
|
|
56
56
|
});
|
|
57
57
|
const {
|
|
58
58
|
atEnd,
|
|
59
|
+
positioningAnchor,
|
|
59
60
|
anchorMinimumHeight,
|
|
60
61
|
anchorToItem,
|
|
61
62
|
onCellLayout,
|
|
@@ -157,7 +158,7 @@ export function MessageList({
|
|
|
157
158
|
ListHeaderComponent: listHeader,
|
|
158
159
|
ListFooterComponent: listFooter,
|
|
159
160
|
ListEmptyComponent: listEmpty,
|
|
160
|
-
maintainVisibleContentPosition: items.length > 0 &&
|
|
161
|
+
maintainVisibleContentPosition: items.length > 0 && !positioningAnchor ? MAINTAIN_VISIBLE_POSITION : undefined,
|
|
161
162
|
keyboardDismissMode: keyboardDismissMode,
|
|
162
163
|
contentContainerStyle: anchorMinimumHeight ? [contentContainerStyle, {
|
|
163
164
|
minHeight: anchorMinimumHeight
|
|
@@ -1 +1 @@
|
|
|
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","scrollToEndBottomInset","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","bottomInset","Number","isFinite","Math","max"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageList.tsx"],"mappings":";;AAAA,SACEA,WAAW,EACXC,mBAAmB,EACnBC,eAAe,EACfC,OAAO,EACPC,MAAM,QACD,OAAO;AAEd,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAEzD,SAASC,MAAM,EAAEC,eAAe,QAAQ,2BAA2B;AACnE,SAASC,qBAAqB,QAAQ,gBAAa;AACnD,SAASC,YAAY,QAAQ,aAAU;AACvC,SAASC,mBAAmB,QAAQ,6BAAoB;AACxD,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,cAAc,QAAQ,qBAAkB;AACjD,SAASC,oBAAoB,QAAQ,2BAAwB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAO9D,MAAMC,yBAAyB,GAAG;EAAEC,kBAAkB,EAAE;AAAE,CAAC;AAE3D,OAAO,SAASC,WAAWA,CAAI;EAC7BC,KAAK;EACLC,YAAY;EACZC,UAAU;EACVC,SAAS;EACTC,MAAM;EACNC,MAAM;EACNC,KAAK;EACLC,eAAe;EACfC,eAAe,GAAG,KAAK;EACvBC,YAAY,GAAG,WAAW;EAC1BC,YAAY,GAAGzB,qBAAqB;EACpC0B,eAAe,GAAG,IAAI;EACtBC,eAAe,GAAG,KAAK;EACvBC,sBAAsB,GAAG,CAAC;EAC1BC,aAAa;EACbC,UAAU,GAAG,KAAK;EAClBC,cAAc,GAAG,KAAK;EACtBC,gBAAgB;EAChBC,mBAAmB,GAAG,SAAS;EAC/BC,qBAAqB;EACrBC,4BAA4B,GAAG,KAAK;EACpCC,KAAK;EACLC,MAAM;EACNC;AACsD,CAAC,EAAE;EACzD,MAAMC,MAAM,GAAGxC,eAAe,CAACE,YAAY,CAAC;EAC5C,MAAMuC,OAAO,GAAG9C,MAAM,CAAc,IAAI,CAAC;EACzC,MAAM+C,UAAU,GAAG/C,MAAM,CAAC2C,MAAM,CAAC;EACjCI,UAAU,CAACC,OAAO,GAAGL,MAAM;EAC3B,MAAMM,YAAY,GAAG/C,UAAU,CAACgD,OAAO,CAACV,qBAAqB,CAAC;EAC9D,MAAMW,IAAI,GAAGpD,OAAO,CAAC,MAAMsB,KAAK,CAAC+B,GAAG,CAAC9B,YAAY,CAAC,EAAE,CAACD,KAAK,EAAEC,YAAY,CAAC,CAAC;EAC1E,MAAM;IAAE+B,cAAc;IAAEC,oBAAoB;IAAEC;EAA0B,CAAC,GACvE/C,mBAAmB,CAAC;IAAEsC,OAAO;IAAEU,aAAa,EAAEnC,KAAK;IAAE8B;EAAK,CAAC,CAAC;EAC9D,MAAM;IACJM,KAAK;IACLC,mBAAmB;IACnBC,YAAY;IACZC,YAAY;IACZC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,qBAAqB;IACrBC,WAAW;IACXC,QAAQ;IACRC,mBAAmB;IACnBC,QAAQ;IACRC,iBAAiB;IACjBC,qBAAqB;IACrBC,eAAe;IACfC;EACF,CAAC,
|
|
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","scrollToEndBottomInset","onAtEndChange","hasEarlier","loadingEarlier","onRequestEarlier","keyboardDismissMode","contentContainerStyle","showsVerticalScrollIndicator","style","testID","ref","styles","listRef","listTestID","current","contentStyle","flatten","keys","map","getRowNativeID","preservingPrependRef","cancelPrependPreservation","itemsIdentity","atEnd","positioningAnchor","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","bottomInset","Number","isFinite","Math","max"],"sourceRoot":"../../../../src","sources":["components/MessageList/MessageList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -49,6 +49,7 @@ export function useMessageListScroll({
|
|
|
49
49
|
const atEndRef = useRef(undefined);
|
|
50
50
|
const [atEnd, setAtEnd] = useState(true);
|
|
51
51
|
const anchor = useRef(undefined);
|
|
52
|
+
const [positioningAnchor, setPositioningAnchor] = useState(false);
|
|
52
53
|
const layouts = useRef(new Map());
|
|
53
54
|
const layoutRevision = useRef(0);
|
|
54
55
|
const footerHeight = useRef(0);
|
|
@@ -84,9 +85,21 @@ export function useMessageListScroll({
|
|
|
84
85
|
}, [onAtEndChange, ready, threshold]);
|
|
85
86
|
const cancelAnchor = useCallback(() => {
|
|
86
87
|
anchor.current = undefined;
|
|
88
|
+
setPositioningAnchor(false);
|
|
87
89
|
minimumRef.current = undefined;
|
|
88
90
|
setAnchorMinimumHeight(undefined);
|
|
89
91
|
}, []);
|
|
92
|
+
const stopAnchorPositioning = useCallback(() => {
|
|
93
|
+
const request = anchor.current;
|
|
94
|
+
if (!request || !minimumRef.current) {
|
|
95
|
+
cancelAnchor();
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// User scrolling owns the offset, but removing its layout space would
|
|
99
|
+
// clamp that offset and move the same messages back to the bottom.
|
|
100
|
+
request.positioning = false;
|
|
101
|
+
setPositioningAnchor(false);
|
|
102
|
+
}, [cancelAnchor]);
|
|
90
103
|
const naturalContentHeight = useCallback(() => {
|
|
91
104
|
const last = currentKeys.current.at(-1);
|
|
92
105
|
const cell = last === undefined ? undefined : layouts.current.get(last)?.cell;
|
|
@@ -97,6 +110,40 @@ export function useMessageListScroll({
|
|
|
97
110
|
} = measurements.current;
|
|
98
111
|
return Math.max(cell.y + cell.height + footerHeight.current + layoutValue(contentStyle.current.contentBottomPadding, width), layoutValue(contentStyle.current.contentMinimumHeight, viewport));
|
|
99
112
|
}, []);
|
|
113
|
+
const scrollToEnd = useCallback((options = {}) => {
|
|
114
|
+
cancelPrependPreservation();
|
|
115
|
+
const request = {
|
|
116
|
+
animated: options.animated ?? true
|
|
117
|
+
};
|
|
118
|
+
const natural = naturalContentHeight();
|
|
119
|
+
const minimum = minimumRef.current;
|
|
120
|
+
if (minimum !== undefined && natural !== undefined && measurements.current.content <= minimum + 0.5 && natural + 0.5 < measurements.current.content) {
|
|
121
|
+
request.contentBeforeRelease = measurements.current.content;
|
|
122
|
+
}
|
|
123
|
+
cancelAnchor();
|
|
124
|
+
if (!ready() || request.contentBeforeRelease !== undefined) {
|
|
125
|
+
pendingScroll.current = request;
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
pendingScroll.current = undefined;
|
|
129
|
+
listRef.current?.scrollToOffset({
|
|
130
|
+
offset: Math.max(0, measurements.current.content - measurements.current.viewport),
|
|
131
|
+
animated: request.animated
|
|
132
|
+
});
|
|
133
|
+
if (measurements.current.content <= measurements.current.viewport) publishPosition();
|
|
134
|
+
}, [cancelAnchor, cancelPrependPreservation, listRef, naturalContentHeight, publishPosition, ready]);
|
|
135
|
+
const reconcileRetainedSpace = useCallback(minimum => {
|
|
136
|
+
const shouldFollow = followOutput === 'whenAtEnd' && !userScrolling.current && !prependPending.current && !preservingPrependRef.current && atEndRef.current;
|
|
137
|
+
const natural = naturalContentHeight();
|
|
138
|
+
if (natural !== undefined && natural + 0.5 >= minimum) {
|
|
139
|
+
if (shouldFollow && measurements.current.content + 0.5 >= natural) scrollToEnd({
|
|
140
|
+
animated: false
|
|
141
|
+
});else {
|
|
142
|
+
cancelAnchor();
|
|
143
|
+
publishPosition();
|
|
144
|
+
}
|
|
145
|
+
} else if (!shouldFollow) publishPosition();
|
|
146
|
+
}, [cancelAnchor, followOutput, naturalContentHeight, preservingPrependRef, publishPosition, scrollToEnd]);
|
|
100
147
|
const applyAnchor = useCallback(() => {
|
|
101
148
|
const request = anchor.current;
|
|
102
149
|
if (!request || !ready()) return;
|
|
@@ -105,6 +152,10 @@ export function useMessageListScroll({
|
|
|
105
152
|
request.seen = true;
|
|
106
153
|
const position = layouts.current.get(request.key);
|
|
107
154
|
if (!position?.cell || position.itemY === undefined) {
|
|
155
|
+
if (!request.positioning) {
|
|
156
|
+
reconcileRetainedSpace(minimumRef.current);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
108
159
|
// An offscreen row first needs to enter FlatList's render window. This
|
|
109
160
|
// estimate only reveals it; success still requires its actual layouts.
|
|
110
161
|
if (request.locatedAt !== layoutRevision.current) {
|
|
@@ -125,6 +176,12 @@ export function useMessageListScroll({
|
|
|
125
176
|
const minimum = Math.max(offset + viewport, layoutValue(contentStyle.current.contentMinimumHeight, viewport));
|
|
126
177
|
minimumRef.current = minimum;
|
|
127
178
|
setAnchorMinimumHeight(minimum);
|
|
179
|
+
if (!request.positioning) {
|
|
180
|
+
// Once real content fills the reserved space, releasing the minimum
|
|
181
|
+
// no longer changes geometry. Normal end-following can then resume.
|
|
182
|
+
reconcileRetainedSpace(minimum);
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
128
185
|
// Yoga's requested minimum is not yet native scroll space. Wait for the
|
|
129
186
|
// content-size event; otherwise native scrolling can clamp the target.
|
|
130
187
|
if (content + 0.5 < minimum) {
|
|
@@ -143,7 +200,7 @@ export function useMessageListScroll({
|
|
|
143
200
|
});
|
|
144
201
|
measurements.current.offset = offset;
|
|
145
202
|
publishPosition();
|
|
146
|
-
}, [listRef, publishPosition, ready]);
|
|
203
|
+
}, [listRef, publishPosition, ready, reconcileRetainedSpace]);
|
|
147
204
|
const layoutChanged = useRef(applyAnchor);
|
|
148
205
|
const onCellLayout = useCallback((key, index, cell) => {
|
|
149
206
|
if (currentKeys.current[index] !== key || !Number.isFinite(cell.y) || !Number.isFinite(cell.height)) return;
|
|
@@ -184,10 +241,12 @@ export function useMessageListScroll({
|
|
|
184
241
|
userScrolling.current = false;
|
|
185
242
|
anchor.current = {
|
|
186
243
|
key,
|
|
244
|
+
positioning: true,
|
|
187
245
|
topOffset: Number.isFinite(options.topOffset) ? Math.max(0, options.topOffset) : 0,
|
|
188
246
|
animated: options.animated ?? true,
|
|
189
247
|
seen: currentKeys.current.includes(key)
|
|
190
248
|
};
|
|
249
|
+
setPositioningAnchor(true);
|
|
191
250
|
minimumRef.current = 0;
|
|
192
251
|
setAnchorMinimumHeight(0);
|
|
193
252
|
applyAnchor();
|
|
@@ -223,32 +282,10 @@ export function useMessageListScroll({
|
|
|
223
282
|
}
|
|
224
283
|
// Explicit positioning and native/Web prepend preservation must never
|
|
225
284
|
// compensate the same layout twice.
|
|
226
|
-
cancelPrependPreservation();
|
|
285
|
+
if (request.positioning) cancelPrependPreservation();
|
|
227
286
|
applyAnchor();
|
|
228
287
|
}
|
|
229
288
|
}, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
|
|
230
|
-
const scrollToEnd = useCallback((options = {}) => {
|
|
231
|
-
cancelPrependPreservation();
|
|
232
|
-
const request = {
|
|
233
|
-
animated: options.animated ?? true
|
|
234
|
-
};
|
|
235
|
-
const natural = naturalContentHeight();
|
|
236
|
-
const minimum = minimumRef.current;
|
|
237
|
-
if (minimum !== undefined && natural !== undefined && measurements.current.content <= minimum + 0.5 && natural + 0.5 < measurements.current.content) {
|
|
238
|
-
request.contentBeforeRelease = measurements.current.content;
|
|
239
|
-
}
|
|
240
|
-
cancelAnchor();
|
|
241
|
-
if (!ready() || request.contentBeforeRelease !== undefined) {
|
|
242
|
-
pendingScroll.current = request;
|
|
243
|
-
return;
|
|
244
|
-
}
|
|
245
|
-
pendingScroll.current = undefined;
|
|
246
|
-
listRef.current?.scrollToOffset({
|
|
247
|
-
offset: Math.max(0, measurements.current.content - measurements.current.viewport),
|
|
248
|
-
animated: request.animated
|
|
249
|
-
});
|
|
250
|
-
if (measurements.current.content <= measurements.current.viewport) publishPosition();
|
|
251
|
-
}, [cancelAnchor, cancelPrependPreservation, listRef, naturalContentHeight, publishPosition, ready]);
|
|
252
289
|
const itemCount = keys.length;
|
|
253
290
|
const reconcileLayout = useCallback(contentChanged => {
|
|
254
291
|
if (!ready()) return;
|
|
@@ -293,13 +330,13 @@ export function useMessageListScroll({
|
|
|
293
330
|
const geometryChanged = measurements.current.content !== contentSize.height || measurements.current.viewport !== layoutMeasurement.height;
|
|
294
331
|
if (followingPaddingChange.current && (movedUp && !geometryChanged || contentSize.height - layoutMeasurement.height - Math.max(0, contentOffset.y) <= threshold)) followingPaddingChange.current = false;
|
|
295
332
|
const request = anchor.current;
|
|
296
|
-
if (request?.offset !== undefined) {
|
|
333
|
+
if (request?.positioning && request.offset !== undefined) {
|
|
297
334
|
if (Math.abs(contentOffset.y - request.offset) <= 0.5) request.settled = true;
|
|
298
335
|
// RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
|
|
299
336
|
// requested scroll has settled, a user move at unchanged geometry wins.
|
|
300
|
-
else if (request.settled && !geometryChanged)
|
|
337
|
+
else if (request.settled && !geometryChanged) stopAnchorPositioning();
|
|
301
338
|
}
|
|
302
|
-
const resizingAtEnd = !anchor.current && atEndRef.current && !movedUp && !userScrolling.current && (followOutput === 'whenAtEnd' || measurements.current.viewport !== layoutMeasurement.height) && geometryChanged;
|
|
339
|
+
const resizingAtEnd = !anchor.current?.positioning && atEndRef.current && !movedUp && !userScrolling.current && (followOutput === 'whenAtEnd' || measurements.current.viewport !== layoutMeasurement.height) && geometryChanged;
|
|
303
340
|
measurements.current = {
|
|
304
341
|
width: layoutMeasurement.width,
|
|
305
342
|
offset: contentOffset.y,
|
|
@@ -308,7 +345,7 @@ export function useMessageListScroll({
|
|
|
308
345
|
hasContentSize: true
|
|
309
346
|
};
|
|
310
347
|
if (!resizingAtEnd && !followingPaddingChange.current) publishPosition();
|
|
311
|
-
}, [
|
|
348
|
+
}, [followOutput, publishPosition, stopAnchorPositioning, threshold]);
|
|
312
349
|
const onLayout = useCallback(({
|
|
313
350
|
nativeEvent: {
|
|
314
351
|
layout
|
|
@@ -327,8 +364,8 @@ export function useMessageListScroll({
|
|
|
327
364
|
userScrolling.current = true;
|
|
328
365
|
followingPaddingChange.current = false;
|
|
329
366
|
pendingScroll.current = undefined;
|
|
330
|
-
|
|
331
|
-
}, [
|
|
367
|
+
stopAnchorPositioning();
|
|
368
|
+
}, [stopAnchorPositioning]);
|
|
332
369
|
const onMomentumScrollBegin = useCallback(() => {
|
|
333
370
|
userScrolling.current = true;
|
|
334
371
|
}, []);
|
|
@@ -342,7 +379,7 @@ export function useMessageListScroll({
|
|
|
342
379
|
}, [onScroll]);
|
|
343
380
|
const onScrollToIndexFailed = useCallback(failure => {
|
|
344
381
|
const request = anchor.current;
|
|
345
|
-
if (!request || currentKeys.current.indexOf(request.key) !== failure.index || !Number.isFinite(failure.averageItemLength) || failure.averageItemLength <= 0) return;
|
|
382
|
+
if (!request?.positioning || currentKeys.current.indexOf(request.key) !== failure.index || !Number.isFinite(failure.averageItemLength) || failure.averageItemLength <= 0) return;
|
|
346
383
|
listRef.current?.scrollToOffset({
|
|
347
384
|
offset: failure.index * failure.averageItemLength,
|
|
348
385
|
animated: false
|
|
@@ -350,6 +387,7 @@ export function useMessageListScroll({
|
|
|
350
387
|
}, [listRef]);
|
|
351
388
|
return {
|
|
352
389
|
atEnd,
|
|
390
|
+
positioningAnchor,
|
|
353
391
|
anchorMinimumHeight,
|
|
354
392
|
anchorToItem,
|
|
355
393
|
onCellLayout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","DEFAULT_END_THRESHOLD","layoutValue","value","extent","Number","isFinite","Math","max","endsWith","percentage","parseFloat","useMessageListScroll","listRef","keys","initialPosition","followOutput","endThreshold","onAtEndChange","contentMinimumHeight","contentBottomPadding","hasFooter","preservingPrependRef","cancelPrependPreservation","measurements","width","viewport","content","offset","hasContentSize","initial","initialized","previousKeys","currentKeys","current","contentStyle","prependPending","pendingScroll","undefined","userScrolling","atEndRef","atEnd","setAtEnd","anchor","layouts","Map","layoutRevision","footerHeight","anchorMinimumHeight","setAnchorMinimumHeight","minimumRef","previousPadding","followingPaddingChange","threshold","ready","publishPosition","next","cancelAnchor","naturalContentHeight","last","at","cell","get","y","height","applyAnchor","request","index","indexOf","key","seen","position","itemY","locatedAt","scrollToIndex","animated","viewPosition","topOffset","minimum","settled","scrollToOffset","layoutChanged","onCellLayout","previous","x","set","onItemLayout","onCellUnmount","delete","onFooterLayout","event","nativeEvent","layout","anchorToItem","options","includes","added","length","onlyPrepended","every","changed","some","indices","map","scrollToEnd","natural","contentBeforeRelease","itemCount","reconcileLayout","contentChanged","prepended","shouldFollow","onScroll","contentOffset","contentSize","layoutMeasurement","movedUp","geometryChanged","abs","resizingAtEnd","onLayout","onContentSizeChange","_width","onUserScrollBegin","onMomentumScrollBegin","onScrollEndDrag","velocity","onMomentumScrollEnd","onScrollToIndexFailed","failure","averageItemLength"],"sourceRoot":"../../../../src","sources":["components/MessageList/useMessageListScroll.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","DEFAULT_END_THRESHOLD","layoutValue","value","extent","Number","isFinite","Math","max","endsWith","percentage","parseFloat","useMessageListScroll","listRef","keys","initialPosition","followOutput","endThreshold","onAtEndChange","contentMinimumHeight","contentBottomPadding","hasFooter","preservingPrependRef","cancelPrependPreservation","measurements","width","viewport","content","offset","hasContentSize","initial","initialized","previousKeys","currentKeys","current","contentStyle","prependPending","pendingScroll","undefined","userScrolling","atEndRef","atEnd","setAtEnd","anchor","positioningAnchor","setPositioningAnchor","layouts","Map","layoutRevision","footerHeight","anchorMinimumHeight","setAnchorMinimumHeight","minimumRef","previousPadding","followingPaddingChange","threshold","ready","publishPosition","next","cancelAnchor","stopAnchorPositioning","request","positioning","naturalContentHeight","last","at","cell","get","y","height","scrollToEnd","options","animated","natural","minimum","contentBeforeRelease","scrollToOffset","reconcileRetainedSpace","shouldFollow","applyAnchor","index","indexOf","key","seen","position","itemY","locatedAt","scrollToIndex","viewPosition","topOffset","settled","layoutChanged","onCellLayout","previous","x","set","onItemLayout","onCellUnmount","delete","onFooterLayout","event","nativeEvent","layout","anchorToItem","includes","added","length","onlyPrepended","every","changed","some","indices","map","itemCount","reconcileLayout","contentChanged","prepended","onScroll","contentOffset","contentSize","layoutMeasurement","movedUp","geometryChanged","abs","resizingAtEnd","onLayout","onContentSizeChange","_width","onUserScrollBegin","onMomentumScrollBegin","onScrollEndDrag","velocity","onMomentumScrollEnd","onScrollToIndexFailed","failure","averageItemLength"],"sourceRoot":"../../../../src","sources":["components/MessageList/useMessageListScroll.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MarkdownContent/MarkdownContent.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,YAAS,CAAC;AAG3E,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,WAAW,EACX,QAAgB,EAChB,KAAK,GACN,EAAE,oBAAoB,
|
|
1
|
+
{"version":3,"file":"MarkdownContent.d.ts","sourceRoot":"","sources":["../../../../../../src/components/Message/MarkdownContent/MarkdownContent.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,oBAAoB,EAAyB,MAAM,YAAS,CAAC;AAG3E,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,WAAW,EACX,QAAgB,EAChB,KAAK,GACN,EAAE,oBAAoB,sCAoGtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,eAAuB,EACvB,YAA0B,EAC1B,YAAoC,EACpC,eAAsB,EACtB,eAAuB,EACvB,sBAA0B,EAC1B,aAAa,EACb,UAAkB,EAClB,cAAsB,EACtB,gBAAgB,EAChB,mBAA+B,EAC/B,qBAAqB,EACrB,4BAAoC,EACpC,KAAK,EACL,MAAM,EACN,GAAG,GACJ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,+
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/MessageList.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAU3C,OAAO,KAAK,EAEV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAS,CAAC;AAIjB,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,KAAK,EACL,YAAY,EACZ,UAAU,EACV,SAAS,EACT,MAAM,EACN,MAAM,EACN,KAAK,EACL,eAAe,EACf,eAAuB,EACvB,YAA0B,EAC1B,YAAoC,EACpC,eAAsB,EACtB,eAAuB,EACvB,sBAA0B,EAC1B,aAAa,EACb,UAAkB,EAClB,cAAsB,EACtB,gBAAgB,EAChB,mBAA+B,EAC/B,qBAAqB,EACrB,4BAAoC,EACpC,KAAK,EACL,MAAM,EACN,GAAG,GACJ,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,iBAAiB,CAAC,+BA8LxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ interface MessageListScrollInput<T> extends Pick<MessageListProps<T>, 'initialPo
|
|
|
12
12
|
}
|
|
13
13
|
export declare function useMessageListScroll<T>({ listRef, keys, initialPosition, followOutput, endThreshold, onAtEndChange, contentMinimumHeight, contentBottomPadding, hasFooter, preservingPrependRef, cancelPrependPreservation, }: MessageListScrollInput<T>): {
|
|
14
14
|
atEnd: boolean;
|
|
15
|
+
positioningAnchor: boolean;
|
|
15
16
|
anchorMinimumHeight: number | undefined;
|
|
16
17
|
anchorToItem: (key: string, options?: MessageListAnchorOptions) => void;
|
|
17
18
|
onCellLayout: (key: string, index: number, cell: LayoutRectangle) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMessageListScroll.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/useMessageListScroll.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,wBAAwB,EAIxB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,YAAS,CAAC;AAEjB,UAAU,sBAAsB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EACnB,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CACtE;IACC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;CACnC;AAaD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,OAAO,EACP,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,YAAoC,EACpC,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,yBAAyB,GAC1B,EAAE,sBAAsB,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"useMessageListScroll.d.ts","sourceRoot":"","sources":["../../../../../src/components/MessageList/useMessageListScroll.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAEV,wBAAwB,EAIxB,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,YAAS,CAAC;AAEjB,UAAU,sBAAsB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAC9C,gBAAgB,CAAC,CAAC,CAAC,EACnB,iBAAiB,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CACtE;IACC,OAAO,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACvC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,oBAAoB,CAAC,EAAE,cAAc,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oBAAoB,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,yBAAyB,IAAI,IAAI,CAAC;CACnC;AAaD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,EACtC,OAAO,EACP,IAAI,EACJ,eAAe,EACf,YAAY,EACZ,YAAoC,EACpC,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EACpB,yBAAyB,GAC1B,EAAE,sBAAsB,CAAC,CAAC,CAAC;;;;wBA6QlB,MAAM,YAAW,wBAAwB;wBA5CzC,MAAM,SAAS,MAAM,QAAQ,eAAe;wBAsB5C,MAAM,SAAS,MAAM,SAAS,MAAM;yBAUJ,MAAM,SAAS,MAAM;4BAMlB,iBAAiB;qCAqN/C,UAAU,CACjB,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CACvD,CAAC,CAAC,CAAC;4BA/XI,wBAAwB;4CAqVJ,iBAAiB;kCAQtC,MAAM,UAAU,MAAM;sBArDvB,oBAAoB,CAAC,iBAAiB,CAAC;;;6BAsEvC,oBAAoB,CAAC,iBAAiB,CAAC;iCAOvC,oBAAoB,CAAC,iBAAiB,CAAC;EA+ClD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unif/react-native-chat",
|
|
3
|
-
"version": "4.6.
|
|
3
|
+
"version": "4.6.3",
|
|
4
4
|
"description": "Unif React Native 聊天组件:消息列表、输入、附件与交互反馈",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
},
|
|
136
136
|
"release-it": {
|
|
137
137
|
"git": {
|
|
138
|
-
"commitMessage": "chore: release ${version} [skip ci]",
|
|
138
|
+
"commitMessage": "chore: release ${version} 发布版本 [skip ci]",
|
|
139
139
|
"tagName": "v${version}",
|
|
140
140
|
"requireCommits": true
|
|
141
141
|
},
|
|
@@ -24,6 +24,25 @@ export function MarkdownContent({
|
|
|
24
24
|
);
|
|
25
25
|
const markdown = useMemo(() => {
|
|
26
26
|
const instance = new Renderer();
|
|
27
|
+
const renderList = instance.list.bind(instance);
|
|
28
|
+
instance.list = (ordered, items, listStyle, textStyle, startIndex = 1) => {
|
|
29
|
+
if (!ordered)
|
|
30
|
+
return renderList(ordered, items, listStyle, textStyle, startIndex);
|
|
31
|
+
// 每行独立保留编号宽度,追加两位数编号不再挤压已有正文。
|
|
32
|
+
return items.map((item, index) => {
|
|
33
|
+
const content = isValidElement(item)
|
|
34
|
+
? cloneElement(item, { key: index })
|
|
35
|
+
: item;
|
|
36
|
+
const row = renderList(
|
|
37
|
+
true,
|
|
38
|
+
[content],
|
|
39
|
+
listStyle,
|
|
40
|
+
textStyle,
|
|
41
|
+
startIndex + index
|
|
42
|
+
);
|
|
43
|
+
return isValidElement(row) ? cloneElement(row, { key: index }) : row;
|
|
44
|
+
});
|
|
45
|
+
};
|
|
27
46
|
const renderCode = instance.code.bind(instance);
|
|
28
47
|
instance.code = (value, language, containerStyle, textStyle) =>
|
|
29
48
|
renderCode(value, language, containerStyle, {
|
|
@@ -59,6 +59,7 @@ export function MessageList<T>({
|
|
|
59
59
|
useWebPrependAnchor({ listRef, itemsIdentity: items, keys });
|
|
60
60
|
const {
|
|
61
61
|
atEnd,
|
|
62
|
+
positioningAnchor,
|
|
62
63
|
anchorMinimumHeight,
|
|
63
64
|
anchorToItem,
|
|
64
65
|
onCellLayout,
|
|
@@ -202,7 +203,7 @@ export function MessageList<T>({
|
|
|
202
203
|
ListFooterComponent={listFooter}
|
|
203
204
|
ListEmptyComponent={listEmpty}
|
|
204
205
|
maintainVisibleContentPosition={
|
|
205
|
-
items.length > 0 &&
|
|
206
|
+
items.length > 0 && !positioningAnchor
|
|
206
207
|
? MAINTAIN_VISIBLE_POSITION
|
|
207
208
|
: undefined
|
|
208
209
|
}
|
|
@@ -77,6 +77,7 @@ export function useMessageListScroll<T>({
|
|
|
77
77
|
const atEndRef = useRef<boolean | undefined>(undefined);
|
|
78
78
|
const [atEnd, setAtEnd] = useState(true);
|
|
79
79
|
const anchor = useRef<MessageListAnchorRequest | undefined>(undefined);
|
|
80
|
+
const [positioningAnchor, setPositioningAnchor] = useState(false);
|
|
80
81
|
const layouts = useRef(new Map<string, MessageListItemLayout>());
|
|
81
82
|
const layoutRevision = useRef(0);
|
|
82
83
|
const footerHeight = useRef(0);
|
|
@@ -117,10 +118,23 @@ export function useMessageListScroll<T>({
|
|
|
117
118
|
|
|
118
119
|
const cancelAnchor = useCallback(() => {
|
|
119
120
|
anchor.current = undefined;
|
|
121
|
+
setPositioningAnchor(false);
|
|
120
122
|
minimumRef.current = undefined;
|
|
121
123
|
setAnchorMinimumHeight(undefined);
|
|
122
124
|
}, []);
|
|
123
125
|
|
|
126
|
+
const stopAnchorPositioning = useCallback(() => {
|
|
127
|
+
const request = anchor.current;
|
|
128
|
+
if (!request || !minimumRef.current) {
|
|
129
|
+
cancelAnchor();
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
// User scrolling owns the offset, but removing its layout space would
|
|
133
|
+
// clamp that offset and move the same messages back to the bottom.
|
|
134
|
+
request.positioning = false;
|
|
135
|
+
setPositioningAnchor(false);
|
|
136
|
+
}, [cancelAnchor]);
|
|
137
|
+
|
|
124
138
|
const naturalContentHeight = useCallback(() => {
|
|
125
139
|
const last = currentKeys.current.at(-1);
|
|
126
140
|
const cell =
|
|
@@ -136,6 +150,76 @@ export function useMessageListScroll<T>({
|
|
|
136
150
|
);
|
|
137
151
|
}, []);
|
|
138
152
|
|
|
153
|
+
const scrollToEnd = useCallback(
|
|
154
|
+
(options: MessageListScrollOptions = {}) => {
|
|
155
|
+
cancelPrependPreservation();
|
|
156
|
+
const request: MessageListPendingScroll = {
|
|
157
|
+
animated: options.animated ?? true,
|
|
158
|
+
};
|
|
159
|
+
const natural = naturalContentHeight();
|
|
160
|
+
const minimum = minimumRef.current;
|
|
161
|
+
if (
|
|
162
|
+
minimum !== undefined &&
|
|
163
|
+
natural !== undefined &&
|
|
164
|
+
measurements.current.content <= minimum + 0.5 &&
|
|
165
|
+
natural + 0.5 < measurements.current.content
|
|
166
|
+
) {
|
|
167
|
+
request.contentBeforeRelease = measurements.current.content;
|
|
168
|
+
}
|
|
169
|
+
cancelAnchor();
|
|
170
|
+
if (!ready() || request.contentBeforeRelease !== undefined) {
|
|
171
|
+
pendingScroll.current = request;
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
pendingScroll.current = undefined;
|
|
175
|
+
listRef.current?.scrollToOffset({
|
|
176
|
+
offset: Math.max(
|
|
177
|
+
0,
|
|
178
|
+
measurements.current.content - measurements.current.viewport
|
|
179
|
+
),
|
|
180
|
+
animated: request.animated,
|
|
181
|
+
});
|
|
182
|
+
if (measurements.current.content <= measurements.current.viewport)
|
|
183
|
+
publishPosition();
|
|
184
|
+
},
|
|
185
|
+
[
|
|
186
|
+
cancelAnchor,
|
|
187
|
+
cancelPrependPreservation,
|
|
188
|
+
listRef,
|
|
189
|
+
naturalContentHeight,
|
|
190
|
+
publishPosition,
|
|
191
|
+
ready,
|
|
192
|
+
]
|
|
193
|
+
);
|
|
194
|
+
|
|
195
|
+
const reconcileRetainedSpace = useCallback(
|
|
196
|
+
(minimum: number) => {
|
|
197
|
+
const shouldFollow =
|
|
198
|
+
followOutput === 'whenAtEnd' &&
|
|
199
|
+
!userScrolling.current &&
|
|
200
|
+
!prependPending.current &&
|
|
201
|
+
!preservingPrependRef.current &&
|
|
202
|
+
atEndRef.current;
|
|
203
|
+
const natural = naturalContentHeight();
|
|
204
|
+
if (natural !== undefined && natural + 0.5 >= minimum) {
|
|
205
|
+
if (shouldFollow && measurements.current.content + 0.5 >= natural)
|
|
206
|
+
scrollToEnd({ animated: false });
|
|
207
|
+
else {
|
|
208
|
+
cancelAnchor();
|
|
209
|
+
publishPosition();
|
|
210
|
+
}
|
|
211
|
+
} else if (!shouldFollow) publishPosition();
|
|
212
|
+
},
|
|
213
|
+
[
|
|
214
|
+
cancelAnchor,
|
|
215
|
+
followOutput,
|
|
216
|
+
naturalContentHeight,
|
|
217
|
+
preservingPrependRef,
|
|
218
|
+
publishPosition,
|
|
219
|
+
scrollToEnd,
|
|
220
|
+
]
|
|
221
|
+
);
|
|
222
|
+
|
|
139
223
|
const applyAnchor = useCallback(() => {
|
|
140
224
|
const request = anchor.current;
|
|
141
225
|
if (!request || !ready()) return;
|
|
@@ -144,6 +228,10 @@ export function useMessageListScroll<T>({
|
|
|
144
228
|
request.seen = true;
|
|
145
229
|
const position = layouts.current.get(request.key);
|
|
146
230
|
if (!position?.cell || position.itemY === undefined) {
|
|
231
|
+
if (!request.positioning) {
|
|
232
|
+
reconcileRetainedSpace(minimumRef.current!);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
147
235
|
// An offscreen row first needs to enter FlatList's render window. This
|
|
148
236
|
// estimate only reveals it; success still requires its actual layouts.
|
|
149
237
|
if (request.locatedAt !== layoutRevision.current) {
|
|
@@ -167,6 +255,12 @@ export function useMessageListScroll<T>({
|
|
|
167
255
|
);
|
|
168
256
|
minimumRef.current = minimum;
|
|
169
257
|
setAnchorMinimumHeight(minimum);
|
|
258
|
+
if (!request.positioning) {
|
|
259
|
+
// Once real content fills the reserved space, releasing the minimum
|
|
260
|
+
// no longer changes geometry. Normal end-following can then resume.
|
|
261
|
+
reconcileRetainedSpace(minimum);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
170
264
|
// Yoga's requested minimum is not yet native scroll space. Wait for the
|
|
171
265
|
// content-size event; otherwise native scrolling can clamp the target.
|
|
172
266
|
if (content + 0.5 < minimum) {
|
|
@@ -182,7 +276,7 @@ export function useMessageListScroll<T>({
|
|
|
182
276
|
listRef.current?.scrollToOffset({ offset, animated: request.animated });
|
|
183
277
|
measurements.current.offset = offset;
|
|
184
278
|
publishPosition();
|
|
185
|
-
}, [listRef, publishPosition, ready]);
|
|
279
|
+
}, [listRef, publishPosition, ready, reconcileRetainedSpace]);
|
|
186
280
|
|
|
187
281
|
const layoutChanged = useRef(applyAnchor);
|
|
188
282
|
|
|
@@ -238,12 +332,14 @@ export function useMessageListScroll<T>({
|
|
|
238
332
|
userScrolling.current = false;
|
|
239
333
|
anchor.current = {
|
|
240
334
|
key,
|
|
335
|
+
positioning: true,
|
|
241
336
|
topOffset: Number.isFinite(options.topOffset)
|
|
242
337
|
? Math.max(0, options.topOffset!)
|
|
243
338
|
: 0,
|
|
244
339
|
animated: options.animated ?? true,
|
|
245
340
|
seen: currentKeys.current.includes(key),
|
|
246
341
|
};
|
|
342
|
+
setPositioningAnchor(true);
|
|
247
343
|
minimumRef.current = 0;
|
|
248
344
|
setAnchorMinimumHeight(0);
|
|
249
345
|
applyAnchor();
|
|
@@ -286,53 +382,11 @@ export function useMessageListScroll<T>({
|
|
|
286
382
|
}
|
|
287
383
|
// Explicit positioning and native/Web prepend preservation must never
|
|
288
384
|
// compensate the same layout twice.
|
|
289
|
-
cancelPrependPreservation();
|
|
385
|
+
if (request.positioning) cancelPrependPreservation();
|
|
290
386
|
applyAnchor();
|
|
291
387
|
}
|
|
292
388
|
}, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
|
|
293
389
|
|
|
294
|
-
const scrollToEnd = useCallback(
|
|
295
|
-
(options: MessageListScrollOptions = {}) => {
|
|
296
|
-
cancelPrependPreservation();
|
|
297
|
-
const request: MessageListPendingScroll = {
|
|
298
|
-
animated: options.animated ?? true,
|
|
299
|
-
};
|
|
300
|
-
const natural = naturalContentHeight();
|
|
301
|
-
const minimum = minimumRef.current;
|
|
302
|
-
if (
|
|
303
|
-
minimum !== undefined &&
|
|
304
|
-
natural !== undefined &&
|
|
305
|
-
measurements.current.content <= minimum + 0.5 &&
|
|
306
|
-
natural + 0.5 < measurements.current.content
|
|
307
|
-
) {
|
|
308
|
-
request.contentBeforeRelease = measurements.current.content;
|
|
309
|
-
}
|
|
310
|
-
cancelAnchor();
|
|
311
|
-
if (!ready() || request.contentBeforeRelease !== undefined) {
|
|
312
|
-
pendingScroll.current = request;
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
pendingScroll.current = undefined;
|
|
316
|
-
listRef.current?.scrollToOffset({
|
|
317
|
-
offset: Math.max(
|
|
318
|
-
0,
|
|
319
|
-
measurements.current.content - measurements.current.viewport
|
|
320
|
-
),
|
|
321
|
-
animated: request.animated,
|
|
322
|
-
});
|
|
323
|
-
if (measurements.current.content <= measurements.current.viewport)
|
|
324
|
-
publishPosition();
|
|
325
|
-
},
|
|
326
|
-
[
|
|
327
|
-
cancelAnchor,
|
|
328
|
-
cancelPrependPreservation,
|
|
329
|
-
listRef,
|
|
330
|
-
naturalContentHeight,
|
|
331
|
-
publishPosition,
|
|
332
|
-
ready,
|
|
333
|
-
]
|
|
334
|
-
);
|
|
335
|
-
|
|
336
390
|
const itemCount = keys.length;
|
|
337
391
|
const reconcileLayout = useCallback(
|
|
338
392
|
(contentChanged: boolean) => {
|
|
@@ -410,15 +464,15 @@ export function useMessageListScroll<T>({
|
|
|
410
464
|
)
|
|
411
465
|
followingPaddingChange.current = false;
|
|
412
466
|
const request = anchor.current;
|
|
413
|
-
if (request?.offset !== undefined) {
|
|
467
|
+
if (request?.positioning && request.offset !== undefined) {
|
|
414
468
|
if (Math.abs(contentOffset.y - request.offset) <= 0.5)
|
|
415
469
|
request.settled = true;
|
|
416
470
|
// RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
|
|
417
471
|
// requested scroll has settled, a user move at unchanged geometry wins.
|
|
418
|
-
else if (request.settled && !geometryChanged)
|
|
472
|
+
else if (request.settled && !geometryChanged) stopAnchorPositioning();
|
|
419
473
|
}
|
|
420
474
|
const resizingAtEnd =
|
|
421
|
-
!anchor.current &&
|
|
475
|
+
!anchor.current?.positioning &&
|
|
422
476
|
atEndRef.current &&
|
|
423
477
|
!movedUp &&
|
|
424
478
|
!userScrolling.current &&
|
|
@@ -434,7 +488,7 @@ export function useMessageListScroll<T>({
|
|
|
434
488
|
};
|
|
435
489
|
if (!resizingAtEnd && !followingPaddingChange.current) publishPosition();
|
|
436
490
|
},
|
|
437
|
-
[
|
|
491
|
+
[followOutput, publishPosition, stopAnchorPositioning, threshold]
|
|
438
492
|
);
|
|
439
493
|
|
|
440
494
|
const onLayout = useCallback(
|
|
@@ -457,8 +511,8 @@ export function useMessageListScroll<T>({
|
|
|
457
511
|
userScrolling.current = true;
|
|
458
512
|
followingPaddingChange.current = false;
|
|
459
513
|
pendingScroll.current = undefined;
|
|
460
|
-
|
|
461
|
-
}, [
|
|
514
|
+
stopAnchorPositioning();
|
|
515
|
+
}, [stopAnchorPositioning]);
|
|
462
516
|
const onMomentumScrollBegin = useCallback(() => {
|
|
463
517
|
userScrolling.current = true;
|
|
464
518
|
}, []);
|
|
@@ -484,7 +538,7 @@ export function useMessageListScroll<T>({
|
|
|
484
538
|
) => {
|
|
485
539
|
const request = anchor.current;
|
|
486
540
|
if (
|
|
487
|
-
!request ||
|
|
541
|
+
!request?.positioning ||
|
|
488
542
|
currentKeys.current.indexOf(request.key) !== failure.index ||
|
|
489
543
|
!Number.isFinite(failure.averageItemLength) ||
|
|
490
544
|
failure.averageItemLength <= 0
|
|
@@ -500,6 +554,7 @@ export function useMessageListScroll<T>({
|
|
|
500
554
|
|
|
501
555
|
return {
|
|
502
556
|
atEnd,
|
|
557
|
+
positioningAnchor,
|
|
503
558
|
anchorMinimumHeight,
|
|
504
559
|
anchorToItem,
|
|
505
560
|
onCellLayout,
|