diff --git a/src/App.tsx b/src/App.tsx index f4d632b..39dd9e3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -8,7 +8,7 @@ import { usePollCoreFarmData, useFetchProfile, usePollBlockNumber } from 'state/ import { DatePickerPortal } from 'components/DatePicker' import { initAxios } from 'utils/request' import useToast from 'hooks/useToast' -import { fetchUserInfo, clearUserInfo, fetchOutInfo } from 'state/actions' +import { fetchUserInfo, clearUserInfo } from 'state/actions' import { useAccount } from 'state/userInfo/hooks' import GlobalStyle from './style/Global' import Menu from './components/Menu' @@ -70,7 +70,6 @@ const App: React.FC = () => { const account = useAccount() useEffect(() => { - // dispatch(fetchOutInfo()) initAxios(() => { dispatch(clearUserInfo) }, toast) diff --git a/src/components/Menu/index.tsx b/src/components/Menu/index.tsx index 7e62c3e..3b96828 100644 --- a/src/components/Menu/index.tsx +++ b/src/components/Menu/index.tsx @@ -7,18 +7,13 @@ import { useTranslation } from 'contexts/Localization' import useTheme from 'hooks/useTheme' import useAuth from 'hooks/useAuth' import { usePriceHccUsdt, useProfile } from 'state/hooks' -import { useUnactiveAccount, useSignLogin, useAccount, useUserInfo, useOutLink } from 'state/userInfo/hooks' +import { useUnactiveAccount, useSignLogin, useAccount, useUserInfo } from 'state/userInfo/hooks' import useWeb3Provider from 'hooks/useActiveWeb3React' -import { clearUserInfo, fetchOutInfo } from 'state/actions' +import { clearUserInfo } from 'state/actions' import { uccnDetail } from 'services/user' import config from './config' const Menu = (props) => { - // const [detail, setDetail] = useState({ userNumb: 0, tradingVolume: 0, outsideChainVos: [] }) - // const getDetail = async () => { - // const data = await uccnDetail() - // setDetail(data) - // } const account = useAccount() const { login, logout } = useAuth() const [hasWalletLogin, setHasWalletLogin] = useState(false) @@ -51,17 +46,22 @@ const Menu = (props) => { sign() } }, [unActiveAccount, hasWalletLogin, library]) - // dispatch(fetchOutInfo()) - // const detail = useOutLink() - // console.log('detail123456:', detail.outsideChainVos) + + const [detail, setDetail] = useState({ + outSideChainNumb: '', + outsideChainVos: [], + telegramNumb: '', + tradingVolume: '', + userNumb: '', + }) + const getDetail = async () => { + const result = await uccnDetail() + const { data } = result.data + setDetail(data) + } useEffect(() => { - // dispatch(fetchOutInfo()) - // getDetail() - // const detail = useOutLink() - dispatch(fetchOutInfo()) + getDetail() }, []) - const detail = useOutLink() - console.log(config(t)) return ( { setLang={setLanguage} cakePriceUsd={hccPriceUsdt.toNumber()} links={config(t)} - outLink={detail.outsideChainVos} + outLink={detail?.outsideChainVos} {...props} /> ) diff --git a/src/services/user.ts b/src/services/user.ts index 90ce248..5146557 100644 --- a/src/services/user.ts +++ b/src/services/user.ts @@ -12,4 +12,11 @@ export const uccnDetail = () => { method: 'get', }) } +export const indexInfo = () => { + return request.request({ + url: '/high_city/app/api/index/info', + method: 'get', + }) +} + export default queryUserInfo diff --git a/src/state/actions.ts b/src/state/actions.ts index 08e9209..0bc2d26 100644 --- a/src/state/actions.ts +++ b/src/state/actions.ts @@ -10,7 +10,7 @@ export { updateUserPendingReward, updateUserStakedBalance, } from './pools' -export { setUserInfo, clearUserInfo, fetchUserInfo, fetchOutInfo } from './userInfo' +export { setUserInfo, clearUserInfo, fetchUserInfo } from './userInfo' export { fetchReferralInfoAsync } from './referral' export { fetchBoardsPublicDataAsync, fetchBoardUserDataAsync } from './boards' export { profileFetchStart, profileFetchSucceeded, profileFetchFailed } from './profile' diff --git a/src/state/types.ts b/src/state/types.ts index 60075db..efefbc2 100644 --- a/src/state/types.ts +++ b/src/state/types.ts @@ -484,6 +484,10 @@ export interface UserInfoState { outLink?: OutLink } +export interface OutLinkState { + home: OutLink +} + export interface ReferralState { commanderConfigInfo: ReferralConfigInfo normalConfigInfo: ReferralConfigInfo @@ -520,4 +524,5 @@ export interface State { referral: ReferralState boards: BoardsState lottery: LotteryState + home?: OutLink } diff --git a/src/state/userInfo/hooks.ts b/src/state/userInfo/hooks.ts index 2d8c2d7..6c9b8e3 100644 --- a/src/state/userInfo/hooks.ts +++ b/src/state/userInfo/hooks.ts @@ -29,9 +29,6 @@ export const useToken = () => { export const useUserInfo = () => { return useSelector((state: State) => state.userInfo.userInfo) } -export const useOutLink = () => { - return useSelector((state: State) => state.userInfo.outLink) -} // 签名登录 export const useSignLogin = () => { diff --git a/src/state/userInfo/index.ts b/src/state/userInfo/index.ts index 2481025..4316580 100644 --- a/src/state/userInfo/index.ts +++ b/src/state/userInfo/index.ts @@ -1,12 +1,11 @@ import { createAsyncThunk, createSlice } from '@reduxjs/toolkit' -import { queryUserInfo, uccnDetail } from 'services/user' +import { queryUserInfo } from 'services/user' import { CACHE_TOKEN, CACHE_ACCOUNT, CACHE_USERINFO } from 'config/constants/cacheKey' -import { UserInfo, OutLink } from 'types/user' +import { UserInfo } from 'types/user' import { UserInfoState } from '../types' const initialState: UserInfoState = { userInfo: {}, - outLink: {}, token: localStorage.getItem(CACHE_TOKEN), account: localStorage.getItem(CACHE_ACCOUNT), } @@ -16,11 +15,6 @@ export const fetchUserInfo = createAsyncThunk('userInfo/fetchUse return result }) -export const fetchOutInfo = createAsyncThunk('uccn/detail', async () => { - const result = await uccnDetail() - return result -}) - export const userInfoSlice = createSlice({ name: 'userInfo', initialState, @@ -28,7 +22,6 @@ export const userInfoSlice = createSlice({ setUserInfo: (state, action) => { const info = action.payload state.userInfo = info - state.outLink = info.outLink state.account = info.address info.token && (state.token = info.token) localStorage.setItem(CACHE_TOKEN, state.token) @@ -43,22 +36,15 @@ export const userInfoSlice = createSlice({ localStorage.removeItem(CACHE_USERINFO) localStorage.removeItem(CACHE_ACCOUNT) }, - setOutLinkInfo: (state, action) => { - state.outLink = action.payload.outLink - }, }, extraReducers: (builder) => { builder.addCase(fetchUserInfo.fulfilled, (state, action) => { state.userInfo = action.payload localStorage.setItem(CACHE_USERINFO, JSON.stringify(state.userInfo)) }) - builder.addCase(fetchOutInfo.fulfilled, (state, action) => { - localStorage.setItem('cs', 'cs') - state.outLink = action.payload - }) }, }) // Actions -export const { setUserInfo, clearUserInfo, setOutLinkInfo } = userInfoSlice.actions +export const { setUserInfo, clearUserInfo } = userInfoSlice.actions export default userInfoSlice.reducer diff --git a/src/types/user.ts b/src/types/user.ts index 097cccf..5b633f8 100644 --- a/src/types/user.ts +++ b/src/types/user.ts @@ -6,22 +6,24 @@ export interface UserInfo { } export interface OutLink { - outSideChainNumb?: string - outsideChainVos?: OUtLinkList[] - telegramNumb?: string - tradingVolume?: string - userNumb?: string + externalLinkList?: OutLinkList[] + userCount?: string + volume?: string } -export interface OUtLinkList { - content?: string - cover?: string +export interface OutLinkList { createdAt?: string enabled?: boolean - englishName?: string + iconResource?: IconResource id?: string - link?: string + englishName?: string + linkMap?: any name?: string - orderNumber?: string + orderNum?: string + remark?: string updatedAt?: string } +export interface IconResource { + path: string + url: string +} diff --git a/src/views/Home/components/FristCom.tsx b/src/views/Home/components/FristCom.tsx index 41e4b39..2437c2f 100644 --- a/src/views/Home/components/FristCom.tsx +++ b/src/views/Home/components/FristCom.tsx @@ -1,9 +1,7 @@ import React, { useState, useEffect } from 'react' import styled from 'styled-components' import { useDispatch } from 'react-redux' -import { useOutLink } from 'state/userInfo/hooks' -import { fetchOutInfo } from 'state/actions' -import { uccnDetail } from 'services/user' +import { uccnDetail, indexInfo } from 'services/user' import { Flex, Heading, Text, Box, Button, Image, Link } from '@pancakeswap/uikit' import { useTranslation } from 'contexts/Localization' import { OutLink } from 'types/user' @@ -135,19 +133,20 @@ const InfoDiv = styled.div`` const FristCom: React.FC = () => { const { t } = useTranslation() const dispatch = useDispatch() - // const [burned, BurnedState] = useState([ - // { id: 'userNumb', name: '持有人数量', value: '0' }, - // { id: 'tradingVolume', name: '交易量', value: '0' }, - // { id: 3, name: '市值', value: '62.55%' }, - // ]) - // const [detail, setDetail] = useState({ userNumb: 0, tradingVolume: 0, outsideChainVos: [] }) - // const getDetail = async () => { - // const data = await uccnDetail() - // setDetail(data) - // } - dispatch(fetchOutInfo()) - const detail = useOutLink() - console.log('detail123:', detail) + const [detail, setDetail] = useState({ + outSideChainNumb: '', + outsideChainVos: [], + telegramNumb: '', + tradingVolume: '', + userNumb: '', + }) + const getDetail = async () => { + const data = await uccnDetail() + setDetail(data) + } + useEffect(() => { + getDetail() + }, []) const openLink = (link) => { window.open(link) } @@ -170,7 +169,7 @@ const FristCom: React.FC = () => { {/* {t('Bazaar')} */} - {detail.outsideChainVos?.map((item) => { + {detail?.outsideChainVos?.map((item) => { return (