|
@@ -2,6 +2,7 @@ import React, { useEffect, useState } from 'react';
|
|
import { View, Text } from 'react-native';
|
|
import { View, Text } from 'react-native';
|
|
import { useConnection } from 'src/contexts/ConnectionContext';
|
|
import { useConnection } from 'src/contexts/ConnectionContext';
|
|
import { styles } from './styles';
|
|
import { styles } from './styles';
|
|
|
|
+import { initializeBanner, showBanner } from 'src/utils/bannerUtils';
|
|
|
|
|
|
const ConnectionBanner = () => {
|
|
const ConnectionBanner = () => {
|
|
const netInfo = useConnection();
|
|
const netInfo = useConnection();
|
|
@@ -10,25 +11,20 @@ const ConnectionBanner = () => {
|
|
const [hadConnection, setHadConnection] = useState(netInfo?.isInternetReachable);
|
|
const [hadConnection, setHadConnection] = useState(netInfo?.isInternetReachable);
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
|
+ initializeBanner(setVisible, setBannerMessage);
|
|
|
|
+
|
|
if (netInfo?.isInternetReachable !== null) {
|
|
if (netInfo?.isInternetReachable !== null) {
|
|
if (hadConnection === false && netInfo?.isInternetReachable) {
|
|
if (hadConnection === false && netInfo?.isInternetReachable) {
|
|
- setBannerMessage('Internet connection restored!');
|
|
|
|
- showBanner();
|
|
|
|
|
|
+ showBanner('Internet connection restored!');
|
|
} else if (netInfo?.isInternetReachable === false) {
|
|
} else if (netInfo?.isInternetReachable === false) {
|
|
- setBannerMessage('No internet connection!');
|
|
|
|
- showBanner();
|
|
|
|
|
|
+ showBanner('No internet connection!');
|
|
|
|
+ } else if (netInfo?.isInternetReachable && !netInfo?.isConnected) {
|
|
|
|
+ showBanner('Slow internet connection!');
|
|
}
|
|
}
|
|
setHadConnection(netInfo?.isInternetReachable);
|
|
setHadConnection(netInfo?.isInternetReachable);
|
|
}
|
|
}
|
|
}, [netInfo?.isInternetReachable]);
|
|
}, [netInfo?.isInternetReachable]);
|
|
|
|
|
|
- const showBanner = () => {
|
|
|
|
- setVisible(true);
|
|
|
|
- setTimeout(() => {
|
|
|
|
- setVisible(false);
|
|
|
|
- }, 3000);
|
|
|
|
- };
|
|
|
|
-
|
|
|
|
if (!visible) return null;
|
|
if (!visible) return null;
|
|
|
|
|
|
return (
|
|
return (
|