61 lines
1.3 KiB
TypeScript
61 lines
1.3 KiB
TypeScript
import { View, Text } from "react-native";
|
|
import { StyleSheet } from "react-native-unistyles";
|
|
|
|
interface ConnectionStatusProps {
|
|
isConnected: boolean;
|
|
}
|
|
|
|
const styles = StyleSheet.create((theme) => ({
|
|
container: {
|
|
// No padding or border - parent handles layout
|
|
},
|
|
row: {
|
|
flexDirection: "row",
|
|
alignItems: "center",
|
|
},
|
|
dot: {
|
|
width: 8,
|
|
height: 8,
|
|
borderRadius: theme.borderRadius.full,
|
|
marginRight: theme.spacing[2],
|
|
},
|
|
dotConnected: {
|
|
backgroundColor: theme.colors.palette.green[500],
|
|
},
|
|
dotDisconnected: {
|
|
backgroundColor: theme.colors.destructive,
|
|
},
|
|
text: {
|
|
fontSize: theme.fontSize.sm,
|
|
},
|
|
textConnected: {
|
|
color: theme.colors.palette.green[500],
|
|
},
|
|
textDisconnected: {
|
|
color: theme.colors.destructive,
|
|
},
|
|
}));
|
|
|
|
export function ConnectionStatus({ isConnected }: ConnectionStatusProps) {
|
|
return (
|
|
<View style={styles.container}>
|
|
<View style={styles.row}>
|
|
<View
|
|
style={[
|
|
styles.dot,
|
|
isConnected ? styles.dotConnected : styles.dotDisconnected,
|
|
]}
|
|
/>
|
|
<Text
|
|
style={[
|
|
styles.text,
|
|
isConnected ? styles.textConnected : styles.textDisconnected,
|
|
]}
|
|
>
|
|
{isConnected ? "Connected" : "Disconnected"}
|
|
</Text>
|
|
</View>
|
|
</View>
|
|
);
|
|
}
|