import React from 'react';
import { View, Text, StyleSheet, ScrollView, Platform, useWindowDimensions } from 'react-native';
import { router } from 'expo-router';
import Animated, { FadeInDown, FadeInUp } from 'react-native-reanimated';
import { COLORS, SPACING, TYPOGRAPHY, BORDER_RADIUS, SHADOWS } from '../constants/theme';
import { useLanguage } from '../stores/LanguageContext';
import { Scissors, Calendar, Layout, Smartphone, MessageCircle, Palette, CreditCard, Lock } from 'lucide-react-native';
import { Button } from '../components/ui/Button';
import { Card } from '../components/ui/Card';
import { SafeAreaView } from 'react-native-safe-area-context';
export default function LandingPage() {
const { t } = useLanguage();
const { width } = useWindowDimensions();
const isMobile = width < 768;
const handleViewDemo = () => {
router.push('/vintage-barber');
};
const handleAdmin = () => {
router.push('/admin/login');
};
const features = [
{
icon: ,
title: t('landing.feature1.title'),
desc: t('landing.feature1.desc')
},
{
icon: ,
title: t('landing.feature2.title'),
desc: t('landing.feature2.desc')
},
{
icon: ,
title: t('landing.feature3.title'),
desc: t('landing.feature3.desc')
},
{
icon: ,
title: t('landing.feature4.title'),
desc: t('landing.feature4.desc')
},
{
icon: ,
title: t('landing.feature5.title'),
desc: t('landing.feature5.desc')
},
{
icon: ,
title: t('landing.feature6.title'),
desc: t('landing.feature6.desc')
}
];
return (
{/* Hero Section */}
BarberFlow Pro
{t('landing.subtitle')}
{/* Features */}
{t('landing.why') || "Tudo que sua barbearia precisa"}
{features.map((item, index) => (
{item.icon}
{item.title}
{item.desc}
))}
{/* Footer */}
{t('landing.footer')}
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: COLORS.background,
},
scrollContent: {
flexGrow: 1,
paddingBottom: 100,
},
hero: {
paddingHorizontal: SPACING.xl,
paddingTop: 80,
paddingBottom: SPACING.xxxl,
alignItems: 'center',
backgroundColor: COLORS.surface,
borderBottomLeftRadius: BORDER_RADIUS.xl * 2,
borderBottomRightRadius: BORDER_RADIUS.xl * 2,
...(SHADOWS.large as any),
},
heroMobile: {
paddingTop: SPACING.xxl,
},
heroLogo: {
width: 80,
height: 80,
borderRadius: 40,
backgroundColor: COLORS.primary,
alignItems: 'center',
justifyContent: 'center',
marginBottom: SPACING.lg,
...(SHADOWS.glow(COLORS.primary) as any),
},
heroTitle: {
...TYPOGRAPHY.h1,
color: COLORS.text,
marginBottom: SPACING.md,
textAlign: 'center',
fontSize: 48,
},
heroTitleMobile: {
fontSize: 32,
},
highlight: {
color: COLORS.primary,
},
heroSubtitle: {
...TYPOGRAPHY.bodyLarge,
color: COLORS.textMuted,
textAlign: 'center',
marginBottom: SPACING.xl,
maxWidth: 600,
},
heroSubtitleMobile: {
paddingHorizontal: SPACING.sm,
},
buttonContainer: {
width: '100%',
maxWidth: 400,
gap: SPACING.md,
paddingHorizontal: SPACING.md,
},
ctaButton: {
width: '100%',
},
section: {
padding: SPACING.lg,
paddingHorizontal: 16, // px-4
paddingTop: SPACING.xxxl,
alignItems: 'center',
},
sectionTitle: {
...TYPOGRAPHY.h2,
color: COLORS.text,
marginBottom: SPACING.xxl,
textAlign: 'center',
fontSize: 32,
},
sectionTitleMobile: {
fontSize: 24,
},
grid: {
width: '100%',
maxWidth: 1000,
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'center',
gap: SPACING.lg,
},
gridMobile: {
flexDirection: 'column', // flex-col para mobile
alignItems: 'center',
},
featureCard: {
width: '30%',
minWidth: 280,
padding: SPACING.xl,
alignItems: 'flex-start',
},
featureCardMobile: {
width: '100%', // w-full
minWidth: '100%', // overwrite minWidth on mobile
alignItems: 'center', // centralizar os itens (ícone, título, etc) no mobile
},
textCenter: {
textAlign: 'center',
},
iconBox: {
width: 56,
height: 56,
borderRadius: BORDER_RADIUS.md,
backgroundColor: `${COLORS.primary}15`,
alignItems: 'center',
justifyContent: 'center',
marginBottom: SPACING.lg,
},
featureTitle: {
...TYPOGRAPHY.h3,
color: COLORS.text,
marginBottom: SPACING.sm,
fontSize: 20,
},
featureDescription: {
...TYPOGRAPHY.body,
color: COLORS.textMuted,
fontSize: 16,
},
footer: {
padding: SPACING.xl,
alignItems: 'center',
marginTop: 'auto',
},
footerText: {
...TYPOGRAPHY.caption,
color: COLORS.textMuted,
textAlign: 'center',
},
});