CollectionScreen.jsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import * as WebBrowser from 'expo-web-browser';
  2. import * as React from 'react';
  3. import { Div, Button, Image, Text, Avatar } from 'react-native-magnus';
  4. import { ScrollView } from 'react-native-gesture-handler';
  5. import { useRequest } from '@umijs/hooks';
  6. import useModel from 'flooks';
  7. import User from '../../flooks/User'; // detail模块通用方法
  8. import Header from '../../components/Header';
  9. import MerchantCom from '../Main/Home/MerchantCom';
  10. export default function CollectionScreen() {
  11. const { id } = useModel(User, ['id']);
  12. const [Collection, setCollection] = React.useState([]);
  13. const CollectionRequest = useRequest(
  14. () => {
  15. const params = {
  16. query: {
  17. userId: id,
  18. page: 0,
  19. size: 100,
  20. },
  21. };
  22. const urls = Object.keys(params).map((item) => {
  23. return `${item}=${encodeURI(JSON.stringify(params[item]))}`;
  24. });
  25. return `/myCollection/all?${urls.join('&')}`;
  26. },
  27. {
  28. refreshDeps: [id],
  29. onSuccess: (result) => {
  30. setCollection(result.content || []);
  31. },
  32. }
  33. );
  34. return (
  35. <>
  36. <Header title="我的收藏" />
  37. <ScrollView
  38. contentContainerStyle={{ backgroundColor: '#fff', flexGrow: 1 }}
  39. >
  40. {Collection.length === 0 && (
  41. <Div p={10}>
  42. <Text color="gray300" textAlign="center">
  43. 暂无数据
  44. </Text>
  45. </Div>
  46. )}
  47. {Collection.map((item) => {
  48. return (
  49. <MerchantCom
  50. key={item.id}
  51. id={item.id}
  52. isCollection
  53. info={item.merchant}
  54. />
  55. );
  56. })}
  57. </ScrollView>
  58. </>
  59. );
  60. }