Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

index.tsx 1.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import { useFetchUserInfo, useSelectUserInfo } from '@/hooks/userSettingHook';
  2. import authorizationUtil from '@/utils/authorizationUtil';
  3. import type { MenuProps } from 'antd';
  4. import { Avatar, Button, Dropdown } from 'antd';
  5. import React, { useMemo } from 'react';
  6. import { useTranslation } from 'react-i18next';
  7. import { history } from 'umi';
  8. const App: React.FC = () => {
  9. const { t } = useTranslation();
  10. const userInfo = useSelectUserInfo();
  11. const logout = () => {
  12. authorizationUtil.removeAll();
  13. history.push('/login');
  14. };
  15. const toSetting = () => {
  16. history.push('/setting');
  17. };
  18. const items: MenuProps['items'] = useMemo(() => {
  19. return [
  20. {
  21. key: '1',
  22. label: (
  23. <Button type="text" onClick={logout}>
  24. {t('header.logout')}
  25. </Button>
  26. ),
  27. },
  28. {
  29. key: '2',
  30. label: (
  31. <Button type="text" onClick={toSetting}>
  32. {t('header.setting')}
  33. </Button>
  34. ),
  35. },
  36. ];
  37. }, [t]);
  38. useFetchUserInfo();
  39. return (
  40. <Dropdown menu={{ items }} placement="bottomLeft" arrow>
  41. <Avatar
  42. size={32}
  43. src={
  44. userInfo.avatar ??
  45. 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png'
  46. }
  47. />
  48. </Dropdown>
  49. );
  50. };
  51. export default App;