import React, { useState, useEffect } from 'react'; import { View, Text, StyleSheet, Platform, Animated } from 'react-native'; import NetInfo from '@react-native-community/netinfo'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; export const NetworkStatus = () => { const [isConnected, setIsConnected] = useState(true); const insets = useSafeAreaInsets(); const opacityAnim = useState(new Animated.Value(1))[0]; useEffect(() => { const unsubscribe = NetInfo.addEventListener(state => { const connected = !!state.isConnected && !!state.isInternetReachable; if (isConnected !== connected) { setIsConnected(connected); } }); return () => unsubscribe(); }, [isConnected]); // Optionally fade it out if online? Or keep it permanently. Let's keep it permanently but subtle if online. const isOnline = isConnected !== false; return ( {isOnline ? 'Online' : 'Offline'} ); }; const styles = StyleSheet.create({ container: { position: 'absolute', right: 24, zIndex: 9999, }, pill: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 12, paddingVertical: 6, borderRadius: 20, borderWidth: 1, }, dot: { width: 6, height: 6, borderRadius: 3, marginRight: 6, }, text: { fontSize: 10, fontWeight: '700', fontFamily: 'Outfit_600SemiBold', textTransform: 'uppercase', letterSpacing: 0.5, }, });