92 lines
2.4 KiB
TypeScript

import { StyleSheet, TouchableOpacity } from 'react-native';
import { useRouter } from 'expo-router';
import ParallaxScrollView from '@/components/default/ParallaxScrollView';
import { ThemedText, ThemedTextButton, ThemedView } from '@/components/theme';
import { IconSymbol } from '@/components/ui/IconSymbol';
import { Colors } from '@/constants/Colors';
import { useColorScheme } from '@/hooks/useColorScheme';
const SettingsScreen = () => {
const scheme = useColorScheme() ?? 'dark';
const router = useRouter();
return (
<ParallaxScrollView
headerImage={
<IconSymbol size={80} color='#808080' name='gear.circle' style={styles.headerImage} />
}
headerTitle={
<ThemedText type='title' style={styles.headerTitle}>
Settings
</ThemedText>
}
>
<ThemedView style={styles.section}>
<TouchableOpacity
style={[styles.settingItem, {backgroundColor: Colors[scheme].card}]}
onPress={() => router.push('/settings/profile')}
>
<IconSymbol name="person.fill" size={24} color="#007AFF" style={styles.icon} />
<ThemedView style={styles.settingContent}>
<ThemedText style={styles.settingTitle}>Profile Settings</ThemedText>
<ThemedText style={styles.settingSubtitle}>Update profile information or sign out.</ThemedText>
</ThemedView>
<IconSymbol name="chevron.right" size={20} color="#C7C7CC" />
</TouchableOpacity>
</ThemedView>
<ThemedView style={styles.section}>
</ThemedView>
</ParallaxScrollView>
);
};
export default SettingsScreen;
const styles = StyleSheet.create({
headerImage: {
color: '#808080',
bottom: 6,
left: 38,
position: 'absolute',
},
headerTitle: {
position: 'absolute',
bottom: 20,
left: 16,
right: 0,
textAlign: 'center',
fontSize: 48,
lineHeight: 64,
fontWeight: 'bold',
},
section: {
marginVertical: 8,
borderRadius: 10,
overflow: 'hidden',
},
settingItem: {
flexDirection: 'row',
alignItems: 'center',
padding: 16,
marginBottom: 1,
},
icon: {
marginRight: 16,
},
settingContent: {
backgroundColor: 'transparent',
flex: 1,
},
settingTitle: {
fontSize: 17,
fontWeight: '500',
},
settingSubtitle: {
fontSize: 14,
opacity: 0.6,
marginTop: 4,
},
});