import {FC, useCallback, useEffect, useMemo, useState} from "react"; import {Image, Text, View} from "@tarojs/components"; import Taro, {useRouter} from "@tarojs/taro"; import {ArticleRecord, brandApi} from "@/api"; import styles from "./article.module.scss"; import down from "@/static/img/doubleDown.png"; import {Profile} from "@/store"; import {parse} from "@/utils/marked/marked"; import Empty from "@/components/empty/empty"; import Spin from "@/components/spinner"; import {beforeTime} from "@/utils/time"; import Img from "@/components/image/image"; const article: FC = () => { const {token} = Profile.useContainer() const [enable, setEnable] = useState(true) const {id} = useRouter().params as unknown as { id: number } const [articleInfo, setArticleInfo] = useState() const [ultra, setUltra] = useState(true) const globalData = Taro.getApp().globalData const pageHeight = globalData.windowHeight - globalData.textBarHeight - globalData.statusBarHeight const {children} = useMemo(() => parse(articleInfo?.content || ''), [articleInfo]) useEffect(() => { setTimeout(() => { const query = Taro.createSelectorQuery() query.select('#childrenNode').boundingClientRect((res) => { if (!Array.isArray(res)) { console.log({childrenNode: res}) setUltra(pageHeight * .45 <= res.height) } }).exec() }, 300) }, [children]) Taro.useReady(() => { getData().then() }) const getData = useCallback(async () => { try { const data = await brandApi.articleInfo(id) Taro.setNavigationBarTitle({title: data.title}) if (data.content.length < 200) { setUltra(false) } setArticleInfo(data) } catch (e) { } setEnable(false) }, [id]) function helloWorld() { return ( <> {articleInfo?.title} { children.length > 0 ? { articleInfo?.brands.map(d => {d?.name} {beforeTime(articleInfo?.created_at)} . 阅读 {articleInfo.page_view || 1} ) } {children} : } { !token && ultra && children.length > 0 && Taro.navigateTo({url: '/pages/login/login'})}> 登录查看更多内容 } ) } return helloWorld() } export default article