import React, { useState } from 'react'; import { View, Text, ScrollView, Switch, TextInput, StyleSheet } from 'react-native'; import { useSafeAreaInsets } from 'react-native-safe-area-context'; import { LinearGradient } from 'expo-linear-gradient'; import { ChevronRight, Lock, Check, X } from 'lucide-react-native'; import { Colors, Fonts, FontSize, BorderRadius, Spacing } from '@/constants/theme'; import SegmentedControl from '@/components/SegmentedControl'; import AnimatedCard from '@/components/AnimatedCard'; import PressableScale from '@/components/PressableScale'; export default function SettingsScreen() { const insets = useSafeAreaInsets(); const [executionMode, setExecutionMode] = useState(1); const [riskPercent, setRiskPercent] = useState(1); const [maxOpenTrades, setMaxOpenTrades] = useState(3); const [notifications, setNotifications] = useState({ priceAlerts: true, tradeExecuted: true, stopLoss: true, dailySummary: false, }); const [oledBlack, setOledBlack] = useState(false); const modeColors = [Colors.text.secondary, Colors.accent.blue, Colors.accent.orange]; return ( CONFIGURATION Settings ACCOUNT SK Saravana Kumar saravana@bytelyst.ai ELITE EXECUTION MODE {executionMode === 2 && ( Real money trading enabled. Use caution. )} RISK CONFIGURATION {riskPercent.toFixed(1)}% setMaxOpenTrades(Math.max(1, maxOpenTrades - 1))} > - {maxOpenTrades} setMaxOpenTrades(Math.min(10, maxOpenTrades + 1))} > + $25,000 BROKER CONNECTION Alpaca Connected API Key: ••••••••k3xR NOTIFICATIONS setNotifications(n => ({ ...n, priceAlerts: v }))} /> setNotifications(n => ({ ...n, tradeExecuted: v }))} /> setNotifications(n => ({ ...n, stopLoss: v }))} /> setNotifications(n => ({ ...n, dailySummary: v }))} /> APPEARANCE Dark Mode ABOUT Version v2.3 Terms of Service Support ); } function SettingRow({ label, children }: { label: string; children: React.ReactNode }) { return ( {label} {children} ); } function ToggleRow({ label, value, onChange }: { label: string; value: boolean; onChange: (v: boolean) => void }) { return ( {label} ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: Colors.background.primary, }, headerSection: { padding: Spacing.screenPadding, paddingBottom: 0, }, sectionLabel: { fontFamily: Fonts.inter.black, fontSize: FontSize.micro, color: Colors.accent.green, letterSpacing: 4, marginBottom: 8, }, pageTitle: { fontFamily: Fonts.inter.black, fontSize: FontSize.hero, color: Colors.text.primary, letterSpacing: -0.5, marginBottom: 16, }, scroll: { flex: 1, }, content: { padding: Spacing.screenPadding, gap: 16, paddingBottom: 120, }, section: { backgroundColor: Colors.background.card, borderRadius: BorderRadius.large, padding: Spacing.cardPadding, borderWidth: 1, borderColor: Colors.border.default, gap: 14, }, sectionHeader: { fontFamily: Fonts.inter.black, fontSize: FontSize.micro, color: Colors.text.secondary, letterSpacing: 3, }, accountRow: { flexDirection: 'row', alignItems: 'center', gap: 14, }, avatar: { width: 48, height: 48, borderRadius: 24, alignItems: 'center', justifyContent: 'center', }, avatarText: { fontFamily: Fonts.inter.black, fontSize: FontSize.subheading, color: '#000', }, accountInfo: { flex: 1, }, accountName: { fontFamily: Fonts.inter.extraBold, fontSize: FontSize.subheading, color: Colors.text.primary, }, accountEmail: { fontFamily: Fonts.inter.medium, fontSize: FontSize.body, color: Colors.text.secondary, }, tierBadge: { backgroundColor: 'rgba(0,255,136,0.1)', borderWidth: 1, borderColor: 'rgba(0,255,136,0.2)', paddingHorizontal: 10, paddingVertical: 4, borderRadius: 6, }, tierText: { fontFamily: Fonts.inter.black, fontSize: FontSize.micro, color: Colors.accent.green, letterSpacing: 1, }, warningBanner: { backgroundColor: 'rgba(230,126,34,0.1)', borderWidth: 1, borderColor: 'rgba(230,126,34,0.2)', borderRadius: BorderRadius.xs, padding: 12, marginTop: 4, }, warningText: { fontFamily: Fonts.inter.semiBold, fontSize: FontSize.bodySmall, color: Colors.accent.orange, }, settingRow: { gap: 10, }, settingLabel: { fontFamily: Fonts.inter.semiBold, fontSize: FontSize.body, color: Colors.text.primary, }, sliderRow: { flexDirection: 'row', alignItems: 'center', gap: 12, }, sliderTrack: { flex: 1, height: 6, borderRadius: 3, backgroundColor: Colors.background.elevated, overflow: 'hidden', }, sliderFill: { height: 6, borderRadius: 3, backgroundColor: Colors.accent.green, }, sliderValue: { fontFamily: Fonts.mono.bold, fontSize: FontSize.bodyLarge, color: Colors.accent.green, minWidth: 40, textAlign: 'right', }, stepperRow: { flexDirection: 'row', alignItems: 'center', gap: 16, }, stepperBtn: { width: 36, height: 36, borderRadius: 10, backgroundColor: Colors.background.elevated, alignItems: 'center', justifyContent: 'center', borderWidth: 1, borderColor: Colors.border.subtle, }, stepperBtnText: { fontFamily: Fonts.inter.bold, fontSize: FontSize.heading, color: Colors.text.primary, }, stepperValue: { fontFamily: Fonts.mono.bold, fontSize: FontSize.heading, color: Colors.text.primary, minWidth: 30, textAlign: 'center', }, capitalValue: { fontFamily: Fonts.mono.bold, fontSize: FontSize.subheading, color: Colors.text.primary, }, brokerRow: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', }, brokerName: { fontFamily: Fonts.inter.bold, fontSize: FontSize.bodyLarge, color: Colors.text.primary, }, connectedBadge: { flexDirection: 'row', alignItems: 'center', gap: 6, }, connectedText: { fontFamily: Fonts.inter.semiBold, fontSize: FontSize.bodySmall, color: Colors.accent.green, }, apiKeyHint: { fontFamily: Fonts.mono.regular, fontSize: FontSize.bodySmall, color: Colors.text.muted, }, toggleRow: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', }, toggleLabel: { flexDirection: 'row', alignItems: 'center', gap: 8, }, toggleText: { fontFamily: Fonts.inter.semiBold, fontSize: FontSize.body, color: Colors.text.primary, }, aboutRow: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', }, aboutLabel: { fontFamily: Fonts.inter.medium, fontSize: FontSize.body, color: Colors.text.secondary, }, aboutValue: { fontFamily: Fonts.mono.medium, fontSize: FontSize.body, color: Colors.text.primary, }, linkRow: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', paddingVertical: 4, }, linkText: { fontFamily: Fonts.inter.semiBold, fontSize: FontSize.body, color: Colors.text.primary, }, });