@unif/react-native-chat 4.6.0 → 4.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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 && anchorMinimumHeight === undefined ? MAINTAIN_VISIBLE_POSITION : undefined,
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":"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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","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,9 +176,19 @@ 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
- if (content + 0.5 < minimum) return;
187
+ if (content + 0.5 < minimum) {
188
+ // Resizing can clamp the old offset before the extra space is applied.
189
+ request.settled = false;
190
+ return;
191
+ }
131
192
  if (request.offset === offset && request.viewport === viewport) return;
132
193
  request.offset = offset;
133
194
  request.viewport = viewport;
@@ -139,7 +200,7 @@ export function useMessageListScroll({
139
200
  });
140
201
  measurements.current.offset = offset;
141
202
  publishPosition();
142
- }, [listRef, publishPosition, ready]);
203
+ }, [listRef, publishPosition, ready, reconcileRetainedSpace]);
143
204
  const layoutChanged = useRef(applyAnchor);
144
205
  const onCellLayout = useCallback((key, index, cell) => {
145
206
  if (currentKeys.current[index] !== key || !Number.isFinite(cell.y) || !Number.isFinite(cell.height)) return;
@@ -180,10 +241,12 @@ export function useMessageListScroll({
180
241
  userScrolling.current = false;
181
242
  anchor.current = {
182
243
  key,
244
+ positioning: true,
183
245
  topOffset: Number.isFinite(options.topOffset) ? Math.max(0, options.topOffset) : 0,
184
246
  animated: options.animated ?? true,
185
247
  seen: currentKeys.current.includes(key)
186
248
  };
249
+ setPositioningAnchor(true);
187
250
  minimumRef.current = 0;
188
251
  setAnchorMinimumHeight(0);
189
252
  applyAnchor();
@@ -219,32 +282,10 @@ export function useMessageListScroll({
219
282
  }
220
283
  // Explicit positioning and native/Web prepend preservation must never
221
284
  // compensate the same layout twice.
222
- cancelPrependPreservation();
285
+ if (request.positioning) cancelPrependPreservation();
223
286
  applyAnchor();
224
287
  }
225
288
  }, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
226
- const scrollToEnd = useCallback((options = {}) => {
227
- cancelPrependPreservation();
228
- const request = {
229
- animated: options.animated ?? true
230
- };
231
- const natural = naturalContentHeight();
232
- const minimum = minimumRef.current;
233
- if (minimum !== undefined && natural !== undefined && measurements.current.content <= minimum + 0.5 && natural + 0.5 < measurements.current.content) {
234
- request.contentBeforeRelease = measurements.current.content;
235
- }
236
- cancelAnchor();
237
- if (!ready() || request.contentBeforeRelease !== undefined) {
238
- pendingScroll.current = request;
239
- return;
240
- }
241
- pendingScroll.current = undefined;
242
- listRef.current?.scrollToOffset({
243
- offset: Math.max(0, measurements.current.content - measurements.current.viewport),
244
- animated: request.animated
245
- });
246
- if (measurements.current.content <= measurements.current.viewport) publishPosition();
247
- }, [cancelAnchor, cancelPrependPreservation, listRef, naturalContentHeight, publishPosition, ready]);
248
289
  const itemCount = keys.length;
249
290
  const reconcileLayout = useCallback(contentChanged => {
250
291
  if (!ready()) return;
@@ -289,13 +330,13 @@ export function useMessageListScroll({
289
330
  const geometryChanged = measurements.current.content !== contentSize.height || measurements.current.viewport !== layoutMeasurement.height;
290
331
  if (followingPaddingChange.current && (movedUp && !geometryChanged || contentSize.height - layoutMeasurement.height - Math.max(0, contentOffset.y) <= threshold)) followingPaddingChange.current = false;
291
332
  const request = anchor.current;
292
- if (request?.offset !== undefined) {
333
+ if (request?.positioning && request.offset !== undefined) {
293
334
  if (Math.abs(contentOffset.y - request.offset) <= 0.5) request.settled = true;
294
335
  // RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
295
336
  // requested scroll has settled, a user move at unchanged geometry wins.
296
- else if (request.settled && !geometryChanged) cancelAnchor();
337
+ else if (request.settled && !geometryChanged) stopAnchorPositioning();
297
338
  }
298
- 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;
299
340
  measurements.current = {
300
341
  width: layoutMeasurement.width,
301
342
  offset: contentOffset.y,
@@ -304,7 +345,7 @@ export function useMessageListScroll({
304
345
  hasContentSize: true
305
346
  };
306
347
  if (!resizingAtEnd && !followingPaddingChange.current) publishPosition();
307
- }, [cancelAnchor, followOutput, publishPosition, threshold]);
348
+ }, [followOutput, publishPosition, stopAnchorPositioning, threshold]);
308
349
  const onLayout = useCallback(({
309
350
  nativeEvent: {
310
351
  layout
@@ -323,8 +364,8 @@ export function useMessageListScroll({
323
364
  userScrolling.current = true;
324
365
  followingPaddingChange.current = false;
325
366
  pendingScroll.current = undefined;
326
- cancelAnchor();
327
- }, [cancelAnchor]);
367
+ stopAnchorPositioning();
368
+ }, [stopAnchorPositioning]);
328
369
  const onMomentumScrollBegin = useCallback(() => {
329
370
  userScrolling.current = true;
330
371
  }, []);
@@ -338,7 +379,7 @@ export function useMessageListScroll({
338
379
  }, [onScroll]);
339
380
  const onScrollToIndexFailed = useCallback(failure => {
340
381
  const request = anchor.current;
341
- 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;
342
383
  listRef.current?.scrollToOffset({
343
384
  offset: failure.index * failure.averageItemLength,
344
385
  animated: false
@@ -346,6 +387,7 @@ export function useMessageListScroll({
346
387
  }, [listRef]);
347
388
  return {
348
389
  atEnd,
390
+ positioningAnchor,
349
391
  anchorMinimumHeight,
350
392
  anchorToItem,
351
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":"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,+BA6LxD"}
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"}
@@ -64,6 +64,7 @@ export interface MessageListItemLayout {
64
64
  }
65
65
  export interface MessageListAnchorRequest {
66
66
  key: string;
67
+ positioning: boolean;
67
68
  topOffset: number;
68
69
  animated: boolean;
69
70
  seen: boolean;
@@ -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;;;wBA2KlB,MAAM,YAAW,wBAAwB;wBA5CzC,MAAM,SAAS,MAAM,QAAQ,eAAe;wBAsB5C,MAAM,SAAS,MAAM,SAAS,MAAM;yBAUJ,MAAM,SAAS,MAAM;4BAMlB,iBAAiB;qCA6P/C,UAAU,CACjB,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CACvD,CAAC,CAAC,CAAC;4BA5LI,wBAAwB;4CAkJJ,iBAAiB;kCAQtC,MAAM,UAAU,MAAM;sBArDvB,oBAAoB,CAAC,iBAAiB,CAAC;;;6BAsEvC,oBAAoB,CAAC,iBAAiB,CAAC;iCAOvC,oBAAoB,CAAC,iBAAiB,CAAC;EA8ClD"}
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.0",
3
+ "version": "4.6.2",
4
4
  "description": "Unif React Native 聊天组件:消息列表、输入、附件与交互反馈",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -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 && anchorMinimumHeight === undefined
206
+ items.length > 0 && !positioningAnchor
206
207
  ? MAINTAIN_VISIBLE_POSITION
207
208
  : undefined
208
209
  }
@@ -76,6 +76,7 @@ export interface MessageListItemLayout {
76
76
  }
77
77
  export interface MessageListAnchorRequest {
78
78
  key: string;
79
+ positioning: boolean;
79
80
  topOffset: number;
80
81
  animated: boolean;
81
82
  seen: boolean;
@@ -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,9 +255,19 @@ 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
- if (content + 0.5 < minimum) return;
266
+ if (content + 0.5 < minimum) {
267
+ // Resizing can clamp the old offset before the extra space is applied.
268
+ request.settled = false;
269
+ return;
270
+ }
173
271
  if (request.offset === offset && request.viewport === viewport) return;
174
272
  request.offset = offset;
175
273
  request.viewport = viewport;
@@ -178,7 +276,7 @@ export function useMessageListScroll<T>({
178
276
  listRef.current?.scrollToOffset({ offset, animated: request.animated });
179
277
  measurements.current.offset = offset;
180
278
  publishPosition();
181
- }, [listRef, publishPosition, ready]);
279
+ }, [listRef, publishPosition, ready, reconcileRetainedSpace]);
182
280
 
183
281
  const layoutChanged = useRef(applyAnchor);
184
282
 
@@ -234,12 +332,14 @@ export function useMessageListScroll<T>({
234
332
  userScrolling.current = false;
235
333
  anchor.current = {
236
334
  key,
335
+ positioning: true,
237
336
  topOffset: Number.isFinite(options.topOffset)
238
337
  ? Math.max(0, options.topOffset!)
239
338
  : 0,
240
339
  animated: options.animated ?? true,
241
340
  seen: currentKeys.current.includes(key),
242
341
  };
342
+ setPositioningAnchor(true);
243
343
  minimumRef.current = 0;
244
344
  setAnchorMinimumHeight(0);
245
345
  applyAnchor();
@@ -282,53 +382,11 @@ export function useMessageListScroll<T>({
282
382
  }
283
383
  // Explicit positioning and native/Web prepend preservation must never
284
384
  // compensate the same layout twice.
285
- cancelPrependPreservation();
385
+ if (request.positioning) cancelPrependPreservation();
286
386
  applyAnchor();
287
387
  }
288
388
  }, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
289
389
 
290
- const scrollToEnd = useCallback(
291
- (options: MessageListScrollOptions = {}) => {
292
- cancelPrependPreservation();
293
- const request: MessageListPendingScroll = {
294
- animated: options.animated ?? true,
295
- };
296
- const natural = naturalContentHeight();
297
- const minimum = minimumRef.current;
298
- if (
299
- minimum !== undefined &&
300
- natural !== undefined &&
301
- measurements.current.content <= minimum + 0.5 &&
302
- natural + 0.5 < measurements.current.content
303
- ) {
304
- request.contentBeforeRelease = measurements.current.content;
305
- }
306
- cancelAnchor();
307
- if (!ready() || request.contentBeforeRelease !== undefined) {
308
- pendingScroll.current = request;
309
- return;
310
- }
311
- pendingScroll.current = undefined;
312
- listRef.current?.scrollToOffset({
313
- offset: Math.max(
314
- 0,
315
- measurements.current.content - measurements.current.viewport
316
- ),
317
- animated: request.animated,
318
- });
319
- if (measurements.current.content <= measurements.current.viewport)
320
- publishPosition();
321
- },
322
- [
323
- cancelAnchor,
324
- cancelPrependPreservation,
325
- listRef,
326
- naturalContentHeight,
327
- publishPosition,
328
- ready,
329
- ]
330
- );
331
-
332
390
  const itemCount = keys.length;
333
391
  const reconcileLayout = useCallback(
334
392
  (contentChanged: boolean) => {
@@ -406,15 +464,15 @@ export function useMessageListScroll<T>({
406
464
  )
407
465
  followingPaddingChange.current = false;
408
466
  const request = anchor.current;
409
- if (request?.offset !== undefined) {
467
+ if (request?.positioning && request.offset !== undefined) {
410
468
  if (Math.abs(contentOffset.y - request.offset) <= 0.5)
411
469
  request.settled = true;
412
470
  // RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
413
471
  // requested scroll has settled, a user move at unchanged geometry wins.
414
- else if (request.settled && !geometryChanged) cancelAnchor();
472
+ else if (request.settled && !geometryChanged) stopAnchorPositioning();
415
473
  }
416
474
  const resizingAtEnd =
417
- !anchor.current &&
475
+ !anchor.current?.positioning &&
418
476
  atEndRef.current &&
419
477
  !movedUp &&
420
478
  !userScrolling.current &&
@@ -430,7 +488,7 @@ export function useMessageListScroll<T>({
430
488
  };
431
489
  if (!resizingAtEnd && !followingPaddingChange.current) publishPosition();
432
490
  },
433
- [cancelAnchor, followOutput, publishPosition, threshold]
491
+ [followOutput, publishPosition, stopAnchorPositioning, threshold]
434
492
  );
435
493
 
436
494
  const onLayout = useCallback(
@@ -453,8 +511,8 @@ export function useMessageListScroll<T>({
453
511
  userScrolling.current = true;
454
512
  followingPaddingChange.current = false;
455
513
  pendingScroll.current = undefined;
456
- cancelAnchor();
457
- }, [cancelAnchor]);
514
+ stopAnchorPositioning();
515
+ }, [stopAnchorPositioning]);
458
516
  const onMomentumScrollBegin = useCallback(() => {
459
517
  userScrolling.current = true;
460
518
  }, []);
@@ -480,7 +538,7 @@ export function useMessageListScroll<T>({
480
538
  ) => {
481
539
  const request = anchor.current;
482
540
  if (
483
- !request ||
541
+ !request?.positioning ||
484
542
  currentKeys.current.indexOf(request.key) !== failure.index ||
485
543
  !Number.isFinite(failure.averageItemLength) ||
486
544
  failure.averageItemLength <= 0
@@ -496,6 +554,7 @@ export function useMessageListScroll<T>({
496
554
 
497
555
  return {
498
556
  atEnd,
557
+ positioningAnchor,
499
558
  anchorMinimumHeight,
500
559
  anchorToItem,
501
560
  onCellLayout,