You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

175 lines
5.1 KiB

import { View, Text, StyleSheet, TouchableOpacity, SafeAreaView, StatusBar, Platform } from "react-native";
import BackIcon from "../../components/BackIcon";
import fontSize from "../../utils/fontsizeUtils";
import LeftArrowIcon from "../../components/DownArrowIcon";
import { useNavigation } from "@react-navigation/native";
import { NativeStackNavigationProp } from "@react-navigation/native-stack";
import { useState, useEffect } from "react";
import { settingApi, MySetting } from "../../services/api/setting";
import { RootStackParamList } from "../../navigation/types";
import { eventBus } from "../../utils/eventBus";
import AsyncStorage from '@react-native-async-storage/async-storage';
export const SettingList = () => {
const [mySetting, setMySetting] = useState<MySetting>();
const getMySetting = async () => {
const res = await settingApi.getMySetting()
console.log("MySetting:");
console.log(res);
setMySetting(res);
}
useEffect(() => {
getMySetting();
const refreshSetting = () => {
getMySetting();
}
eventBus.on("refreshSetting", refreshSetting);
return () => {
eventBus.off("refreshSetting", refreshSetting);
};
}, []);
const navigation =
useNavigation<NativeStackNavigationProp<RootStackParamList>>();
return (
<SafeAreaView style={styles.safeArea}>
<StatusBar barStyle="dark-content" backgroundColor="#fff" />
<View style={styles.safeAreaContent}>
<View style={styles.header}>
<TouchableOpacity
onPress={() => navigation.goBack()}
>
<BackIcon size={fontSize(24)} />
</TouchableOpacity>
<Text style={styles.headerTitle}></Text>
<View style={styles.placeholder} />
</View>
<View style={styles.content}>
<View style={styles.item}>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
<View style={styles.item}>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
<View style={styles.item}>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
</View>
<View style={styles.content}>
<TouchableOpacity
onPress={() => {
if (mySetting?.language && mySetting?.currency) {
navigation.navigate("MyAddress");
}
}}
style={styles.item}
>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</TouchableOpacity>
<View style={styles.item}>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
<View style={styles.item}>
<Text>Brainnel隐私政策</Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
<View style={styles.item}>
<Text>使</Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</View>
<TouchableOpacity style={styles.item} onPress={() => {
AsyncStorage.clear();
navigation.navigate("CountrySelect");
}}>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</TouchableOpacity>
<View>
<TouchableOpacity
onPress={() => {
// if (mySetting?.language && mySetting?.currency) {
navigation.navigate("CountrySetting", { mySetting });
// }
}}
style={styles.item}
>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</TouchableOpacity>
</View>
</View>
</View>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
safeArea: {
flex: 1,
backgroundColor: '#fff',
},
safeAreaContent: {
flex: 1,
paddingTop: 0,
backgroundColor: "#f8f8f8",
},
container: {
flex: 1,
backgroundColor: "#f8f8f8",
},
header: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
padding: 20,
backgroundColor: "#fff",
},
headerTitle: {
fontSize: fontSize(18),
fontWeight: "600",
},
placeholder: {
width: 24,
},
content: {
backgroundColor: "#fff",
borderBottomWidth: 10,
borderBottomColor: "#f8f8f8",
},
item: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
padding: 20,
borderBottomWidth: 1,
borderBottomColor: "#e0e0e0",
},
});