import { useRouter } from 'expo-router' import { useState, useEffect, useMemo } from 'react' import { ImageSourcePropType, Linking, Image, Dimensions, StyleSheet } from 'react-native' import { KeyboardAwareScrollView, LandingHeader } from '@/components' import { BACA_DOCS_URL } from '@/constants' import { Button, Center, Text, Box } from '@/design-system' import { useCallback, useScreenOptions, useTranslation } from '@/hooks' import { draftImages } from '~/assets/drafts/images' export const LandingScreen = () => { const { t } = useTranslation() const [screenWidth, setScreenWidth] = useState(Dimensions.get('window').width) const { push } = useRouter() const navigateToLogin = useCallback(() => push('/sign-in'), [push]) const navigateToDocs = useCallback(() => Linking.openURL(BACA_DOCS_URL), []) useEffect(() => { const onChange = ({ window }: { window: { width: number } }) => setScreenWidth(window.width) const subscription = Dimensions.addEventListener('change', onChange) return () => subscription?.remove() }, []) const imageWidth = useMemo(() => { if (screenWidth >= 1100) { return '25%' } else if (screenWidth >= 767) { return '50%' } else { return '100%' } }, [screenWidth]) const paddingBetweenImages = useMemo(() => { if (screenWidth >= 1100) { return 2 } else if (screenWidth >= 767) { return 8 } else if (screenWidth <= 400) { return 4 } else { return 16 } }, [screenWidth]) const renderItem = (item: ImageSourcePropType, index: number) => ( ) useScreenOptions({ title: t('navigation.screen_titles.home'), }) return (
{t('home_screen.header_title')} {t('home_screen.header_subtitle')} {t('home_screen.try_it')} {draftImages.map(renderItem)}
) } const styles = StyleSheet.create({ imageSize: { borderRadius: 16, height: '100%', width: '100%', }, })