import * as WebBrowser from 'expo-web-browser'; import * as React from 'react'; import { ImageBackground, StyleSheet, Animated, Dimensions, View, } from 'react-native'; import { Flex } from '@ant-design/react-native'; import { ScrollView } from 'react-native-gesture-handler'; import { Div, Text, Button } from 'react-native-magnus'; import Constants from 'expo-constants'; import { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'; import { useRoute } from '@react-navigation/native'; import { useDebounceFn } from '@umijs/hooks'; // import { useAnimation } from 'react-native-animation-hooks'; import useModel from 'flooks'; import Detail from './model'; // detail模块通用方法 // import Text from '../../components/Text'; // import Button from '../../components/Button'; import Header from './Header'; import Center from './Center'; import Order from './Order'; import Cart from './Cart'; // order 页面的选购 import Comment from './Comment'; // order 页面的选购 import Merchant from './Merchant'; // order 页面的选购 import SelectSpecification from './SelectSpecification'; // order 页面的选购 const Tab = createMaterialTopTabNavigator(); export default function MerchantDetail({ navigation }) { const route = useRoute(); const { params } = route; const { init, merchantInfo, setHeaderColor } = useModel(Detail, ['id']); const [tabTop, settabTop] = React.useState(0); const [screenName, setscreenName] = React.useState('Order'); const { banner } = merchantInfo; const scorellRef = React.createRef(); const { run } = useDebounceFn(() => { scorellRef.current.scrollTo({ x: 0, y: tabTop, animated: true, }); }, 1200); React.useEffect(() => { if (params.merchantId) { init(params.merchantId); } if (params.screen) { setscreenName(params.screen); } else { setscreenName('Order'); } }, [params]); return ( <>
{ const { contentOffset } = nativeEvent; const topHeight = 118 + Constants.statusBarHeight; if (contentOffset.y >= 5 && contentOffset.y <= topHeight) { const op = (contentOffset.y / topHeight).toFixed(1); setHeaderColor(`rgba(255, 194, 28, ${Number(op)})`); } else if (contentOffset.y < 5) { setHeaderColor(''); } }} scrollEventThrottle={16} >
{ settabTop(e.nativeEvent.layout.height); }} zIndex={12} >
); } const styles = StyleSheet.create({});