Menu.jsx 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import * as WebBrowser from 'expo-web-browser';
  2. import * as React from 'react';
  3. import { StyleSheet } from 'react-native';
  4. import { Flex, WingBlank } from '@ant-design/react-native';
  5. import { Card } from 'react-native-paper';
  6. import { Icon, Text, Button, Div } from 'react-native-magnus';
  7. import useModel from 'flooks';
  8. import { useNavigation } from '@react-navigation/native';
  9. import HomeModel from './model';
  10. export default function RecommendStore() {
  11. const { categories, timeTag } = useModel(HomeModel);
  12. const navigation = useNavigation();
  13. const CardCom = ({ info }) => (
  14. <Div flex={1}>
  15. <Card
  16. elevation={0}
  17. style={styles.card}
  18. onPress={() =>
  19. navigation.navigate('HomeCategory', {
  20. categoryId: info.id,
  21. })
  22. }
  23. >
  24. <Card.Cover
  25. style={styles.image2}
  26. resizeMode="cover"
  27. source={{ uri: info.icon }}
  28. />
  29. <Card.Content style={styles.main2}>
  30. <Text fontSize="xs" textAlign="center">
  31. {info.name}
  32. </Text>
  33. </Card.Content>
  34. </Card>
  35. </Div>
  36. );
  37. return (
  38. <Div row px={15}>
  39. {categories.concat([timeTag]).map((item, index) => {
  40. return <CardCom key={index} info={item} />;
  41. })}
  42. </Div>
  43. );
  44. }
  45. const styles = StyleSheet.create({
  46. image2: {
  47. width: 47,
  48. height: 47,
  49. alignSelf: 'center',
  50. marginHorizontal: 10,
  51. borderRadius: 3,
  52. },
  53. main2: {
  54. marginTop: 7,
  55. paddingHorizontal: 0,
  56. },
  57. card: {
  58. marginVertical: 5,
  59. borderWidth: 0,
  60. elevation: 0,
  61. shadowOffset: {
  62. width: 0,
  63. height: 0,
  64. },
  65. shadowOpacity: 0,
  66. shadowRadius: 0,
  67. },
  68. });