SettingScreen.jsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import * as WebBrowser from 'expo-web-browser';
  2. import * as React from 'react';
  3. import { Div, Button, Text } from 'react-native-magnus';
  4. import { TouchableRipple } from 'react-native-paper';
  5. import { ScrollView } from 'react-native-gesture-handler';
  6. import Icon from 'react-native-vector-icons/FontAwesome';
  7. import useModel from 'flooks';
  8. import User from '../../flooks/User'; // detail模块通用方法
  9. import Header from '../../components/Header';
  10. import ImagePicker from '../../components/ImagePicker';
  11. import { prompt } from '../../Utils/TotastUtils';
  12. export default function LinksScreen() {
  13. const { userInfo, uploadInfo, logout } = useModel(User, ['userInfo']);
  14. const { avatar, nickname } = userInfo || {
  15. nickname: '未登录',
  16. avatar: '',
  17. };
  18. return (
  19. <>
  20. <Header title="个人资料" />
  21. <ScrollView>
  22. <Div row bg="white" rounded="none" p={9} alignItems="center" my={5}>
  23. <Text flex={1}>头像:</Text>
  24. <ImagePicker
  25. img={avatar}
  26. h={33}
  27. w={33}
  28. setImg={(img) => uploadInfo({ avatar: img })}
  29. />
  30. <Icon name="angle-right" color="#000" />
  31. </Div>
  32. <TouchableRipple
  33. onPress={() => {
  34. prompt('昵称', '请输入昵称', nickname, (val) =>
  35. uploadInfo({ nickname: val })
  36. );
  37. }}
  38. >
  39. <Div
  40. row
  41. bg="white"
  42. rounded="none"
  43. p={9}
  44. alignItems="center"
  45. my={5}
  46. minH={51}
  47. >
  48. <Text flex={1}>昵称:</Text>
  49. <Text mr={5}>{nickname}</Text>
  50. <Icon name="angle-right" color="#000" />
  51. </Div>
  52. </TouchableRipple>
  53. {/* <Button block bg="brand500" m={10} onPress={logout}>
  54. 退出登录
  55. </Button> */}
  56. </ScrollView>
  57. </>
  58. );
  59. }