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.

140 lines
4.0 KiB

1 month ago
import { View, Text, StyleSheet, TouchableOpacity } 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";
export const SettingList = () => {
const [mySetting, setMySetting] = useState<MySetting>();
const getMySetting = async () => {
const res = await settingApi.getMySetting()
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 (
<View style={styles.container}>
<TouchableOpacity
onPress={() => navigation.goBack()}
style={styles.header}
>
<BackIcon size={fontSize(24)} />
</TouchableOpacity>
<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}>
1 month ago
<TouchableOpacity
onPress={() => {
if (mySetting?.language && mySetting?.currency) {
navigation.navigate("MyAddress");
}
}}
style={styles.item}
>
<Text></Text>
<Text>
<LeftArrowIcon size={fontSize(20)} color="#acacac" />
</Text>
</TouchableOpacity>
1 month ago
<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>
<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>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#f8f8f8",
},
header: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
padding: 20,
},
content: {
backgroundColor: "#fff",
borderBottomWidth: 10,
borderBottomColor: "#f8f8f8",
},
item: {
flexDirection: "row",
alignItems: "center",
justifyContent: "space-between",
padding: 20,
borderBottomWidth: 1,
borderBottomColor: "#e0e0e0",
},
});