stream-chat-react-native-core 5.14.1-beta.1 → 5.14.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.
@@ -32,7 +32,7 @@ var useIsOnline = function useIsOnline(client) {
32
32
  setIsOnline(false);
33
33
  }, [closeConnectionOnBackground, client, clientExists]);
34
34
  var onForeground = (0, _react.useCallback)(function () {
35
- if (!clientExists) return;
35
+ if (!clientExists || !client.userID) return;
36
36
  client.openConnection();
37
37
  }, [client, clientExists]);
38
38
  (0, _useAppStateListener.useAppStateListener)(onForeground, onBackground);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_useAppStateListener","_useIsMountedRef","_native","useIsOnline","client","closeConnectionOnBackground","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray2","isOnline","setIsOnline","_useState3","_useState4","connectionRecovering","setConnectionRecovering","isMounted","useIsMountedRef","clientExists","onBackground","useCallback","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","openConnection","useAppStateListener","useEffect","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","_client$wsConnection","isHealthy","setInitialOnlineState","_ref","_asyncToGenerator2","_regenerator","mark","_callee","status","wrap","_callee$","_context","prev","next","fetch","sent","current","stop","apply","chatListeners","push","on","forEach","listener","unsubscribe","exports"],"sources":["useIsOnline.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure the user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState<boolean | null>(null);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExists = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground || !clientExists) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client, clientExists]);\n\n const onForeground = useCallback(() => {\n if (!clientExists) return;\n\n client.openConnection();\n }, [client, clientExists]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<StreamChatGenerics>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExists]);\n\n return { connectionRecovering, isOnline };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_useAppStateListener","_useIsMountedRef","_native","useIsOnline","client","closeConnectionOnBackground","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray2","isOnline","setIsOnline","_useState3","_useState4","connectionRecovering","setConnectionRecovering","isMounted","useIsMountedRef","clientExists","onBackground","useCallback","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","userID","openConnection","useAppStateListener","useEffect","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","_client$wsConnection","isHealthy","setInitialOnlineState","_ref","_asyncToGenerator2","_regenerator","mark","_callee","status","wrap","_callee$","_context","prev","next","fetch","sent","current","stop","apply","chatListeners","push","on","forEach","listener","unsubscribe","exports"],"sources":["useIsOnline.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure the user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState<boolean | null>(null);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExists = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground || !clientExists) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client, clientExists]);\n\n const onForeground = useCallback(() => {\n // If the user id is not set, we should not open the connection, as it will raise an unneeded error\n if (!clientExists || !client.userID) return;\n\n client.openConnection();\n }, [client, clientExists]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<StreamChatGenerics>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExists]);\n\n return { connectionRecovering, isOnline };\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.14.1-beta.1"
2
+ "version": "5.14.1"
3
3
  }
@@ -32,7 +32,7 @@ var useIsOnline = function useIsOnline(client) {
32
32
  setIsOnline(false);
33
33
  }, [closeConnectionOnBackground, client, clientExists]);
34
34
  var onForeground = (0, _react.useCallback)(function () {
35
- if (!clientExists) return;
35
+ if (!clientExists || !client.userID) return;
36
36
  client.openConnection();
37
37
  }, [client, clientExists]);
38
38
  (0, _useAppStateListener.useAppStateListener)(onForeground, onBackground);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_useAppStateListener","_useIsMountedRef","_native","useIsOnline","client","closeConnectionOnBackground","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray2","isOnline","setIsOnline","_useState3","_useState4","connectionRecovering","setConnectionRecovering","isMounted","useIsMountedRef","clientExists","onBackground","useCallback","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","openConnection","useAppStateListener","useEffect","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","_client$wsConnection","isHealthy","setInitialOnlineState","_ref","_asyncToGenerator2","_regenerator","mark","_callee","status","wrap","_callee$","_context","prev","next","fetch","sent","current","stop","apply","chatListeners","push","on","forEach","listener","unsubscribe","exports"],"sources":["useIsOnline.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure the user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState<boolean | null>(null);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExists = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground || !clientExists) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client, clientExists]);\n\n const onForeground = useCallback(() => {\n if (!clientExists) return;\n\n client.openConnection();\n }, [client, clientExists]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<StreamChatGenerics>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExists]);\n\n return { connectionRecovering, isOnline };\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","require","_useAppStateListener","_useIsMountedRef","_native","useIsOnline","client","closeConnectionOnBackground","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray2","isOnline","setIsOnline","_useState3","_useState4","connectionRecovering","setConnectionRecovering","isMounted","useIsMountedRef","clientExists","onBackground","useCallback","cid","activeChannels","channel","state","setIsUpToDate","closeConnection","onForeground","userID","openConnection","useAppStateListener","useEffect","handleChangedEvent","event","online","handleRecoveredEvent","notifyChatClient","netInfoState","wsConnection","onlineStatusChanged","type","unsubscribeNetInfo","setNetInfoListener","NetInfo","addEventListener","_client$wsConnection","isHealthy","setInitialOnlineState","_ref","_asyncToGenerator2","_regenerator","mark","_callee","status","wrap","_callee$","_context","prev","next","fetch","sent","current","stop","apply","chatListeners","push","on","forEach","listener","unsubscribe","exports"],"sources":["useIsOnline.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\n\nimport type { NetInfoSubscription } from '@react-native-community/netinfo';\n\nimport type { StreamChat, Event as StreamEvent } from 'stream-chat';\n\nimport { useAppStateListener } from '../../../hooks/useAppStateListener';\nimport { useIsMountedRef } from '../../../hooks/useIsMountedRef';\nimport { NetInfo } from '../../../native';\n\nimport type { DefaultStreamChatGenerics } from '../../../types/types';\n\n/**\n * Disconnect the websocket connection when app goes to background,\n * and reconnect when app comes to foreground.\n * We do this to make sure the user receives push notifications when app is in the background.\n * You can't receive push notification until you have active websocket connection.\n */\nexport const useIsOnline = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n client: StreamChat<StreamChatGenerics>,\n closeConnectionOnBackground = true,\n) => {\n const [isOnline, setIsOnline] = useState<boolean | null>(null);\n const [connectionRecovering, setConnectionRecovering] = useState(false);\n const isMounted = useIsMountedRef();\n const clientExists = !!client;\n\n const onBackground = useCallback(() => {\n if (!closeConnectionOnBackground || !clientExists) return;\n\n for (const cid in client.activeChannels) {\n const channel = client.activeChannels[cid];\n channel?.state.setIsUpToDate(false);\n }\n\n client.closeConnection();\n setIsOnline(false);\n }, [closeConnectionOnBackground, client, clientExists]);\n\n const onForeground = useCallback(() => {\n // If the user id is not set, we should not open the connection, as it will raise an unneeded error\n if (!clientExists || !client.userID) return;\n\n client.openConnection();\n }, [client, clientExists]);\n\n useAppStateListener(onForeground, onBackground);\n\n useEffect(() => {\n const handleChangedEvent = (event: StreamEvent<StreamChatGenerics>) => {\n setConnectionRecovering(!event.online);\n setIsOnline(event.online || false);\n };\n\n const handleRecoveredEvent = () => setConnectionRecovering(false);\n\n const notifyChatClient = (netInfoState: boolean) => {\n if (client?.wsConnection) {\n if (netInfoState) {\n client.wsConnection.onlineStatusChanged({\n type: 'online',\n } as Event);\n } else {\n client.wsConnection.onlineStatusChanged({\n type: 'offline',\n } as Event);\n }\n }\n };\n\n let unsubscribeNetInfo: NetInfoSubscription;\n const setNetInfoListener = () => {\n unsubscribeNetInfo = NetInfo.addEventListener((netInfoState) => {\n if (netInfoState === false && !client.wsConnection?.isHealthy) {\n setConnectionRecovering(true);\n setIsOnline(false);\n }\n notifyChatClient(netInfoState);\n });\n };\n\n const setInitialOnlineState = async () => {\n const status = await NetInfo.fetch();\n if (isMounted.current) {\n setIsOnline(status);\n notifyChatClient(status);\n }\n };\n\n setInitialOnlineState();\n const chatListeners: Array<ReturnType<StreamChat['on']>> = [];\n\n if (client) {\n chatListeners.push(client.on('connection.changed', handleChangedEvent));\n chatListeners.push(client.on('connection.recovered', handleRecoveredEvent));\n setNetInfoListener();\n }\n\n return () => {\n chatListeners.forEach((listener) => listener.unsubscribe?.());\n unsubscribeNetInfo?.();\n };\n }, [clientExists]);\n\n return { connectionRecovering, isOnline };\n};\n"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.14.1-beta.1"
2
+ "version": "5.14.1"
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.14.1-beta.1",
4
+ "version": "5.14.1",
5
5
  "author": {
6
6
  "company": "Stream.io Inc",
7
7
  "name": "Stream.io Inc"
@@ -40,7 +40,8 @@ export const useIsOnline = <
40
40
  }, [closeConnectionOnBackground, client, clientExists]);
41
41
 
42
42
  const onForeground = useCallback(() => {
43
- if (!clientExists) return;
43
+ // If the user id is not set, we should not open the connection, as it will raise an unneeded error
44
+ if (!clientExists || !client.userID) return;
44
45
 
45
46
  client.openConnection();
46
47
  }, [client, clientExists]);
package/src/version.json CHANGED
@@ -1,3 +1,3 @@
1
1
  {
2
- "version": "5.14.1-beta.1"
2
+ "version": "5.14.1"
3
3
  }