stream-chat-react-native-core 5.5.0-beta.2 → 5.5.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,7 +55,7 @@ var useConnectionRecovered = function useConnectionRecovered(_ref) {
55
55
  });
56
56
  cids = (0, _getAllChannelIds.getAllChannelIds)();
57
57
 
58
- if (!lastSyncedAt) {
58
+ if (!(lastSyncedAt && cids != null && cids.length)) {
59
59
  _context.next = 16;
60
60
  break;
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["useConnectionRecovered.ts"],"names":["useConnectionRecovered","client","enableOfflineSupport","connectionRecoveredCallbacks","setConnectionRecoveredCallbacks","sync","user","lastSyncedAt","currentUserId","id","cids","Date","toISOString","result","queries","events","reduce","event","concat","length","QuickSqliteClient","executeSqlBatch","resetDB","toString","handleEvent","forEach","c","connectionChangedListener","on","online","unsubscribe","subscribeConnectionRecoveredCallback","listener","callbacks","filter","el"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, EventHandler, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from './handleEventToSyncDB';\n\nimport { getAllChannelIds } from '../../../store/apis/getAllChannelIds';\nimport { getLastSyncedAt } from '../../../store/apis/getLastSyncedAt';\nimport { upsertLastSyncedAt } from '../../../store/apis/upsertLastSyncedAt';\nimport { QuickSqliteClient } from '../../../store/QuickSqliteClient';\nimport type { PreparedQueries } from '../../../store/types';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype Params<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {\n client: StreamChat<StreamChatGenerics>;\n enableOfflineSupport: boolean;\n};\n\nexport const useConnectionRecovered = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n enableOfflineSupport,\n}: Params<StreamChatGenerics>) => {\n const [connectionRecoveredCallbacks, setConnectionRecoveredCallbacks] = useState<\n EventHandler<StreamChatGenerics>[]\n >([]);\n\n useEffect(() => {\n const sync = async () => {\n if (!client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await 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 // do nothing\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (enableOfflineSupport) {\n await sync();\n }\n\n connectionRecoveredCallbacks.forEach((c) => c(event));\n };\n\n let connectionChangedListener: ReturnType<StreamChat['on']>;\n\n if (client) {\n connectionChangedListener = client.on('connection.changed', (event) => {\n if (event.online) {\n handleEvent(event);\n }\n });\n }\n\n return () => {\n connectionChangedListener?.unsubscribe?.();\n };\n }, [client, connectionRecoveredCallbacks.length]);\n\n return {\n subscribeConnectionRecoveredCallback: (listener: EventHandler<StreamChatGenerics>) => {\n setConnectionRecoveredCallbacks((callbacks) => [...callbacks, listener]);\n\n return () => {\n setConnectionRecoveredCallbacks((callbacks) => callbacks.filter((el) => el !== listener));\n };\n },\n };\n};\n"]}
1
+ {"version":3,"sources":["useConnectionRecovered.ts"],"names":["useConnectionRecovered","client","enableOfflineSupport","connectionRecoveredCallbacks","setConnectionRecoveredCallbacks","sync","user","lastSyncedAt","currentUserId","id","cids","length","Date","toISOString","result","queries","events","reduce","event","concat","QuickSqliteClient","executeSqlBatch","resetDB","toString","handleEvent","forEach","c","connectionChangedListener","on","online","unsubscribe","subscribeConnectionRecoveredCallback","listener","callbacks","filter","el"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, EventHandler, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from './handleEventToSyncDB';\n\nimport { getAllChannelIds } from '../../../store/apis/getAllChannelIds';\nimport { getLastSyncedAt } from '../../../store/apis/getLastSyncedAt';\nimport { upsertLastSyncedAt } from '../../../store/apis/upsertLastSyncedAt';\nimport { QuickSqliteClient } from '../../../store/QuickSqliteClient';\nimport type { PreparedQueries } from '../../../store/types';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype Params<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {\n client: StreamChat<StreamChatGenerics>;\n enableOfflineSupport: boolean;\n};\n\nexport const useConnectionRecovered = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n enableOfflineSupport,\n}: Params<StreamChatGenerics>) => {\n const [connectionRecoveredCallbacks, setConnectionRecoveredCallbacks] = useState<\n EventHandler<StreamChatGenerics>[]\n >([]);\n\n useEffect(() => {\n const sync = async () => {\n if (!client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt && cids?.length) {\n try {\n const result = await 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 // do nothing\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (enableOfflineSupport) {\n await sync();\n }\n\n connectionRecoveredCallbacks.forEach((c) => c(event));\n };\n\n let connectionChangedListener: ReturnType<StreamChat['on']>;\n\n if (client) {\n connectionChangedListener = client.on('connection.changed', (event) => {\n if (event.online) {\n handleEvent(event);\n }\n });\n }\n\n return () => {\n connectionChangedListener?.unsubscribe?.();\n };\n }, [client, connectionRecoveredCallbacks.length]);\n\n return {\n subscribeConnectionRecoveredCallback: (listener: EventHandler<StreamChatGenerics>) => {\n setConnectionRecoveredCallbacks((callbacks) => [...callbacks, listener]);\n\n return () => {\n setConnectionRecoveredCallbacks((callbacks) => callbacks.filter((el) => el !== listener));\n };\n },\n };\n};\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.5.0-beta.2"
2
+ "version": "5.5.0-beta.3"
3
3
  }
@@ -55,7 +55,7 @@ var useConnectionRecovered = function useConnectionRecovered(_ref) {
55
55
  });
56
56
  cids = (0, _getAllChannelIds.getAllChannelIds)();
57
57
 
58
- if (!lastSyncedAt) {
58
+ if (!(lastSyncedAt && cids != null && cids.length)) {
59
59
  _context.next = 16;
60
60
  break;
61
61
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["useConnectionRecovered.ts"],"names":["useConnectionRecovered","client","enableOfflineSupport","connectionRecoveredCallbacks","setConnectionRecoveredCallbacks","sync","user","lastSyncedAt","currentUserId","id","cids","Date","toISOString","result","queries","events","reduce","event","concat","length","QuickSqliteClient","executeSqlBatch","resetDB","toString","handleEvent","forEach","c","connectionChangedListener","on","online","unsubscribe","subscribeConnectionRecoveredCallback","listener","callbacks","filter","el"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, EventHandler, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from './handleEventToSyncDB';\n\nimport { getAllChannelIds } from '../../../store/apis/getAllChannelIds';\nimport { getLastSyncedAt } from '../../../store/apis/getLastSyncedAt';\nimport { upsertLastSyncedAt } from '../../../store/apis/upsertLastSyncedAt';\nimport { QuickSqliteClient } from '../../../store/QuickSqliteClient';\nimport type { PreparedQueries } from '../../../store/types';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype Params<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {\n client: StreamChat<StreamChatGenerics>;\n enableOfflineSupport: boolean;\n};\n\nexport const useConnectionRecovered = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n enableOfflineSupport,\n}: Params<StreamChatGenerics>) => {\n const [connectionRecoveredCallbacks, setConnectionRecoveredCallbacks] = useState<\n EventHandler<StreamChatGenerics>[]\n >([]);\n\n useEffect(() => {\n const sync = async () => {\n if (!client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt) {\n try {\n const result = await 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 // do nothing\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (enableOfflineSupport) {\n await sync();\n }\n\n connectionRecoveredCallbacks.forEach((c) => c(event));\n };\n\n let connectionChangedListener: ReturnType<StreamChat['on']>;\n\n if (client) {\n connectionChangedListener = client.on('connection.changed', (event) => {\n if (event.online) {\n handleEvent(event);\n }\n });\n }\n\n return () => {\n connectionChangedListener?.unsubscribe?.();\n };\n }, [client, connectionRecoveredCallbacks.length]);\n\n return {\n subscribeConnectionRecoveredCallback: (listener: EventHandler<StreamChatGenerics>) => {\n setConnectionRecoveredCallbacks((callbacks) => [...callbacks, listener]);\n\n return () => {\n setConnectionRecoveredCallbacks((callbacks) => callbacks.filter((el) => el !== listener));\n };\n },\n };\n};\n"]}
1
+ {"version":3,"sources":["useConnectionRecovered.ts"],"names":["useConnectionRecovered","client","enableOfflineSupport","connectionRecoveredCallbacks","setConnectionRecoveredCallbacks","sync","user","lastSyncedAt","currentUserId","id","cids","length","Date","toISOString","result","queries","events","reduce","event","concat","QuickSqliteClient","executeSqlBatch","resetDB","toString","handleEvent","forEach","c","connectionChangedListener","on","online","unsubscribe","subscribeConnectionRecoveredCallback","listener","callbacks","filter","el"],"mappings":"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","sourcesContent":["import { useEffect, useState } from 'react';\n\nimport type { Event, EventHandler, StreamChat } from 'stream-chat';\n\nimport { handleEventToSyncDB } from './handleEventToSyncDB';\n\nimport { getAllChannelIds } from '../../../store/apis/getAllChannelIds';\nimport { getLastSyncedAt } from '../../../store/apis/getLastSyncedAt';\nimport { upsertLastSyncedAt } from '../../../store/apis/upsertLastSyncedAt';\nimport { QuickSqliteClient } from '../../../store/QuickSqliteClient';\nimport type { PreparedQueries } from '../../../store/types';\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\ntype Params<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {\n client: StreamChat<StreamChatGenerics>;\n enableOfflineSupport: boolean;\n};\n\nexport const useConnectionRecovered = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n client,\n enableOfflineSupport,\n}: Params<StreamChatGenerics>) => {\n const [connectionRecoveredCallbacks, setConnectionRecoveredCallbacks] = useState<\n EventHandler<StreamChatGenerics>[]\n >([]);\n\n useEffect(() => {\n const sync = async () => {\n if (!client?.user) return;\n\n const lastSyncedAt = getLastSyncedAt({\n currentUserId: client.user.id,\n });\n const cids = getAllChannelIds();\n\n if (lastSyncedAt && cids?.length) {\n try {\n const result = await 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 // do nothing\n QuickSqliteClient.resetDB();\n }\n }\n upsertLastSyncedAt({\n currentUserId: client.user.id,\n lastSyncedAt: new Date().toString(),\n });\n };\n\n const handleEvent = async (event: Event<StreamChatGenerics>) => {\n if (enableOfflineSupport) {\n await sync();\n }\n\n connectionRecoveredCallbacks.forEach((c) => c(event));\n };\n\n let connectionChangedListener: ReturnType<StreamChat['on']>;\n\n if (client) {\n connectionChangedListener = client.on('connection.changed', (event) => {\n if (event.online) {\n handleEvent(event);\n }\n });\n }\n\n return () => {\n connectionChangedListener?.unsubscribe?.();\n };\n }, [client, connectionRecoveredCallbacks.length]);\n\n return {\n subscribeConnectionRecoveredCallback: (listener: EventHandler<StreamChatGenerics>) => {\n setConnectionRecoveredCallbacks((callbacks) => [...callbacks, listener]);\n\n return () => {\n setConnectionRecoveredCallbacks((callbacks) => callbacks.filter((el) => el !== listener));\n };\n },\n };\n};\n"]}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.5.0-beta.2"
2
+ "version": "5.5.0-beta.3"
3
3
  }
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.5.0-beta.2",
4
+ "version": "5.5.0-beta.3",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -35,7 +35,7 @@ export const useConnectionRecovered = <
35
35
  });
36
36
  const cids = getAllChannelIds();
37
37
 
38
- if (lastSyncedAt) {
38
+ if (lastSyncedAt && cids?.length) {
39
39
  try {
40
40
  const result = await client.sync(cids, new Date(lastSyncedAt).toISOString());
41
41
  const queries = result.events.reduce<PreparedQueries[]>((queries, event) => {
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.5.0-beta.2"
2
+ "version": "5.5.0-beta.3"
3
3
  }