friend.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import TabBar from "@/components/navigation/TabBar";
  2. import { rpxToPx } from "@/utils/tools";
  3. import { View, Text, Image, ScrollView, Button } from "@tarojs/components";
  4. import Taro, { useRouter, useShareAppMessage } from "@tarojs/taro";
  5. import { useDispatch, useSelector } from "react-redux";
  6. import { useEffect, useState } from "react";
  7. import { followUser, getFriendDashBoard, getFriendMoments, getMyFriends, getUserHome } from "@/services/friend";
  8. import FriendGuide from "./guide";
  9. import EmptyContent from "./empty_content";
  10. import MomentItem from "./moment_item";
  11. import { useTranslation } from "react-i18next";
  12. import { windows } from "@/services/health";
  13. import { setFastWithSleep, setFinishSetup, setLongFast, setRefreshs, setWindows } from "@/store/health";
  14. import { getInfoSuccess } from "@/store/user";
  15. import FriendMain from "./friend_main";
  16. export default function Friend() {
  17. const dispatch = useDispatch();
  18. const user = useSelector((state: any) => state.user);
  19. const [loaded, setLoaded] = useState(false)
  20. useEffect(() => {
  21. if (process.env.TARO_ENV == 'weapp') {
  22. loadWXCache()
  23. }
  24. else {
  25. loadRNCache()
  26. }
  27. }, [])
  28. useEffect(() => {
  29. getWindows()
  30. }, [user.isLogin])
  31. function getWindows() {
  32. windows().then(res => {
  33. dispatch(setFastWithSleep((res as any).fast_with_sleep))
  34. dispatch(setWindows((res as any).windows))
  35. dispatch(setLongFast((res as any).long_fast))
  36. dispatch(setRefreshs((res as any).refresh_timestamps))
  37. dispatch(setFinishSetup((res as any).finish_setup))
  38. }).catch(e => {
  39. })
  40. }
  41. function loadWXCache() {
  42. var gps = Taro.getStorageSync('gps')
  43. if (gps) {
  44. global.locationDetail = JSON.parse(gps)
  45. }
  46. global.memberAlert = Taro.getStorageSync('memberAlert') || false
  47. var userData = Taro.getStorageSync('userData')
  48. if (userData) {
  49. console.log('load user cache')
  50. dispatch(getInfoSuccess(JSON.parse(userData)));
  51. }
  52. setLoaded(true)
  53. }
  54. async function loadRNCache() {
  55. var showDayRing = await getStorage('showDayRing') || false;
  56. var showNightRing = await getStorage('showNightRing') || false;
  57. global.memberAlert = await getStorage('memberAlert') || false
  58. var gps = await getStorage('gps')
  59. if (gps) {
  60. global.locationDetail = JSON.parse(gps)
  61. }
  62. var userData = await getStorage('userData')
  63. console.log(userData)
  64. if (userData) {
  65. dispatch(getInfoSuccess(JSON.parse(userData)));
  66. }
  67. setLoaded(true)
  68. }
  69. async function getStorage(key: string) {
  70. try {
  71. const res = await Taro.getStorage({ key });
  72. return res.data;
  73. } catch {
  74. return '';
  75. }
  76. }
  77. if (!loaded)
  78. return <View />
  79. return <FriendMain />
  80. }