HomeScreen.jsx 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import * as WebBrowser from 'expo-web-browser';
  2. import * as React from 'react';
  3. import { StyleSheet, View } from 'react-native';
  4. import { ScrollView } from 'react-native-gesture-handler';
  5. import { WingBlank, Flex } from '@ant-design/react-native';
  6. import { FAB } from 'react-native-paper';
  7. import useModel from 'flooks';
  8. import { useMount, useToggle } from '@umijs/hooks';
  9. import Button from '../../components/Button';
  10. import Header from '../../components/HomeHeader';
  11. import Text from '../../components/Text';
  12. import Banner from './Home/Banner';
  13. import MenuCom from './Home/Menu';
  14. import List from './Home/List';
  15. import RecommendStore from './Home/RecommendStore';
  16. import SpecialArea from './Home/SpecialArea';
  17. import HomeModel from './Home/model';
  18. import Icon from '../../components/SvgIcon';
  19. export default function HomeScreen() {
  20. const { initHome } = useModel(HomeModel, []);
  21. useMount(() => {
  22. initHome();
  23. });
  24. return (
  25. <>
  26. <ScrollView style={styles.container}>
  27. <Header />
  28. <WingBlank>
  29. <Button block size="small" type="info" onPress={() => {}}>
  30. 搜索
  31. </Button>
  32. </WingBlank>
  33. <View style={styles.main}>
  34. <Banner />
  35. <MenuCom />
  36. <SpecialArea />
  37. <RecommendStore />
  38. </View>
  39. <List />
  40. </ScrollView>
  41. <FAB
  42. style={styles.fab}
  43. icon={({ size }) => (
  44. <Icon width={size} height={size} name="cart" type="info" />
  45. )}
  46. color="#fff"
  47. onPress={() => console.log('Pressed')}
  48. />
  49. </>
  50. );
  51. }
  52. HomeScreen.navigationOptions = {
  53. header: null,
  54. };
  55. const styles = StyleSheet.create({
  56. container: {
  57. flexGrow: 1,
  58. backgroundColor: '#fff',
  59. },
  60. contentStyle: {
  61. height: 20,
  62. },
  63. text: {
  64. fontSize: 10,
  65. color: '#AAAAAA',
  66. },
  67. main: {
  68. flex: 1,
  69. paddingTop: 10,
  70. width: '100%',
  71. },
  72. fab: {
  73. position: 'absolute',
  74. margin: 16,
  75. right: 0,
  76. bottom: 0,
  77. backgroundColor: '#fff',
  78. },
  79. });