stream-chat-react-native-core 5.15.0-beta.6 → 5.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/lib/commonjs/components/Channel/Channel.js +72 -61
  2. package/lib/commonjs/components/Channel/Channel.js.map +1 -1
  3. package/lib/commonjs/store/apis/index.js +4 -4
  4. package/lib/commonjs/store/apis/index.js.map +1 -1
  5. package/lib/commonjs/store/apis/{upsertLastSyncedAt.js → upsertUserSyncStatus.js} +4 -4
  6. package/lib/commonjs/store/apis/upsertUserSyncStatus.js.map +1 -0
  7. package/lib/commonjs/utils/DBSyncManager.js +18 -12
  8. package/lib/commonjs/utils/DBSyncManager.js.map +1 -1
  9. package/lib/commonjs/version.json +1 -1
  10. package/lib/module/components/Channel/Channel.js +72 -61
  11. package/lib/module/components/Channel/Channel.js.map +1 -1
  12. package/lib/module/store/apis/index.js +4 -4
  13. package/lib/module/store/apis/index.js.map +1 -1
  14. package/lib/module/store/apis/{upsertLastSyncedAt.js → upsertUserSyncStatus.js} +4 -4
  15. package/lib/module/store/apis/upsertUserSyncStatus.js.map +1 -0
  16. package/lib/module/utils/DBSyncManager.js +18 -12
  17. package/lib/module/utils/DBSyncManager.js.map +1 -1
  18. package/lib/module/version.json +1 -1
  19. package/lib/typescript/store/apis/index.d.ts +1 -1
  20. package/lib/typescript/store/apis/upsertUserSyncStatus.d.ts +4 -0
  21. package/package.json +1 -1
  22. package/src/components/Channel/Channel.tsx +74 -57
  23. package/src/store/apis/index.ts +1 -1
  24. package/src/store/apis/{upsertLastSyncedAt.ts → upsertUserSyncStatus.ts} +1 -1
  25. package/src/utils/DBSyncManager.ts +5 -2
  26. package/src/version.json +1 -1
  27. package/lib/commonjs/store/apis/upsertLastSyncedAt.js.map +0 -1
  28. package/lib/module/store/apis/upsertLastSyncedAt.js.map +0 -1
  29. package/lib/typescript/store/apis/upsertLastSyncedAt.d.ts +0 -4
@@ -210,14 +210,14 @@ Object.keys(_upsertCidsForQuery).forEach(function (key) {
210
210
  }
211
211
  });
212
212
  });
213
- var _upsertLastSyncedAt = require("./upsertLastSyncedAt");
214
- Object.keys(_upsertLastSyncedAt).forEach(function (key) {
213
+ var _upsertUserSyncStatus = require("./upsertUserSyncStatus");
214
+ Object.keys(_upsertUserSyncStatus).forEach(function (key) {
215
215
  if (key === "default" || key === "__esModule") return;
216
- if (key in exports && exports[key] === _upsertLastSyncedAt[key]) return;
216
+ if (key in exports && exports[key] === _upsertUserSyncStatus[key]) return;
217
217
  Object.defineProperty(exports, key, {
218
218
  enumerable: true,
219
219
  get: function get() {
220
- return _upsertLastSyncedAt[key];
220
+ return _upsertUserSyncStatus[key];
221
221
  }
222
222
  });
223
223
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_deleteChannel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_deleteMember","_deleteMessage","_deleteMessagesForChannel","_deleteReactions","_getAllChannelIds","_getAppSettings","_getChannelMessages","_getChannels","_getChannelsForFilterSort","_getLastSyncedAt","_getMembers","_getReads","_updateMessage","_updateReaction","_upsertAppSettings","_upsertChannelData","_upsertChannels","_upsertCidsForQuery","_upsertLastSyncedAt","_upsertMembers","_upsertMessages","_upsertReads"],"sources":["index.ts"],"sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getAppSettings';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertAppSettings';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertLastSyncedAt';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"],"mappings":"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"}
1
+ {"version":3,"names":["_deleteChannel","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_deleteMember","_deleteMessage","_deleteMessagesForChannel","_deleteReactions","_getAllChannelIds","_getAppSettings","_getChannelMessages","_getChannels","_getChannelsForFilterSort","_getLastSyncedAt","_getMembers","_getReads","_updateMessage","_updateReaction","_upsertAppSettings","_upsertChannelData","_upsertChannels","_upsertCidsForQuery","_upsertUserSyncStatus","_upsertMembers","_upsertMessages","_upsertReads"],"sources":["index.ts"],"sourcesContent":["export * from './deleteChannel';\nexport * from './deleteMember';\nexport * from './deleteMessage';\nexport * from './deleteMessagesForChannel';\nexport * from './deleteReactions';\nexport * from './getAllChannelIds';\nexport * from './getAppSettings';\nexport * from './getChannelMessages';\nexport * from './getChannels';\nexport * from './getChannelsForFilterSort';\nexport * from './getLastSyncedAt';\nexport * from './getMembers';\nexport * from './getReads';\nexport * from './updateMessage';\nexport * from './updateReaction';\nexport * from './upsertAppSettings';\nexport * from './upsertChannelData';\nexport * from './upsertChannels';\nexport * from './upsertCidsForQuery';\nexport * from './upsertUserSyncStatus';\nexport * from './upsertMembers';\nexport * from './upsertMessages';\nexport * from './upsertReads';\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, "__esModule", {
2
2
  value: true
3
3
  });
4
- exports.upsertLastSyncedAt = void 0;
4
+ exports.upsertUserSyncStatus = void 0;
5
5
  var _QuickSqliteClient = require("../QuickSqliteClient");
6
6
  var _createUpsertQuery = require("../sqlite-utils/createUpsertQuery");
7
- var upsertLastSyncedAt = function upsertLastSyncedAt(_ref) {
7
+ var upsertUserSyncStatus = function upsertUserSyncStatus(_ref) {
8
8
  var currentUserId = _ref.currentUserId,
9
9
  lastSyncedAt = _ref.lastSyncedAt;
10
10
  var query = (0, _createUpsertQuery.createUpsertQuery)('userSyncStatus', {
@@ -13,5 +13,5 @@ var upsertLastSyncedAt = function upsertLastSyncedAt(_ref) {
13
13
  });
14
14
  _QuickSqliteClient.QuickSqliteClient.executeSql.apply(null, query);
15
15
  };
16
- exports.upsertLastSyncedAt = upsertLastSyncedAt;
17
- //# sourceMappingURL=upsertLastSyncedAt.js.map
16
+ exports.upsertUserSyncStatus = upsertUserSyncStatus;
17
+ //# sourceMappingURL=upsertUserSyncStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_QuickSqliteClient","require","_createUpsertQuery","upsertUserSyncStatus","_ref","currentUserId","lastSyncedAt","query","createUpsertQuery","userId","QuickSqliteClient","executeSql","apply","exports"],"sources":["upsertUserSyncStatus.ts"],"sourcesContent":["import { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertUserSyncStatus = ({\n currentUserId,\n lastSyncedAt,\n}: {\n currentUserId: string;\n lastSyncedAt: string;\n}) => {\n const query = createUpsertQuery('userSyncStatus', {\n lastSyncedAt,\n userId: currentUserId,\n });\n\n QuickSqliteClient.executeSql.apply(null, query);\n};\n"],"mappings":";;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEO,IAAME,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAAC,IAAA,EAM3B;EAAA,IALJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,YAAY,GAAAF,IAAA,CAAZE,YAAY;EAKZ,IAAMC,KAAK,GAAG,IAAAC,oCAAiB,EAAC,gBAAgB,EAAE;IAChDF,YAAY,EAAZA,YAAY;IACZG,MAAM,EAAEJ;EACV,CAAC,CAAC;EAEFK,oCAAiB,CAACC,UAAU,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC;AACjD,CAAC;AAACM,OAAA,CAAAV,oBAAA,GAAAA,oBAAA"}
@@ -120,14 +120,20 @@ DBSyncManager.sync = (0, _asyncToGenerator2["default"])(_regenerator["default"].
120
120
  currentUserId: DBSyncManager.client.user.id
121
121
  });
122
122
  cids = (0, _apis.getAllChannelIds)();
123
+ if (!(cids.length === 0)) {
124
+ _context3.next = 6;
125
+ break;
126
+ }
127
+ return _context3.abrupt("return");
128
+ case 6:
123
129
  if (!lastSyncedAt) {
124
- _context3.next = 16;
130
+ _context3.next = 18;
125
131
  break;
126
132
  }
127
- _context3.prev = 5;
128
- _context3.next = 8;
133
+ _context3.prev = 7;
134
+ _context3.next = 10;
129
135
  return DBSyncManager.client.sync(cids, new Date(lastSyncedAt).toISOString());
130
- case 8:
136
+ case 10:
131
137
  result = _context3.sent;
132
138
  queries = result.events.reduce(function (queries, event) {
133
139
  queries = queries.concat((0, _handleEventToSyncDB.handleEventToSyncDB)(event, false));
@@ -136,22 +142,22 @@ DBSyncManager.sync = (0, _asyncToGenerator2["default"])(_regenerator["default"].
136
142
  if (queries.length) {
137
143
  _QuickSqliteClient.QuickSqliteClient.executeSqlBatch(queries);
138
144
  }
139
- _context3.next = 16;
145
+ _context3.next = 18;
140
146
  break;
141
- case 13:
142
- _context3.prev = 13;
143
- _context3.t0 = _context3["catch"](5);
147
+ case 15:
148
+ _context3.prev = 15;
149
+ _context3.t0 = _context3["catch"](7);
144
150
  _QuickSqliteClient.QuickSqliteClient.resetDB();
145
- case 16:
146
- (0, _apis.upsertLastSyncedAt)({
151
+ case 18:
152
+ (0, _apis.upsertUserSyncStatus)({
147
153
  currentUserId: DBSyncManager.client.user.id,
148
154
  lastSyncedAt: new Date().toString()
149
155
  });
150
- case 17:
156
+ case 19:
151
157
  case "end":
152
158
  return _context3.stop();
153
159
  }
154
- }, _callee3, null, [[5, 13]]);
160
+ }, _callee3, null, [[7, 15]]);
155
161
  }));
156
162
  DBSyncManager.syncAndExecutePendingTasks = (0, _asyncToGenerator2["default"])(_regenerator["default"].mark(function _callee4() {
157
163
  return _regenerator["default"].wrap(function _callee4$(_context4) {
@@ -1 +1 @@
1
- {"version":3,"names":["_handleEventToSyncDB","require","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_callee3","_DBSyncManager$client","lastSyncedAt","cids","result","queries","_callee3$","_context3","abrupt","getLastSyncedAt","currentUserId","getAllChannelIds","Date","toISOString","sent","events","reduce","concat","handleEventToSyncDB","QuickSqliteClient","executeSqlBatch","t0","resetDB","upsertLastSyncedAt","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x3","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x4","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x5","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertLastSyncedAt } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await this.client.sync(cids, new Date(lastSyncedAt).toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_handleEventToSyncDB","require","_apis","_addPendingTask","_deletePendingTask","_getPendingTasks","_QuickSqliteClient","_createForOfIteratorHelperLoose","o","allowArrayLike","it","Symbol","iterator","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","i","done","value","TypeError","minLen","_arrayLikeToArray","n","Object","prototype","toString","slice","constructor","name","from","test","arr","len","arr2","restBeforeNextTask","Promise","resolve","setTimeout","DBSyncManager","_createClass2","_classCallCheck2","exports","syncStatus","listeners","client","getSyncStatus","init","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","_client$user","_client$wsConnection","wrap","_callee2$","_context2","prev","user","id","wsConnection","isHealthy","syncAndExecutePendingTasks","forEach","l","on","_ref2","_callee","event","_callee$","_context","online","stop","_x2","apply","arguments","_x","onSyncStatusChange","listener","push","unsubscribe","filter","el","sync","_callee3","_DBSyncManager$client","lastSyncedAt","cids","result","queries","_callee3$","_context3","abrupt","getLastSyncedAt","currentUserId","getAllChannelIds","Date","toISOString","sent","events","reduce","concat","handleEventToSyncDB","QuickSqliteClient","executeSqlBatch","t0","resetDB","upsertUserSyncStatus","_callee4","_callee4$","_context4","executePendingTasks","queueTask","_ref6","_callee5","_ref5","task","removeFromApi","response","_response","_response$data","_callee5$","_context5","addPendingTask","executeTask","data","code","_x3","_ref8","_callee6","_ref7","channel","_callee6$","_context6","channelType","channelId","type","sendReaction","_toConsumableArray2","payload","deleteReaction","deleteMessage","Error","_x4","_ref9","_callee7","queue","_iterator","_step","_response2","_response2$data","_callee7$","_context7","getPendingTasks","deletePendingTask","_x5","dropPendingTasks","conditions","tasks","_iterator2","_step2"],"sources":["DBSyncManager.ts"],"sourcesContent":["import type { AxiosError } from 'axios';\nimport type { APIErrorResponse, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';\nimport { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';\n\nimport { addPendingTask } from '../store/apis/addPendingTask';\n\nimport { deletePendingTask } from '../store/apis/deletePendingTask';\nimport { getPendingTasks } from '../store/apis/getPendingTasks';\nimport { QuickSqliteClient } from '../store/QuickSqliteClient';\nimport type { PendingTask, PreparedQueries } from '../store/types';\nimport type { DefaultStreamChatGenerics } from '../types/types';\n\n/**\n * DBSyncManager has the responsibility to sync the channel states\n * within local database whenever possible.\n *\n * Components can get the current sync status using DBSyncManager.getCurrentStatus().\n * Or components can attach a listener for status change as following:\n *\n * ```tsx\n * useEffect(() => {\n * const unsubscribe = DBSyncManager.onSyncStatusChange((syncStatus) => {\n * if (syncStatus) {\n * doSomething();\n * }\n * })\n *\n * return () => unsubscribe();\n * })\n * ```\n */\nconst restBeforeNextTask = () => new Promise((resolve) => setTimeout(resolve, 500));\n\nexport class DBSyncManager {\n static syncStatus = false;\n static listeners: Array<(status: boolean) => void> = [];\n static client: StreamChat | null = null;\n\n /**\n * Returns weather channel states in local DB are synced with backend or not.\n * @returns boolean\n */\n static getSyncStatus = () => this.syncStatus;\n\n /**\n * Initializes the DBSyncManager. This function should be called only once\n * throughout the lifetime of SDK.\n *\n * @param client\n */\n static init = async (client: StreamChat) => {\n this.client = client;\n // If the websocket connection is already active, then straightaway\n // call the sync api and also execute pending api calls.\n // Otherwise wait for `connection.changed` event.\n if (client.user?.id && client.wsConnection?.isHealthy) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n }\n\n this.client.on('connection.changed', async (event) => {\n if (event.online) {\n await this.syncAndExecutePendingTasks();\n this.syncStatus = true;\n this.listeners.forEach((l) => l(true));\n } else {\n this.syncStatus = false;\n this.listeners.forEach((l) => l(false));\n }\n });\n };\n\n /**\n * Subscribes a listener for sync status change.\n *\n * @param listener {function}\n * @returns {function} to unsubscribe the listener.\n */\n static onSyncStatusChange = (listener: (status: boolean) => void) => {\n this.listeners.push(listener);\n\n return {\n unsubscribe: () => {\n this.listeners = this.listeners.filter((el) => el !== listener);\n },\n };\n };\n\n static sync = async () => {\n if (!this.client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: this.client.user.id,\n });\n const cids = getAllChannelIds();\n // If there are no channels, then there is no need to sync.\n if (cids.length === 0) return;\n\n if (lastSyncedAt) {\n try {\n const result = await this.client.sync(cids, new Date(lastSyncedAt).toISOString());\n const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {\n queries = queries.concat(handleEventToSyncDB(event, false));\n return queries;\n }, []);\n\n if (queries.length) {\n QuickSqliteClient.executeSqlBatch(queries);\n }\n } catch (e) {\n // Error will be raised by the sync API if there are too many events.\n // In that case reset the entire DB and start fresh.\n QuickSqliteClient.resetDB();\n }\n }\n upsertUserSyncStatus({\n currentUserId: this.client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n static syncAndExecutePendingTasks = async () => {\n if (!this.client) return;\n\n await this.executePendingTasks(this.client);\n await this.sync();\n };\n\n static queueTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const removeFromApi = addPendingTask(task);\n\n let response;\n try {\n response = await this.executeTask<StreamChatGenerics>({ client, task });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n removeFromApi();\n\n return response;\n };\n\n static executeTask = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >({\n client,\n task,\n }: {\n client: StreamChat<StreamChatGenerics>;\n task: PendingTask;\n }) => {\n const channel = client.channel(task.channelType, task.channelId);\n\n if (task.type === 'send-reaction') {\n return await channel.sendReaction(...task.payload);\n }\n\n if (task.type === 'delete-reaction') {\n return await channel.deleteReaction(...task.payload);\n }\n\n if (task.type === 'delete-message') {\n return await client.deleteMessage(...task.payload);\n }\n\n throw new Error('Invalid task type');\n };\n\n static executePendingTasks = async <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n >(\n client: StreamChat<StreamChatGenerics>,\n ) => {\n const queue = getPendingTasks();\n for (const task of queue) {\n if (!task.id) continue;\n\n try {\n await this.executeTask<StreamChatGenerics>({\n client,\n task,\n });\n } catch (e) {\n if ((e as AxiosError<APIErrorResponse>)?.response?.data?.code === 4) {\n // Error code 16 - message already exists\n // ignore\n } else {\n throw e;\n }\n }\n\n deletePendingTask({\n id: task.id,\n });\n await restBeforeNextTask();\n }\n };\n\n static dropPendingTasks = (conditions: { messageId: string }) => {\n const tasks = getPendingTasks(conditions);\n\n for (const task of tasks) {\n if (!task.id) continue;\n\n deletePendingTask({\n id: task.id,\n });\n }\n };\n}\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.15.0-beta.6"
2
+ "version": "5.15.0"
3
3
  }
@@ -17,7 +17,7 @@ export * from './upsertAppSettings';
17
17
  export * from './upsertChannelData';
18
18
  export * from './upsertChannels';
19
19
  export * from './upsertCidsForQuery';
20
- export * from './upsertLastSyncedAt';
20
+ export * from './upsertUserSyncStatus';
21
21
  export * from './upsertMembers';
22
22
  export * from './upsertMessages';
23
23
  export * from './upsertReads';
@@ -0,0 +1,4 @@
1
+ export declare const upsertUserSyncStatus: ({ currentUserId, lastSyncedAt, }: {
2
+ currentUserId: string;
3
+ lastSyncedAt: string;
4
+ }) => void;
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": "5.15.0-beta.6",
4
+ "version": "5.15.0",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -637,7 +637,7 @@ const ChannelWithContext = <
637
637
  } else {
638
638
  setThread(null);
639
639
  }
640
- }, [threadPropsExists]);
640
+ }, [threadPropsExists, shouldSyncChannel]);
641
641
 
642
642
  const handleAppBackground = useCallback(() => {
643
643
  const channelData = channel.data as
@@ -739,70 +739,61 @@ const ChannelWithContext = <
739
739
  ),
740
740
  ).current;
741
741
 
742
- const connectionChangedHandler = () => {
743
- if (shouldSyncChannel) {
744
- resyncChannel();
745
- }
746
- };
747
-
748
- const handleEvent: EventHandler<StreamChatGenerics> = (event) => {
749
- if (shouldSyncChannel) {
750
- if (thread) {
751
- const updatedThreadMessages =
752
- (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
753
- setThreadMessages(updatedThreadMessages);
754
- }
755
-
756
- if (channel && thread && event.message?.id === thread.id) {
757
- const updatedThread = channel.state.formatMessage(event.message);
758
- setThread(updatedThread);
759
- }
760
-
761
- if (event.type === 'typing.start' || event.type === 'typing.stop') {
762
- copyTypingState();
763
- } else if (event.type === 'message.read') {
764
- copyReadState();
765
- } else if (event.type === 'message.new') {
766
- copyMessagesState();
767
- } else if (channel) {
768
- copyChannelState();
769
- }
770
- }
771
- };
772
-
742
+ // subscribe to specific channel events
773
743
  useEffect(() => {
774
744
  const channelSubscriptions: Array<ReturnType<ChannelType['on']>> = [];
775
- const clientSubscriptions: Array<ReturnType<StreamChat['on']>> = [];
745
+ if (channel && shouldSyncChannel) {
746
+ channelSubscriptions.push(channel.on('message.new', copyMessagesState));
747
+ channelSubscriptions.push(channel.on('message.read', copyReadState));
748
+ channelSubscriptions.push(channel.on('typing.start', copyTypingState));
749
+ channelSubscriptions.push(channel.on('typing.stop', copyTypingState));
750
+ }
751
+ return () => {
752
+ channelSubscriptions.forEach((s) => s.unsubscribe());
753
+ };
754
+ }, [channelId, shouldSyncChannel]);
776
755
 
777
- if (!channel) return;
756
+ // subscribe to the generic all channel event
757
+ useEffect(() => {
758
+ const handleEvent: EventHandler<StreamChatGenerics> = (event) => {
759
+ if (shouldSyncChannel) {
760
+ if (thread) {
761
+ const updatedThreadMessages =
762
+ (thread.id && channel && channel.state.threads[thread.id]) || threadMessages;
763
+ setThreadMessages(updatedThreadMessages);
764
+ }
778
765
 
779
- clientSubscriptions.push(
780
- client.on('channel.deleted', (event) => {
781
- if (event.cid === channel.cid) {
782
- setDeleted(true);
766
+ if (channel && thread && event.message?.id === thread.id) {
767
+ const updatedThread = channel.state.formatMessage(event.message);
768
+ setThread(updatedThread);
783
769
  }
784
- }),
785
- );
786
770
 
787
- if (enableOfflineSupport) {
788
- clientSubscriptions.push(DBSyncManager.onSyncStatusChange(connectionChangedHandler));
789
- } else {
790
- clientSubscriptions.push(
791
- client.on('connection.changed', (event) => {
792
- if (event.online) {
793
- connectionChangedHandler();
794
- }
795
- }),
796
- );
797
- }
771
+ // only update channel state if the events are not the previously subscribed useEffect's subscription events
772
+ if (
773
+ channel &&
774
+ event.type !== 'message.new' &&
775
+ event.type !== 'message.read' &&
776
+ event.type !== 'typing.start' &&
777
+ event.type !== 'typing.stop'
778
+ ) {
779
+ copyChannelState();
780
+ }
781
+ }
782
+ };
783
+ const { unsubscribe } = channel.on(handleEvent);
784
+ return unsubscribe;
785
+ }, [channelId, thread?.id, shouldSyncChannel]);
798
786
 
799
- channelSubscriptions.push(channel.on(handleEvent));
787
+ // subscribe to channel.deleted event
788
+ useEffect(() => {
789
+ const { unsubscribe } = client.on('channel.deleted', (event) => {
790
+ if (event.cid === channel?.cid) {
791
+ setDeleted(true);
792
+ }
793
+ });
800
794
 
801
- return () => {
802
- clientSubscriptions.forEach((s) => s.unsubscribe());
803
- channelSubscriptions.forEach((s) => s.unsubscribe());
804
- };
805
- }, [channelId, connectionChangedHandler, handleEvent]);
795
+ return unsubscribe;
796
+ }, [channelId]);
806
797
 
807
798
  const channelQueryCallRef = useRef(
808
799
  async (
@@ -1076,6 +1067,32 @@ const ChannelWithContext = <
1076
1067
  setSyncingChannel(false);
1077
1068
  };
1078
1069
 
1070
+ // resync channel is added to ref so that it can be used in useEffect without adding it as a dependency
1071
+ const resyncChannelRef = useRef(resyncChannel);
1072
+ resyncChannelRef.current = resyncChannel;
1073
+
1074
+ useEffect(() => {
1075
+ const connectionChangedHandler = () => {
1076
+ if (shouldSyncChannel) {
1077
+ resyncChannelRef.current();
1078
+ }
1079
+ };
1080
+ let connectionChangedSubscription: ReturnType<ChannelType['on']>;
1081
+
1082
+ if (enableOfflineSupport) {
1083
+ connectionChangedSubscription = DBSyncManager.onSyncStatusChange(connectionChangedHandler);
1084
+ } else {
1085
+ connectionChangedSubscription = client.on('connection.changed', (event) => {
1086
+ if (event.online) {
1087
+ connectionChangedHandler();
1088
+ }
1089
+ });
1090
+ }
1091
+ return () => {
1092
+ connectionChangedSubscription.unsubscribe();
1093
+ };
1094
+ }, [enableOfflineSupport, shouldSyncChannel]);
1095
+
1079
1096
  const reloadChannel = () =>
1080
1097
  channelQueryCallRef.current(async () => {
1081
1098
  setLoading(true);
@@ -17,7 +17,7 @@ export * from './upsertAppSettings';
17
17
  export * from './upsertChannelData';
18
18
  export * from './upsertChannels';
19
19
  export * from './upsertCidsForQuery';
20
- export * from './upsertLastSyncedAt';
20
+ export * from './upsertUserSyncStatus';
21
21
  export * from './upsertMembers';
22
22
  export * from './upsertMessages';
23
23
  export * from './upsertReads';
@@ -1,7 +1,7 @@
1
1
  import { QuickSqliteClient } from '../QuickSqliteClient';
2
2
  import { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';
3
3
 
4
- export const upsertLastSyncedAt = ({
4
+ export const upsertUserSyncStatus = ({
5
5
  currentUserId,
6
6
  lastSyncedAt,
7
7
  }: {
@@ -2,7 +2,7 @@ import type { AxiosError } from 'axios';
2
2
  import type { APIErrorResponse, StreamChat } from 'stream-chat';
3
3
 
4
4
  import { handleEventToSyncDB } from '../components/Chat/hooks/handleEventToSyncDB';
5
- import { getAllChannelIds, getLastSyncedAt, upsertLastSyncedAt } from '../store/apis';
5
+ import { getAllChannelIds, getLastSyncedAt, upsertUserSyncStatus } from '../store/apis';
6
6
 
7
7
  import { addPendingTask } from '../store/apis/addPendingTask';
8
8
 
@@ -11,6 +11,7 @@ import { getPendingTasks } from '../store/apis/getPendingTasks';
11
11
  import { QuickSqliteClient } from '../store/QuickSqliteClient';
12
12
  import type { PendingTask, PreparedQueries } from '../store/types';
13
13
  import type { DefaultStreamChatGenerics } from '../types/types';
14
+
14
15
  /**
15
16
  * DBSyncManager has the responsibility to sync the channel states
16
17
  * within local database whenever possible.
@@ -95,6 +96,8 @@ export class DBSyncManager {
95
96
  currentUserId: this.client.user.id,
96
97
  });
97
98
  const cids = getAllChannelIds();
99
+ // If there are no channels, then there is no need to sync.
100
+ if (cids.length === 0) return;
98
101
 
99
102
  if (lastSyncedAt) {
100
103
  try {
@@ -113,7 +116,7 @@ export class DBSyncManager {
113
116
  QuickSqliteClient.resetDB();
114
117
  }
115
118
  }
116
- upsertLastSyncedAt({
119
+ upsertUserSyncStatus({
117
120
  currentUserId: this.client.user.id,
118
121
  lastSyncedAt: new Date().toString(),
119
122
  });
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.15.0-beta.6"
2
+ "version": "5.15.0"
3
3
  }
@@ -1 +0,0 @@
1
- {"version":3,"names":["_QuickSqliteClient","require","_createUpsertQuery","upsertLastSyncedAt","_ref","currentUserId","lastSyncedAt","query","createUpsertQuery","userId","QuickSqliteClient","executeSql","apply","exports"],"sources":["upsertLastSyncedAt.ts"],"sourcesContent":["import { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertLastSyncedAt = ({\n currentUserId,\n lastSyncedAt,\n}: {\n currentUserId: string;\n lastSyncedAt: string;\n}) => {\n const query = createUpsertQuery('userSyncStatus', {\n lastSyncedAt,\n userId: currentUserId,\n });\n\n QuickSqliteClient.executeSql.apply(null, query);\n};\n"],"mappings":";;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEO,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAMzB;EAAA,IALJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,YAAY,GAAAF,IAAA,CAAZE,YAAY;EAKZ,IAAMC,KAAK,GAAG,IAAAC,oCAAiB,EAAC,gBAAgB,EAAE;IAChDF,YAAY,EAAZA,YAAY;IACZG,MAAM,EAAEJ;EACV,CAAC,CAAC;EAEFK,oCAAiB,CAACC,UAAU,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC;AACjD,CAAC;AAACM,OAAA,CAAAV,kBAAA,GAAAA,kBAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["_QuickSqliteClient","require","_createUpsertQuery","upsertLastSyncedAt","_ref","currentUserId","lastSyncedAt","query","createUpsertQuery","userId","QuickSqliteClient","executeSql","apply","exports"],"sources":["upsertLastSyncedAt.ts"],"sourcesContent":["import { QuickSqliteClient } from '../QuickSqliteClient';\nimport { createUpsertQuery } from '../sqlite-utils/createUpsertQuery';\n\nexport const upsertLastSyncedAt = ({\n currentUserId,\n lastSyncedAt,\n}: {\n currentUserId: string;\n lastSyncedAt: string;\n}) => {\n const query = createUpsertQuery('userSyncStatus', {\n lastSyncedAt,\n userId: currentUserId,\n });\n\n QuickSqliteClient.executeSql.apply(null, query);\n};\n"],"mappings":";;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAEO,IAAME,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,IAAA,EAMzB;EAAA,IALJC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,YAAY,GAAAF,IAAA,CAAZE,YAAY;EAKZ,IAAMC,KAAK,GAAG,IAAAC,oCAAiB,EAAC,gBAAgB,EAAE;IAChDF,YAAY,EAAZA,YAAY;IACZG,MAAM,EAAEJ;EACV,CAAC,CAAC;EAEFK,oCAAiB,CAACC,UAAU,CAACC,KAAK,CAAC,IAAI,EAAEL,KAAK,CAAC;AACjD,CAAC;AAACM,OAAA,CAAAV,kBAAA,GAAAA,kBAAA"}
@@ -1,4 +0,0 @@
1
- export declare const upsertLastSyncedAt: ({ currentUserId, lastSyncedAt, }: {
2
- currentUserId: string;
3
- lastSyncedAt: string;
4
- }) => void;