个人页、他人页优化

This commit is contained in:
2025-11-08 20:14:54 +08:00
parent 40ea0f2eed
commit 5a15a5886d
8 changed files with 126 additions and 23 deletions

View File

@@ -1,4 +1,4 @@
import { View } from "@tarojs/components";
import { View, Text, Image } from "@tarojs/components";
import ListCard from "@/components/ListCard";
import ListLoadError from "@/components/ListLoadError";
import ListCardSkeleton from "@/components/ListCardSkeleton";
@@ -8,7 +8,7 @@ import { setStorage, getStorage } from "@/store/storage";
import { NTRPTestEntryCard } from "@/components";
import { EvaluateScene } from "@/store/evaluateStore";
import "./index.scss";
import { useRef, useEffect } from "react";
import { useRef, useEffect, useState } from "react";
const ListContainer = (props) => {
const {
@@ -23,9 +23,14 @@ const ListContainer = (props) => {
emptyText,
btnText,
btnImg,
style,
collapse = false,
defaultShowNum,
} = props;
const timerRef = useRef<NodeJS.Timeout | null>(null);
const [showNumber, setShowNumber] = useState(0)
const userInfo = useUserInfo();
useReachBottom(() => {
@@ -38,6 +43,14 @@ const ListContainer = (props) => {
// }, 500);
});
useEffect(() => {
setShowNumber(
() => {
return defaultShowNum === undefined ? data?.length : defaultShowNum
})
}, [data])
useEffect(() => {
return () => {
if (timerRef.current) {
@@ -97,6 +110,8 @@ const ListContainer = (props) => {
);
}
showNumber !== undefined && (list = list.slice(0, showNumber))
// 渲染数据
return (
<>
@@ -113,7 +128,7 @@ const ListContainer = (props) => {
};
return (
<View className="listContentWrapper">
<View className="listContentWrapper" style={style}>
{renderList(data)}
{/* 显示骨架屏 */}
{loading && renderSkeleton()}
@@ -122,7 +137,20 @@ const ListContainer = (props) => {
</View>
{renderList(recommendList)} */}
{/* 到底了 */}
{data?.length > 0 && <View className="bottomTextWrapper"></View>}
{collapse ?
data?.length > defaultShowNum ?
data?.length > showNumber ?
<View className="collapse-btn fold" onClick={() => { setShowNumber(data?.length) }}>
<Text></Text>
<Image src={require("@/static/userInfo/fold.svg")}></Image>
</View> :
<View className="collapse-btn" onClick={() => { setShowNumber(defaultShowNum) }}>
<Text></Text>
<Image src={require("@/static/userInfo/fold.svg")}></Image>
</View>
:
null
: data?.length > 0 && <View className="bottomTextWrapper"></View>}
</View>
);
};