|
@@ -1,7 +1,13 @@
|
|
-import React from 'react'
|
|
|
|
|
|
+import React, { useCallback, useEffect, useState } from 'react'
|
|
import styles from './index.module.scss'
|
|
import styles from './index.module.scss'
|
|
import history from '@/utils/history'
|
|
import history from '@/utils/history'
|
|
import { renClickPageFu } from '@/pages/B1more/data'
|
|
import { renClickPageFu } from '@/pages/B1more/data'
|
|
|
|
+import { locSetTimeFu, locTimeFlagFu } from '@/utils/storage'
|
|
|
|
+import { useSelector } from 'react-redux'
|
|
|
|
+import store, { RootState } from '@/store'
|
|
|
|
+import classNames from 'classnames'
|
|
|
|
+import { API_setLike } from '@/store/action/all'
|
|
|
|
+import { Toast } from 'antd-mobile'
|
|
|
|
|
|
type Props = {
|
|
type Props = {
|
|
unityId?: '1' | '2'
|
|
unityId?: '1' | '2'
|
|
@@ -11,6 +17,55 @@ type Props = {
|
|
}
|
|
}
|
|
|
|
|
|
function FloorBtn({ unityId, gameFu, plowFu, unityEnd }: Props) {
|
|
function FloorBtn({ unityId, gameFu, plowFu, unityEnd }: Props) {
|
|
|
|
+ // 获取点赞数量
|
|
|
|
+ const { likeNum } = useSelector((state: RootState) => state.A0Layout)
|
|
|
|
+
|
|
|
|
+ // 进页面看下是否已经点赞过了
|
|
|
|
+ const [likeSta, setLikeSta] = useState(false)
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ const likeFlag = locTimeFlagFu()
|
|
|
|
+ if (likeFlag) setLikeSta(true)
|
|
|
|
+ }, [])
|
|
|
|
+
|
|
|
|
+ // 点赞的+1动画
|
|
|
|
+ const [likeMove, setLikeMove] = useState(false)
|
|
|
|
+
|
|
|
|
+ // 点击点赞
|
|
|
|
+ const likeFu = useCallback(async () => {
|
|
|
|
+ if (!likeSta) {
|
|
|
|
+ // 今天已经赞过了
|
|
|
|
+ Toast.show({
|
|
|
|
+ content: '您今天已经赞过了!'
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 发送请求
|
|
|
|
+ const res = await API_setLike('star')
|
|
|
|
+ if (res.code === 0) {
|
|
|
|
+ // 存当天0点时间戳
|
|
|
|
+ locSetTimeFu()
|
|
|
|
+
|
|
|
|
+ // +1动画显示
|
|
|
|
+ setLikeMove(true)
|
|
|
|
+ if (likeMove) return
|
|
|
|
+
|
|
|
|
+ // 点赞图标变高亮
|
|
|
|
+ setLikeSta(false)
|
|
|
|
+ setTimeout(() => {
|
|
|
|
+ // +1动画隐藏
|
|
|
|
+ setLikeMove(false)
|
|
|
|
+ // num++
|
|
|
|
+ store.dispatch({ type: 'layout/likeNum', payload: res.data.pcsStar })
|
|
|
|
+ }, 1400)
|
|
|
|
+ }
|
|
|
|
+ }, [likeMove, likeSta])
|
|
|
|
+
|
|
|
|
+ // 点击留言板/分享
|
|
|
|
+ const openAPPpageComFu = useCallback((val: 'layout/shareShow' | 'layout/msgShow') => {
|
|
|
|
+ store.dispatch({ type: val, payload: true })
|
|
|
|
+ }, [])
|
|
|
|
+
|
|
return (
|
|
return (
|
|
<div className={styles.FloorBtn} id='FloorBtn'>
|
|
<div className={styles.FloorBtn} id='FloorBtn'>
|
|
{gameFu ? <div title='游戏' className='FloorBtn0' onClick={gameFu}></div> : null}
|
|
{gameFu ? <div title='游戏' className='FloorBtn0' onClick={gameFu}></div> : null}
|
|
@@ -37,6 +92,28 @@ function FloorBtn({ unityId, gameFu, plowFu, unityEnd }: Props) {
|
|
} else history.push('/more')
|
|
} else history.push('/more')
|
|
}}
|
|
}}
|
|
></div>
|
|
></div>
|
|
|
|
+
|
|
|
|
+ {/* 新加的左上角3个按钮 */}
|
|
|
|
+ <div className='leftBtn'>
|
|
|
|
+ <div
|
|
|
|
+ title='分享'
|
|
|
|
+ className='shareImg'
|
|
|
|
+ onClick={() => openAPPpageComFu('layout/shareShow')}
|
|
|
|
+ ></div>
|
|
|
|
+ <div
|
|
|
|
+ title='留言板'
|
|
|
|
+ className='msgImg'
|
|
|
|
+ onClick={() => openAPPpageComFu('layout/msgShow')}
|
|
|
|
+ ></div>
|
|
|
|
+ <div
|
|
|
|
+ onClick={likeFu}
|
|
|
|
+ title='点赞'
|
|
|
|
+ className={classNames('likeImg', likeSta ? '' : 'likeImgAc')}
|
|
|
|
+ >
|
|
|
|
+ <span className='likeImg1'>{likeNum}</span>
|
|
|
|
+ {likeMove ? <span className='likeImg2'>+1</span> : null}
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
)
|
|
)
|
|
}
|
|
}
|