@unif/react-native-chat 3.2.4 → 3.3.1

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 (124) hide show
  1. package/lib/module/components/Attachments/AttachmentItem.js +8 -4
  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/constants.js +1 -0
  6. package/lib/module/components/Attachments/constants.js.map +1 -1
  7. package/lib/module/components/Attachments/styles.js +10 -5
  8. package/lib/module/components/Attachments/styles.js.map +1 -1
  9. package/lib/module/components/Composer/Composer.js +13 -9
  10. package/lib/module/components/Composer/Composer.js.map +1 -1
  11. package/lib/module/components/Composer/styles.js +1 -0
  12. package/lib/module/components/Composer/styles.js.map +1 -1
  13. package/lib/module/components/Confirmation/Confirmation.js +29 -13
  14. package/lib/module/components/Confirmation/Confirmation.js.map +1 -1
  15. package/lib/module/components/Confirmation/styles.js +17 -6
  16. package/lib/module/components/Confirmation/styles.js.map +1 -1
  17. package/lib/module/components/Message/MarkdownContent/styles.js +29 -33
  18. package/lib/module/components/Message/MarkdownContent/styles.js.map +1 -1
  19. package/lib/module/components/Message/Message.js +37 -24
  20. package/lib/module/components/Message/Message.js.map +1 -1
  21. package/lib/module/components/Message/MessageWaiting.js +53 -0
  22. package/lib/module/components/Message/MessageWaiting.js.map +1 -0
  23. package/lib/module/components/Message/constants.js +3 -0
  24. package/lib/module/components/Message/constants.js.map +1 -1
  25. package/lib/module/components/Message/styles.js +41 -3
  26. package/lib/module/components/Message/styles.js.map +1 -1
  27. package/lib/module/components/MessageList/MessageList.js +60 -31
  28. package/lib/module/components/MessageList/MessageList.js.map +1 -1
  29. package/lib/module/components/MessageList/MessageListEndButton.js +60 -0
  30. package/lib/module/components/MessageList/MessageListEndButton.js.map +1 -0
  31. package/lib/module/components/MessageList/MessageListRow.js +9 -2
  32. package/lib/module/components/MessageList/MessageListRow.js.map +1 -1
  33. package/lib/module/components/MessageList/styles.js +6 -0
  34. package/lib/module/components/MessageList/styles.js.map +1 -1
  35. package/lib/module/components/MessageList/useMessageListScroll.js +218 -13
  36. package/lib/module/components/MessageList/useMessageListScroll.js.map +1 -1
  37. package/lib/module/components/Process/Process.js +15 -5
  38. package/lib/module/components/Process/Process.js.map +1 -1
  39. package/lib/module/components/Process/ProcessCompactStep.js +21 -12
  40. package/lib/module/components/Process/ProcessCompactStep.js.map +1 -1
  41. package/lib/module/components/Process/ProcessTimelineStep.js +79 -0
  42. package/lib/module/components/Process/ProcessTimelineStep.js.map +1 -0
  43. package/lib/module/components/Process/styles.js +63 -3
  44. package/lib/module/components/Process/styles.js.map +1 -1
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts +1 -1
  47. package/lib/typescript/src/components/Attachments/AttachmentItem.d.ts.map +1 -1
  48. package/lib/typescript/src/components/Attachments/Attachments.d.ts.map +1 -1
  49. package/lib/typescript/src/components/Attachments/constants.d.ts +1 -0
  50. package/lib/typescript/src/components/Attachments/constants.d.ts.map +1 -1
  51. package/lib/typescript/src/components/Attachments/styles.d.ts +5 -0
  52. package/lib/typescript/src/components/Attachments/styles.d.ts.map +1 -1
  53. package/lib/typescript/src/components/Attachments/types.d.ts +2 -1
  54. package/lib/typescript/src/components/Attachments/types.d.ts.map +1 -1
  55. package/lib/typescript/src/components/Composer/Composer.d.ts.map +1 -1
  56. package/lib/typescript/src/components/Composer/styles.d.ts +1 -0
  57. package/lib/typescript/src/components/Composer/styles.d.ts.map +1 -1
  58. package/lib/typescript/src/components/Confirmation/Confirmation.d.ts.map +1 -1
  59. package/lib/typescript/src/components/Confirmation/styles.d.ts +13 -2
  60. package/lib/typescript/src/components/Confirmation/styles.d.ts.map +1 -1
  61. package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts +32 -66
  62. package/lib/typescript/src/components/Message/MarkdownContent/styles.d.ts.map +1 -1
  63. package/lib/typescript/src/components/Message/Message.d.ts.map +1 -1
  64. package/lib/typescript/src/components/Message/MessageWaiting.d.ts +3 -0
  65. package/lib/typescript/src/components/Message/MessageWaiting.d.ts.map +1 -0
  66. package/lib/typescript/src/components/Message/constants.d.ts +3 -0
  67. package/lib/typescript/src/components/Message/constants.d.ts.map +1 -1
  68. package/lib/typescript/src/components/Message/styles.d.ts +40 -2
  69. package/lib/typescript/src/components/Message/styles.d.ts.map +1 -1
  70. package/lib/typescript/src/components/Message/types.d.ts +5 -0
  71. package/lib/typescript/src/components/Message/types.d.ts.map +1 -1
  72. package/lib/typescript/src/components/MessageList/MessageList.d.ts.map +1 -1
  73. package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts +3 -0
  74. package/lib/typescript/src/components/MessageList/MessageListEndButton.d.ts.map +1 -0
  75. package/lib/typescript/src/components/MessageList/MessageListRow.d.ts +2 -8
  76. package/lib/typescript/src/components/MessageList/MessageListRow.d.ts.map +1 -1
  77. package/lib/typescript/src/components/MessageList/index.d.ts +1 -1
  78. package/lib/typescript/src/components/MessageList/index.d.ts.map +1 -1
  79. package/lib/typescript/src/components/MessageList/styles.d.ts +6 -0
  80. package/lib/typescript/src/components/MessageList/styles.d.ts.map +1 -1
  81. package/lib/typescript/src/components/MessageList/types.d.ts +41 -2
  82. package/lib/typescript/src/components/MessageList/types.d.ts.map +1 -1
  83. package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts +14 -3
  84. package/lib/typescript/src/components/MessageList/useMessageListScroll.d.ts.map +1 -1
  85. package/lib/typescript/src/components/Process/Process.d.ts.map +1 -1
  86. package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts +1 -1
  87. package/lib/typescript/src/components/Process/ProcessCompactStep.d.ts.map +1 -1
  88. package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts +5 -0
  89. package/lib/typescript/src/components/Process/ProcessTimelineStep.d.ts.map +1 -0
  90. package/lib/typescript/src/components/Process/styles.d.ts +62 -2
  91. package/lib/typescript/src/components/Process/styles.d.ts.map +1 -1
  92. package/lib/typescript/src/components/Process/types.d.ts +7 -2
  93. package/lib/typescript/src/components/Process/types.d.ts.map +1 -1
  94. package/lib/typescript/src/index.d.ts +1 -1
  95. package/lib/typescript/src/index.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/src/components/Attachments/AttachmentItem.tsx +16 -5
  98. package/src/components/Attachments/Attachments.tsx +1 -0
  99. package/src/components/Attachments/constants.ts +1 -0
  100. package/src/components/Attachments/styles.ts +7 -4
  101. package/src/components/Attachments/types.ts +2 -1
  102. package/src/components/Composer/Composer.tsx +34 -8
  103. package/src/components/Composer/styles.ts +1 -0
  104. package/src/components/Confirmation/Confirmation.tsx +50 -14
  105. package/src/components/Confirmation/styles.ts +13 -6
  106. package/src/components/Message/MarkdownContent/styles.ts +18 -44
  107. package/src/components/Message/Message.tsx +53 -33
  108. package/src/components/Message/MessageWaiting.tsx +68 -0
  109. package/src/components/Message/constants.ts +4 -0
  110. package/src/components/Message/styles.ts +25 -2
  111. package/src/components/Message/types.ts +6 -0
  112. package/src/components/MessageList/MessageList.tsx +107 -35
  113. package/src/components/MessageList/MessageListEndButton.tsx +61 -0
  114. package/src/components/MessageList/MessageListRow.tsx +12 -12
  115. package/src/components/MessageList/index.ts +1 -0
  116. package/src/components/MessageList/styles.ts +6 -0
  117. package/src/components/MessageList/types.ts +52 -2
  118. package/src/components/MessageList/useMessageListScroll.ts +296 -21
  119. package/src/components/Process/Process.tsx +38 -5
  120. package/src/components/Process/ProcessCompactStep.tsx +32 -16
  121. package/src/components/Process/ProcessTimelineStep.tsx +109 -0
  122. package/src/components/Process/styles.ts +48 -3
  123. package/src/components/Process/types.ts +7 -2
  124. package/src/index.tsx +1 -0
@@ -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":";;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,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,GAAGvC,eAAe,CAACE,YAAY,CAAC;EAC5C,MAAMsC,OAAO,GAAG7C,MAAM,CAAc,IAAI,CAAC;EACzC,MAAM8C,UAAU,GAAG9C,MAAM,CAAC0C,MAAM,CAAC;EACjCI,UAAU,CAACC,OAAO,GAAGL,MAAM;EAC3B,MAAMM,YAAY,GAAG9C,UAAU,CAAC+C,OAAO,CAACV,qBAAqB,CAAC;EAC9D,MAAMW,IAAI,GAAGnD,OAAO,CAAC,MAAMsB,KAAK,CAAC8B,GAAG,CAAC7B,YAAY,CAAC,EAAE,CAACD,KAAK,EAAEC,YAAY,CAAC,CAAC;EAC1E,MAAM;IAAE8B,cAAc;IAAEC,oBAAoB;IAAEC;EAA0B,CAAC,GACvE9C,mBAAmB,CAAC;IAAEqC,OAAO;IAAEU,aAAa,EAAElC,KAAK;IAAE6B;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,GAAG9D,oBAAoB,CAAC;IACvBoC,OAAO;IACPK,IAAI;IACJrB,eAAe;IACfC,YAAY;IACZC,YAAY;IACZG,aAAa;IACbsC,SAAS,EAAE,CAAC,CAAC9C,MAAM;IACnB+C,oBAAoB,EAAEzB,YAAY,EAAE0B,SAAS;IAC7CC,oBAAoB,EAClB3B,YAAY,EAAE4B,aAAa,IAC3B5B,YAAY,EAAE6B,eAAe,IAC7B7B,YAAY,EAAE8B,OAAO;IACvBzB,oBAAoB;IACpBC;EACF,CAAC,CAAC;EACFzD,mBAAmB,CAAC8C,GAAG,EAAE,OAAO;IAAEqB,WAAW;IAAEN;EAAa,CAAC,CAAC,EAAE,CAC9DM,WAAW,EACXN,YAAY,CACb,CAAC;EAEF,MAAMqB,YAAY,GAAGnF,WAAW,CAC9B,SAASoF,eAAeA,CAAC;IACvBC,OAAO;IACPC,KAAK;IACLC,QAAQ;IACR1C,KAAK,EAAE2C,SAAS;IAChBnB,QAAQ,EAAEoB,YAAY;IACtBC;EACuB,CAAC,EAAE;IAC1B,MAAMC,YAAY,GAAGvF,MAAM,CAACkF,KAAK,CAAC;IAClCK,YAAY,CAACxC,OAAO,GAAGmC,KAAK;IAC5BpF,eAAe,CACb,MAAM,MAAM+D,aAAa,CAACoB,OAAO,EAAEM,YAAY,CAACxC,OAAO,CAAC,EACxD,CAACkC,OAAO,CACV,CAAC;IACD,oBACEpE,IAAA,CAACV,IAAI;MACHsC,KAAK,EAAE2C,SAAU;MACjBE,cAAc,EAAEA,cAAe;MAC/B5C,MAAM,EACJI,UAAU,CAACC,OAAO,GACd,GAAGD,UAAU,CAACC,OAAO,SAASyC,kBAAkB,CAACP,OAAO,CAAC,EAAE,GAC3DQ,SACL;MACDxB,QAAQ,EAAGyB,KAAK,IAAK;QACnBL,YAAY,GAAGK,KAAK,CAAC;QACrB/B,YAAY,CAACsB,OAAO,EAAEC,KAAK,EAAEQ,KAAK,CAACC,WAAW,CAACC,MAAM,CAAC;MACxD,CAAE;MAAAT,QAAA,EAEDA;IAAQ,CACL,CAAC;EAEX,CAAC,EACD,CAACxB,YAAY,EAAEE,aAAa,CAC9B,CAAC;EAED,MAAMgC,SAAS,GAAGjG,WAAW,CAC3B,CAAC;IAAEkG,IAAI;IAAEZ;EAA6B,CAAC,kBACrCrE,IAAA,CAACH,cAAc;IACboF,IAAI,EAAEA,IAAK;IACXZ,KAAK,EAAEA,KAAM;IACba,OAAO,EAAE7C,IAAI,CAACgC,KAAK,CAAG;IACtBtB,YAAY,EAAEA,YAAa;IAC3BlB,MAAM,EACJA,MAAM,GACF,GAAGA,MAAM,SAAS8C,kBAAkB,CAACtC,IAAI,CAACgC,KAAK,CAAE,CAAC,EAAE,GACpDO,SACL;IACDO,QAAQ,EAAEpE,eAAe,GAAGP,KAAK,CAAC6D,KAAK,GAAG,CAAC,CAAC,GAAGO,SAAU;IACzDQ,QAAQ,EAAE7C,cAAc,CAACF,IAAI,CAACgC,KAAK,CAAE,CAAE;IACvC3D,UAAU,EAAEA,UAAW;IACvBK,eAAe,EAAEA,eAAgB;IACjCJ,SAAS,EAAEA;EAAU,CACtB,CACF,EACD,CACEA,SAAS,EACT4B,cAAc,EACd/B,KAAK,EACL6B,IAAI,EACJU,YAAY,EACZrC,UAAU,EACVK,eAAe,EACfc,MAAM,CAEV,CAAC;EAED,MAAMwD,OAAO,GAAG/D,UAAU,IAAIE,gBAAgB;EAC9C,MAAM8D,SAAS,GAAGC,OAAO,CAAC3E,MAAM,IAAIyE,OAAO,CAAC;EAC5C,MAAMG,UAAU,GAAGtG,OAAO,CACxB,MACEoG,SAAS,gBACPpF,KAAA,CAACZ,IAAI;IAAAgF,QAAA,GACF1D,MAAM,EACNyE,OAAO,gBACNrF,IAAA,CAACT,MAAM;MACLkG,KAAK,EAAElE,cAAc,GAAG,OAAO,GAAG,QAAS;MAC3CmE,OAAO,EAAC,MAAM;MACdC,OAAO,EAAEpE,cAAe;MACxBqE,OAAO,EAAEpE;IAAiB,CAC3B,CAAC,GACA,IAAI;EAAA,CACJ,CAAC,GACLoD,SAAS,EACf,CAACU,SAAS,EAAE1E,MAAM,EAAEyE,OAAO,EAAE9D,cAAc,EAAEC,gBAAgB,CAC/D,CAAC;EACD,MAAMqE,UAAU,GAAG3G,OAAO,CACxB,MACE2B,MAAM,gBAAGb,IAAA,CAACV,IAAI;IAAC8D,QAAQ,EAAEH,cAAe;IAAAqB,QAAA,EAAEzD;EAAM,CAAO,CAAC,GAAG+D,SAAS,EACtE,CAAC/D,MAAM,EAAEoC,cAAc,CACzB,CAAC;EACD,MAAM6C,SAAS,GAAG5G,OAAO,CAAC,MAAO4B,KAAK,gBAAGd,IAAA,CAAAI,SAAA;IAAAkE,QAAA,EAAGxD;EAAK,CAAG,CAAC,GAAG8D,SAAU,EAAE,CAAC9D,KAAK,CAAC,CAAC;EAC5E,oBACEZ,KAAA,CAACZ,IAAI;IAACsC,KAAK,EAAE,CAACG,MAAM,CAACgE,IAAI,EAAEnE,KAAK,CAAE;IAACC,MAAM,EAAEA,MAAO;IAAAyC,QAAA,gBAChDtE,IAAA,CAACZ,QAAQ;MACP0C,GAAG,EAAEE,OAAQ;MACbH,MAAM,EAAEA,MAAM,GAAG,GAAGA,MAAM,OAAO,GAAG+C,SAAU;MAC9ChD,KAAK,EAAEG,MAAM,CAACiE,IAAK;MACnBC,IAAI,EAAEzF,KAAM;MACZC,YAAY,EAAEA,YAAa;MAC3BE,SAAS,EAAEA,SAAU;MACrBD,UAAU,EAAEsE,SAAU;MACtBkB,qBAAqB,EAAEhC,YAAa;MACpCiC,mBAAmB,EAAEX,UAAW;MAChCY,mBAAmB,EAAEP,UAAW;MAChCQ,kBAAkB,EAAEP,SAAU;MAC9BQ,8BAA8B,EAC5B9F,KAAK,CAAC+F,MAAM,GAAG,CAAC,IAAI3D,mBAAmB,KAAKgC,SAAS,GACjDvE,yBAAyB,GACzBuE,SACL;MACDnD,mBAAmB,EAAEA,mBAAoB;MACzCC,qBAAqB,EACnBkB,mBAAmB,GACf,CAAClB,qBAAqB,EAAE;QAAEmC,SAAS,EAAEjB;MAAoB,CAAC,CAAC,GAC3DlB,qBACL;MACDC,4BAA4B,EAAEA,4BAA6B;MAC3D6E,yBAAyB,EAAC,SAAS;MACnCC,mBAAmB,EAAE,EAAG;MACxBrD,QAAQ,EAAEA,QAAS;MACnBC,mBAAmB,EAAEA,mBAAoB;MACzCC,QAAQ,EAAEA,QAAS;MACnBoD,iBAAiB,EAAEnD,iBAAkB;MACrCC,qBAAqB,EAAEA,qBAAsB;MAC7CC,eAAe,EAAEA,eAAgB;MACjCC,mBAAmB,EAAEA,mBAAoB;MACzCR,qBAAqB,EAAEA;IAAsB,CAC9C,CAAC,EACD/B,eAAe,IAAIX,KAAK,CAAC+F,MAAM,GAAG,CAAC,IAAI,CAAC5D,KAAK,gBAC5C3C,IAAA,CAACF,oBAAoB;MACnB6G,IAAI,EAAEvF,eAAgB;MACtBwE,OAAO,EAAEA,CAAA,KAAMzC,WAAW,CAAC;IAAE,CAC9B,CAAC,GACA,IAAI;EAAA,CACJ,CAAC;AAEX","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,
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","createStyles","colors","shadows","create","root","flex","minHeight","minWidth","list","returnToEnd","position","bottom","alignSelf","width","height","alignItems","justifyContent","returnProgress","absoluteFill","returnButton","borderRadius","backgroundColor","surface","card"],"sourceRoot":"../../../../src","sources":["components/MessageList/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAmB,EAAEC,OAAqB,KACrEH,UAAU,CAACI,MAAM,CAAC;EAChBC,IAAI,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC5CC,IAAI,EAAE;IAAEH,IAAI,EAAE;EAAE,CAAC;EACjBI,WAAW,EAAE;IACXC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAElB,UAAU,CAACmB,YAAY;EACvCC,YAAY,EAAE;IACZP,SAAS,EAAE,QAAQ;IACnBQ,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAEpB,MAAM,CAACqB,OAAO;IAC/B,GAAGpB,OAAO,CAACqB;EACb;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","createStyles","colors","shadows","create","root","flex","minHeight","minWidth","list","returnToEnd","position","bottom","alignSelf","width","height","alignItems","justifyContent","returnProgress","absoluteFill","returnVisual","returnButton","borderRadius","backgroundColor","surface","card"],"sourceRoot":"../../../../src","sources":["components/MessageList/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,YAAY,GAAGA,CAACC,MAAmB,EAAEC,OAAqB,KACrEH,UAAU,CAACI,MAAM,CAAC;EAChBC,IAAI,EAAE;IAAEC,IAAI,EAAE,CAAC;IAAEC,SAAS,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC5CC,IAAI,EAAE;IAAEH,IAAI,EAAE;EAAE,CAAC;EACjBI,WAAW,EAAE;IACXC,QAAQ,EAAE,UAAU;IACpBC,MAAM,EAAE,CAAC;IACTC,SAAS,EAAE,QAAQ;IACnBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDC,cAAc,EAAElB,UAAU,CAACmB,YAAY;EACvCC,YAAY,EAAE;IACZN,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDI,YAAY,EAAE;IACZR,SAAS,EAAE,QAAQ;IACnBS,YAAY,EAAE,EAAE;IAChBC,eAAe,EAAErB,MAAM,CAACsB,OAAO;IAC/B,GAAGrB,OAAO,CAACsB;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -2,6 +2,14 @@
2
2
 
3
3
  import { useCallback, useLayoutEffect, useRef, useState } from 'react';
4
4
  import { DEFAULT_END_THRESHOLD } from "./constants.js";
5
+ function layoutValue(value, extent) {
6
+ if (typeof value === 'number' && Number.isFinite(value)) return Math.max(0, value);
7
+ if (typeof value === 'string' && value.endsWith('%')) {
8
+ const percentage = Number.parseFloat(value);
9
+ if (Number.isFinite(percentage)) return Math.max(0, extent * percentage / 100);
10
+ }
11
+ return 0;
12
+ }
5
13
  export function useMessageListScroll({
6
14
  listRef,
7
15
  keys,
@@ -9,10 +17,14 @@ export function useMessageListScroll({
9
17
  followOutput,
10
18
  endThreshold = DEFAULT_END_THRESHOLD,
11
19
  onAtEndChange,
20
+ contentMinimumHeight,
21
+ contentBottomPadding,
22
+ hasFooter,
12
23
  preservingPrependRef,
13
24
  cancelPrependPreservation
14
25
  }) {
15
26
  const measurements = useRef({
27
+ width: 0,
16
28
  viewport: 0,
17
29
  content: 0,
18
30
  offset: 0,
@@ -21,20 +33,30 @@ export function useMessageListScroll({
21
33
  const initial = useRef(initialPosition);
22
34
  const initialized = useRef(false);
23
35
  const previousKeys = useRef([]);
36
+ const currentKeys = useRef(keys);
37
+ currentKeys.current = keys;
38
+ const contentStyle = useRef({
39
+ contentMinimumHeight,
40
+ contentBottomPadding
41
+ });
42
+ contentStyle.current = {
43
+ contentMinimumHeight,
44
+ contentBottomPadding
45
+ };
24
46
  const prependPending = useRef(false);
25
47
  const pendingScroll = useRef(undefined);
26
48
  const userScrolling = useRef(false);
27
49
  const atEndRef = useRef(undefined);
28
50
  const [atEnd, setAtEnd] = useState(true);
51
+ const anchor = useRef(undefined);
52
+ const layouts = useRef(new Map());
53
+ const layoutRevision = useRef(0);
54
+ const footerHeight = useRef(0);
55
+ if (!hasFooter) footerHeight.current = 0;
56
+ const layoutChanged = useRef(() => {});
57
+ const [anchorMinimumHeight, setAnchorMinimumHeight] = useState();
58
+ const minimumRef = useRef(undefined);
29
59
  const threshold = Number.isFinite(endThreshold) ? Math.max(0, endThreshold) : DEFAULT_END_THRESHOLD;
30
- useLayoutEffect(() => {
31
- const previous = previousKeys.current;
32
- const added = keys.length - previous.length;
33
- const onlyPrepended = previous.length > 0 && added > 0 && previous.every((key, index) => keys[index + added] === key);
34
- const changed = keys.length !== previous.length || keys.some((key, index) => key !== previous[index]);
35
- if (changed) prependPending.current = onlyPrepended;
36
- previousKeys.current = keys;
37
- }, [keys]);
38
60
  const ready = useCallback(() => {
39
61
  const current = measurements.current;
40
62
  return current.viewport > 0 && current.hasContentSize;
@@ -53,12 +75,156 @@ export function useMessageListScroll({
53
75
  onAtEndChange?.(next);
54
76
  }
55
77
  }, [onAtEndChange, ready, threshold]);
78
+ const cancelAnchor = useCallback(() => {
79
+ anchor.current = undefined;
80
+ minimumRef.current = undefined;
81
+ setAnchorMinimumHeight(undefined);
82
+ }, []);
83
+ const naturalContentHeight = useCallback(() => {
84
+ const last = currentKeys.current.at(-1);
85
+ const cell = last === undefined ? undefined : layouts.current.get(last)?.cell;
86
+ if (!cell) return undefined;
87
+ const {
88
+ width,
89
+ viewport
90
+ } = measurements.current;
91
+ return Math.max(cell.y + cell.height + footerHeight.current + layoutValue(contentStyle.current.contentBottomPadding, width), layoutValue(contentStyle.current.contentMinimumHeight, viewport));
92
+ }, []);
93
+ const applyAnchor = useCallback(() => {
94
+ const request = anchor.current;
95
+ if (!request || !ready()) return;
96
+ const index = currentKeys.current.indexOf(request.key);
97
+ if (index < 0) return;
98
+ request.seen = true;
99
+ const position = layouts.current.get(request.key);
100
+ if (!position?.cell || position.itemY === undefined) {
101
+ // An offscreen row first needs to enter FlatList's render window. This
102
+ // estimate only reveals it; success still requires its actual layouts.
103
+ if (request.locatedAt !== layoutRevision.current) {
104
+ request.locatedAt = layoutRevision.current;
105
+ listRef.current?.scrollToIndex({
106
+ index,
107
+ animated: false,
108
+ viewPosition: 0
109
+ });
110
+ }
111
+ return;
112
+ }
113
+ const {
114
+ viewport,
115
+ content
116
+ } = measurements.current;
117
+ const offset = Math.max(0, position.cell.y + position.itemY - request.topOffset);
118
+ const minimum = Math.max(offset + viewport, layoutValue(contentStyle.current.contentMinimumHeight, viewport));
119
+ minimumRef.current = minimum;
120
+ setAnchorMinimumHeight(minimum);
121
+ // Yoga's requested minimum is not yet native scroll space. Wait for the
122
+ // content-size event; otherwise native scrolling can clamp the target.
123
+ if (content + 0.5 < minimum) return;
124
+ if (request.offset === offset && request.viewport === viewport) return;
125
+ request.offset = offset;
126
+ request.viewport = viewport;
127
+ request.settled = false;
128
+ initialized.current = true;
129
+ listRef.current?.scrollToOffset({
130
+ offset,
131
+ animated: request.animated
132
+ });
133
+ measurements.current.offset = offset;
134
+ publishPosition();
135
+ }, [listRef, publishPosition, ready]);
136
+ const onCellLayout = useCallback((key, index, cell) => {
137
+ if (currentKeys.current[index] !== key || !Number.isFinite(cell.y) || !Number.isFinite(cell.height)) return;
138
+ const previous = layouts.current.get(key);
139
+ if (previous?.index !== index || previous.cell?.x !== cell.x || previous.cell.y !== cell.y || previous.cell.width !== cell.width || previous.cell.height !== cell.height) layoutRevision.current++;
140
+ layouts.current.set(key, {
141
+ ...previous,
142
+ index,
143
+ cell
144
+ });
145
+ layoutChanged.current();
146
+ }, []);
147
+ const onItemLayout = useCallback((key, index, itemY) => {
148
+ if (currentKeys.current[index] !== key || !Number.isFinite(itemY)) return;
149
+ const previous = layouts.current.get(key);
150
+ if (previous?.index !== index || previous.itemY !== itemY) layoutRevision.current++;
151
+ layouts.current.set(key, {
152
+ ...previous,
153
+ index,
154
+ itemY
155
+ });
156
+ layoutChanged.current();
157
+ }, []);
158
+ const onCellUnmount = useCallback((key, index) => {
159
+ if (layouts.current.get(key)?.index === index) {
160
+ layouts.current.delete(key);
161
+ layoutRevision.current++;
162
+ }
163
+ }, []);
164
+ const onFooterLayout = useCallback(event => {
165
+ footerHeight.current = event.nativeEvent.layout.height;
166
+ layoutChanged.current();
167
+ }, []);
168
+ const anchorToItem = useCallback((key, options = {}) => {
169
+ pendingScroll.current = undefined;
170
+ cancelPrependPreservation();
171
+ userScrolling.current = false;
172
+ anchor.current = {
173
+ key,
174
+ topOffset: Number.isFinite(options.topOffset) ? Math.max(0, options.topOffset) : 0,
175
+ animated: options.animated ?? true,
176
+ seen: currentKeys.current.includes(key)
177
+ };
178
+ minimumRef.current = 0;
179
+ setAnchorMinimumHeight(0);
180
+ applyAnchor();
181
+ }, [applyAnchor, cancelPrependPreservation]);
182
+ useLayoutEffect(() => {
183
+ const previous = previousKeys.current;
184
+ const added = keys.length - previous.length;
185
+ const onlyPrepended = previous.length > 0 && added > 0 && previous.every((key, index) => keys[index + added] === key);
186
+ const changed = keys.length !== previous.length || keys.some((key, index) => key !== previous[index]);
187
+ if (changed) {
188
+ layoutRevision.current++;
189
+ prependPending.current = onlyPrepended;
190
+ const indices = new Map(keys.map((key, index) => [key, index]));
191
+ for (const [key, layout] of layouts.current) {
192
+ const index = indices.get(key);
193
+ if (index === undefined) layouts.current.delete(key);else if (index !== layout.index) {
194
+ // A moved cell gets a new natural y; the row's local separator
195
+ // offset remains valid until an actual layout change replaces it.
196
+ layouts.current.set(key, {
197
+ index,
198
+ itemY: layout.itemY
199
+ });
200
+ }
201
+ }
202
+ }
203
+ previousKeys.current = keys;
204
+ const request = anchor.current;
205
+ if (request) {
206
+ if (keys.includes(request.key)) request.seen = true;else if (request.seen) {
207
+ cancelAnchor();
208
+ return;
209
+ }
210
+ // Explicit positioning and native/Web prepend preservation must never
211
+ // compensate the same layout twice.
212
+ cancelPrependPreservation();
213
+ applyAnchor();
214
+ }
215
+ }, [applyAnchor, cancelAnchor, cancelPrependPreservation, keys]);
56
216
  const scrollToEnd = useCallback((options = {}) => {
57
217
  cancelPrependPreservation();
58
218
  const request = {
59
219
  animated: options.animated ?? true
60
220
  };
61
- if (!ready()) {
221
+ const natural = naturalContentHeight();
222
+ const minimum = minimumRef.current;
223
+ if (minimum !== undefined && natural !== undefined && measurements.current.content <= minimum + 0.5 && natural + 0.5 < measurements.current.content) {
224
+ request.contentBeforeRelease = measurements.current.content;
225
+ }
226
+ cancelAnchor();
227
+ if (!ready() || request.contentBeforeRelease !== undefined) {
62
228
  pendingScroll.current = request;
63
229
  return;
64
230
  }
@@ -68,11 +234,16 @@ export function useMessageListScroll({
68
234
  animated: request.animated
69
235
  });
70
236
  if (measurements.current.content <= measurements.current.viewport) publishPosition();
71
- }, [cancelPrependPreservation, listRef, publishPosition, ready]);
237
+ }, [cancelAnchor, cancelPrependPreservation, listRef, naturalContentHeight, publishPosition, ready]);
72
238
  const itemCount = keys.length;
73
239
  const reconcileLayout = useCallback(contentChanged => {
74
240
  if (!ready()) return;
241
+ if (anchor.current) {
242
+ applyAnchor();
243
+ return;
244
+ }
75
245
  const request = pendingScroll.current;
246
+ if (request?.contentBeforeRelease !== undefined && measurements.current.content === request.contentBeforeRelease && (naturalContentHeight() ?? 0) < request.contentBeforeRelease) return;
76
247
  if (itemCount > 0 && !initialized.current) {
77
248
  initialized.current = true;
78
249
  if (request || initial.current === 'end') {
@@ -94,7 +265,10 @@ export function useMessageListScroll({
94
265
  if (shouldFollow) scrollToEnd({
95
266
  animated: false
96
267
  });else publishPosition();
97
- }, [followOutput, itemCount, preservingPrependRef, publishPosition, ready, scrollToEnd]);
268
+ }, [applyAnchor, followOutput, itemCount, naturalContentHeight, preservingPrependRef, publishPosition, ready, scrollToEnd]);
269
+ layoutChanged.current = () => {
270
+ if (anchor.current) applyAnchor();else if (pendingScroll.current) reconcileLayout(false);
271
+ };
98
272
  const onScroll = useCallback(event => {
99
273
  const {
100
274
  contentOffset,
@@ -102,21 +276,31 @@ export function useMessageListScroll({
102
276
  layoutMeasurement
103
277
  } = event.nativeEvent;
104
278
  const movedUp = contentOffset.y < measurements.current.offset;
105
- const resizingAtEnd = atEndRef.current && !movedUp && !userScrolling.current && followOutput === 'whenAtEnd' && (measurements.current.content !== contentSize.height || measurements.current.viewport !== layoutMeasurement.height);
279
+ const geometryChanged = measurements.current.content !== contentSize.height || measurements.current.viewport !== layoutMeasurement.height;
280
+ const request = anchor.current;
281
+ if (request?.offset !== undefined) {
282
+ if (Math.abs(contentOffset.y - request.offset) <= 0.5) request.settled = true;
283
+ // RN Web wheel scrolling need not dispatch scrollBeginDrag. Once a
284
+ // requested scroll has settled, a user move at unchanged geometry wins.
285
+ else if (request.settled && !geometryChanged) cancelAnchor();
286
+ }
287
+ const resizingAtEnd = !anchor.current && atEndRef.current && !movedUp && !userScrolling.current && followOutput === 'whenAtEnd' && geometryChanged;
106
288
  measurements.current = {
289
+ width: layoutMeasurement.width,
107
290
  offset: contentOffset.y,
108
291
  content: contentSize.height,
109
292
  viewport: layoutMeasurement.height,
110
293
  hasContentSize: true
111
294
  };
112
295
  if (!resizingAtEnd) publishPosition();
113
- }, [followOutput, publishPosition]);
296
+ }, [cancelAnchor, followOutput, publishPosition]);
114
297
  const onLayout = useCallback(({
115
298
  nativeEvent: {
116
299
  layout
117
300
  }
118
301
  }) => {
119
302
  measurements.current.viewport = layout.height;
303
+ measurements.current.width = layout.width;
120
304
  reconcileLayout(false);
121
305
  }, [reconcileLayout]);
122
306
  const onContentSizeChange = useCallback((_width, height) => {
@@ -126,6 +310,11 @@ export function useMessageListScroll({
126
310
  }, [reconcileLayout]);
127
311
  const onUserScrollBegin = useCallback(() => {
128
312
  userScrolling.current = true;
313
+ pendingScroll.current = undefined;
314
+ cancelAnchor();
315
+ }, [cancelAnchor]);
316
+ const onMomentumScrollBegin = useCallback(() => {
317
+ userScrolling.current = true;
129
318
  }, []);
130
319
  const onScrollEndDrag = useCallback(event => {
131
320
  onScroll(event);
@@ -139,13 +328,29 @@ export function useMessageListScroll({
139
328
  userScrolling.current = false;
140
329
  publishPosition();
141
330
  }, [onScroll, publishPosition]);
331
+ const onScrollToIndexFailed = useCallback(failure => {
332
+ const request = anchor.current;
333
+ if (!request || currentKeys.current.indexOf(request.key) !== failure.index || !Number.isFinite(failure.averageItemLength) || failure.averageItemLength <= 0) return;
334
+ listRef.current?.scrollToOffset({
335
+ offset: failure.index * failure.averageItemLength,
336
+ animated: false
337
+ });
338
+ }, [listRef]);
142
339
  return {
143
340
  atEnd,
341
+ anchorMinimumHeight,
342
+ anchorToItem,
343
+ onCellLayout,
344
+ onItemLayout,
345
+ onCellUnmount,
346
+ onFooterLayout,
347
+ onScrollToIndexFailed,
144
348
  scrollToEnd,
145
349
  onLayout,
146
350
  onContentSizeChange,
147
351
  onScroll,
148
352
  onUserScrollBegin,
353
+ onMomentumScrollBegin,
149
354
  onScrollEndDrag,
150
355
  onMomentumScrollEnd
151
356
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useLayoutEffect","useRef","useState","DEFAULT_END_THRESHOLD","useMessageListScroll","listRef","keys","initialPosition","followOutput","endThreshold","onAtEndChange","preservingPrependRef","cancelPrependPreservation","measurements","viewport","content","offset","hasContentSize","initial","initialized","previousKeys","prependPending","pendingScroll","undefined","userScrolling","atEndRef","atEnd","setAtEnd","threshold","Number","isFinite","Math","max","previous","current","added","length","onlyPrepended","every","key","index","changed","some","ready","publishPosition","next","scrollToEnd","options","request","animated","scrollToOffset","itemCount","reconcileLayout","contentChanged","prepended","shouldFollow","onScroll","event","contentOffset","contentSize","layoutMeasurement","nativeEvent","movedUp","y","resizingAtEnd","height","onLayout","layout","onContentSizeChange","_width","onUserScrollBegin","onScrollEndDrag","velocity","onMomentumScrollEnd"],"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","layouts","Map","layoutRevision","footerHeight","layoutChanged","anchorMinimumHeight","setAnchorMinimumHeight","minimumRef","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","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":";;AAAA,SAASA,WAAW,EAAEC,eAAe,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAWtE,SAASC,qBAAqB,QAAQ,gBAAa;AAwBnD,SAASC,WAAWA,CAACC,KAAiC,EAAEC,MAAc,EAAE;EACtE,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAIE,MAAM,CAACC,QAAQ,CAACH,KAAK,CAAC,EACrD,OAAOI,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,KAAK,CAAC;EAC3B,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACM,QAAQ,CAAC,GAAG,CAAC,EAAE;IACpD,MAAMC,UAAU,GAAGL,MAAM,CAACM,UAAU,CAACR,KAAK,CAAC;IAC3C,IAAIE,MAAM,CAACC,QAAQ,CAACI,UAAU,CAAC,EAC7B,OAAOH,IAAI,CAACC,GAAG,CAAC,CAAC,EAAGJ,MAAM,GAAGM,UAAU,GAAI,GAAG,CAAC;EACnD;EACA,OAAO,CAAC;AACV;AAEA,OAAO,SAASE,oBAAoBA,CAAI;EACtCC,OAAO;EACPC,IAAI;EACJC,eAAe;EACfC,YAAY;EACZC,YAAY,GAAGhB,qBAAqB;EACpCiB,aAAa;EACbC,oBAAoB;EACpBC,oBAAoB;EACpBC,SAAS;EACTC,oBAAoB;EACpBC;AACyB,CAAC,EAAE;EAC5B,MAAMC,YAAY,GAAGzB,MAAM,CAAmB;IAC5C0B,KAAK,EAAE,CAAC;IACRC,QAAQ,EAAE,CAAC;IACXC,OAAO,EAAE,CAAC;IACVC,MAAM,EAAE,CAAC;IACTC,cAAc,EAAE;EAClB,CAAC,CAAC;EACF,MAAMC,OAAO,GAAG/B,MAAM,CAACgB,eAAe,CAAC;EACvC,MAAMgB,WAAW,GAAGhC,MAAM,CAAC,KAAK,CAAC;EACjC,MAAMiC,YAAY,GAAGjC,MAAM,CAAoB,EAAE,CAAC;EAClD,MAAMkC,WAAW,GAAGlC,MAAM,CAACe,IAAI,CAAC;EAChCmB,WAAW,CAACC,OAAO,GAAGpB,IAAI;EAC1B,MAAMqB,YAAY,GAAGpC,MAAM,CAAC;IAAEoB,oBAAoB;IAAEC;EAAqB,CAAC,CAAC;EAC3Ee,YAAY,CAACD,OAAO,GAAG;IAAEf,oBAAoB;IAAEC;EAAqB,CAAC;EACrE,MAAMgB,cAAc,GAAGrC,MAAM,CAAC,KAAK,CAAC;EACpC,MAAMsC,aAAa,GAAGtC,MAAM,CAAuCuC,SAAS,CAAC;EAC7E,MAAMC,aAAa,GAAGxC,MAAM,CAAC,KAAK,CAAC;EACnC,MAAMyC,QAAQ,GAAGzC,MAAM,CAAsBuC,SAAS,CAAC;EACvD,MAAM,CAACG,KAAK,EAAEC,QAAQ,CAAC,GAAG1C,QAAQ,CAAC,IAAI,CAAC;EACxC,MAAM2C,MAAM,GAAG5C,MAAM,CAAuCuC,SAAS,CAAC;EACtE,MAAMM,OAAO,GAAG7C,MAAM,CAAC,IAAI8C,GAAG,CAAgC,CAAC,CAAC;EAChE,MAAMC,cAAc,GAAG/C,MAAM,CAAC,CAAC,CAAC;EAChC,MAAMgD,YAAY,GAAGhD,MAAM,CAAC,CAAC,CAAC;EAC9B,IAAI,CAACsB,SAAS,EAAE0B,YAAY,CAACb,OAAO,GAAG,CAAC;EACxC,MAAMc,aAAa,GAAGjD,MAAM,CAAa,MAAM,CAAC,CAAC,CAAC;EAClD,MAAM,CAACkD,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGlD,QAAQ,CAAS,CAAC;EACxE,MAAMmD,UAAU,GAAGpD,MAAM,CAAqBuC,SAAS,CAAC;EACxD,MAAMc,SAAS,GAAG/C,MAAM,CAACC,QAAQ,CAACW,YAAY,CAAC,GAC3CV,IAAI,CAACC,GAAG,CAAC,CAAC,EAAES,YAAY,CAAC,GACzBhB,qBAAqB;EAEzB,MAAMoD,KAAK,GAAGxD,WAAW,CAAC,MAAM;IAC9B,MAAMqC,OAAO,GAAGV,YAAY,CAACU,OAAO;IACpC,OAAOA,OAAO,CAACR,QAAQ,GAAG,CAAC,IAAIQ,OAAO,CAACL,cAAc;EACvD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMyB,eAAe,GAAGzD,WAAW,CAAC,MAAM;IACxC,IAAI,CAACwD,KAAK,CAAC,CAAC,EAAE;IACd,MAAM;MAAE3B,QAAQ;MAAEC,OAAO;MAAEC;IAAO,CAAC,GAAGJ,YAAY,CAACU,OAAO;IAC1D,MAAMqB,IAAI,GAAG5B,OAAO,GAAGD,QAAQ,GAAGnB,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEoB,MAAM,CAAC,IAAIwB,SAAS;IAClE,IAAIG,IAAI,KAAKf,QAAQ,CAACN,OAAO,EAAE;MAC7BM,QAAQ,CAACN,OAAO,GAAGqB,IAAI;MACvBb,QAAQ,CAACa,IAAI,CAAC;MACdrC,aAAa,GAAGqC,IAAI,CAAC;IACvB;EACF,CAAC,EAAE,CAACrC,aAAa,EAAEmC,KAAK,EAAED,SAAS,CAAC,CAAC;EAErC,MAAMI,YAAY,GAAG3D,WAAW,CAAC,MAAM;IACrC8C,MAAM,CAACT,OAAO,GAAGI,SAAS;IAC1Ba,UAAU,CAACjB,OAAO,GAAGI,SAAS;IAC9BY,sBAAsB,CAACZ,SAAS,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMmB,oBAAoB,GAAG5D,WAAW,CAAC,MAAM;IAC7C,MAAM6D,IAAI,GAAGzB,WAAW,CAACC,OAAO,CAACyB,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAMC,IAAI,GACRF,IAAI,KAAKpB,SAAS,GAAGA,SAAS,GAAGM,OAAO,CAACV,OAAO,CAAC2B,GAAG,CAACH,IAAI,CAAC,EAAEE,IAAI;IAClE,IAAI,CAACA,IAAI,EAAE,OAAOtB,SAAS;IAC3B,MAAM;MAAEb,KAAK;MAAEC;IAAS,CAAC,GAAGF,YAAY,CAACU,OAAO;IAChD,OAAO3B,IAAI,CAACC,GAAG,CACboD,IAAI,CAACE,CAAC,GACJF,IAAI,CAACG,MAAM,GACXhB,YAAY,CAACb,OAAO,GACpBhC,WAAW,CAACiC,YAAY,CAACD,OAAO,CAACd,oBAAoB,EAAEK,KAAK,CAAC,EAC/DvB,WAAW,CAACiC,YAAY,CAACD,OAAO,CAACf,oBAAoB,EAAEO,QAAQ,CACjE,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsC,WAAW,GAAGnE,WAAW,CAAC,MAAM;IACpC,MAAMoE,OAAO,GAAGtB,MAAM,CAACT,OAAO;IAC9B,IAAI,CAAC+B,OAAO,IAAI,CAACZ,KAAK,CAAC,CAAC,EAAE;IAC1B,MAAMa,KAAK,GAAGjC,WAAW,CAACC,OAAO,CAACiC,OAAO,CAACF,OAAO,CAACG,GAAG,CAAC;IACtD,IAAIF,KAAK,GAAG,CAAC,EAAE;IACfD,OAAO,CAACI,IAAI,GAAG,IAAI;IACnB,MAAMC,QAAQ,GAAG1B,OAAO,CAACV,OAAO,CAAC2B,GAAG,CAACI,OAAO,CAACG,GAAG,CAAC;IACjD,IAAI,CAACE,QAAQ,EAAEV,IAAI,IAAIU,QAAQ,CAACC,KAAK,KAAKjC,SAAS,EAAE;MACnD;MACA;MACA,IAAI2B,OAAO,CAACO,SAAS,KAAK1B,cAAc,CAACZ,OAAO,EAAE;QAChD+B,OAAO,CAACO,SAAS,GAAG1B,cAAc,CAACZ,OAAO;QAC1CrB,OAAO,CAACqB,OAAO,EAAEuC,aAAa,CAAC;UAC7BP,KAAK;UACLQ,QAAQ,EAAE,KAAK;UACfC,YAAY,EAAE;QAChB,CAAC,CAAC;MACJ;MACA;IACF;IACA,MAAM;MAAEjD,QAAQ;MAAEC;IAAQ,CAAC,GAAGH,YAAY,CAACU,OAAO;IAClD,MAAMN,MAAM,GAAGrB,IAAI,CAACC,GAAG,CACrB,CAAC,EACD8D,QAAQ,CAACV,IAAI,CAACE,CAAC,GAAGQ,QAAQ,CAACC,KAAK,GAAGN,OAAO,CAACW,SAC7C,CAAC;IACD,MAAMC,OAAO,GAAGtE,IAAI,CAACC,GAAG,CACtBoB,MAAM,GAAGF,QAAQ,EACjBxB,WAAW,CAACiC,YAAY,CAACD,OAAO,CAACf,oBAAoB,EAAEO,QAAQ,CACjE,CAAC;IACDyB,UAAU,CAACjB,OAAO,GAAG2C,OAAO;IAC5B3B,sBAAsB,CAAC2B,OAAO,CAAC;IAC/B;IACA;IACA,IAAIlD,OAAO,GAAG,GAAG,GAAGkD,OAAO,EAAE;IAC7B,IAAIZ,OAAO,CAACrC,MAAM,KAAKA,MAAM,IAAIqC,OAAO,CAACvC,QAAQ,KAAKA,QAAQ,EAAE;IAChEuC,OAAO,CAACrC,MAAM,GAAGA,MAAM;IACvBqC,OAAO,CAACvC,QAAQ,GAAGA,QAAQ;IAC3BuC,OAAO,CAACa,OAAO,GAAG,KAAK;IACvB/C,WAAW,CAACG,OAAO,GAAG,IAAI;IAC1BrB,OAAO,CAACqB,OAAO,EAAE6C,cAAc,CAAC;MAAEnD,MAAM;MAAE8C,QAAQ,EAAET,OAAO,CAACS;IAAS,CAAC,CAAC;IACvElD,YAAY,CAACU,OAAO,CAACN,MAAM,GAAGA,MAAM;IACpC0B,eAAe,CAAC,CAAC;EACnB,CAAC,EAAE,CAACzC,OAAO,EAAEyC,eAAe,EAAED,KAAK,CAAC,CAAC;EAErC,MAAM2B,YAAY,GAAGnF,WAAW,CAC9B,CAACuE,GAAW,EAAEF,KAAa,EAAEN,IAAqB,KAAK;IACrD,IACE3B,WAAW,CAACC,OAAO,CAACgC,KAAK,CAAC,KAAKE,GAAG,IAClC,CAAC/D,MAAM,CAACC,QAAQ,CAACsD,IAAI,CAACE,CAAC,CAAC,IACxB,CAACzD,MAAM,CAACC,QAAQ,CAACsD,IAAI,CAACG,MAAM,CAAC,EAE7B;IACF,MAAMkB,QAAQ,GAAGrC,OAAO,CAACV,OAAO,CAAC2B,GAAG,CAACO,GAAG,CAAC;IACzC,IACEa,QAAQ,EAAEf,KAAK,KAAKA,KAAK,IACzBe,QAAQ,CAACrB,IAAI,EAAEsB,CAAC,KAAKtB,IAAI,CAACsB,CAAC,IAC3BD,QAAQ,CAACrB,IAAI,CAACE,CAAC,KAAKF,IAAI,CAACE,CAAC,IAC1BmB,QAAQ,CAACrB,IAAI,CAACnC,KAAK,KAAKmC,IAAI,CAACnC,KAAK,IAClCwD,QAAQ,CAACrB,IAAI,CAACG,MAAM,KAAKH,IAAI,CAACG,MAAM,EAEpCjB,cAAc,CAACZ,OAAO,EAAE;IAC1BU,OAAO,CAACV,OAAO,CAACiD,GAAG,CAACf,GAAG,EAAE;MAAE,GAAGa,QAAQ;MAAEf,KAAK;MAAEN;IAAK,CAAC,CAAC;IACtDZ,aAAa,CAACd,OAAO,CAAC,CAAC;EACzB,CAAC,EACD,EACF,CAAC;EACD,MAAMkD,YAAY,GAAGvF,WAAW,CAC9B,CAACuE,GAAW,EAAEF,KAAa,EAAEK,KAAa,KAAK;IAC7C,IAAItC,WAAW,CAACC,OAAO,CAACgC,KAAK,CAAC,KAAKE,GAAG,IAAI,CAAC/D,MAAM,CAACC,QAAQ,CAACiE,KAAK,CAAC,EAAE;IACnE,MAAMU,QAAQ,GAAGrC,OAAO,CAACV,OAAO,CAAC2B,GAAG,CAACO,GAAG,CAAC;IACzC,IAAIa,QAAQ,EAAEf,KAAK,KAAKA,KAAK,IAAIe,QAAQ,CAACV,KAAK,KAAKA,KAAK,EACvDzB,cAAc,CAACZ,OAAO,EAAE;IAC1BU,OAAO,CAACV,OAAO,CAACiD,GAAG,CAACf,GAAG,EAAE;MAAE,GAAGa,QAAQ;MAAEf,KAAK;MAAEK;IAAM,CAAC,CAAC;IACvDvB,aAAa,CAACd,OAAO,CAAC,CAAC;EACzB,CAAC,EACD,EACF,CAAC;EACD,MAAMmD,aAAa,GAAGxF,WAAW,CAAC,CAACuE,GAAW,EAAEF,KAAa,KAAK;IAChE,IAAItB,OAAO,CAACV,OAAO,CAAC2B,GAAG,CAACO,GAAG,CAAC,EAAEF,KAAK,KAAKA,KAAK,EAAE;MAC7CtB,OAAO,CAACV,OAAO,CAACoD,MAAM,CAAClB,GAAG,CAAC;MAC3BtB,cAAc,CAACZ,OAAO,EAAE;IAC1B;EACF,CAAC,EAAE,EAAE,CAAC;EACN,MAAMqD,cAAc,GAAG1F,WAAW,CAAE2F,KAAwB,IAAK;IAC/DzC,YAAY,CAACb,OAAO,GAAGsD,KAAK,CAACC,WAAW,CAACC,MAAM,CAAC3B,MAAM;IACtDf,aAAa,CAACd,OAAO,CAAC,CAAC;EACzB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMyD,YAAY,GAAG9F,WAAW,CAC9B,CAACuE,GAAW,EAAEwB,OAAiC,GAAG,CAAC,CAAC,KAAK;IACvDvD,aAAa,CAACH,OAAO,GAAGI,SAAS;IACjCf,yBAAyB,CAAC,CAAC;IAC3BgB,aAAa,CAACL,OAAO,GAAG,KAAK;IAC7BS,MAAM,CAACT,OAAO,GAAG;MACfkC,GAAG;MACHQ,SAAS,EAAEvE,MAAM,CAACC,QAAQ,CAACsF,OAAO,CAAChB,SAAS,CAAC,GACzCrE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEoF,OAAO,CAAChB,SAAU,CAAC,GAC/B,CAAC;MACLF,QAAQ,EAAEkB,OAAO,CAAClB,QAAQ,IAAI,IAAI;MAClCL,IAAI,EAAEpC,WAAW,CAACC,OAAO,CAAC2D,QAAQ,CAACzB,GAAG;IACxC,CAAC;IACDjB,UAAU,CAACjB,OAAO,GAAG,CAAC;IACtBgB,sBAAsB,CAAC,CAAC,CAAC;IACzBc,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACA,WAAW,EAAEzC,yBAAyB,CACzC,CAAC;EAEDzB,eAAe,CAAC,MAAM;IACpB,MAAMmF,QAAQ,GAAGjD,YAAY,CAACE,OAAO;IACrC,MAAM4D,KAAK,GAAGhF,IAAI,CAACiF,MAAM,GAAGd,QAAQ,CAACc,MAAM;IAC3C,MAAMC,aAAa,GACjBf,QAAQ,CAACc,MAAM,GAAG,CAAC,IACnBD,KAAK,GAAG,CAAC,IACTb,QAAQ,CAACgB,KAAK,CAAC,CAAC7B,GAAG,EAAEF,KAAK,KAAKpD,IAAI,CAACoD,KAAK,GAAG4B,KAAK,CAAC,KAAK1B,GAAG,CAAC;IAC7D,MAAM8B,OAAO,GACXpF,IAAI,CAACiF,MAAM,KAAKd,QAAQ,CAACc,MAAM,IAC/BjF,IAAI,CAACqF,IAAI,CAAC,CAAC/B,GAAG,EAAEF,KAAK,KAAKE,GAAG,KAAKa,QAAQ,CAACf,KAAK,CAAC,CAAC;IACpD,IAAIgC,OAAO,EAAE;MACXpD,cAAc,CAACZ,OAAO,EAAE;MACxBE,cAAc,CAACF,OAAO,GAAG8D,aAAa;MACtC,MAAMI,OAAO,GAAG,IAAIvD,GAAG,CAAC/B,IAAI,CAACuF,GAAG,CAAC,CAACjC,GAAG,EAAEF,KAAK,KAAK,CAACE,GAAG,EAAEF,KAAK,CAAC,CAAC,CAAC;MAC/D,KAAK,MAAM,CAACE,GAAG,EAAEsB,MAAM,CAAC,IAAI9C,OAAO,CAACV,OAAO,EAAE;QAC3C,MAAMgC,KAAK,GAAGkC,OAAO,CAACvC,GAAG,CAACO,GAAG,CAAC;QAC9B,IAAIF,KAAK,KAAK5B,SAAS,EAAEM,OAAO,CAACV,OAAO,CAACoD,MAAM,CAAClB,GAAG,CAAC,CAAC,KAChD,IAAIF,KAAK,KAAKwB,MAAM,CAACxB,KAAK,EAAE;UAC/B;UACA;UACAtB,OAAO,CAACV,OAAO,CAACiD,GAAG,CAACf,GAAG,EAAE;YAAEF,KAAK;YAAEK,KAAK,EAAEmB,MAAM,CAACnB;UAAM,CAAC,CAAC;QAC1D;MACF;IACF;IACAvC,YAAY,CAACE,OAAO,GAAGpB,IAAI;IAC3B,MAAMmD,OAAO,GAAGtB,MAAM,CAACT,OAAO;IAC9B,IAAI+B,OAAO,EAAE;MACX,IAAInD,IAAI,CAAC+E,QAAQ,CAAC5B,OAAO,CAACG,GAAG,CAAC,EAAEH,OAAO,CAACI,IAAI,GAAG,IAAI,CAAC,KAC/C,IAAIJ,OAAO,CAACI,IAAI,EAAE;QACrBb,YAAY,CAAC,CAAC;QACd;MACF;MACA;MACA;MACAjC,yBAAyB,CAAC,CAAC;MAC3ByC,WAAW,CAAC,CAAC;IACf;EACF,CAAC,EAAE,CAACA,WAAW,EAAER,YAAY,EAAEjC,yBAAyB,EAAET,IAAI,CAAC,CAAC;EAEhE,MAAMwF,WAAW,GAAGzG,WAAW,CAC7B,CAAC+F,OAAiC,GAAG,CAAC,CAAC,KAAK;IAC1CrE,yBAAyB,CAAC,CAAC;IAC3B,MAAM0C,OAAiC,GAAG;MACxCS,QAAQ,EAAEkB,OAAO,CAAClB,QAAQ,IAAI;IAChC,CAAC;IACD,MAAM6B,OAAO,GAAG9C,oBAAoB,CAAC,CAAC;IACtC,MAAMoB,OAAO,GAAG1B,UAAU,CAACjB,OAAO;IAClC,IACE2C,OAAO,KAAKvC,SAAS,IACrBiE,OAAO,KAAKjE,SAAS,IACrBd,YAAY,CAACU,OAAO,CAACP,OAAO,IAAIkD,OAAO,GAAG,GAAG,IAC7C0B,OAAO,GAAG,GAAG,GAAG/E,YAAY,CAACU,OAAO,CAACP,OAAO,EAC5C;MACAsC,OAAO,CAACuC,oBAAoB,GAAGhF,YAAY,CAACU,OAAO,CAACP,OAAO;IAC7D;IACA6B,YAAY,CAAC,CAAC;IACd,IAAI,CAACH,KAAK,CAAC,CAAC,IAAIY,OAAO,CAACuC,oBAAoB,KAAKlE,SAAS,EAAE;MAC1DD,aAAa,CAACH,OAAO,GAAG+B,OAAO;MAC/B;IACF;IACA5B,aAAa,CAACH,OAAO,GAAGI,SAAS;IACjCzB,OAAO,CAACqB,OAAO,EAAE6C,cAAc,CAAC;MAC9BnD,MAAM,EAAErB,IAAI,CAACC,GAAG,CACd,CAAC,EACDgB,YAAY,CAACU,OAAO,CAACP,OAAO,GAAGH,YAAY,CAACU,OAAO,CAACR,QACtD,CAAC;MACDgD,QAAQ,EAAET,OAAO,CAACS;IACpB,CAAC,CAAC;IACF,IAAIlD,YAAY,CAACU,OAAO,CAACP,OAAO,IAAIH,YAAY,CAACU,OAAO,CAACR,QAAQ,EAC/D4B,eAAe,CAAC,CAAC;EACrB,CAAC,EACD,CACEE,YAAY,EACZjC,yBAAyB,EACzBV,OAAO,EACP4C,oBAAoB,EACpBH,eAAe,EACfD,KAAK,CAET,CAAC;EAED,MAAMoD,SAAS,GAAG3F,IAAI,CAACiF,MAAM;EAC7B,MAAMW,eAAe,GAAG7G,WAAW,CAChC8G,cAAuB,IAAK;IAC3B,IAAI,CAACtD,KAAK,CAAC,CAAC,EAAE;IACd,IAAIV,MAAM,CAACT,OAAO,EAAE;MAClB8B,WAAW,CAAC,CAAC;MACb;IACF;IACA,MAAMC,OAAO,GAAG5B,aAAa,CAACH,OAAO;IACrC,IACE+B,OAAO,EAAEuC,oBAAoB,KAAKlE,SAAS,IAC3Cd,YAAY,CAACU,OAAO,CAACP,OAAO,KAAKsC,OAAO,CAACuC,oBAAoB,IAC7D,CAAC/C,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAIQ,OAAO,CAACuC,oBAAoB,EAE5D;IACF,IAAIC,SAAS,GAAG,CAAC,IAAI,CAAC1E,WAAW,CAACG,OAAO,EAAE;MACzCH,WAAW,CAACG,OAAO,GAAG,IAAI;MAC1B,IAAI+B,OAAO,IAAInC,OAAO,CAACI,OAAO,KAAK,KAAK,EAAE;QACxCoE,WAAW,CAACrC,OAAO,IAAI;UAAES,QAAQ,EAAE;QAAM,CAAC,CAAC;QAC3C;MACF;MACApB,eAAe,CAAC,CAAC;MACjB;IACF;IACA,IAAIW,OAAO,EAAE;MACXqC,WAAW,CAACrC,OAAO,CAAC;MACpB;IACF;IACA,MAAM2C,SAAS,GAAGxE,cAAc,CAACF,OAAO;IACxC,IAAIyE,cAAc,EAAEvE,cAAc,CAACF,OAAO,GAAG,KAAK;IAClD,MAAM2E,YAAY,GAChB9E,WAAW,CAACG,OAAO,IACnBlB,YAAY,KAAK,WAAW,IAC5B,CAACuB,aAAa,CAACL,OAAO,IACtB,CAAC0E,SAAS,IACV,CAACtF,oBAAoB,CAACY,OAAO,IAC7BM,QAAQ,CAACN,OAAO;IAClB,IAAI2E,YAAY,EAAEP,WAAW,CAAC;MAAE5B,QAAQ,EAAE;IAAM,CAAC,CAAC,CAAC,KAC9CpB,eAAe,CAAC,CAAC;EACxB,CAAC,EACD,CACEU,WAAW,EACXhD,YAAY,EACZyF,SAAS,EACThD,oBAAoB,EACpBnC,oBAAoB,EACpBgC,eAAe,EACfD,KAAK,EACLiD,WAAW,CAEf,CAAC;EAEDtD,aAAa,CAACd,OAAO,GAAG,MAAM;IAC5B,IAAIS,MAAM,CAACT,OAAO,EAAE8B,WAAW,CAAC,CAAC,CAAC,KAC7B,IAAI3B,aAAa,CAACH,OAAO,EAAEwE,eAAe,CAAC,KAAK,CAAC;EACxD,CAAC;EAED,MAAMI,QAAQ,GAAGjH,WAAW,CACzB2F,KAA8C,IAAK;IAClD,MAAM;MAAEuB,aAAa;MAAEC,WAAW;MAAEC;IAAkB,CAAC,GACrDzB,KAAK,CAACC,WAAW;IACnB,MAAMyB,OAAO,GAAGH,aAAa,CAACjD,CAAC,GAAGtC,YAAY,CAACU,OAAO,CAACN,MAAM;IAC7D,MAAMuF,eAAe,GACnB3F,YAAY,CAACU,OAAO,CAACP,OAAO,KAAKqF,WAAW,CAACjD,MAAM,IACnDvC,YAAY,CAACU,OAAO,CAACR,QAAQ,KAAKuF,iBAAiB,CAAClD,MAAM;IAC5D,MAAME,OAAO,GAAGtB,MAAM,CAACT,OAAO;IAC9B,IAAI+B,OAAO,EAAErC,MAAM,KAAKU,SAAS,EAAE;MACjC,IAAI/B,IAAI,CAAC6G,GAAG,CAACL,aAAa,CAACjD,CAAC,GAAGG,OAAO,CAACrC,MAAM,CAAC,IAAI,GAAG,EACnDqC,OAAO,CAACa,OAAO,GAAG,IAAI;MACxB;MACA;MAAA,KACK,IAAIb,OAAO,CAACa,OAAO,IAAI,CAACqC,eAAe,EAAE3D,YAAY,CAAC,CAAC;IAC9D;IACA,MAAM6D,aAAa,GACjB,CAAC1E,MAAM,CAACT,OAAO,IACfM,QAAQ,CAACN,OAAO,IAChB,CAACgF,OAAO,IACR,CAAC3E,aAAa,CAACL,OAAO,IACtBlB,YAAY,KAAK,WAAW,IAC5BmG,eAAe;IACjB3F,YAAY,CAACU,OAAO,GAAG;MACrBT,KAAK,EAAEwF,iBAAiB,CAACxF,KAAK;MAC9BG,MAAM,EAAEmF,aAAa,CAACjD,CAAC;MACvBnC,OAAO,EAAEqF,WAAW,CAACjD,MAAM;MAC3BrC,QAAQ,EAAEuF,iBAAiB,CAAClD,MAAM;MAClClC,cAAc,EAAE;IAClB,CAAC;IACD,IAAI,CAACwF,aAAa,EAAE/D,eAAe,CAAC,CAAC;EACvC,CAAC,EACD,CAACE,YAAY,EAAExC,YAAY,EAAEsC,eAAe,CAC9C,CAAC;EAED,MAAMgE,QAAQ,GAAGzH,WAAW,CAC1B,CAAC;IAAE4F,WAAW,EAAE;MAAEC;IAAO;EAAqB,CAAC,KAAK;IAClDlE,YAAY,CAACU,OAAO,CAACR,QAAQ,GAAGgE,MAAM,CAAC3B,MAAM;IAC7CvC,YAAY,CAACU,OAAO,CAACT,KAAK,GAAGiE,MAAM,CAACjE,KAAK;IACzCiF,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC,EACD,CAACA,eAAe,CAClB,CAAC;EACD,MAAMa,mBAAmB,GAAG1H,WAAW,CACrC,CAAC2H,MAAc,EAAEzD,MAAc,KAAK;IAClCvC,YAAY,CAACU,OAAO,CAACP,OAAO,GAAGoC,MAAM;IACrCvC,YAAY,CAACU,OAAO,CAACL,cAAc,GAAG,IAAI;IAC1C6E,eAAe,CAAC,IAAI,CAAC;EACvB,CAAC,EACD,CAACA,eAAe,CAClB,CAAC;EACD,MAAMe,iBAAiB,GAAG5H,WAAW,CAAC,MAAM;IAC1C0C,aAAa,CAACL,OAAO,GAAG,IAAI;IAC5BG,aAAa,CAACH,OAAO,GAAGI,SAAS;IACjCkB,YAAY,CAAC,CAAC;EAChB,CAAC,EAAE,CAACA,YAAY,CAAC,CAAC;EAClB,MAAMkE,qBAAqB,GAAG7H,WAAW,CAAC,MAAM;IAC9C0C,aAAa,CAACL,OAAO,GAAG,IAAI;EAC9B,CAAC,EAAE,EAAE,CAAC;EACN,MAAMyF,eAAe,GAAG9H,WAAW,CAChC2F,KAA8C,IAAK;IAClDsB,QAAQ,CAACtB,KAAK,CAAC;IACf,IAAI,CAACA,KAAK,CAACC,WAAW,CAACmC,QAAQ,EAAE9D,CAAC,EAAE;MAClCvB,aAAa,CAACL,OAAO,GAAG,KAAK;MAC7BoB,eAAe,CAAC,CAAC;IACnB;EACF,CAAC,EACD,CAACwD,QAAQ,EAAExD,eAAe,CAC5B,CAAC;EACD,MAAMuE,mBAAmB,GAAGhI,WAAW,CACpC2F,KAA8C,IAAK;IAClDsB,QAAQ,CAACtB,KAAK,CAAC;IACfjD,aAAa,CAACL,OAAO,GAAG,KAAK;IAC7BoB,eAAe,CAAC,CAAC;EACnB,CAAC,EACD,CAACwD,QAAQ,EAAExD,eAAe,CAC5B,CAAC;EACD,MAAMwE,qBAAqB,GAAGjI,WAAW,CAErCkI,OAEI,IACD;IACH,MAAM9D,OAAO,GAAGtB,MAAM,CAACT,OAAO;IAC9B,IACE,CAAC+B,OAAO,IACRhC,WAAW,CAACC,OAAO,CAACiC,OAAO,CAACF,OAAO,CAACG,GAAG,CAAC,KAAK2D,OAAO,CAAC7D,KAAK,IAC1D,CAAC7D,MAAM,CAACC,QAAQ,CAACyH,OAAO,CAACC,iBAAiB,CAAC,IAC3CD,OAAO,CAACC,iBAAiB,IAAI,CAAC,EAE9B;IACFnH,OAAO,CAACqB,OAAO,EAAE6C,cAAc,CAAC;MAC9BnD,MAAM,EAAEmG,OAAO,CAAC7D,KAAK,GAAG6D,OAAO,CAACC,iBAAiB;MACjDtD,QAAQ,EAAE;IACZ,CAAC,CAAC;EACJ,CAAC,EACD,CAAC7D,OAAO,CACV,CAAC;EAED,OAAO;IACL4B,KAAK;IACLQ,mBAAmB;IACnB0C,YAAY;IACZX,YAAY;IACZI,YAAY;IACZC,aAAa;IACbE,cAAc;IACduC,qBAAqB;IACrBxB,WAAW;IACXgB,QAAQ;IACRC,mBAAmB;IACnBT,QAAQ;IACRW,iBAAiB;IACjBC,qBAAqB;IACrBC,eAAe;IACfE;EACF,CAAC;AACH","ignoreList":[]}
@@ -6,6 +6,7 @@ import { Button, Icon, useColors, useThemedStyles } from '@unif/react-native-des
6
6
  import { PROCESS_STATUS_ICONS, PROCESS_STATUS_LABELS } from "./constants.js";
7
7
  import { createStyles } from "./styles.js";
8
8
  import { ProcessCompactStep } from "./ProcessCompactStep.js";
9
+ import { ProcessTimelineStep } from "./ProcessTimelineStep.js";
9
10
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
10
11
  function idsWithDetails(ids, steps) {
11
12
  const availableIds = new Set(steps.filter(step => step.details != null).map(step => step.id));
@@ -35,6 +36,7 @@ export function Process(props) {
35
36
  testID,
36
37
  variant = 'card'
37
38
  } = props;
39
+ const inlineIdentity = variant === 'compact' && steps.length === 1 && props.identityPlacement === 'inline';
38
40
  const styles = useThemedStyles(createStyles);
39
41
  const colors = useColors();
40
42
  const isControlled = props.expandedIds !== undefined;
@@ -51,22 +53,30 @@ export function Process(props) {
51
53
  props.onExpandedChange?.(nextIds);
52
54
  };
53
55
  return /*#__PURE__*/_jsxs(View, {
54
- style: [variant === 'compact' ? styles.compactRoot : styles.root, style],
56
+ style: [variant === 'compact' ? styles.compactRoot : variant === 'timeline' ? styles.timelineRoot : styles.root, style],
55
57
  testID: testID,
56
- children: [title || identity ? /*#__PURE__*/_jsxs(View, {
58
+ children: [title || identity && !inlineIdentity ? /*#__PURE__*/_jsxs(View, {
57
59
  style: styles.heading,
58
- children: [identity, title ? /*#__PURE__*/_jsx(Text, {
60
+ children: [!inlineIdentity ? identity : null, title ? /*#__PURE__*/_jsx(Text, {
59
61
  style: styles.headingTitle,
60
62
  children: title
61
63
  }) : null]
62
64
  }) : null, /*#__PURE__*/_jsx(View, {
63
- style: variant === 'compact' ? styles.compactSteps : styles.steps,
65
+ style: variant === 'compact' ? styles.compactSteps : variant === 'timeline' ? undefined : styles.steps,
64
66
  children: steps.map((step, index) => {
65
- const statusLabel = PROCESS_STATUS_LABELS[step.status];
67
+ const statusLabel = step.statusText ?? PROCESS_STATUS_LABELS[step.status];
66
68
  const elapsed = formatElapsedMs(step.elapsedMs);
67
69
  const isExpanded = expandedIds.includes(step.id);
70
+ if (variant === 'timeline') return /*#__PURE__*/_jsx(ProcessTimelineStep, {
71
+ step: step,
72
+ last: index === steps.length - 1,
73
+ expanded: isExpanded,
74
+ elapsed: elapsed,
75
+ onToggle: () => toggleDetails(step.id)
76
+ }, step.id);
68
77
  if (variant === 'compact') return /*#__PURE__*/_jsx(ProcessCompactStep, {
69
78
  step: step,
79
+ identity: inlineIdentity ? identity : undefined,
70
80
  expanded: isExpanded,
71
81
  elapsed: elapsed,
72
82
  onToggle: () => toggleDetails(step.id)