This commit is contained in:
tx 2024-11-14 14:30:03 +08:00
parent fc87ad0b3d
commit cf03748a27
3 changed files with 41 additions and 62 deletions

View File

@ -106,6 +106,7 @@ const styles = StyleSheet.create({
justifyContent: 'space-between',
alignItems: 'center',
padding: rpx(24),
paddingTop: rpx(-20),
height: '100%',
},
cont_left: {

View File

@ -12,6 +12,7 @@ import UnlockSetting from './device/UnlockSetting';
import BleDistance from './device/BleDistance';
import DeviceShare from './device/DeviceShare';
import AddShare from './device/AddShare';
import ShareQrcode from './device/shareQrcode';
// import BleBind from './bind/ble_bind';
import { getFocusedRouteNameFromRoute } from '@react-navigation/native';
@ -27,6 +28,7 @@ type RootStackParamList = {
UnlockSetting: undefined;
DeviceShare: undefined;
AddShare: undefined;
ShareQrcode: undefined;
};
const Stack = createStackNavigator<RootStackParamList>();
@ -54,12 +56,12 @@ type Props = {
export default function HomeStackNavigator({ navigation, route }: Props) {
React.useEffect(() => {
const routeName = getFocusedRouteNameFromRoute(route) ?? 'Home';
const hideTabBarRoutes = ['DeviceList', 'BindIndex', 'SnBind', 'BleBind', 'ConfirmBind', 'DeviceMap', 'DeviceSet', 'UnlockSetting', 'BleDistance', 'DeviceShare']; // 添加新的路由名
const shouldHideTabBar = hideTabBarRoutes.includes(routeName);
navigation.getParent()?.setOptions({
tabBarStyle: shouldHideTabBar ? { display: 'none' } : undefined
});
// navigation.getParent()?.setOptions({
// tabBarStyle: shouldHideTabBar ? { display: 'none' } : undefined
// });
}, [navigation, route]);
@ -122,6 +124,11 @@ export default function HomeStackNavigator({ navigation, route }: Props) {
component={AddShare}
options={createScreenOptions('添加共享人')}
/>
<Stack.Screen
name="ShareQrcode"
component={ShareQrcode}
options={createScreenOptions('分享二维码')}
/>
</Stack.Navigator>
);
}

View File

@ -1,8 +1,9 @@
import React, { useState } from 'react';
import { View, Text, StyleSheet, Image, TextInput, TouchableWithoutFeedback, Keyboard, TouchableOpacity, Modal } from 'react-native';
import { rpx } from '../../utils/rpx';
import { useNavigation } from '@react-navigation/native';
const AddShare = () => {
const navigation = useNavigation();
const [phone, setPhone] = useState('');
const [name, setName] = useState('');
const [time, setTime] = useState('');
@ -12,6 +13,12 @@ const AddShare = () => {
const [allowBleLocation, setAllowBleLocation] = useState(true);
const handlePress = () => {
setShowTimeModal(true);
}
const handleSubmit = () => {
navigation.navigate('ShareQrcode' as never);
}
const handlePhone = () => {
}
return (
<TouchableWithoutFeedback onPress={Keyboard.dismiss}>
@ -23,10 +30,13 @@ const AddShare = () => {
value={phone}
onChangeText={setPhone}
/>
<TouchableOpacity onPress={handlePhone} activeOpacity={1}>
<Image
source={{ uri: 'https://lxnapi.ccttiot.com/bike/img/static/uMSABuH69gxKXIP0zqtl' }}
style={styles.phoneImg}
/>
</TouchableOpacity>
</View>
<View style={styles.IptBox}>
<TextInput
@ -51,63 +61,10 @@ const AddShare = () => {
/>
</View>
</TouchableOpacity>
<TouchableOpacity style={styles.bleInfo} onPress={() => setShowBleInfo(true)}>
<Image source={{ uri: 'https://lxnapi.ccttiot.com/bike/img/static/uvjPwfAKsL9kHD1Tb9aW' }} style={styles.bleImg}></Image>
<View style={styles.bleInfoBox}>
<Text style={styles.tit}></Text>
<Text style={[
styles.txt,
{ color: allowBleLocation ? '#4297F3' : '#666' }
]}>
{allowBleLocation ? '允许' : '不允许'}
</Text>
</View>
<TouchableOpacity style={styles.submitButton} onPress={handleSubmit}>
<Text style={styles.submitButtonText}></Text>
</TouchableOpacity>
<Modal visible={showBleInfo} transparent={true} animationType="slide">
<View style={styles.modalContainers}>
<View style={styles.modalContents}>
<Image
source={{ uri: 'https://lxnapi.ccttiot.com/bike/img/static/uwMP7N2hCLFdwwDPhHMm' }}
style={styles.bleLocationImg}
/>
<Text style={styles.bleModalTitle}>
{'\n'}
</Text>
<View style={styles.radioGroup}>
<TouchableOpacity
style={styles.radioItem}
onPress={() => setAllowBleLocation(true)}
>
<Text style={styles.radioText}></Text>
<View style={styles.radioCircle}>
{allowBleLocation && <View style={styles.radioSelected} />}
</View>
</TouchableOpacity>
<View style={styles.line}></View>
<TouchableOpacity
style={styles.radioItem}
onPress={() => setAllowBleLocation(false)}
>
<Text style={styles.radioText}></Text>
<View style={styles.radioCircle}>
{!allowBleLocation && <View style={styles.radioSelected} />}
</View>
</TouchableOpacity>
</View>
<TouchableOpacity
style={styles.confirmButton}
onPress={() => setShowBleInfo(false)}
>
<Text style={styles.confirmButtonText}></Text>
</TouchableOpacity>
</View>
</View>
</Modal>
<Modal
visible={showTimeModal}
transparent={true}
@ -162,6 +119,20 @@ const AddShare = () => {
}
const styles = StyleSheet.create({
submitButton: {
width: rpx(688),
height: rpx(88),
backgroundColor: '#4297F3',
borderRadius: rpx(16),
justifyContent: 'center',
alignItems: 'center',
marginTop: rpx(50),
},
submitButtonText: {
fontSize: rpx(32),
color: '#fff',
fontWeight: '500',
},
container: {
flex: 1,
backgroundColor: '#F3FCFF',