stream-chat-react-native-core 6.6.8 → 6.6.9-beta.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.
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  [![NPM](https://img.shields.io/npm/v/stream-chat-react-native.svg)](https://www.npmjs.com/package/stream-chat-react-native)
11
11
  [![Build Status](https://github.com/GetStream/stream-chat-react-native/actions/workflows/release.yml/badge.svg)](https://github.com/GetStream/stream-chat-react-native/actions)
12
12
  [![Component Reference](https://img.shields.io/badge/docs-component%20reference-blue.svg)](https://getstream.io/chat/docs/sdk/reactnative)
13
- ![JS Bundle Size](https://img.shields.io/badge/js_bundle_size-466%20KB-blue)
13
+ ![JS Bundle Size](https://img.shields.io/badge/js_bundle_size-467%20KB-blue)
14
14
 
15
15
  <img align="right" src="https://getstream.imgix.net/images/ios-chat-tutorial/iphone_chat_art@3x.png?auto=format,enhance" width="50%" />
16
16
 
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.MessageStatus = void 0;
6
6
  var _react = _interopRequireDefault(require("react"));
7
7
  var _reactNative = require("react-native");
8
+ var _ChannelContext = require("../../../contexts/channelContext/ChannelContext");
8
9
  var _MessageContext = require("../../../contexts/messageContext/MessageContext");
9
10
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
10
11
  var _Check = require("../../../icons/Check");
@@ -16,6 +17,8 @@ var _jsxRuntime = require("react/jsx-runtime");
16
17
  var _this = this,
17
18
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageSimple/MessageStatus.tsx";
18
19
  var MessageStatusWithContext = function MessageStatusWithContext(props) {
20
+ var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
21
+ channel = _useChannelContext.channel;
19
22
  var message = props.message,
20
23
  threadList = props.threadList;
21
24
  var _useTheme = (0, _ThemeContext.useTheme)(),
@@ -40,15 +43,25 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
40
43
  return null;
41
44
  }
42
45
  if ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message)) {
46
+ var members = channel == null ? void 0 : channel.state.members;
47
+ var otherMembers = Object.values(members).filter(function (member) {
48
+ var _message$user;
49
+ return member.user_id !== ((_message$user = message.user) == null ? void 0 : _message$user.id);
50
+ });
51
+ var hasOtherMembersGreaterThanOne = otherMembers.length > 1;
52
+ var hasReadByGreaterThanOne = typeof message.readBy === 'number' && message.readBy > 1;
53
+ var shouldDisplayReadByCount = hasOtherMembersGreaterThanOne && hasReadByGreaterThanOne;
54
+ var countOfReadBy = typeof message.readBy === 'number' && hasOtherMembersGreaterThanOne ? message.readBy - 1 : 0;
55
+ var showDoubleCheck = hasReadByGreaterThanOne || message.readBy === true;
43
56
  return (0, _jsxRuntime.jsxs)(_reactNative.View, {
44
57
  style: [styles.statusContainer, statusContainer],
45
- children: [typeof message.readBy === 'number' ? (0, _jsxRuntime.jsx)(_reactNative.Text, {
58
+ children: [shouldDisplayReadByCount ? (0, _jsxRuntime.jsx)(_reactNative.Text, {
46
59
  style: [styles.readByCount, {
47
60
  color: accent_blue
48
61
  }, readByCount],
49
62
  testID: "read-by-container",
50
- children: message.readBy
51
- }) : null, message.type !== 'error' ? typeof message.readBy === 'number' || message.readBy === true ? (0, _jsxRuntime.jsx)(_CheckAll.CheckAll, Object.assign({
63
+ children: countOfReadBy
64
+ }) : null, message.type !== 'error' ? showDoubleCheck ? (0, _jsxRuntime.jsx)(_CheckAll.CheckAll, Object.assign({
52
65
  pathFill: accent_blue
53
66
  }, checkAllIcon)) : (0, _jsxRuntime.jsx)(_Check.Check, Object.assign({
54
67
  pathFill: grey_dark
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_jsxRuntime","_this","_jsxFileName","MessageStatusWithContext","props","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","readByCount","statusContainer","timeIcon","MessageStatusTypes","SENDING","jsx","View","style","styles","testID","children","Time","Object","assign","FAILED","isMessageWithStylesReadByAndDateSeparator","jsxs","readBy","Text","color","type","CheckAll","pathFill","Check","RECEIVED","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","exports","_useMessageContext","useMessageContext","displayName","StyleSheet","create","fontSize","fontWeight","paddingRight","alignItems","flexDirection","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Message/MessageSimple/MessageStatus.tsx"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,eAAA,GAAAF,OAAA;AAIA,IAAAG,aAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AAEA,IAAAO,MAAA,GAAAP,OAAA;AAEA,IAAAQ,eAAA,GAAAR,OAAA;AAAmG,IAAAS,WAAA,GAAAT,OAAA;AAAA,IAAAU,KAAA;EAAAC,YAAA;AAMnG,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAG5BC,KAAwD,EACrD;EACH,IAAQC,OAAO,GAAiBD,KAAK,CAA7BC,OAAO;IAAEC,UAAU,GAAKF,KAAK,CAApBE,UAAU;EAE3B,IAAAC,SAAA,GAOI,IAAAC,sBAAQ,EAAC,CAAC;IAAAC,eAAA,GAAAF,SAAA,CANZG,KAAK;IAAAC,qBAAA,GAAAF,eAAA,CACHG,MAAM;IAAIC,WAAW,GAAAF,qBAAA,CAAXE,WAAW;IAAEC,SAAS,GAAAH,qBAAA,CAATG,SAAS;IAAAC,qBAAA,GAAAN,eAAA,CAChCO,aAAa,CACXC,MAAM;IAAIC,YAAY,GAAAH,qBAAA,CAAZG,YAAY;IAAEC,SAAS,GAAAJ,qBAAA,CAATI,SAAS;IAAEC,WAAW,GAAAL,qBAAA,CAAXK,WAAW;IAAEC,eAAe,GAAAN,qBAAA,CAAfM,eAAe;IAAEC,QAAQ,GAAAP,qBAAA,CAARO,QAAQ;EAK/E,IAAIjB,OAAO,CAACY,MAAM,KAAKM,yBAAkB,CAACC,OAAO,EAAE;IACjD,OACE,IAAAxB,WAAA,CAAAyB,GAAA,EAACjC,YAAA,CAAAkC,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACP,eAAe,EAAEA,eAAe,CAAE;MAACQ,MAAM,EAAC,mBAAmB;MAAAC,QAAA,EAChF,IAAA9B,WAAA,CAAAyB,GAAA,EAAC5B,KAAA,CAAAkC,IAAI,EAAAC,MAAA,CAAAC,MAAA,KAAKX,QAAQ,CAAG;IAAC,CAClB,CAAC;EAEX;EAEA,IAAIhB,UAAU,IAAID,OAAO,CAACY,MAAM,KAAKM,yBAAkB,CAACW,MAAM,EAAE;IAC9D,OAAO,IAAI;EACb;EAEA,IAAI,IAAAC,yDAAyC,EAAC9B,OAAO,CAAC,EAAE;IACtD,OACE,IAAAL,WAAA,CAAAoC,IAAA,EAAC5C,YAAA,CAAAkC,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACP,eAAe,EAAEA,eAAe,CAAE;MAAAS,QAAA,GACpD,OAAOzB,OAAO,CAACgC,MAAM,KAAK,QAAQ,GACjC,IAAArC,WAAA,CAAAyB,GAAA,EAACjC,YAAA,CAAA8C,IAAI;QACHX,KAAK,EAAE,CAACC,MAAM,CAACR,WAAW,EAAE;UAAEmB,KAAK,EAAE1B;QAAY,CAAC,EAAEO,WAAW,CAAE;QACjES,MAAM,EAAC,mBAAmB;QAAAC,QAAA,EAEzBzB,OAAO,CAACgC;MAAM,CACX,CAAC,GACL,IAAI,EACPhC,OAAO,CAACmC,IAAI,KAAK,OAAO,GACvB,OAAOnC,OAAO,CAACgC,MAAM,KAAK,QAAQ,IAAIhC,OAAO,CAACgC,MAAM,KAAK,IAAI,GAC3D,IAAArC,WAAA,CAAAyB,GAAA,EAAC7B,SAAA,CAAA6C,QAAQ,EAAAT,MAAA,CAAAC,MAAA;QAACS,QAAQ,EAAE7B;MAAY,GAAKK,YAAY,CAAG,CAAC,GAErD,IAAAlB,WAAA,CAAAyB,GAAA,EAAC9B,MAAA,CAAAgD,KAAK,EAAAX,MAAA,CAAAC,MAAA;QAACS,QAAQ,EAAE5B;MAAU,GAAKK,SAAS,CAAG,CAC7C,GACC,IAAI;IAAA,CACJ,CAAC;EAEX;EAEA,IAAId,OAAO,CAACY,MAAM,KAAKM,yBAAkB,CAACqB,QAAQ,IAAIvC,OAAO,CAACmC,IAAI,KAAK,WAAW,EAAE;IAClF,OACE,IAAAxC,WAAA,CAAAyB,GAAA,EAACjC,YAAA,CAAAkC,IAAI;MAACC,KAAK,EAAE,CAACC,MAAM,CAACP,eAAe,EAAEA,eAAe,CAAE;MAACQ,MAAM,EAAC,qBAAqB;MAAAC,QAAA,EAClF,IAAA9B,WAAA,CAAAyB,GAAA,EAAC9B,MAAA,CAAAgD,KAAK,EAAAX,MAAA,CAAAC,MAAA;QAACS,QAAQ,EAAE5B;MAAU,GAAKK,SAAS,CAAG;IAAC,CACzC,CAAC;EAEX;EAEA,OAAO,IAAI;AACb,CAAC;AAED,IAAM0B,QAAQ,GAAG,SAAXA,QAAQA,CACZC,SAA4D,EAC5DC,SAA4D,EACzD;EACH,IAAiBC,WAAW,GAAiCF,SAAS,CAA9DzC,OAAO;IAA2B4C,cAAc,GAAKH,SAAS,CAAxCxC,UAAU;EACxC,IAAiB4C,WAAW,GAAiCH,SAAS,CAA9D1C,OAAO;IAA2B8C,cAAc,GAAKJ,SAAS,CAAxCzC,UAAU;EAExC,IAAM8C,eAAe,GAAGH,cAAc,KAAKE,cAAc;EACzD,IAAI,CAACC,eAAe,EAAE;IACpB,OAAO,KAAK;EACd;EAEA,IAAMC,YAAY,GAChBL,WAAW,CAAC/B,MAAM,KAAKiC,WAAW,CAACjC,MAAM,IACzC+B,WAAW,CAACR,IAAI,KAAKU,WAAW,CAACV,IAAI,IACrC,CAAC,IAAAL,yDAAyC,EAACa,WAAW,CAAC,IAAIA,WAAW,CAACX,MAAM,OAC1E,IAAAF,yDAAyC,EAACe,WAAW,CAAC,IAAIA,WAAW,CAACb,MAAM,CAAC;EAClF,IAAI,CAACgB,YAAY,EAAE;IACjB,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb,CAAC;AAED,IAAMC,qBAAqB,GAAGC,iBAAK,CAACC,IAAI,CACtCrD,wBAAwB,EACxB0C,QACF,CAAoC;AAM7B,IAAMY,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAAhBA,aAAaA,CAGxBrD,KAA6C,EAC1C;EACH,IAAAuD,kBAAA,GAAgC,IAAAC,iCAAiB,EAAqB,CAAC;IAA/DvD,OAAO,GAAAsD,kBAAA,CAAPtD,OAAO;IAAEC,UAAU,GAAAqD,kBAAA,CAAVrD,UAAU;EAE3B,OAAO,IAAAN,WAAA,CAAAyB,GAAA,EAAC6B,qBAAqB,EAAAtB,MAAA,CAAAC,MAAA;IAAO5B,OAAO,EAAPA,OAAO;IAAEC,UAAU,EAAVA;EAAU,GAAQF,KAAK,CAAG,CAAC;AAC1E,CAAC;AAEDqD,aAAa,CAACI,WAAW,GAAG,sCAAsC;AAElE,IAAMjC,MAAM,GAAGkC,uBAAU,CAACC,MAAM,CAAC;EAC/B3C,WAAW,EAAE;IACX4C,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE;EAChB,CAAC;EACD7C,eAAe,EAAE;IACf8C,UAAU,EAAE,UAAU;IACtBC,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE,QAAQ;IACxBH,YAAY,EAAE;EAChB;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ChannelContext","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_jsxRuntime","_this","_jsxFileName","MessageStatusWithContext","props","_useChannelContext","useChannelContext","channel","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","readByCount","statusContainer","timeIcon","MessageStatusTypes","SENDING","jsx","View","style","styles","testID","children","Time","Object","assign","FAILED","isMessageWithStylesReadByAndDateSeparator","members","state","otherMembers","values","filter","member","_message$user","user_id","user","id","hasOtherMembersGreaterThanOne","length","hasReadByGreaterThanOne","readBy","shouldDisplayReadByCount","countOfReadBy","showDoubleCheck","jsxs","Text","color","type","CheckAll","pathFill","Check","RECEIVED","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","exports","_useMessageContext","useMessageContext","displayName","StyleSheet","create","fontSize","fontWeight","paddingRight","alignItems","flexDirection","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Message/MessageSimple/MessageStatus.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.6.8"
2
+ "version": "6.6.9-beta.1"
3
3
  }
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  exports.MessageStatus = void 0;
6
6
  var _react = _interopRequireDefault(require("react"));
7
7
  var _reactNative = require("react-native");
8
+ var _ChannelContext = require("../../../contexts/channelContext/ChannelContext");
8
9
  var _MessageContext = require("../../../contexts/messageContext/MessageContext");
9
10
  var _ThemeContext = require("../../../contexts/themeContext/ThemeContext");
10
11
  var _Check = require("../../../icons/Check");
@@ -16,6 +17,8 @@ var _jsxRuntime = require("react/jsx-runtime");
16
17
  var _this = this,
17
18
  _jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Message/MessageSimple/MessageStatus.tsx";
18
19
  var MessageStatusWithContext = function MessageStatusWithContext(props) {
20
+ var _useChannelContext = (0, _ChannelContext.useChannelContext)(),
21
+ channel = _useChannelContext.channel;
19
22
  var message = props.message,
20
23
  threadList = props.threadList;
21
24
  var _useTheme = (0, _ThemeContext.useTheme)(),
@@ -40,15 +43,25 @@ var MessageStatusWithContext = function MessageStatusWithContext(props) {
40
43
  return null;
41
44
  }
42
45
  if ((0, _useMessageList.isMessageWithStylesReadByAndDateSeparator)(message)) {
46
+ var members = channel == null ? void 0 : channel.state.members;
47
+ var otherMembers = Object.values(members).filter(function (member) {
48
+ var _message$user;
49
+ return member.user_id !== ((_message$user = message.user) == null ? void 0 : _message$user.id);
50
+ });
51
+ var hasOtherMembersGreaterThanOne = otherMembers.length > 1;
52
+ var hasReadByGreaterThanOne = typeof message.readBy === 'number' && message.readBy > 1;
53
+ var shouldDisplayReadByCount = hasOtherMembersGreaterThanOne && hasReadByGreaterThanOne;
54
+ var countOfReadBy = typeof message.readBy === 'number' && hasOtherMembersGreaterThanOne ? message.readBy - 1 : 0;
55
+ var showDoubleCheck = hasReadByGreaterThanOne || message.readBy === true;
43
56
  return (0, _jsxRuntime.jsxs)(_reactNative.View, {
44
57
  style: [styles.statusContainer, statusContainer],
45
- children: [typeof message.readBy === 'number' ? (0, _jsxRuntime.jsx)(_reactNative.Text, {
58
+ children: [shouldDisplayReadByCount ? (0, _jsxRuntime.jsx)(_reactNative.Text, {
46
59
  style: [styles.readByCount, {
47
60
  color: accent_blue
48
61
  }, readByCount],
49
62
  testID: "read-by-container",
50
- children: message.readBy
51
- }) : null, message.type !== 'error' ? typeof message.readBy === 'number' || message.readBy === true ? (0, _jsxRuntime.jsx)(_CheckAll.CheckAll, Object.assign({
63
+ children: countOfReadBy
64
+ }) : null, message.type !== 'error' ? showDoubleCheck ? (0, _jsxRuntime.jsx)(_CheckAll.CheckAll, Object.assign({
52
65
  pathFill: accent_blue
53
66
  }, checkAllIcon)) : (0, _jsxRuntime.jsx)(_Check.Check, Object.assign({
54
67
  pathFill: grey_dark
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_jsxRuntime","_this","_jsxFileName","MessageStatusWithContext","props","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","readByCount","statusContainer","timeIcon","MessageStatusTypes","SENDING","jsx","View","style","styles","testID","children","Time","Object","assign","FAILED","isMessageWithStylesReadByAndDateSeparator","jsxs","readBy","Text","color","type","CheckAll","pathFill","Check","RECEIVED","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","exports","_useMessageContext","useMessageContext","displayName","StyleSheet","create","fontSize","fontWeight","paddingRight","alignItems","flexDirection","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Message/MessageSimple/MessageStatus.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_ChannelContext","_MessageContext","_ThemeContext","_Check","_CheckAll","_Time","_utils","_useMessageList","_jsxRuntime","_this","_jsxFileName","MessageStatusWithContext","props","_useChannelContext","useChannelContext","channel","message","threadList","_useTheme","useTheme","_useTheme$theme","theme","_useTheme$theme$color","colors","accent_blue","grey_dark","_useTheme$theme$messa","messageSimple","status","checkAllIcon","checkIcon","readByCount","statusContainer","timeIcon","MessageStatusTypes","SENDING","jsx","View","style","styles","testID","children","Time","Object","assign","FAILED","isMessageWithStylesReadByAndDateSeparator","members","state","otherMembers","values","filter","member","_message$user","user_id","user","id","hasOtherMembersGreaterThanOne","length","hasReadByGreaterThanOne","readBy","shouldDisplayReadByCount","countOfReadBy","showDoubleCheck","jsxs","Text","color","type","CheckAll","pathFill","Check","RECEIVED","areEqual","prevProps","nextProps","prevMessage","prevThreadList","nextMessage","nextThreadList","threadListEqual","messageEqual","MemoizedMessageStatus","React","memo","MessageStatus","exports","_useMessageContext","useMessageContext","displayName","StyleSheet","create","fontSize","fontWeight","paddingRight","alignItems","flexDirection","justifyContent"],"sourceRoot":"../../../../../src","sources":["components/Message/MessageSimple/MessageStatus.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.6.8"
2
+ "version": "6.6.9-beta.1"
3
3
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MessageStatus.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/MessageSimple/MessageStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EACL,mBAAmB,EAEpB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAKtE,MAAM,MAAM,6BAA6B,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;AA4F5E,MAAM,MAAM,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE/D,eAAO,MAAM,aAAa;KACxB,kBAAkB,SAAS,yBAAyB,qCAE7C,kBAAkB,CAAC,kBAAkB,CAAC;;CAK9C,CAAC"}
1
+ {"version":3,"file":"MessageStatus.d.ts","sourceRoot":"","sources":["../../../../../src/components/Message/MessageSimple/MessageStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EACL,mBAAmB,EAEpB,MAAM,iDAAiD,CAAC;AAKzD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAKtE,MAAM,MAAM,6BAA6B,CACvC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;AAwG5E,MAAM,MAAM,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,OAAO,CAAC,6BAA6B,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE/D,eAAO,MAAM,aAAa;KACxB,kBAAkB,SAAS,yBAAyB,qCAE7C,kBAAkB,CAAC,kBAAkB,CAAC;;CAK9C,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "stream-chat-react-native-core",
3
3
  "description": "The official React Native and Expo components for Stream Chat, a service for building chat applications",
4
- "version": "6.6.8",
4
+ "version": "6.6.9-beta.1",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { StyleSheet, Text, View } from 'react-native';
3
3
 
4
+ import { useChannelContext } from '../../../contexts/channelContext/ChannelContext';
4
5
  import {
5
6
  MessageContextValue,
6
7
  useMessageContext,
@@ -23,6 +24,7 @@ const MessageStatusWithContext = <
23
24
  >(
24
25
  props: MessageStatusPropsWithContext<StreamChatGenerics>,
25
26
  ) => {
27
+ const { channel } = useChannelContext<StreamChatGenerics>();
26
28
  const { message, threadList } = props;
27
29
 
28
30
  const {
@@ -47,18 +49,29 @@ const MessageStatusWithContext = <
47
49
  }
48
50
 
49
51
  if (isMessageWithStylesReadByAndDateSeparator(message)) {
52
+ const members = channel?.state.members;
53
+ const otherMembers = Object.values(members).filter(
54
+ (member) => member.user_id !== message.user?.id,
55
+ );
56
+ const hasOtherMembersGreaterThanOne = otherMembers.length > 1;
57
+ const hasReadByGreaterThanOne = typeof message.readBy === 'number' && message.readBy > 1;
58
+ const shouldDisplayReadByCount = hasOtherMembersGreaterThanOne && hasReadByGreaterThanOne;
59
+ const countOfReadBy =
60
+ typeof message.readBy === 'number' && hasOtherMembersGreaterThanOne ? message.readBy - 1 : 0;
61
+ const showDoubleCheck = hasReadByGreaterThanOne || message.readBy === true;
62
+
50
63
  return (
51
64
  <View style={[styles.statusContainer, statusContainer]}>
52
- {typeof message.readBy === 'number' ? (
65
+ {shouldDisplayReadByCount ? (
53
66
  <Text
54
67
  style={[styles.readByCount, { color: accent_blue }, readByCount]}
55
68
  testID='read-by-container'
56
69
  >
57
- {message.readBy}
70
+ {countOfReadBy}
58
71
  </Text>
59
72
  ) : null}
60
73
  {message.type !== 'error' ? (
61
- typeof message.readBy === 'number' || message.readBy === true ? (
74
+ showDoubleCheck ? (
62
75
  <CheckAll pathFill={accent_blue} {...checkAllIcon} />
63
76
  ) : (
64
77
  <Check pathFill={grey_dark} {...checkIcon} />
@@ -2,6 +2,12 @@ import React from 'react';
2
2
 
3
3
  import { cleanup, render, waitFor } from '@testing-library/react-native';
4
4
 
5
+ import { Channel } from '../../..';
6
+ import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
7
+ import { getOrCreateChannelApi } from '../../../../mock-builders/api/getOrCreateChannel';
8
+ import { useMockedApis } from '../../../../mock-builders/api/useMockedApis';
9
+ import { generateChannelResponse } from '../../../../mock-builders/generator/channel';
10
+ import { generateMember } from '../../../../mock-builders/generator/member';
5
11
  import { generateMessage } from '../../../../mock-builders/generator/message';
6
12
  import { generateStaticUser, generateUser } from '../../../../mock-builders/generator/user';
7
13
  import { getTestClientWithUser } from '../../../../mock-builders/mock';
@@ -10,26 +16,54 @@ import { Chat } from '../../../Chat/Chat';
10
16
  import { MessageStatus } from '../MessageStatus';
11
17
 
12
18
  let chatClient;
13
- let id;
14
19
  let i18nInstance;
15
-
20
+ let channel;
16
21
  describe('MessageStatus', () => {
17
- beforeAll(async () => {
22
+ const user1 = generateUser({ id: 'id1', name: 'name1' });
23
+ const user2 = generateUser({ id: 'id2', name: 'name2' });
24
+ const user3 = generateUser({ id: 'id3', name: 'name3' });
25
+ const messages = [generateMessage({ user: user1 })];
26
+ const members = [
27
+ generateMember({ user: user1 }),
28
+ generateMember({ user: user2 }),
29
+ generateMember({ user: user3 }),
30
+ ];
31
+ beforeAll(() => {
18
32
  id = 'testID';
19
- chatClient = await getTestClientWithUser({ id });
20
33
  i18nInstance = new Streami18n();
21
34
  });
35
+ beforeEach(async () => {
36
+ jest.clearAllMocks();
37
+ const mockedChannel = generateChannelResponse({
38
+ members,
39
+ messages,
40
+ });
41
+
42
+ chatClient = await getTestClientWithUser(user1);
43
+ useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
44
+ channel = chatClient.channel('messaging', mockedChannel.id);
45
+ });
22
46
  afterEach(cleanup);
23
47
 
48
+ renderMessageStatus = (options, channelProps) =>
49
+ render(
50
+ <ChannelsStateProvider>
51
+ <Chat client={chatClient}>
52
+ <Channel channel={channel} {...channelProps}>
53
+ <MessageStatus {...options} />
54
+ </Channel>
55
+ </Chat>
56
+ </ChannelsStateProvider>,
57
+ );
58
+
24
59
  it('should render message status with delivered container', async () => {
25
60
  const user = generateUser();
26
61
  const message = generateMessage({ user });
27
62
 
28
- const { getByTestId } = render(
29
- <Chat client={chatClient} i18nInstance={i18nInstance}>
30
- <MessageStatus lastReceivedId={message.id} message={{ ...message, status: 'received' }} />
31
- </Chat>,
32
- );
63
+ const { getByTestId } = renderMessageStatus({
64
+ lastReceivedId: message.id,
65
+ message: { ...message, status: 'received' },
66
+ });
33
67
 
34
68
  await waitFor(() => {
35
69
  expect(getByTestId('delivered-container')).toBeTruthy();
@@ -40,30 +74,33 @@ describe('MessageStatus', () => {
40
74
  const user = generateUser();
41
75
  const message = generateMessage({ readBy: 2, user });
42
76
 
43
- const { getByTestId, getByText, rerender, toJSON } = render(
44
- <Chat client={chatClient} i18nInstance={i18nInstance}>
45
- <MessageStatus lastReceivedId={message.id} message={message} />
46
- </Chat>,
47
- );
77
+ const { getByTestId, getByText, rerender, toJSON } = renderMessageStatus({
78
+ lastReceivedId: message.id,
79
+ message,
80
+ });
48
81
 
49
82
  await waitFor(() => {
50
83
  expect(getByTestId('read-by-container')).toBeTruthy();
51
- expect(getByText(message.readBy.toString())).toBeTruthy();
84
+ expect(getByText((message.readBy - 1).toString())).toBeTruthy();
52
85
  });
53
86
 
54
87
  const staticUser = generateStaticUser(0);
55
88
  const staticMessage = generateMessage({ readBy: 2, staticUser });
56
89
 
57
90
  rerender(
58
- <Chat client={chatClient} i18nInstance={i18nInstance}>
59
- <MessageStatus lastReceivedId={staticMessage.id} message={staticMessage} />
60
- </Chat>,
91
+ <ChannelsStateProvider>
92
+ <Chat client={chatClient} i18nInstance={i18nInstance}>
93
+ <Channel channel={channel}>
94
+ <MessageStatus lastReceivedId={staticMessage.id} message={staticMessage} />
95
+ </Channel>
96
+ </Chat>
97
+ </ChannelsStateProvider>,
61
98
  );
62
99
 
63
100
  await waitFor(() => {
64
101
  expect(toJSON()).toMatchSnapshot();
65
102
  expect(getByTestId('read-by-container')).toBeTruthy();
66
- expect(getByText(staticMessage.readBy.toString())).toBeTruthy();
103
+ expect(getByText((staticMessage.readBy - 1).toString())).toBeTruthy();
67
104
  });
68
105
  });
69
106
 
@@ -71,11 +108,9 @@ describe('MessageStatus', () => {
71
108
  const user = generateUser();
72
109
  const message = generateMessage({ user });
73
110
 
74
- const { getByTestId } = render(
75
- <Chat client={chatClient} i18nInstance={i18nInstance}>
76
- <MessageStatus message={{ ...message, status: 'sending' }} />
77
- </Chat>,
78
- );
111
+ const { getByTestId } = renderMessageStatus({
112
+ message: { ...message, status: 'sending' },
113
+ });
79
114
 
80
115
  await waitFor(() => {
81
116
  expect(getByTestId('sending-container')).toBeTruthy();
@@ -2,106 +2,124 @@
2
2
 
3
3
  exports[`MessageStatus should render message status with read by container 1`] = `
4
4
  <View
5
+ keyboardVerticalOffset={86.5}
6
+ onLayout={[Function]}
5
7
  style={
6
- [
7
- {
8
- "alignItems": "flex-end",
9
- "flexDirection": "row",
10
- "justifyContent": "center",
11
- "paddingRight": 3,
12
- },
13
- {},
14
- ]
8
+ {
9
+ "paddingBottom": 0,
10
+ }
15
11
  }
16
12
  >
17
- <Text
18
- style={
19
- [
20
- {
21
- "fontSize": 11,
22
- "fontWeight": "700",
23
- "paddingRight": 3,
24
- },
25
- {
26
- "color": "#005FFF",
27
- },
28
- {},
29
- ]
30
- }
31
- testID="read-by-container"
32
- >
33
- 2
34
- </Text>
35
- <RNSVGSvgView
36
- align="xMidYMid"
37
- bbHeight={16}
38
- bbWidth={16}
39
- focusable={false}
40
- height={16}
41
- meetOrSlice={0}
42
- minX={0}
43
- minY={0}
44
- pathFill="#005FFF"
13
+ <View
45
14
  style={
46
- [
47
- {
48
- "backgroundColor": "transparent",
49
- "borderWidth": 0,
50
- },
51
- {
52
- "flex": 0,
53
- "height": 16,
54
- "width": 16,
55
- },
56
- ]
15
+ {
16
+ "height": "100%",
17
+ }
57
18
  }
58
- vbHeight={24}
59
- vbWidth={24}
60
- width={16}
61
19
  >
62
- <RNSVGGroup
63
- fill={
64
- {
65
- "payload": 4278190080,
66
- "type": 0,
67
- }
20
+ <View
21
+ style={
22
+ [
23
+ {
24
+ "alignItems": "flex-end",
25
+ "flexDirection": "row",
26
+ "justifyContent": "center",
27
+ "paddingRight": 3,
28
+ },
29
+ {},
30
+ ]
68
31
  }
69
32
  >
70
- <RNSVGPath
71
- clipRule={0}
72
- d="M2.293 11.293a1 1 0 011.414 0l4 4a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414zM9.293 12.293a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414l-3-3a1 1 0 010-1.414z"
73
- fill={
74
- {
75
- "payload": 4278214655,
76
- "type": 0,
77
- }
78
- }
79
- fillRule={0}
80
- propList={
33
+ <Text
34
+ style={
81
35
  [
82
- "fill",
83
- "fillRule",
36
+ {
37
+ "fontSize": 11,
38
+ "fontWeight": "700",
39
+ "paddingRight": 3,
40
+ },
41
+ {
42
+ "color": "#005FFF",
43
+ },
44
+ {},
84
45
  ]
85
46
  }
86
- />
87
- <RNSVGPath
88
- clipRule={0}
89
- d="M15.707 7.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414-1.414l8-8a1 1 0 011.414 0zM21.707 7.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414-1.414l8-8a1 1 0 011.414 0z"
90
- fill={
91
- {
92
- "payload": 4278214655,
93
- "type": 0,
94
- }
95
- }
96
- fillRule={0}
97
- propList={
47
+ testID="read-by-container"
48
+ >
49
+ 1
50
+ </Text>
51
+ <RNSVGSvgView
52
+ align="xMidYMid"
53
+ bbHeight={16}
54
+ bbWidth={16}
55
+ focusable={false}
56
+ height={16}
57
+ meetOrSlice={0}
58
+ minX={0}
59
+ minY={0}
60
+ pathFill="#005FFF"
61
+ style={
98
62
  [
99
- "fill",
100
- "fillRule",
63
+ {
64
+ "backgroundColor": "transparent",
65
+ "borderWidth": 0,
66
+ },
67
+ {
68
+ "flex": 0,
69
+ "height": 16,
70
+ "width": 16,
71
+ },
101
72
  ]
102
73
  }
103
- />
104
- </RNSVGGroup>
105
- </RNSVGSvgView>
74
+ vbHeight={24}
75
+ vbWidth={24}
76
+ width={16}
77
+ >
78
+ <RNSVGGroup
79
+ fill={
80
+ {
81
+ "payload": 4278190080,
82
+ "type": 0,
83
+ }
84
+ }
85
+ >
86
+ <RNSVGPath
87
+ clipRule={0}
88
+ d="M2.293 11.293a1 1 0 011.414 0l4 4a1 1 0 11-1.414 1.414l-4-4a1 1 0 010-1.414zM9.293 12.293a1 1 0 011.414 0l3 3a1 1 0 01-1.414 1.414l-3-3a1 1 0 010-1.414z"
89
+ fill={
90
+ {
91
+ "payload": 4278214655,
92
+ "type": 0,
93
+ }
94
+ }
95
+ fillRule={0}
96
+ propList={
97
+ [
98
+ "fill",
99
+ "fillRule",
100
+ ]
101
+ }
102
+ />
103
+ <RNSVGPath
104
+ clipRule={0}
105
+ d="M15.707 7.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414-1.414l8-8a1 1 0 011.414 0zM21.707 7.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414-1.414l8-8a1 1 0 011.414 0z"
106
+ fill={
107
+ {
108
+ "payload": 4278214655,
109
+ "type": 0,
110
+ }
111
+ }
112
+ fillRule={0}
113
+ propList={
114
+ [
115
+ "fill",
116
+ "fillRule",
117
+ ]
118
+ }
119
+ />
120
+ </RNSVGGroup>
121
+ </RNSVGSvgView>
122
+ </View>
123
+ </View>
106
124
  </View>
107
125
  `;
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "6.6.8"
2
+ "version": "6.6.9-beta.1"
3
3
  }