SettingScreen.jsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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 { useTranslation } from 'react-i18next';
  8. import useModel from 'flooks';
  9. import User from '../../flooks/User'; // detail模块通用方法
  10. import Header from '../../components/Header';
  11. import ImagePicker from '../../components/ImagePicker';
  12. import { prompt } from '../../Utils/TotastUtils';
  13. export default function LinksScreen() {
  14. const { t } = useTranslation();
  15. const { userInfo, uploadInfo, logout } = useModel(User, ['userInfo']);
  16. const { avatar, nickname } = userInfo || {
  17. nickname: t('wei-deng-lu'),
  18. avatar: '',
  19. };
  20. return (
  21. <>
  22. <Header title={t('ge-ren-zi-liao')} />
  23. <ScrollView>
  24. <Div row bg="white" rounded="none" p={9} alignItems="center" my={5}>
  25. <Text flex={1}>{t('tou-xiang')}:</Text>
  26. <ImagePicker
  27. img={avatar}
  28. h={33}
  29. w={33}
  30. setImg={(img) => uploadInfo({ avatar: img })}
  31. />
  32. <Icon name="angle-right" color="#000" />
  33. </Div>
  34. <TouchableRipple
  35. onPress={() => {
  36. prompt(t('ni-cheng'), t('qing-shu-ru-ni-cheng'), nickname, (val) =>
  37. uploadInfo({ nickname: val })
  38. );
  39. }}
  40. >
  41. <Div
  42. row
  43. bg="white"
  44. rounded="none"
  45. p={9}
  46. alignItems="center"
  47. my={5}
  48. minH={51}
  49. >
  50. <Text flex={1}>{t('ni-cheng')}:</Text>
  51. <Text mr={5}>{nickname}</Text>
  52. <Icon name="angle-right" color="#000" />
  53. </Div>
  54. </TouchableRipple>
  55. {/* <Button block bg="brand500" m={10} onPress={logout}>
  56. 退出登录
  57. </Button> */}
  58. </ScrollView>
  59. </>
  60. );
  61. }