import { NativeStackScreenProps } from '@react-navigation/native-stack' import React, { useState } from 'react' import { useTranslation } from 'react-i18next' import { LayoutChangeEvent, StyleSheet, Text, View } from 'react-native' import Animated, { useAnimatedScrollHandler, useSharedValue } from 'react-native-reanimated' import { SafeAreaView } from 'react-native-safe-area-context' import { DappFeaturedActions } from 'src/dappsExplorer/DappFeaturedActions' import DiscoverDappsCard from 'src/dappsExplorer/DiscoverDappsCard' import EarnEntrypoint from 'src/earn/EarnEntrypoint' import { Screens } from 'src/navigator/Screens' import useScrollAwareHeader from 'src/navigator/ScrollAwareHeader' import { StackParamList } from 'src/navigator/types' import PointsDiscoverCard from 'src/points/PointsDiscoverCard' import { typeScale } from 'src/styles/fonts' import { Spacing } from 'src/styles/styles' type Props = NativeStackScreenProps function TabDiscover({ navigation }: Props) { const { t } = useTranslation() const scrollPosition = useSharedValue(0) const [titleHeight, setTitleHeight] = useState(0) const handleMeasureTitleHeight = (event: LayoutChangeEvent) => { setTitleHeight(event.nativeEvent.layout.height) } const handleScroll = useAnimatedScrollHandler((event) => { scrollPosition.value = event.contentOffset.y }) useScrollAwareHeader({ navigation, title: t('bottomTabsNavigator.discover.title'), scrollPosition, startFadeInPosition: titleHeight * 0.67, animationDistance: titleHeight * 0.33, }) return ( {t('bottomTabsNavigator.discover.title')} ) } const styles = StyleSheet.create({ safeAreaContainer: { flex: 1, }, contentContainer: { paddingHorizontal: Spacing.Thick24, paddingBottom: Spacing.Thick24, }, title: { ...typeScale.titleMedium, paddingVertical: Spacing.Thick24, }, }) export default TabDiscover