mobile-tabungan/app/(tabs)/profile.tsx

137 lines
3.0 KiB
TypeScript
Raw Normal View History

2026-04-18 15:46:38 +07:00
import { View, Text, StyleSheet, TouchableOpacity } from "react-native";
import { Ionicons } from "@expo/vector-icons";
export default function ProfileScreen() {
return (
<View style={styles.container}>
{/* Header */}
<Text style={styles.title}>Profile</Text>
<Text style={styles.subtitle}>Informasi pengguna aplikasi</Text>
{/* Profile Card */}
<View style={styles.profileCard}>
<View style={styles.avatar}>
<Ionicons name="person" size={40} color="#FFFFFF" />
</View>
<Text style={styles.name}>Fahrul</Text>
<Text style={styles.email}>fahrul@email.com</Text>
</View>
{/* Info Card */}
<View style={styles.infoCard}>
<View style={styles.infoRow}>
<Ionicons name="wallet-outline" size={22} color="#2563EB" />
<Text style={styles.infoText}>Aplikasi: Hitung Duit</Text>
</View>
<View style={styles.infoRow}>
<Ionicons name="phone-portrait-outline" size={22} color="#2563EB" />
<Text style={styles.infoText}>Versi: 1.0.0</Text>
</View>
<View style={styles.infoRow}>
<Ionicons name="school-outline" size={22} color="#2563EB" />
<Text style={styles.infoText}>Project Tugas Mobile Programming</Text>
</View>
</View>
{/* Logout Button */}
<TouchableOpacity style={styles.logoutButton}>
<Ionicons name="log-out-outline" size={20} color="#FFFFFF" />
<Text style={styles.logoutText}>Logout</Text>
</TouchableOpacity>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#F5F7FA",
padding: 24,
paddingTop: 60,
},
title: {
fontSize: 30,
fontWeight: "bold",
marginBottom: 6,
},
subtitle: {
fontSize: 15,
color: "#666",
marginBottom: 28,
},
profileCard: {
backgroundColor: "#2563EB",
borderRadius: 20,
padding: 28,
alignItems: "center",
marginBottom: 24,
},
avatar: {
width: 80,
height: 80,
borderRadius: 40,
backgroundColor: "rgba(255,255,255,0.25)",
justifyContent: "center",
alignItems: "center",
marginBottom: 16,
},
name: {
fontSize: 24,
fontWeight: "bold",
color: "#FFFFFF",
marginBottom: 6,
},
email: {
fontSize: 14,
color: "#DBEAFE",
},
infoCard: {
backgroundColor: "#FFFFFF",
borderRadius: 18,
padding: 20,
marginBottom: 28,
shadowColor: "#000",
shadowOpacity: 0.05,
shadowRadius: 6,
elevation: 3,
},
infoRow: {
flexDirection: "row",
alignItems: "center",
gap: 12,
marginBottom: 18,
},
infoText: {
fontSize: 15,
color: "#333",
flex: 1,
},
logoutButton: {
backgroundColor: "#DC2626",
paddingVertical: 16,
borderRadius: 14,
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
gap: 10,
},
logoutText: {
color: "#FFFFFF",
fontSize: 16,
fontWeight: "600",
},
});