HomeHeader.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import * as React from 'react';
  2. import { StatusBar } from 'expo-status-bar';
  3. import { Appbar, Menu } from 'react-native-paper';
  4. import { useBoolean } from '@umijs/hooks';
  5. import { Icon, Text, Button, Div } from 'react-native-magnus';
  6. import useModel from 'flooks';
  7. import { useNavigation } from '@react-navigation/native';
  8. import words from '../../../flooks/Words';
  9. import user from '../../../flooks/User';
  10. import HomeModel from './model';
  11. export default function Header() {
  12. const { state, setTrue, setFalse } = useBoolean(false);
  13. const { setlocal, TchangeToth, TchangeToChinese, local } = useModel(words);
  14. const { logout } = useModel(user, []);
  15. const { addressName, locationEvent } = useModel(HomeModel);
  16. const navigation = useNavigation();
  17. return (
  18. <>
  19. <StatusBar backgroundColor="transparent" style="dark" translucent />
  20. <Appbar.Header
  21. statusBarHeight={0}
  22. theme={{ colors: { primary: '#fff' } }}
  23. style={{
  24. elevation: 0,
  25. shadowOffset: {
  26. width: 0,
  27. height: 0,
  28. },
  29. shadowOpacity: 0,
  30. zIndex: 2,
  31. }}
  32. >
  33. <Button
  34. onPress={() => navigation.navigate('HomeAddress')}
  35. block
  36. bg="hiden"
  37. p={0}
  38. flex={1}
  39. >
  40. <Div flex={1} row>
  41. <Icon
  42. name="navigation"
  43. color="brand500"
  44. fontFamily="Feather"
  45. ml={15}
  46. />
  47. <Text
  48. numberOfLines={2}
  49. ellipsizeMode="tail"
  50. fontSize="xl"
  51. ml={5}
  52. fontWeight="bold"
  53. flex={1}
  54. >
  55. {locationEvent.loading ? '加载中...' : addressName}
  56. </Text>
  57. </Div>
  58. </Button>
  59. <Menu
  60. visible={state}
  61. onDismiss={setFalse}
  62. anchor={<Appbar.Action icon="dots-vertical" onPress={setTrue} />}
  63. >
  64. <Menu.Item
  65. onPress={() => {
  66. setFalse();
  67. navigation.navigate('MapScreen');
  68. }}
  69. title="地图选点测试"
  70. />
  71. <Menu.Item onPress={logout} title="退出登录" />
  72. <Menu.Item
  73. onPress={() => {
  74. setlocal();
  75. }}
  76. title={local ? TchangeToChinese : TchangeToth}
  77. />
  78. <Menu.Item onPress={() => {}} title="版本06.28.1" />
  79. </Menu>
  80. </Appbar.Header>
  81. </>
  82. );
  83. }