import React from "react";
import {
View,
Text,
StyleSheet,
Dimensions,
StatusBar,
Platform,
} from "react-native";
import { LinearGradient } from "expo-linear-gradient";
import { Ionicons } from "@expo/vector-icons";
import { Button } from "../../components/ui/Button";
import { useAuth } from "../../context/AuthContext";
import { colors, spacing, typography, borderRadius } from "../../theme";
const { width, height } = Dimensions.get("window");
export function LoginScreen() {
const { signInWithGoogle, continueWithDevMode, loading, configError } =
useAuth();
return (
{/* Decorative Blur Circles */}
U
CityTracker
City Issue Reporter
Building a Better City,{"\n"}
Together.
}
/>
v1.2.0 • CityTracker Public Beta
);
}
const FeatureItem = ({ icon, color, title, desc }: any) => (
{title}
{desc}
);
const styles = StyleSheet.create({
container: {
flex: 1,
},
decorCircle: {
position: "absolute",
},
content: {
flex: 1,
paddingHorizontal: spacing.xl,
paddingTop: 80, // Increased top padding
},
headerSection: {
marginBottom: spacing.xxl,
},
logoContainer: {
flexDirection: "row",
alignItems: "center",
marginBottom: spacing.xl,
gap: spacing.md,
},
logoBadge: {
width: 48,
height: 48,
borderRadius: 14,
alignItems: "center",
justifyContent: "center",
shadowColor: colors.primary.main,
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.3,
shadowRadius: 8,
elevation: 6,
},
logoText: {
fontSize: 28,
fontWeight: "900",
color: "#FFF",
fontFamily: Platform.OS === "ios" ? "System" : "Roboto",
},
brandTitle: {
fontSize: 24,
fontWeight: "800",
color: colors.text.primary,
lineHeight: 28,
letterSpacing: -0.5,
},
brandSubtitle: {
fontSize: 13,
color: colors.text.secondary,
fontWeight: "500",
},
heroText: {
fontSize: 34,
fontWeight: "800",
color: colors.text.primary,
lineHeight: 40,
letterSpacing: -1,
},
features: {
gap: spacing.lg,
},
feature: {
flexDirection: "row",
alignItems: "center",
marginBottom: spacing.md,
},
featureIcon: {
width: 44,
height: 44,
borderRadius: 12,
alignItems: "center",
justifyContent: "center",
},
featureText: {
marginLeft: spacing.md,
flex: 1,
},
featureTitle: {
fontSize: 16,
fontWeight: "700",
color: colors.text.primary,
marginBottom: 2,
},
featureDesc: {
fontSize: 13,
color: colors.text.secondary,
lineHeight: 18,
},
footer: {
paddingHorizontal: spacing.xl,
paddingBottom: spacing.xxl,
paddingTop: spacing.xl,
},
googleButton: {
shadowColor: colors.primary.main,
shadowOffset: { width: 0, height: 4 },
shadowOpacity: 0.2,
shadowRadius: 12,
elevation: 4,
},
versionText: {
fontSize: 11,
color: colors.text.tertiary,
textAlign: "center",
marginTop: spacing.xl,
},
});